Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
各种语言的android strings.xml,场景_Android_Localization_Locale - Fatal编程技术网

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

各种语言的android strings.xml,场景,android,localization,locale,Android,Localization,Locale,我有一个strings.xml问题 我的应用程序是英文的 values/strings.xml是英文的 应用程序中还有许多其他语言 我最新添加的字符串键位于英语区域设置文件夹values en/strings.xml,但不在默认语言文件夹values中 这将如何影响加载视图的非英语用户,该视图试图访问仅在值en中定义的字符串?操作系统会在一个文件中找到字符串并用英语显示吗 这对我来说很棘手,因为它不在默认值xml文件中 感谢您的洞察力将字符串系统想象为一系列if条件。首先,我们检查用户的语言,一

我有一个strings.xml问题

我的应用程序是英文的

values/strings.xml
是英文的

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

我最新添加的字符串键位于英语区域设置文件夹
values en/strings.xml
,但不在默认语言文件夹
values

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

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


感谢您的洞察力

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

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”文件夹,因此将其放在那里将适用于所有语言

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

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”文件夹,因此将其放置在该文件夹中将适用于所有语言

您可以通过在另一种语言的文件夹中添加新的字符串资源(而不是
res/values
res.values-en
)来测试这一点,我想你可以通过在另一种语言的文件夹中添加新的字符串资源(而不是
res/values
res.values-en
)来测试这一点。我会确保它们在默认文件夹中,因为我一直在做正确的事情,我测试了这个理论,应用程序崩溃了。我将确保它们像我一直做的那样位于默认文件夹中