Android上的多语言支持?

时间:2016-03-22 14:58:21

标签: android multilingual

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

语言必须易于在后期状态下集成,因此它不需要更改数千行,但最初的工作必须在早期状态下完成(后期状态集成用于语言,早期是支持它)

我正在使用android studio

4 个答案:

答案 0 :(得分:6)

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

实施例

值/ strings.xml中

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

对于阿拉伯语

值-AR / strings.xml中

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

要添加对更多语言环境的支持,请在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" />

答案 3 :(得分:0)

有两种方法可以这样做: 使用systme的语言:检测系统语言,然后该应用将以                         该系统的语言。为此, 1.首先,您需要对应用程序的所有字符串进行非硬编码,这意味着必须在values文件夹下的字符串文件中定义所有字符串 2.转到字符串文件,然后在顶部工具栏上选择地球图标,然后选择要添加的第二种语言。 3.系统将为您提供翻译器,可在其中翻译您定义的字符串的每个单词。 4.完成后,系统将自动使用第二种语言在值文件夹下添加新的字符串文件。 5.现在,如果您将电话系统的语言更改为第二种语言,则该应用程序将自动以第二种语言打开。

在不更改系统语言的情况下支持语言的第二种方法: 1.用主要语言完全开发您的代码 2.您最好也需要避免对字符串进行硬编码。因此,请在字符串文件中定义所有字符串

  1. 对于您要添加的每种语言,重复您要用新语言翻译的活动
  2. 您需要添加到应用中的每种语言的添加按钮
  3. 为每个将应用程序定向到其语言活动的按钮编码onclicklistener