2013-07-08 52 views

回答

0

您可以選擇本地化功能。您需要爲每種支持的語言添加Localizable.strings文件並將其用於本地化。

您需要使用:NSLocalizedString()來獲取與每個密鑰對應的數據。詳細請看tutorial

+0

在開始本主題之前,我檢查了本教程。本教程並不好,因爲它使用了多個故事板,並不是我所需要的。我需要找到解決方案,我只能使用單個故事板避免維護地獄 –

+0

@JohnSmith:我沒有看到在本教程中的多個toryboards!但是有多個.strings文件在那裏。 –

+0

有多個故事板。如果你看截圖,你會看到故事板上有一個三角符號,例如:顯示更多。如果你看看文件結構,你會發現每個文件夾都有自己的故事板。最後,如果您複製了該教程中編寫的內容,您將看到它有2個故事板。我轉載,所以我知道我在說什麼 –

2

raywenderlich.com上的教程一起使用了兩種本地化形式。原因是他在打開圖像3中的本地化時也檢查故事板: image from ray's tutorial

那又如何?

NSLocalizedString是非常有用的,任何文本集編程方式可以(也應該)使用此方法進行本地化。 Ray的教程仍然非常有用。 但是,創造故事板的克隆來做翻譯並不是很理想,從長遠來看,它不是很好的維護。

那麼故事板呢?

使用基本本地化功能發生了奇蹟。基本本地化使用生成的objectId將不同的語言映射到故事板。

請注意,此功能僅適用於SDK 6.0及更高版本。在較低的iOS版本上運行應用程序不會導致任何錯誤,它將無法正常工作。

  • 轉到您的項目,並選擇Base Localization,然後添加任何其他語言。 localization

  • 打開故事板文件並檢查新語言。請注意,圖標不是故事板圖標,而是簡單的文本文件圖標。這是好事;它不會複製整個故事板這次:)。 enter image description here

  • 請注意現在是否有另一個文件在故事板下。 Xcode會自動爲您選擇的每種語言生成一個文件。