Get the user preferred languages and use the library of your choice to translate your app
react-native-languages
Get the user preferred languages and use the library of your choice to translate your app !
Support
Version | React Native Support |
---|---|
3.0.0 | 0.56.0+ |
2.0.1 | 0.48.0 - 0.55.0 |
Installation
Using yarn
$ npm install --save react-native-languages
# --- or ---
$ yarn add react-native-languages
Linking
Using react-native-cli
$ react-native link react-native-languages
NB: If you use a Cocoapods and have a Podfile
, react-native link
will only add this library as a dependency, and you'll need to run pod install
.
Using CocoaPods (iOS)
# add this line in your Podfile
pod 'RNLanguages', :path => '../node_modules/react-native-languages'
$ pod install
Manual (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
➜ selectRNLanguages.xcodeproj
- Add
RNLanguages.a
toBuild Phases -> Link Binary With Libraries
Manual (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.rnlanguages.RNLanguagesPackage; // <-- Add the RNLanguages import
public class MainApplication extends Application implements ReactApplication {
// ...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
// ...
new RNLanguagesPackage() // <-- Add it to the packages list
);
}
// ...
}
Basic usage
import RNLanguages from 'react-native-languages';
// Current device language
console.log('language', RNLanguages.language);
// User preferred languages (in order)
console.log('languages', RNLanguages.languages);
// Listening for languages changes (on Android)
RNLanguages.addEventListener('change', ({ language, languages }) => {
// Do languages related things…
});