2013-03-19 63 views
5

好吧,這個問題的目標不是嚴格的編程相關,但它是一個程序員可以使用編程工具回答的問題,程序員可能會在這裏找到有用的答案。忍受着我。如何反向設計Mac OS X語言本地化文件以進行自然語言學習?

我發現在Mac OS X中改變系統語言是增強自然語言學習的有效方法,例如法語。但是有時候我會發現一個法語的菜單項或對話框,我無法理解,這對谷歌翻譯或者將系統語言改回英語來說是一個不利因素。但我知道英文翻譯被隱藏在本地化文件的某處,並以某種方式映射到法語短語。所以我想要做的是從所有本地化文件中提取所有文本,以開發這個短語在英語中的映射=法語中的那個短語,以便我可以輕鬆查找它。

我知道本地化文件存儲在像Localizable.strings,lproj文件和nib文件這樣的東西中,但我無法制作它們如何存儲或如何使用它們的頭或尾。我可以編程,但我從來沒有在Xcode中寫過任何東西。我可以找到的所有信息都是爲​​了讓Mac OS/iOS程序員能夠本地化他們的軟件,而不是讓黑客提取已經提供的本地化信息。

如何從Mac OS X系統和第三方軟件本地化文件中以純文本形式提取外語信息?謝謝!

回答

1

字符串文件很容易。他們只是字典作爲屬性列表序列化。程序使用字典鍵來查找給定的字符串以進行特定的本地化。您可以通過加載兩個字典,迭代鍵,並使用英語詞典中的值作爲輸出中的鍵和來自其他語言詞典的值作爲輸出中的值,從英語映射到另一種語言。

NIB更難。構建過程將NIB文件編譯爲無法編輯或解析的表單。如果你有權訪問未編譯的NIB文件,那麼你可以使用ibtool --export-strings-file來轉儲一個字符串文件,然後你可以按照上面的步驟進行處理。如果你不那麼我認爲你可能會很難。

+0

感謝您的幫助,我明白您對物件清單中的東西的存儲意見,但仍然無法解決各種字符串文件之間的關係和連接方式,以及它們通常存儲在何處。 – arandomlypickedname 2013-04-01 09:13:20

+0

您能澄清一下您遇到的問題嗎? – bdash 2013-04-01 16:09:50