很多 Mac 中文用户应该有这样的感受,Finder
中很多中文目录,在 Terminal
下其实是英文名称。创建自己的目录时,不清楚究竟创建中文还是英文目录,导致在 Terminal
下 cd
进目录的时候总是在不停的切换输入法,非常繁琐。
实际上 OS X
本身就内建了多语言结构,有两个地方可以去自定义
譬如创建个英文目录 Projects
, 想以中文 项目
来显示。
一. 用户级
在非必要的情况下,我是非常抵触修改系统目录或文件的,一切在用户目录下解决。
以 Projects 目录为例,5 步走:
1. 创建 “Projects.localized” 目录
2. 在该目录下创建 “.localized” 目录
3. 在 “.localized” 目录下创建 “zh.strings” 文件
4. 在 “zh.string” 按照 Key/Value 格式添加字段
5. 重启 “Finder”
简单来说
// 1 && 2
mkdir -p Projects.localized/.localized
// 3
cd Projects.localized/.localized
touch zh.strings
// 4
vim zh.strings
"Projects" ="项目";
// 5
killall Finder
要注意第 4 步添加的字段后面的 “;” 不要丢. 这种方法 优点是对系统改动小, 简单方便. 不受系统更新影响 . 缺点是 Terminal
中英文文件夹名称后面有 ‘.localized’ 强迫症看着是真的难受.
二. 系统级
1. 关闭 Rootless 功能
a. 重启电脑并按住 cmd + R 键。进入恢复模式。
b. 载入界面后在顶部的菜单栏 Utilities > Terminal 打开终端。
c. 键入命令 “csrutil disable” 重启即可。
2. 备份
cd /System/Library/CoreServices/SystemFolderLocalizations/zh_CN.lproj
sudo cp SystemFolderLocalizations.strings SystemFolderLocalizations.strings.backup
3. 修改编辑
系统默认的文件格式是二进制, 直接打开会显示乱码, 我们需要处理一下.
a. 转换成 ‘json’ 文件.
sudo plutil -convert json SystemFolderLocalizations.strings
b. 修改
sudo vim SystemFolderLocalizations.strings
// 显示
{"Library":"资源库","Movies":"影片",
...
"Documents":"文稿","Downloads":"下载"}
参照格式 填入我们要定义的字段.
{"Library":"资源库","Movies":"影片",
...
"Documents":"文稿","Downloads":"下载","Projects":"项目"}
c. 把文件转换回二进制格式
sudo plutil -convert binary1 SystemFolderLocalizations.strings
d . 在你要本地化显示的文件夹下创建 .localized
cd ~/Projects // 切换到需要本地化的文件夹
touch .localized //.localized 保持为空即可
e . 重启 Finder 查看效果
killall Finder
4. 开启 Rootless 功能
a. 重启电脑并按住 cmd + R 键。进入恢复模式。
b. 载入界面后在顶部的菜单栏 ‘Utilities’ > Terminal
打开终端。
c. 键入命令 ‘csrutil enable’ 重启即可。
这种方式的好处是文件夹干净清爽, 而且如果不小心删除了这个文件夹,只要在原重建一个同名文件夹比如 Projects
,然后在该文件夹下建立 .localized
文件即可, 当然缺点也很明显, 每次系统更新都需要重新设置, 而且动系统文件有一定的风险.