2013-05-07 37 views
5

嗨,我非常堅持對ios進行本地化的過程。如何在ios中爲初學者本地化標籤字符串

繼承人什麼,我明白了,怎麼去項目Explorer和diferent國家建立基地的本地化,

如何使一個字符串文件,並設置它被定位於基地內選擇特定的國家之一本地化

,如簡化中國

密鑰值對,以及如何對應字 的「Hello World」 =「一些其他語言」; 在本地化的字符串文件中

在編譯時,如何使用編寫hello world的簡單標籤的應用程序不會在中文模擬器中更改爲中文。

繼承人,我認爲我會出錯。

我想我需要將屏幕上的字符串連接到我的本地化字符串文件中包含的字符串。

我是否爲每種語言製作一個單獨的字符串文件?

即時通訊尋找一個非常簡單的應用程序存根,其中不包含任何東西,只有幾個標籤被翻譯成不同的語言,所以我可以學習如何使它連接和工作,所以我可以在其他地方使用它。

有一箇中文故事板,我必須對此做任何工作嗎?還是留空了?

閱讀文件的時間後,我似乎在圈子裏被繞來繞去,即時通訊與蘋果的文檔沒有印象在這個問題上認爲它失去了一些東西,

回答

5

本地化,你需要做的:

  1. 添加不同.strings文件爲每種語言
  2. 添加鍵值爲每種語言文件
  3. 用途:

NSLocalizedString(yourKey, nil);

[[NSBundle mainBundle] localizedStringForKey:(yourKey) value:@"" table:nil] 

爲了得到通過鍵的本地化字符串。

教程:

  • Localization in iOS apps made simple
  • iPhone Apps Localization Guide
  • Preparing your iOS app for localization in Xcode
  • +0

    整天帶我,但我完成了它謝謝, – 2013-05-07 14:29:45

    2

    使其成爲漂亮

    爲SWIFT,有更好的解決方案這使您的本地化好一點 - 不那麼混亂。您可以使用下面的擴展:

    extension String { 
    
        var localized: String { 
         return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") 
        } 
    
    
        func localizedWithComment(comment:String) -> String { 
         return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: comment) 
        } 
    } 
    

    現在,只要你想要的東西本地化的,你可以要求它作爲字符串屬性:

    let text = "my-localization-key".localized 
    

    而且它會根據你當前的系統語言得到本地化的字符串/語言環境。

    一些提示

    如果你有更大的項目,這是值得研究的經理,該處理本地化出口/添加新的語言爲您服務。我例如使用Crowdin - 但你可能會發現一些服務更具吸引力。好的一點是,你不必手工做所有事情,只需插入鍵/翻譯,併爲你完成導出,就可以完成所有的語言。

    此外,請按照您的密鑰命名。根據我見過的人做/我的經驗,我認爲這是明智的,通過邏輯組件/模塊,屬於他們的名字鍵,例如:

    "Profile.NavigationBar.Title" = "Profile"; 
    "Profile.NavigationBar.Button.Edit" = "Edit; 
    

    這樣,您就可以立即看到什麼,你會在哪裏找到它。

    最後,本地化通常是巨大的痛苦,因爲你可以做的錯誤數量很多。有一個生成器可以創建你本地化的實際代碼,所以編譯器會爲你檢查它。 You can get it on GitHub

    祝你好運!