可以在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 modeSystem Settings,我可以显示正确的单词。

如果in Chinese language modeSystem 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中仅设置应用程序的默认英语语言的主要内容,如果未能解决你的问题,请参考以下文章

Android国际化之多语言(配置及应用内设置)✈️

使用 Amazon SNS 在 Android GCM 中仅接收默认消息

应用和应用商店将默认语言显示为乌克兰语。需要英语[关闭]

强制Git使用默认的系统语言

如何为 iOS 应用设置默认本地化

如何在科尔多瓦 Android 应用程序中仅定位平板设备