IOS国际化

打开PROJECT->info 添加Localizations国际化语言

1、应用名和本地字符数据国际化:

在Supporting Files文件夹右键,NewFile… -> iOS -> Resources -> String Files,新建文件InfoPlist.strings&Localizable.strings。

点击文件在右侧添加国际化支持。

CFBundleDisplayName = "Localization";  
CFBundleDisplayName = "本地化";

2、图片国际化:

(1)打开Localizable.strings (English) ,并添加如下内容:
"imageName" = "ilike"; 
把以下代码添加至Localizable.strings (Spanish)文件:
"imageName" = "megusta"; 
从现在开始,你将使用imageName key来检索本地化版本的图片。打开ViewController.m并把如下代码添加到viewDidLoad方法中:
[_imageView setImage:[UIImage imageNamed:NSLocalizedString(@"imageName", nil)]]; 

(2)图片直接添加到项目中右侧添加国际化。

3、命令处理
在字符串很多时,可以借助命令行工具genstring,从.m或.mm文件中扫描下面宏中的某一个,并取出字,输出到国际化文件中:
    CFCopyLocalizedString
    CFCopyLocalizedStringFromTable
    CFCopyLocalizedStringFromTableInBundle
    CFCopyLocalizedStringWithDefaultValue
    NSLocalizedString
    NSLocalizedStringFromTable
    NSLocalizedStringFromTableInBundle
    NSLocalizedStringWithDefaultValue
在上面的宏中,以CF开头的和以NS的开头两两对应,后者属于Foundation框架,是基于Objective-C语言的,前者属于Core Foundation框架,是基于C言的。NSLocalizedStringFromTable和NSLocalizedStringFromTableInBundle函数在自定字字符串资源文件名时使用。
下面是genstrings命名的基本语法:
genstrings [-a] [-q] [-o <outputDir>] sourcefile
其中参数-a用于在有文件后面追加内容,-q用于关闭多个/值对的警告,-o用于指定出目录。因此,如果想输出到en.lproj目录,可以使用如下代码:
    genstrings -o en.lproj  *.m
这样在en.lproj目录下面产生了Localizable.strings文件。需要注意的是,每次运行上面的命令时都会覆盖Localizable.strings文件。如果不想覆盖该文件,可以使用-a参数,然后在文件中进行修改。
genstrings -a -o en.lproj  *.m

3、xib和故事版文件国际化

Main.storyboard故事板下面的Main.string(Chinese(Simplified))和Main.string(English),它的代码如
下:
我们需要修改Main.string(Chinese(Simplified))中的文件,将内容翻译为中文:
/* Class = "IBUINavigationItem"; title = "Title"; ObjectID = "Krr-lD-wke"; */
"Krr-lD-wke.title" = "标题";
如果Main.string文件已经生成了,然后我们还要添加新的控件,这些控件中还有静态文本内容需要国际化。
这种情况下我们需要知道它的ObjectID,然后在Main.string文件中添加对应的内容可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值