从另一个locales string.xml文件中获取一个字符串

时间:2017-09-21 10:34:38

标签: java android

示例:我想从“en”的语言环境文件(strings.xml)中获取字符串“about_message”,但当前在应用程序内部使用语言环境“de”,并且在引用时(R.string.about_message)返回de string值显然。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

假设您在values / strings.xml中有一个<string name="hello">Hello</string>,它在values-fr / strings.xml <string name="hello">Bonjour</string>中也有一个翻译(比如法语)。通常,您需要执行以下操作:

String s = getResources.getString(R.string.hello); // s: "Hello"

获得&#34; Bonjor&#34;字符串您必须创建一个替代资源实例,并通过更改为适合的区域设置来使用它来访问法语字符串:

Resources normalResources = getResources();
AssetManager assets = normalResources.getAssets();
DisplayMetrics metrics = normalResources.getDisplayMetrics();
Configuration config = new Configuration(standardResources.getConfiguration());
config.locale = Locale.FRENCH;
Resources frenchResources = new Resources(assets, metrics, config);

String s = defaultResources.getString(R.string.hello); // s: "Bonjour"

希望这有帮助。