OSX軟體中文化教學
基本概念
相關工具
範例流程

cocoa應用程式
lproj語系包
語系優先權
nib和strings檔案

Interface Bulider
Xcode

範例程式Snapz Pro v2.0
建立zh_TW.lproj繁體中文語系包
修改nib檔案
修改strings檔案
大功告成


基本概念

在OSX底下的應用程式(*.app),大部分都是cocoa應用程式
這種類型的應用程式有個很大的特色,就是容易製作各種語系套件

cocoa應用程式

要如何知道一個軟體是不是cocoa程式呢?
請任意選擇一個應用程式,在圖示上點擊滑鼠右鍵(或是Ctrl+左鍵)。
如果出現了『顯示套件內容』這個訊息:

那這個應用程式就極有可能是cocoa應用程式,你即可嘗試對它做中文化的動作。

lproj語系包

選擇『顯示套件內容』之後,會開啟應用程式內的檔案夾資料。
內部的檔案夾架構通常是:

--->--->

而語系資料就存放在Resources檔案夾底下。

進入Resources檔案夾,會看到許多副檔名為lproj的檔案夾,這就是語系包
通常製作中文化,是將英文翻譯成中文,而英文的語系包是這一個:

請你先在相同路徑底下拷貝一份英文的語系包

然後重新命名拷貝的那一份成為『繁體中文語系(zh_TW.lprog)

這樣這個應用程式就擁有了繁體中文的語系包(但是內部檔案仍是英文的)。

語系優先權

或許你會有疑問,一個應用程式內有一個以上的語系包時,
那應用程式怎麼知道要使用那一個語系來當作界面呢?

你可以進入到『系統偏好設定』中的『國際設定』中做設定。

依照你語系的優先順序高低,系統會選用偏好的語系界面。
如圖所示:在同時擁有繁體中文和英文語系包的情形時,應用程式會優先採用繁體中文語系。

nib和strings檔案

打開剛才建立的『繁體中文語系包(zh_TW.lproj)』。

在裡面通常會看到幾個跟中文化有關的檔案,nib以及strings

修改這兩個檔案的動作,就是所謂的中文化了。
既然要修改,該具備的工具便不能少,下面接著做相關介紹。


相關工具

中文化的工具軟體非常的多,諸如ResorcererReseditPowerGlot....
但是這些軟體使用上都有點煩瑣,很容易讓入門者打退堂鼓。
而且在OSX底下製作中文化,比起OS9要容易許多,不需要使用這些軟體也能做的到。

以下我們就使用蘋果公司自己的開發軟體來進行中文化工作。
要取得下列工具軟體,你可以從OSX10.3的第四片光碟『Xcode』中安裝。
或是到蘋果的開發者網站http://developer.apple.com/,註冊帳號後下載相關工具。

Interface Bulider

修改nib檔案的利器,在有安裝InterFace Bulider的情形下,就會自動使用它來開啟&編輯nib檔案

Xcode

修改strings檔案用,使用Xcode這套超強軟體來修改strings檔案,真的是殺雞用牛刀。
因為用OSX內建的『文字編輯』一樣可以修改strings檔案。只是用Xcode的奇摩子比較好∼


範例流程

範例程式Snapz Pro v2.0

基本介紹的差不多了,就拿Snapz Pro這套好用的螢幕擷取軟體來作中文化的實際操作流程吧。

建立zh_TW.lproj繁體中文語系包

點擊滑鼠右鍵選擇『顯示套件內容』。

進入語系包儲存的檔案夾底下。

將英文語系複製一份,重新命名成『繁體中文語系(zh_TW.lproj)』。

進入繁體中文語系包內。

修改nib檔案

雙擊開啟Main.nib這個檔案,Interface Bulider會自動開啟它。


開啟之後,會顯示出這個nib檔案中的界面內容。

接著雙擊開啟MainMenu

會看到原始英文界面的選單

用滑鼠雙擊你想要修改的文字欄位,即可直接做應用程式選單中文化的修改動作。

換雙擊開啟ImagePalette

一樣會秀出原始的英文界面版面配置

用滑鼠雙擊想要修改的欄位,即可進行修改。

修改完畢之後,記得儲存(蘋果+S)修改結果。
儲存nib檔案時,Interface Bulider會建立一個『檔名~.nib備份檔案,請安心的將它刪除沒有關係。

等你將main.nib中的每個界面都修改完畢之後,這個nib檔案就算是大功告成了。

修改strings檔案

換研究Localizable.strings這個檔案,雙擊滑鼠開啟它。

有安裝Xcode的話,它會開啟這個檔案。

strings檔案的架構如下:

/*註解文字*/
"原始的字串文字"="取而代之的字串文字";

舉例:
/* the name of the Watermarks folder in ~/Library/Snapz Pro X/ */
"Watermarks" = "Watermarks";

綠色部份是說明下面的字串是做什麼用的,方便以後程式維護或是更動,這部份我們不用管它。

左邊"Watermarks",就是英文語系中的預設顯示字串,
現在是『英文=英文』的情況,所以左右兩邊的文字是相同的。

修改的方式是改成『英文=中文』,我們將右邊"Watermarks"改成"浮水印"
如此一來,當應用程式使用到Watermarks這個字串時,就會用浮水印這個字串來取代顯示。

一些非文字的部份,比如說"%d",這個是變數的部份,
程式在顯示時會用數值來取代%d這個代碼,在中文化時請不要更動它

有耐心的修改strings中的內容,最後你會得到下面的結果:

一樣將修改後的strings存檔。

大功告成

接著重新開啟Snapz Pro

你就會得到自己製作的中文化界面了!