babel-plugin-transform-i18n

2.2.1 • Public • Published

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#!"

Readme

Keywords

Package Sidebar

Install

npm i babel-plugin-transform-i18n

Weekly Downloads

5

Version

2.2.1

License

MIT

Unpacked Size

146 kB

Total Files

43

Last publish

Collaborators

  • abumalick