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

Мой вопрос:

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

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

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

фон, пример:

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

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

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

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

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

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

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

Ответы на вопрос(6)

Ваш ответ на вопрос