Android 多语言支持
Android mutilanguage support
我发现要让应用程序支持印地语等语言,您需要执行以下操作:-
1. 在 res 文件夹中,创建包含语言特定字符串文件的语言限定符的文件夹。
2. 在你的布局文件中,不要硬编码文本,而是使用@string/hello_info 等变量。
3.在assets下新建一个fonts文件夹,添加合适的.ttf文件进去。
然而,在某些地方,我还看到 另外 使用了以下内容。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.textView);
Typeface hindi = Typeface.createFromAsset(getAssets(), "fonts/mangle.ttf");
tv.setTypeface(hindi);
}
现在需要这样做吗?如果需要,在什么情况下需要这样做?我只需要通过布局显示多语言文本。
此外,关于设备的区域设置,即假定例如在印度,区域设置将自动设置为该区域的适当值?
我怎样才能通过设备或模拟器对此进行测试?我的设备只显示英语(英国)、英语(美国)、法国和西班牙。
提前致谢
是的,这是必需的,因为
Typeface hindi = Typeface.createFromAsset(getAssets(), "fonts/mangle.ttf");
tv.setTypeface(hindi);
Typeface 使用 ttf 字体为您的 textViews 文本设置任何类型的字体 file.That 可以是印地文、法国、西班牙等。
此代码仅对设置 custom font
和您在资产上添加的 .ttf
文件有用:
TextView tv = (TextView) findViewById(R.id.textView);
Typeface hindi = Typeface.createFromAsset(getAssets(), "fonts/mangle.ttf");
tv.setTypeface(hindi);
所以答案是肯定的。
the locale would be automaticcally set to the appropriate value for
that area?
如果设备语言是该语言,是。
语言文档: http://developer.android.com/training/basics/supporting-devices/languages.html
Localization-checklist: http://developer.android.com/distribute/tools/localization-checklist.html
您可以设置语言:
Locale locale = new Locale("en_US");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
SettingActivity.this.getApplicationContext().getResources().updateConfiguration(config, null);
langd.dismiss();
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
并且设置完成后,会清屏,可以看到结果。
我发现要让应用程序支持印地语等语言,您需要执行以下操作:- 1. 在 res 文件夹中,创建包含语言特定字符串文件的语言限定符的文件夹。 2. 在你的布局文件中,不要硬编码文本,而是使用@string/hello_info 等变量。 3.在assets下新建一个fonts文件夹,添加合适的.ttf文件进去。
然而,在某些地方,我还看到 另外 使用了以下内容。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.textView);
Typeface hindi = Typeface.createFromAsset(getAssets(), "fonts/mangle.ttf");
tv.setTypeface(hindi);
}
现在需要这样做吗?如果需要,在什么情况下需要这样做?我只需要通过布局显示多语言文本。
此外,关于设备的区域设置,即假定例如在印度,区域设置将自动设置为该区域的适当值? 我怎样才能通过设备或模拟器对此进行测试?我的设备只显示英语(英国)、英语(美国)、法国和西班牙。 提前致谢
是的,这是必需的,因为
Typeface hindi = Typeface.createFromAsset(getAssets(), "fonts/mangle.ttf");
tv.setTypeface(hindi);
Typeface 使用 ttf 字体为您的 textViews 文本设置任何类型的字体 file.That 可以是印地文、法国、西班牙等。
此代码仅对设置 custom font
和您在资产上添加的 .ttf
文件有用:
TextView tv = (TextView) findViewById(R.id.textView);
Typeface hindi = Typeface.createFromAsset(getAssets(), "fonts/mangle.ttf");
tv.setTypeface(hindi);
所以答案是肯定的。
the locale would be automaticcally set to the appropriate value for that area?
如果设备语言是该语言,是。
语言文档: http://developer.android.com/training/basics/supporting-devices/languages.html
Localization-checklist: http://developer.android.com/distribute/tools/localization-checklist.html
您可以设置语言:
Locale locale = new Locale("en_US");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
SettingActivity.this.getApplicationContext().getResources().updateConfiguration(config, null);
langd.dismiss();
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
并且设置完成后,会清屏,可以看到结果。