Multilingual (i18n)

The built-in multi-language solution in the editor extension system allows the extension to configure multiple language key-value mappings, and use different language texts in the extension according to the current language setting of the editor.

To enable the multilingual function (here-in-after referred to as i18n), please create a new folder named i18n under the extended directory, and add a corresponding JavaScript file for each language as key-value mapping data. The data file name should be consistent with the language code, such as en.js corresponding to English mapping data.

The following is an example of a key-value mapping data source:

en.js

  1. module.exports = {
  2. 'search':'Search',
  3. 'edit':'Edit',
  4. };

zh.js

  1. exports.search ='Search';
  2. exports.edit ='Edit';

Assuming that the registered extension name is hello-world, the corresponding text translation key is hello-world.search

  1. Editor.I18n.t('hello-world.search');

Display the text in the corresponding language

Use in script

In JavaScript or TypeScript scripts, you can obtain the translated text corresponding to the current language through the Editor.I18n.t interface:

  1. Editor.I18n.t('hello-world.search');

Use in the template

If you need to translate in the html template, use the ui-label element to translate:

  1. <ui-label value="i18n:hello-world.search"></ui-label>

ui-label is a normal inline element, similar to span.

Use in json or other text definitions

Some text information, for example, when you need to use the translation function when registering the menu path in the package.json of the extension package, as long as this field supports the path in the i18n format, the path can be expressed in the form of i18n:${key}. We can write i18n:menu.extension/i18n:hello-world.edit, and the corresponding function module will help find the correct string for replacement.