background image

iPhone 开发实现语言国际化

一、获取系统所支持的国际化信息
      1. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
      2. NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; 
      3.NSLog(@"%@", languages);

二、对字符串进行国际化

 

1.  应用 NSLocalizedString 宏

//括号里第一个参数是要显示的内容,第二个是对第一个参数的注释
NSString * testStr =NSLocalizedString (@"this is a test NSString",@"这是测试字符串");

2. 为每个支持的语言创建目录 
    在项目路径下,为所要支持的语言创建目录。比如要支持英语和中文,在项目下创建
en.lproj 和 zh.lproj 目录。

3. 使用 Terminal 的 genstrings 命令进行生成资源文件。

例如,项目的目录为:

/user/documents/project/test01

命令如下:

genstrings -o en.lproj  ./classes/*.m

    

  genstrings -o zh.lproj  ./classes/*.m

4. 修改对应的 strings 文件

打开项目,会发现

Resource 目录下多了个 Localizable.strings,  点击展开,会看到名称为

en,zh 的文件,双击后可以发现如下格式的字符串:
/* 这是测试字符串 */ 
@"this is a test NSString" = @"这是测试字符串" 

只要根据不同的地区修改右侧的字符串即可。

 

zh.strings 下,为:@"this is a test NSString" = @"这是测试字符串"

en.strings 下,为:@"this is a test NSString" = @"this is a test NSString"

最后一步,保存更改,编译并运行程序,就能看到结果了!