3 回答
TA贡献1900条经验 获得超5个赞
Android 有自己的 API 来处理不同的语言环境。用户在 Android 系统设置中设置他的语言环境。您不需要向用户询问他的语言环境。
只需将英文字符串放入 res/values/strings.xml,将希伯来语字符串放入 res/values-iw/strings.xml。也可以通过使用开始/结束而不是左/右来处理布局 xml 中的 ltr/rtl。
编辑:我不知道是否可以像在 setLocale() 中那样更改应用程序的语言环境。
您应该关闭您的应用程序并将其从应用程序堆栈中删除。然后在 Android 设置中将语言更改为希伯来语并重新打开您的应用程序。
如果您现在拥有在布局 .xml 中定义的 rtl 布局,但没有希伯来语字符串,那么您的 strings.xml 可能有问题。
您的 strings.xml 可能没有正确的路径 (res/values-iw/strings.xml)。或者 strings.xml 的内容可能是错误的。可能与您的英文 strings.xml 中的字符串 ID 不同。
您还可以打印出您当前的语言环境,看看它是否设置为“iw”
TA贡献1155条经验 获得超0个赞
本地化步骤:
1)从您拥有的每个文本中创建一个字符串。快捷方式是转到文本,单击文本,左侧会出现一个黄色灯泡。单击它并单击Extract Resource
,它将为您的文本生成一个名称以添加到 Strings.xml。对每个文本都这样做。
2)转到 Res > Values 文件夹中的 Strings.xml 文件。右上角应该有蓝色文字,你可以点击Open Editor
点击它。
3)单击左上角的小世界图标。找到希伯来语。选择它。点击确定。现在您已经成功地为希伯来语语言创建了一个单独的 Strings.xml。
4)返回到您的英文 Strings.xml 文件,Open Editor
再次单击,您将看到所有已存储为字符串的文本。单击一个字符串,在底部你会看到“Key”,它是字符串的 id 名称,Default Value 是英文版本,以及 Translation,你必须手动输入要翻译的英文单词的希伯来语翻译。为您想要翻译的所有内容执行此操作。请注意,无论您在翻译字段中输入什么,都会自动添加到 strings.xml(iw) 文件中。
5)第 4 步的替代方法是转到希伯来文 Strings.xml 并在那里手动输入信息,但您必须确保“密钥”(字符串的 ID 名称)与英文相同。因此,根据我的经验,第 4 步使它变得更容易。
6)您可以打开 Hebrew Strings.XML 手动编辑您放入其中的翻译,以防您想要更改已经放入的较长文本。
所以它看起来像这样:
字符串.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贡献2012条经验 获得超12个赞
尝试改变
Configuration configuration = new Configuration();
到
Configuration configuration = getBaseContext().getResources().getConfiguration();
添加回答
举报