/ i18n

Get the user preferred languages and use the library of your choice to translate your app

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)

  1. In the XCode's "Project navigator", right click on your project's Libraries folder ➜ Add Files to <...>
  2. Go to node_modulesreact-native-languagesios ➜ select RNLanguages.xcodeproj
  3. Add RNLanguages.a to Build Phases -> Link Binary With Libraries

Manual (Android)

  1. 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')
  1. Add the compile line to the dependencies in android/app/build.gradle:
dependencies {
  // ...
  compile project(':react-native-languages')
}
  1. 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…
});

GitHub