要获取Android应用程序本地化的语言列表,可以使用以下代码示例:
首先,在res
目录下创建一个values
文件夹,然后在该文件夹下创建一个strings.xml
文件。
在strings.xml
文件中定义应用程序支持的语言。例如,假设我们支持英语、法语和西班牙语,可以如下定义:
My App
Locale
类来获取本地化的语言列表。示例代码如下:import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List supportedLanguages = getSupportedLanguages();
for (String language : supportedLanguages) {
Log.d("Language", language);
}
}
private List getSupportedLanguages() {
List supportedLanguages = new ArrayList<>();
// 获取系统支持的语言列表
Locale[] availableLocales = Locale.getAvailableLocales();
// 遍历系统支持的语言列表
for (Locale locale : availableLocales) {
try {
// 尝试根据语言代码获取对应的资源
Resources resources = getResources();
Configuration config = resources.getConfiguration();
config.setLocale(locale);
resources.updateConfiguration(config, resources.getDisplayMetrics());
// 获取当前语言的应用名
String appName = getString(R.string.app_name);
// 如果获取应用名成功,表示该语言是支持的语言
supportedLanguages.add(locale.getDisplayName());
} catch (Resources.NotFoundException e) {
// 忽略未找到资源的异常
}
}
return supportedLanguages;
}
}
在上述代码中,getSupportedLanguages()
方法遍历系统支持的语言列表,然后尝试根据语言代码获取对应的资源。如果成功获取了资源,表示该语言是支持的语言,将其添加到supportedLanguages
列表中。最后,我们可以在onCreate()
方法中调用getSupportedLanguages()
方法,并打印出所有支持的语言。