Skip to content

barisates/react-translator-component

Repository files navigation

react-translator-component

React language translation module for developing a multilingual project.

npm package Build Status Dependencies Status Package Size

Getting started

Install with NPM:

$ npm install react-translator-component

Usage

Live Demo CodeSandbox

Quite simple to use;

  • Make your translator configuration.
  • Include text contents in the T(text) function.
  • Finally, call your application in <Translator> /* APP */ </Translator>.
// App.js
import React from 'react';
import { Translator, T, TF, LanguageList, Config } from 'react-translator-component'

Config.default = 'tr';
Config.list = {
  en: {
    text: 'English',
    icon: require('./locale/flags/en.svg'),
    file: require('./locale/en.js')
  },
  tr: {
    text: 'Türkçe',
    icon: require('./locale/flags/tr.svg'),
    file: require('./locale/tr.js')
  }
}

function App() {
  return (
    <div>
      <h1>
        {T("There are no facts, only interpretations.")}
      </h1>
      <h6>
        {TF("{0} {1}", "Friedrich", "Nietzsche")}
      </h6>
      <LanguageList />
    </div>
  )
}

function TranslatorApp() {
  return (
    <Translator>
      <App />
    </Translator>
  )
}

export default TranslatorApp;

Config

/* Default Language */
Config.default = 'tr';

/* Language List */
Config.list = {
  de: {
    // display text
    text: 'Deutsch',
    // display icon
    icon: require('./locale/flags/de.svg'),
    // translate file
    file: require('./locale/de')
  },
  en: {
    text: 'English',
    icon: require('./locale/flags/en.svg'),
    file: require('./locale/en')
  },
  tr: {
    text: 'Türkçe',
    icon: require('./locale/flags/tr.svg'),
    file: require('./locale/tr')
  }
}

Translate File

{key} The text you have written into the T(text) function. {translated_text} Related translation text.

module.exports = {
    '{text}': '{translated_text}'
}
Sample
// ./locale/en.js
module.exports = {
    'There are no facts, only interpretations.': 'There are no facts, only interpretations.'
}
// ./locale/tr.js
module.exports = {
    'There are no facts, only interpretations.': 'Doğrular ve yanlışlar yoktur, sadece yorumlar vardır.'
}

Translate Function

You can develop a multilingual application by typing the text as it is without using any key. Type the text content into the T(text) or TF(text, ...arg) function and update the translation files.

// simple usage
T("The text you want to translate.");

// usage with arguments like a string.format
TF("The {0} you want to translate with {1}.", "text", "arguments");

Texts that have not been added to the Translate file will be collected at the rtc-missing-keys in LocalStorage.

Language List

Use the <LanguageList /> component to change the language within your application.

Default Theme

Use with the default theme.

<LanguageList />

Default Theme

Dropdown Theme

Use with the dropdown theme.

<LanguageList Theme="Dropdown" />

Default Theme

Custom Language List
  • Define <LanguageList Language={this.state.language} /> in this way to create your own language list.
  • When {this.state.language} in changes, your application will be render in that language.

Author

Barış Ateş

Enes Zeren