西灣筆記

擷英採華,以備不需!

Mac OS X檔案夾名稱本土化

• Mac OS X, Localization, Chinese

當打開Finder時,會看到一些系統預設檔案夾名稱顯示為中文(如「下載項目」、「圖片」等等),而實際上它們都是英文的。從英文到中文,這就是「本土化」。當然,我們也可以對自己的檔案夾做同樣的「本土化」。本文即以Mac OS X 10.9.4為例,講解如何進行檔案夾名稱的「本土化」。

首先需要找到本土化字串的資源檔案,其路徑為:

/System/Library/CoreServices/SystemFolderLocalizations/zh_TW.lproj/SystemFolderLocalizations.strings

第二步是編輯此檔案。由於此檔案是二進制格式的,所以需要先使用plutil轉換為xml格式,轉換時需管理者權限(Mac OS X El Capitan請先移步這裡):

$ sudo plutil -convert xml1 SystemFolderLocalizations.strings

轉換後,就可以直接採用文字編輯器編輯了。下圖採用Vim進行編輯:
2014-11-16-01.png

然後增加「key」和「string」,例如我添加了「MyApps」和「我的應用」、「Workspaces」和「工作臺」:

<key>MyApps</key>
<string>我的應用</string>
<key>Workspaces</key>
<string>工作臺</string>

之後,再把檔案轉換回二進制格式:

$ sudo plutil -convert binary1 SystemFolderLocalizations.strings

最後一步,在需要本土化的檔案夾下,新建名為.localized的檔案(實測:同名的檔案夾也可以),標明此檔案夾需要本土化。

$ touch .localized

如此這般、檔案夾本土化就算是完工了。

注:當系統更新時,所有設置都會回復,需要重新進行設置。


2015/10/11更新、Mac OS X El Capitan適用

Mac OS X El Capitan引入了SIP (System Integrity Protection),對系統檔案的保護較先前版本更進一步,因而任何對檔案SystemFolderLocalizations.strings的修改都會失敗(即使是管理者也不行):

nawix-osx:zh_TW.lproj kenmux$ sudo plutil -convert xml1 SystemFolderLocalizations.strings 
Password:
SystemFolderLocalizations.strings: Operation not permitted
nawix-osx:zh_TW.lproj kenmux$ sudo chmod a+w SystemFolderLocalizations.strings 
chmod: Unable to change file mode on SystemFolderLocalizations.strings: Operation not permitted
nawix-osx:zh_TW.lproj kenmux$ ls -l
total 8
-rw-r--r--  1 root  wheel  1819 10 10 15:02 SystemFolderLocalizations.strings

由此可見、除了root使用者外,其他使用者都無法修改;而且、管理者也無法修改此檔案的權限。

為了能夠順利修改此檔案,首先想到的是:啟用root使用者

然而,切換到root使用者後、再次進行嘗試,依舊不行:

nawix-osx:zh_TW.lproj kenmux$ su
Password:
sh-3.2# plutil -convert xml1 SystemFolderLocalizations.strings
SystemFolderLocalizations.strings: Operation not permitted
sh-3.2# 

此時、唯一能想到的就是:關閉SIP(僅在回復系統下)。

進入回復系統後,從上方的選單列、選擇「工具程式->終端機」,並執行:

-bash-3.2# csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
-bash-3.2# 

注:請勿嘗試在回復系統下修改系統檔案(測試了下、無法修改)。

接下來,選擇「2014-11-16-02.png->重新開機」以重啟機器、並登入系統。此時,切換到root使用者、就可以修改此檔案,與上述步驟相同,只是無需sudo指令;修改完畢後,再切換回標準使用者。

注:

再次啟用SIP(同樣是在回復系統下):

-bash-3.2# csrutil enable
Successfully enabled System Integrity Protection. Please restart the machine for the changes to take effect.
-bash-3.2# 

下一步,選擇「2014-11-16-02.png->重新開機」以重啟機器即可。


comments powered by Disqus