英语/西班牙语应用程序:如何在值-es / strings中设置西班牙语的显示值,但是在应用程序中为ifs检查保留英语值?

时间:2015-09-26 05:36:37

标签: android xml

我的文件夹值是英文的strings.xml,而values-es文件夹是另一个西班牙语的string.xml。我有一个从操作栏打开的片段来设置设置并将它们存储在SharedPreferences中,这在英语中运行良好。我在应用程序中有很多if来检查共享偏好设置的内容,但是使用英文单词,现在在西班牙语的strings.xml中我想做这样的事情,以避免更改应用程序中的所有ifs。我尝试了这个,但它不起作用:

build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package

有没有办法做类似的事情?基本上我希望用户在首选项微调器上选择“Si”,但是当我从微调器获取值时,我希望它检索“是”

3 个答案:

答案 0 :(得分:1)

您好,请传递您要传递给字符串的值si并从您的微调器中取值yes,只是您可以尝试此示例 http://www.androidhive.info/2014/07/android-building-multi-language-supported-app/

答案 1 :(得分:1)

  

基本上我希望用户选择" Si"在偏好微调器上   但是当我从微调器获得值时,我希望它能够检索"是"

如果您要在Splanish中显示值,并且您想要检索的特定部分代码,则可能是您正在寻找的方式。

Resources res = getResources();
Configuration conf = res.getConfiguration();
Locale savedLocale = conf.locale; // Save your current locale first (Splanish in your case)
conf.locale = new Locale("es"); // Change the desired locale( English in your case) 
res.updateConfiguration(conf, null); 

// retrieve resources from desired locale 
String str = res.getString(id);

// restore original locale 
conf.locale = savedLocale;
res.updateConfiguration(conf, null);

我希望它会有所帮助。

答案 2 :(得分:1)

您应该使用常量来保存共享首选项所需的值,使其与语言无关。

例如,如果您有2个用于打开和关闭音乐命名的单选按钮,则应创建2个常量

public static final int ON = 1;
public static final int OFF = 0;

现在点击单选按钮,您应该检查单选按钮的ID并在共享首选项中保存适当的常量:

case: R.id.radio_on 
//save ON in shared preferences 
break; 
case: R.id.radio_off 
    //save OFF in shared preferences
     break;

然后你可以检查独立于任何语言的常量。