mirror of
https://github.com/status-im/react-native-languages.git
synced 2026-08-27 18:11:10 +00:00
a3f1ee2a0b2fdfc6e241e3c60583dbdc98d139c4
🌐 react-native-languages
React Native properties and methods related to the language of the device.
Requirements
On Android
- Android SDK Build-tools 25.0.3
Installation
Using yarn
$ yarn add react-native-languages
Using npm
$ npm i react-native-languages --save
Setup
Automatic setup
Using react-native link (react-native >= 0.29)
$ react-native link react-native-languages
Using Cocoapods (iOS only)
# Add this line in your Podfile
pod 'ReactNativeLanguages', :path => '../node_modules/react-native-languages'
$ pod install
Manual setup
On iOS
- In the XCode's "Project navigator", right click on your project's Libraries folder ➜
Add Files to <...> - Go to
node_modules➜react-native-languages➜ios➜ selectReactNativeLanguages.xcodeproj - Add
ReactNativeLanguages.atoBuild Phases -> Link Binary With Libraries
On Android
- Add the following lines to
android/settings.gradle:
include ':react-native-languages'
project(':react-native-languages').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-languages/android')
- Add the compile line to the dependencies in
android/app/build.gradle:
dependencies {
// ...
compile project(':react-native-languages')
}
- Add the import and link the package in
MainApplication.java:
import com.reactcommunity.reactnativelanguages.ReactNativeLanguagesPackage; // <-- Add the ReactNativeLanguages import
public class MainApplication extends Application implements ReactApplication {
// ...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
// ...
new ReactNativeLanguagesPackage() // <-- Add it to the packages list
);
}
// ...
}
Usage
import ReactNativeLanguages from 'react-native-languages';
// Current device language
console.log('language', ReactNativeLanguages.language);
// User preferred languages (in order)
console.log('languages', ReactNativeLanguages.languages);
Add project's supported localizations (iOS)
Listening for languages changes (Android)
import ReactNativeLanguages from 'react-native-languages';
ReactNativeLanguages.addEventListener('change', ({ language, languages }) => {
// Do languages related things…
// ReactNativeLanguages.language and ReactNativeLanguages.languages will be correct too !
});
⚠️ Note
As iOS reloads your application on languages change, there is no need to perform this step on this platform.
Description
🌍 Get the user preferred languages and use the library of your choice to translate your app
759 KiB
Languages
Java
34.7%
JavaScript
20.7%
Objective-C
17.2%
C++
10.9%
Starlark
10.1%
Other
6.4%

