Globalization in EJ2 JavaScript Block Editor control
15 Dec 202515 minutes to read
Globalization is the process of designing and developing applications that can adapt to different cultures and languages. The Syncfusion Block Editor control provides support for globalization, enabling it to serve users from diverse linguistic and cultural backgrounds.
Localization
The Block Editor can be localized for any culture by translating its static text labels. The default locale is en (English). The following table lists the default text values for the en culture that can be translated.
| KEY | Text |
|---|---|
paragraph |
Write something or ‘/’ for commands. |
heading1 |
Heading 1 |
heading2 |
Heading 2 |
heading3 |
Heading 3 |
heading4 |
Heading 4 |
collapsibleParagraph |
Collapsible Paragraph |
collapsibleHeading1 |
Collapsible Heading 1 |
collapsibleHeading2 |
Collapsible Heading 2 |
collapsibleHeading3 |
Collapsible Heading 3 |
collapsibleHeading4 |
Collapsible Heading 4 |
bulletList |
Add item |
numberedList |
Add item |
checklist |
Todo |
callout |
Write a callout |
addIconTooltip |
Click to insert below |
dragIconTooltipActionMenu |
Click to open |
dragIconTooltip |
(Hold to drag) |
insertLink |
Insert Link |
linkText |
Text |
linkTextPlaceholder |
Link text |
linkUrl |
URL |
linkUrlPlaceholder |
https://example.com |
linkTitle |
Title |
linkTitlePlaceholder |
Link title |
linkOpenInNewWindow |
Open in new window |
linkInsert |
Insert |
linkRemove |
Remove |
linkCancel |
Cancel |
codeCopyTooltip |
Copy code |
The below example shows adding the German culture locale(de-DE)
ej.base.L10n.load({
'de': {
"blockeditor": {
"paragraph": "Schreiben Sie etwas oder ‚/‘ für Befehle.",
"heading1": "Überschrift 1",
"heading2": "Überschrift 2",
"heading3": "Überschrift 3",
"heading4": "Überschrift 4",
"collapsibleParagraph": "Umschaltbarer Absatz",
"collapsibleHeading1": "Umschaltbare Überschrift 1",
"collapsibleHeading2": "Umschaltbare Überschrift 2",
"collapsibleHeading3": "Umschaltbare Überschrift 3",
"collapsibleHeading4": "Umschaltbare Überschrift 4",
"bulletList": "Element hinzufügen",
"numberedList": "Element hinzufügen",
"checkList": "Zu erledigen",
"callout": "Schreiben Sie einen Hinweis",
"addIconTooltip": "Klicken Sie, um unten einzufügen",
"dragIconTooltipActionMenu": "Klicken Sie, um zu öffnen",
"dragIconTooltip": "(Halten zum Ziehen)",
"insertLink": "Link einfügen",
"linkText": "Text",
"linkTextPlaceholder": "Linktext",
"linkUrl": "URL",
"linkUrlPlaceholder": "https://example.com",
"linkTitle": "Titel",
"linkTitlePlaceholder": "Linktitel",
"linkOpenInNewWindow": "In neuem Fenster öffnen",
"linkInsert": "Einfügen",
"linkRemove": "Entfernen",
"linkCancel": "Abbrechen",
"codeCopyTooltip": "Code kopieren"
}
}
})
let blocksData = [
{
blockType: 'Heading',
properties: { level: 1},
content: [
{
contentType: ej.blockeditor.ContentType.Text,
content: 'Sample Heading'
}
]
},
{
blockType: 'Paragraph',
content: [
{
contentType: ej.blockeditor.ContentType.Text,
content: 'This is a sample paragraph block.'
}
]
},
{
blockType: 'Paragraph'
}
];
var blockeditor = new ej.blockeditor.BlockEditor({
blocks: blocksData,
locale: 'de'
});
blockeditor.appendTo('#blockeditor_locali');<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 - BlockEditor</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="description" content="Essential JS 2">
<meta name="author" content="Syncfusion">
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-base/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-buttons/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-popups/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-inputs/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-navigations/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-splitbuttons/styles/fluent2.css" rel="stylesheet"/>
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-dropdowns/styles/fluent2.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-blockeditor/styles/fluent2.css" rel="stylesheet" />
<!--style reference from app-->
<link href="index.css" rel="stylesheet">
<script src="https://cdn.syncfusion.com/ej2/32.1.19/dist/ej2.min.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="blockeditor_locali"></div>
</div>
<script>
var ele = document.getElementById('container');
if (ele) {
ele.style.visibility = "visible";
}
</script>
<style>
#container {
visibility: hidden;
margin: 50px;
}
</style>
<script src="index.js" type="text/javascript"></script>
</body>
</html>RTL
The Block Editor supports Right-to-Left (RTL) mode, which reverses the layout of the control to accommodate languages read from right to left, such as Arabic, Hebrew, and Persian. This feature can be enabled by setting the enableRtl property to true.
let blocksData = [
{
blockType: 'Heading',
properties: { level: 1},
content: [
{
contentType: ej.blockeditor.ContentType.Text,
content: 'Sample Heading'
}
]
},
{
blockType: 'Paragraph',
content: [
{
contentType: ej.blockeditor.ContentType.Text,
content: 'This is a sample paragraph block.'
}
]
}
];
var blockeditor = new ej.blockeditor.BlockEditor({
blocks: blocksData,
enableRtl: true
});
blockeditor.appendTo('#blockeditor_rtl');<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 - BlockEditor</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="description" content="Essential JS 2">
<meta name="author" content="Syncfusion">
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-base/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-buttons/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-popups/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-inputs/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-navigations/styles/fluent2.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-splitbuttons/styles/fluent2.css" rel="stylesheet"/>
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-dropdowns/styles/fluent2.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/32.1.19/ej2-blockeditor/styles/fluent2.css" rel="stylesheet" />
<!--style reference from app-->
<link href="index.css" rel="stylesheet">
<script src="https://cdn.syncfusion.com/ej2/32.1.19/dist/ej2.min.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="blockeditor_rtl"></div>
</div>
<script>
var ele = document.getElementById('container');
if (ele) {
ele.style.visibility = "visible";
}
</script>
<style>
#container {
visibility: hidden;
margin: 50px;
}
</style>
<script src="index.js" type="text/javascript"></script>
</body>
</html>