簡體   English   中英

適用於新UI的iOS故事板本地化

[英]iOS storyboard localization for new UI

我在一個項目中使用Xcode 5。 而項目需要本地化。 Xcode幫助我生成了它看起來像Localizable.strings

/* Class = "IBUIButton"; normalTitle = "2013-10-1"; ObjectID = "p5u-h7-pfJ"; */
"p5u-h7-pfJ.normalTitle" = "2013-10-1";

/* Class = "IBUILabel"; text = "Label"; ObjectID = "pBS-eN-YUz"; */
"pBS-eN-YUz.text" = "Label";

/* Class = "IBUITextField"; placeholder = "Input Name Here"; ObjectID = "pE4-WG-fPp"; */
"pE4-WG-fPp.placeholder" = "Input Name Here";

/* Class = "IBUILabel"; text = "Detail"; ObjectID = "qSu-Mo-baT"; */
"qSu-Mo-baT.text" = "Detail";

但如果我想在故事板中添加新UI,我該怎么辦呢。 如何添加新的鍵值?

在您的故事板中,每個對象都有一個ID。 在“工具”視圖中,“身份檢查器”拇指,“文檔”部分,有一個字段“對象ID”

我從來沒有使用過這個,但我想,如果你有一個ID為141-wB-KQD的標簽並且你想設置它的文本屬性,你必須放入你的Localizable.strings

"141-wB-KQD.text" = "the value you want";
  1. 為需要更新的區域設置制作故事板的.strings文件的備份副本。

  2. 在Project Navigator中選擇storyboard(在左側Xcode的窗格中),打開File Inspector(右窗格)並取消選中該區域設置的復選框。

  3. 在出現“是否要刪除...”警告時,選中“從磁盤刪除本地化資源文件”復選框,然后按“刪除”按鈕。

  4. 標記相同的復選框; 這將生成本地化的本地化資源文件; 它將包含所有對象的條目,包括新添加的內容,但其內容根本不會被本地化。

  5. 將此新生成的文件與保存的備份合並 - 這將恢復您之前完成的所有本地化。

  6. 本地化新對象。

不確定這是“正確”的方式還是最好的方式,但這是我的工作:

1)最后進行任何本地化。 換句話說,首先嘗試確保您不需要對基本故事板進行任何更改。 這可能聽起來像一個警察,但實際上,這是避免麻煩的最佳方法。

2)因為事情並非總是如此,如果您需要進行更改,您可以通過將它們從“字符串”更改為“故事板”然后返回來將它們推送到本地化文件。 這將保留您現有的翻譯並自動處理任何新內容,因此它比直接從捆綁中刪除本地化文件更好。

我注意到這可能會不時在本地化文件中留下一些冗余的字符串,有時您必須手動刪除它們或者無法正確編譯,但如果有更好的方法可以做到這一點,我想了解自己。

如果要本地化項目視圖,只需單擊視圖控制器上的故事板,然后轉到文件檢查器並單擊本地化...您將為每種語言提供一個故事板文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM