2010-12-11 48 views
2

我們已將應用程序本地化爲多種語言,並且在我們的Ad Hoc版本中正確顯示了所有內容。針對商店的iPhone應用本地化版本

我們構建併發布了今天推出的App Store版本,但我們的國際用戶都沒有看到本地化的字符串。

更多信息:

  1. 在iTunes Connect,下二進制文件細節,語言顯示爲: 本地化:( 「德」, 「恩」, 「JA」, 「PT」)
  2. 的Settings.app字符串顯示爲已翻譯,但應用程序本身內沒有任何字符串出現在英文以外的其他字符中
  3. 我們嘗試刪除並重新從多個手機上的商店下載應用程序,但無濟於事
  4. 我們在iTunes Connect中沒有任何本地化(t描述等等)。
  5. 我們嘗試其他應用是正確的語言

我們如果#4琢磨的問題,我們需要有iTunes Connect的內部創建我們的App Store應用到顯示爲正確本地化本地化以及?

回答

3

這聽起來像分發版本的某種構建問題。我的猜測是,您的項目根目錄中有一個剩餘的Localizable.strings文件(來自預定位),可能只有您的分佈版本中。如果你有這個,NSLocalizedString會更喜歡它到任何實際本地化的語言(這有點違反直覺)。

您可以通過破解您提交的.app包並查看該文件的層次結構的第一級進行檢查。

由於意外的非乾淨構建,我在前置本地化之前就已經看到了這一點。

+0

這看起來完全是這樣,在Ad Hoc和App Store之間的CodeResources上運行diff顯示出一個區別:項目根目錄中的一個零散的Localizable.strings – Zeppomedio 2010-12-11 03:00:09

+0

:)對不起人。我只知道因爲我被這個燒傷了。現在你知道下一次了! – 2010-12-11 03:31:23

0

只要iPhone本身使用正確的語言(通過Settings.app),本地化應該是正確的。根據應用構建中包含的本地化文件,iTunes Connect Binary Details會顯示應用支持的語言。

就iTunes Connect本地化而言,即應用程序商店,如果您想用不同語言(在App Store中,而不是應用程序本身)顯示您的應用程序。

只要你的應用程序字符串包括(例如):

cell.textLabel.text = NSLocalizedString("MyProducts","A Description of My Products"); 

和您的本地化文件包括:

"MyProducts" = "My Products"; 

和你的項目包括:

Localizable.strings 
    -en.lproj 
    -es.lproj 
    -fr.lproj 
+0

這就是我們認爲;我們有ja.lproj和de.lproj,裏面有Localizable.strings,這些條目顯示在我們的XCode項目的Localizable部分下。沒有什麼額外的東西我們應該在Info.plist中指定或者什麼,是嗎?或者可能會有問題,因爲這是一個應用程序更新,而我們以前的版本不包含任何本地化?謝謝。 – Zeppomedio 2010-12-11 01:49:31

+0

不應該有任何問題作爲更新,因爲這是什麼更新應該包括(理論上)。這些都不需要包含在你的info.plist中。另外,我看到你說「Localizable.strings inside」。如果你沒有一個名爲Localizable.strings的文件,那麼在THAT文件中有en.lproj文件。那可能是你的問題。 – WrightsCS 2010-12-11 02:18:44

0

這是來自WrightsCS和quixoto的兩個答案的混合體。

在運行GENSTRINGS並生成localizable.strings之前,請確保每個字符串都已經用NSLocalizedString作爲前綴。

一旦你已經翻譯了你的localizable.strings,把它們放到各自的資源文件夾(en.lproj,fr.lproj,de.lproj等)。您還必須確保en.lproj文件夾外沒有英文資源,因爲這些資源在運行時可能優先。

我有一個本地化知識庫跑這裏,如果有人有興趣: http://kb.applingua.com

相關問題