3 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
Android 有自己的 API 來處理不同的語言環(huán)境。用戶在 Android 系統(tǒng)設(shè)置中設(shè)置他的語言環(huán)境。您不需要向用戶詢問他的語言環(huán)境。
只需將英文字符串放入 res/values/strings.xml,將希伯來語字符串放入 res/values-iw/strings.xml。也可以通過使用開始/結(jié)束而不是左/右來處理布局 xml 中的 ltr/rtl。
編輯:我不知道是否可以像在 setLocale() 中那樣更改應(yīng)用程序的語言環(huán)境。
您應(yīng)該關(guān)閉您的應(yīng)用程序并將其從應(yīng)用程序堆棧中刪除。然后在 Android 設(shè)置中將語言更改為希伯來語并重新打開您的應(yīng)用程序。
如果您現(xiàn)在擁有在布局 .xml 中定義的 rtl 布局,但沒有希伯來語字符串,那么您的 strings.xml 可能有問題。
您的 strings.xml 可能沒有正確的路徑 (res/values-iw/strings.xml)。或者 strings.xml 的內(nèi)容可能是錯(cuò)誤的??赡芘c您的英文 strings.xml 中的字符串 ID 不同。
您還可以打印出您當(dāng)前的語言環(huán)境,看看它是否設(shè)置為“iw”

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
本地化步驟:
1)從您擁有的每個(gè)文本中創(chuàng)建一個(gè)字符串??旖莘绞绞寝D(zhuǎn)到文本,單擊文本,左側(cè)會(huì)出現(xiàn)一個(gè)黃色燈泡。單擊它并單擊Extract Resource
,它將為您的文本生成一個(gè)名稱以添加到 Strings.xml。對(duì)每個(gè)文本都這樣做。
2)轉(zhuǎn)到 Res > Values 文件夾中的 Strings.xml 文件。右上角應(yīng)該有藍(lán)色文字,你可以點(diǎn)擊Open Editor
點(diǎn)擊它。
3)單擊左上角的小世界圖標(biāo)。找到希伯來語。選擇它。點(diǎn)擊確定?,F(xiàn)在您已經(jīng)成功地為希伯來語語言創(chuàng)建了一個(gè)單獨(dú)的 Strings.xml。
4)返回到您的英文 Strings.xml 文件,Open Editor
再次單擊,您將看到所有已存儲(chǔ)為字符串的文本。單擊一個(gè)字符串,在底部你會(huì)看到“Key”,它是字符串的 id 名稱,Default Value 是英文版本,以及 Translation,你必須手動(dòng)輸入要翻譯的英文單詞的希伯來語翻譯。為您想要翻譯的所有內(nèi)容執(zhí)行此操作。請(qǐng)注意,無論您在翻譯字段中輸入什么,都會(huì)自動(dòng)添加到 strings.xml(iw) 文件中。
5)第 4 步的替代方法是轉(zhuǎn)到希伯來文 Strings.xml 并在那里手動(dòng)輸入信息,但您必須確保“密鑰”(字符串的 ID 名稱)與英文相同。因此,根據(jù)我的經(jīng)驗(yàn),第 4 步使它變得更容易。
6)您可以打開 Hebrew Strings.XML 手動(dòng)編輯您放入其中的翻譯,以防您想要更改已經(jīng)放入的較長(zhǎng)文本。
所以它看起來像這樣:
字符串.xml
<resources> <string name="app_name">KotlinKennyGame</string> <string name="test">This is a test.</string> </resources>
activity_main.xml
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/test" />
字符串.xml(iw)
<resources> <string name="app_name">KotlinKennyGame</string> <string name="test">?? ????</string> </resources>

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
嘗試改變
Configuration configuration = new Configuration();
到
Configuration configuration = getBaseContext().getResources().getConfiguration();
添加回答
舉報(bào)