首先创建多语言资源:
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。 一般说明一个地区的语言时,用 语言_地区的形式,如 zh_CN, zh_TW.
效果如图:
中文资源:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">你好,这是测试文字!</string>
<string name="app_name">LanguageTest</string>
<string name="btn_name">Change to English</string>
</resources>
英文资源:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">LanguageTest</string>
<string name="btn_name">变成中文</string>
</resources>
package com.hkp;
import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
public String [] langes = {"zh","en"};
public static int count = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.hello1);
String str = this.getResources().getString(R.string.hello);
tv.setText(str);
Button btn = (Button)findViewById(R.id.btn_change);
btn.setText(R.string.btn_name);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String languageToLoad = langes[count++%2];
setLanguage(languageToLoad);
//刷新界面
Intent intent = new Intent();
intent.setClass(MainActivity.this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
MainActivity.this.startActivity(intent);
}
});
}
/**
* Set the Language of Application
*
* @param lang
* the language to set
*/
private void setLanguage(String lang) {
String languageToLoad = lang;
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
}
}
AndroidManifest.xml中:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="locale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true"/>
每一个Activity中都要加: android:configChanges="locale"。
加 <supports-screens>是为了解决如下问题:
http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx
分享到:
相关推荐
总结起来,Android多语言切换主要涉及创建不同语言的values目录,定义字符串资源,更新用户偏好,以及在应用启动时动态调整系统语言。通过以上步骤,你的应用就能轻松实现多语言切换,满足全球用户的使用需求。在...
在Android应用开发中,实现多语言切换是一项基本且重要的功能,尤其对于面向全球用户的App来说。这个"Android 多语言切换demo"就是针对这一需求的一个示例项目,它可以帮助开发者理解并实现应用的语言本地化。下面...
本项目"android多语言切换"提供了一个示例——LocaleChangeDemo,它演示了如何在Android系统中轻松地在中文和英文之间进行切换。下面我们将深入探讨这个主题,解析实现多语言切换的关键知识点。 首先,我们需要理解...
以下是关于Android多语言切换的关键知识点及详细解释: 1. **资源文件夹结构**: 在Android应用中,资源文件按照语言和地区进行组织。例如,对于英文(美国),资源存放在`res/values/`目录下;对于法文(法国),...
Android国际化的例子有很多,但是都是老的,有的在Android7.0以上是没办法实现多语言。这个例子的需求是这样的:App每次启动都去读取手机本地设置的语音环境,如果是中文,不管简体繁体,都显示中文,其他的语言则...
"Android多语言适配Demo"就是一个专门展示如何在Android应用中进行多语言支持的实例。这个Demo通常会包含一系列的资源文件和代码,帮助开发者理解和实践这一功能。 1. **资源文件配置**: - 在`res`目录下,...
在Android应用开发中,实现多语言切换是一项重要的功能,它能帮助应用覆盖更广泛的用户群体。本示例将深入探讨如何在Android应用中模仿微信,实现在apk内部进行多语言切换,无需重新安装应用。 首先,我们需要理解...
总的来说,这个"Android多语言的demo"项目通过简单的实例讲解了Android应用如何实现多语言支持,包括资源文件的组织、字符串资源的定义以及在代码中调用这些资源。通过学习和理解这个demo,开发者可以进一步掌握如何...
因此,一种高效的方法是通过自动化工具来生成多语言`strings.xml`文件,例如,利用`jxl.jar`库解析Excel文件来实现这一目标。 `jxl.jar`是一个Java库,专门用于读写Excel文件(`.xls`格式)。它提供了方便的API,...
9. **测试多语言**: 开发者应该对每种支持的语言进行充分的测试,确保翻译的准确性和UI布局的适应性。 通过以上步骤,你可以为Android应用添加多国语言支持,使它能够覆盖更广泛的用户群体。BarryDemo_...
以下是关于Android多语言与国际化的详细解释: 1. **资源目录结构**: 在Android工程的`res`目录下,有一个名为`values`的文件夹,用于存放默认的语言资源。为了添加对其他语言的支持,我们需要创建新的文件夹,其...
在Android中,实现多语言主要通过创建不同的资源文件夹来完成。例如,对于英文(美国)和简体中文,我们需要在res/values目录下创建values-en-rUS和values-zh-rCN子目录。每个目录下有一个strings.xml文件,其中包含...
在Android应用开发中,实现多语言切换是一项基本且重要的功能,尤其对于面向全球用户的App来说。这个"android app多语言切换demo"就是这样一个实例,它展示了如何在Android应用中轻松地实现在不同语言间的切换,并...
总的来说,实现Android应用内的语言切换不仅涉及到字符串资源的多语言版本,还需要考虑布局调整和字体适配,以确保应用在各种语言环境下都能正常工作并提供良好的用户体验。通过研究提供的源码和文档,开发者可以...
在Android应用开发中,实现多语言切换是一项重要的功能,它使得应用程序能够适应不同地区和语言的用户需求。本文将深入探讨如何在Android中实现在APP中进行多语言切换,并基于提供的"android APP 多语言切换"项目...
在Android开发中,为了使应用能够适应不同地区的用户,我们需要为应用添加多语言支持。本示例代码将向你展示如何在Android项目中实现这一功能。以下是对标题和描述中的知识点进行的详细解释: 1. **资源文件夹的...
总结,实现Android多语言支持涉及多个层面,包括资源的组织、语言的切换机制以及处理配置变更。通过合理的设计和工具辅助,可以构建出适应全球用户的高质量应用。在实际开发中,应遵循最佳实践,提高用户体验,同时...
在Android开发中,换肤主题和夜间模式是用户体验的重要组成部分,而多语言切换则是实现全球化应用的关键技术。这个"安卓换肤主题更换夜间模式相关-多语言切换android国际化语言切换感觉不错挺好的demo.zip"提供了...