How to enter RTL string for Android TextView
-
18-06-2021 - |
Frage
I have an Android application which I wrote for english language now I want to convert it to farsi/persian language. I want to know how can i type persian text for the TextView text.How can i maintain both the english and persian String.xml.please help.
cheers Zolf
Locale locale = new Locale("fa-IR");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getApplicationContext().getResources().updateConfiguration(config, null);
where do i put this code,now i put this code in the OnCreate and it does not change the text of the TextView to persian
Lösung
For showing correct form of Persian characters use this solution.
Update
And for changing current resources that is loaded in your UI:
tf = Farsi.GetFarsiFont(this);
tvTitle01 = (TextView) findViewById(R.id.tvTitle01);
tvTitle01.setTypeface(tf);
tvTitle01.setText(Farsi.Convert(tvTitle01.getText().toString()));
Andere Tipps
Android has built-in mechanism of localization.
http://developer.android.com/guide/topics/resources/localization.html
you can create the different folder of values as per language and can keep different string.xml file for each language. Example:
res/values/strings.xml
Contains English text for all the strings that the application uses, including text for a string named title.
res/values-fr/strings.xml
Contain French text for all the strings, including title.
res/values-ja/strings.xml
Contain Japanese text for all the strings except title.
If your Java code refers to R.string.title, here is what will happen at runtime:
If the device is set to any language other than French, Android will load title from the res/values/strings.xml
file.
If the device is set to French, Android will load title from the res/values-fr/strings.xml
file.