可以在android中仅设置应用程序的默认英语语言
Posted
技术标签:
【中文标题】可以在android中仅设置应用程序的默认英语语言【英文标题】:Is possible to set only default English language of application in android 【发布时间】:2014-08-11 00:27:13 【问题描述】:我只想在android中设置only default English language of application
。
在Supporting Different Languages 之后,我还使用values/strings.xml
在该文件中存储字符。
如果in English language mode
的System Settings
,我可以显示正确的单词。
如果in Chinese language mode
的System Settings
,英文单词被翻译成中文。
我不希望它自动翻译。
知道如何set only default English language
的人,
请帮帮我。
谢谢,
【问题讨论】:
所以,删除/res/values-zh
,只留下/res/values
,那里有英文的strings.xml。
delete /res/values-zh and only leave /res/values
我只有/res/values
文件夹。 res/values/strings.xml
中的英文单词
那么中文单词存放在哪里呢?仅当您有一个包含 strings.xml 的 /res/values-XY[-ZK]
文件夹时,该应用程序才会翻译。最糟糕的是(但这不是最佳实践),您可以尝试将/res/values
复制为/res/values-zh
。这样,它将在该文件夹的 strings.xml 中查找中文单词,并显示存储在其中的英文字符串。但这只是 hack-ish 解决方法。
啊,我的意思是我改成System Settings -> Language & Input
,选择Chinese language
。因此,我的应用程序将自动更改跟随选择的选项。
是的,它就是这样工作的。
【参考方案1】:
您是否将两种语言的所有字符串都存储在一个 .xml 中?如果是这样,那可能是您的问题……
res/values/strings.xml 包含应用程序使用的所有字符串的英文文本,
res/values-ja/strings.xml - 用于日语,但我相信你可以找到一个你正在寻找的语言! Android 会寻找“values-ja”标签。
【讨论】:
【参考方案2】:我现在可以通过下面的代码得到正确的答案:
public static void setDefaultLanguage(Context context, String lang)
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
那,lang
的价值是什么?您应该获得正确的语言系统以将此值传递给lang
参数。
谢谢,
【讨论】:
您知道它是如何将字符串更改为其他语言的,即使您没有为其他值指定其他 strings.xml以上是关于可以在android中仅设置应用程序的默认英语语言的主要内容,如果未能解决你的问题,请参考以下文章