Android支持不同的语言。

时间:2013-07-09 08:07:44

标签: android

我有一个支持diff语言的android应用程序 我对每种语言都有不同版本的字符串。

值-aa,值-bb和值-cc等

但是我的应用程序没有在diff语言中显示字符串。 我已经为多语言支持做了所有必要的事情,但有时候应用程序不会在diff中显示文本。语言。

可能是什么原因?

4 个答案:

答案 0 :(得分:10)

看看here;如上所述:

创建区域设置目录和字符串文件

要添加对更多语言的支持,请在res /中创建其他值目录,其中包含连字符和目录名末尾的ISO国家/地区代码。例如,values-es /是包含语言代码为“es”的Locales的简单resourcess的目录。 Android在运行时根据设备的区域设置加载适当的资源。

确定要支持的语言后,请创建资源子目录和字符串资源文件。例如:

  

MyProject的/       RES /          值/              strings.xml中          值-ES /              strings.xml中          值-FR /              的strings.xml

将每个语言环境的字符串值添加到相应的文件中。

在运行时,Android系统根据当前为用户设备设置的区域设置使用适当的字符串资源集。

例如,以下是针对不同语言的一些不同的字符串资源文件。

英语(默认语言环境),/ values / strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">My Application</string>
    <string name="hello_world">Hello World!</string>
</resources>

西班牙语,/ values-es / strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mi Aplicación</string>
    <string name="hello_world">Hola Mundo!</string>
</resources>

法语,/ values-fr / strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

注意:您可以在任何资源类型上使用区域设置限定符(或任何配置限定符),例如,如果您要提供位图drawable的本地化版本。有关更多信息,请参阅本地化。

我想首先一瞥你必须改变文件夹名称。

答案 1 :(得分:0)

您必须处理并更改默认电话区域设置。 想象一下,您选择葡萄牙语(tag =“pt_PT”):

Locale locale = new Locale("pt_PT");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

现在当你执行:getString(R.string.YOUR_STRING_NAME)时,它将返回位于values-pt。

的字符串

请记住将此添加到您的Manifest(在您要控制语言的活动中):

android:configChanges="locale"

答案 2 :(得分:0)

只需尝试本link

中提供的一些步骤即可

一些参考代码

String languageToLoad = "hi"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());
this.setContentView(R.layout.activity_main);

它的工作。祝你好运:)

答案 3 :(得分:0)

在测试中,您必须更改设备语言以获取应用程序的特定语言,而用户如果不更改设备语言,则将获得默认语言。