如果你的iOS版本比较低,可以看这个 http://www.cnblogs.com/stoic/archive/2012/07/08/2581298.html
如果比较高的话,对iOS国际化,apple改变了一点,可以看这个: http://hi.baidu.com/myyuchong/item/821bb3dfa93babecb3f7779f
我对后者作了一个小总结:
为了简单,建一个单视图程序,命名为Test --> 找到Supporting Files文件夹然后 --> File --> New File (或Command+N)

并命名为Localizable(注意,此处不可以随便命名,一定要命名为Localizable),然后点中它,并点选右上角Organizer左边的一个按钮,出现它的属性,会发现localize...这个按钮,点击它然后直接点击localize, 然后:

注意把除InfoPlist.strings和Localizable.strings这两个选项其余的选项取消勾选:

好,配置好了现在,然后首先设置中文的程序名和英文的程序名,点InfoPlist.strings(English)输入CFBundleDisplayName = "China"; 然后点InfoPlist.strings(Chinese)并输入CFBundleDisplayName = "中国"; 即可,这样当用户设置手机的语言之后,如果选择英文,程序名就是"China",如果选择中文,程序名就变成了"中国",设置手机语言这样搞:
Settings-->General-->International-->Language-->...
Settings-->General-->International-->Language-->...
程序名国际化了,下面讨论内容国际化:

点开Localizable.strings(English)并写入: "myKey" = "中文!!";
点开Localizable.strings(Chinese)并写入: "myKey" = "English!!";
在viewDidLoad里这样搞:
- (void)viewDidLoad
{
[super viewDidLoad];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 110, 100)];
label.text = NSLocalizedString(@"myKey", @"");
[self.view addSubview:label];
[label release];
}
运行程序,当在英文状态下时,label显示"English!!",当在中文状态下时label显示"中文",切换中英文可以通过Settings-->General-->International-->Language
做到。
以上用的是函数NSLocalizedString(key, comment)获取国际化文字,所以要把存放国际化文字的名字命名为Localizable,有另外一个函数: NSLocalizedStringFromTable(key, tbl, comment) ,这个函数的第二个参数就是指定文件名,比如文件名是"myTextFile.strings", 那么 tbl这一栏就应该写 @"myTextFile", 而不是写成@"myTextFile.strings"
其他的再说点:
获得所支持的语言
NSUserDefaults *defaults = [ NSUserDefaults standardUserDefaults ];
// 取得 iPhone 支持的所有语言设置
NSArray *languages = [defaults objectForKey : @"AppleLanguages" ];
NSLog ( @"%@" , languages);
获取当前使用语言
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
如果比较高的话,对iOS国际化,apple改变了一点,可以看这个: http://hi.baidu.com/myyuchong/item/821bb3dfa93babecb3f7779f
我对后者作了一个小总结:
为了简单,建一个单视图程序,命名为Test --> 找到Supporting Files文件夹然后 --> File --> New File (或Command+N)

并命名为Localizable(注意,此处不可以随便命名,一定要命名为Localizable),然后点中它,并点选右上角Organizer左边的一个按钮,出现它的属性,会发现localize...这个按钮,点击它然后直接点击localize, 然后:

注意把除InfoPlist.strings和Localizable.strings这两个选项其余的选项取消勾选:

好,配置好了现在,然后首先设置中文的程序名和英文的程序名,点InfoPlist.strings(English)输入CFBundleDisplayName = "China"; 然后点InfoPlist.strings(Chinese)并输入CFBundleDisplayName = "中国"; 即可,这样当用户设置手机的语言之后,如果选择英文,程序名就是"China",如果选择中文,程序名就变成了"中国",设置手机语言这样搞:
Settings-->General-->International-->Language-->...
Settings-->General-->International-->Language-->...
程序名国际化了,下面讨论内容国际化:

点开Localizable.strings(English)并写入: "myKey" = "中文!!";
点开Localizable.strings(Chinese)并写入: "myKey" = "English!!";
在viewDidLoad里这样搞:
- (void)viewDidLoad
{
[super viewDidLoad];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 110, 100)];
label.text = NSLocalizedString(@"myKey", @"");
[self.view addSubview:label];
[label release];
}
运行程序,当在英文状态下时,label显示"English!!",当在中文状态下时label显示"中文",切换中英文可以通过Settings-->General-->International-->Language

以上用的是函数NSLocalizedString(key, comment)获取国际化文字,所以要把存放国际化文字的名字命名为Localizable,有另外一个函数: NSLocalizedStringFromTable(key, tbl, comment) ,这个函数的第二个参数就是指定文件名,比如文件名是"myTextFile.strings", 那么 tbl这一栏就应该写 @"myTextFile", 而不是写成@"myTextFile.strings"
其他的再说点:
获得所支持的语言
NSUserDefaults *defaults = [ NSUserDefaults standardUserDefaults ];
// 取得 iPhone 支持的所有语言设置
NSArray *languages = [defaults objectForKey : @"AppleLanguages" ];
NSLog ( @"%@" , languages);
获取当前使用语言
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog ( @"%@" , currentLanguage);
打印结果:
en