- 浏览: 217458 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (196)
- android (153)
- sqlite (1)
- java (3)
- os (4)
- tools (4)
- ResolveInfo 转 packageinf 取信息 (1)
- multimedia (2)
- fastboot (1)
- create user in samba (0)
- android qcn (0)
- windows (0)
- net (2)
- linux (1)
- git (0)
- proguard (0)
- android cpu (1)
- android gts (1)
- MySql (1)
- c/c++ (0)
- network (1)
- python (3)
- AI (1)
- Ultroedit (1)
- HarmonyOS NEXT (0)
Android系统原版默认的语言为英文,而我们定制系统可能需要用户一开机就是简体中文。
我们可以通过修改系统属性来达到默认语言的作用。
这里有两种方法,需要的可以借鉴下:
1、在init.rc或者在其他的开机初始化文件如:default.prop中加入如下设置系统属性的代码:
[html] view plaincopy
1. [persist.sys.language]: [zh]
2. [persist.sys.country]: [CN]
3. [persist.sys.localevar]: []
4. [persist.sys.timezone]: [Asia/Shanghai]
5. [ro.product.locale.language]: [zh]
6. [ro.product.locale.region]: [CN]
2、编译的时候,通过指明编译参数为简体中文,这样编译传统就会编译出来的系统属性文件,在
系统初始化的时候将会把上面的属性给进行正确的初始化,例如:
make PRODUCT-machineID-eng-zh_CN
其他相关资料:
1、ICU4C简介
ICU4C(ICU for C, http://site.icu-project.org/ ) 是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。ICU4C提供了C/C++平台强大的国际化开发能力,软件开发者几乎可以使用ICU4C解决任何国际化的问题,根据各地 的风俗和语言习惯,实现对数字、货币、时间、日期、和消息的格式化、解析,对字符串进行大小写转换、整理、搜索和排序等功能,必须一提的是,ICU4C提 供了强大的BIDI算法,对阿拉伯语等BIDI语言提供了完善的支持。
ICU首先是由Taligent公司开发的,Taligent公司现在被合并为IBM?公司全球化认证中心的Unicode研究组,然后ICU由IBM和 开源组织合作继续开发,开源组织给与了ICU极大的帮助。
开始ICU只有Java平台的版本,后来这个平台下的ICU类被吸纳入SUN公司开发的JDK1.1,并在JDK以后的版本中不断改进。C++和C平台下 的ICU是由JAVA平台下的ICU移植过来的,移植过的版本被称为ICU4C,来支持这C/C++两个平台下的国际化应用。 ICU4J和ICU4C区别不大,但由于ICU4C是开源的,并且紧密跟进Unicode标准,ICU4C支持的Unicode标准总是最新的;同时,因 为JAVA平台的ICU4J的发布需要和JDK绑定,ICU4C支持Unicode标准改变的速度要比ICU4J快的多。
2、 ANDROID语言包
Android 使用的语言包就是ICU4C,位置:external/icu4c。Android支持的语言有: Locale CANADA
[html] view plaincopy
1. Locale constant for en_CA.
2. Locale CANADA_FRENCH
3. Locale constant for fr_CA.
4. Locale CHINA
5. Locale constant for zh_CN.
6. Locale CHINESE
7. Locale constant for zh.
8. Locale ENGLISH
9. Locale constant for en.
10. Locale FRANCE
11. Locale constant for fr_FR.
12. Locale FRENCH
13. Locale constant for fr.
14. Locale GERMAN
15. Locale constant for de.
16. Locale GERMANY
17. Locale constant for de_DE.
18. Locale ITALIAN
19. Locale constant for it.
20. Locale ITALY
21. Locale constant for it_IT.
22. Locale JAPAN
23. Locale constant for ja_JP.
24. Locale JAPANESE
25. Locale constant for ja.
26. Locale KOREA
27. Locale constant for ko_KR.
28. Locale KOREAN
29. Locale constant for ko.
30. Locale PRC
31. Locale constant for zh_CN.
32. Locale SIMPLIFIED_CHINESE
33. Locale constant for zh_CN.
34. Locale TAIWAN
35. Locale constant for zh_TW.
36. Locale TRADITIONAL_CHINESE
37. Locale constant for zh_TW.
38. Locale UK
39. Locale constant for en_GB.
40. Locale US
41. Locale constant for en_US.
3、定制语言
定制语言在PRODUCT_LOCALES字段里添加需要语言,如: PRODUCT_LOCALES := en_US zh_CN,则系统里只有英语和汉语两种语言。然后语言的选择处理是在external/icu4c/stubdata/Android.mk里进行的, 如下:
[html] view plaincopy
1. config := $(word 1, \ $(if $(findstring ar,$(PRODUCT_LOCALES)),large) \
2. $(if $(findstring da,$(PRODUCT_LOCALES)),large) \
3. $(if $(findstring el,$(PRODUCT_LOCALES)),large) \
4. $(if $(findstring fi,$(PRODUCT_LOCALES)),large) \
5. $(if $(findstring he,$(PRODUCT_LOCALES)),large) \
6. $(if $(findstring hr,$(PRODUCT_LOCALES)),large) \
7. $(if $(findstring hu,$(PRODUCT_LOCALES)),large) \
8. $(if $(findstring id,$(PRODUCT_LOCALES)),large) \
9. $(if $(findstring ko,$(PRODUCT_LOCALES)),large) \
10. $(if $(findstring nb,$(PRODUCT_LOCALES)),large) \
11. $(if $(findstring pt,$(PRODUCT_LOCALES)),large) \
12. $(if $(findstring ro,$(PRODUCT_LOCALES)),large) \
13. $(if $(findstring ru,$(PRODUCT_LOCALES)),large) \
14. $(if $(findstring sk,$(PRODUCT_LOCALES)),large) \
15. $(if $(findstring sr,$(PRODUCT_LOCALES)),large) \
16. $(if $(findstring sv,$(PRODUCT_LOCALES)),large) \
17. $(if $(findstring th,$(PRODUCT_LOCALES)),large) \
18. $(if $(findstring tr,$(PRODUCT_LOCALES)),large) \
19. $(if $(findstring uk,$(PRODUCT_LOCALES)),large) \
20. $(if $(findstring zh,$(PRODUCT_LOCALES)),large) \
21. $(if $(findstring ja,$(PRODUCT_LOCALES)),us-japan) \
22. $(if $(findstring it,$(PRODUCT_LOCALES)),us-euro) \
23. $(if $(findstring pl,$(PRODUCT_LOCALES)),us-euro) \
24. $(if $(findstring cs,$(PRODUCT_LOCALES)),default) \
25. $(if $(findstring de,$(PRODUCT_LOCALES)),default) \
26. $(if $(findstring fr,$(PRODUCT_LOCALES)),default) \
27. $(if $(findstring nl,$(PRODUCT_LOCALES)),default) \
28. us)
4、默认语言
默认语言的选择实现是在build/core/Makefile里,从PRODUCT_LOCALES里选择第一个语言作为默认语言,如下:
[html] view plaincopy
1. define default-locale $(subst _, , $(firstword $(1)))
2. endef
3. # Selects the first locale in the list given as the argument
4. # and returns the language (or the region)
5. define default-locale-language $(word 2, 2, $(call default-locale, $(1)))
6. endef
7. define default-locale-region $(word 3, 3, $(call default-locale, $(1)))
8. Endef ... PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \
9. PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))"
然后通过build/tool/buildinfo.sh文件将如下段写到文件build.prop,如下:
[html] view plaincopy
1. echo "ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"
2. echo "ro.product.locale.region=$PRODUCT_DEFAULT_REGION" 。
因此,要改变默认语言用下面两种方法中的一种就行了:
4.1、在PRODUCT_LOCALES字段里,将要选择的语言放在第一位,如: PRODUCT_LOCALES := en_US zh_CN 默认语言是英语;
4.2、在persist.sys.language 和persist.sys.country 里指定语言,如下:
[html] view plaincopy
1. PRODUCT_PROPERTY_OVERRIDES := \
2. persist.sys.language=zh \
3. persist.sys.country=CN
PRODUCT_LOCALES 环境变量在什么地方,最后在
build/target/product/sdk.mk 里面找到了这个变量,然后修改里面的
PRODUCT_LOCALES 变量
PRODUCT_LOCALES := \
en_US \
zh_CN \
zh_TW
编译,并烧录文件, 发现系统语言版本还是没变化。再认真查看里面的文件,还是找不到
最后在build/target/product/core.mk 把如下
PRODUCT_LOCALES := \
en_US \
zh_CN \
zh_TW
添加到这里,重新编译,烧录发现成功了~!不知道为什么,哎!!!
From:http://blog.csdn.net/bmj/article/details/7659616
我们可以通过修改系统属性来达到默认语言的作用。
这里有两种方法,需要的可以借鉴下:
1、在init.rc或者在其他的开机初始化文件如:default.prop中加入如下设置系统属性的代码:
[html] view plaincopy
1. [persist.sys.language]: [zh]
2. [persist.sys.country]: [CN]
3. [persist.sys.localevar]: []
4. [persist.sys.timezone]: [Asia/Shanghai]
5. [ro.product.locale.language]: [zh]
6. [ro.product.locale.region]: [CN]
2、编译的时候,通过指明编译参数为简体中文,这样编译传统就会编译出来的系统属性文件,在
系统初始化的时候将会把上面的属性给进行正确的初始化,例如:
make PRODUCT-machineID-eng-zh_CN
其他相关资料:
1、ICU4C简介
ICU4C(ICU for C, http://site.icu-project.org/ ) 是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。ICU4C提供了C/C++平台强大的国际化开发能力,软件开发者几乎可以使用ICU4C解决任何国际化的问题,根据各地 的风俗和语言习惯,实现对数字、货币、时间、日期、和消息的格式化、解析,对字符串进行大小写转换、整理、搜索和排序等功能,必须一提的是,ICU4C提 供了强大的BIDI算法,对阿拉伯语等BIDI语言提供了完善的支持。
ICU首先是由Taligent公司开发的,Taligent公司现在被合并为IBM?公司全球化认证中心的Unicode研究组,然后ICU由IBM和 开源组织合作继续开发,开源组织给与了ICU极大的帮助。
开始ICU只有Java平台的版本,后来这个平台下的ICU类被吸纳入SUN公司开发的JDK1.1,并在JDK以后的版本中不断改进。C++和C平台下 的ICU是由JAVA平台下的ICU移植过来的,移植过的版本被称为ICU4C,来支持这C/C++两个平台下的国际化应用。 ICU4J和ICU4C区别不大,但由于ICU4C是开源的,并且紧密跟进Unicode标准,ICU4C支持的Unicode标准总是最新的;同时,因 为JAVA平台的ICU4J的发布需要和JDK绑定,ICU4C支持Unicode标准改变的速度要比ICU4J快的多。
2、 ANDROID语言包
Android 使用的语言包就是ICU4C,位置:external/icu4c。Android支持的语言有: Locale CANADA
[html] view plaincopy
1. Locale constant for en_CA.
2. Locale CANADA_FRENCH
3. Locale constant for fr_CA.
4. Locale CHINA
5. Locale constant for zh_CN.
6. Locale CHINESE
7. Locale constant for zh.
8. Locale ENGLISH
9. Locale constant for en.
10. Locale FRANCE
11. Locale constant for fr_FR.
12. Locale FRENCH
13. Locale constant for fr.
14. Locale GERMAN
15. Locale constant for de.
16. Locale GERMANY
17. Locale constant for de_DE.
18. Locale ITALIAN
19. Locale constant for it.
20. Locale ITALY
21. Locale constant for it_IT.
22. Locale JAPAN
23. Locale constant for ja_JP.
24. Locale JAPANESE
25. Locale constant for ja.
26. Locale KOREA
27. Locale constant for ko_KR.
28. Locale KOREAN
29. Locale constant for ko.
30. Locale PRC
31. Locale constant for zh_CN.
32. Locale SIMPLIFIED_CHINESE
33. Locale constant for zh_CN.
34. Locale TAIWAN
35. Locale constant for zh_TW.
36. Locale TRADITIONAL_CHINESE
37. Locale constant for zh_TW.
38. Locale UK
39. Locale constant for en_GB.
40. Locale US
41. Locale constant for en_US.
3、定制语言
定制语言在PRODUCT_LOCALES字段里添加需要语言,如: PRODUCT_LOCALES := en_US zh_CN,则系统里只有英语和汉语两种语言。然后语言的选择处理是在external/icu4c/stubdata/Android.mk里进行的, 如下:
[html] view plaincopy
1. config := $(word 1, \ $(if $(findstring ar,$(PRODUCT_LOCALES)),large) \
2. $(if $(findstring da,$(PRODUCT_LOCALES)),large) \
3. $(if $(findstring el,$(PRODUCT_LOCALES)),large) \
4. $(if $(findstring fi,$(PRODUCT_LOCALES)),large) \
5. $(if $(findstring he,$(PRODUCT_LOCALES)),large) \
6. $(if $(findstring hr,$(PRODUCT_LOCALES)),large) \
7. $(if $(findstring hu,$(PRODUCT_LOCALES)),large) \
8. $(if $(findstring id,$(PRODUCT_LOCALES)),large) \
9. $(if $(findstring ko,$(PRODUCT_LOCALES)),large) \
10. $(if $(findstring nb,$(PRODUCT_LOCALES)),large) \
11. $(if $(findstring pt,$(PRODUCT_LOCALES)),large) \
12. $(if $(findstring ro,$(PRODUCT_LOCALES)),large) \
13. $(if $(findstring ru,$(PRODUCT_LOCALES)),large) \
14. $(if $(findstring sk,$(PRODUCT_LOCALES)),large) \
15. $(if $(findstring sr,$(PRODUCT_LOCALES)),large) \
16. $(if $(findstring sv,$(PRODUCT_LOCALES)),large) \
17. $(if $(findstring th,$(PRODUCT_LOCALES)),large) \
18. $(if $(findstring tr,$(PRODUCT_LOCALES)),large) \
19. $(if $(findstring uk,$(PRODUCT_LOCALES)),large) \
20. $(if $(findstring zh,$(PRODUCT_LOCALES)),large) \
21. $(if $(findstring ja,$(PRODUCT_LOCALES)),us-japan) \
22. $(if $(findstring it,$(PRODUCT_LOCALES)),us-euro) \
23. $(if $(findstring pl,$(PRODUCT_LOCALES)),us-euro) \
24. $(if $(findstring cs,$(PRODUCT_LOCALES)),default) \
25. $(if $(findstring de,$(PRODUCT_LOCALES)),default) \
26. $(if $(findstring fr,$(PRODUCT_LOCALES)),default) \
27. $(if $(findstring nl,$(PRODUCT_LOCALES)),default) \
28. us)
4、默认语言
默认语言的选择实现是在build/core/Makefile里,从PRODUCT_LOCALES里选择第一个语言作为默认语言,如下:
[html] view plaincopy
1. define default-locale $(subst _, , $(firstword $(1)))
2. endef
3. # Selects the first locale in the list given as the argument
4. # and returns the language (or the region)
5. define default-locale-language $(word 2, 2, $(call default-locale, $(1)))
6. endef
7. define default-locale-region $(word 3, 3, $(call default-locale, $(1)))
8. Endef ... PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \
9. PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))"
然后通过build/tool/buildinfo.sh文件将如下段写到文件build.prop,如下:
[html] view plaincopy
1. echo "ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"
2. echo "ro.product.locale.region=$PRODUCT_DEFAULT_REGION" 。
因此,要改变默认语言用下面两种方法中的一种就行了:
4.1、在PRODUCT_LOCALES字段里,将要选择的语言放在第一位,如: PRODUCT_LOCALES := en_US zh_CN 默认语言是英语;
4.2、在persist.sys.language 和persist.sys.country 里指定语言,如下:
[html] view plaincopy
1. PRODUCT_PROPERTY_OVERRIDES := \
2. persist.sys.language=zh \
3. persist.sys.country=CN
PRODUCT_LOCALES 环境变量在什么地方,最后在
build/target/product/sdk.mk 里面找到了这个变量,然后修改里面的
PRODUCT_LOCALES 变量
PRODUCT_LOCALES := \
en_US \
zh_CN \
zh_TW
编译,并烧录文件, 发现系统语言版本还是没变化。再认真查看里面的文件,还是找不到
最后在build/target/product/core.mk 把如下
PRODUCT_LOCALES := \
en_US \
zh_CN \
zh_TW
添加到这里,重新编译,烧录发现成功了~!不知道为什么,哎!!!
From:http://blog.csdn.net/bmj/article/details/7659616
发表评论
-
Android SnappyDB
2018-05-15 11:23 1001https://blog.csdn.net/qq_214305 ... -
使用UncaughtExceptionHandler保存全局异常(转)
2018-05-07 15:04 674From: https://blog.csdn.net/dre ... -
android udp
2018-04-10 19:47 631Android之Socket的基于UDP传输 接收方创建步骤: ... -
android DownloadManager
2018-04-10 12:52 627From: https://www.jianshu.com/p ... -
Snackbar 可以交互的Toast
2018-04-08 21:44 800Snackbar 是 Android design sup ... -
android 操作串口
2018-03-19 18:20 693http://blog.csdn.net/akunainian ... -
proguard对 android-support-v4.jar 的配置
2018-03-16 15:32 747-libraryjars libs/android-sup ... -
apk 多个dex
2018-03-16 10:05 1034android studio 配置应用生成多个dex ... -
ddmlib 解决android n file explorer 为空问题
2018-03-16 09:27 973百度云:http://pan.baidu.com/s/1sl4 ... -
android 代码混淆
2018-03-15 08:38 1082打开混淆开关 Android.mk ... -
menu item 显示icon
2018-03-07 09:32 714@Override public boolean onMenu ... -
ubuntu 脚本切换root用户,并执行其它脚本
2018-03-05 09:58 0#!/bin/bash expect -c" ... -
DrawerLayout 滑动侧边栏
2018-03-01 10:42 0// TODO -
jack-server 多用户编译问题
2018-02-27 10:44 14183),需要同时修改 $HOME/.jack-server/co ... -
更新eclipse 遇到两个问题 Oxygen.2 Release (4.7.2)
2018-02-26 14:28 12501. the file dx.jar was not load ... -
监听系统开关变化
2018-02-05 14:02 823// 转屏开关 /** * Content obse ... -
android 8.0 模块编译命令
2018-02-02 14:42 1186Invoke ". build/envsetup.s ... -
svn checkout 忽略某个文件夹
2018-01-26 11:14 1380android源码更新时, frameworks\compil ... -
eclipse jni
2018-01-19 16:10 501试过,可以运行 http://blog.csdn.net/sb ... -
opencv for android
2018-01-19 14:37 456http://blog.csdn.net/sbsujjbcy/ ...
相关推荐
本文将详细介绍如何将系统默认语言更改为中文,确保开机时系统显示为中文界面。我们将主要关注以下几个步骤: 1. **检查已安装的语言包**: 在进行语言更改前,你需要确认你的系统是否已经安装了中文语言包。如果...
在Android系统中,修改系统文件访问权限涉及到对操作系统底层的深度理解,这通常需要root权限。以下是关于这个主题的详细知识点: 1. **init.rc**:这是Android系统启动时执行的第一个脚本,位于系统的system/core/...
- 选定后,系统会立即更新所有界面的文本,包括菜单、提示和应用的默认语言。 3. **动态区域设置**:Android系统允许用户在设备设置中随时更改语言,但开机向导中的语言选择通常是首选项,对后续的系统体验有直接...
- 当用户在系统设置中更改语言时,Android会自动应用到所有应用。无需开发者进行额外处理,只要你的应用遵循了正确的资源结构,Android系统就能正确加载对应的语言资源。 - 不过,为了确保应用在语言切换后能够...
这两种方法虽然可以实现系统语言的切换,但同时也会影响到系统中所有应用的界面语言,因为Android系统默认会将设置的语言应用于全局。 为了使这个功能更加完善,开发者可能还需要考虑以下几点: - 用户体验:确保在...
在Android系统中,开发者可以通过设置字体资源或者自定义View来更改应用中的文字样式,但通常情况下,Droid Sans作为默认字体,会应用于系统界面和大多数应用程序,除非开发者特别指定了其他字体。对于用户而言,若...
总结来说,实现语言切换并处理好界面重叠问题,需要理解Android的资源系统、Activity和Fragment的生命周期,以及可能存在的依赖注入框架的交互。在实际项目中,应该充分测试各种场景,确保语言切换的平滑和用户体验...
系统默认支持多种语言,开发者可以通过添加额外的语言资源文件来支持更多语言。 2. **res/values目录** 在Android工程中,资源文件通常存储在`res`目录下的`values`文件夹中。针对不同的语言,我们可以创建相应的...
在Android开发领域,Android Studio是首选的集成开发环境(IDE),而Kotlin作为一种现代、类型安全且富有表现力的语言,已经成为了Google官方推荐的Android开发语言。本教程将引导初学者通过Android Studio创建并运行...
在`AndroidManifest.xml`文件中,可以通过`android:supportsRtl`属性指定应用的默认语言。例如,要设为简体中文: ```xml android:supportsRtl="true" android:configChanges="locale" android:allowBackup=...
在Android系统中,DNS设置通常是固定的,可能由网络运营商或系统默认设定。DNSproxy2的出现使得用户可以根据个人需求调整这些设置,例如使用公共DNS服务(如Google Public DNS或Cloudflare DNS),以提高解析速度和...
因此,确保你的应用在没有特定语言包时也能正常运行,或者提供一个默认语言。 7. **处理布局变化**:有些语言(如阿拉伯语)是从右到左书写的,这可能导致布局方向的变化。在`onConfigurationChanged()`回调中处理...
2. **语言设置**: 用户可以在设备设置中更改系统语言,这将影响所有应用的语言显示。应用也可以独立于系统设置,提供自己的语言切换选项。 3. **配置变更**: 当系统语言改变时,Android会自动处理资源的重新加载,...
3. **设置默认语言**:根据需求设定应用的初始语言。 4. **提供语言列表**:定义可用的语言选项,可以通过配置文件或代码动态添加。 5. **实现切换逻辑**:调用框架提供的API切换语言,并在需要的地方注册语言改变的...
管理员可以通过系统对学生和图书进行操作,包括添加、删除、修改和查询等基本功能。这对于图书租赁、借阅或管理图书库存的场景尤为适用。 系统的核心部分是采用了SQLite数据库,这是Android内置的关系型数据库。...
这个"Android studio 中文语言包"是专门为Android Studio设计的本地化资源包,用于将IDE的默认英文界面转换为中文。通过下载提供的压缩包文件,我们可以将其中的中文资源文件应用到已安装的Android Studio中,以便于...
- 虽然Android系统默认会根据用户的设备设置加载相应的语言资源,但开发者也可以通过代码动态更改应用的语言。 - 使用`Resources.updateConfiguration()`方法可以更新配置,包括语言设置,然后强制刷新Activity的...
Android系统默认使用设备的语言设置,但我们可以手动更改应用的语言。这需要通过`Resources`类的`updateConfiguration()`方法,或者使用`ContextWrapper`的`createConfigurationContext()`来创建一个新的配置上下文...
随着Android系统的迭代升级,Launcher也在不断进化,比如Android 3.0引入了Holo设计语言,Android 5.0带来了Material Design,每个新版本都对Launcher的交互、视觉和性能进行了改进。 总之,Android系统Launcher是...
参考了Android应用内设置多语言,可随系统语言改变而改变,在此基础上做了修改,选择为跟随系统时不再粗暴调用 此方法。android.os.Process.killProcess(android.os.Process.myPid()); 直接杀死会有一个类似于崩溃的...