相关类:TimeZoneSettings
通过修改icu实现
需要修改的资源如:icu4c/source/data/region/zh.txt
zh-CHS 是单纯的简体中文。
zh-CHT 是单纯的繁体中文。
zh-Hans和zh-CHS相同相对应。
zh-Hant和zh-CHT相同相对应。
以上时zh-CHS/zh-Hans 和 zh-CHT/zh-Hant的关系。
zh-CN 简体中文,中华人民共和国
zh-HK 繁体中文,香港特别行政区
zh-MO 繁体中文,澳门特别行政区
-zh-SG 繁体中文,新加坡-
zh-SG 简体中文,新加坡
zh-TW 繁体中文,台湾
这些按照语言+国家进行区分。
修改了alps/external/icu/icu4c/source/data下的文件后
执行路径为source/runConfigureICU文件:执行命令为./runConfigureICU Linux
执行过后出现makefile文件,执行命令 make INCLUDE_UNI_CORE_DATA=1
取alps/external/icu/icu4c/source/data/out/tmp/ xxx.dat文件
放在alps/external/icu/icu4c/source/stubdata
目录下,如:icu4c/source/stubdata/icudt66l.dat执行替换操作,然后remake编译验证。
提交时上传所修改的TXT文件和dat文件。
通过Settings逻辑修改实现
Settings res/values-zh-rCN/strings.xml res/values/strings.xml
新增<string name="timezone_taipei">Taipei</string>
src/com/android/settings/datetime/timezone/RegionPreferenceController.java
import com.android.settings.R;
public CharSequence getSummary() {
if(mRegionId.equals("TW")){
return mContext.getResources().getString(R.string.timezone_taipei);
}
src/com/android/settings/datetime/timezone/RegionSearchPicker.java
private List<RegionItem> createAdapterItem(Set<String> regionIds) {
long i = 0;
String name="";
for (String regionId : regionIds) {
if(regionId.equals("TW")){
name = getString(R.string.timezone_taipei);
}else{
name = localeDisplayNames.regionDisplayName(regionId);
}
// String name = localeDisplayNames.regionDisplayName(regionId);
src/com/android/settings/datetime/timezone/RegionZonePreferenceController.java
public CharSequence getSummary() {
String exemplarLocation="";
if(mTimeZoneInfo!=null){
if("Asia/Taipei".equals(mTimeZoneInfo.getId())){
exemplarLocation = mContext.getResources().getString(R.string.timezone_taipei);
}else if("Asia/Hong_Kong".equals(mTimeZoneInfo.getId())){
exemplarLocation = mContext.getResources().getString(R.string.timezone_hongkong);
}else if("Asia/Macau".equals(mTimeZoneInfo.getId())){
exemplarLocation = mContext.getResources().getString(R.string.timezone_macau);
}else{
exemplarLocation = mTimeZoneInfo.getExemplarLocation();
}
}
return mTimeZoneInfo == null ? ""
: SpannableUtil.getResourcesText(mContext.getResources(),
R.string.zone_info_exemplar_location_and_offset,
exemplarLocation, mTimeZoneInfo.getGmtOffset());
// mTimeZoneInfo.getExemplarLocation(), mTimeZoneInfo.getGmtOffset());