Android应用程序国际化
前情提要
在Android应用程序中, 可以轻松更改语言, 以适应国际化标准
一些用户拥有多种语言习惯, 因此, 应用程序不能依赖设备默认语言环境, 必须提供更改显示语言的程序功能
本文章探寻持久化语言
相关类
- JDK类
java.util.Local
- Android SDK类
android.content.res.Resources
android.content.res.Configuration
操作步骤
首先我们知道values下的strings.xml是通用字符串, 如果你的应用程序流向没有提供本地化支持的国家, 那么这可能就是这些国家用户看到的字符串了, 通常是English
其它本地化支持命名规则为 values-语言代号-r区域代号, 如
* 日语 values-ja-rJP, 对应 Locale.JAPAN !注意 Locale.JAPANESE (x)
* 繁体中文 values-zh-rTW, 对应 Locale.TRADITIONAL_CHINESE 或 Locale.TAIWAN

接下来使用 Resources 对象的 updateConfiguration() 方法更新本地语言
public class App extends Application {
public static Context app = null;
public static Locale dflocale = null;
@Override
public void onCreate() {
super.onCreate();
app = this;
locale();
}
// 更改本地化語言
private void locale() {
Resources res = getResources();
Configuration cf = res.getConfiguration();
dflocale = Locale.getDefault();
Log.e("默認語言", dflocale.toString());
cf.locale = Locale.TRADITIONAL_CHINESE; // 台灣中文
res.updateConfiguration(cf, res.getDisplayMetrics());
}
}
public class Test {
public static void test() {
Resources rs = App.app.getResources();
Configuration config = rs.getConfiguration();
config.locale = App.dflocale;
rs.updateConfiguration(config, rs.getDisplayMetrics());
String s = rs.getString(R.string.app_name);
Log.e("默認語言", s);
config.locale = Locale.JAPAN;
rs.updateConfiguration(config, rs.getDisplayMetrics());
s = rs.getString(R.string.app_name);
Log.e("日語", s);
}
}


Android应用程序国际化的更多相关文章
- Android应用程序资源的编译和打包过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8744683 我们知道,在一个APK文件中,除了 ...
- (Android UI)Android应用程序中资源:图片、字符串、颜色、布局等
Android系统设计采用代码和布局分离的设计模式,因此在设计Android应用程序时需要遵循该设计模式. “把非代码资源(如图片和字符串常量)和代码分离开来始终是一种很好的做法.”---<An ...
- 与Android应用程序相关的文件目录都有哪些?(转载)
与Android应用程序相关的文件目录都有哪些? | 浏览:1312 | 更新:2014-09-28 19:43 | 标签:android 一.方法介绍: 每个Android应用程序都可以通过Co ...
- [转]Android应用程序框架思路整理
一.一般Android应用程序架构(Book,购彩,Market). 普通的应用程序由于只需要用到Android的联网与显示的功能,所以应用程序大体上是呈现为UI(Activities)与网络(Net ...
- android的程序运行数据存放在哪里?
Android应用开发中,给我们提供了5种数据的存储方式1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 ...
- Android卸载程序之后跳转到指定的反馈页面
一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...
- 使用 Eclipse PhoneGap 构建 Android 应用程序入门
Eclipse 是一种支持多种技术的开源集成开发环境 (IDE),但本文重点介绍 Java 支持,这也是 Android 应用程序的“母语”.Android 是 Google 发布的开源移动操作系统. ...
- IONIC 开发的Android应用程序签名(或重新签名)详解
完全通过DOS命令来完成apk签名 给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool.jarsigner和zipalign,下面是对这3个工具的简单介绍: ...
- fir.im Weekly - iOS/Android 应用程序架构解析
假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 本期 fir.im Weekly 收集了关于 iOS/Android 开发资源,也加入了一些关于 Web 前端方面的分 ...
随机推荐
- Python开发【前端篇】CSS
1.css基本语法及页面引用 css基本语法 css的定义方法是: 选择器 { 属性:值; 属性:值; 属性:值;} 选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多 ...
- Python开发【内置模块篇】
动态导入模块 动态导入模块 导入一个库名为字符串的 module_t = __import__('m1.t') print (module_t) #m1 import importlib m=impo ...
- 网络流 之 dinic算法
我觉得这个dinic的算法和之前的增广路法差不多 .使用BFS对残余网络进行分层,在分层时,只要进行到汇点的层次数被算出即可停止, 因为按照该DFS的规则,和汇点同层或更下一层的节点,是不可能走到汇点 ...
- PHP奇淫技巧
https://www.jb51.net/list/list_67_1.htm PHP技巧:https://www.jb51.net/list/list_67_13.htm mysql三范式 1NF: ...
- 013_实践HTTP206状态:部分内容和范围请求
HTTP 2xx范围内的状态码表明了:"客户端发送的请求已经被服务器接受并且被成功处理了".HTTP/1.1 200 OK是HTTP请求成功后的标准响应,当你在浏览器中打开www. ...
- 数据规范化——sklearn.preprocessing
sklearn实现---归类为5大类 sklearn.preprocessing.scale()(最常用,易受异常值影响) sklearn.preprocessing.StandardScaler() ...
- 烦神的斐波那契&&洛谷-1306-斐波那契公约数
传送门 洛谷1306传送门 -------------------------------------------------------------------------------------- ...
- Mysql_安装
安装环境:win7 1.下载zip安装包: MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233, ...
- 6-3 Articles(a, an, some, the)
1 Definite and Indifinite articles Indefinite articles: a, an, some Definite article: the 2 a and t ...
- NOIP2015普及组复赛A 推销员
题目链接:https://ac.nowcoder.com/acm/contest/243/A 题目大意: 略 分析: 方法就是把疲劳值从小到大排个序,然后从尾部开始一个一个取,当选到第i(i > ...