3

我有一个为英语编写的 Android 应用程序,现在我想将其转换为波斯语/波斯语。我想知道如何为 TextView 文本键入波斯文文本。如何同时维护英文和波斯文 String.xml。请帮忙。

欢呼佐尔夫

Locale locale = new Locale("fa-IR"); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    getBaseContext().getApplicationContext().getResources().updateConfiguration(config, null); 

我把这段代码放在哪里,现在我把这段代码放在 OnCreate 中,它不会将 TextView 的文本更改为波斯语

4

2 回答 2

2

要显示正确形式的波斯字符,请使用此解决方案

更新

以及更改 UI 中加载的当前资源:

tf = Farsi.GetFarsiFont(this);

tvTitle01 = (TextView) findViewById(R.id.tvTitle01);
tvTitle01.setTypeface(tf);
tvTitle01.setText(Farsi.Convert(tvTitle01.getText().toString()));
于 2012-06-30T07:46:55.747 回答
1

Android 有内置的本地化机制。

http://developer.android.com/guide/topics/resources/localization.html

您可以根据语言创建不同的值文件夹,并且可以为每种语言保留不同的 string.xml 文件。例子:

res/values/strings.xml 包含应用程序使用的所有字符串的英文文本,包括名为 title 的字符串的文本。

res/values-fr/strings.xml 包含所有字符串的法语文本,包括标题。

res/values-ja/strings.xml 包含除标题之外的所有字符串的日语文本。

如果您的 Java 代码引用 R.string.title,以下是运行时会发生的情况:

如果设备设置为法语以外的任何语言,Android 将从res/values/strings.xml文件中加载标题。

如果设备设置为法语,Android 将从res/values-fr/strings.xml文件中加载标题。

于 2012-06-30T05:51:01.567 回答