引言
走向国际是现在App的主流方向,一款App 要想做大就得放眼世界,不仅仅要占领国内市场,也要占领国外的市场。这就对App提出了一个新的要求——支持多国语言。
解决方案
关于如何解决这个问题,在谷歌的官方Training文档中其实已经告诉我们了。网址如下:
https://developer.android.com/training/basics/supporting-devices/languages.html
我来简要的说明一下那一堆堆的Words。
第一步: 在AS中将目录结构由平时用Android转为Project(为什么要切换?不切换你在第二步创建文件夹是看不到的);
第二步: 在对应Module的res 文件夹下创建新的文件夹(例如values-zh:用来适配中文语言的,默认的values是适配英文的);
第三步: 在 values-zh 里面创建资源文件 strings.xml来存储字符串;
第四步: 切回Android结构目录,可以看到values包下的strings.xml有2个;
其中:
strings.xml文件:
<resources>
<string name="app_name">SupportMultLanguages</string>
<string name="hello_world">Hello World!</string>
</resources>
strings.xml(zh)文件:
<resources>
<string name="hello_world">你好,世界</string>
</resources>
第五步: 在引用字符串的时候都从资源文件里获取即可。
activity_main布局文件:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
最后,切换语言即可自动调用不同的语言包下的strings.xml的字符串。
或许这就是为什么最好把字符串都提取到资源文件里的缘故吧。
最后
也许有的小伙伴会说我不知道那些语言对应的缩写啊。莫急,其实常用的就这么几个
中文:zh
英语:en(默认)
法语:fr
德语:de
什么?!还不够?!上我的大杀器http://www.loc.gov/standards/iso639-2/php/code_list.php