各种语言,场景的android strings.xml

标签 android localization locale

我有一个 strings.xml 问题

我的应用程序是英文的。

values/strings.xml 是英文的

应用程序中还有许多其他语言

我最近添加的字符串键在 values-en/strings.xml 中,英语语言环境文件夹,但不在默认语言文件夹 values

这将如何影响加载 View 的非英语用户,该 View 试图访问仅在 values-en 中定义的字符串?操作系统会在该文件中找到该字符串并以英文显示吗?

这对我来说很棘手,因为它不在默认值 xml 文件中

谢谢指点

最佳答案

将字符串系统想象成一系列 if 条件。首先我们检查用户的语言,一旦我们检查了该特定语言的文件夹是否包含我们要查找的字符串。如果是,我们返回该字符串,否则我们默认检查“值”文件夹。

if (language.equals("en") {
   stringsFolders = "values-en";
} else if (language.equals("es") {
   stringsFolders = "values-es";
} 

if (stringsFolder.contains(key) {
    return stringsFolder.get(key);
} else if ("values".contains(key) {
    return "values".get(key);
} else {
    throw CantFindException();
}

如果一个字符串属于 values-en 并且西类牙用户查找它,他们将没有机会检查 values-en 文件夹,因为他们不符合条件。或者,默认情况下始终选中“values”文件夹,因此将它放在那里将适用于所有语言

关于各种语言,场景的android strings.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984659/

相关文章:

java - 在android中编辑选项菜单项内容/设置

c++ - boost 静态链接 boost.locale 错误

python - 缺少 python 所需的 en_US 语言环境

android - 检查 Android 中正在运行的语言环境

android - 在 Android 中使用开关切换蓝牙

android - 没有互联网连接的 AdMob

java - 安卓对话框阴影

asp.net - 在不过度使用元的情况下本地化 WebForms :resourcekey

java - 本地化路由和 URL 字符串

.net - 如何设置和更改 WPF 中的文化