国际化
来源:互联网 发布:淘宝帐号登录记录 编辑:程序博客网 时间:2024/04/29 13:33
转自:iOS国际化和genstrings所有子目录本地化字符串
正文:
首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizable.strings对key指定不同的值,系统会根据当前系统语言,去不同的lproj找不同的字符串。用个图显示吧:(逆向完成后,拖到项目,结果一定是下面的样子,如果是下拉三角出现“中、英”,有可能是坑,显示key但是不显示你要的内容)
我们应用只支持中文,英文,所以只建了zh-Hans.lproj和en.lproj,然后在Localizable.strings指定了不同的值。举例如下:
这样程序就能根据系统语言,去选择“登录”还是“Log In”。
但是如果每次加了一个本地化字符串,就得手动去Localizable.strings添加对应的key,那就太麻烦了,幸好苹果提供了快捷生成本地化key的命令。下面以en.lproj的生成为例:
首先,我们进入程序工程所在的目录,用命令建立en.lproj
mkdir en.lproj
然后我们遍历所有的子目录文件,去生成Localizable.strings,命令如下:
find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj
(基本都说genstrings -o en.lproj *.m就可以生成Localizable.strings,但是这个命令只能生成当前目录的,并没有遍历子目录,所以基本没用)
这样系统就会把子目录用到NSLocalizedString函数的key值都写到文件里。
需要注意的是,NSLocalizedString(key,comment),用这个函数时,key不能是宏定义或者一些动态字符串,否则用上面的命令会报错。
下面是打印出当前设备支持的所有语言:(其中zh-Hans是简体中文,zh-Hant是繁体中文;en英文,ja日文)
(
en,
"zh-Hans",
fr,
de,
ja,
nl,
it,
es,
pt,
"pt-PT",
da,
fi,
nb,
sv,
ko,
"zh-Hant",
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
ms,
"en-GB",
ca,
hu,
vi
)
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- 国际化
- POJ 3750 小孩报数问题 数据结构水
- leetcode--P1 Two Sum
- ppt转成pdf格式的方法有哪些
- Bahosain and Digits
- Chrome浏览器快捷键大全
- 国际化
- SCI写作总结
- GitLab Cl Deploy - docker build push
- BZOJ 1601 [Usaco2008 Oct]灌水 MST
- app后端开发系列文章目录
- 九、缓冲IO的高级功能
- 笔记一
- centos6.5 下 Oracle 11g的删除
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案