Xummer

iOS本地化的strings文件

iOS本地化的strings文件

很多本地化都教程都提到了如何去做多语言的.strings文件, 然后在代码中调用NSLocalizedString(key, comment)就好了。 这里来说下.strings文件。

.strings文件

在创建project时,Xcode会自动生成InfoPlist.stringsInfoPlist.strings是用来做一些App系统显示层面上的本地化的(如App 名字)。还有一个是代码中用到的字符串用宏NSLocalizedString(key, comment)做本地化默认.strings文件—Localizable.strings。当然,你也可以自定义其他的.strings来做代码中的本地化,不过就要用宏NSLocalizedStringFromTable(key, tbl, comment)来指定.strings文件的来源。

列个表格看下

strings名称 作用
InfoPlist.strings App系统显示层面上的本地化的(如App 名字)
Localizable.strings 代码中用到的字符串用宏NSLocalizedString(key, comment)做本地化默认.strings文件
xxx.strings 自定义本地化文件,用宏NSLocalizedStringFromTable(key, tbl, comment)来指定.strings文件的来源

.strings格式

key = value ; 

例子 @"Name" = @"名称"; CFBundleDisplayName = @"啊呸呸";

infoPlist.strings

正如其名字描述的,对 xxInfo.plist 的中描述的本地化。

宏NSLocalizedString

#define NSLocalizedString(key, comment) \
        [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

具体调用的是

可以看到table传参nil,其实就是指定了默认的本地化文件Localizable.strings

本地化注意问题

  1. 注意.strings文件的选择
  2. .strings中重复的key会导致只取第一个匹配
  3. 格式key = value ; 注意最后的冒号,不加编译不过

-以上-