2012-12-13 40 views
5

所以我已經使用Use Base Internationalization在Xcode中本地化了一個故事板。Xcode本地化更新

我進去翻譯了字符串文件中的所有字符串。好極了。這永遠持續下去。

現在我在故事板的基礎文件中添加了一個新元素。它有一個標籤,裏面有一個我需要國際化的字符串。我保存了它,建立了它等,但是這個新元素無處可以在我漂亮的字符串文件中找到。

請不要告訴我,我現在必須手動添加我的所有元素?

回答

0

Xcode release notes說:

要與您的用戶界面 新的文件內容重新同步您的字符串的文件,使用 ibtool命令的--generate-叮咬文件選項,以產生新的字符串的文件。然後,手動將 新文件合併到您現有的本地化字符串中。

這真是蹩腳,但你去了。你可以使用FileMerge之類的東西來幫助你理清差異。 (我們有一組腳本讀取字符串文件並將它們合併到一起;這樣寫出這樣的東西並不難)。

+1

這是差勁,因爲它得到。一些嚴重的定製軟件的時間......給我幾天 - 這不可能很難做到優雅。 – mschultz

1

我發現跟蹤所有字符串更容易單獨的電子表格,然後從那裏自動生成每種語言的.strings文件。

您仍然需要跟蹤2個位置(xcode和電子表格中)的翻譯密鑰,但是至少您不必在每次希望編輯或合併所有Localizable.strings文件時添加一些字符串。

見例如Excel電子表格VBA宏在這裏: http://members.home.nl/bas.de.reuver/files/multilanguage.zip

+0

是的,同意了。這也是我們所做的一部分。 –

0

我發現了另一個跛腳的解決方案,但它是一個比在Xcode發佈說明發現少跛腳;勾選本地化語言,從磁盤刪除文件,現在再次打勾。這將重新創建.strings文件。

+0

我也是這樣做的。請注意,這仍然需要開發人員手動合併前一個文件和當前文件。 –

+0

是的,但這可以通過合併軟件和Git修訂輕鬆完成。仍然跛腳。 –

2

在IB的檢查器(類別部分)下手動找到對象ID。 自己手動編寫這些新元素。

+0

更聰明,創建新的本地化語言,不需要您的項目,然後複製新元素粘貼到您的舊語言文件,之後,刪除它。 – MatthewLuiHK

1

在等待的Xcode 6和他的新localization features(我希望將解決屁股此本地化更新疼痛),我們在理論上可以自動執行這些步驟(沒試過)

gist script(不容易發音:)似乎也很有用(再次未測試)

2

我解決了這個問題。

  1. 取消選中本地化工具面板的複選框。

  2. Xcode會問,你想刪除Main.storyboard的英文(語言)本地化嗎?

  3. 有對話框中其他複選框,不檢查

  4. 單擊刪除。

  5. 再一次選擇你的故事板,並重新檢查每種語言

  6. 的Xcode會說文件已經存在

  7. Selecte替換文件

  8. Xcode的自動更新的用戶界面重新生成字符串的文件和替換您的文件。

祝你好運。