我有一个应用程序,我想用三种语言。现在我用不同的语言创建3个字符串资源,我的整个应用程序引用第一个。是否可以在事件触发器上引用其他2?任何人都可以详细解释。我听说过locale对象,但我不太确定它是如何工作的
答案 0 :(得分:0)
您知道可以使用特定于语言环境的资源目录来本地化字符串吗?
res/values/strings.xml
res/values-de-rCH/strings.xml
res/values-de-rAT/strings.xml
有关详细信息,请参阅http://developer.android.com/guide/topics/resources/localization.html#using-framework。
答案 1 :(得分:0)
是的,您可以在运行时在事件上执行此操作。或单击事件使用此代码
private void changeLanguage(String lang) {
// TODO Auto-generated method stub
Configuration conf = getApplicationContext().getResources()
.getConfiguration();
conf.setToDefaults();
///
if (conf.locale == null)
conf.locale = Locale.getDefault();
//////
if (lang.equalsIgnoreCase("english")) {
conf.locale = Locale.ENGLISH;
} else if (lang.equalsIgnoreCase("chinese")) {
conf.locale = Locale.TRADITIONAL_CHINESE;
}
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Resources resources = new Resources(
getApplicationContext().getAssets(), metrics, conf);
/* get localized string */
String str = resources.getString(R.string.back);
Log.i("mini", "Chinese:" + str);
}