LookAway 是个很实用的 macOS 护眼小工具:定时把屏幕调暗、提醒你眨眼休息。它界面干净,但只有英文。顺手把它本地化成简体中文,过程里踩了几个只有 macOS 才有的坑。
第一步:找到本地化包
App 包里 Contents/Resources/*.lproj 是各语言目录。没有 zh-Hans.lproj 就自己建一个,放 Localizable.strings 和 nib 文件。字符串文件用 plutil -lint 先校验语法,避免引号转义翻车。
plutil -lint zh-Hans.lproj/Localizable.strings
第二步:nib 的本地化
纯文本字符串好办,但界面布局(nib/xib)里的文案是编译后的二进制。改法有两种:
- 用 Xcode 的 Interface Builder 打开 nib,逐控件改文本;
- 没有 Xcode 时,用
ibtool把 nib 导出为 XML、改完再编译回去。
第三步:小心运行时的 Accessibility 权限
LookAway 需要辅助功能权限来控制系统显示。汉化只动文案,不涉及权限,但注册表里 CFBundleLocalizations 必须加上 zh-Hans,否则系统不会加载你的本地化包。
经验:本地化的真正难点从来不是翻译,而是让系统「愿意」加载你的 zh-Hans,以及 nib 里的约束在中文较长文案下不崩。
收尾
改完用 codesign --force --deep --sign - 重新签名(开发自用免证书),再重启 App 即可看到中文界面。整套流程跑通后,最大的体会是:macOS 的本地化机制设计得挺周到,只是文档散、工具老,需要耐心拼起来。