[英]Android emulator displays Hebrew resources correctly but device doesn't
我想在我的應用程序中支持希伯來語資源(默認為英語)。 我在“res / values-iw / strings.xml”下分配了希伯來語資源,並在模擬器中對其進行了測試。 結果很好 - 在將模擬器語言切換為希伯來語后,我在我的應用程序中看到了希伯來語字符串。
問題是在將設備語言設置為希伯來語后,它未顯示在我的設備(Samsung Galaxy S2)中。 我一直在看英文字符串。
任何想法如何解決?
謝謝!
嘗試從res / values-iw / res / values-he /中添加資源的副本,如果需要,可以在res / xml-he /等中添加相同的資源 。
似乎三星Galaxy S2的操作系統處理希伯來語語言環境和資源的方式與其他Android設備不同。 Android使用希伯來語的語言代碼“iw”來保持原有的兼容性,而三星顯然將其改為使用語言代碼“he”,根據ISO 639-1,它可以說是正確的但不兼容。 有關更多背景信息,請參閱Android問題3639 。
結果是res / * - iw /中的資源沒有加載到受影響的三星設備上,解決方法是在res / * - he /中添加重復副本。
要確認,請嘗試以下方法:
Locale loc = new Locale("iw");
Log.i(TAG, "locale language: " + loc.getLanguage());
Log.i(TAG, "display language: " + loc.getDisplayLanguage());
這應該在普通的Android設備上打印“iw”,在Galaxy S2上打印“he”,用“עברית”作為兩者的顯示語言。 由於沒有受影響的設備,我無法自己測試。
請參閱黑客的鍵盤問題122 ,該問題也受到同樣問題的影響。
仿真器Android版本與三星Galaxy S2版本相同嗎?
嘗試找出在設備上轉換為希伯來語后獲得的語言環境語言和國家/地區。 也許它不是新的。
String lang = Locale.getLocale().getDisplayLanguage();
String country = Locale.getLocale().getDisplayCountry();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.