/res/values-ar
(アラビア語のstrings.xmlの場合)
strings.xml
ファイル内では、 のリソース名は同じです。また
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">مرحبا في اللغة الإنجليزية</string>
</resources>
:/res/values-ar/strings.xmlファイルは次のようになり、一方で
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello in English!</string>
</resources>
:
例えば、/res/values-en/strings.xml
ファイルが このようになります。 、/res/values-ur_IN/strings.xmlファイルはurduの場合は次のようになります。
インド向けur_INパキスタンのur_PK
文字列を表示/ resを/レイアウトディレクトリのデフォルトのレイアウトファイルは、文字列リソースがどの言語やディレクトリ に関係なく、変数名@文字列/ハローによって 文字列を指し
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">انگریزی میں خوش!!</string>
</resources>
。
Androidオペレーティングシステムは、文字列(フランス語、英語、またはデフォルト)は次のようになります文字列を表示するのTextViewコントロール でruntime.Aレイアウト時にロードする のバージョンを決定します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello" >
</LinearLayout>
文字列は、通常の方法でプログラム的にアクセスされます:
変更については
String str = getString(R.string.hello);
あなたがその変更LANGを好きに必要な言語が..
btn_english.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, getResources().getString(R.string.lbl_langSelectEnglis), Toast.LENGTH_SHORT).show();
}
});
btn_arbice.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Locale locale = new Locale("ar");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, getResources().getString(R.string.lbl_langSelecURdu), Toast.LENGTH_SHORT).show();
}
});
btn_urdu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Locale locale = new Locale("ur_IN");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(HomeActivity.this, getResources().getString(R.string.lbl_langSelectEnglis), Toast.LENGTH_SHORT).show();
}
});
はまた、単一の画面でこの例を参照してください
Custom fonts for TextView based on languages inside String
文字列の段落= "ちょっと変わったよ"; int NO_FLAG = 0;Bidi bidi =新しいBidi(段落、NO_FLAG); int runCount = bidi。getRunCount();(int i = 0; i < runCount; i ++){ String ltrtl = bidi.getRunLevel(i)%2 == 0? "ltr": "rtl"; 文字列subString = paragraph.substring(bidi.getRunStart(i)、bidi.getRunLimit(i)); Log.d( ">> bidi:" + i、subString + "は" + ltrtl)です。 }
プリント:
ねえどうしたのです
ضعيفはだから今1は、簡単にこのような言語の方向に基づいてTypefaceSpan
またはMetricAffectingSpan
を構築することができ、RTL
あるLTRです:
を
SpannableString spanString = new SpannableString(paragraph);
for (int i = 0; i < runCount; i++) {
Object span = bidi.getRunLevel(i) % 2 == 0 ? ltrFontSpan : rtlFontSpan;
spanString.setSpan(span, bidi.getRunStart(i), bidi.getRunLimit(i), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(spanString);