avaragado / riw

A console app and library to help you localise React apps in conjunction with react-intl
MIT License
8 stars 1 forks source link
cli console i18n internationalisation internationalization l10n localisation localization react react-intl terminal translation-management

riw

A console app and library to help you localise React apps in conjunction with react-intl

Use riw to:

See Introducing riw on Medium for background and motivations.

There's an example repository, riw-example, showing a simple internationalised React app set up for use with riw.

The word "riw" seems to be Welsh for slope or hill, and rhymes with the English word drew.

This project is not associated with the react-intl project.

Assumptions and prerequisites

riw assumes you're familiar with react-intl, and that your app already uses a build system of some kind (for example, webpack).

riw requires node 8.x or later.

Problems riw doesn't solve

Install

$ yarn add --dev riw  # OR: npm install --save-dev riw

Usage

Full tutorial: Installing, configuring and using riw

TL;DR:

  1. Add to your app's package.json:
    "riw": {
       "defaultLocale": "en-US", // locale of source strings
       "targetLocales": [  // other locales app should support
           "fr-FR",
           "pt-BR",
           ...
        ],
    }
  2. yarn run riw db init – initialise empty db at src/locale/riw-db.json
  3. yarn run riw app translate – outputs src/locale/[locale].json and src/locale/TODO-untranslated.json (you might need to add a .babelrc in your app)
  4. Update your app to import strings from src/locale/[locale].json for each target locale, and plug them into react-intl's IntlProvider at the appropriate time.
  5. LOOP:
  6. Translate everything in the TODO-untranslated.json file. Meanwhile, keep developing your app in the usual way.
  7. yarn run riw db import TODO-with-translations.json if you have a file of them in the right format, or
  8. yarn run riw db update <opts...> to update the db string by string.
  9. yarn run riw app translate
  10. Test and (maybe) ship.
  11. Go to LOOP.

Check everything into source control. There are no temporary files.

More information

Maintainer

David Smith (@avaragado)

Contribute

Bug reports, feature requests and PRs are gratefully received. Add an issue or submit a PR.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Licence

MIT © David Smith