A React Native library for accessing device localization settings like language, region, currency, and timezone.
react-native-localize is a React Native library that provides access to device localization settings such as language, region, currency, calendar format, and timezone. It solves the problem of building internationalized React Native apps by offering a unified API to read user preferences across Android, iOS, macOS, and web platforms.
React Native developers building apps that need to adapt to user language, regional, and formatting preferences, especially those targeting international audiences.
Developers choose react-native-localize because it offers a comprehensive, platform-agnostic API for localization data, simplifies handling of user preferences, and integrates seamlessly with Expo and React Native Web.
🌍 A toolbox for your React Native app localization
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Abstracts away platform-specific complexities, providing consistent methods to access locale data on Android, iOS, macOS, and web, as evidenced by the comprehensive API listing with methods like getLocales and getCalendar.
Integrates seamlessly with Expo via a config plugin for Android 13+ and iOS locale settings, and supports React Native Web with proper webpack configuration, making it versatile for modern React Native development.
Includes ServerLanguagesProvider for handling SSR by parsing Accept-Language headers, ensuring locale consistency between server and client, as detailed in the SSR section.
Accesses a wide range of user preferences including language, region, currency, calendar format, and number formatting, as shown in methods like getNumberFormatSettings and getTemperatureUnit.
Some utilities like usesAutoDateAndTime and usesAutoTimeZone are only available on Android, limiting feature parity across platforms and requiring conditional code for cross-platform apps.
The library only provides device settings; developers must integrate separate libraries like i18next or formatjs for actual translation strings and management, adding complexity to the i18n stack.
Requires native linking or Expo plugin setup, which can introduce build complexities and maintenance overhead, especially with React Native version updates as it follows the support policy.