(二)国际化—本地化字符串
来源:互联网 发布:魔兽世界数据库安卓版 编辑:程序博客网 时间:2024/06/08 14:23
1、本地化字符串
(一)网上资料(不过我没有实现,不知道错在了哪里了,但是还是记录一下吧)
(二)利用终端(参考blog)
iOS提供了简便的方法来实现本地化,其中用的最多的就是NSLocalizedString。
首先查看下NSLocalizedString是什么:
#define NSLocalizedString(key,comment)
[[NSBundle mainBundle]localizedStringForKey:(key) value:@"" table:nil];
这是一个宏,本质上调用了函数localizedStringForKey:这样,这个宏做的其实就是在当前bundle中查找资源文件名Localizable.strings中键值key所指向的字符串
这样就不难理解还有诸如:NSLocalizedStringFromTable的宏了。
它默认生成Localizable.strings文件,如果自定义生成了其他.strings文件就应该调用NSLocalizedStringFromTable方法来取.strings文件的key所对应的value了。
在不考虑本地化的情况下,外面如果在代码中给一个Button定义title,一般会这样写:
btn.titleLabel.text = @"Example Button";
当虚考虑本地化的问题时,把要显示给用户看的字符串做如下修改:(对于内部使用的字符串就用不着本地化了)
btn.titileLabel.text = NSLocalizedString(@"btn_title",nil);
NSLocalizedString是一个定义在NSBundle.h中的宏,气用途是寻找当前系统语言对应的Localizable.strings文件中的某个key的值。
第一个参数是key的名字,第二个参数是对这个“键值对”的注释,在用genstrings工具生成Loclizable.strings文件时会自动加上去。
到目前为止,外面还没有生成Localizable.strings文件,这个一个逆向的过程,也就是先写好调用过程,再生成strings资源文件。
当外面把所有的.m文件都修改好以后,就该genstring工具了。
1.启动终端,进入工程所在的目录
2.新建两个目录,推荐放在资源目录下
目录名会作用到Localizable.strings文件对应的语言,不能写错了。这里zh-Hans指简体中文,注意不能用zh.lproj表示。
mkdir zh-Hans.lproj //创建目录
mkdir en.lproj //创建目录
3.生成Localizable.strings文件
genstrings -o zh-Hans.lproj *.m//生成Localizable.strings中文文件
genstrings -o en.lproj *.m //生成Localizable.strings英文文件
-o<文件夹>,指定生成的Localizable.strings文件放置的目录
*.m,扫描所有的.m文件,这里支持的文件还包括.h,.java等
4.右键点击工程的Resources目录,选择“New group”,添加两个目录zh-Hans.lproj和en.lproj
5.在新建的group中添加刚刚生成的Loclizable.strings文件
6.最后在Localizable.strings文件中,修改每个key所对应的内容,就可以了。
总结:
1.在代码里用NSLocalizedString获取要本地化的字符串
2.用genstrings扫描代码文件,生成Localizable.strings,然后加到工程中。
- (二)国际化—本地化字符串
- IOS7 本地化(国际化)
- 19 | 本地化(国际化)
- spring mvc番外篇(二):国际化和本地化
- iphone程序国际化(本地化)
- 简单国际化操作(本地化)
- iOS国际化(本地化)详解
- 国际化 本地化
- 国际化 本地化
- Struts(14)本地化/国际化(i18n)
- Struts(14)本地化/国际化(i18n)
- Java Struts2 本地化/国际化(i18n)浅析
- IOS 实现界面本地化(国际化)
- iOS如何实现国际化(本地化)
- struts2 - i18nlocalization(本地化和国际化)
- iOS国际化和genstrings所有子目录本地化字符串
- iOS国际化和genstrings所有子目录本地化字符串
- iOS国际化和genstrings所有子目录本地化字符串
- linux下db2和cognos需配置的文件有哪些
- LeetCode Binary Tree Level Order Traversal II
- hdu4020简单想法题
- 双屏笔记
- 2.3:随机生成一个n bit位的长质数。
- (二)国际化—本地化字符串
- SQLSERVER问题
- 图像处理中的傅立叶变换(闲扯版)
- mosquitto源码分析(四)
- 人生有无数的遗憾,无数的泪水,无数的相遇与错过的故事
- 一次goldengate故障引发的操作系统hang起,HA自动切换
- DllMain中不当操作导致死锁问题的分析--线程退出时产生了死锁
- 静态链接库和动态链接库
- 消费者研究意义