永发信息网

android多语言的纠结问题

答案:5  悬赏:30  手机版
解决时间 2021-11-12 16:54
  • 提问者网友:却不属于对方
  • 2021-11-12 09:48
android多语言的纠结问题
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-11-12 10:55
android多语言实现必须是将strings.xml放在不同的文件夹目录下,由安卓系统自动去加载文字资源。


Android 中要实现国际化比较简单,字符串国际化:只要在 res 文件夹下新建对应语言的 values 文件夹就好了。
例如:
    英语环境下的,文件夹命名为:values-en 
    美国英文环境:values-en-rUS 
    中文环境为:values-zh 
    大陆地区中文环境: values-zh-cn
 eclipse 下新建 Android 项目时,会在 res 目录下自动创建一个默认语言环境的文件夹 : values 。

   当某一个资源没有在语言环境的对应的资源集合中找到时,就会使用 values 下的资源。 若某一个语言环境没有在项目中定义语言环境,那么也会使用 values 下的资源。


android多国语言文件夹文件汇总如下:

中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文:  values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values--r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
全部回答
  • 1楼网友:人间朝暮
  • 2021-11-12 13:37
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
英语都分这么多种,现在应该有两种解决方案。
第一:如果西班牙语也可以分类的话,你可以定义多份xml文件,让应用随着系统语言改变而改变。
第二:如果西班牙语实在是分不出这么多类,那你只能自定义应用的配置文件了,让用户自己选择使用某种西班牙语。
你这么问题我觉得第二种方法更适合,体验性也更好一些。
  • 2楼网友:有你哪都是故乡
  • 2021-11-12 12:11
android不是可以配置不同的语言xml吗,多配置几个,1、要不程序读取系统当前默认语言进行自动切换app语言版本,2、在app进入时让用户选择一次进行默认保存
  • 3楼网友:野慌
  • 2021-11-12 12:00

Android应用支持多语言,包括同一种语言的变种(方言),比如就英语而言有,

  • en-rGB    英国英语

  • en-rUS    美国英语

  • en-rCA    加拿大英语

  • ...


如果想处理这些变种里翻译不同的地方,可以创建多份语言资源,放到应用程序源代码里对应的资源目录,这样build出apk,用户安装以后,应用程序会自动根据用户手机里的语言设置选择对应的字符串显示。

  • /res/values-en-rGB/strings.xml

  • /res/values-en-rUS/strings.xml

  • /res/values-en-rCA/strings.xml


类似地,就西班牙语而言也有很多变种,你可以判断一下这些客户使用的是哪个变种,然后分目录存放对应的翻译。

  • es            一般的西班牙语(general)

  • es-rAR    阿根廷西班牙语

  • es-rBO

  • es-rCL

  • es-rCO    哥伦比亚西班牙语

  • es-rCR

  • es-rDO

  • es-rEC

  • es-rES    卡斯蒂利亚西班牙语 (西班牙人听说读写用的)    

  • es-rGT

  • es-rHN

  • es-rMX    墨西哥西班牙语

  • es-rNI

  • es-rPA

  • es-rPE

  • es-rPR

  • es-rPY

  • es-rSV

  • es-rUS    美国西班牙语

  • es-rUY

  • es-rVE

  • ...

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯