2017-01-30 68 views
0

Android Wear系統僅支持幾種語言。有沒有辦法,如何強制資源管理器使用我在手機中設置的語言資源,但它們不受Android Wear系統的支持?Android Wear - 支持不同語言

在我的Android Wear應用程式我想支持三種語言。英語,捷克語和捷克語。在我的Android Wear應用程序中,我有這些帶有字符串文件的目錄:,values -de,values-cs

如果我將手機語言設置爲德語,則我的Android Wear應用程序正確使用德語字符串。但是,如果我在我的手機中設置了捷克語,Android Wear應用程序將使用默認值(來自目錄)字符串。

有沒有什麼辦法,當我的手機有捷克語言,但捷克不支持Android Wear系統時,如何才能實現資源管理器使用values-cs文件夾?

預先感謝您。

編輯

我確實很醜陋的解決方法。我在我的手機應用程序中與此磨損應用程序相關的服務。當開始我的穿戴應用程序,我只是問電話使用什麼語言。在它向我發送回覆之後,我只是嘗試在我的Xamarin Android Wear應用中切換語言環境。

代碼變化的區域設置:

myLocale = new Java.Util.Locale(lang); 
DisplayMetrics dm = Resources.DisplayMetrics; 
Configuration conf = Resources.Configuration; 
conf.Locale = myLocale; 
Resources.UpdateConfiguration(conf, dm); 

其中是ISO639-1代碼和myLocale是類型區域設置的活動屬性。

回答

0

正如Localization Tips提到,

如果一個應用程序丟失甚至一個默認的資源,它不會被設置爲不支持的語言環境的設備上運行。例如,res/values/strings.xml默認文件可能缺少應用程序需要的一個字符串:當應用程序運行在不支持的語言環境中並嘗試加載res/values/strings.xml時,用戶將看到一條錯誤消息和一個強制關閉按鈕。

有關其他信息,您可能還想檢查Language and Locale。它解釋了Android版本低於7.0(API級別24)的資源分辨率策略。接下來,它介紹了Android 7.0中改進的資源分辨率策略。最後,它解釋瞭如何利用擴展的區域設置來支持更多的多語言用戶。

此外,由於給定的文件中提到,

當你的Java代碼是指串,系統會從默認加載字符串(EN_US)資源文件,即使該應用程序有以下本地化西班牙語資源es_ES。這是因爲當系統找不到完全匹配時,它會繼續通過從國家/地區剝離國家/地區代碼來查找資源。最後,如果找不到匹配項,則系統回退到缺省值en_US。

如上所述,使用不支持的區域設置是不可能的。因此,如果您仍然喜歡使用捷克語,則可能需要使用Android 5.0或更低版本,其中支持捷克語,如相關的SO postlist of Android Supported Language and Locales中所示。