天天看点

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

文章目录

  • 多语言处理
  • xib多语言
  • 通过创建Controller
  • 添加语言
  • localizable strings和Interface Builder Cocoa XIB
    • Interface Builder Cocoa XIB转localizable strings
  • 设置无效的问题
  • 简体转繁体
  • .string设置无效
  • base xib作用
  • 验证多语言方法
  • 官方文档

多语言处理

对于文本的多语言处理,使用

NSLocalizedString

并配置好

Localizable.strings

文件实现

对于界面的对语言处理,同样也可以代码编写,在使用

NSLocalizedString

实现,但xib更加简单直接

xib多语言

通过创建Controller

首先创建一个视图Controller,并勾选添加xib文件

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档
这里也可同样适用于单独的xib文件,例如

MainMenu.xib

.storyboard

文件

然后选中,选择右侧栏中的

localize...

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

这里就会提示

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

这里选择

Base

就意为做一个最基本的样板,然后根据

做好的这个样板

我们再定义其他语言的样式

需要开启

autolayout

我们才能使用约束布局

添加好内容布局后,就可以设置多语言

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

添加语言

这里只有

英文En

base

,选中

project

,添加语言

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

添加新语言时,会提示你是否为已经多语言化的xib文件创建这个新语言的支持

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

localizable strings和Interface Builder Cocoa XIB

这里有两种,一种是

localizable strings

,另一种是

xib

形式

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

区别在于

localizable strings

适用于只有文本变化,UI布局不变化的场景

Interface Builder Cocoa XIB

形式,适用于UI布局变化的场景

Interface Builder Cocoa XIB转localizable strings

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

就需要

Interface Builder Cocoa XIB

localizable strings

例如我们有MainMenu.xib的英文文件

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

将多语言删除,但不删除文件

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

然后选择

English

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

提示已经有xib文件,是否使用其中的内容,选择

Use file

则可以使用xib匹配。

设置无效的问题

前提是

base

文件的

ObjectID

xib

文件需要一致

/* 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

验证多语言方法

Mac开发-多语言处理之xib多语言处理xib多语言通过创建Controller添加语言localizable strings和Interface Builder Cocoa XIB设置无效的问题简体转繁体.string设置无效base xib作用验证多语言方法官方文档

在xcode中设置即可,不用变动系统语言测试

官方文档

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

继续阅读