Моє запитання:
Як мій додаток для iPhone може сказати iOS, що користувач вибрав мову в налаштуваннях програм, яка відрізняється від мови, встановленої в загальних налаштуваннях?
Інше формулювання того ж питання:
Як я можу сказати системі, яка NSLocalizedString (@"text", @"comment");
повинна мати доступ не до загальновибраної мови, а до вибраної в програмі мови?
фон, приклад:
Візьміть цю ситуацію як приклад: син німецьких іммігрантів живе на північному сході Франції поруч із Люксембургом та Німеччиною. Його рідною мовою є французька, тому він встановив для мови інтерфейсу користувача свого iPhone французьку (Налаштування -> Загальні -> Міжнародні -> Мова -> Французька). Але завдяки своєму культурному походженню та тому, що регіон, де він живе, є двомовним, він також дуже добре володіє німецькою мовою. Але він не говорить десять слів англійською. На iPhone (і iPad також) він не має можливості вибрати другу мову, тому телефон знає лише, що він поширює французьку мову. Він не знає навичок користувачів іншими мовами.
Тепер з’являється мій додаток: я розробив його англійською та німецькою мовами (німецька - моя рідна мова, а англійська - стандартна мова в ІТ). Я розробив його відповідно до всіх правил та найкращих практик для мулілінгвальних iOS-додатків. "Першою" мовою (мовою за замовчуванням) мого додатка є англійська.
Це означає:
Якщо хтось вибрав англійську чи німецьку мову у своїх налаштуваннях, користувальницький інтерфейс програм автоматично використовуватиме вибрану мову. Користувач навіть не помітить, що доступні інші мови.
Але якщо він вибрав будь-яку іншу мову (наприклад, китайську, польську чи французьку) у загальних налаштуваннях, він отримає мову програм за замовчуванням, а це, у моєму випадку, англійська. Але для мого французько-німецького друга це не найкращий вибір. Він хотів би використати існуючу німецьку версію, але, схоже, немає можливості дозволити користувачеві вибрати цю версію.
Додавання французького перекладу вирішить проблему для нашого французько-німецького друга, але не для людей, які говорять на двох інших мовах (наприклад, італійській та німецькій), і я не можу підтримати свій додаток на всіх мовах, на яких розмовляють на цій планеті. Встановлення мови за замовчуванням німецькою також не є оптимальним, оскільки це створює ту саму проблему для людей, які говорять французькою (рідною мовою) та англійською (як другою мовою).
Тому я думаю, що у мого додатка повинна бути можливість вручну вибрати мову, яка відрізняється від попередньо вибраної мови. Додавання вибору мови на панель налаштувань програм не є проблемою. Але як я можу сказати системі, яка NSLocalizedString (@"text", @"comment");
повинна мати доступ не до загальновибраної мови, а до вибраної в програмі мови?