微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 如何修改时区的显示名称

如何修改时区的显示名称

时间:10-02 整理:3721RD 点击:
【Description】:
目前对于有些地区,很多国家会使用一个时区,显示的名称也是一样,比如对于欧洲,很多城市使用“欧洲中部时间”“中欧夏令时”,非洲国家也是类似的。对于有些客户,可能有定制显示需求,对于某些时区,不显示“xx中部时间”,而是显示“xx时间”,比如下面会以荷兰阿姆斯特丹为例,目前在手机Setting中选择“Amsterdam,Berlin”后在Date&Time界面会显示“Central European Summer Time”,下面是修改荷兰语下这个显示为自定义名称的过程。
【Solution】:
时区Europe/Amsterdam目前显示出来的时间是“欧洲中部时间”或“欧洲中部时间”,如果要修改荷兰语下显示为“阿姆斯特丹时间”或其他自定义的显示,请follow下面的修改:
1. 找到时区ID
时区id并不是城市名称,手机显示到时区列表上的时区名称与时区id有映射关系,可以通过查看Settings中的timezones.xml来确定,package/apps/Settings/res/xmlzh/timezones.xml是中文。这样可以找到Amsterdam,Berlin的时区id是Europe/Amsterdam。
2. 修改metaZones.txt文件(android kk external\icu4c\data\misc\android L external\icu\icu4c\source\data\misc\
android M external\icu\icu4c\source\data\misc\)
1) 修改mapTimezones
修改的目的是把时区添加到自己定义的显示规则中,这样通过时区IDEurope/Amsterdam就可以得到该显示规则Europe_Amsterdam。这个步骤分2步:
a) 定义自己的显示规则名称
比如我定义了新的规则Europe_Amsterdam, 需要在mapTimezones中添加进去,mapTimezones中顺序是按字母排序的,所以Europe_Amsterdam这个规则要添加到Europe_Central的前面,如下:
Europe_Amsterdam{
}
b) 将要修改的时区从原规则中删除,添加到自定义的规则中找到要修改的时区,比如Europe/Amsterdam在Europe_Central中,剪切NL{“Europe/Amsterdam”},粘贴到自定义的时区显示规则中,如下所示:Europe_Amsterdam{
NL{“Europe/Amsterdam”}
}
如果此文件中没有包含要修改的时区,那么就需要添加此时区,添加的内容如上面所示,时区前面的两个字母是国家代码。
2) 修改metaZoneinfo
添加meta信息,这样就可以通过显示规则名称Europe_Amsterdam得到meta信息
Europe:Amsterdam。
“Europe:Amsterdam”{
{“Europe_Amsterdam”}
}
3. 修改zone/nl.txt文件(adnroid kk external\icu4c\data\
android L external\icu\icu4c\source\data\
androidM external\icu\icu4c\source\data\)
不同的txt文件代表的是不同语言,语言和区域代码可通过查询ISO-3166-1和ISO-639标准确定。
定义在界面显示的字串,这样根据之前得到的meta信息可以得到要显示的字串。
同样的,名称是按照字母排序的,所以在Europe_Central前面添加,如下:
“meta: Europe_Amsterdam”{
ld{“夏令时间显示名称”}
ls{“标准时间显示名称”}
}
4. 编译ICU资源
请参考FAQ04011进行编译和测试

学习学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top