2009-07-28 2 views
0

Я работаю над приложением, которое планирую выпустить на английском и испанском языках. Я имею в виду, что я хотел бы иметь два отдельных приложения в App Store, один из которых отображается с английским названием, а другой - с испанским названием (и каждый с содержимым на соответствующем языке).Настройка языка приложения iPhone

Это означает, что язык в приложении будет статичным, то есть на самом деле приложение не будет интернационализировано в том смысле, что приложение не будет отображать язык в соответствии с настройками локали пользователя, но в соответствии с Английский или испанский в зависимости от купленного приложения.

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

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

Не могли бы вы дать совет относительно того, какой подход или наилучшая практика следует соблюдать? Имеет ли это смысл, или есть ли другой подход, которым я должен следовать вместо этого, чтобы иметь два отдельных приложения с фиксированным языком?

Большое вам спасибо!

С наилучшими пожеланиями

ответ

1

, если вы действительно хотите иметь два отдельных приложений в App Store, вы могли бы сделать что-то вроде

Making multiple versions of an iPhone application

, чтобы они оба будут построены из одного проекта Xcode и сделать обслуживание максимально простым.

Почему бы не просто иметь одну версию приложения, которая включает оба языка и автоматически выбирает предпочтительный язык пользователя? если ваша цель состоит в том, что двуязычные люди должны платить вам отдельно за две копии, тогда вам понадобятся два отдельных приложения, как вы предлагаете.

4

Дубликат: Best way to make an iPhone application multi-lingual

Краткая версия: включает языковой файл для каждого языка. Apple позаботится об остальном - когда пользователь изменит язык своего iPhone, ваше приложение тоже переключится (при условии, что перевод будет доступен).

+0

Можно ли позаботиться о том, чтобы этот язык менялся от кода, а не только когда пользователь меняет его из настроек? – Levi

1

Локализуйте заявку на английском и испанском языках и поместить следующие строки кода в main.m перед вызовом UIApplicationMain:.

NSArray *languages = [NSArray arrayWithObject:@"es"]; 
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 
[languages release]; 

где код языка является либо «эс» или ен» Этот поместит предпочтительный язык (es или en в вашем случае) в предпочтения приложения (в файле списка свойств файла ./your вашего приложения UUID/Library/Preferences/yourcompany Internetadress.your app.plist) и переопределите язык, заданный в настройках .

Это приложение использует локализованные строки и использует локализованные XIB.Однако по какой-то причине он не работает для локализации отображаемого имени значка приложения и пакета. Добавление строки для установки локали (ключ, похоже, «AppleLocale») не помогает. Текущая локаль остается той, что установлена ​​в настройках, а не программно.

+1

У вас есть ошибка подсчета ссылок. – 2010-02-28 13:59:26

+1

@occamsrazor ты сделал мой день таким счастливым. Это часть кода, который я ищу. Большое спасибо. Я бы хотел, чтобы вы помогли мне, если сможете. Я сделал локализацию и установил вышеприведенный код в основном, поэтому я могу видеть, что язык был изменен во время загрузки. Но я хочу изменить язык на одном из экранов моего приложения. так что пользователь может изменить язык и увидеть немедленные изменения. – dinesh