本地化字符串最常用的工具是NSLocalizedString
。这个函数会查找Localizeable.strings
中给定的键,然后返回找到的值,没找到值的话返回键本身。Localizeable.strings
是个本地化的文件,所以每个语言一个版本,而NSLocalizedString
会根据当前语言环境自动选择正确的版本。genstrings
命令行工具会自动查找文件中对NSLocalizedString
的调用,生成Localizeable.strings
文件的初始版本。
最简单的办法是用字符串作为自身的键(第二个参数是写给本地化人员的注释):
1 2 3 | NSString *string = NSLocalizedString(@"Welcome to the show.", @"Welcome message"); |
要运行genstrings
,你可以打开一个命令行终端,切换到源码目录,然后按如下方式运行它(假设是英文的本地化工程):
1 | genstrings -o en.lproj *.m |
它会创建一个名为en.lproj/Localizeable.string
的文件,含有以下内容:
1 2 | /* Welcome message */ "Welcome to the show." = "Welcome to the show."; |
即使不运行genstrings
,它也能在开发者使用的语言中工作,因为它会自动将该键作为本地化字符串返回。
大多数情况中,我推荐使用字符串作为自身的键并在可以将工程交给本地化人员时自动生成Localizeable.stings
文件。这种方法能够简化开发过程,并能够使Localizeable.strings
文件不累积不再使用的键。