Skip to content

Commit 72aa425

Browse files
[add] i18n glossary and normalize translations
- add i18n/GLOSSARY.md with canonical template phrases for ru/de/ko/zh (section labels, headings, changelog/nav headings, admonition titles, do-not-translate terms), adapted to RichText conventions - unify theme.admonition.* in code.json across locales: capitalize ru/de, sync with the explicit markdown titles, drop caution/warning duplicates (ru caution→Осторожно, danger→Опасно; de nouns capitalized; ko note→참고; zh note→注意, caution→谨慎) - normalize headings: ru Конфиг по умолчанию→Конфигурация по умолчанию, Применение→Использование; ko 매개변수→파라미터, 예시→예제, 기본 구성→기본 설정, 관련 예제→관련 샘플; de fix "Wie geht es weiter?" and double-space "Neue API" (anchors untouched) - enforce do-not-translate terms: ru АПИ→API (99), шину событий→Event Bus; zh 事件总线方法→Event Bus 方法
1 parent acbb41f commit 72aa425

118 files changed

Lines changed: 274 additions & 155 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

i18n/GLOSSARY.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Translation Glossary — All documentation template phrases
2+
3+
Purpose: a single reference for translations of recurring template phrases in the documentation
4+
([../docs/](../docs/)). Consult it when translating new articles and when reviewing localizations —
5+
the wording and markdown markup (`**...:**`, `### ...`, full-width `` for zh) must match verbatim.
6+
7+
The **canonical** (most frequent) variant is given.
8+
9+
---
10+
11+
## 1. Section labels (bold lead before a link)
12+
13+
RichText puts the colon **inside** the bold markers (`**...:**`); zh uses a full-width colon ``.
14+
15+
Use the **singular** form when a single item is referenced, the **plural** form for a list of two or
16+
more. ko/zh have no number inflection — the same label serves both. The number must agree with the
17+
English source (e.g. `**Related sample:**` → singular, `**Related samples:**` → plural).
18+
19+
| EN | ru | de | ko | zh |
20+
|---|---|---|---|---|
21+
| `**Related articles:**` | `**Связанные статьи:**` | `**Verwandte Artikel:**` | `**관련 문서:**` | `**相关文章:**` |
22+
| `**Related sample:**` | `**Связанный пример:**` | `**Verwandtes Beispiel:**` | `**관련 샘플:**` | `**相关示例:**` |
23+
| `**Related samples:**` | `**Связанные примеры:**` | `**Verwandte Beispiele:**` | `**관련 샘플:**` | `**相关示例:**` |
24+
25+
ko: `관련 샘플` is canonical for *sample(s)*; the variant `관련 예제` also occurs and should be
26+
normalized to `관련 샘플`.
27+
28+
## 2. Section headings
29+
30+
Headings keep the original English slug as a `{#...}` anchor (e.g. `### Описание {#description}`) so
31+
cross-page `#anchor` links stay valid — only the visible title is translated. The explicit `{#id}`
32+
must match the English auto-slug **exactly**, including any leading dashes for headings that begin
33+
with a list marker or inline code (e.g. `### - \`fire()\` → ...` keeps `{#--fire--...}`).
34+
35+
**API-page template:**
36+
37+
| EN | ru | de | ko | zh |
38+
|---|---|---|---|---|
39+
| `### Description` | `### Описание` | `### Beschreibung` | `### 설명` | `### 描述` |
40+
| `### Usage` | `### Использование` | `### Verwendung` | `### 사용법` | `### 用法` |
41+
| `### Example` | `### Пример` | `### Beispiel` | `### 예제` | `### 示例` |
42+
| `### Parameters` | `### Параметры` | `### Parameter` | `### 파라미터` | `### 参数` |
43+
| `### Returns` | `### Возвращает` | `### Rückgabewert` | `### 반환값` | `### 返回值` |
44+
| `### Default config` | `### Конфигурация по умолчанию` | `### Standardkonfiguration` | `### 기본 설정` | `### 默认配置` |
45+
46+
- ko: `파라미터` is canonical; the variants `매개변수` and untranslated `Parameters` in **headings**
47+
should be normalized to `파라미터` (running prose that uses `매개변수` grammatically is left as is).
48+
- ko: `예제` is canonical for *Example*; the variant `예시` should be normalized to `예제`.
49+
- ko: `기본 설정` is canonical for *Default config*; the variant `기본 구성` should be normalized.
50+
- ru: `Конфигурация по умолчанию` is canonical; the shorter `Конфиг по умолчанию` should be
51+
normalized.
52+
53+
**Changelog headings (`news/whats_new.md`, `news/migration.md`):**
54+
55+
| EN | ru | de | ko | zh |
56+
|---|---|---|---|---|
57+
| `### New functionality` | `### Новые возможности` | `### Neue Funktionalität` | `### 새로운 기능` | `### 新功能` |
58+
| `### New API` | `### Новый API` | `### Neue API` | `### 새로운 API` | `### 新增 API` |
59+
| `### Updated API` | `### Обновлённый API` | `### Aktualisierte API` | `### 업데이트된 API` | `### 更新的 API` |
60+
| `### Fixes` | `### Исправления` | `### Fehlerbehebungen` | `### 수정 사항` | `### 修复` |
61+
| `### Methods migration` | `### Миграция методов` | `### Migration der Methoden` | `### 메서드 마이그레이션` | `### 方法迁移` |
62+
| `### Properties migration` | `### Миграция свойств` | `### Migration der Eigenschaften` | `### 프로퍼티 마이그레이션` | `### 属性迁移` |
63+
64+
`API` stays the Latin `API` in every changelog heading (never the Cyrillic `АПИ`).
65+
66+
**Navigation heading:**
67+
68+
| EN | ru | de | ko | zh |
69+
|---|---|---|---|---|
70+
| `## What's next` | `## Что дальше` | `## Wie geht es weiter?` | `## 다음 단계` | `## 下一步` |
71+
72+
## 3. Admonition block titles (`:::note`, `:::tip` …)
73+
74+
RichText sets these titles **explicitly in markdown** via the `:::type[Title]` syntax (e.g.
75+
`:::note[Примечание]`), so the visible title comes from the `.md` file, not the theme defaults. The
76+
block **type** (`:::note`, `:::tip`, …) is never translated — only the bracketed `[Title]` is.
77+
78+
The same wording is mirrored in the `theme.admonition.*` keys of `i18n/<locale>/code.json` (the
79+
fallback for any block without an explicit title); the two must stay in sync. Canon: **capitalized
80+
first letter**, with each type distinct (no `caution`/`warning` duplicates).
81+
82+
| Type | ru | de | ko | zh |
83+
|---|---|---|---|---|
84+
| `:::note` | `Примечание` | `Hinweis` | `참고` | `注意` |
85+
| `:::tip` | `Совет` | `Tipp` | `` | `提示` |
86+
| `:::info` | `Информация` | `Info` | `정보` | `信息` |
87+
| `:::warning` | `Предупреждение` | `Warnung` | `경고` | `警告` |
88+
| `:::caution` | `Осторожно` | `Vorsicht` | `주의` | `谨慎` |
89+
| `:::important` | `Важно` | `Wichtig` | `중요` | `重要` |
90+
| `:::danger` | `Опасно` | `Gefahr` | `위험` | `危险` |
91+
92+
## 4. Do not translate
93+
94+
Keep these terms in English (Latin script) across all locales.
95+
96+
**Product & modules:**
97+
- `RichText` — the widget/product name (e.g. "DHTMLX RichText"). *The generic concept* — rich text —
98+
may be localized; only the product/widget name stays `RichText`.
99+
- `DHTMLX`, `dhx` (the `dhx.*` code namespace)
100+
- `Event Bus` — the module name. Keep the English spelling; German may hyphenate it inside a compound
101+
(`Event-Bus-Methoden`). Do not localize it (ru `шина событий`, zh `事件总线``Event Bus`).
102+
103+
**Frameworks & libraries:**
104+
- `React`, `Vue`, `Svelte`, `Angular`
105+
106+
**Runtime, languages & tooling:**
107+
- `Node.js`, `Vite`
108+
- `JavaScript`, `TypeScript`
109+
- `npm`, `yarn`, `CLI`
110+
111+
**Data formats:**
112+
- `JSON`
113+
114+
**Services:**
115+
- `GitHub`, `CDN`
116+
117+
**Other:**
118+
- `API` — always the Latin `API`, never the Cyrillic transliteration `АПИ`.
119+
- Code identifiers (method / config / event names, `dhx.*`) inside backticks are never translated.

i18n/de/code.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,23 +139,23 @@
139139
"description": "The label alongside a tag list"
140140
},
141141
"theme.admonition.caution": {
142-
"message": "vorsicht",
142+
"message": "Vorsicht",
143143
"description": "The default label used for the Caution admonition (:::caution)"
144144
},
145145
"theme.admonition.danger": {
146-
"message": "gefahr",
146+
"message": "Gefahr",
147147
"description": "The default label used for the Danger admonition (:::danger)"
148148
},
149149
"theme.admonition.info": {
150150
"message": "Info",
151151
"description": "The default label used for the Info admonition (:::info)"
152152
},
153153
"theme.admonition.note": {
154-
"message": "hinweis",
154+
"message": "Hinweis",
155155
"description": "The default label used for the Note admonition (:::note)"
156156
},
157157
"theme.admonition.tip": {
158-
"message": "tipp",
158+
"message": "Tipp",
159159
"description": "The default label used for the Tip admonition (:::tip)"
160160
},
161161
"theme.admonition.warning": {

i18n/de/docusaurus-plugin-content-docs/current/how_to_start.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,6 @@ const editor = new richtext.Richtext("#root", {
104104
});
105105
~~~
106106

107-
## Wie geht es weiter {#whats-next}
107+
## Wie geht es weiter? {#whats-next}
108108

109109
Das war es schon. Nur drei einfache Schritte, und Sie verfügen über ein praktisches Werkzeug zur Bearbeitung von Inhalten. Jetzt können Sie mit Ihren Inhalten arbeiten oder die Welt von JavaScript RichText weiter erkunden.

i18n/de/docusaurus-plugin-content-docs/current/news/whats_new.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Veröffentlicht am 22. Juni 2026
2020
- Tastenkürzel zum Löschen auf Wort- und Zeilenebene: vorheriges/nächstes Wort löschen mit `Ctrl+Backspace` / `Ctrl+Delete` (Windows/Linux) oder `Opt+Backspace` / `Opt+Delete` (macOS); vorherige/nächste visuelle Zeile löschen mit `Cmd+Backspace` / `Cmd+Delete` (nur macOS)
2121
- Neue Tastenkürzel zum Ändern der Blockeinrückung: die Einrückung eines Blocks mit `Tab` vergrößern und mit `Shift+Tab` verringern; in Listen verschachteln dieselben Tasten Elemente oder heben sie an
2222

23-
### Neue API {#new-api}
23+
### Neue API {#new-api}
2424

2525
#### Neue Eigenschaften {#new-properties}
2626

@@ -53,7 +53,7 @@ Veröffentlicht am 28. Mai 2026
5353
- Beenden einer Liste oder Verringern der Verschachtelung durch Drücken von Enter in einem leeren Listenelement
5454
- Eigene Farbe für besuchte Links
5555

56-
### Neue API {#new-api-206}
56+
### Neue API {#new-api-206}
5757

5858
#### Neue Events {#new-events-206}
5959

@@ -180,7 +180,7 @@ Die API von v1.2 ist nicht kompatibel mit v2.0. Weitere Informationen finden Sie
180180
- **Tastaturkürzel**
181181
Erweiterte Unterstützung für gängige Formatierungs- und Bearbeitungskürzel
182182

183-
### Neue API {#new-api-20}
183+
### Neue API {#new-api-20}
184184

185185
#### Neue Eigenschaften {#new-properties-20}
186186

i18n/ko/code.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@
151151
"description": "The default label used for the Info admonition (:::info)"
152152
},
153153
"theme.admonition.note": {
154-
"message": "노트",
154+
"message": "참고",
155155
"description": "The default label used for the Note admonition (:::note)"
156156
},
157157
"theme.admonition.tip": {

i18n/ko/docusaurus-plugin-content-docs/current/api/config/layout-mode.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ layoutMode: "classic" | "document";
1818

1919
`"classic"` 모드는 전체 편집 영역을 채웁니다. `"document"` 모드는 편집 영역을 문서 페이지 형태로 표시합니다.
2020

21-
### 기본 구성 {#default-config}
21+
### 기본 설정 {#default-config}
2222

2323
~~~jsx
2424
layoutMode: "classic";
@@ -38,4 +38,4 @@ new richtext.Richtext("#root", {
3838

3939
**관련 문서:** [구성](guides/configuration.md)
4040

41-
**관련 예제:** [RichText. 초기화](https://snippet.dhtmlx.com/t55alxiy?tag=richtext)
41+
**관련 샘플:** [RichText. 초기화](https://snippet.dhtmlx.com/t55alxiy?tag=richtext)

i18n/ko/docusaurus-plugin-content-docs/current/api/config/trigger-template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function triggerTemplate({ data, trigger }) {
2020
};
2121
~~~
2222

23-
### 매개변수 {#parameters}
23+
### 파라미터 {#parameters}
2424

2525
callback 함수는 다음 매개변수를 가진 객체를 받습니다:
2626

i18n/ko/docusaurus-plugin-content-docs/current/api/config/value.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ new richtext.Richtext("#root", {
3333

3434
**관련 문서:** [구성](guides/configuration.md)
3535

36-
**관련 예제:** [RichText. 초기화](https://snippet.dhtmlx.com/t55alxiy?tag=richtext)
36+
**관련 샘플:** [RichText. 초기화](https://snippet.dhtmlx.com/t55alxiy?tag=richtext)

i18n/ko/docusaurus-plugin-content-docs/current/api/events/align.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ description: DHTMLX JavaScript RichText 라이브러리 문서에서 align 이
1818
}) => boolean | void;
1919
~~~
2020

21-
### 매개변수 {#parameters}
21+
### 파라미터 {#parameters}
2222

2323
`align` 이벤트의 callback은 다음 매개변수를 포함하는 객체를 받을 수 있습니다:
2424

i18n/ko/docusaurus-plugin-content-docs/current/api/events/export.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ interface IExportOptions {
2323
}
2424
~~~
2525

26-
### 매개변수 {#parameters}
26+
### 파라미터 {#parameters}
2727

2828
`export` 이벤트의 callback은 다음 매개변수를 포함하는 객체를 받을 수 있습니다:
2929

0 commit comments

Comments
 (0)