我正在嘗試查找關於如何本地化iPhone應用程序的一步一步教程。我有英文,我想添加法文。該文檔可用,但幾乎沒有給你明確的指示,說明如何從頭到尾執行它。如何本地化iPhone應用程序
回答
下面是我一直在尋找的分步演練。它被發現Here 希望它可以幫助你所有人,因爲它做了米。
這是一個客戶後,由肖恩·貝瑞,數學的應用程序的iPhone,iPad的開發者,和iPod Touch。
我古斯塔本地化! 儘管說英語的App Store市場規模最大,但世界上仍有許多其他iPhone用戶,您可以通過支持其母語來大幅提升用戶體驗。
好消息是,蘋果已經很容易使您的應用程序通過一些API調用多語言工作和內置在Xcode支持。這樣做的過程稱爲本地化,這就是我會告訴你如何去做的!
在這個iPhone應用程序的教程中,你將被定位一個示例應用程序我準備叫iLikeIt這是在雷的帖子的啓發由暴走漫畫有關應用內購買。該應用程序非常簡單 - 它顯示了一些理想的銷售數據,當您點擊「你喜歡?」時,出現一張臉,放大並消失。 但現在它只是英文 - 所以vamos一traducir!
這個iPhone應用程序的教程將要使用的Xcode 4.6.1,因此,如果您尚未升級,爲什麼不以此爲藉口這樣做呢?
入門 第一步是下載iLikeIt starter project,我們將在本iPhone應用教程中進行本地化。 構建並運行應用程序,你應該看到您點擊後,以下出現「你喜歡?」:
我們有三樣東西在這裏定位: 文字:銷售數據 UI元素:「你喜歡?」按鈕 和最後的圖像(它有文本!) 從代碼中分離文本 與大多數項目一樣,此項目在代碼中包含一些硬編碼字符串。我們需要將所有這些硬編碼的字符串放到一個單獨的文件中,以便我們可以對它們進行本地化。
你在Xcode中做到這一點的方法是創建一個「.strings」文件包含所有項目所需要的字符串。然後,您將用函數調用替換硬編碼的字符串,以根據當前語言從「.strings」文件中查找適當的字符串。 讓我們試試看。轉到File \ New \ New File。選擇iOS \ Resource \ Strings File,然後單擊Next,如下面的截圖所示。命名新文件Localizable.strings,然後單擊保存。
請注意,Localizable.strings是IOS在處理本地化文本時查找的默認文件名。如果你不使用它,你必須每次指定.strings文件的名稱。
爲字符串文件的格式是: 「KEY」= 「CONTENT」; 因此,對於我們'昨天您銷售%@ apps'和'您喜歡?'的文本添加: 「您昨天出售%@ apps」=「您昨天銷售%@ apps」;
"You like?" = "You like?";
現在切換到ViewController.m,並找到viewDidLoad方法。現在它將文本設置爲: self.numAppsLabel.text = [NSString stringWithFormat:@「昨天您銷售%@ apps」,@(1000000)];
[self.likeButton setTitle:@"You like?" forState:UIControlStateNormal];
我們希望它從我們的.strings文件中讀取。要做到這一點,請將當前行更改爲使用名爲NSLocalizedString的宏,如下所示: self.numAppsLabel.text = [NSString stringWithFormat:NSLocalizedString(@「Yesterday you sold%@ apps」,nil),@(1000000)];
[self.likeButton setTitle:NSLocalizedString(@"You like?", nil) forState:UIControlStateNormal];
如果你好奇的NSLocalizedString宏做什麼,在NSLocalizedString控制單擊並選擇跳轉到。你會發現,它的定義如下:
#define NSLocalizedString(key, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
因此,基本上,它的使用方法localizedStringForKey查找字符串給定鍵,在當前的語言。它傳遞零表名,所以它使用默認的字符串文件名(Localizable.strings)。有關完整的詳細信息,請查看Apple的NSBundle類參考。
另一件要注意的事情。宏將註釋作爲參數,但似乎沒有做任何事情!這是因爲不需要像我們一直手動輸入Localizable.strings中的每個鍵/值對一樣,您可以使用iPhone SDK附帶的稱爲genstrings的工具自動執行此操作(這對於大型項目可能非常方便)。
如果您使用此方法,則可以爲默認字符串旁邊出現的每個字符串添加註釋,以此作爲翻譯器的輔助。例如,您可以添加一個註釋,指示使用該字符串的上下文。 足夠的背景資料 - 讓我們試試吧!構建和運行你的項目,它應該像以前一樣在主屏幕上顯示相同的文本。但西班牙語在哪裏?現在我們成立了,這是一個小小的局面。
添加西班牙語本地化 要添加對其他語言的支持,請單擊左窗格中的藍色iLikeIt項目文件夾,在下一個窗格(不是目標)中選擇項目,然後在Info選項卡下,本地化版塊。點擊+並選擇西班牙語(es)。
您會看到另一個屏幕,詢問您要將哪些文件進行本地化,並將它們全部保留並單擊完成。你沒有看到Localizable.strings沒關係!我們很快就會做到。
在這一點上,Xcode已經在後臺爲您選擇的每種語言設置了一些包含InfoPlist.strings和MainStoryboard.storyboard單獨版本的目錄。要親自查看,請在Finder中打開項目文件夾,然後您會看到以下內容:
請參閱en.lproj和es.lproj?它們包含我們的語言特定版本的文件。 'en'是英語的本地化代碼,'es'是西班牙語的本地化代碼。如果你很好奇,下面是完整的語言代碼列表。
當iOS想要獲得英文版本的文件時,它會查看en.lproj,但是當它需要西班牙語版本的文件時,它會查找es.lproj。
就這麼簡單!把你的資源放在適當的文件夾中,iOS將完成剩下的工作。 但是等等,Localizable.strings呢?要讓Xcode知道您希望它本地化,請在左窗格中選擇它,然後在右窗格中打開File Inspector。在那裏您會看到一個標有本地化的按鈕,點擊它,選擇英語(因爲它目前是英語),最後點擊本地化。
現在在右邊的File Inspector面板上,它顯示了該文件屬於哪種語言,通過選中西班牙語左側的框將其添加到西班牙語本地化中。
返回到左側面板並單擊Localizable.strings旁邊的箭頭,以顯示子元素。您現在將看到我們正在使用此文件的兩個版本:
要更改西班牙語的文本,請選擇Localizable.strings(西班牙語)並將文本更改爲: 「您昨天銷售%@ apps」 =「Ayer le vendió%@ aplicaciones」;
"You like?" = "~Es bueno?~";
你的應用程序現在是世俗的!讓我們確保它的工作... 要讓您的模擬器顯示西班牙語,進入Settings.app並選擇常規 - >國際 - >語言 - >西班牙語。 刪除該應用程序並選擇Project \ Clean以獲取全新的構建和安裝。當你建立和運行你應該看到:
語言環境與語言 讓我們通過添加一些格式使該數字看起來更好。替換此代碼: self.numAppsLabel.text = [NSString stringWithFormat:NSLocalizedString(@「昨天你賣了%@ apps」,nil),@(1000000)]; 使用: NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *numberString = [numberFormatter stringFromNumber:@(1000000)];
self.numAppsLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Yesterday you sold %@ apps", nil), numberString];
構建和運行和數字將會更容易閱讀。
但是,在西班牙,他們不會像這樣格式化數字。他們寫的是「1.000.000」而不是「1,000,000」,但如果您將iOS模擬器的語言更改爲Espanol,您仍然會看到用於分隔零的逗號。原因在於數字格式是基於區域/區域設置的,而不是語言。要查看西班牙的某個人如何看到該號碼,請進入設置 - >常規 - >國際,並將區域格式更改爲西班牙語 - >西班牙。
當你打開應用程序再次,這是你應該看到:
我們得到了該功能免費,只是爲了使用蘋果的NSNumberFormatter類!它支付蘋果公司的方式,不要與之抗爭。 圖片 由於我們在圖片中有文字,因此我們需要對其進行本地化。在其他西班牙語的應用程序中有一些英語會看起來業餘。 選擇ilike.png併爲西班牙語添加本地化版本(現在您已經是一位老專業版了!)(如果您忘記了,請在左側面板中選擇它,然後在右側的文件檢查器面板中單擊本地化按鈕。然後,在允許Xcode將默認副本放置到en.lproj後,選中右側面板上的西班牙文框。) 檢出項目文件夾。 ilike.png已被添加到英文文件夾(en.lproj),然後被複制到西班牙文件夾(es.lproj)。要爲西班牙文版本顯示不同的圖像,我們只需在西班牙文件夾中覆蓋圖像。
我也將它包含在起始項目中,保存爲megusta.png。 將它重命名爲ilike.png並將其移入西班牙文件夾(es.lproj),覆蓋複製的英文版本。 清潔和重建,你應該完成!切換你的模擬器到西班牙語看到...
恭喜!這是本地化的大部分。
- 1. 本地化iPhone應用程序
- 2. iPhone應用程序本地化
- 3. iphone中的應用程序本地化
- 4. 本地化iPhone應用程序
- 5. 本地化iPhone應用程序
- 6. 如何創建本地化的iPhone應用程序?
- 7. 你如何本地化您的iPhone應用程序?
- 8. 如何本地化iPhone(monotouch)和Windows Phone 7應用程序?
- 9. 如何本地化iPhone應用程序的數字?
- 10. 如何本地化iPhone應用程序的不同語言?
- 11. 使用openGL的iPhone應用程序中的文本本地化?
- 12. 本地化我的iPhone應用程序而不使用XIB本地化?
- 13. 本地化我的iPhone應用程序,不正確使用本地化文件
- 14. 本地化移動應用程序本地化測試工具(Android,Iphone,WP)
- 15. 本地化您的iPhone應用程序常見嗎?你默認本地化?
- 16. 德國應用程序商店(本地化)的iPhone應用程序
- 17. 本地化iphone應用程序與應用程序定義語言
- 18. Flex AS3 Iphone - 如何打開本地地圖應用程序?
- 19. 你將如何從本地iPhone應用程序調用其他應用程序?
- 20. iPhone應用程序 - 本地與外部
- 21. 如何僅使用單個故事板本地化iOS(iPhone/iPad)應用程序?
- 22. iPhone:本地應用程序與本地存儲的Web應用程序?
- 23. 爲區域本地化iPhone應用程序
- 24. 本地化iPhone應用程序的工具
- 25. 更新本地化iPhone應用程序的最佳實踐
- 26. 本地化iPhone應用程序以支持愛爾蘭語
- 27. iPhone應用程序本地化 - 英語問題?
- 28. 在Xcode 4中本地化iPhone應用程序名稱
- 29. iPhone應用程序名稱本地化(簡體中文)
- 30. iPhone/iPad應用程序中的本地化問題
http://www.ibabbleon.com/iphone_app_localization。html – stosha
我喜歡你的漫遊,然後是我發佈的漫遊。當你有機會時,你可以把它作爲答案,以便我可以接受它? –
謝謝添加我的答案 – stosha