Mac开发-多语言处理之xib

多语言处理

对于文本的多语言处理,使用NSLocalizedString并配置好Localizable.strings文件实现
对于界面的对语言处理,同样也可以代码编写,在使用NSLocalizedString实现,但xib更加简单直接

xib多语言

通过创建Controller

首先创建一个视图Controller,并勾选添加xib文件
在这里插入图片描述

这里也可同样适用于单独的xib文件,例如MainMenu.xib.storyboard文件

然后选中,选择右侧栏中的 localize...
在这里插入图片描述
这里就会提示
在这里插入图片描述
这里选择Base就意为做一个最基本的样板,然后根据做好的这个样板我们再定义其他语言的样式

需要开启autolayout我们才能使用约束布局
添加好内容布局后,就可以设置多语言
在这里插入图片描述

添加语言

这里只有英文Enbase,选中project,添加语言
在这里插入图片描述
添加新语言时,会提示你是否为已经多语言化的xib文件创建这个新语言的支持
在这里插入图片描述

localizable strings和Interface Builder Cocoa XIB

这里有两种,一种是localizable strings,另一种是xib形式
在这里插入图片描述
区别在于
localizable strings适用于只有文本变化,UI布局不变化的场景
Interface Builder Cocoa XIB形式,适用于UI布局变化的场景

Interface Builder Cocoa XIB转localizable strings

有时候我们只需要一份布局,后续可能还会继续修改,那么保持多份xib文件就不明智了。
就需要Interface Builder Cocoa XIBlocalizable strings

例如我们有MainMenu.xib的英文文件
在这里插入图片描述
将多语言删除,但不删除文件
在这里插入图片描述
然后选择English
在这里插入图片描述
提示已经有xib文件,是否使用其中的内容,选择Use file则可以使用xib匹配。

设置无效的问题

前提是base文件的ObjectIDxib文件需要一致

/* Class = "NSWindow"; title = "Rich Media Web Training"; ObjectID = "nHh-YP-tQ3"; */
"nHh-YP-tQ3.title" = "多媒體網絡培訓";

nHh-YP-tQ3同样需要在xib中也能搜索到(将xib文件拖入文本编辑器搜索),并且也为此值

简体转繁体

写了一份简体之后,剩余的繁体可以可以通过脚本转换,或者使用在线网站
http://tools.jb51.net/transcoding/convertzh

.string设置无效

值得注意的是需要正确的格式编码,例如简体转繁体从网站复制之后,再复制一次到文本编辑器中,格式化下,再粘贴到.string文件中即可

base xib作用

base xib文件仅在使用.string文件需要,如果使用xib,可以不使用base xib

验证多语言方法

在这里插入图片描述
在xcode中设置即可,不用变动系统语言测试

官方文档

附上官方文档 https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.html#//apple_ref/doc/uid/10000171i-CH1-SW1


版权声明:本文为shengpeng3344原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。