summaryrefslogtreecommitdiffstats
path: root/docs/api/i18n.md
blob: b58f1e8606a64e6947318d6ced3d3d765937d366 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Internationalize your plugin

GitBook has built-in support for internationalization. Plugins can register new languages and provide the right messages for different languages.

### Register locale and messages

The first step is to register messages for a language:

```js
module.exports = GitBook.createPlugin({
    init: (dispatch, getState, { I18n }) => {
        dispatch(I18n.registerLocale('en-US', {
            MY_PLUGIN_MESSAGE: 'Hello World'
        }));
    }
});
```

### Render a message in a component

`GitBook.connect` adds a `i18n` prop to access the internationalization:

```js
const GitBook = require('gitbook-core');
const { React } = GitBook;

const MyButton = React.createClass({
    propTypes: {
        i18n: GitBook.Shapes.i18n
    },

    render() {
        const { i18n } = this.props;

        return (
            <GitBook.Button>
                {i18.t('MY_PLUGIN_MESSAGE')}
            </GitBook.Button>
        );
    }
});

module.exports = GitBook.connect(MyButton);
```