博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS国际化和genstrings所有子目录本地化字符串
阅读量:6452 次
发布时间:2019-06-23

本文共 799 字,大约阅读时间需要 2 分钟。

hot3.png

 

2013-06-21 23:41 247人阅读 (0)  

最近在忙着一个国外项目,天天加班,没时间更新博客。就简单讲讲国际化的知识。

首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizable.strings对key指定不同的值,系统会根据当前系统语言,去不同的lproj找不同的字符串。用个图显示吧:

我们应用只支持中文,英文,所以只建了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不能是宏定义或者一些动态字符串,否则用上面的命令会报错。

转载于:https://my.oschina.net/u/1049180/blog/215695

你可能感兴趣的文章
oracle笔记(2010-1-30)
查看>>
Shell脚本入门与应用
查看>>
javascript闭包(Closure)初探
查看>>
ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍
查看>>
OAuth2授权原理
查看>>
微软的Framework导致该内存不能为written或read的错误?
查看>>
C#强化系列文章九:代码访问安全性使用
查看>>
顺序表的算法
查看>>
用 PyMedia 解码并播放 mp3 文件
查看>>
走在网页游戏开发的路上(一)
查看>>
优秀的Web开发人员是这样炼成的 (share)
查看>>
信息收集工具(ReconDog)
查看>>
LINUX-内核-中断分析-中断向量表(3)-arm【转】
查看>>
unity3d 学习笔记(两)
查看>>
如何安装配置Intelligent landing page for AIMS/MapGuide Ajax viewer
查看>>
DOS下从硬盘安装XP系统方法与要点
查看>>
MapGuide应用开发系列
查看>>
使用 Python 开始你的机器学习之旅【转】
查看>>
IIS Enabling HTTP Keep-Alives
查看>>
备忘录模式(Memento)
查看>>