android 支持多语言?

Multiple language support on android?

如何在我的 android 应用程序中以最简单的方式允许使用多种语言?我见过更大的项目使用 xml 文件,这些文件的编码并不难,但我似乎无法将其集成到代码中。另一种实际上非常棘手的方法是使用布尔值,但这从一开始就需要多种语言,此时我只能提供 2 种。

语言要后期容易集成,不需要改几千行,但是初期的工作要在早期完成(后期集成是针对语言的) , 早期是为了支持它)

我正在使用 android studio

在 strings.xml 文件中定义所有文本,避免将文本硬编码到应用中。您可以使用第三方翻译服务为您执行所有翻译。

你应该阅读 documentation。在您的应用程序中合并多种语言非常容易,因为您只需将所有字符串移动到 values/strings.xml,然后在 values-[LANGUAGE_ISO_CODE]/strings.xml.[=15= 处提供具有相同字符串 ID 但不同值的其他语言。 ]

例子

values/strings.xml

<resources>
    <string name="app_name">Something</string>
</resources>

阿拉伯语

values-ar/strings.xml

<resources>
    <string name="app_name">شئ</string>
</resources>

要添加对更多语言环境的支持,请在 res/ 中创建其他目录。 每个目录的名称应遵循以下格式:

-b+[+] 例如,values-b+es/ 包含语言代码为 es 的语言环境的字符串资源。 类似地,mipmap-b+es+ES/ 包含带有 es 语言代码和 ES 国家代码的区域设置的图标。

Android 在运行时根据设备的区域设置加载适当的资源。 例如,以下是不同语言的一些不同资源文件:英文字符串(默认语言环境),/values/strings.xml:

 <resources>
        <string name="hello">Hello</string>
    </resources> 

    French strings (fr locale), /values-fr/strings.xml:

<resources>
    <string name="hello">Bonjour</string>
</resources> 

    Use the Resources in your App:

   <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

有两种方法: 使用系统语言:检测系统语言,然后应用程序将启动 这个系统的 language.To 这样做, 1. 首先,您需要让应用程序的所有字符串都不是硬编码的,这意味着您必须将它们全部定义在 values 文件夹下的字符串文件中 2. 转到字符串文件并在顶部工具栏上选择地球图标并选择要添加的第二种语言。 3.系统将为您提供一个翻译器,用于翻译您定义的字符串中的每个单词。 4.完成后,系统会自动在第二语言的值文件夹下添加新的字符串文件。 5. 现在,如果您将 phone 系统的语言更改为第二语言,应用程序将自动以第二语言打开。

在不改变系统语言的情况下支持语言的第二种方式: 1. 完全用主要语言开发你的代码 2.您最好也需要避免对字符串进行硬编码。所以在字符串文件

中定义所有字符串
  1. 对于您要添加的每种语言,重复您要使用新语言翻译的活动
  2. 为您需要添加到应用程序的每种语言添加按钮
  3. 为每个按钮编写 onclicklistener 代码,将应用引导至其语言的活动