Внедрение нового пакета с несколькими языками - PullRequest
0 голосов
/ 01 января 2011

Я реализую одно приложение Mac. Его версия окна уже реализована. Теперь я сталкиваюсь со следующей проблемой:

Реализация нового пакета с несколькими языками (пользователь мог выбрать язык приложения при установкеприложение).то есть для версии программного обеспечения для Windows, при выполнении установочного файла пользователь мог выбрать язык, на котором должно быть установлено приложение.Я хочу, чтобы эта функция была включена в версию Mac.т. е. при установке приложения с использованием созданного пакета пользователь должен иметь возможность выбрать язык установки. (В настоящее время мультиязычная версия Mac реализована с использованием NSLocalizedString, так что приложение отображает язык в соответствии с языком компьютера и локализует установочный пакет).Но я особенно хочу, чтобы пользователи могли выбирать язык установки приложения во время установки. Пожалуйста, помогите решить эту проблему ...

1 Ответ

1 голос
/ 01 января 2011

Вместо этого используйте NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");;)

Объяснение:

Если вы посмотрите на определение макроса NSLocalizedString, вы обнаружите, что оно фактически вызывает метод -[NSBundle localizedStringForKey:value:table:], в котором последний параметр имеет значениефайл локализации (то есть: Localizable.strings).Вы можете получить доступные локализации с помощью метода -[NSBundle localizations];.

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

// This gets the localized string found in Japanese.strings for the key @"key"
NSString *locString = [thisBundle localizedStringForKey:@"key"
                                                  value:@"No translation"
                                                  table:@"Japanese"];

Или использовать макрос (который почтиэквивалент)

NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");

Разница в том, что происходит, когда данный ключ недоступен:

  • первый возвращает @"No translation"
  • последний возвращает значение по умолчаниюлокализация для @"key"

Пожалуйста, смотрите Ссылка на класс NSBundle для более подробной информации

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...