выбор языка вручную в iOS-приложении (iPhone и iPad)

Мой вопрос:

Как мое iPhone-приложение может сообщить iOS, что пользователь выбрал язык в настройках приложения, отличный от языка, установленного в общих настройках?

Другая формулировка того же вопроса:

Как я могу сообщить системе, что NSLocalizedString (@"text", @"comment");не должен обращаться к общесистемному выбранному языку, а язык, выбранный в приложении?

фон, пример:

Возьмем для примера эту ситуацию: Сын немецких иммигрантов живет на северо-востоке Франции рядом с Люксембургом и Германией. Его родной язык — французский, поэтому он установил французский язык пользовательского интерфейса своего iPhone («Настройки» -> «Основные» -> «Международный язык» -> «Язык» -> «Французский»).Но благодаря своему культурному происхождению и двуязычному региону, в котором он живет, он также очень хорошо говорит по-немецки. Но он не говорит и десяти слов по-английски. На iPhone (и iPad тоже) у него нет возможности выбрать второй язык, поэтому телефон знает только то, что он говорит по-французски. Он не знает навыков пользователей на других языках.

А теперь мое приложение: я разработал его на английском и немецком языках (немецкий — мой родной язык, а английский — стандартный язык в ИТ). Я разработал его в соответствии со всеми правилами и рекомендациями для многоязычных iOS-приложений. «Первый» язык (язык по умолчанию) моего приложения — английский.

Это означает:

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

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

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

Поэтому я думаю, что в моем приложении должна быть возможность вручную выбрать язык, отличный от предварительно выбранного языка. Добавление выбора языка на панель настроек приложений не является проблемой. Но как я могу сообщить системе, что NSLocalizedString (@"text", @"comment");не должен обращаться к общесистемному выбранному языку, а к языку, выбранному в приложении?

69
задан ROMANIA_engineer 22 July 2017 в 17:55
поделиться