Skip to content

Latest commit

 

History

History
138 lines (116 loc) · 2.74 KB

File metadata and controls

138 lines (116 loc) · 2.74 KB
title Internationalization Module
description The Jodit i18n module that translates the editor interface into many built-in languages and lets you add or override custom translations.
keywords jodit, internationalization, i18n, languages, localization, translation

Jodit internationalization module.

In order for Jodit to show the interface in your language, you just need to enable it in the settings:

Jodit.make('#editor', {
	language: 'ru'
});

List of available languages:

ar,
cs_cz,
de,
en,
es,
fi,
fr,
he,
hu,
id,
it,
ja,
ko,
nl,
no,
pl,
pt_br,
ru,
sk,
sv,
tr,
ua,
zh_cn,
zh_tw

If you do not find your language, then you can create a language file yourself by copying any of the other languages After that just add its content like a field [[Jodit.langs]]

// File './somepath/sml.js' - some language
Jodit.langs.sml = {
	'Type something': 'Scrivi qualcosa...',
	Advanced: 'Avanzato',
	'About Jodit': 'A proposito di Jodit',
	'Jodit Editor': 'Jodit Editor'
	// ...
};

And include this file after Jodit

<script src="./node_modules/jodit/es2021/jodit.min.js"></script>
<script src="./somepath/sml.js"></script>
<script>
	Jodit.make('#editor', {
		language: 'sml'
	});
</script>

If you don't like how Jodit has translated one or another part of the app into your native language, you can either make a Pull Request Or redefine the desired string combinations and translate them in your own way:

Jodit.make('#editor', {
	language: 'ru',
	i18n: {
		ru: {
			'Type something': 'Введите что-либо тут...'
		}
	}
});

To use internationalization in your own plugin, use the method [[Jodit.i18n]]

const editor = Jodit.make('#redactor', {
	language: 'ru'
});
console.log(editor.i18n('Type something')); //'Введите что-либо тут...'

UIElement

For convenience, if in the [[UIElement]] descendant in the render method, return a string in the format:

~Some text~

It will be automatically passed through [[Jodit.i18n]]

For example:

class UIBox extends Jodit.modules.UIElement {
	render() {
		return `<div>
		    <div class="&__some-element">~Some text~</div>
		</div>`;
	}
}

const editor = Jodit.make('#editor', {
	language: 'en',
	i18n: {
		en: {
			'Some text': 'Another text'
		}
	}
});
const box = new UIBox(editor);
console.log(box.container.outerHTML); //<div class="jodit-ui-box"><div class="jodit-ui-box__some-element">Another text</div></div>

It's the same as doing this:

class UIBox extends Jodit.modules.UIElement {
	render() {
		return `<div>
		    <div class="&__some-element">${this.jodit.i18n('Some text')}</div>
		</div>`;
	}
}