ios7 - guide - 如何在Xcode 5中修改故事板後同步本地化的故事板的字符串




xcode document (4)

我剛開始看看IOS Apps在XCode 5中的本地化,我試圖添加一個意大利語本地化

Xcode 5自動生成帶有單個條目的Main.strings文件,這是我在Main.storyboard文件中放置的唯一標籤:

/* Class = "IBUILabel"; text = "Label"; ObjectID = "PeT-4z-NSf"; */
"PeT-4z-NSf.text" = "Etichetta";

如果我稍後修改Main.storyboard文件向視圖中添加一個新按鈕,那麼如果可能的話,我應該如何告訴Xcode 5將缺少的本地化字符串添加到Main.strings文件中? 我應該通過查看Interface Builder中的對象ID字段手動添加新條目(它可以工作,但我不知道這是否是更新故事板本地化的意義)? 我可以在Main.storyboard文件上運行類似genstrings東西來提取所有標籤的文本並將新的文本添加到本地化的Main.strings文件中嗎?


Xcode沒有自動更新的文件(至少5.x版本沒有)是應用程序的Localizable Strings 。 您可以從Main.storyboard構建一個新文件,如下所示:

在項目導航器(最左側窗格)中,單擊Main.storyboard文件。 在“實用工具”窗格(最右側窗格)中,單擊“ 顯示文件”檢查器圖標。 它是下圖中最左邊的藍色圖標:

在將出現的右窗格中,其中一個部分將是“ 本地化”

取消選中English (Localizable Strings)行,在彈出的窗口中選中“ 從磁盤刪除本地化資源文件”,然後單擊“ 刪除”按鈕(您不必檢查刪除,在這種情況下Xcode會要求獲得覆蓋權限當你下一次構建它時)

然後再次檢查English (Localizable Strings)以從頭開始構建它。


使用Xcode 6+,理想情況下開發人員不必手動管理字符串文件。 使用XLIFF導出自動收集要發送給翻譯人員的開發語言字符串,然後使用XLIFF導入更新帶翻譯的字符串文件。

https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html#//apple_ref/doc/uid/10000171i-CH5-SW9

另一種選擇是直接使用ibtool --export-strings-file

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ibtool.1.html


另一種方法是通過在故事板上選擇要翻譯的字段來手動完成。 轉到“Identity Inspector”並複制對象ID(類似於HP8-op-SmX)。

之後,打開storyboard langage文件(Main.strings,大多數情況下)並超過Object ID。 根據您的需要,您只需添加.text或.placeholder。

   "HP8-op-SmX.placeholder" = "My translated placeholder text";
   "HP9-op-VvD.text" = "My translated text";

保存,清潔和構建。 這有點痛苦但如果你只需翻譯一些東西就可以節省很多時間。






uistoryboard