internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。
一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
各国语言缩写 http://www.loc.gov/standards/iso639-2/php/code_list.php
国家和地区简写 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
国家_地区语言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html
常见的有:
zh_cn: 简体中文
zh_hk: 繁体中文(中国香港)
zh_tw: 繁体中文(中国台湾地区)
en-hk: 英语(香港)
en_us: 英语(美国)
en_gb: 英语(英国)
en_ww: 英语(全球)
ja_jp: 日语(日本)
ko_kr: 韩文(韩国)
把UI中的字符串存储在外部文件,通过代码提取,这是一种很好的做法。Android可以通过工程中的资源目录轻松实现这一功能。
你一创建工程,则在工程的根目录会创建一个
res/的目录,目录中包含所有资源类型的子目录。其中包含工程的默认文件比如
res/values/strings.xml,用于保存字符串值。
res/中创建一个额外的
values目录以连字符和ISO国家代码结尾命名,比如
values-es/是为语言代码为"es"的区域设置的简单的资源文件的目录。Android会在运行时根据设备的区域设置,加载相应的资源。
YouProject/ res/ values/ strings.xml values-es/ strings.xml values-fr/ strings.xml
/values/strings.xml:
version="1.0" encoding="utf-8"?>"title">My Application "hello_world">Hello World!
/values-fr/strings.xml:
version="1.0" encoding="utf-8"?>"title">Mon Application "hello_world">Bonjour le monde !
元素的
name属性来引用自己的字符串资源。
R.string.语法来引用一个字符串资源,很多方法都可以通过这种方式来接受字符串。
// 从资源文件通过id获取你要的string资源 String tv_title= getResources().getString(R.string.title); TextView textView = new TextView(this); textView.setText(tv_title);
<resources>MyZhihuapp Hello world! Settings multidownload imageData resources>
MyZhihuapp ハローワールド! 設定 multidownload imagedata を扱う
MyZhihuapp 전 세계 여러분 안녕하세요! 설정 multidownload imageData
如果你的应用程序支持多国语言,你需要正确地管理你的翻译字符串资源。AndroidStudio提供的翻译编辑器进行查看和管理你的翻译资源
翻译资源存储在多个XML文件在您的项目中多个目录。手动查找和跨越许多翻译编辑资源文件是很困难的。正因为如此,你的应用程序可能会缺少被忽视,直到后您的申请已建成并分发给用户的翻译。
该翻译编辑器允许您在一个方便的地方查看并更新所有的字符串资源。编辑给你所有的翻译资源的单一视图,因此很容易更改或添加的翻译,甚至是寻找失踪的翻译。
请按照以下步骤启动翻译编辑:
的strings.xml
文件(不是文件夹),然后选择打开翻译编辑器。您也可以通过打开访问翻译编辑器的strings.xml
文件进行编辑,然后点击打开编辑器链接,或点击地球图标 的设计布局视图,然后选择编辑翻译。
该翻译编辑器提供了所有的字符串资源和当前语言环境翻译的景色。每个资源的名称在Key列中,与导航键的默认值一起,一个复选框来标记每个区域设置翻译键不能翻译,价值观。
编辑翻译通过翻译双击并直接在列表视图编辑值,或者选择翻译和编辑翻译在编辑器底部的字段值。默认值可以通过在默认值双击或选择默认值和更新的编辑默认值 字段。
如果资源缺少翻译和没有标记不可翻译的,关键名称显示为红色。如果你将鼠标悬停在一个红色资源,Android Studio中显示有关缺少翻译的细节。
通过单击添加图标添加新的资源。Android的工作室提示您输入包含一个键名,默认值,以及资源文件夹的strings.xml
其中添加新的资源文件。
按地球图标添加其他语言环境 ,并选择要添加的语言环境。该翻译编辑器增加了新的语言环境列,并会在适当的项目目录中的翻译字符串的XML文件。
该翻译编辑器有 BCP 47的支持,并结合语言和区域代码转化为有针对性的本地化单个选择。
每个App要做13种语言,包括:
简体中文:values-zh-rCN
繁体中文:values-zh-rTW(台湾),values-zh-rHK(香港)
阿拉伯语:values-ar
德语:values-de
英语:values-en
西班牙语:values-es
法语:values-fr
意大利语:values-it
日语:values-ja
朝鲜语:values-ko
葡萄牙语:values-pt
俄语:values-ru
泰语:values-th
越南语:values-vi
然后就是蛋疼的翻译工作,有时候如果app的string.xml文件中的条目比较多,那简直要人老命了,公司有个大神教了我一个比较牛逼的方法,详见文档:http://download.csdn.net/detail/liu537192/8025283