2.2.1 • Published 5 years ago

babel-plugin-transform-i18n v2.2.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

babel-plugin-transform-i18n Build Status codecov npm

This plugin is not maintained, you should take a look at this one: https://github.com/vinhlh/tagged-translations

A Babel transform plugin to replace strings with their translations.

This plugin is a fork of vimeo/babel-plugin-transform-i18n

Example

.babelrc

{
    "plugins": [
        [
            "transform-i18n",
            {
                "translations": {
                    "Hello": "Bonjour",
                    "Hello, #1#!": "Bonjour, #1#!"
                }
            }
        ]
    ]
}

In

const name = 'Brad';
const hello = t`Hello`;
const helloWithName = t`Hello, ${name}!`;

Out

const name = 'Brad';
const hello = 'Bonjour';
const helloWithName = 'Bonjour, ' + name + '!';

Installation

yarn add babel-plugin-transform-i18n

or with npm

npm install babel-plugin-transform-i18n --save

Usage

Via .babelrc

{
    "plugins": [
        [
            "transform-i18n",
            {
                "translations": "path/to/translations.json",
                "preToken": "#",
                "postToken": "#",
                "tagName": "t"
            }
        ]
    ]
}

Via Node API

require('babel-core').transform('code', {
    plugins: [
        [
            'transform-i18n',
            {
                tagName: 't',
                translations: 'path/to/translations.json',
            },
        ],
    ],
});

Options

There are two options available, both are optional:

preToken and postToken

String to identify the token. Default is # for both. It permit to include variables in translation: "Hello, #1#!": "Bonjour, #1#!".

translations

A mapping of the strings passed to the translation function to their translated versions. It can also be the path to json file. If no translations is passed, calls to the translation function will be replaced with the original string.

tagName

The name of the tag function that wraps the strings. Defaults to t.

Notes

Order of tokens in translation

You can change the order in translation:

"#1#, #2#!": "#2# #1#!"

But the order in the first string should always be from smaller to higher. This is not correct and will reverse the order:

"#2#, #1#!": "#2# #1#!"