MVVMCROSS apstrādā valodas failu atjauninājumus, izmantojot vienreizēju iesiešanu noteiktā veidā, it īpaši, strādājot ar statisku tekstu no valodas failiem. Šeit ir detalizēts skaidrojums, kā tas darbojas:
Pārskats par vienreizēju iesiešanu mvvmcross
Vienreizēja iesiešana MVVMCross ir saistīšanās režīms, kas pārnes vērtības no skataModel uz skatu. Šī pārsūtīšana notiek tikai tad, kad tiek iestatīts iesiešanas avots, un tas aktīvi neuzrauga maiņu vai notikumus no ViewModel. Kad sākotnējā pārsūtīšana ir pabeigta, iesiešana neveic nekādus atjauninājumus, ja vien pats saistošais avots netiek atiestatīts [1].
Pārkākot valodas failu atjauninājumus
Izmantojot vienreizēju iesiešanu valodas failiem, MVVMCROSS parasti iestata tekstu vienreiz, kad ir izvēlēta valoda. Tas ir tāpēc, ka lietotājiem ir ierasts izvēlēties valodu lietojumprogrammas sākumā, un ir retāk, ja viņi to bieži maina. Tomēr, ja valoda ir jāatjaunina dinamiski, vienreizēja iesiešana vien nav pietiekama, jo tā automātiski neatjaunina tekstu, kad valodas mainās.
Dinamiskās valodas atjauninājumi
Lai apstrādātu dinamiskās valodas atjauninājumus, jums parasti jāievieš papildu loģika. Tas varētu ietvert saistošā avota atiestatīšanu, kad valoda mainās vai izmantojot atšķirīgu saistīšanas režīmu, kas atbalsta atjauninājumus, piemēram, divvirzienu iesiešanu, lai gan tas ir retāk sastopams statiskajam tekstam.
Izmantojot mvvmcross.plugin.resxlocalization
Valodu failu pārvaldībai MVVMCROSS nodrošina `mvvmcross.plugin.resxlocalization` spraudni, kas ļauj saglabāt virknes` .ResX` failos dažādām valodām. Šis spraudnis palīdz pārvaldīt lokalizētas virknes, un to var integrēt ar lietojumprogrammas SOK konteineru, lai nodrošinātu piekļuvi lokalizētiem resursiem no ViewModels un skatiem [4].
Lai dinamiski atjauninātu valodu ar šo spraudni, jums jāievieš loģika, kas atjaunina lietotāja saskarni, kad valodas mainās. Tas var ietvert manuāli atjaunināt lietotāja saskarnes elementu teksta īpašības vai izmantot dinamiskāku saistīšanas pieeju, kas reaģē uz valodas izmaiņām.
Secinājums
Kaut arī vienreizēja iesiešana ir piemērota statiskā teksta iestatīšanai no valodas failiem sākotnēji, dinamisko valodas atjauninājumu apstrādei ir nepieciešami papildu ieviešanas darbības. MVVMCROSS nodrošina tādus rīkus kā “Resxlocalization” spraudnis, lai pārvaldītu lokalizētus resursus, taču, mainoties valodai, jums jāievieš loģika, lai atjauninātu lietotāja saskarni.
Rezumējot, MVVMCROSS vienreizējā iesiešana nav paredzēta, lai automātiski apstrādātu valodas atjauninājumus, bet ar pareizo papildu loģiku un spraudņiem jūs varat sasniegt dinamisku valodas atbalstu savā lietojumprogrammā.
Atsauces:[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-localization/
[5] https://stackoverflow.com/questions/17156368/
[6] https://stackoverflow.com/questions/60311571/the-intended-purpose-of-mvvmcross-createBindingset
[7] https://www.mvvmcross.com/documentation/plugins/jsonlocalisation
[8] https://www.mvvmcross.com/documentation/fundamentals/linking
[9] https://www.mvvmcross.com/blog/