如何实现Android程序的多语言的支持

时间:2021-09-06 15:51:08
最近听说Android系统可以自动根据操作系统的语言自动选择我们程序的语言支持。我的理解是:Android系统会根据操作系统的语言为我们选择最适合的strings.xml。当然前提是我们的程序中拥有多个这个文件。我不知道自己的理解是不是对的。如果是这样的话,那么我们这么写我们的多语言的strings.xml。是不是还要在Manifest中声明啊。。。。。

如果不是这样,那么我们应该怎么改进我们的程序使其能够适应软件的多语言支持????????

谢谢各位了!!!!!!!

10 个解决方案

#1


Android中多语言,多屏幕大小,多方向等等的支持都是通过资源文件的不同路径实现。
比如语言
/res/values-zh/strings.xml
当切换到中文模式下,上面这个资源的字符串定义

#2


<activity android:name="LanguageSettings"
                android:label="@string/languangeSetting"
                android:clearTaskOnLaunch="true"
                >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.INPUT_METHOD_SETTINGS" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
        </activity>

#3


就是在res下面建立不同国家和地区缩写的strings.xml文件,这样同一个字符串id就可以实现多语言了。

Android:多语言对应 
http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html

#4


上面的几位都说的很详细了

#5


引用 3 楼 ameyume 的回复:
就是在res下面建立不同国家和地区缩写的strings.xml文件,这样同一个字符串id就可以实现多语言了。

Android:多语言对应 
http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html

这个不错

#6


该回复于2010-10-15 10:28:47被版主删除

#7


我还有个问题,怎么在Activity中调用strings.xml中定义的字符串????

#8



                String xuexi = res.getString(R.string.xuexi);



#9


不好意思,这个方法貌似不行啊,res没有这个方法啊~~~~~~~~~~~~~

#10


引用 9 楼 andyhan_1001 的回复:
不好意思,这个方法貌似不行啊,res没有这个方法啊~~~~~~~~~~~~~


res/values/string.xml

#1


Android中多语言,多屏幕大小,多方向等等的支持都是通过资源文件的不同路径实现。
比如语言
/res/values-zh/strings.xml
当切换到中文模式下,上面这个资源的字符串定义

#2


<activity android:name="LanguageSettings"
                android:label="@string/languangeSetting"
                android:clearTaskOnLaunch="true"
                >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.INPUT_METHOD_SETTINGS" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
        </activity>

#3


就是在res下面建立不同国家和地区缩写的strings.xml文件,这样同一个字符串id就可以实现多语言了。

Android:多语言对应 
http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html

#4


上面的几位都说的很详细了

#5


引用 3 楼 ameyume 的回复:
就是在res下面建立不同国家和地区缩写的strings.xml文件,这样同一个字符串id就可以实现多语言了。

Android:多语言对应 
http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html

这个不错

#6


该回复于2010-10-15 10:28:47被版主删除

#7


我还有个问题,怎么在Activity中调用strings.xml中定义的字符串????

#8



                String xuexi = res.getString(R.string.xuexi);



#9


不好意思,这个方法貌似不行啊,res没有这个方法啊~~~~~~~~~~~~~

#10


引用 9 楼 andyhan_1001 的回复:
不好意思,这个方法貌似不行啊,res没有这个方法啊~~~~~~~~~~~~~


res/values/string.xml