2013-05-25 16 views
0

我正在开发一个应用程序,它获取所有系统可用的区域设置并显示在列表视图中,供用户选择以更改应用程序语言(就像android的语言更改选项一样)。如何显示基于资源可用性的区域设置列表

但我在应用程序资源中有几个res/values文件夹,如值(缺省值),值-bn,值-zh,值-ar。所以我希望这4种语言在列表中显示。我怎样才能做到这一点?我需要以编程方式执行此操作。

想,我有4个文件夹values, values-bn, values-en, values-zh

然后我只能说明,

Bengali 
English 
Chinese 
+0

你期望它说什么?默认的'values'文件夹不一定要使用任何特定的语言。 – Eric

+0

默认'values'文件夹将包含英文。如果可用值文件夹的任何字符串资源(即值-bn)缺失,它将被用作备份,它将从默认文件夹 –

+0

呈现。然后,只需在列表开始处以“英文”进行硬编码。没有办法自动检测英文默认,所以你只需要伪装它。 – Eric

回答

0

OK,所以你想做的事就是有四种语言:英语,孟加拉语,中国和阿拉伯语,有我明白了吗? (你的问题在内部不一致,所以很难说)。

而且您希望为这四种语言之一中缺少字符串的情况设置一组回退值。回退值是英文的,尽管系统不会知道或关心这些。

所以,你想要做的就是把四个语言的字符串在值恩值-BN值-ZH,并值-AR目录和回退串在什么目录。

事实上,因为你的后备字符串是英文的,你可以只把它们放在目录,并在空资源文件中的值恩目录。英文仍会显示在列表中。

但是为什么不把英文版的字符串放在values-en目录下呢?

+0

感谢您的回应:)我的问题的主要查询是 - 如果我的'res'目录中有三个语言环境的值文件夹,那么如何才能在列表中显示三种语言,排除其他没有值文件夹的语言? –

+0

啊,不同的问题。那么,不要理会我的答案。为什么不只是将已知区域设置列表硬编码到您的应用程序中。每次添加新语言环境时都必须修改列表,但这不是很糟糕吗? –

+0

是的,我已经决定了。但我认为可能有更好的方式来以编程方式进行。这就是为什么我在等待。现在我将对它进行硬编码,因为资源是静态的,并且很少需要更改。 请编辑您的答案与**硬编码**的信息,以便我可以接受您的答案。谢谢 :) –

相关问题