iOS 国际化






20160808


在代码中的文字的国际化

http://www.cnblogs.com/every2003/archive/2012/03/20/2407253.html




如:

- (void)viewDidLoad {

    [super viewDidLoad];

    NSString *testFormat = NSLocalizedString(@"testFormat", @"Try to Test the Localized format-------------->"); 

//当找不到相应的语言stringsvalue时会直接返回key   

}


1. 先在终端cd 到项目的目录:

:

userdeMacBook-Pro:~ user$ cd /Users/user/Documents/XCode_workspace/InternationalMountains/InternationalMountains

就是:en.lproj  等等所在的目录.






2.再执行

genstrings -o /Users/user/Downloads/zh-Hant.lproj *.m   (解释:/Users/user/Downloads/zh-Hant.lproj 为在其他地方创建的文件夹,也可以是其他文件夹,如TheElements,但必须先创建好,否则会出现  genstrings: couldn't connect to output directory /Users/user/Downloads/Localized 错误,这样导出来后再复制去旧的,项目中的真正的要国际化的文件中)




en.lproj为你需要国际化的文件,如想要代码在 繁体中文 中国际化,便是 zh-Hant.lproj 



3. 便可以在   Localizable.strings(English) 中查看到新的国际化了的代码,

在下面的图片中可以看出国际化后的代码是以  Finder 中的路径做实际作用的,不是以 Xcode 的目录结构

(注意)

-o 选项指定了生成字符串文件的存放目录,默认情况下文件名是 Localizable.strings。需要注意的是,genstrings 默认会覆盖已存在的同名字符串文件。(-a 选项可以让 genstrings 将生成的条目追加到已存在同名文件的末尾,而不会覆盖原文件。发现 -a 没效果



可以看到用 -o 的文件:







对比没做国际化的  繁体中文的代码:









更新Storyboard的多国语言strings文件


http://sherlockyao.com/blog/2014/09/08/localize-storyboard/


首先你先备份一份你想要更新的语言文件,然后在右边的文件窗口把对应的那个勾选项取消掉,接着再选上,这个时候XCode就会重新生成一份新的文件。我们要做的就是把老文件里已经写好的对应关系复制到新文件上,再把新的元素的文字补上就可以了。










1.新建的  Settings.bundle 本地化,需要重启系统的 Setting 才能看到效果,要不然会显示空白.


RootViewController.h  ->  



1.RootViewController(继承自UITableViewController)(plist 中读取数据)



20160808


图片国际化:http://blog.csdn.net/hitwhylz/article/details/24494375(Finder中会出现对应的语言的 . lproj 文件,,建议在工程快完成后才做国际化,避免经常修改)




问题or Bug

1.现在Images.xcassets中的 AppIcon和LaunchImage不能国际化,Launch Screen.storyboard也不能国际化??? !!!

2.发现 在StoryBoard中, 如果又要适配屏幕的  大小,又要适配屏幕的国际化,屏幕的国际化会没有效果!!!



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值