我们如何根据语言菜单中的选择更改语言。
答案 0 :(得分:3)
public static Typeface hindiTypeface;
public static Typeface getTypeface(Context mContext) {
int languageOptionValue = 0;
if (WelcomeActivity.userSettings != null) {
languageOptionValue = WelcomeActivity.userSettings.getInt(
"language", 0);
}
if (languageOptionValue == 1) {
if (hindiTypeface == null)
hindiTypeface = initHindiFont(mContext);
return hindiTypeface;
} else {
return Typeface.DEFAULT;
}
}
public static Typeface initHindiFont(Context mContext) {
AssetManager assetManagerHindi = mContext.getAssets();
try {
assetManagerHindi.open("droid_hindi.ttf");
} catch (IOException e) {
e.printStackTrace();
}
return Typeface.createFromAsset(assetManagerHindi, "droid_hindi.ttf");
}
这些用于在api级别4中播放印地文文本。
答案 1 :(得分:2)
在 res 文件夹中,您应该有一个名为值的文件夹。在该文件夹中,放置一个 strings.xml 文件。
strings.xml 文件应包含类似
的内容<resources>
<string name="app_name">My App Name</string>
<string name="someText">someText in default language</string>
<string name="nonTranslatedText">someText only in default language</string>
</resources>
如果您想支持其他语言,只需在res中创建其他值文件夹,同时包含包含翻译的string.xml文件。
因此,如果您想支持荷兰语,请在 values-nl 文件夹中创建一个strings.xml,其中包含:
<resources>
<string name="app_name">My App Name in Dutch</string>
<string name="someText">someText in Dutch</string>
</resources>
当用户切换语言时,Android会自动选择翻译。如果找不到给定语言的翻译(例如:nonTranslatedText字符串),则默认为 res / values / strings.xml 中的翻译。
您可以在布局中引用这些字符串,如下所示:
<Button android:id="@+id/someId" style="@style/someStyle" android:text="@string/someText"/>
或者像这样的java对象:
context.getString(R.string.someText);