有沒有辦法在運行時將當前語言更改爲另一種語言?Mvvm跨越本地化:在運行時切換
例如:能夠在單擊按鈕或啓動應用程序時進行切換,獲取用戶語言和切換。
如何告訴插件在啓動時檢查用戶語言?
在此先感謝您的幫助。
有沒有辦法在運行時將當前語言更改爲另一種語言?Mvvm跨越本地化:在運行時切換
例如:能夠在單擊按鈕或啓動應用程序時進行切換,獲取用戶語言和切換。
如何告訴插件在啓動時檢查用戶語言?
在此先感謝您的幫助。
有沒有辦法在運行時將當前語言更改爲另一種語言?
是的,叫builder.LoadResources(whichLanguage)
您MvxTextProviderBuilder.cs
例如:能夠切換按鈕被點擊
時,UI框架是不是真的設置執行切換現場。當您在語言之間切換時,新的JSON資源文件將全部加載成功 - 但現有的顯示文本將不會更新。這有點像大多數移動操作系統 - 如果你想切換語言,你經常需要重新啓動!
如果你想添加動態切換,那麼你必須找到一種方法來告訴UI完全刷新所有文本 - 我懷疑這不會很難做到,但是可能需要一些手動編碼頁/視圖已經被創建並顯示:/
或啓動應用程序時,得到了用戶的語言和開關。
這是一個更直接的做國際化的方法。這通常是正常的,因爲MvvmCross主要針對手機 - 而手機通常是單用戶設備,不會經常切換語言。
你可以,例如,使用一些變量(例如System.Globalization.CultureInfo.CurrentUICulture
)制定,顯示最好的語言。
或者你檢測負載用戶是否已經選擇了一個語言,但 - 如果他們有,則表明HomeViewModel
- 如果他們沒有再展LanguagePickerViewModel
- 這就是我們在做StarWarsKinect - 的StartNavigationObject
是一個完美的這種邏輯的地方!
如何告訴插件,以檢查在啓動時用戶語言?
目前,您必須將此邏輯作爲您應用程序啓動的一部分進行編碼。
我一定會對此提供一個改進的插件 - 也許是一個演示!
如果您正在尋找國際化,那麼一個替代方案的實施要考慮的是白話 - 球隊在RDIO有單聲道和MS平臺非常好的產品 - https://github.com/rdio/vernacular
我添加語言BaseConferenceApp構造是樣本進行本地化,然後我的Android Setup.cs CreateApp返回新的NoSplashScreenConferenceApp(Java.Util.Locale.Default.Language);所以使用默認語言。 – Alphapage
您的實現似乎完美地完成了這項工作,現在我不會考慮其他框架,並按照您的建議進行操作。 – Alphapage
現在,無法重新加載MvvmCross本地化插件後,無法使用與帖子結尾相同的內容:http://wp7wonders.wordpress.com/2010/10/17/localize-a-windows-phone-7 -application/ – Alphapage