使用genstrings和NSLocalizedString实现App文本的本地化
来源:互联网 发布:供销大数据集团怎么样 编辑:程序博客网 时间:2024/06/03 15:57
App本地化的需要不用讲大家也都明白,本文将介绍一种简单的方法来实现字符串的本地化。
在不考虑本地化的情况下,我们如果在代码中给一个Button定义title,一般会这样写:
btn.titleLable.text = @"Example Button";
也许我们已经写了很长的代码才考虑到本地化的问题,大可不必头疼,这时候,我们要做的是把代码从头扫一遍,然后把每个会显示给用户看的字符串做如下修改:
(对于内部使用的字符串就用不着本地化了)
btn.titleLable.text = NSLocalizedString(@"btn_title", nil);
NSLocalizedString是一个定义在NSBundle.h中的宏,其用途是寻找当前系统语言对应的Localizable.strings文件中的某个key的值。
第一个参数是key的名字,第二个参数是对这个“键值对”的注释,在用genstrings工具生成Localizable.strings文件时会自动加上去。
到目前为止,我们还没有生成Localizable.strings文件。这是一个逆向的过程,也就是先写好调用过程,再生成strings资源文件。
当我们把所有的.m文件都修发好了,就该genstrings工具出场了。
1. 启动终端,进入工程所在目录。
2. 新建两个目录,推荐放在资源目录下。
目录名会作用到Localizable.strings文件对应的语言,不能写错了。这里zh-Hans指简体中文,注意不能用zh.lproj表示。
mkdir zh-Hans.lproj
mkdir en.lproj
3. 生成Localizable.strings文件
genstrings -o zh-Hans.lproj 工程名/*.m
genstrings -o en.lproj 工程名/*.m
-o <文件夹>,指定生成的Localizable.strings文件放置的目录。
*.m,扫描所有的.m文件。这里支持的文件还包括.h, .java等。
4. 右键点击工程的Resources目录,选择“New Group”,添加两个目录zh-Hans.lproj和en.lproj。
5. 在新建的group中添加刚刚生成的Localizable.strings文件。
6. 最后在Localizable.strings文件中,修改每个key所对应的内容,就大功告成了。
说了一大堆,其实操作起来还是很简单的,总的来讲就是两条:
1. 在代码里用NSLocalizedString获取要本地化的字符串
2. 用genstrings扫描代码文件,生成Localizable.strings,然后加到工程中。
- 使用genstrings和NSLocalizedString实现App文本的本地化
- 使用genstrings和NSLocalizedString实现App文本的本地化
- 使用genstrings和NSLocalizedString实现App文本的本地化
- [IOS]使用genstrings和NSLocalizedString实现App文本的本地化
- [IOS]使用genstrings和NSLocalizedString实现App文本的本地化
- [IOS]使用genstrings和NSLocalizedString实现App文本的本地化
- 使用genstrings和NSLocalizedString实现App文本的本地化
- 使用genstring和NSLocalizedString实现App文本的本地化
- 使用genstring和NSLocalizedString实现App文本的本地化
- 关于NSLocalizedString(@"Foo %@",nil) 使用 NSLocalizedString实现App文本的本地化
- genstrings本地化工具的使用以及本地化
- iOS本地化 NSLocalizedString的使用
- iOS本地化 NSLocalizedString的使用
- iOS本地化 NSLocalizedString的使用
- iOS本地化 NSLocalizedString的使用
- 自动化实现本地化工具genstrings
- 自动化实现本地化工具genstrings
- app 文本的本地化
- mysql字符集操作
- struts标签库:logic:empty logic:notPresent 界面
- HDU2546 01背包
- TUS,真正的免费在线Linux云电脑
- struts标签库:logic:empty logic:notPresent Action
- 使用genstrings和NSLocalizedString实现App文本的本地化
- struts标签库:logic:empty logic:notPresent web.xml
- CGRect的一些用法
- Java监控文件变化
- struts标签库:logic:empty logic:notPresent struts-config.xml
- QEMU Emulator User Documentation
- 浅谈HTTP中Get与Post的区别
- jasperreport学习 之 javabean封装成list作为数据源
- poj1262