Android学习----自适应国际化语言
2016-01-27 14:03
525 查看
转载自点击打开链接
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是
zh-rCN; 表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是
zh-rCN; 表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
http://www.cnblogs.com/smyhvae/p/4149592.html
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是 zh-rCN;
表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是
zh-rCN; 表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
【前言】
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化
),简称L10n。
一般用语言_地区的形式表示一种语言,如:zh_CN表示简体中文。
操作方法:
为了支持国际化语言,我们只要在res/目录下在重新新建文件夹为:values-国家编号,如values-zh-rCN表示简体中文,values-zh-rTW表示繁体,values-jp表示日语等。
注:配置选项包括语言代号和地区代号。表示中文和中国的配置选项是
zh-rCN; 表示英文和美国的配置选项是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中国和美国;前面的r是必须的。
举例:支持中文简体的国际化
操作如下:
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" Android_i18n"</string> 5 <string name="hello_world">Hello world!</string> 6 <string name="action_settings">Settings</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
不做任何修改,直接在手机上运行程序,默认的效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071711080305214.png)
声明:我的手机默认的语言是设置为中文的:
![](http://images.cnitblog.com/blog/641601/201412/071712154836606.png)
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置嘛。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
![](http://images.cnitblog.com/blog/641601/201412/071713511863635.png)
注:如果想再加一个英语的国际化,新建的文件夹为values-en即可。
修改res/values-zh-rCN/strings.xml的代码,如下:
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 8 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
此时运行程序,效果如下:
![](http://images.cnitblog.com/blog/641601/201412/071714523581847.png)
因为手机设置的是中文语言,此时加载的字符串是res/values-zh-rCN/目录下的资源。
大功告成。
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:此时,如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
1 <Button 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:text="@string/login_button"/>
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
![](http://common.cnblogs.com/images/copycode.gif)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
![](http://common.cnblogs.com/images/copycode.gif)
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
![](http://common.cnblogs.com/images/copycode.gif)
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 4 <string name="app_name">" 安卓国际化"</string> 5 <string name="hello_world">你好,世界</string> 6 <string name="action_settings">设置</string> 7 <string name="login_button">登陆按钮</string> 8 9 </resources>
![](http://common.cnblogs.com/images/copycode.gif)
效果:
activity_main.xml的视图如下:
![](http://images.cnitblog.com/blog/641601/201412/071720080613997.png)
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721177803732.png)
如果手机的语言设置为中文,效果如下:(能正常显示)
![](http://images.cnitblog.com/blog/641601/201412/071721384984902.png)
其实,国际化并不难,但是如果想支持更多国家的语言,工作量会很大的。
最后附上用于平时用于查阅的东西:
国家_地区的语言缩写代码:(查询备用)
![](http://images.cnitblog.com/blog/641601/201412/071728005301889.png)
附上国际化资源的常用链接:
各国语言缩写: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
相关文章推荐
- Android内存泄漏的各种原因详解
- Android中的倒计时
- Android中SharedPreferences和序列化结合保存对象数据
- 安卓中的Model-View-Presenter模式介绍[Introduction to Model View Presenter on Android]
- android 内存泄漏排查之旅
- android override
- android SharedPreferences介绍
- Android 双指缩放控件
- Android Performance Patterns(Android性能典范)
- RecyclerView和SwipeRefreshLayout的使用
- Android学习笔记之文件的保存与读取
- Android开发中出现in the gradle.properties file, sets the maximum Java heap size to 1024m的解决方法
- Android系统移植(一)
- android ListView添加Headview和Footview后onItemClick的position错误
- Android Studio视频教程——Android Studio Essential Training
- the path to become a better android developer is starting up
- Android笔记:根据进度代码改变progressbar背景颜色,ClipDrawable,LayerDrawable,setProgressDrawable
- 【Android开发】深入理解硬盘缓存类DiskLruCache:源码分析
- Android-AsyncTask及UncaughtExceptionHandler捕获全局性异常(ANR、FC)
- Android开源项目第一篇:个性化控件(View)篇