簡體   English   中英

Android模擬器正確顯示希伯來語資源,但設備沒有

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM