例如,使用Custom locale in android时,目录名称是
res/drawable-en-rUS
res/values-fr-rCA
其中-r指定说出该语言的区域(国家).
什么时候还指定区域变体?我的客户要求我们支持英语,中文和三(3)种日语. (*)
我使用customized Application class设置语言环境,代码如下:
locale = new Locale(lang, country);
Locale.setDefault(locale);
config.locale = locale;
mContext.getResources().updateConfiguration(config,mContext.getResources().getDisplayMetrics());
并使用如下命名的资源目录:
/res/drawable-en
/res/drawable-cx
/res/drawable-ja
/res/drawable-ja-rHI
/res/drawable-ja-rFU
虽然这有效;最下面的两个条目是黑客.我正在使用想象中的国家名称作为区域,当我实际需要它们时
/res/drawable-ja-rJP-vHI
/res/drawable-ja-rJP-vFU
在日本指定变体.
还有另一个Locale()
构造函数,即
Locale(String language,String country,String variant);
如果我用它
locale = new Locale(“ja”,“JP”,“hi”);
如何指定资源目录,包括语言,区域和变体?
我在Providing Alternative Application Resources找到的最好的资源没有显示如何做到这一点.
(*)他们要求这些日语版本:
>仅限平假名
>平假名在汉字上面的假名
>正常的汉字平假名
解决方法:
这样做的问题是您不能将变体指定为资源文件夹.据我所知,变体字符串的唯一目的是能够将其显示给用户.老实说,我认为你的’黑客’可能是最好的解决方法.
即使它可能是其他方式,你使用的变体无论如何都不是区域变体,只是不同的方式来编写相同的东西. (就个人而言,我是混合的忠实粉丝,但我仍然只知道大约300个汉字,所以这有时会让我陷入困境……但这足以绕过去!)
标签:android,localization 来源: https://codeday.me/bug/20190630/1338718.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。