ios本地化具体实现有哪几种方式

 我来答
百度网友96ffcf7
2014-12-24 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
1、本地化xib文件
在XCode中点击LocalizedDemo项目文件—PROJECT栏—LocalizedDemo—Info,可以看到Localization部分下面Language只有English一项。
点击Localization下面的加号(+)按钮,会弹出一个本地化语言列表,选择需要增加的本地化语言,比如我选Chinese(zh-Hans),这个是简体中文,然后会弹出一个对话框,里面包括需要本地化为简体中文的资源,本工程中有ViewController.xib和InfoPlist.strings,点击Finish。
工程中的ViewController.xib和InfoPlist.strings文件旁就有一个可以展开的三角形了,展开可以看到他们有两个子项:English和Chinese,English资源位于工程目录的en.lproj文件夹中,Chinese资源位于工程目录的zh-Hans.lproj文件夹中。
这样就完成了xib的本地化。
当iOS设备当前语言是English时,会调用ViewController.xib(English),
当iOS设备当前语言是中文简体时,会调用ViewController.xib(Chinese)。
其他语言xib的本地化类似。
这种方式在于能够迅速的处理多语言本地化,可以根据不同语言的文本长度直接在xib中调整控件大小,但如果需要本地化的语言种类非常多,项目中xib文件也很多,那么项目中就充斥着太多太多的xib资源文件,感觉非常不好。

2、本地化图像
在步骤1中不同的本地化xib文件中的UIImageView选用不同的图片就能完成图片的本地化。

3、本地化应用程序显示名称
在步骤1中的不同本地化InfoPlist.strings文件中设置:
CFBundleDisplayName = "APPNAME";
"APPNAME"改成想要显示的本地化名字即可完成应用程序名称的本地化。

4、本地化字符串
假设在ViewController.xib有一个UILabel,将其文本赋值如下:
label.text = NSLocalizedString(@”Hello, World”, @”The test label”);

启动/Application/Utilities/Terminal.app,cd到LocalizedDemo目录,执行如下指令:
genstrings ./LocalizedDemo/*.m
命令执行完后将在项目工程目录下生成一个名为Localizable.strings的新文件,将其导入到工程中。
在Xcode中选中Localizable.strings,选择XCode菜单—View—Utilities—Show Utilities,选择Localization,选择需要本地化的语言,即可完成。
这样,在Localizable.strings可以看到一个能展开的三角形,展开后能看到所有已经本地化的语言。
需要注意的是,还要对Localizable.strings对应的本地化语言做修改,因为它默认是会以某一个语言为模板复制的。比如,中文本地化默认如果以English为模板,英文本地化字符内容为:
/* The test label */
"Hello, World" = "Hello, World";
那么中文本地化初始化值也是:
/* The test label */
"Hello, World" = "Hello, World";
需要将中文等号后面的修改:
/* The test label */
"Hello, World" = "你好,世界";
注意等号前面的字符串是本地化字符的key,不能随意修改,若修改了它,需要重新生成本地化字符串文件。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式