@react-ee/i18n
TypeScript icon, indicating that this package has built-in type declarations

0.2.10 • Public • Published

@react-ee/i18n

Provides Context for translating and formatting content according to selected locale.

Installation

yarn add @react-ee/i18n node-polyglot react react-dom

Usage example

Initialize i18n in i18n.ts file

import initI18n from '@react-ee/i18n';

const i18n = initI18n<'pl' | 'en'>('pl', {
  en: { hello: 'Hello', goodBye: 'Good Bye' },
  pl: { hello: 'Siemano', goodBye: 'Nara' }
});

export const I18nProvider = i18n.I18nProvider;
export const useLocaleDate = i18n.useLocaleDate;
export const useI18n = i18n.useI18n;

Wrap your app with I18nProvider:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { I18nProvider } from './i18n';

ReactDOM.render(
  <I18nProvider>
    <App />
  </I18nProvider>,
  document.getElementById('root')
);

useI18n and / or useLocaleDate somewhere in your app:

import { Button } from '@material-ui/core';
import React from 'react';
import { useI18n, useLocaleDate } from './i18n';

export default () => {
  const { t, setLocale, locale } = useI18n();
  const localeDate = useLocaleDate();

  const handleClickPL = () => setLocale('pl');
  const handleClickEN = () => setLocale('en');

  return (
    <>
      <Button onClick={handleClickPL}>PL</Button>
      <Button onClick={handleClickEN}>EN</Button>
      {t('hello')} -> {t('goodBye')}
      {localeDate(new Date(), true)} ({locale})
    </>
  );
};

Readme

Keywords

none

Package Sidebar

Install

npm i @react-ee/i18n

Weekly Downloads

5

Version

0.2.10

License

UNLICENSED

Unpacked Size

9.31 kB

Total Files

14

Last publish

Collaborators

  • komik966