我不确定这是否是一个愚蠢的问题,但我有一个需要提供给其他语言的应用程序。我已经阅读了很多关于此的内容,但我对如何去做感到困惑。我真的需要将整个应用程序翻译成我想要的任何语言还是系统会这样做?我阅读了有关使用本地化的 Android 文档(Android 文档)和许多论坛帖子。我已阅读有关更改应用程序中的配置的信息,但即使更改设备上的区域设置也不起作用。谁能指出我正确的方向?我希望用户能够更改应用程序本身的语言,因为它可能会在具有不同偏好的人之间传递。提前致谢!
问问题
887 次
2 回答
3
基本上,您需要将要翻译的字符串放入文件中
res/values/strings.xml
对于默认的 en 语言环境,然后例如在代码中通过Resources.getString(R.string.theId)
或在其他 xml 文件中通过 引用这样的条目@string/theId
,其中theId
表示条目的 id,例如
<string name="theId">Username</string>
在 xml 文件中。
现在要翻译它,您需要创建额外的
res/values-<lc>/strings.xml
文件,其中代表各自的 2 字母语言环境代码。
于 2012-10-02T20:54:52.127 回答
0
要添加对更多语言环境的支持,请在 res/ 中创建其他目录。每个目录的名称应遵循以下格式:
-b+[+] 例如,values-b+es/ 包含语言代码为 es 的语言环境的字符串资源。类似地,mipmap-b+es+ES/ 包含带有 es 语言代码和 ES 国家代码的区域设置图标。Android 在运行时根据设备的区域设置加载适当的资源。
例如,以下是针对不同语言的一些不同资源文件:英文字符串(默认语言环境)、/values/strings.xml:
<resources>
<string name="hello">Hello</string>
</resources>
法语字符串(fr 语言环境),/values-fr/strings.xml:
<resources>
<string name="hello">Bonjour</string>
</resources>
在您的应用程序中使用资源:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello" />
于 2017-03-19T13:20:08.680 回答