У меня есть и проект XCode со списком поддерживаемых языков. По умолчанию XCode перечисляет только 4 языка по умолчанию, когда вы нажимаете «Добавить локализацию» в окне информации о локализованной группе. Я просто следовал за примером проекта и добавил «Локализации» в виде сочетания полных названий языков, а некоторые использовали обозначение ISO 639-1. Что странного в этом:
Я добавил название локализации "zh_CN" (просто имитировал существующий проект) для упрощенного китайского. Когда проект компилируется, он имеет .app / Contents / Resources / zh_CN.lproj / Localizable.strings. Я изменяю язык системы на упрощенный китайский и запускаю приложение. Вуаля, он работает и получает упрощенный китайский Localizable.strings.
Однако, если я использую API NSLocale , я получаю "zh-Hans". Строки "zh_CN" были загружены, но NSLocale возвращает "zh-Hans".
Как Mac OS определяет использование строк "zh_CN" при использовании упрощенного китайского языка в качестве локали? Есть ли API, чтобы знать, что текущий системный язык будет использовать "zh_CN"?