ios软件支持双语(本地化、国际化)

获取ios系统语言的方法:   

    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];

    NSArray* languagesArray = [defaults objectForKey:@"AppleLanguages"];

    NSString* systemlanguage = [languagesArray objectAtIndex:0];

最后获得的systemlanguage即是当前系统的语言。( en:英文  zh-Hans:简体中文   zh-Hant:繁体中文)

 languagesArray 为设置-通用-多语言里面的语言数组,顺序一致,所以index=0即是当前语言。

不过如果工程中许多地方需要适配多种语言,这个方法就不适合了。

ios中有专门的属性支持本地化:Localizable.strings

首先的工程中添加文件:Strings File (在ios-Resource里),将其名字改为Localizable.strings。

选中Localizable.strings,打开Utilities,选中show the File inspector 在Localization中添加你需要支持的语言(比如English和Chinese),这是你会发现Localizable.strings就包含了2个文件(English和Chinese)。

准备工作做完了,然后在需要设置双语的地方(比如要设置“Title”和“标题”)使用NSLocalizedString(@"Title", nil)。

NSLocalizedString 第一个参数是key, 第二个参数是注释(个人觉得没什么用,所以一般设为nil...谁知道有啥特别的用处可以告诉我下。)。

在Localizable.strings(English)中添加 “Tltle” = “Title”。

在Localizable.strings(Chinese)中添加 “Tltle” = “标题”。

其他地方类似设置~

原文地址:https://www.cnblogs.com/nanoCramer/p/2829135.html