Մենք ունենք հավելված՝ գրված Pages
-ով և առանց օրինաչափության, և ես ուզում եմ այն նորից գրել MVVM-ի միջոցով: Ներկայումս մենք օգտագործում ենք Picker
-ը լեզվի ընտրության համար, և երբ մշակույթը փոխվում է, մենք նորից սահմանում ենք label.Text
կառավարները՝ դրանք նոր լեզվով վերագրելու համար: Ես նորից գրեցի նույն էջը՝ օգտագործելով MVVM, և այժմ SelectedItem
-ը Picker
-ում կապված է Language
օբյեկտի հետ: SelectedItem
-ի սեթերում ես նաև փոխում եմ իմ resx-ի մշակույթը (AppResources.Culture
), բայց դրանով կապված միջերեսը (օրինակ՝ Text="{x:Static resources:AppResources.Title
) չի փոխում լեզուն:
Ամբողջական կոդը իմ SelectedItem
սեթերում.
SetProperty(ref selectedLanguage, value);
AppResources.Culture = value.Culture;
cultureManager.SetLocale(value.Culture);
Ինչպե՞ս պետք է թարմացնեմ իմ UI-ի բոլոր Text
-երը: Կա՞ արդյոք նման բան անելու որևէ մաքուր միջոց, կարծես թարգմանության հիմնական կարիք կա... կամ դա նախատեսված չէր, հատկապես ոչ առանց դիտումը/հավելվածը փակելու:
Տեղայնացման համար ես գտա մոտեցումները՝ օգտագործելով IMarkupExtension և այս թեման Xamarin ֆորումներում որը գտնվում է end-ը արդյունավետ կերպով վերստեղծում է էջը...
Իմ նպատակն է իդեալականորեն վերաբեռնել տեքստը՝ առանց տեսքը նորից ստեղծելու/փակելու հավելվածը՝ օգտագործելով MVVM և մաքուր կոդը: Ես ունեմ մոտ 10 դիտում, ուստի այն պետք է լինի մի քանի անգամ օգտագործելի:
{Binding count, StringFormat={x.Static resx:res.applemessage}}
-ով, բայց դա չի աշխատում LocalizedResource-ի հետ: 25.03.2020