react-native-get-device-locale
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

react-native-get-device-locale

react-native-get-device-locale is a lightweight and efficient React Native module that provides easy access to the device's locale. Designed to work seamlessly with React Native’s new architecture, it replaces the now unreliable APIs (NativeModules.SettingsManager.settings.AppleLocale and similar) following recent updates in React Native.


✨ Features

  • Retrieve the device’s locale in en_US, fr_FR format.
  • Compatible with React Native >= 0.68, the new architecture (TurboModules) and backward compatibility with old arch.
  • Minimal setup with low resource usage.
Support
react-native version >=0.68
Android
iOS
New Architecture
Old Architecture

📦 Installation

npm install react-native-get-device-locale

Additional Steps (iOS only)

After installation, run the following command in your project’s ios directory:

cd ios && pod install

📖 Usage Example

Here's how to use `react-native-get-device-locale to retrieve the device locale:

const deviceLocale = await getDeviceLocale("fr_FR"); // Optional default locale if fetching fails (en_US by default in case of error)

Minimal App demo:

import { useState, useEffect } from 'react';
import { View, Text } from 'react-native';
import { getDeviceLocale } from 'react-native-get-device-locale';

export default function App() {
	const [locale, setLocale] = useState<string | null>(null);

	useEffect(() => {
		(async () => {
			const deviceLocale = await getDeviceLocale();
			setLocale(deviceLocale);
		})();
	}, []);

	return (
		<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
			<Text>Device Locale: {locale}</Text>
		</View>
	);
}

💼 Use Cases

This package serves as a replacement for deprecated native locale-fetching methods like:

  • NativeModules.SettingsManager.settings.AppleLocale
  • NativeModules.SettingsManager.settings.AppleLanguages[0]
  • NativeModules.I18nManager.localeIdentifier

Which no longer work in React Native 0.76 and above. getDeviceLocale provides a reliable and modern way to access the device locale, compatible with the latest React Native architecture.


🔄 Roadmap and Future Features

Planned additions:

  • Alternate locale formats (e.g., en or en-US).
  • Getting all the device locales if multiple.

🛠️ Contributing

Contributions are welcome! We follow the conventional commits guidelines. To contribute:

  1. Fork the repo.
  2. Clone it and create a new branch.
  3. Follow the commit message conventions.
  4. Open a Pull Request!

💡 Tip: Make sure your commit messages are in English for consistency!


📞 Support

If you have questions or issues, feel free to open an issue on GitHub. I’ll stay active to respond to queries and provide support.

Dependents (0)

Package Sidebar

Install

npm i react-native-get-device-locale

Weekly Downloads

150

Version

0.3.0

License

MIT

Unpacked Size

42.1 kB

Total Files

39

Last publish

Collaborators

  • wawa2048