我正在尝试制作具有多种语言的android应用。我有一个字符串数组。我正在尝试做的是使此数组用于多种语言。例如;我有一个英语数组,例如“水星,金星,地球,火星”。我也有一些土耳其语,例如“Merkür,Venüs,Dünya,火星”。我正在使用“语言环境”属性学习设备的主要语言,并且可以显示该语言。但是我想做的是显示语言数组取决于设备的主要语言。
如我所说,我有两个阵列。我试图学习设备的语言并均衡字符串数组。但是由于.equals参数,我无法使它们均衡。没用
String[] TurkishPlanetNames ={"Merkür", "Venüs", "Dünya", "Mars", "Jüpiter", "Satürn", "Uranüs", "Neptün"};
String[] PlanetNames ={"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"};
Locale locale = ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration()).get(0);
if (locale.getLanguage().equals("en-US")){
Toast.makeText(getApplicationContext(), "It worked!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "It didn't work!", Toast.LENGTH_LONG).show();
}
因此,我如何才能使设备的语言和字符串“ en-US”相等。 .equals-.compareTo-.contentEquals-.matches不起作用。
最佳答案
不管您的设备使用哪种英语版本(英国/美国),locale.getLanguage();
都将仅返回“ en”。
以下调用将以您尝试在.equals();
中使用的格式返回字符串
Locale.getDefault().toString(); //e.g. returns "en_US"
但请确保使用下划线而不是连字符。
或者,按如下方式使用当前使用的方法:
if (locale.getLanguage().equals(new Locale("en").getLanguage())) {
//...
}
(source)
关于java - Locale.getLanguage()等于String,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55534086/