iphone开发过程中的本地化

关于这个问题网上教程无数,但实现的过程中遇到点小麻烦

普通的本地化:

1.在Resources分类下新建文档(右鍵/Add/New File…)
2.在模板对话框中选择Other,然后再选择Strings File 或是 Empty File(我的xcode这一项跑到maxos标签下去了,而不是ios标签页下)
3.将文件保存名设置为Localizable.strings
4.在Localizable.strings 文件上按右键并选择 Get Info
5.点击信息界面的Make File Localizable,然后再将Tab标签切换到General
6.输入新的语言名称 zh 後按 Add,些时有English与zh,jp语言,你还可以增加其它语言.


在源代码中使用NSLocalizedString来引用国际化文件

xxlabel.text =NSLocalizedString(@"text1",@"");


生成key文件
打开Terminal,然后cd到工程所在的目录 cd ~/work/text1 然后


genstrings -o English.lproj  ./classes/*.m
genstrings -o zh.lproj  ./classes/*.m

genstrings -o ja.lproj  ./classes/*.m


Localizable.strings会多一个三角,拉开会有刚刚添加的3种语言文件,在每个文件里添加要翻译的字符串,例如:“text1”=“text1”; “text1”=“文本1”; “text1”=“テキストの1“


对应该程序名字的本地化处理:

比如英语环境下,程序名字叫game,中文下叫游戏

这个需要写到info。plist的CFBundleDisplayName中去,在apple的官方文档:http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102193 有注释


要写到InfoPlist.strings里去。

方法一
1)   对Info.plist进行本地化,然后设置需要的语言(如简体中文zh_CN),设置语言对应的Localization native development region;
2)创建一个空文件,取名为InfoPlist.strings
3)对InfoPlist.strings进行本地化(Get Info  -> Make Localization),然后设置需要的语言(简体中文zh_CN)
4)  编辑不同的InfoPlist.strings文件,设置显示名字,如:CFBundleDisplayName = "游戏"; 

方法二
1)编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为选中状态
2)创建一个空文件,取名为InfoPlist.strings
3)对InfoPlist.strings进行本地化(Get Info  -> Make Localization),然后设置需要的语言(简体中文zh_CN)
4)  编辑不同的InfoPlist.strings文件,设置显示名字,如:CFBundleDisplayName = "游戏"; 


InfoPlist.strings与Localizable.strings的区别:

原文:http://lists.apple.com/archives/carbon-dev/2007/Mar/msg00167.html

What's the difference between these two files? Is InfoPList.strings only for properties found in Info.plist?

Yes. If you want strings in Info.plist to be localizable, put them in InfoPList.strings.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值