2009-10-19 86 views
0

我創建了一個包含本地化資源(License.html,Readme.html等)的OS X安裝程序包。特別是,它包含本地化的postflight腳本,因爲某些安裝後操作因語言而異;例如,在安裝完成後打開每個語言文件。該包是作爲自動構建的一部分創建的,而不是通過Package Maker。是否支持OS X安裝程序包postflight本地化?

最初我使用'完整'區域名稱作爲本地化資源文件夾名稱;例如,English.lproj。一切正常。最近,我切換到ISO名稱,即en.lproj,因爲我發現這是Package Maker使用的,而this question表示首選表單。除了postflight腳本不再執行以外,所有工作都完全相同。

我做了一些更多的測試,並注意到,即使它的工作原理(使用滿語的名字作爲文件夾的名稱),它會記錄該消息到控制檯:

Localized installer script postflight found in the <name> package. Using compatibility mode.

我可以在Apple的開發人員文檔中幾乎找不到任何關於安裝程序本地化的提及,更不用說特定於腳本的任何內容。有人對此有經驗嗎?它是不是與en.lproj一起工作的缺陷,還是它曾經工作過的缺陷?

回答

0

事實證明,不,這不被支持了。

0

的事情,我不明白:

  1. 如果你沒有創建這些包有PackageMaker,你跟他們創造?

  2. 爲什麼postflight腳本需要本地化,當條件邏輯幾乎可以滿足時?

+0

它們是由腳本創建的;安裝程序包格式不是很複雜。我可以讓腳本在'locale'的輸出上切換,但是這增加了腳本的複雜性,並且難以本地化。創建獨立的翻譯副本要比將多個翻譯插入單個文件要容易得多。讓安裝程序進行切換,就像在使用完整文件夾名稱時似的,讓我的生活變得更加輕鬆。我只是想知道這是否是一種選擇。 – DNS 2009-10-19 17:00:18

+0

PackageMaker提供了一個可以從任何構建腳本運行的命令行工具。如果你不打算使用它,那麼你承擔所有責任,保持你迄今爲止所寫的任何內容。實際上,更容易的是查看已爲腳本設置的所有環境變量,並在運行時相應地調整其行爲。爲您支持的每一種語言保留一個完全獨立的腳本是浪費時間和帶寬。 – 2009-10-19 17:19:56

+0

postflight腳本以root權限運行,因此除非有人爲root用戶設置語言首選項(默認情況下不會這樣做),否則無法從環境變量獲取此信息。 – MatsT 2010-07-05 09:48:12