2009-12-13 4 views
6

Привет я представил первое приложение в AppStore http://itunes.apple.com/at/app/section-control/id343824642?mt=8iPhone приложение доступных языков в AppStore

Это показывает «английский язык», как Языки (Sprachen на немецком языке) в «Обзор». И это правильно в этом случае.

Я думаю, что это происходит из-за того, что у меня нет локализованных ресурсов в моем приложении. Какой вопрос один: Как «Языки/Sprachen» обнаружены в appstore?

Это (конечно) не имеет ничего общего с локализованными описаниями, поскольку в этом случае я использовал английский и немецкий языки.

TomTom http://itunes.apple.com/at/app/tomtom-westeuropa/id326075062?mt=8 для примера показывает много языков.

В любом случае - главный вопрос. Для моего следующего приложения я планирую «локализованную локализацию». Идея - это то, что вы найдете во многих приложениях, где вы можете загрузить «языковые файлы».

Предположим, у моего приложения есть список доступных языков. Это происходит из веб-службы, и вы (как пользователь) можете загружать свой предпочитаемый язык (если есть).

И поскольку вещь динамическая, произойдет следующее: я публикую приложение на английском и немецком языках (мой родной язык). Позже кто-то вводит французские тексты, поэтому с этого момента приложение также доступно на французском языке.

Я не нашел способ установить элемент «Языки/Sprachen» в кратком описании приложений (обзор) или мне нужно «повторно отправить» мое приложение, чтобы изменить это?

Последнее, что не в последнюю очередь - если я прав, и языки обнаружены с помощью ресурсов, содержащихся в приложении, - достаточно ли для того, чтобы предоставить «мое приложение» пустое (или просто содержащее одну строку) «файл строк»?

ответ

1

Это то, что вам нужно сделать:

Это как папка .app должна выглядеть следующим образом:

+ MyApp.app

+ en.lproj

+ de.lproj

+ nl.lproj

и т. Д.

в папке lproj, вы должны поместить файл Localizable.strings.

В этом Localizable.strings файл, вы можете поместить изменения языка, как это: (EN-NL)

"О" = "Over"

"ErrorSupport" = «Kon ниет де ondersteuning contacteren «.

Итак, первые строки, такие как "About", не дают по-английски, а только функцию.

Я не совсем уверен, как установить это в своем приложении, я не очень хороший кодер приложений. Вы должны проверить документы справки Apple или обратиться к другим разработчикам.

Для загрузки языков я бы предположил, что вы создаете webView и направляете его на свою страницу загрузки, и затем приложение автоматически реорганизует его как языковая папка и устанавливает его на MyApp.app/<language>.lproj. Спросите об этой загрузке другим разработчикам или проверьте документы справки Apple. (Я не знаю точно, если они упоминают об этом там)

+0

Спасибо. Я знаю понятия о строковых ресурсах. Вы хотите сказать, что для отображения языка в appStore мне нужно добавить ресурс для каждого языка? Или другими словами - есть ли локализованный ресурс то, что использует appStore для определения доступных языков? В результате чего - достаточно одной строки на один язык? Скачать также не проблема - и для «инъекции» локализованных вещей у меня уже работает код. Вопрос только в том, как appStore справляется с языками. – ManniAT

+0

ДА, App Store использует их для определения языков. Я знаю, что за 99,99% уверен. Если вам требуется полное подтверждение, вы можете связаться с Apple. и, как вы видите, это не appStore, а App Store. Вы, как разработчик, должны это знать. (Извините, если вы обиделись.) –

+0

И да, одной строки должно быть достаточно. –

16

Я использовал случай технической поддержки, чтобы задать этот вопрос непосредственно Apple. Вот ответ:

«Список языков, поддерживаемых приложением, как показано на снимке экрана магазина iTunes, который вы отправили, автоматически определяется путем проверки представленного пакета приложений. Обычно это происходит из папок .lproj в (как и процесс iOS), чтобы определить, какие языки может поддерживать приложение. Однако также можно предоставить свою собственную систему поддержки локализации в приложении без использования .lproj-папок (хотя это, как правило, гораздо больше работы) - в этом случае список поддерживаемых языков указан в файле plist приложения с помощью ключа CFBundleLocalizations. Дополнительные сведения об этом можно найти в следующих документах (и в руководстве, приведенном в документах):

http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html%23//apple_ref/doc/uid/TP40009249-109552-TPXREF111 "

1

У меня также была такая же проблема, мое приложение поддерживает только один язык, но в Appstore показано, что мое приложение поддерживает кучу языков. Я был в замешательстве, и позже, прочитав этот пост, я понял, что они автоматически появляются из стручков, которые я использую. Затем я нашел этот плагин (cocoapods-prune-localizations), который поможет удалить нежелательный lproj. Надеюсь, что это поможет, но я чувствую, что должен быть какой-то способ редактировать информацию непосредственно в Appstore, но, насколько мне известно, я не могу найти эту опцию. Если такой вариант существует, пожалуйста, дайте мне знать.

cocoapods-prune-localizations

2

Я лил потерял это делать. Я локализую свою игру Unity внутри, не используя .lproj или .xliff. Ответ Джереми освещает это. Я открыл Info.plist для редактирования, но Xcode автоматически преобразовывал ключ CFBundleLocalizations в ключ «Локализации» (что имеет смысл сейчас, но поскольку его ответ был в 2010 году, мне было интересно, если xcode играет на меня трюки ха-ха)

Локализации ключ представляет собой массив со строкой в ​​качестве элемента 0: «английский» Так я добавил новые строки с «Испанский» и «бразильский португальский».

Когда я печатал, xcode представил некоторые параметры, такие как китайский и другие языки, которые мне не нужны, что вызвало больше сомнений. Так я открыл info.plist как текст:

<key>CFBundleLocalizations</key> 
    <array> 
     <string>en</string> 
<string>Spanish</string> 
<string>Brazilian Portuguese</string> 
    </array> 

не выглядит правильно, да?С исследования лил я считаю, что я должен добавить, как ISO 639-1 (с некоторым уловом):

<key>CFBundleLocalizations</key> 
    <array> 
     <string>en</string> 
     <string>es</string> 
     <string>pt</string> 
    </array> 

Загвоздка в том, что бразильский португальский в ISO 639-1 должны быть: PT-BR, но, как видно здесь: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html

«язык ID для сценариев или диалектах использует Подтеги, а в п-PT где р код для португальцев и PT код для Португалии. Например, использование пт в качестве идентификатора языка для Португальский, поскольку он используется в Бразилия и pt-PT в качестве идентификатора языка для португальского, поскольку он используется в Португалии. "

Это сработало для меня!

Смежные вопросы