2
我有一個存儲在局部變量中的計算字符串。 我沒有辦法事先知道字符串,但我最終肯定知道它將是其中不同語言的翻譯字符串在string.xml文件中的字符串之一。android:以編程方式本地化一個動態字符串
如何將這樣的動態字符串轉換爲當前語言環境?
我有一個存儲在局部變量中的計算字符串。 我沒有辦法事先知道字符串,但我最終肯定知道它將是其中不同語言的翻譯字符串在string.xml文件中的字符串之一。android:以編程方式本地化一個動態字符串
如何將這樣的動態字符串轉換爲當前語言環境?
儘管這將需要相當長的,你可以通過所有的字符串迭代,檢查它們是否匹配,並返回如果他們這樣做的本地化版本:
public String translatedString(String s)
//Set the locale to en-us
Resources standardResources = context.getResources();
AssetManager assets = standardResources.getAssets();
DisplayMetrics metrics = standardResources.getDisplayMetrics();
Configuration config = new Configuration(standardResources.getConfiguration());
config.locale = Locale.US;
Resources defaultResources = new Resources(assets, metrics, config);
//Iterate over string res
Field fields[] = R.string.class.getFields();
for (Field field : fields) {
String value = defaultResources.getString(defaultResources.getIdentifier(field.getName(), "string", this.getPackageName())));
if (value.equals(s)){
return getResources().getString(getResources().getIdentifier(field.getName(), "string", this.getPackageName())));
}
}
return null;
}
對於動態翻譯不把字符串轉換爲字符串。 XML。 string.xml僅用於靜態資源。在這裏使用編程方法。 – AndRSoid