iOS中使用Localizable.strings适配App在不同语言下文本的显示

时间:2024-07-02 12:05:14

iOS开发中,若是使用xib或storyboard搭建界面视图,视图中固定显示的文本内容可以用localized添加不同语言适配。但是在实际中会有动态加载的文本,这些文字的适配就需要NSLocalizedString等方法

  • 举个例子说明

从网络获取的JSON数据大多为英文如album、book、software等,界面中显示这些文本可在设置文本时调用NSLocalizedString方法,具体来说使用

NSString *NSLocalizedString(NSString *key, NSString *comment)

返回NSString,前一个作为key关键字,后一个作为strings文件的注释方便查看,假若我要动态显示Album,可以这样使用

 NSLocalizedString(@"Album", @"Localized kind: Album");

之后在设置完文本的localized方法后调用命令行生成Localizable.strings文件,具体如下:

cd ~/Desktop/oc_test/StoreSearch/StoreSearch 进入工程中目录

genstrings *.m -o zh-Hans.lproj  最后为不同语言的文件夹

之后自动生成.strings文件,添加进xcode工程,在文件中修改原来的英文为中文即可

iOS中使用Localizable.strings适配App在不同语言下文本的显示

  • 注意

每次调用genstrings命令后,strings文件都会重新创建覆盖原有内容,所以最好在将文件中所有动态加载的文本都实现NSLocalizedString方法后再创建strings文件;

当然,将原来内容备份下也是可以的。