Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / iPhone App的国际化

iphone的app的国际化可以通过创建不同语言版本的Localizable.strings文件来完成。通过以下函数来读取Localizable.strings文件时,会自动选择与手机系统语言相匹配的Localizable语言版本。这样就实现了系统语言与软件语言匹配的国际化功能。这就是使用Localizable实现程序国际化的基本思想。
  1. #define NSLocalizedString(key, comment)    
  2.     [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]  
  3. #define NSLocalizedStringFromTable(key, tbl, comment)    
  4.     [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]  
  5. #define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment)    
  6.     [bundle localizedStringForKey:(key) value:@"" table:(tbl)]  
  7. #define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment)    
  8.     [bundle localizedStringForKey:(key) value:(val) table:(tbl)]  
具体做法大致如下:1.创建Localizable.strings文件 右键-》New File-》Resource-》String File

创建名字为Localizable.strings的文件:2.增加不同语言版本的Localizable.strings文件选中Localizable.strings文件,看Localizable对应的xcode最右边的窗口中的show the File Inspector窗口:
选择Localization项的+号,添加你自己想要的语言版本:
可以通过+,-号增加语言的版本,对应的Localizable.strings会自动生成:
ok,至此就已经完成创建多语言版本的Localizable的工作。3.在Localizable文件中写入不同版本的语言
右键,Add Row,可以添加map形式的数据了。
添加数据如下:Localizable.strings(English)添加信息:

Localizable.strings(Chinese)添加信息:

当你在程序中使用指定函数调用时,就会自动匹配系统语言,输出不同结果:
  1. NSString*strHello = NSLocalizedString(@"hello", @"");  
  2. NSLog(strHello);  
如果系统语言是英文,会输出:hello 如果系统语言是中文,会输出:你好!
国际化的过程大致如此。