Internationalization allows you to define language mappings in separate js files.
To enable i18n, put an i18n folder in your package path and add a javascript file named for each language code (e.g. en.js
for english).
Here's an example of defining a language mapping:
// en.js
module.exports = {
'search': 'Search',
'edit': 'Edit',
};
// zh.js
module.exports = {
'search': '搜索',
'edit': '编辑',
};
The file will be register to i18n table by the key of your package-name
.
In javascript code, you can translate a text by Editor.T
:
// NOTE: my package name is "foobar"
Editor.T('foobar.search');
You can also perform language mappings in your panel template:
// NOTE: my package name is "foobar"
Editor.Panel.extend({
template: `
<div class="btn">${Editor.T('foobar.edit')}</div>
`
});
You can use i18n in package.json
when register menu path, just use the format i18n:${key}
. We can write: i18n:MAIN_MENU.package.title/foobar/i18n:foobar.edit
, Cocos Creator will help use replace the i18n text.