MVVMcross obravnava posodobitve jezikovnih datotek z uporabo enkratne vezave na določen način, zlasti pri obravnavi statičnega besedila iz jezikovnih datotek. Tu je podrobna razlaga, kako to deluje:
Pregled enkratne vezave v mvvmcross
Enkratna vezava v mvvmcros je način vezave, ki prenaša vrednosti iz ViewModela v pogled. Ta prenos se pojavi le, ko je nastavljen vezavni vir, in ne spremlja aktivno spreminjanja sporočil ali dogodkov iz ViewModela. Ko je začetni prenos končan, vezava ne izvaja nobenih posodobitev, razen če se sam vezivni vir ponastavi [1].
Ravnanje posodobitev jezikovnih datotek
Pri uporabi enkratne vezave za jezikovne datoteke MVVMcross besedilo običajno nastavi enkrat, ko je izbran jezik. To je zato, ker je običajno, da uporabniki na začetku aplikacije izberejo jezik in je redko, da ga pogosto spreminjajo. Če pa je treba jezik dinamično posodobiti, samo enkratno vezavo ne zadostuje, saj besedila samodejno ne posodobi, ko se jezik spremeni.
Dinamične posodobitve
Če želite ravnati z dinamičnimi posodobitvami jezika, morate običajno izvajati dodatno logiko. To bi lahko vključevalo ponastavitev vezivnega vira, ko se jezik spremeni ali uporabi drugačen način vezave, ki podpira posodobitve, kot je dvosmerna vezava, čeprav je to manj pogosto za statično besedilo.
Uporaba mvvmcross.plugin.resxlocalizacija
Za upravljanje jezikovnih datotek MVVMcross ponuja vtičnik `mvvmcross.plugin.resxlocalizacija", ki omogoča shranjevanje nizov v datotekah ".resx` za različne jezike. Ta vtičnik pomaga pri upravljanju lokaliziranih nizov in ga je mogoče integrirati z vsebnostjo MOK aplikacije, da se zagotovi dostop do lokaliziranih virov iz ViewModels in Pogledov [4].
Če želite dinamično posodobiti jezik s tem vtičnikom, bi morali implementirati logiko, ki posodobi uporabniški vmesnik, ko se jezik spremeni. To lahko vključuje ročno posodabljanje besedilnih lastnosti elementov uporabniškega vmesnika ali uporabo bolj dinamičnega vezivnega pristopa, ki reagira na spremembe jezika.
Zaključek
Medtem ko je enkratna vezava primerna za nastavitev statičnega besedila iz jezikovnih datotek na začetku, za ravnanje z dinamičnimi posodobitvami jezika zahteva dodatne korake izvajanja. MVVMcross ponuja orodja, kot je vtičnik "Resxlocalizacija" za upravljanje lokaliziranih virov, vendar morate izvajati logiko, da posodobite uporabniški vmesnik, ko se jezik spremeni.
Če povzamemo, enkratna vezava MVVMcrossa ni zasnovana za samodejno ravnanje z jezikovnimi posodobitvami, vendar lahko s pravo dodatno logiko in vtičniki v svoji aplikaciji dosežete dinamično podporo jezika.
Navedbe:[1] https://www.mvvmcross.com/documentation/fundamentals/data----
[2] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://mobileprogrammerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-localizacija/
[5] https://stackoverflow.com/questions/17156368/
[6] https://stackoverflow.com/questions/60311571/the-inted-purpose-of-mvvmcross-createBindingset
[7] https://www.mvvmcross.com/documentation/plugins/jsonlocalizacija
[8] https://www.mvvmcross.com/documentation/fundamentals/linking
[9] https://www.mvvmcross.com/blog/