最近公司的产品支持了国际化。虽然只支持了English,Specified Chinese但后续添加其他版本就属于体力活了。
iOS多语言,苹果也是一贯的给了规范和尽可能自动化的方式。参看:苹果官方文档
发版以后,收到用户反馈,说有的用户自己用的是英文iOS,但是想看到我们中文版本(大概因为有的功能在英文版阉割掉的缘故),在憋住没有x用户装x后,还是乖乖去看微信的做法,他们也是外语版本阉割了功能,但是提供了程序内置语言切换,既应用程序的语言显示不再直接依赖当前操作系统语言设置。
翻看了stackoverflow一些唇枪舌战。找到了这个靠谱的答案,根据Gilad的回答。用xib或者storyboard的人,注意不光要改变AppleLanguages还要重新初始化你的界面控件
eg:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"zh-Hans",@"en",@"zh-Hant",nil] forKey:@"AppleLanguages"];
[NSBundle setLanguage:@"zh-Hans"];//这个要用到Gilad封装的NSBundle类别
[[NSUserDefaults standardUserDefaults] synchronize];
ZKAppDelegate*appDelegate = (ZKAppDelegate*)[UIApplicationsharedApplication].delegate;
UIStoryboard*storyboard = appDelegate.window.rootViewController.storyboard;
UIViewController*rootViewController = [storyboardinstantiateViewControllerWithIdentifier:@"ZKLaunchViewControllerIdentifier"];
appDelegate.window.rootViewController= rootViewController;
[appDelegate.windowmakeKeyAndVisible];
网友评论