Android本地化问题

我正在翻译一个应用程序的过程。 看这个 ,我可以看到很多国家都有几个语言的代码。

我试着为NorwegianBokmål制作一个名为values-nb的文件夹。 我将手机上的语言环境更改为挪威语。 这工作在我的索尼Ericson Xperia 8,但不是在三星Galaxy Tab。

然后我尝试将文件夹重命名为值 – 不。 它现在在星系选项卡上工作,但不在xperia上。 我创build了这两个文件夹,它的工作原理。 但是,我必须把每个文件夹中的相同的文件!

如果有人select了挪威的Nynorsk,我会不得不创build另一个文件夹,以便他们不会默认使用英文,但可以得到挪威语的文本? 值-NN?

我想我的问题是这样的:我如何得到这个工作? 我可以制作所有这些文件夹,然后让它们参考值 – 不是吗? 请帮忙 :)

根据目前的search规则,没有办法针对特定的国家进行本地化,并且能够search所有语言。 至less这是我通过阅读http://developer.android.com/guide/topics/resources/localization.html网页的理解。您将需要创build值-nn-rNO,values-nb-rNO和值-no -rNO并且有重复的strings.xml条目。

我还没有尝试过,但在http://developer.android.com/guide/topics/resources/providing-resources.html#AliasResources查看string别名

我知道这是一个老的,但是这里有一个把no,nb和nn结合为一个的技巧:

Locale locale = getResources().getConfiguration().locale; if (locale.getLanguage().equals("no") || locale.getLanguage().equals("nb") || locale.getLanguage().equals("nn")){ locale = new Locale("no","NO"); Configuration config = new Configuration(); config.locale = locale; Resources res = getBaseContext().getResources(); res.updateConfiguration(config, res.getDisplayMetrics()); } 

不是原始问题的答案,而是相关问题的解决scheme,如果您为该问题search解决scheme(这是针对我),则这是一个可能的目的地。

在我们的项目中,我们创build了资源目录,但由于某些原因,本地化的string被忽略。

Android的支持生成伪本地化资源的问题。 在旧版本的Android中,您在build.gradle文件中使用了这个魔术:

 android.applicationVariants.all { variant -> // see http://blog.danlew.net/2014/04/16/android-localization-tips/ if (variant.buildType.isDebuggable()) { variant.mergedFlavor.addResourceConfiguration("zz_ZZ") } } 

这在Android的更高版本中已经发生了变化,如果你使用它,那么你将不会得到任何本地化。 新的方法是:

 buildTypes { debug { pseudoLocalesEnabled true } }