MVVMCross zpracovává aktualizace souborů jazyka pomocí jednorázového vazby konkrétním způsobem, zejména při jednání se statickým textem z jazykových souborů. Zde je podrobné vysvětlení, jak to funguje:
Přehled jednorázové vazby v mvvmcross
Jednorázová vazba v MVVMCrossu je vazebný režim, který převádí hodnoty z viewmodel do pohledu. K tomuto přenosu dochází pouze tehdy, když je nastaven zdroj vazebné, a aktivně nesleduje změny zpráv nebo událostí z viewmodel. Jakmile je počáteční přenos dokončen, vazba neprovádí žádné aktualizace, pokud není resetován samotný zdroj vázání [1].
Manipulace s aktualizacemi jazykových souborů
Při použití jednorázové vazby pro jazykové soubory MVVMCross obvykle nastavuje text jednou, když je jazyk vybrán. Je to proto, že je běžné, že uživatelé vybírají jazyk na začátku aplikace a je neobvyklé, že jej často mění. Pokud však jazyk musí být dynamicky aktualizován, jednorázová vazba sama o sobě nestačí, protože text automaticky neaktualizuje, když se jazyk změní.
Aktualizace dynamického jazyka
Chcete -li zvládnout aktualizace dynamických jazyků, obvykle byste museli implementovat další logiku. To by mohlo zahrnovat resetování zdroje vazby, když se jazyk změní nebo pomocí jiného vazebného režimu, který podporuje aktualizace, jako je obousměrná vazba, i když je to pro statický text méně běžné.
Používání mvvmcross.plugin.resxlocalizace
Pro správu jazykových souborů poskytuje MVVMCross plugin mvvmcross.plugin.resxlocalizace, který vám umožňuje ukládat řetězce do souborů `.RESX pro různé jazyky. Tento plugin pomáhá spravovat lokalizované řetězce a může být integrován do kontejneru IOC aplikace, aby poskytoval přístup k lokalizovaným zdrojům z ViewModels a Zobrazení [4].
Chcete -li dynamicky aktualizovat jazyk s tímto pluginem, musíte implementovat logiku, která aktualizuje uživatelské rozhraní při změně jazyka. To může zahrnovat ruční aktualizaci textových vlastností prvků uživatelského rozhraní nebo použití dynamičtějšího vázacího přístupu, který reaguje na změny jazyka.
Závěr
Zatímco jednorázová vazba je vhodná pro nastavení statického textu z jazykových souborů zpočátku, manipulace s dynamickými jazykovými aktualizacemi vyžaduje další kroky implementace. MVVMCross poskytuje nástroje, jako je plugin „resxlocalizace“ pro správu lokalizovaných zdrojů, ale musíte implementovat logiku pro aktualizaci uživatelského rozhraní, když se jazyk změní.
Stručně řečeno, jednorázová vazba MVVMCross není navržena tak, aby automaticky zpracovávala aktualizace jazyků, ale se správnou další logikou a pluginy můžete ve své aplikaci dosáhnout dynamické jazykové podpory.
Citace:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[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-parpose-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/