Esperanto as a text language (#1142) (#1204)

Esperanto in Character › Language (panel, Properties, style options),
mapped to the BCP 47 tag eo, with English-style typographer's quotes.
IDML keeps the name as written ($ID/Esperanto). Not hyphenated yet:
morpheme-based hyphenation follows in #1201.


Claude-Session: https://claude.ai/code/session_01Y9j7XJDCmPc8UZLs9cTxtu

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Axel
2026-11-05 13:16:42 +01:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 8aceec1f08
commit 0e85e9e5ec
19 changed files with 22 additions and 2 deletions
+1
View File
@@ -389,6 +389,7 @@ list) · [roadmap.md](docs/roadmap.md) (milestones, plan) · [parity-checklist.m
## Progress log
- **2026-11-04** · Striped strokes retain out-and-back cubic segments whose second control point is away from the coincident endpoints and first control point. A geometry regression checks the offset extent and both stripe bands. No readiness percentage change.
- **2026-11-04** · Esperanto is a text language (Character › Language, `type.char {language: "Esperanto"}`, IDML `$ID/Esperanto`): tag `eo`, English-style quotes; not hyphenated yet (#1201). No readiness percentage change.
- **2026-11-02** · EPUB Export Options names a cover image file (PNG or JPEG, typed or chosen with Choose…) for the reflowable export; left empty, the first page stays the cover (#1934). No readiness percentage change.
- **2026-11-02** · The Pen shows the segment a dragged smooth point shapes while it is dragged, and its rubber band curves out of a smooth point's direction line (#1438, first item). No readiness percentage change.
+1
View File
@@ -88,6 +88,7 @@ pub fn language_tag(language: &str) -> Option<&'static str> {
"urdu" => "ur",
"hebrew" => "he",
"georgian" => "ka",
"esperanto" => "eo",
_ => return None,
})
}
+2
View File
@@ -87,6 +87,8 @@ fn language_names_map_to_bcp47_tags() {
assert_eq!(language_tag("Farsi"), Some("fa"));
assert_eq!(language_tag("Urdu"), Some("ur"));
assert_eq!(language_tag("Hebrew"), Some("he"));
assert_eq!(language_tag("Esperanto"), Some("eo"));
assert_eq!(language_tag("$ID/Esperanto"), Some("eo"));
assert_eq!(language_tag("[No Language]"), None);
assert_eq!(language_tag("Klingon"), None);
assert_eq!(language_tag(""), None);
+1
View File
@@ -586,6 +586,7 @@ mod language_tests {
("fr_FR", GUILLEMETS, false),
("nb_NO", GUILLEMETS, false),
("ja_JP", CORNERS, false),
("Esperanto", ENGLISH, false),
("[No Language]", ENGLISH, false),
] {
assert_eq!(quote_marks(language), quotes, "{language}");
+1
View File
@@ -936,6 +936,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "الألمانية: الإصلاح السويسري 2006"),
("Greek", "اليونانية"),
("Hebrew", "العبرية"),
("Esperanto", "الإسبرانتو"),
("Hindi", "الهندية"),
("Hungarian", "المجرية"),
("Inverse Rounded Rectangle", "مستطيل بزوايا دائرية معكوسة"),
+1
View File
@@ -1413,6 +1413,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Němčina: Švýcarsko, reforma 2006"),
("Greek", "Řečtina"),
("Hebrew", "Hebrejština"),
("Esperanto", "Esperanto"),
("Hindi", "Hindština"),
("Hungarian", "Maďarština"),
("Inverse Rounded Rectangle", "Obrácený zaoblený obdélník"),
+1
View File
@@ -1409,6 +1409,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Deutsch: Schweiz, Rechtschreibreform 2006"),
("Greek", "Griechisch"),
("Hebrew", "Hebräisch"),
("Esperanto", "Esperanto"),
("Hindi", "Hindi"),
("Hungarian", "Ungarisch"),
("Inverse Rounded Rectangle", "Umgekehrt abgerundetes Rechteck"),
+1
View File
@@ -709,6 +709,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("Hair Space", "Hajszálköz"),
("Header Rows", "Fejlécsorok"),
("Hebrew", "Héber"),
("Esperanto", "Eszperantó"),
("Height", "Magasság"),
("Height Only", "Csak magasság"),
("Height and Width", "Magasság és szélesség"),
+1
View File
@@ -1560,6 +1560,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Tedesco: Svizzera, riforma 2006"),
("Greek", "Greco"),
("Hebrew", "Ebraico"),
("Esperanto", "Esperanto"),
("Hindi", "Hindi"),
("Hungarian", "Ungherese"),
("Inverse Rounded Rectangle", "Rettangolo arrotondato inverso"),
+1
View File
@@ -1582,6 +1582,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "ドイツ語: スイス 2006年正書法改訂"),
("Greek", "ギリシャ語"),
("Hebrew", "ヘブライ語"),
("Esperanto", "エスペラント語"),
("Hindi", "ヒンディー数字"),
("Hungarian", "ハンガリー語"),
("Inverse Rounded Rectangle", "内向き角丸長方形"),
+1
View File
@@ -1504,6 +1504,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "გერმანული: შვეიცარია, 2006 წლის რეფორმა"),
("Greek", "ბერძნული"),
("Hebrew", "ივრითი"),
("Esperanto", "ესპერანტო"),
("Hindi", "ჰინდი"),
("Hungarian", "უნგრული"),
("Inverse Rounded Rectangle", "შებრუნებული მომრგვალებული მართკუთხედი"),
+1
View File
@@ -1448,6 +1448,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Niemiecki: szwajcarski, reforma 2006"),
("Greek", "Grecki"),
("Hebrew", "Hebrajski"),
("Esperanto", "Esperanto"),
("Hindi", "Hindi"),
("Hungarian", "Węgierski"),
("Inverse Rounded Rectangle", "Prostokąt z wklęsłymi narożnikami"),
+1
View File
@@ -940,6 +940,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Alemão: reforma suíça de 2006"),
("Greek", "Grego"),
("Hebrew", "Hebraico"),
("Esperanto", "Esperanto"),
("Hindi", "Hindi"),
("Hungarian", "Húngaro"),
("Inverse Rounded Rectangle", "Retângulo arredondado invertido"),
+1
View File
@@ -1404,6 +1404,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Немецкий: Швейцария, реформа 2006 года"),
("Greek", "Греческий"),
("Hebrew", "Иврит"),
("Esperanto", "Эсперанто"),
("Hindi", "Хинди"),
("Hungarian", "Венгерский"),
("Inverse Rounded Rectangle", "Прямоугольник с вогнутыми скругленными углами"),
+1
View File
@@ -731,6 +731,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Tyska: schweizisk, reformen 2006"),
("Greek", "Grekiska"),
("Hebrew", "Hebreiska"),
("Esperanto", "Esperanto"),
("Hindi", "Hindi"),
("Hungarian", "Ungerska"),
("Inverse Rounded Rectangle", "Omvänd rundad rektangel"),
+1
View File
@@ -3939,6 +3939,7 @@ pub(super) const TABLE: &[(&str, [&str; 5])] = &[
),
("Greek", ["Greek", "Grec", "Greek", "Greek", "希腊语"]),
("Hebrew", ["Hebrew", "Hébreu", "Hebrew", "Hebrew", "希伯来语"]),
("Esperanto", ["Esperanto", "Espéranto", "Esperanto", "エスペラント語", "世界语"]),
("Hindi", ["Hindi", "Hindi", "Hindi", "Hindi", "印地语"]),
("Hungarian", ["Hungarian", "Hongrois", "Hungarian", "Hungarian", "匈牙利语"]),
(
+1
View File
@@ -1557,6 +1557,7 @@ pub(super) const TABLE: &[(&str, &str)] = &[
("German: Swiss 2006 Reform", "Німецька: Швейцарія, реформа 2006 року"),
("Greek", "Грецька"),
("Hebrew", "Іврит"),
("Esperanto", "Есперанто"),
("Hindi", "Гінді"),
("Hungarian", "Угорська"),
("Inverse Rounded Rectangle", "Прямокутник з увігнутими округленими кутами"),
@@ -576,6 +576,7 @@ pub(crate) const LANGUAGES: &[&str] = &[
"Korean",
"Arabic",
"Hebrew",
"Esperanto",
];
/// The Language list (Character panel, Properties ▸ Character): picking one sets the language of
+3 -2
View File
@@ -1,6 +1,6 @@
# Localization parity
> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-11-01 · **Change:** minor (Hungarian interface catalog, bundled-font coverage and flyout regression checks; Swedish interface) · **Target:** Adobe InDesign 2026 (21.6)
> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-11-04 · **Change:** minor (Esperanto text language; Hungarian interface catalog, bundled-font coverage and flyout regression checks; Swedish interface) · **Target:** Adobe InDesign 2026 (21.6)
Per-language status of the DesignCraft interface and of document typesetting in each script.
Script-specific typesetting detail: [cjk.md](cjk.md), [cjk-typography.md](cjk-typography.md),
@@ -95,7 +95,8 @@ eight of the twelve (cs, da, el, en_GB, fi, hu, it, nb, nl, pl, ro, ru, sq, sv,
InDesign 2026 hyphenates and spell-checks ~40 languages (Hunspell and Duden dictionaries).
DesignCraft hyphenates **English, Danish, Dutch, French, German (2006 reform), Greek, Italian, Norwegian, Portuguese and Spanish** and spell-checks **English** only. Text language
can be set per paragraph and character (Properties, Character panel) and drives quotes and
locale shaping. See [typography-parity.md](typography-parity.md).
locale shaping; Esperanto is offered too (not hyphenated yet, #1201). See
[typography-parity.md](typography-parity.md).
German hyphenation accepts `German: 2006 Reform`, `German: Swiss 2006 Reform` and `de` locale
codes without a spelling year or with `2006`. Traditional names, `de_DE_1901` and unknown
German variants have no automatic hyphenation; their German shaping and quotes are unchanged.