iOS 国际化

来源:互联网 发布:centos 6.5 开启snmp 编辑:程序博客网 时间:2024/06/05 00:41






20160808


在代码中的文字的国际化

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




如:

- (void)viewDidLoad {

    [superviewDidLoad];

    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中, 如果又要适配屏幕的  大小,又要适配屏幕的国际化,屏幕的国际化会没有效果!!!



















0 0