android——实现多语言支持
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MyProject/
res/
values/
strings.xml
values-es/
string.xml
values-fr/
string.xml
把字符串值添加到合适的文件中,在运行时,Android根据本地用户的设置来使用合适的字符串资源。例如,下面s/string.xml
西班牙语, /values-es/strings.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="title">Mi Aplicación</string> 4 <string name="hello_world">Hola Mundo!</string> 5 </resources>
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
android——实 现 多 语 言 支 持
我们知道,建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录。这些都是程序默认的资源文件目录,如果 要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。步骤如下:
2、在源代码中,可以使用语句R.string.<string_name>来引用字符串资源,例如:
1 // Get a string resource from your app's Resources 2 String hello = getResources().getString(R.string.hello_world); 3 4 // Or supply a string resource to a method that requires a string 5 TextView textView = new TextView(this); 6 textView.setText(R.string.hello_world);
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="title">My Application</string> 4 <string name="hello_world">Hello World!</string> 5 </resources>
English, US (en_US) -----------------------------------英语,美国 English, Zimbabwe (en_ZA) --------------------------英语,津巴布韦 Spanish (es_ES) ----------------------------------------西班牙 Spanish, US (es_US) -----------------------------------西班牙语,美国 Finnish, Finland (fi_FI) ---------------------------------芬兰语,芬兰 French, Belgium (fr_BE) -------------------------------法语,比利时 French, Canada (fr_CA) -------------------------------法语,加拿大 French, Switzerland (fr_CH) --------------------------法语,瑞士 French, France (fr_FR) --------------------------------法语,法国 Hebrew, Israel (he_IL) ---------------------------------希伯来语,以色列 Hindi, India (hi_IN) -------------------------------------印地语,印度 Croatian, Croatia (hr_HR) ----------------------------克罗地亚语,克罗地亚 Hungarian, Hungary (hu_HU) ------------------------匈牙利语,匈牙利 Indonesian, Indonesia (id_ID) ------------------------印尼语,印尼 Italian, Switzerland (it_CH) ----------------------------意大利语,瑞士 Italian, Italy (it_IT) ---------------------------------------意大利语,意大利 Japanese (ja_JP) ----------------------------------------日语 Korean (ko_KR) ------------------------------------------朝鲜语 Lithuanian, Lithuania (lt_LT) --------------------------立陶宛语,立陶宛 Latvian, Latvia (lv_LV) ---------------------------------拉托维亚语,拉托维亚 Norwegian-Bokmol, Norway(nb_NO) ---------------挪威语,挪威 Dutch, Belgium (nl_BE) --------------------------------荷兰语,比利时 Dutch, Netherlands (nl_NL) ---------------------------荷兰语,荷兰 Polish (pl_PL) -------------------------------------------波兰 Portuguese, Brazil (pt_BR) ---------------------------葡萄牙语,巴西 Portuguese, Portugal (pt_PT) ------------------------葡萄牙语,葡萄牙 Romanian, Romania (ro_RO) ------------------------罗马尼亚语,罗马尼亚 Russian (ru_RU) ----------------------------------------俄语 Slovak, Slovakia (sk_SK) ------------------------------斯洛伐克语,斯洛伐克 Slovenian, Slovenia (sl_SI) ---------------------------斯洛文尼亚语,斯洛文尼亚 Serbian (sr_RS) ----------------------------------------塞尔维亚语 Swedish, Sweden (sv_SE) ----------------------------瑞典语,瑞典 Thai, Thailand (th_TH) --------------------------------泰语,泰国 Tagalog, Philippines (tl_PH) --------------------------菲律宾语,菲律宾 Turkish, Turkey (tr_TR) -------------------------------土耳其语,土耳其 Ukrainian, Ukraine (uk_UA) --------------------------联合王国 Vietnamese, Vietnam (vi_VN) -----------------------越南语,越南 Chinese, PRC (zh_CN)--------------------------------中文,中国 Chinese, Taiwan (zh_TW)-----------------------------中文,台湾
法语,/values-fr/strings.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="title">Mon Application</string> 4 <string name="hello_world">Bonjour le monde !</string> 5 </resources>
1)创建本地文件夹和字符串文件
为了支持更多语言,在res/中创建其他的values扩展的文件夹,并在文件夹名后加上一个横线和国家的ISO码。例如,values-es/就是包 含代码为"es"的资源文件夹。Android在运行时根据设置加载合适的资源。一旦你觉得了需要支持的语言,就可以创建资源的子文件夹和字 符串文件了。例如:
android多国语言文件夹文件汇总如下:
Arabic, Egypt (ar_EG) -----------------------------阿拉伯语,埃及 Arabic, Israel (ar_IL) -------------------------------阿拉伯语,以色列 Bulgarian, Bulgaria (bg_BG) ---------------------保加利亚语,保加利亚 Catalan, Spain (ca_ES) ---------------------------加泰隆语,西班牙 Czech, Czech Republic (cs_CZ) -----------------捷克语,捷克共和国 Danish, Denmark(da_DK) ------------------------丹麦语,丹麦 German, Austria (de_AT) -------------------------德语,奥地利 German, Switzerland (de_CH) -------------------德语,瑞士 German, Germany (de_DE) ----------------------德语,德国 German, Liechtenstein (de_LI) ------------------德语,列支敦士登的 Greek, Greece (el_GR) ----------------------------希腊语,希腊 English, Australia (en_AU) -------------------------英语,澳大利亚 English, Canada (en_CA) --------------------------英语,加拿大 English, Britain (en_GB) ----------------------------英语,英国 English, Ireland (en_IE) -----------------------------英语,爱尔兰 English, India (en_IN) --------------------------------英语,印度 English, New Zealand (en_NZ) ---------------------英语,新西兰 English, Singapore(en_SG) --------------------------英语,新加坡
2)使用字符串资源
使用字符资源有以下两种方法:
1、在xml文件中,采用@string/<string_name>来引用字符串属性,例如:
1 <TextView 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:text="@string/hello_world" />
res/
values/
strings.xml
values-es/
string.xml
values-fr/
string.xml
把字符串值添加到合适的文件中,在运行时,Android根据本地用户的设置来使用合适的字符串资源。例如,下面s/string.xml
西班牙语, /values-es/strings.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="title">Mi Aplicación</string> 4 <string name="hello_world">Hola Mundo!</string> 5 </resources>
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
android——实 现 多 语 言 支 持
我们知道,建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录。这些都是程序默认的资源文件目录,如果 要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。步骤如下:
2、在源代码中,可以使用语句R.string.<string_name>来引用字符串资源,例如:
1 // Get a string resource from your app's Resources 2 String hello = getResources().getString(R.string.hello_world); 3 4 // Or supply a string resource to a method that requires a string 5 TextView textView = new TextView(this); 6 textView.setText(R.string.hello_world);
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="title">My Application</string> 4 <string name="hello_world">Hello World!</string> 5 </resources>
English, US (en_US) -----------------------------------英语,美国 English, Zimbabwe (en_ZA) --------------------------英语,津巴布韦 Spanish (es_ES) ----------------------------------------西班牙 Spanish, US (es_US) -----------------------------------西班牙语,美国 Finnish, Finland (fi_FI) ---------------------------------芬兰语,芬兰 French, Belgium (fr_BE) -------------------------------法语,比利时 French, Canada (fr_CA) -------------------------------法语,加拿大 French, Switzerland (fr_CH) --------------------------法语,瑞士 French, France (fr_FR) --------------------------------法语,法国 Hebrew, Israel (he_IL) ---------------------------------希伯来语,以色列 Hindi, India (hi_IN) -------------------------------------印地语,印度 Croatian, Croatia (hr_HR) ----------------------------克罗地亚语,克罗地亚 Hungarian, Hungary (hu_HU) ------------------------匈牙利语,匈牙利 Indonesian, Indonesia (id_ID) ------------------------印尼语,印尼 Italian, Switzerland (it_CH) ----------------------------意大利语,瑞士 Italian, Italy (it_IT) ---------------------------------------意大利语,意大利 Japanese (ja_JP) ----------------------------------------日语 Korean (ko_KR) ------------------------------------------朝鲜语 Lithuanian, Lithuania (lt_LT) --------------------------立陶宛语,立陶宛 Latvian, Latvia (lv_LV) ---------------------------------拉托维亚语,拉托维亚 Norwegian-Bokmol, Norway(nb_NO) ---------------挪威语,挪威 Dutch, Belgium (nl_BE) --------------------------------荷兰语,比利时 Dutch, Netherlands (nl_NL) ---------------------------荷兰语,荷兰 Polish (pl_PL) -------------------------------------------波兰 Portuguese, Brazil (pt_BR) ---------------------------葡萄牙语,巴西 Portuguese, Portugal (pt_PT) ------------------------葡萄牙语,葡萄牙 Romanian, Romania (ro_RO) ------------------------罗马尼亚语,罗马尼亚 Russian (ru_RU) ----------------------------------------俄语 Slovak, Slovakia (sk_SK) ------------------------------斯洛伐克语,斯洛伐克 Slovenian, Slovenia (sl_SI) ---------------------------斯洛文尼亚语,斯洛文尼亚 Serbian (sr_RS) ----------------------------------------塞尔维亚语 Swedish, Sweden (sv_SE) ----------------------------瑞典语,瑞典 Thai, Thailand (th_TH) --------------------------------泰语,泰国 Tagalog, Philippines (tl_PH) --------------------------菲律宾语,菲律宾 Turkish, Turkey (tr_TR) -------------------------------土耳其语,土耳其 Ukrainian, Ukraine (uk_UA) --------------------------联合王国 Vietnamese, Vietnam (vi_VN) -----------------------越南语,越南 Chinese, PRC (zh_CN)--------------------------------中文,中国 Chinese, Taiwan (zh_TW)-----------------------------中文,台湾
法语,/values-fr/strings.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="title">Mon Application</string> 4 <string name="hello_world">Bonjour le monde !</string> 5 </resources>
1)创建本地文件夹和字符串文件
为了支持更多语言,在res/中创建其他的values扩展的文件夹,并在文件夹名后加上一个横线和国家的ISO码。例如,values-es/就是包 含代码为"es"的资源文件夹。Android在运行时根据设置加载合适的资源。一旦你觉得了需要支持的语言,就可以创建资源的子文件夹和字 符串文件了。例如:
android多国语言文件夹文件汇总如下:
Arabic, Egypt (ar_EG) -----------------------------阿拉伯语,埃及 Arabic, Israel (ar_IL) -------------------------------阿拉伯语,以色列 Bulgarian, Bulgaria (bg_BG) ---------------------保加利亚语,保加利亚 Catalan, Spain (ca_ES) ---------------------------加泰隆语,西班牙 Czech, Czech Republic (cs_CZ) -----------------捷克语,捷克共和国 Danish, Denmark(da_DK) ------------------------丹麦语,丹麦 German, Austria (de_AT) -------------------------德语,奥地利 German, Switzerland (de_CH) -------------------德语,瑞士 German, Germany (de_DE) ----------------------德语,德国 German, Liechtenstein (de_LI) ------------------德语,列支敦士登的 Greek, Greece (el_GR) ----------------------------希腊语,希腊 English, Australia (en_AU) -------------------------英语,澳大利亚 English, Canada (en_CA) --------------------------英语,加拿大 English, Britain (en_GB) ----------------------------英语,英国 English, Ireland (en_IE) -----------------------------英语,爱尔兰 English, India (en_IN) --------------------------------英语,印度 English, New Zealand (en_NZ) ---------------------英语,新西兰 English, Singapore(en_SG) --------------------------英语,新加坡
2)使用字符串资源
使用字符资源有以下两种方法:
1、在xml文件中,采用@string/<string_name>来引用字符串属性,例如:
1 <TextView 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:text="@string/hello_world" />