react-auto-translate
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

React Auto Translate

A simple React component to automatically translate strings with Google Translate API.

Installation

npm install -S react-auto-translate

yarn add react-auto-translate

Usage

React Auto Translate uses React Context API to pass the translation handler around. Wrap your top component with the <Translator/> component.

// App.js
import {Translator, Translate} from 'react-auto-translate';
 
return (
  <Translator
      cacheProvider={cacheProvider}
      from='en'
      to='es'
      googleApiKey='API_KEY'
    >
 
    <h1><Translate>Welcome!</Translate></h1>
  ...
  </Translator>
);

API

<Translator/>

  • cacheProvider: optional handler to cache the translated strings.
  • to: Language to translate to. See full list here.
  • from: Language text is provided in. Defaults to en.
  • googleApiKey: required Google Cloud Api Key to use for translating.

CacheProvider

  • Fully customizable handler to store the translated text. You can also use this to override and initialize the translations for your app.
  • If not provided, it will ping Google for the translation every time the component is rendered.
  • Must be an object that conforms to the following type.
type CacheProvider = {
 get: (language: string, key: string) => string | undefined;
 set: (language: string, key: string, translation: string) => void;
};
 
// example procider
const cacheProvider = {
 get: (language, key) =>
   ((JSON.parse(localStorage.getItem('translations')) || {})[key] || {})[
     language
   ],
 set: (language, key, value) => {
   const existing = JSON.parse(localStorage.getItem('translations')) || {
     [key]: {},
   };
   existing[key] = {...existing[key], [language]: value};
   localStorage.setItem('translations', JSON.stringify(existing));
 },
};

<Translate/>

  • Simple component to wrap plain text strings.

TODO

  • Tests
  • CI Tests/Linting
  • Contribution / development instructions

Package Sidebar

Install

npm i react-auto-translate

Weekly Downloads

578

Version

0.0.6

License

MIT

Unpacked Size

28.9 kB

Total Files

21

Last publish

Collaborators

  • bradbumbalough