React-native. Apple human interface guidelines

Human Interface Guidelines – документ, содержащий рекомендации для разработчиков пользовательского интерфейса программного обеспечения в рамках некоторой операционной системы или платформы.

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

В этом посте собраны библиотеки и примеры кода для реализации основных особенностей HIG применительно к реализации на iOS.

 

Определение установленного языка по умолчанию, решение задачи интернациолизации приложения

 

NativeModules.SettingsManager.settings.AppleLocale — возвратит поддерживаемый язык вместе с семейством, например ru-BY.

NativeModules.SettingsManager.settings.AppleLanguages — вернет массив всех поддерживаемых языков на устройстве, первым будет язык по умолчанию. В последней версии iOS (13) рекомендуют использовать этот метод https://github.com/facebook/react-native/issues/26606.

import { NativeModules, Platform } from 'react-native'
let locale =
Platform.OS === 'ios'
 ? NativeModules.SettingsManager.settings.AppleLanguages[0]
 : NativeModules.I18nManager.localeIdentifier
if (locale == undefined) locale = 'en'// default language
locale = locale.slice(0, 2)
console.log('locale=', locale)//ru

Бывает метод не определяют локаль, поэтому добавлена проверка и присваивание en по умолчанию, slice(0, 2) — нужен для определения языка без учета семейства, например при en_GB, вернет просто en.