我想从默认情况下更改我的应用程序语言

时间:2015-10-08 05:53:41

标签: java android xml

如何在Android应用程序中更改语言。我已经在使用string.xml文件来显示语言。

如何在单击单选按钮时选择两个xml文件

1 个答案:

答案 0 :(得分:4)

为此你必须使用本地化概念。谷歌在Android中的本地化..... 在项目的res文件夹中为要在项目中实现的每种语言创建一个新文件夹。在该文件夹中创建一个string.xml文件

MyProject/
res/
   values/<-----------this is default folder

   values-fr/ <-----------this folder is for French language(fr is iso code for french language you can check the iso codes for all languages on this link http://www.w3schools.com/tags/ref_language_codes.asp)

同样为每种语言创建值文件夹,假设您还必须在项目中实现urdu,那么您必须为urdu创建另一个值文件夹,如values-ur/ 现在你有三个值文件夹

MyProject/
res/
   values  <------ default
   values-fr <----for french
   values-ur <----for urdu

现在在所有文件夹中创建一个String.xml文件

MyProject/
res/
   values/string.xml
   values-fr/string.xml
   values-ur/string.xml

假设您有一个按钮,并且您想根据您选择的语言设置该按钮的文本... 在所有string.xml文件中添加内容,如

“对于values文件夹中的string.xml(默认文件夹),默认情况下这是英语”

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="my_button">create</string>
</resources>

“for values-ar中的string.xml”是法语

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="my_button">créer</string>
</resources>

“for values.xml in values-ur”是urdu

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="my_button">تخلیق</string>
</resources>

现在您已在string.xml中为所有三种语言创建了内容。需要注意的是,在所有string.xml文件中,将name属性的值保持为相同

<string name="my_button">Create</string> 

这里name属性的值是“my_button”,并且在所有三个string.xml中都是相同的。只有你必须改变为英语créer为法语和تخلیق为urdu创建的标签之间的文本... 现在像这样设置按钮的文本

android:text="@string/my_button"

现在的问题是你的项目中有三个string.xml文件,应用程序将从哪个string.xml设置按钮的文本???? 这取决于手机的区域设置。应用程序将根据您手机的区域自动从string.xml中选择文本。假设您的手机的区域设置设置为法语,那么app将从string.xml中选择文本,该文本位于values-ar文件夹中,而按钮上的文本将是créer..如果locale设置为urdu app将从string.xml中选择文本这对于urdu in values-ur文件夹和按钮上的文本将是تخلیق.. 你可以用编程方式改变app的语言环境..你用单选按钮做什么?只需根据所选的单选按钮更改区域设置.....希望它会对您有所帮助。