如何为Android TextView输入RTL字符串

时间:2012-06-30 05:47:54

标签: android localization persian farsi

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

欢呼声 Zolf

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

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

2 个答案:

答案 0 :(得分:2)

要显示正确形式的波斯字符,请使用this solution

<强>更新

用于更改UI中加载的当前资源:

tf = Farsi.GetFarsiFont(this);

tvTitle01 = (TextView) findViewById(R.id.tvTitle01);
tvTitle01.setTypeface(tf);
tvTitle01.setText(Farsi.Convert(tvTitle01.getText().toString()));

答案 1 :(得分: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文件加载标题。