From 2ea9a85cf8265819eca66b6d6f065fc055e31dac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 01:09:41 +0200 Subject: [PATCH 1/8] more fixes German --- AGENTS.md | 1 + Rules/Languages/de/SharedRules/general.yaml | 4 +- Rules/Languages/de/unicode-full.yaml | 60 +++++++++---------- Rules/Languages/de/unicode.yaml | 2 +- .../de/ClearSpeak/symbols_and_adornments.rs | 10 +++- tests/Languages/de/mtable.rs | 25 ++++++++ 6 files changed, 68 insertions(+), 34 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 295c4ca4..b15e8013 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,6 +17,7 @@ but add common mistakes of AI agents here instead. ## Translation Conventions - `t:` means untranslated or unverified. - `T:` means translated and verified. +- don't demote from `T:` to `t:` unless instructed to. - tool for comparing rules across languages: `uv run --project PythonScripts audit-translations ` ## Python Tooling (`uv`) diff --git a/Rules/Languages/de/SharedRules/general.yaml b/Rules/Languages/de/SharedRules/general.yaml index 4058dd43..8eb250a9 100644 --- a/Rules/Languages/de/SharedRules/general.yaml +++ b/Rules/Languages/de/SharedRules/general.yaml @@ -670,8 +670,8 @@ - T: "Zeile" # phrase(the 1 by 4 'row' matrix) - test: if: "$ClearSpeak_Matrix = 'Vector' or $ClearSpeak_Matrix = 'EndVector'" - then: [T: "die 1 mal"] # phrase('the 1 by' 2 row 'vector') - else: [T: "die 1 mal"] # phrase('the 1 by' 2 'matrix') + then: [T: "vektor"] # phrase('the 1 by' 2 row 'vector') + else: [T: "matrix"] # phrase('the 1 by' 2 'matrix') - pause: long - x: "*/*" - test: diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index 044d0417..16d239cf 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -3683,36 +3683,36 @@ - "": [T: "linker halterung"] # 0xf8ee (en: 'left bracket top', google translation) - "": [T: "linke klammer extender"] # 0xf8ef (en: 'left bracket extender', google translation) - "": [T: "linke halterung unten"] # 0xf8f0 (en: 'left bracket bottom', google translation) - - "": [T: "links leichte oberseite"] # 0xf8f1 (en: 'left brace top', google translation) - - "": [T: "linksklammer mitten"] # 0xf8f2 (en: 'left brace mid', google translation) - - "": [T: "linker blace boden"] # 0xf8f3 (en: 'left brace bottom', google translation) - - "": [T: "absprace externen"] # 0xf8f4 (en: 'brace extender', google translation) - - "": [T: "integraler extender"] # 0xf8f5 (en: 'integral extender', google translation) - - "": [T: "rechte klammern"] # 0xf8f6 (en: 'right paren top', google translation) - - "": [T: "rechte klammer extender"] # 0xf8f7 (en: 'right paren extender', google translation) + - "": [T: "linke geschweifte klammer oben"] # 0xf8f1 (en: 'left brace top', google translation) + - "": [T: "linke geschweifte klammer mitte"] # 0xf8f2 (en: 'left brace mid', google translation) + - "": [T: "linke geschweifte klammer unten"] # 0xf8f3 (en: 'left brace bottom', google translation) + - "": [T: "erweiterung der geschweiften klammer"] # 0xf8f4 (en: 'brace extender', google translation) + - "": [T: "integral-erweiterung"] # 0xf8f5 (en: 'integral extender', google translation) + - "": [T: "rechte klammer oben"] # 0xf8f6 (en: 'right paren top', google translation) + - "": [T: "rechte klammer-erweiterung"] # 0xf8f7 (en: 'right paren extender', google translation) - "": [T: "rechte klammer unten"] # 0xf8f8 (en: 'right paren bottom', google translation) - - "": [T: "rechte halterung"] # 0xf8f9 (en: 'right bracket top', google translation) - - "": [T: "rechte klammer extender"] # 0xf8fa (en: 'right bracket extender', google translation) - - "": [T: "rechte halterung unten"] # 0xf8fb (en: 'right bracket bottom', google translation) - - "": [T: "rechte klammerobertop"] # 0xf8fc (en: 'right brace top', google translation) - - "": [T: "richtige klammer in der mitte"] # 0xf8fd (en: 'right brace mid', google translation) - - "": [T: "rechtshalle unten"] # 0xf8fe (en: 'right brace bottom', google translation) - - "": [T: "apple logo"] # 0xf8ff (google translation) - - "ff": [T: "ligature ff"] # 0xfb00 (en: 'ff', google: 'ff') - - "fi": [T: "ligature fi"] # 0xfb01 (en: 'fi', google: 'fi') - - "fl": [T: "ligature fl"] # 0xfb02 (en: 'fl', google: 'fl') - - "ffi": [T: "ligature ffi"] # 0xfb03 (en: 'ffi', google: 'ffi') - - "ffl": [T: "ligature ffl"] # 0xfb04 (en: 'ffl', google: 'ffl') - - "ſt": [T: "ft"] # 0xfb05 (google translation) - - "st": [T: "st"] # 0xfb06 (google translation) - - "﬩": [T: "hebräischer buchstabe alternatives plus"] # 0xfb29 (en: 'hebrew letter alternative plus') - - "︠": [T: "die ligatur verließ die halbe verzierung"] # 0xfe20 (en: 'ligature left half embellishment', google translation) - - "︡": [T: "ligature rechte halbe verzierung"] # 0xfe21 (en: 'ligature right half embellishment', google translation) - - "︢": [T: "doppelte tilde verließ die halbe verzierung"] # 0xfe22 (en: 'double tilde left half embellishment', google translation) + - "": [T: "rechte eckige klammer oben"] # 0xf8f9 (en: 'right bracket top', google translation) + - "": [T: "rechte eckige klammer-erweiterung"] # 0xf8fa (en: 'right bracket extender', google translation) + - "": [T: "rechte eckige klammer unten"] # 0xf8fb (en: 'right bracket bottom', google translation) + - "": [T: "rechte geschweifte klammer oben"] # 0xf8fc (en: 'right brace top', google translation) + - "": [T: "rechte geschweifte klammer mitte"] # 0xf8fd (en: 'right brace mid', google translation) + - "": [T: "rechte geschweifte klammer unten"] # 0xf8fe (en: 'right brace bottom', google translation) + - "": [T: "Apple-Logo"] # 0xf8ff (google translation) + - "ff": [T: "ligatur ff"] # 0xfb00 (en: 'ff', google: 'ff') + - "fi": [T: "ligatur fi"] # 0xfb01 (en: 'fi', google: 'fi') + - "fl": [T: "ligatur fl"] # 0xfb02 (en: 'fl', google: 'fl') + - "ffi": [T: "ligatur ffi"] # 0xfb03 (en: 'ffi', google: 'ffi') + - "ffl": [T: "ligatur ffl"] # 0xfb04 (en: 'ffl', google: 'ffl') + - "ſt": [T: "ligatur ft"] # 0xfb05 (google translation) + - "st": [T: "ligatur st"] # 0xfb06 (google translation) + - "﬩": [T: "hebräischer buchstabe alternatives pluszeichen"] # 0xfb29 (en: 'hebrew letter alternative plus') + - "︠": [T: "ligatur linke halbe verzierung"] # 0xfe20 (en: 'ligature left half embellishment', google translation) + - "︡": [T: "ligatur rechte halbe verzierung"] # 0xfe21 (en: 'ligature right half embellishment', google translation) + - "︢": [T: "doppelte tilde linke halbe verzierung"] # 0xfe22 (en: 'double tilde left half embellishment', google translation) - "︣": [T: "doppelte tilde rechte halbe verzierung"] # 0xfe23 (en: 'double tilde right half embellishment', google translation) - - "︤": [T: "macron verließ die halbe verzierung"] # 0xfe24 (en: 'macron left half embellishment', google translation) - - "︥": [T: "macron rechte halbe verzierung"] # 0xfe25 (en: 'macron right half embellishment', google translation) - - "︦": [T: "konjazieren von macron -verzierung"] # 0xfe26 (en: 'conjoining macron embellishment', google translation) + - "︤": [T: "makron linke halbe verzierung"] # 0xfe24 (en: 'macron left half embellishment', google translation) + - "︥": [T: "makron rechte halbe verzierung"] # 0xfe25 (en: 'macron right half embellishment', google translation) + - "︦": [T: "verbindende makron-verzierung"] # 0xfe26 (en: 'conjoining macron embellishment', google translation) - "︵": [T: "Präsentationsformular für vertikale linke Klammer"] # 0xfe35 (en: 'over paren', MathPlayer: 'over paren', google: 'über klammern') - "︶": [T: "Präsentationsformular für vertikale rechte Klammer"] # 0xfe36 (en: 'under paren', MathPlayer: 'under paren', google: 'unter klammern') - "︷": [T: "Präsentationsformular für vertikale linke geschweifte Klammer"] # 0xfe37 (en: 'over brace', MathPlayer: 'over curly bracket', google: 'über klammer') @@ -3729,7 +3729,7 @@ - "<": [T: "kleiner als"] # 0xff1c (en: 'less than') - "=": [T: "gleichheitszeichen"] # 0xff1d (en: 'equals') - ">": [T: "größer als"] # 0xff1e (en: 'greater than') - - "\": [T: "backslash"] # 0xff3c (en: 'backslash') + - "\": [T: "rückwärts schrägstrich"] # 0xff3c (en: 'backslash') - "^": [T: "hut"] # 0xff3e (en: 'hat') - "|": [T: "vertikale linie"] # 0xff5c (en: 'vertical line') - "~": [T: "tilde"] # 0xff5e (en: 'tilde') @@ -3739,4 +3739,4 @@ - "→": [T: "rechtspfeil"] # 0xffeb (en: 'right arrow') - "↓": [T: "abwärtspfeil"] # 0xffec (en: 'down arrow') - "": [T: "unbekanntes oder fehlendes objekt"] # 0xfffc (en: 'unknown or missing object', google translation) - - "�": [T: "unknown or missing character"] # 0xfffd (google: 'unbekannter oder fehlender charakter') + - "�": [T: "unbekanntes oder fehlendes Zeichen"] # 0xfffd (google: 'unbekannter oder fehlender charakter') diff --git a/Rules/Languages/de/unicode.yaml b/Rules/Languages/de/unicode.yaml index 61b98515..4fe72669 100644 --- a/Rules/Languages/de/unicode.yaml +++ b/Rules/Languages/de/unicode.yaml @@ -43,7 +43,7 @@ else: [T: "ausrufezeichen"] # 0x21 (en: 'exclamation point') else: [T: "fakultät"] # 0x21 (en: 'factorial') - - "\"": [T: "backslash"] # 0x22 (en: 'quotation mark') #backslash?? + - "\"": [T: "anführungszeichen"] # 0x22 (en: 'quotation mark') - "#": [T: "nummernzeichen"] # 0x23 (en: 'number') - "$": [T: "dollar"] # 0x24 (en: 'dollars') - "%": [T: "prozent"] # 0x25 (en: 'percent') diff --git a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs index 6b2cb9e7..b52b0a25 100644 --- a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs +++ b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs @@ -31,6 +31,14 @@ fn multiplication_cross() -> Result<()> { } +// Added after a rule review found that `"` was incorrectly spoken as `backslash` in German. +#[test] +fn quotation_mark() -> Result<()> { + let expr = """; + test("de", "ClearSpeak", expr, "anführungszeichen")?; + Ok(()) +} + #[test] fn ellipses_auto_start() -> Result<()> { let expr = " @@ -386,4 +394,4 @@ fn supset() -> Result<()> { "groß a ist eine obermenge von, groß b")?; return Ok(()); -} \ No newline at end of file +} diff --git a/tests/Languages/de/mtable.rs b/tests/Languages/de/mtable.rs index 472e5868..e2e6e0dc 100644 --- a/tests/Languages/de/mtable.rs +++ b/tests/Languages/de/mtable.rs @@ -52,6 +52,31 @@ fn single_line_with_label() -> Result<()> { Ok(()) } +// Added after a rule review found the German 1xN row-matrix rule repeated `die 1 mal` instead of saying `matrix`/`vektor`. +#[test] +fn matrix_1x2_row_regression() -> Result<()> { + let expr = " + + + ( + + + + 3 + + + 5 + + + + ) + + "; + test("de", "ClearSpeak", expr, "die 1 mal 2 Zeile matrix; 3, 5")?; + test("de", "SimpleSpeak", expr, "die 1 mal 2 Zeile matrix; 3, 5")?; + Ok(()) +} + /* #[test] From cd1429b1db04758d9f9b7a740875c4a69924cc17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 01:59:34 +0200 Subject: [PATCH 2/8] translate some stuff --- Rules/Languages/de/navigate.yaml | 8 ++++---- Rules/Languages/de/unicode-full.yaml | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Rules/Languages/de/navigate.yaml b/Rules/Languages/de/navigate.yaml index 72ad5bb5..4ff42e67 100644 --- a/Rules/Languages/de/navigate.yaml +++ b/Rules/Languages/de/navigate.yaml @@ -124,12 +124,12 @@ - test: # in postscripts -- base shifts by one if: "$NumPrecedingSiblings mod 2 = 0" then: [T: "index"] # phrase(x with 'subscript' 2) - else: [T: "superscript"] # phrase(x with 'superscript' 2) + else: [T: "hochgestellt"] # phrase(x with 'superscript' 2) else: - test: if: "$NumPrecedingSiblings mod 2 = 0" - then: [T: "pre-superscript"] # phrase(x with 'pre-superscript' 2) - else: [T: "pre-subscript"] # phrase(x with 'pre-subscript' 2) + then: [T: "prä-hochgestellt"] # phrase(x with 'pre-superscript' 2) + else: [T: "prä-index"] # phrase(x with 'pre-subscript' 2) - pause: "medium" # Rules for speaking what happens when moving into or out of a notation @@ -761,7 +761,7 @@ - test: if: "$NavVerbosity = 'Verbose'" then: - - T: "übergehen sie zur vorherigen spalte" # phrase('move to previous column' to the previous row in the table) + - T: "zur vorherigen spalte" # phrase('move to previous column' in the table) - pause: medium - T: "keine vorherige spalte" # phrase('no previous column' in the table) - set_variables: [SpeakExpression: "'false'"] diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index 16d239cf..eec23ff2 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -2249,8 +2249,8 @@ - "⪲": [T: "Erfolg über Single-Line nicht gleich"] # 0x2ab2 (en: 'succeeds above single line not equal to', google: 'nachfolger über eine einzelne linie nicht gleich') - "⪳": [T: "Vorangegangenes Gleichheitszeichen"] # 0x2ab3 (en: 'precedes above equals sign', google: 'vor dem gleichen vorzeichen voraus') - "⪴": [T: "Erfolgreich über Gleichheitszeichen"] # 0x2ab4 (en: 'succeeds above equals sign', google: 'nachfolger über gleiches zeichen') - - "⪵": [T: "precedes but not equal to"] # 0x2ab5 (en: 'precedes above not equal to') - - "⪶": [T: "succeeds but not equal to"] # 0x2ab6 (en: 'succeeds above not equal to') + - "⪵": [T: "vorangehend, aber nicht gleich"] # 0x2ab5 (en: 'precedes above not equal to') + - "⪶": [T: "nachfolgend, aber nicht gleich"] # 0x2ab6 (en: 'succeeds above not equal to') - "⪷": [T: "Vorangegangenes fast gleich zu"] # 0x2ab7 (en: 'precedes above almost equal to', google: 'vor voraussichtlich fast gleich gleich') - "⪸": [T: "Erreicht über fast gleich viel"] # 0x2ab8 (en: 'succeeds above almost equal to', google: 'erfolgreich ist über fast gleich') - "⪹": [T: "Vorangegangene nicht annähernd gleich"] # 0x2ab9 (en: 'precedes above not almost equal to', google: 'vorkommen oben nicht annähernd gleich') @@ -2314,7 +2314,7 @@ - "⫳": [T: "Parallel zu Tilde Operator"] # 0x2af3 (en: 'parallel with tilde operator', MathPlayer: 'parallel with tilde operator', google: 'parallel zum tilde -operator') - "⫴": [T: "Dreifache vertikale Balken-Binärbeziehung"] # 0x2af4 (en: 'triple vertical bar binary relation', google: 'triple vertical bar binärbeziehung') - "⫵": [T: "Dreifacher vertikaler Strich mit horizontalem Hub"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke', google: 'dreifache vertikale balken mit horizontalem schlaganfall') - - "⫶": [T: "Triple Colon Operator"] # 0x2af6 (en: 'triple colon operator', google: 'dreifacher dickdarmbetreiber') + - "⫶": [T: "dreifacher doppelpunkt-operator"] # 0x2af6 (en: 'triple colon operator', google: 'dreifacher dickdarmbetreiber') - "⫷": [T: "Dreifach verschachtelt weniger als"] # 0x2af7 (en: 'triple nested less than', google: 'dreifach verschachtelte weniger als') - "⫸": [T: "Dreifach verschachteltes Größeres als"] # 0x2af8 (en: 'triple nested greater than', google: 'dreifach verschachteltes als') - "⫹": [T: "Doppellinie schräg, weniger als oder gleich"] # 0x2af9 (en: 'double line slanted less than or equal to', google: 'doppelzeile, die weniger oder gleich sind') @@ -2323,8 +2323,8 @@ - "⫼": [T: "Großer dreifacher vertikaler Barbediener"] # 0x2afc (en: 'large triple vertical bar operator', google: 'großer dreifacher vertikaler barbetreiber') - "⫽": [T: "Doppelter Schrägstrich-Operator"] # 0x2afd (en: 'double solidus operator', google: 'doppeler solidus -operator') - "⫾": [T: "Weiße vertikale Leiste"] # 0x2afe (en: 'white vertical bar', google: 'weiße vertikale balken') - - "⫿": [T: "N-Ary White Vertical Bar"] # 0x2aff (en: 'white vertical bar', google: 'weiße vertikale balken') - - "⬀": [T: "North East White Arrow"] # 0x2b00 (en: 'north east white arrow', google: 'north east white arrow') + - "⫿": [T: "n-ary weiße vertikale leiste"] # 0x2aff (en: 'white vertical bar', google: 'weiße vertikale balken') + - "⬀": [T: "weißer Nordostpfeil"] # 0x2b00 (en: 'north east white arrow', google: 'north east white arrow') - "⬁": [T: "Nordwestlicher weißer Pfeil"] # 0x2b01 (en: 'north west white arrow', google: 'north west white arrow') - "⬂": [T: "Südostweißer Pfeil"] # 0x2b02 (en: 'south east white arrow', google: 'südostweißer pfeil') - "⬃": [T: "Südwestweißer Pfeil"] # 0x2b03 (en: 'south west white arrow', google: 'south west white arrow') @@ -3437,7 +3437,7 @@ - "-": # 0xf3ea - 0xf403 - spell: "translate('.', '', 'abcdefghijklmnopqrstuvwxyz')" - - "": [T: "dotless i"] # 0xf404 (google translation) + - "": [T: "punktloses i"] # 0xf404 (google translation) - "𝚤": [T: "punktloses i kursiv"] # 0x1d6a4 (en: 'dotless i', google: 'dotless i') - "𝚥": [T: "punktloses j kursiv"] # 0x1d6a5 (en: 'dotless j', google: 'dotless j') From 599c7cccb0b99d5051460f79a1ba4b00af6d2649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 02:05:12 +0200 Subject: [PATCH 3/8] fix translation errors --- Rules/Languages/de/unicode-full.yaml | 76 ++++++++++++++-------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index eec23ff2..75837285 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -41,47 +41,47 @@ - "¶": [T: "absatzzeichen"] # 0xb6 (en: 'paragraph mark') - "¿": [T: "umgekehrtes fragezeichen"] # 0xbf (en: 'inverted question mark') - - "ʰ": [T: "modifikator klein h"] # 0x2b0 (en: 'modifier small h', google translation) - - "ʱ": [T: "modifikator klein h mit haken"] # 0x2b1 (en: 'modifier small h with hook', google translation) - - "ʲ": [T: "modifikator klein j"] # 0x2b2 (en: 'modifier small j', google translation) - - "ʳ": [T: "modifikator klein r"] # 0x2b3 (en: 'modifier small r', google translation) + - "ʰ": [T: "modifikator kleines h"] # 0x2b0 (en: 'modifier small h', google translation) + - "ʱ": [T: "modifikator kleines h mit haken"] # 0x2b1 (en: 'modifier small h with hook', google translation) + - "ʲ": [T: "modifikator kleines j"] # 0x2b2 (en: 'modifier small j', google translation) + - "ʳ": [T: "modifikator kleines r"] # 0x2b3 (en: 'modifier small r', google translation) - "ʴ": [T: "modifikator gedrehtes kleines r"] # 0x2b4 (en: 'modifier small turned r', google translation) - "ʵ": [T: "modifikator gedrehtes kleines r mit haken"] # 0x2b5 (en: 'modifier small turned r with hook', google translation) - "ʶ": # 0x2b6 - - T: "modifikator klein invertiert" # (en: 'modifier small inverted', google translation) + - T: "modifikator umgekehrtes kleines r" # (en: 'modifier small inverted', google translation) - spell: "translate('R', 'R', 'R')" - - "ʷ": [T: "modifikator klein w"] # 0x2b7 (en: 'modifier small w', google translation) - - "ʸ": [T: "modifikator klein y"] # 0x2b8 (en: 'modifier small y', google translation) + - "ʷ": [T: "modifikator kleines w"] # 0x2b7 (en: 'modifier small w', google translation) + - "ʸ": [T: "modifikator kleines y"] # 0x2b8 (en: 'modifier small y', google translation) - "ʹ": [T: "Strich"] # 0x2b9 (en: 'modifier prime', google: 'modifikator prime') - "ʺ": [T: "zwei Striche"] # 0x2ba (en: 'modifier double prime', google: 'modifikator double prime') - - "ʻ": [T: "modifikator wurde komma"] # 0x2bb (en: 'modifier turned comma', google translation) + - "ʻ": [T: "modifikator gedrehtes komma"] # 0x2bb (en: 'modifier turned comma', google translation) - "ʼ": [T: "modifikator apostroph"] # 0x2bc (en: 'modifier apostrophe', google translation) - - "ʽ": [T: "modifikator umgekehrtes Komma"] # 0x2bd (en: 'modifier reversed comma', google translation) - - "ʾ": [T: "modifikator halber ring rechts"] # 0x2be (en: 'modifier right half ring', google: 'modifikator rechts halbe ring') - - "ʿ": [T: "modifikator halber ring links"] # 0x2bf (en: 'modifier left half ring', google: 'modifikator verließ den halben ring') - - "ˀ": [T: "modifikator glottal stop"] # 0x2c0 (en: 'modifier glottal stop', google translation) - - "ˁ": [T: "modifikator umgekehrt glottal stop"] # 0x2c1 (en: 'modifier reversed glottal stop', google translation) - - "˂": [T: "modifikator pfeilspitze von links"] # 0x2c2 (en: 'modifier left arrowhead', google translation) - - "˃": [T: "modifikator pfeilspitze von rechts"] # 0x2c3 (en: 'modifier right arrowhead', google translation) - - "˄": [T: "modifikator pfeil aufwärts"] # 0x2c4 (en: 'modifier up arrowhead', google translation) - - "˅": [T: "modifikator pfeil abwärts"] # 0x2c5 (en: 'modifier down arrowhead', google translation) - - "ˆ": [T: "modifier letter circumflex accent"] # 0x2c6 (en: 'modifier circumflex accent', google: 'modifikator circumflex akzent') + - "ʽ": [T: "modifikator umgekehrtes komma"] # 0x2bd (en: 'modifier reversed comma', google translation) + - "ʾ": [T: "modifikator rechter halbring"] # 0x2be (en: 'modifier right half ring', google: 'modifikator rechts halbe ring') + - "ʿ": [T: "modifikator linker halbring"] # 0x2bf (en: 'modifier left half ring', google: 'modifikator verließ den halben ring') + - "ˀ": [T: "modifikator Knacklaut"] # 0x2c0 (en: 'modifier glottal stop', google translation) + - "ˁ": [T: "modifikator umgekehrter Knacklaut"] # 0x2c1 (en: 'modifier reversed glottal stop', google translation) + - "˂": [T: "modifikator pfeilspitze nach links"] # 0x2c2 (en: 'modifier left arrowhead', google translation) + - "˃": [T: "modifikator pfeilspitze nach rechts"] # 0x2c3 (en: 'modifier right arrowhead', google translation) + - "˄": [T: "modifikator pfeilspitze nach oben"] # 0x2c4 (en: 'modifier up arrowhead', google translation) + - "˅": [T: "modifikator pfeilspitze nach unten"] # 0x2c5 (en: 'modifier down arrowhead', google translation) + - "ˆ": [T: "modifikator zirkumflexakzent"] # 0x2c6 (en: 'modifier circumflex accent', google: 'modifikator circumflex akzent') - "ˇ": [T: "caron"] # 0x2c7 - - "ˈ": [T: "modifikator vertikale linie"] # 0x2c8 (en: 'modifier vertical line', google translation) - - "ˉ": [T: "modifikator macron"] # 0x2c9 (en: 'modifier macron', google translation) - - "ˊ": [T: "modifikator akuter akzent"] # 0x2ca (en: 'modifier acute accent', google translation) - - "ˋ": [T: "modifikator grabakzent"] # 0x2cb (en: 'modifier grave accent', google translation) - - "ˌ": [T: "modifikator niedrige vertikale linie"] # 0x2cc (en: 'modifier low vertical line', google translation) - - "ˍ": [T: "modifikator low macron"] # 0x2cd (en: 'modifier low macron', google translation) - - "ˎ": [T: "modifikator niedriger schwerer akzent"] # 0x2ce (en: 'modifier low grave accent', google translation) - - "ˏ": [T: "modifikator niedriger akuter akzent"] # 0x2cf (en: 'modifier low acute accent', google translation) + - "ˈ": [T: "modifikator vertikaler strich"] # 0x2c8 (en: 'modifier vertical line', google translation) + - "ˉ": [T: "modifikator makron"] # 0x2c9 (en: 'modifier macron', google translation) + - "ˊ": [T: "modifikator akutakzent"] # 0x2ca (en: 'modifier acute accent', google translation) + - "ˋ": [T: "modifikator gravisakzent"] # 0x2cb (en: 'modifier grave accent', google translation) + - "ˌ": [T: "modifikator tiefer vertikaler strich"] # 0x2cc (en: 'modifier low vertical line', google translation) + - "ˍ": [T: "modifikator tiefes makron"] # 0x2cd (en: 'modifier low macron', google translation) + - "ˎ": [T: "modifikator tiefer gravisakzent"] # 0x2ce (en: 'modifier low grave accent', google translation) + - "ˏ": [T: "modifikator tiefer akutakzent"] # 0x2cf (en: 'modifier low acute accent', google translation) - "ː": [T: "modifikator dreieckiger doppelpunkt"] # 0x2d0 (en: 'modifier triangular colon', google translation) - - "ˑ": [T: "modifikator halbdreiecksdoppelpunkt"] # 0x2d1 (en: 'modifier half triangular colon', google translation) - - "˒": [T: "modifikator zentrierter halbring von rechts"] # 0x2d2 (en: 'modifier centered right half ring', google translation) - - "˓": [T: "modifikator zentrierter halbring von links"] # 0x2d3 (en: 'modifier centered left half ring', google translation) - - "˔": [T: "modifikator aufgerichtet"] # 0x2d4 (en: 'modifier up tadck', google translation) - - "˕": [T: "modifikator abwärts gerichtet"] # 0x2d5 (en: 'modifier down tack', google translation) + - "ˑ": [T: "modifikator halb dreieckiger doppelpunkt"] # 0x2d1 (en: 'modifier half triangular colon', google translation) + - "˒": [T: "modifikator zentrierter rechter halbring"] # 0x2d2 (en: 'modifier centered right half ring', google translation) + - "˓": [T: "modifikator zentrierter linker halbring"] # 0x2d3 (en: 'modifier centered left half ring', google translation) + - "˔": [T: "modifikator nach oben gerichteter strich"] # 0x2d4 (en: 'modifier up tadck', google translation) + - "˕": [T: "modifikator nach unten gerichteter strich"] # 0x2d5 (en: 'modifier down tack', google translation) - "˖": [T: "modifikator pluszeichen"] # 0x2d6 (en: 'modifier plus sign', google translation) - "˗": [T: "modifikator minuszeichen"] # 0x2d7 (en: 'modifier minus sign', google translation) - "˘": [T: "kurz"] # 0x2d8 (SRE: 'Breve') @@ -93,13 +93,13 @@ - "˞": [T: "modifikator rhotischer haken"] # 0x2de (en: 'modifier rhotic hook', google translation) - "˟": [T: "modifikator kreuzakzent"] # 0x2df (en: 'modifier cross accent', google translation) - "ˠ": [T: "modifikator kleines gamma"] # 0x2e0 (en: 'modifier small gamma', google translation) - - "ˡ": [T: "modifikator klein l"] # 0x2e1 (en: 'modifier small l', google translation) - - "ˢ": [T: "modifikator klein s"] # 0x2e2 (en: 'modifier small s', google translation) - - "ˣ": [T: "modifikator klein x"] # 0x2e3 (en: 'modifier small x', google translation) - - "ˤ": [T: "modifikator kleiner umgekehrter glottal stopp"] # 0x2e4 (en: 'modifier small reversed glottal stop', google translation) - - "˥": [T: "modifikator extra hoher Tonbalken"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) - - "˦": [T: "modifikator hoher Tonbalken"] # 0x2e6 (en: 'modifier high tone bar', google translation) - - "˧": [T: "modifikator mittlerer Balken"] # 0x2e7 (en: 'modifier mid tone bar', google translation) + - "ˡ": [T: "modifikator kleines l"] # 0x2e1 (en: 'modifier small l', google translation) + - "ˢ": [T: "modifikator kleines s"] # 0x2e2 (en: 'modifier small s', google translation) + - "ˣ": [T: "modifikator kleines x"] # 0x2e3 (en: 'modifier small x', google translation) + - "ˤ": [T: "modifikator kleiner umgekehrter glottalverschluss"] # 0x2e4 (en: 'modifier small reversed glottal stop', google translation) + - "˥": [T: "modifikator extra hoher tonbalken"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) + - "˦": [T: "modifikator hoher tonbalken"] # 0x2e6 (en: 'modifier high tone bar', google translation) + - "˧": [T: "modifikator mittlerer tonbalken"] # 0x2e7 (en: 'modifier mid tone bar', google translation) - "˨": [T: "modifikator niedrige tonleiste"] # 0x2e8 (en: 'modifier low tone bar', google translation) - "˩": [T: "modifikator extra niedrige tonleiste"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) - "˪": [T: "modifikator yin abgabetonmarke"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) From f958eaa7b33a582f9998692b7887977222c55f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 02:21:19 +0200 Subject: [PATCH 4/8] fix translation errors --- Rules/Languages/de/unicode-full.yaml | 68 ++++++++++++++-------------- tests/Languages/de/shared.rs | 6 +-- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index 75837285..b30e1bb9 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -134,57 +134,57 @@ - "̇": [T: "Punkt über Verzierung"] # 0x307 (google: 'punkt über verzierung') - "̈": [T: "zwei Punkte oberhalb"] # 0x308 (en: 'diaeresis embellishment', google: 'diaeresis -verzierung') - "̉": [T: "haken über verzierung"] # 0x309 (en: 'hook above embellishment', google translation) - - "̊": [T: "combining ring above"] # 0x30a (en: 'ring above embellishment', google: 'ring über verzierung') - - "̋": [T: "doppelte akute akzentverzierung"] # 0x30b (en: 'double acute accent embellishment', google translation) - - "̌": [T: "combining caron"] # 0x30c (en: 'check', google: 'überprüfen') + - "̊": [T: "ring über verzierung"] # 0x30a (en: 'ring above embellishment', google: 'ring über verzierung') + - "̋": [T: "doppelte akutakzentverzierung"] # 0x30b (en: 'double acute accent embellishment', google translation) + - "̌": [T: "kombinierendes Caron"] # 0x30c (en: 'check', google: 'überprüfen') - "̍": [T: "vertikale linie über verzierung"] # 0x30d (en: 'vertical line above embellishment', google translation) - "̎": [T: "doppelte vertikale linie über verzierung"] # 0x30e (en: 'double vertical line above embellishment', google translation) - - "̏": [T: "doppelgrabes akzentverzierung"] # 0x30f (en: 'double grave accent embellishment', google translation) - - "̐": [T: "candrabindu -verzierung"] # 0x310 (en: 'candrabindu embellishment', google translation) - - "̑": [T: "combining inverted breve"] # 0x311 (en: 'inverted breve embellishment', google: 'umgekehrte breve -verzierung') - - "̒": [T: "komma über der verzierung gedreht"] # 0x312 (en: 'turned comma above embellishment', google translation) + - "̏": [T: "doppelgravisakzentverzierung"] # 0x30f (en: 'double grave accent embellishment', google translation) + - "̐": [T: "candrabindu-verzierung"] # 0x310 (en: 'candrabindu embellishment', google translation) + - "̑": [T: "umgekehrtes breve-verzierung"] # 0x311 (en: 'inverted breve embellishment', google: 'umgekehrte breve -verzierung') + - "̒": [T: "gedrehtes komma über verzierung"] # 0x312 (en: 'turned comma above embellishment', google translation) - "̓": [T: "komma über verzierung"] # 0x313 (en: 'comma above embellishment', google translation) - - "̔": [T: "umgekehrter komma über verzierung"] # 0x314 (en: 'reversed comma above embellishment', google translation) + - "̔": [T: "umgekehrtes komma über verzierung"] # 0x314 (en: 'reversed comma above embellishment', google translation) - "̕": [T: "komma über der rechten verzierung"] # 0x315 (en: 'comma above right embellishment', google translation) - - "̖": [T: "grabakzent unter der verzierung"] # 0x316 (en: 'grave accent below embellishment', google translation) - - "̗": [T: "akuter akzent unter der verzierung"] # 0x317 (en: 'acute accent below embellishment', google translation) - - "̘": [T: "linke Klammer unter Verzierung"] # 0x318 (en: 'left tack below embellishment', google translation) - - "̙": [T: "rechte Klammer unter Verzierung"] # 0x319 (en: 'right tack below embellishment', google translation) + - "̖": [T: "gravisakzent unter der verzierung"] # 0x316 (en: 'grave accent below embellishment', google translation) + - "̗": [T: "akutakzent unter der verzierung"] # 0x317 (en: 'acute accent below embellishment', google translation) + - "̘": [T: "linke klammer unter verzierung"] # 0x318 (en: 'left tack below embellishment', google translation) + - "̙": [T: "rechte klammer unter verzierung"] # 0x319 (en: 'right tack below embellishment', google translation) - "̚": [T: "linker winkel über verzierung"] # 0x31a (en: 'left angle above embellishment', google translation) - "̛": [T: "hornverzierung"] # 0x31b (en: 'horn embellishment', google translation) - "̜": [T: "halber ring links unter der verzierung"] # 0x31c (en: 'left half ring below embellishment', google translation) - - "̝": [T: "aufwärtsklammer unter Verzierung"] # 0x31d (en: 'up tack below embellishment', google translation) + - "̝": [T: "aufwärtsklammer unter verzierung"] # 0x31d (en: 'up tack below embellishment', google translation) - "̞": [T: "abwärtsklammer unter der verzierung"] # 0x31e (en: 'down tack below embellishment', google translation) - - "̟": [T: "plus unterschreiben unten verschönern"] # 0x31f (en: 'plus sign below embellishment', google translation) - - "̠": [T: "minus zeichen unten verzierung"] # 0x320 (en: 'minus sign below embellishment', google translation) + - "̟": [T: "pluszeichen unter der verzierung"] # 0x31f (en: 'plus sign below embellishment', google translation) + - "̠": [T: "minuszeichen unter der verzierung"] # 0x320 (en: 'minus sign below embellishment', google translation) - "̡": [T: "palatalisierter haken unter der verzierung"] # 0x321 (en: 'palatalized hook below embellishment', google translation) - - "̢": [T: "retroflex -haken unter der verzierung"] # 0x322 (en: 'retroflex hook below embellishment', google translation) - - "̣": [T: "dot below embellishment"] # 0x323 (google: 'punkt unter der verzierung') - - "̤": [T: "double dot below embellishment"] # 0x324 (en: 'diaeresis below embellishment', google: 'diaerese unter der verzierung') + - "̢": [T: "retroflex-haken unter der verzierung"] # 0x322 (en: 'retroflex hook below embellishment', google translation) + - "̣": [T: "punkt unter der verzierung"] # 0x323 (google: 'punkt unter der verzierung') + - "̤": [T: "zwei punkte unter der verzierung"] # 0x324 (en: 'diaeresis below embellishment', google: 'diaerese unter der verzierung') - "̥": [T: "ring unter der verzierung"] # 0x325 (en: 'ring below embellishment', google translation) - "̦": [T: "komma unter der verzierung"] # 0x326 (en: 'comma below embellishment', google translation) - - "̧": [T: "cedilla embellishment"] # 0x327 (google: 'cedilla -verzierung') - - "̨": [T: "ogonek -verzierung"] # 0x328 (en: 'ogonek embellishment', google translation) + - "̧": [T: "cedillaverzierung"] # 0x327 (google: 'cedilla -verzierung') + - "̨": [T: "ogonek-verzierung"] # 0x328 (en: 'ogonek embellishment', google translation) - "̩": [T: "vertikale linie unter der verzierung"] # 0x329 (en: 'vertical line below embellishment', google translation) - "̪": [T: "brücke unterhalb der verzierung"] # 0x32a (en: 'bridge below embellishment', google translation) - "̫": [T: "umgekehrter doppelbogen unter der verzierung"] # 0x32b (en: 'inverted double arch below embellishment', google translation) - "̬": [T: "caron unter der verzierung"] # 0x32c (en: 'caron below embellishment', google translation) - - "̭": [T: "circumflex -akzent unter der verzierung"] # 0x32d (en: 'circumflex accent below embellishment', google translation) - - "̮": [T: "combining breve below"] # 0x32e (en: 'breve below embellishment', google: 'breve unter der verzierung') - - "̯": [T: "umgekehrte breve unterhalb der verzierung"] # 0x32f (en: 'inverted breve below embellishment', google translation) - - "̰": [T: "tilde below embellishment"] # 0x330 (google: 'tilde unter der verzierung') - - "̱": [T: "macron below embellishment"] # 0x331 (google: 'macron unter der verzierung') - - "̲": [T: "combining low line"] # 0x332 (en: 'low line embellishment', google: 'niedriglinienverzerrung') - - "̳": [T: "doppelte leitung verschönern"] # 0x333 (en: 'double low line embellishment', google translation) - - "̴": [T: "tilde overlay -verzierung"] # 0x334 (en: 'tilde overlay embellishment', google translation) - - "̵": [T: "kurzhub -overlay -verzierung"] # 0x335 (en: 'short stroke overlay embellishment', google translation) - - "̶": [T: "langstreicher -overlay -verzierung"] # 0x336 (en: 'long stroke overlay embellishment', google translation) - - "̷": [T: "kurze solidus -overlay -verzierung"] # 0x337 (en: 'short solidus overlay embellishment', google translation) - - "̸": [T: "forward slash embellishment"] # 0x338 (en: 'long solidus overlay embellishment', google: 'long solidus overlay -verzierung') + - "̭": [T: "zirkumflexakzent unter der verzierung"] # 0x32d (en: 'circumflex accent below embellishment', google translation) + - "̮": [T: "breve unter der verzierung"] # 0x32e (en: 'breve below embellishment', google: 'breve unter der verzierung') + - "̯": [T: "umgekehrtes breve unter der verzierung"] # 0x32f (en: 'inverted breve below embellishment', google translation) + - "̰": [T: "tilde unter der verzierung"] # 0x330 (google: 'tilde unter der verzierung') + - "̱": [T: "makron unter der verzierung"] # 0x331 (google: 'macron unter der verzierung') + - "̲": [T: "unterlinie"] # 0x332 (en: 'low line embellishment', google: 'niedriglinienverzerrung') + - "̳": [T: "doppelte unterlinie"] # 0x333 (en: 'double low line embellishment', google translation) + - "̴": [T: "tilde-überlagerungsverzierung"] # 0x334 (en: 'tilde overlay embellishment', google translation) + - "̵": [T: "kurzstrich-überlagerungsverzierung"] # 0x335 (en: 'short stroke overlay embellishment', google translation) + - "̶": [T: "langstrich-überlagerungsverzierung"] # 0x336 (en: 'long stroke overlay embellishment', google translation) + - "̷": [T: "kurzer solidus-überlagerungsverzierung"] # 0x337 (en: 'short solidus overlay embellishment', google translation) + - "̸": [T: "langer solidus-überlagerungsverzierung"] # 0x338 (en: 'long solidus overlay embellishment', google: 'long solidus overlay -verzierung') - "̹": [T: "halber ring rechts unter der verzierung"] # 0x339 (en: 'right half ring below embellishment', google translation) - "̺": [T: "umgekehrte brücke unter der verzierung"] # 0x33a (en: 'inverted bridge below embellishment', google translation) - - "̻": [T: "quadrat unterhalb der verzierung"] # 0x33b (en: 'square below embellishment', google translation) - - "̼": [T: "möwen unter der verzierung"] # 0x33c (en: 'seagull below embellishment', google translation) + - "̻": [T: "quadrat unter der verzierung"] # 0x33b (en: 'square below embellishment', google translation) + - "̼": [T: "möwe unter der verzierung"] # 0x33c (en: 'seagull below embellishment', google translation) - "̽": [T: "x über verzierung"] # 0x33d (en: 'x above embellishment', google translation) - "̾": [T: "vertikale tilde verzierung"] # 0x33e (en: 'vertical tilde embellishment', google translation) - "̿": [T: "doppelte überlaufverzerrung"] # 0x33f (en: 'double overline embellishment', google translation) diff --git a/tests/Languages/de/shared.rs b/tests/Languages/de/shared.rs index 8b1336c1..2f3512bc 100644 --- a/tests/Languages/de/shared.rs +++ b/tests/Languages/de/shared.rs @@ -21,8 +21,8 @@ fn modified_vars() -> Result<()> { t "; test("de", "SimpleSpeak", expr, - "a gravis akzent; b tilde, c brevis, b combining caron; c gravis akzent; plus r caron plus; x punkt, y Punkt oberhalb; z diaeresis, u dreifacher punkt; v vierfacher punkt; plus x zirkumflex, plus vektor t")?; - return Ok(()); + "a gravis akzent; b tilde, c brevis, b kombinierendes Caron; c gravis akzent; plus r caron plus; x punkt, y Punkt oberhalb; z diaeresis, u dreifacher punkt; v vierfacher punkt; plus x zirkumflex, plus vektor t")?; + Ok(()) } @@ -521,4 +521,4 @@ fn literal_intent_property_with_name() -> Result<()> { return Ok(()); } -*/ \ No newline at end of file +*/ From f7db7447b6f0675ec19c4da46393ced69908786e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 02:35:33 +0200 Subject: [PATCH 5/8] fix translation errors --- Rules/Languages/de/unicode-full.yaml | 138 +++++++++++++-------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index b30e1bb9..da54b2b3 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -19,7 +19,7 @@ else: [T: "Überstrich"] # (en: 'line', MathPlayer: 'macron', google: 'linie') - "²": [T: "Quadrat"] # 0xb2 (en: 'two', MathPlayer: 'zum Quadrat', google: 'zwei') - "³": [T: "Kubik"] # 0xb3 (en: 'three', MathPlayer: 'hoch drei', google: 'drei') - - "´": [T: "Acuteakzent"] # 0xb4 (en: 'acute', MathPlayer: 'acute accent', google: 'akut') + - "´": [T: "Akutakzent"] # 0xb4 (en: 'acute', MathPlayer: 'acute accent', google: 'akut') - "µ": [T: "Mikrozeichen"] # 0xb5 (en: 'micro', MathPlayer: 'micro sign', google: 'mikro') - "¹": [T: "hoch eins"] # 0xb9 (en: 'one', google: 'eins') - "º": [T: "Männliches Ordnungszeichen"] # 0xb9 (en: 'masculine ordinal indicator') @@ -89,7 +89,7 @@ - "˚": [T: "Ring oberhalb"] # 0x2da (en: 'ring above', MathPlayer: 'Ring darüber', google: 'oben läuten') - "˛": [T: "ogonek"] # 0x2db (SRE: 'Ogonek') - "˜": [T: "Tilde"] # 0x2dc (en: 'small tilde') - - "˝": [T: "Doppleakutakzent"] # 0x2dd (en: 'double acute accent', MathPlayer: 'double acute accent', google: 'doppelter akuter akzent') + - "˝": [T: "Doppelakutakzent"] # 0x2dd (en: 'double acute accent', MathPlayer: 'double acute accent', google: 'doppelter akuter akzent') - "˞": [T: "modifikator rhotischer haken"] # 0x2de (en: 'modifier rhotic hook', google translation) - "˟": [T: "modifikator kreuzakzent"] # 0x2df (en: 'modifier cross accent', google translation) - "ˠ": [T: "modifikator kleines gamma"] # 0x2e0 (en: 'modifier small gamma', google translation) @@ -100,35 +100,35 @@ - "˥": [T: "modifikator extra hoher tonbalken"] # 0x2e5 (en: 'modifier extra-high tone bar', google translation) - "˦": [T: "modifikator hoher tonbalken"] # 0x2e6 (en: 'modifier high tone bar', google translation) - "˧": [T: "modifikator mittlerer tonbalken"] # 0x2e7 (en: 'modifier mid tone bar', google translation) - - "˨": [T: "modifikator niedrige tonleiste"] # 0x2e8 (en: 'modifier low tone bar', google translation) - - "˩": [T: "modifikator extra niedrige tonleiste"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) - - "˪": [T: "modifikator yin abgabetonmarke"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) - - "˫": [T: "modifikator yang abgassing tonmarke"] # 0x2eb (en: 'modifier yang departing tone mark', google translation) - - "ˬ": [T: "modifikator -stimmen"] # 0x2ec (en: 'modifier voicing', google translation) - - "˭": [T: "modifikator ungebildet"] # 0x2ed (en: 'modifier unaspirated', google translation) - - "ˮ": [T: "modifikator doppel apostroph"] # 0x2ee (en: 'modifier double apostrophe', google translation) + - "˨": [T: "modifikator niedrige tonbalken"] # 0x2e8 (en: 'modifier low tone bar', google translation) + - "˩": [T: "modifikator extra niedrige tonbalken"] # 0x2e9 (en: 'modifier extra-low tone bar', google translation) + - "˪": [T: "modifikator yin-abgangstonmarke"] # 0x2ea (en: 'modifier yin departing tone mark', google translation) + - "˫": [T: "modifikator yang-abgangstonmarke"] # 0x2eb (en: 'modifier yang departing tone mark', google translation) + - "ˬ": [T: "modifikator stimmgebung"] # 0x2ec (en: 'modifier voicing', google translation) + - "˭": [T: "modifikator nicht-aspiriert"] # 0x2ed (en: 'modifier unaspirated', google translation) + - "ˮ": [T: "modifikator doppelapostroph"] # 0x2ee (en: 'modifier double apostrophe', google translation) - "˯": [T: "modifikator niedrige pfeilspitze nach unten gerichtet"] # 0x2ef (en: 'modifier low down arrowhead', google translation) - "˰": [T: "modifikator niedrige pfeilspitze aufwärts gerichtet"] # 0x2f0 (en: 'modifier low up arrowhead', google translation) - "˱": [T: "modifikator niedrige pfeilspitze nach links gerichtet"] # 0x2f1 (en: 'modifier low left arrowhead', google translation) - "˲": [T: "modifikator niedrige pfeilspitze nach rechts gerichtet"] # 0x2f2 (en: 'modifier low right arrowhead', google translation) - "˳": [T: "modifikator niedriger ring"] # 0x2f3 (en: 'modifier low ring', google translation) - - "˴": [T: "modifikator mittlerer grabakzent"] # 0x2f4 (en: 'modifier middle grave accent', google translation) - - "˵": [T: "modifikator mittlerer doppelt grabakzent"] # 0x2f5 (en: 'modifier middle double grave accent', google translation) - - "˶": [T: "modifikator mit mittlerem doppelt akutem akzent"] # 0x2f6 (en: 'modifier middle double acute accent', google translation) + - "˴": [T: "modifikator mittlerer gravisakzent"] # 0x2f4 (en: 'modifier middle grave accent', google translation) + - "˵": [T: "modifikator mittlerer doppelter gravisakzent"] # 0x2f5 (en: 'modifier middle double grave accent', google translation) + - "˶": [T: "modifikator mittlerer doppelter akutakzent"] # 0x2f6 (en: 'modifier middle double acute accent', google translation) - "˷": [T: "modifikator niedrige tilde"] # 0x2f7 (en: 'modifier low tilde', google translation) - "˸": [T: "modifikator hoch gestellter Doppelpunkt"] # 0x2f8 (en: 'modifier raised colon', google translation) - - "˹": [T: "der modifikator beginnt mit hohem ton"] # 0x2f9 (en: 'modifier begin high tone', google translation) + - "˹": [T: "modifikator beginn hoher ton"] # 0x2f9 (en: 'modifier begin high tone', google translation) - "˺": [T: "modifikator endet mit hohem ton"] # 0x2fa (en: 'modifier end high tone', google translation) - - "˻": [T: "der modifikator beginnt niedrig"] # 0x2fb (en: 'modifier begin low tone', google translation) - - "˼": [T: "modifikator ende niedriger ton"] # 0x2fc (en: 'modifier end low tone', google translation) + - "˻": [T: "modifikator beginn tiefer ton"] # 0x2fb (en: 'modifier begin low tone', google translation) + - "˼": [T: "modifikator ende tiefer ton"] # 0x2fc (en: 'modifier end low tone', google translation) - "˽": [T: "modifikatorregal"] # 0x2fd (en: 'modifier shelf', google translation) - "˾": [T: "modifikator offenes regal"] # 0x2fe (en: 'modifier open shelf', google translation) - "˿": [T: "modifikator niedriger links pfeil"] # 0x2ff (en: 'modifier low left arrow', google translation) - - "̀": [T: "Akzent auf dem Grave"] # 0x300 (en: 'grave accent embellishment', google: 'grabakzentverzierung') - - "́": [T: "Akzentverzierung"] # 0x301 (en: 'acute accent embellishment', google: 'akute akzentverzierung') + - "̀": [T: "gravisakzentverzierung"] # 0x300 (en: 'grave accent embellishment', google: 'grabakzentverzierung') + - "́": [T: "akutakzentverzierung"] # 0x301 (en: 'acute accent embellishment', google: 'akute akzentverzierung') - "̂": [T: "Hutverzierung"] # 0x302 (en: 'circumflex accent embellishment', google: 'zirma akzentverzierung') - "̃": [T: "tildeverzierung"] # 0x303 (google: 'tilde verzierung') - - "̄": [T: "Macronkombination"] # 0x304 (en: 'macron embellishment', google: 'makron -verzierung') + - "̄": [T: "makronverzierung"] # 0x304 (en: 'macron embellishment', google: 'makron -verzierung') - "̅": [T: "Überstreifenverzierung"] # 0x305 (google: 'überbärerverzierung') - "̆": [T: "kombinierendes Breve"] # 0x306 (en: 'breve embellishment', google: 'breve -verzierung') - "̇": [T: "Punkt über Verzierung"] # 0x307 (google: 'punkt über verzierung') @@ -187,9 +187,9 @@ - "̼": [T: "möwe unter der verzierung"] # 0x33c (en: 'seagull below embellishment', google translation) - "̽": [T: "x über verzierung"] # 0x33d (en: 'x above embellishment', google translation) - "̾": [T: "vertikale tilde verzierung"] # 0x33e (en: 'vertical tilde embellishment', google translation) - - "̿": [T: "doppelte überlaufverzerrung"] # 0x33f (en: 'double overline embellishment', google translation) - - "̀": [T: "grabtonmarke verzierung"] # 0x340 (en: 'grave tone mark embellishment', google translation) - - "́": [T: "akute tonmarkierungsverzerrung"] # 0x341 (en: 'acute tone mark embellishment', google translation) + - "̿": [T: "doppelte überstrichverzierung"] # 0x33f (en: 'double overline embellishment', google translation) + - "̀": [T: "gravistonmarkenverzierung"] # 0x340 (en: 'grave tone mark embellishment', google translation) + - "́": [T: "akute tonmarkenverzierung"] # 0x341 (en: 'acute tone mark embellishment', google translation) - "͆": [T: "brücke oben"] # 0x346 (en: 'bridge above') - "ΪΫϏ": # 0x3aa, 0x3ab, 0x3cf @@ -217,12 +217,12 @@ - "ύ": [T: "upsilon mit tonos"] # 0x3cd (en: 'upsilon with tonos', google translation) - "ώ": [T: "omega mit tonos"] # 0x3ce (en: 'omega with tonos', google translation) - "ϐ": [T: "beta"] # 0x3d0 (MathPlayer: 'greek beta') - - "ϑ": [T: "variant theta"] # 0x3d1 (en: 'theta', google: 'theta') - - "ϒ": [T: "variant upsilon with hook"] # 0x3d2 (en: 'upsilon with hook', google: 'upsilon mit haken') - - "ϓ": [T: "upsilon mit akuter und haken"] # 0x3d3 (en: 'upsilon with acute and hook', google translation) - - "ϔ": [T: "upsilon mit diaerse und haken"] # 0x3d4 (en: 'upsilon with diaeresis and hook', google translation) - - "ϕ": [T: "straight phi"] # 0x3d5 (en: 'phi', google: 'phi') - - "ϖ": [T: "variant pi"] # 0x3d6 (en: 'pi', google: 'pi') + - "ϑ": [T: "Variante Theta"] # 0x3d1 (en: 'theta', google: 'theta') + - "ϒ": [T: "Variante Upsilon mit Haken"] # 0x3d2 (en: 'upsilon with hook', google: 'upsilon mit haken') + - "ϓ": [T: "Upsilon mit Akutakzent und Haken"] # 0x3d3 (en: 'upsilon with acute and hook', google translation) + - "ϔ": [T: "Upsilon mit Diaeresis und Haken"] # 0x3d4 (en: 'upsilon with diaeresis and hook', google translation) + - "ϕ": [T: "gerades Phi"] # 0x3d5 (en: 'phi', google: 'phi') + - "ϖ": [T: "Variante Pi"] # 0x3d6 (en: 'pi', google: 'pi') - "ϗ": [T: "kai"] # 0x3d7 (MathPlayer: 'variant kai') - "Ϙ": [T: "großes archaisches koppa"] # 0x3d8 (en: 'cap archaic koppa') - "ϙ": [T: "archaisches koppa"] # 0x3d9 (en: 'archaic koppa') @@ -255,7 +255,7 @@ - "ж": [T: "zhe"] # 0x436 - "з": [T: "ze"] # 0x437 - "и": [T: "i"] # 0x438 (google: 'и') - - "й": [T: "short i"] # 0x439 (google: 'kurz ich') + - "й": [T: "kurzes i"] # 0x439 (google: 'kurz ich') - "к": [T: "ka"] # 0x43a - "л": [T: "el"] # 0x43b - "м": [T: "em"] # 0x43c @@ -272,9 +272,9 @@ - "ч": [T: "che"] # 0x447 - "ш": [T: "sha"] # 0x448 - "щ": [T: "shcha"] # 0x449 - - "ъ": [T: "hard sign"] # 0x44a (google: 'hartes zeichen') + - "ъ": [T: "hartes Zeichen"] # 0x44a (google: 'hartes zeichen') - "ы": [T: "yeru"] # 0x44b - - "ь": [T: "soft sign"] # 0x44c (google: 'weiches zeichen') + - "ь": [T: "weiches Zeichen"] # 0x44c (google: 'weiches zeichen') - "э": [T: "e"] # 0x44d (google: 'э') - "ю": [T: "yu"] # 0x44e - "я": [T: "ya"] # 0x44f @@ -282,10 +282,10 @@ - "؇": [T: "arabisch-indische vierte wurzel"] # 0x607 (en: 'Arabic-Indic fourth root') - "؈": [T: "arabischer strahl"] # 0x608 (en: 'Arabic ray') - "‐": [T: "Bindestrich"] # 0x2010 (en: 'hyphen', MathPlayer: 'minus', google: 'bindestrich') - - "‑": [T: "Nicht brechender Bindestrich"] # 0x2011 (en: 'hyphen', google: 'bindestrich') - - "‒": [T: "Abbildung Bindestrich"] # 0x2012 (en: 'figure dash', google: 'figur dash') - - "–": [T: "en dash"] # 0x2013 (SRE: 'En Dash') - - "—": [T: "em dash"] # 0x2014 (SRE: 'EM Dash') + - "‑": [T: "nicht-trennender Bindestrich"] # 0x2011 (en: 'hyphen', google: 'bindestrich') + - "‒": [T: "Figurenstrich"] # 0x2012 (en: 'figure dash', google: 'figur dash') + - "–": [T: "Halbgeviertstrich"] # 0x2013 (SRE: 'En Dash') + - "—": [T: "Geviertstrich"] # 0x2014 (SRE: 'EM Dash') - "―": [T: "Horizontale Linie"] # 0x2015 (en: 'horizontal bar', MathPlayer: 'horizontal bar', google: 'horizontale linie') - "‖": [T: "Doppelte vertikale Linie"] # 0x2016 (en: 'double vertical line', MathPlayer: 'double vertical bar', google: 'doppelte vertikale linie') - "†": [T: "Dolch"] # 0x2020 (en: 'dagger', MathPlayer: 'dagger', google: 'dolch') @@ -317,9 +317,9 @@ - "′": [T: "Strich"] # 0x2032 (en: 'prime', MathPlayer: 'strich', google: 'prime') - "″": [T: "zwei Striche"] # 0x2033 (en: 'double prime', MathPlayer: 'zwei-strich', google: 'double prime') - "‴": [T: "drei Striche"] # 0x2034 (en: 'triple prime', MathPlayer: 'drei-strich', google: 'triple prime') - - "‵": [T: "strich invertiert"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') - - "‶": [T: "zwei Striche invertiert"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') - - "‷": [T: "drei Striche invertiert"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') + - "‵": [T: "umgekehrter Strich"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') + - "‶": [T: "zwei umgekehrte Striche"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') + - "‷": [T: "drei umgekehrte Striche"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') - "‸": [T: "Caret"] # 0x2038 (en: 'to the', google: 'zum') - "‹": [T: "einfaches linkes Anführungszeichen"] # 0x2039 (en: 'single left pointing angle quote mark', MathPlayer: 'single left pointing angle quote mark', google: 'single linke zitat angle -zitat marke') - "›": [T: "einfaches rechtes Anführungszeichen"] # 0x203a (en: 'single right pointing angle quote mark', MathPlayer: 'single right pointing angle quote mark', google: 'single rechts zeigewinkel zitatmarke') @@ -337,9 +337,9 @@ - "⁒": [T: "kommerzielles minuszeichen"] # 0x2052 (en: 'commercial minus sign') - "⁗": [T: "vier Striche"] # 0x2057 (en: 'quadruple prime', MathPlayer: 'quadruple prime', google: 'vierfache prime') - "⁠": [T: ""] # 0x2060 - - "‵": [T: "strich invertiert"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') - - "‶": [T: "zwei Striche invertiert"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') - - "‷": [T: "drei Striche invertiert"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') + - "‵": [T: "umgekehrter Strich"] # 0x2035 (en: 'reversed prime', MathPlayer: 'reversed prime', google: 'umgekehrt prime') + - "‶": [T: "zwei umgekehrte Striche"] # 0x2036 (en: 'reversed double prime', MathPlayer: 'reversed double prime', google: 'umgekehrt doppelte prime') + - "‷": [T: "drei umgekehrte Striche"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime umgekehrt') - "⁰": [T: "zur nullten Potenz"] # 0x2070 (en: 'to the zeroth power', google translation) - "ⁱ": [T: "zur i-ten Potenz"] # 0x2071 (en: 'to the ith power', google: 'zur eihth -macht') - "⁴": [T: "zur vierten Potenz"] # 0x2074 (en: 'to the fourth power', google translation) @@ -354,17 +354,17 @@ - "⁽": [T: "Hochgestellte linke Klammer"] # 0x207d (en: 'superscript left parenthesis', google: 'superscript links klammern') - "⁾": [T: "Hochgestellte rechte Klammer"] # 0x207e (en: 'superscript right parenthesis', google: 'superscript right parenthesisthese') - "ⁿ": [T: "hochgestelltes n"] # 0x207f (en: 'to the ennth power', google: 'zur ahnten kraft') - - "₀": [T: "unter null"] # 0x2080 (en: 'sub zero', google translation) - - "₁": [T: "sub eins"] # 0x2081 (en: 'sub one', google translation) - - "₂": [T: "sub zwei"] # 0x2082 (en: 'sub two', google translation) - - "₃": [T: "unter drei"] # 0x2083 (en: 'sub three', google translation) - - "₄": [T: "unter vier"] # 0x2084 (en: 'sub four', google translation) - - "₅": [T: "sub fünf"] # 0x2085 (en: 'sub five', google translation) - - "₆": [T: "sub sechs"] # 0x2086 (en: 'sub six', google translation) - - "₇": [T: "sub sieben"] # 0x2087 (en: 'sub seven', google translation) - - "₈": [T: "sub acht"] # 0x2088 (en: 'sub eight', google translation) - - "₉": [T: "sub neun"] # 0x2089 (google translation) - - "₊": [T: "Index Pluszeichen"] # 0x208a (en: 'subscript plus sign', google: 'index plus -zeichen') + - "₀": [T: "tiefgestellte null"] # 0x2080 (en: 'sub zero', google translation) + - "₁": [T: "tiefgestellte eins"] # 0x2081 (en: 'sub one', google translation) + - "₂": [T: "tiefgestellte zwei"] # 0x2082 (en: 'sub two', google translation) + - "₃": [T: "tiefgestellte drei"] # 0x2083 (en: 'sub three', google translation) + - "₄": [T: "tiefgestellte vier"] # 0x2084 (en: 'sub four', google translation) + - "₅": [T: "tiefgestellte fünf"] # 0x2085 (en: 'sub five', google translation) + - "₆": [T: "tiefgestellte sechs"] # 0x2086 (en: 'sub six', google translation) + - "₇": [T: "tiefgestellte sieben"] # 0x2087 (en: 'sub seven', google translation) + - "₈": [T: "tiefgestellte acht"] # 0x2088 (en: 'sub eight', google translation) + - "₉": [T: "tiefgestellte neun"] # 0x2089 (google translation) + - "₊": [T: "Tiefgestelltes Pluszeichen"] # 0x208a (en: 'subscript plus sign', google: 'index plus -zeichen') - "₋": [T: "Tiefgestelltes Minuszeichen"] # 0x208b (en: 'subscript minus sign', google: 'index minuszeichen') - "₌": [T: "Tiefgestelltes Gleichheitszeichen"] # 0x208c (en: 'subscript equals sign', google: 'index gleicher bestandteil des zeichens') - "₍": [T: "Tiefgestellte linke Klammer"] # 0x208d (en: 'subscript left parenthesis', google: 'untergangsklammern von klammern') @@ -382,22 +382,22 @@ - "ₛ": [T: "tiefgestelltes s"] # 0x209b (en: 'sub S', google: 'sub s') - "ₜ": [T: "tiefgestelltes t"] # 0x209c (en: 'sub T', google: 'sub t') - "₠": [T: "europäische Währungseinheiten"] # 0x20a0 (en: 'european currenty units', google translation) - - "₡": [T: "colons"] # 0x20a1 (google: 'kolons') + - "₡": [T: "Colón"] # 0x20a1 (google: 'kolons') - "₢": [T: "cruzeiro"] # 0x20a2 - "₣": [T: "franc"] # 0x20a3 - "₤": [T: "lira"] # 0x20a4 - "₥": [T: "mills"] # 0x20a5 (google: 'mühlen') - "₦": [T: "naira"] # 0x20a6 - "₧": [T: "peseta"] # 0x20a7 - - "₨": [T: "rupees"] # 0x20a8 (google: 'rupien') + - "₨": [T: "Rupien"] # 0x20a8 (google: 'rupien') - "₩": [T: "won"] # 0x20a9 (google: 'gewonnen') - - "₪": [T: "new sheqels"] # 0x20aa (google: 'neue sheqels') + - "₪": [T: "neue Schekel"] # 0x20aa (google: 'neue sheqels') - "₫": [T: "dong"] # 0x20ab - "€": [T: "euros"] # 0x20ac (google: 'euro') - "₭": [T: "kip"] # 0x20ad (google: 'pennen') - "₮": [T: "tugrik"] # 0x20ae - "₯": [T: "drachma"] # 0x20af (google: 'drachme') - - "₰": [T: "german pennies"] # 0x20b0 (google: 'deutsche pennys') + - "₰": [T: "Deutscher Pfennig"] # 0x20b0 (google: 'deutsche pennys') - "₱": [T: "pesos"] # 0x20b1 - "₲": [T: "guaranis"] # 0x20b2 - "₳": [T: "australs"] # 0x20b3 (google: 'österrale') @@ -424,14 +424,14 @@ - "⃝": [T: "umschließender Kreis als Verzierung"] # 0x20dd (en: 'enclosing circle embellishment', google translation) - "⃞": [T: "umschließendes Quadrat als Verzierung"] # 0x20de (en: 'enclosing square embellishment', google translation) - "⃟": [T: "umschließender Diamant als Verzierung"] # 0x20df (en: 'enclosing diamond embellishment', google translation) - - "⃠": [T: "schließen sie den kreis -rückstand verschönern"] # 0x20e0 (en: 'enclosing circle backslash embellishment', google translation) - - "⃡": [T: "left right arrow embellishment"] # 0x20e1 (en: 'left right arrow above embellishment', google: 'links rechts pfeil über verzierung') + - "⃠": [T: "einschließender Kreis mit Schrägstrich als Verzierung"] # 0x20e0 (en: 'enclosing circle backslash embellishment', google translation) + - "⃡": [T: "Pfeil links-rechts über Verzierung"] # 0x20e1 (en: 'left right arrow above embellishment', google: 'links rechts pfeil über verzierung') - "⃢": [T: "einschließende bildschirmverzierung"] # 0x20e2 (en: 'enclosing screen embellishment', google translation) - "⃣": [T: "Umschließende Tastenkappenverzierung"] # 0x20e3 (en: 'enclosing keycap embellishment', google translation) - "⃤": [T: "umschließende, nach oben zeigende Dreiecksverzierung"] # 0x20e4 (en: 'enclosing upward pointing triangle embellishment', google translation) - "⃥": [T: "Umgekehrte Solidus-Überlagerung als Verzierung"] # 0x20e5 (en: 'reverse solidus overlay embellishment', google translation) - "⃦": [T: "Doppelte vertikale Strichverzierung"] # 0x20e6 (en: 'double verticle stroke embellishment', google translation) - - "⃧": [T: "rentensymbol verzierung"] # 0x20e7 (en: 'Verzierung mit Annuitätensymbol', google translation) + - "⃧": [T: "Annuitätensymbol-Verzierung"] # 0x20e7 (en: 'Verzierung mit Annuitätensymbol', google translation) - "⃨": [T: "Dreifach-Unterpunkt"] # 0x20e8 (en: 'triple underdot', google translation) - "⃩": [T: "breite brücke über verzierung"] # 0x20e9 (en: 'wide bridge above embellishment', google translation) - "⃪": [T: "Verzierung mit nach links zeigendem Pfeil"] # 0x20ea (en: 'leftwards arrow overlay embellishment', google translation) @@ -444,12 +444,12 @@ - "℄": [T: "mittelliniensymbol"] # 0x2104 (en: 'center line symbol', google translation) - "℅": [T: "im Auftrag von"] # 0x2105 (google: 'pflege von') - "℆": [T: "cada una"] # 0x2106 (google translation) - - "ℇ": [T: "euler constant"] # 0x2107 (en: 'euler's constant', google: 'eulers konstante') + - "ℇ": [T: "Euler-Konstante"] # 0x2107 (en: 'euler's constant', google: 'eulers konstante') - "℈": [T: "skrupel"] # 0x2108 (en: 'scruples', google translation) - - "℉": [T: "degrees fahrenheit"] # 0x2109 (google: 'grad fahrenheit') - - "ℊ": [T: "script g"] # 0x210a (google: 'skript g') + - "℉": [T: "Grad Fahrenheit"] # 0x2109 (google: 'grad fahrenheit') + - "ℊ": [T: "Skript G"] # 0x210a (google: 'skript g') - "ℌℑℨℭ": # 0x210c, 0x2111, 0x2128, 0x212d - - T: "script g" # (en: 'fraktur', google: 'fraktur') + - T: "Fraktur" # (en: 'fraktur', google: 'fraktur') - spell: "translate('.', 'ℌℑℨℭ', 'HIZC')" - "ℍℙℾℿ": # 0x210d, 0x2119, 0x213e, 0x213f @@ -466,7 +466,7 @@ else: [T: "Planck-Konstante über zwei Pi"] # (en: 'reduced planck constant', MathPlayer: 'h bar', google: 'reduzierte planckkonstante') - "ℐℒ℘ℬℰℱℳ": # 0x2110, 0x2112, 0x2118, 0x2130, 0x2131, 0x2133 - - T: "Planck-Konstante über zwei Pi" # (en: 'script', MathPlayer: 'h bar', google: 'skript') + - T: "Skript" # (en: 'script', MathPlayer: 'h bar', google: 'skript') - spell: "translate('.', 'ℐℒ℘ℬℰℱℳ', 'ILPBEFM')" - "ℓ": [T: "Schreibschrift l"] # 0x2113 (en: 'script l', MathPlayer: 'script l', google: 'skript l') @@ -475,10 +475,10 @@ - "℥": [T: "Unze-Zeichen"] # 0x2125 (en: 'ounces', MathPlayer: 'ounce sign', google: 'unzen') - "Ω": [T: "Ohm-Zeichen"] # 0x2126 (en: 'ohms', MathPlayer: 'ohm sign', google: 'ohm') - "℧": [T: "Umgekehrtes Ohm-Zeichen"] # 0x2127 (en: 'mhos', MathPlayer: 'inverted ohm', google: 'mhos') - - "℩": [T: "turned iota"] # 0x2129 (google: 'drehte iota') + - "℩": [T: "gedrehtes Iota"] # 0x2129 (google: 'drehte iota') - "K": [T: "Kelvin-Zeichen"] # 0x212a (en: 'kelvin', MathPlayer: 'degrees kelvin', google: 'kelvin') - "Å": [T: "Angstrom-Zeichen"] # 0x212b (en: 'angstroms', MathPlayer: 'angstroms', google: 'angstrome') - - "ℯ": [T: "script e"] # 0x212f (google: 'skript e') + - "ℯ": [T: "Skript E"] # 0x212f (google: 'skript e') # coalesced some chars that use cap letters - "Ⅎ℺⅁⅂⅃⅄": # 0x2132, 0x213a, 0x2141, 0x2142, 0x2143, 0x2144 @@ -492,7 +492,7 @@ else: [T: "script e"] # (en: 'turned sans-serif', google: 'drehte ohne serif') - spell: "translate('.', 'Ⅎ℺⅁⅂⅃⅄', 'FQGLLY')" - - "ℴ": [T: "script o"] # 0x2134 (google: 'skript o') + - "ℴ": [T: "Skript O"] # 0x2134 (google: 'skript o') - "ℵ": [T: "Alef-Symbol"] # 0x2135 (en: 'first transfinite cardinal', MathPlayer: 'alef', google: 'erster transfinite kardinal') - "ℶ": [T: "Bet-Symbol"] # 0x2136 (en: 'second transfinite cardinal', MathPlayer: 'bet', google: 'zweiter transfinite kardinal') - "ℷ": [T: "Gimel-Symbol"] # 0x2137 (en: 'third transfinite cardinal', MathPlayer: 'gimel', google: 'dritter transfinite kardinal') @@ -1742,17 +1742,17 @@ - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "Aufrecht" # (en: 'perpendicular to', MathPlayer: 'perpendicular', google: 'senkrecht zu') + - T: "rechtwinklig" # (en: 'perpendicular to', MathPlayer: 'perpendicular', google: 'senkrecht zu') - "⟃": # 0x27c3 - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "Subset öffnen" # (en: 'an open subset of', MathPlayer: 'open subset', google: 'eine offene teilmenge von') + - T: "offene Teilmenge von" # (en: 'an open subset of', MathPlayer: 'open subset', google: 'eine offene teilmenge von') - "⟄": # 0x27c4 - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "Superset öffnen" # (en: 'an open superset of', MathPlayer: 'open superset', google: 'ein offenes superet von') + - T: "offene Obermenge von" # (en: 'an open superset of', MathPlayer: 'open superset', google: 'ein offenes superet von') - "⟅": [T: "Linker S-förmiger Taschenbegrenzer"] # 0x27c5 (en: 'left s-shaped bag delimiter', MathPlayer: 'left s-shaped bag delimiter', google: 'links s-förmiger tasche gremiter') - "⟆": [T: "rechter S-förmiger Taschenbegrenzer"] # 0x27c6 (en: 'right s-shaped bag delimiter', MathPlayer: 'right s-shaped bag delimiter', google: 'rechte s-förmige tasche grenzwerbung') - "⟇": [T: "Oder mit innerem Punkt"] # 0x27c7 (en: 'or with dot inside', MathPlayer: 'or with dot inside', google: 'oder mit punkt im inneren') From 5470960a90f537173a64143073cb952e417365ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 02:47:05 +0200 Subject: [PATCH 6/8] "Mitglied" ist not a proper set operator in German --- Rules/Languages/de/unicode-full.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index da54b2b3..cb0566c7 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -712,13 +712,13 @@ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' then: [T: "in"] # (google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "Mitglied von"] # (en: 'member of', google translation) + then: [T: "Element von"] # (en: 'member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "Element von"] # (en: 'element of', google translation) - else: [T: "Element von"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') else_test: - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "ist ein Mitglied von"] # (en: 'is a member of', google translation) + then: [T: "ist ein Element von"] # (en: 'is a member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "ist ein Element von"] # (en: 'is an element of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'In' @@ -736,13 +736,13 @@ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' then: [T: "nicht in"] # (en: 'not in', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "nicht Mitglied von"] # (en: 'not member of', google translation) + then: [T: "kein Element von"] # (en: 'not member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "kein element von"] # (en: 'not element of', google translation) + then: [T: "kein Element von"] # (en: 'not element of', google translation) - else: [T: "nicht Element von"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to') else_test: - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "ist kein Mitglied von"] # (en: 'is not a member of', google translation) + then: [T: "ist kein Element von"] # (en: 'is not a member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "ist kein Element von"] # (en: 'is not an element of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'In' @@ -759,13 +759,13 @@ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' then: [T: "in"] # (google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "Mitglied von"] # (en: 'member of', google translation) + then: [T: "Element von"] # (en: 'member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "Element von"] # (en: 'element of', google translation) - else: [T: "Element von"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to') else_test: - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "ist ein Mitglied von"] # (en: 'is a member of', google translation) + then: [T: "ist ein Element von"] # (en: 'is a member of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'Element' then: [T: "ist ein Element von"] # (en: 'is an element of', google translation) - else_if: $ClearSpeak_SetMemberSymbol = 'In' From ff4d610a0d1fb74e514ded8d22235d4a93c29d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 02:56:51 +0200 Subject: [PATCH 7/8] more fixes --- Rules/Languages/de/unicode-full.yaml | 88 ++++++++++++++-------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index cb0566c7..3cf46395 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -503,24 +503,24 @@ - "⅋": [T: "Ampersand gedreht"] # 0x214b (en: 'turned ampersand', google: 'ampers umgedreht') - "⅌": [T: "Pro Zeichen"] # 0x214c (en: 'per', google: 'pro') - "ⅎ": [T: "Gedreht klein F"] # 0x214e (en: 'turned F', google: 'drehte f') - - "¼": [T: "ein viertel"] # 0x00bc (en: 'one quarter') - - "½": [T: "ein halb"] # 0x00bd (en: 'one half') - - "¾": [T: "drei viertel"] # 0x00be (en: 'three quarters') - - "⅐": [T: "ein siebtel"] # 0x2150 (en: 'one seventh') - - "⅑": [T: "ein neuntel"] # 0x2151 (en: 'one ninth', google: 'ein neunter') - - "⅒": [T: "ein zehntel"] # 0x2152 (en: 'one tenth') - - "⅓": [T: "ein drittel"] # 0x2153 (en: 'one third', MathPlayer: 'vulgar fraction one third') - - "⅔": [T: "zwei drittel"] # 0x2154 (en: 'two thirds', MathPlayer: 'vulgar fraction two thirds') - - "⅕": [T: "ein fünftel"] # 0x2155 (en: 'one fifth', MathPlayer: 'vulgar fraction one fifth') - - "⅖": [T: "zwei fünftel"] # 0x2156 (en: 'two fifths', MathPlayer: 'vulgar fraction two fifths') - - "⅗": [T: "drei fünftel"] # 0x2157 (en: 'three fifths', MathPlayer: 'vulgar fraction three fifths') - - "⅘": [T: "vier fünftel"] # 0x2158 (en: 'four fifths', MathPlayer: 'vulgar fraction four fifths') - - "⅙": [T: "ein sechstel"] # 0x2159 (en: 'one sixth', MathPlayer: 'vulgar fraction one sixth') - - "⅚": [T: "fünf sechstel"] # 0x215a (en: 'five sixths', MathPlayer: 'vulgar fraction five sixths') - - "⅛": [T: "ein achtel"] # 0x215b (en: 'one eighth', MathPlayer: 'vulgar fraction one eighth', google: 'ein ath') - - "⅜": [T: "drei achtel"] # 0x215c (en: 'three eighths', MathPlayer: 'vulgar fraction three eighths', google: 'drei aths') - - "⅝": [T: "fünf achtel"] # 0x215d (en: 'five eighths', MathPlayer: 'vulgar fraction five eighths', google: 'fünf aths') - - "⅞": [T: "sieben achtel"] # 0x215e (en: 'seven eighths', MathPlayer: 'vulgar fraction seven eighths', google: 'sieben aths') + - "¼": [T: "ein Viertel"] # 0x00bc (en: 'one quarter') + - "½": [T: "ein Halb"] # 0x00bd (en: 'one half') + - "¾": [T: "drei Viertel"] # 0x00be (en: 'three quarters') + - "⅐": [T: "ein Siebtel"] # 0x2150 (en: 'one seventh') + - "⅑": [T: "ein Neuntel"] # 0x2151 (en: 'one ninth', google: 'ein neunter') + - "⅒": [T: "ein Zehntel"] # 0x2152 (en: 'one tenth') + - "⅓": [T: "ein Drittel"] # 0x2153 (en: 'one third', MathPlayer: 'vulgar fraction one third') + - "⅔": [T: "zwei Drittel"] # 0x2154 (en: 'two thirds', MathPlayer: 'vulgar fraction two thirds') + - "⅕": [T: "ein Fünftel"] # 0x2155 (en: 'one fifth', MathPlayer: 'vulgar fraction one fifth') + - "⅖": [T: "zwei Fünftel"] # 0x2156 (en: 'two fifths', MathPlayer: 'vulgar fraction two fifths') + - "⅗": [T: "drei Fünftel"] # 0x2157 (en: 'three fifths', MathPlayer: 'vulgar fraction three fifths') + - "⅘": [T: "vier Fünftel"] # 0x2158 (en: 'four fifths', MathPlayer: 'vulgar fraction four fifths') + - "⅙": [T: "ein Sechstel"] # 0x2159 (en: 'one sixth', MathPlayer: 'vulgar fraction one sixth') + - "⅚": [T: "fünf Sechstel"] # 0x215a (en: 'five sixths', MathPlayer: 'vulgar fraction five sixths') + - "⅛": [T: "ein Achtel"] # 0x215b (en: 'one eighth', MathPlayer: 'vulgar fraction one eighth', google: 'ein ath') + - "⅜": [T: "drei Achtel"] # 0x215c (en: 'three eighths', MathPlayer: 'vulgar fraction three eighths', google: 'drei aths') + - "⅝": [T: "fünf Achtel"] # 0x215d (en: 'five eighths', MathPlayer: 'vulgar fraction five eighths', google: 'fünf aths') + - "⅞": [T: "sieben Achtel"] # 0x215e (en: 'seven eighths', MathPlayer: 'vulgar fraction seven eighths', google: 'sieben aths') - "⅟": [T: "Bruchzähler eins"] # 0x215f (en: 'one over', google: 'eins vorbei') - "Ⅰ": [T: "Ⅰ"] # 0x2160 (en: 'I', google translation) - "Ⅱ": [T: "i i"] # 0x2161 (en: 'I I', google translation) @@ -559,7 +559,7 @@ - "↑": [T: "Aufwärtspfeil"] # 0x2191 (en: 'upwards arrow', MathPlayer: 'upwards arrow', google: 'nach oben pfeil') - "→": [T: "Pfeil nach rechts"] # 0x2192 (en: 'rightwards arrow', MathPlayer: 'rightwards arrow', google: 'richtiger pfeil') - "↓": [T: "Pfeil nach unten"] # 0x2193 (en: 'downwards arrow', MathPlayer: 'downwards arrow', google: 'nach unten pfeil') - - "↔": [T: "Linker rechter Pfeil"] # 0x2194 (en: 'left right arrow', MathPlayer: 'left right arrow', google: 'links rechts pfeil') + - "↔": [T: "Pfeil nach links und rechts"] # 0x2194 (en: 'left right arrow', MathPlayer: 'left right arrow', google: 'links rechts pfeil') - "↕": [T: "Pfeil nach oben und unten"] # 0x2195 (en: 'up down arrow', MathPlayer: 'up down arrow', google: 'auf pfeil runter') - "↖": [T: "Nordwestpfeil"] # 0x2196 (en: 'north west arrow', MathPlayer: 'north west arrow', google: 'nordwestpfeil') - "↗": # 0x2197 @@ -595,7 +595,7 @@ - "↫": [T: "Pfeil nach links mit Schleife"] # 0x21ab (en: 'leftwards arrow with loop', MathPlayer: 'leftwards arrow with loop', google: 'linkspfeil mit schleife') - "↬": [T: "Pfeil nach rechts mit Schleife"] # 0x21ac (en: 'rightwards arrow with loop', MathPlayer: 'rightwards arrow with loop', google: 'richtiger pfeil mit schleife') - "↭": [T: "Linker rechter Wellenpfeil"] # 0x21ad (en: 'left right wave arrow', MathPlayer: 'left right wave arrow', google: 'linke rechte wellenpfeil') - - "↮": [T: "Linker rechter Pfeil mit Strich"] # 0x21ae (en: 'left right arrow with stroke', MathPlayer: 'left right arrow with stroke', google: 'links rechts pfeil mit schlaganfall') + - "↮": [T: "Pfeil nach links und rechts durchgesctrichen"] # 0x21ae (en: 'left right arrow with stroke', MathPlayer: 'left right arrow with stroke', google: 'links rechts pfeil mit schlaganfall') - "↯": [T: "Zickzack-Pfeil nach unten"] # 0x21af (en: 'downwards zigzag arrow', MathPlayer: 'downwards zigzag arrow', google: 'nach unten zickzack pfeil') - "↰": [T: "Aufwärtspfeil mit Spitze nach links"] # 0x21b0 (en: 'upwards arrow with tip leftwards', MathPlayer: 'upwards arrow with tip leftwards', google: 'aufwärts mit tipp links nach oben') - "↱": [T: "Aufwärtspfeil mit Spitze nach rechts"] # 0x21b1 (en: 'upwards arrow with tip rightwards', MathPlayer: 'upwards arrow with tip rightwards', google: 'aufwärts mit tipp nach oben nach oben') @@ -648,20 +648,20 @@ - "⇠": [T: "Gestrichelter Pfeil nach links"] # 0x21e0 (en: 'leftwards dashed arrow', MathPlayer: 'leftwards dashed arrow', google: 'links gestrichelten pfeil') - "⇡": [T: "Gestrichelter Pfeil nach oben"] # 0x21e1 (en: 'upwards dashed arrow', MathPlayer: 'upwards dashed arrow', google: 'nach oben gestrichelter pfeil') - "⇢": [T: "Gestrichelter Pfeil nach rechts"] # 0x21e2 (en: 'rightwards dashed arrow', MathPlayer: 'rightwards dashed arrow', google: 'rightwards gestrichelten pfeil') - - "⇣": [T: "Abwärts gestrichelter Pfeil"] # 0x21e3 (en: 'downwards dashed arrow', MathPlayer: 'downwards dashed arrow', google: 'abwärts gestrichelten pfeil') - - "⇤": [T: "Pfeil nach links zur Sockel"] # 0x21e4 (en: 'leftwards arrow to bar', MathPlayer: 'leftwards arrow to bar', google: 'links pfeil in die bar') - - "⇥": [T: "Pfeil nach rechts zur Sockel"] # 0x21e5 (en: 'rightwards arrow to bar', MathPlayer: 'rightwards arrow to bar', google: 'rightwards pfeil in die bar') + - "⇣": [T: "Gestrichelter Pfeil nach unten"] # 0x21e3 (en: 'downwards dashed arrow', MathPlayer: 'downwards dashed arrow', google: 'abwärts gestrichelten pfeil') + - "⇤": [T: "Pfeil nach links zum Sockel"] # 0x21e4 (en: 'leftwards arrow to bar', MathPlayer: 'leftwards arrow to bar', google: 'links pfeil in die bar') + - "⇥": [T: "Pfeil nach rechts zum Sockel"] # 0x21e5 (en: 'rightwards arrow to bar', MathPlayer: 'rightwards arrow to bar', google: 'rightwards pfeil in die bar') - "⇦": [T: "Weißer Pfeil nach links"] # 0x21e6 (en: 'leftwards white arrow', MathPlayer: 'leftwards white arrow', google: 'links weißer pfeil') - - "⇧": [T: "Aufwärts weißer Pfeil"] # 0x21e7 (en: 'upwards white arrow', MathPlayer: 'upwards white arrow', google: 'nach oben weißer pfeil') - - "⇨": [T: "Rechts weißer Pfeil"] # 0x21e8 (en: 'rightwards white arrow', MathPlayer: 'rightwards white arrow', google: 'richtiger weißer pfeil') - - "⇩": [T: "Abwärts weißer Pfeil"] # 0x21e9 (en: 'downwards white arrow', MathPlayer: 'downwards white arrow', google: 'nach unten weißer pfeil') - - "⇪": [T: "Aufwärts weißer Pfeil von der Stange"] # 0x21ea (en: 'upwards white arrow from bar', MathPlayer: 'upwards white arrow from bar', google: 'nach oben weißer pfeil aus der bar') + - "⇧": [T: "Weißer Pfeil nach oben"] # 0x21e7 (en: 'upwards white arrow', MathPlayer: 'upwards white arrow', google: 'nach oben weißer pfeil') + - "⇨": [T: "Weißer Pfeil nach rechts"] # 0x21e8 (en: 'rightwards white arrow', MathPlayer: 'rightwards white arrow', google: 'richtiger weißer pfeil') + - "⇩": [T: "Weißer Pfeil nach unten"] # 0x21e9 (en: 'downwards white arrow', MathPlayer: 'downwards white arrow', google: 'nach unten weißer pfeil') + - "⇪": [T: "Weißer Pfeil nach oben von der Leiste"] # 0x21ea (en: 'upwards white arrow from bar', MathPlayer: 'upwards white arrow from bar', google: 'nach oben weißer pfeil aus der bar') - "⇫": [T: "Aufwärts weißer Pfeil auf Sockel"] # 0x21eb (en: 'upwards white arrow on pedestal', google: 'nach oben weißer pfeil auf sockel') - - "⇬": [T: "Aufwärts weißer Pfeil auf Sockel mit horizontaler Stange"] # 0x21ec (en: 'upwards white arrow on pedestal with horizontal bar', google: 'nach oben weißer pfeil auf sockel mit horizontaler balken') - - "⇭": [T: "Aufwärts weißer Pfeil auf Sockel mit vertikaler Stange"] # 0x21ed (en: 'upwards white arrow on pedestal with vertical bar', google: 'nach oben weißer pfeil auf sockel mit vertikaler balken') + - "⇬": [T: "Aufwärts weißer Pfeil auf Sockel mit horizontaler Leiste"] # 0x21ec (en: 'upwards white arrow on pedestal with horizontal bar', google: 'nach oben weißer pfeil auf sockel mit horizontaler balken') + - "⇭": [T: "Aufwärts weißer Pfeil auf Sockel mit vertikaler Leiste"] # 0x21ed (en: 'upwards white arrow on pedestal with vertical bar', google: 'nach oben weißer pfeil auf sockel mit vertikaler balken') - "⇮": [T: "Aufwärts weißer Doppelpfeil"] # 0x21ee (en: 'upwards white double arrow', google: 'nach oben weißer doppelpfeil') - - "⇯": [T: "Aufwärts weißer doppelter Pfeil auf Sockel"] # 0x21ef (en: 'upwards white double arrow on pedestal', google: 'nach oben weißer doppelpfeil auf sockel') - - "⇰": [T: "Rechts weißer Pfeil von der Wand"] # 0x21f0 (en: 'rightwards white arrow from wall', google: 'richtiger weißer pfeil von der wand') + - "⇯": [T: "Weißer Doppelpfeil nach oben auf Sockel"] # 0x21ef (en: 'upwards white double arrow on pedestal', google: 'nach oben weißer doppelpfeil auf sockel') + - "⇰": [T: "Weißer Pfeil nach rechts von der Wand"] # 0x21f0 (en: 'rightwards white arrow from wall', google: 'richtiger weißer pfeil von der wand') - "⇱": [T: "Nordwestpfeil zur Ecke"] # 0x21f1 (en: 'north west arrow to corner', google: 'nordwestpfeil zur ecke') - "⇲": [T: "Südostpfeil zur Ecke"] # 0x21f2 (en: 'south east arrow to corner', google: 'south east pfeil zur ecke') - "⇳": [T: "Weißer Pfeil nach unten und oben"] # 0x21f3 (en: 'up down white arrow', google: 'runter weißer pfeil') @@ -670,13 +670,13 @@ - "⇶": [T: "Drei nach rechts gerichtete Pfeile"] # 0x21f6 (en: 'three rightwards arrows', google: 'drei rechts pfeile') - "⇷": [T: "Pfeil nach links mit vertikalem Strich"] # 0x21f7 (en: 'leftwards arrow with vertical stroke', google: 'linkspfeil mit vertikalem schlaganfall') - "⇸": [T: "Pfeil nach rechts mit vertikalem Strich"] # 0x21f8 (en: 'rightwards arrow with vertical stroke', google: 'richtiger pfeil mit vertikalem schlaganfall') - - "⇹": [T: "Linker rechter Pfeil mit vertikalem Strich"] # 0x21f9 (en: 'left right arrow with vertical stroke', google: 'links rechts pfeil mit vertikalem schlaganfall') + - "⇹": [T: "Pfeil nach links und rechts mit vertikalem Strich"] # 0x21f9 (en: 'left right arrow with vertical stroke', google: 'links rechts pfeil mit vertikalem schlaganfall') - "⇺": [T: "Pfeil nach links mit doppeltem vertikalem Strich"] # 0x21fa (en: 'leftwards arrow with double vertical stroke', google: 'linkspfeil mit doppelter vertikaler hub') - "⇻": [T: "Pfeil nach rechts mit doppeltem vertikalem Strich"] # 0x21fb (en: 'rightwards arrow with double vertical stroke', google: 'richtiger pfeil mit doppelter vertikaler schlaganfall') - - "⇼": [T: "Linker rechter Pfeil mit doppeltem vertikalem Strich"] # 0x21fc (en: 'left right arrow with double vertical stroke', google: 'links rechts pfeil mit doppelter vertikaler hub') + - "⇼": [T: "Pfeil nach links und rechts mit doppeltem vertikalem Strich"] # 0x21fc (en: 'left right arrow with double vertical stroke', google: 'links rechts pfeil mit doppelter vertikaler hub') - "⇽": [T: "Pfeil nach links mit offenem Kopf"] # 0x21fd (en: 'leftwards open headed arrow', MathPlayer: 'leftwards open headed arrow', google: 'links offene köpfe pfeil') - "⇾": [T: "Pfeil nach rechts mit offenem Kopf"] # 0x21fe (en: 'rightwards open headed arrow', MathPlayer: 'rightwards open headed arrow', google: 'rightwards open headed pfeil') - - "⇿": [T: "Linker rechter Pfeil mit offenem Kopf"] # 0x21ff (en: 'left right open headed arrow', MathPlayer: 'left right open headed arrow', google: 'links rechts geöffneter köpfe') + - "⇿": [T: "Pfeil nach links und rechts mit offenem Kopf"] # 0x21ff (en: 'left right open headed arrow', MathPlayer: 'left right open headed arrow', google: 'links rechts geöffneter köpfe') - "∀": [T: "für alle"] # 0x2200 (en: 'for all') - "∁": # 0x2201 - test: @@ -1035,12 +1035,12 @@ - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "kleiner als oder äquivalent" # (en: 'less than or equivalent to') + - T: "kleiner als oder äquivalent zu" # (en: 'less than or equivalent to') - "≳": # 0x2273 - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "größer als oder äquivalent" # (en: 'greater than or equivalent to') + - T: "größer als oder äquivalent zu" # (en: 'greater than or equivalent to') - "≴": # 0x2274 - test: if: "$Verbosity!='Terse'" @@ -1098,7 +1098,7 @@ - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "kein echte Obermenge von" # (en: 'not a superset of', MathPlayer: 'nicht Obermenge von', google: 'kein superset von') + - T: "keine echte Obermenge von" # (en: 'not a superset of', MathPlayer: 'nicht Obermenge von', google: 'kein superset von') - "⊆": # 0x2286 - test: if: "$Verbosity!='Terse'" @@ -1121,7 +1121,7 @@ - T: "weder Obermenge noch gleich" # (en: 'neither a superset of nor equal to', MathPlayer: 'weder Obermenge von noch gleich', google: 'weder ein superset von noch gleich') - "⊊": [T: "Teilmenge aber nicht gleich"] # 0x228a (en: 'subset of with not equal to', MathPlayer: 'Teilmenge von, aber nicht gleich', google: 'teilmenge von mit nicht gleich') - "⊋": [T: "Obermenge aber nicht gleich"] # 0x228b (en: 'superset of with not equal to', MathPlayer: 'Obermenge von, aber nicht gleich', google: 'superset von mit nicht gleich') - - "⊌": [T: "Mehrfachmenget"] # 0x228c (SRE: 'Multimenge') + - "⊌": [T: "Multimenge"] # 0x228c (SRE: 'Multimenge') - "⊍": [T: "Multimengenmultiplikation"] # 0x228d (en: 'multiset multiplication', MathPlayer: 'multiset multiplication', google: 'multiset -multiplikation') - "⊎": [T: "Multimengenvereinigung"] # 0x228e (SRE: 'Multimengenvereinigung') - "⊏": [T: "quadratisches Bild von"] # 0x228f (en: 'square image of', MathPlayer: 'square image of', google: 'square bild von') @@ -1152,13 +1152,13 @@ then: [T: "ist"] # (en: 'is', google translation) - T: "senkrecht auf" # (en: 'bottom', MathPlayer: 'up tack', google: 'unten') - "⊦": [T: "Behauptung"] # 0x22a6 (en: 'reduces to', MathPlayer: 'assertion', google: 'reduziert zu') - - "⊧": [T: "Model"] # 0x22a7 (en: 'models', MathPlayer: 'models', google: 'modelle') + - "⊧": [T: "Modell"] # 0x22a7 (en: 'models', MathPlayer: 'models', google: 'modelle') - "⊨": # 0x22a8 - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - T: "wahr" # (en: 'true', MathPlayer: 'true') - - "⊩": [T: "erzwingen"] # 0x22a9 (en: 'forces', MathPlayer: 'forces', google: 'kräfte') + - "⊩": [T: "erzwingt"] # 0x22a9 (en: 'forces', MathPlayer: 'forces', google: 'kräfte') - "⊪": [T: "dreifache vertikale Leiste mit rechtem Drehkreuz"] # 0x22aa (en: 'triple vertical bar right turnstile', MathPlayer: 'triple vertical bar right turnstile', google: 'triple vertikale bar rechtsummens') - "⊫": [T: "doppelte vertikale Leiste mit doppeltem rechtem Drehkreuz"] # 0x22ab (en: 'double vertical bar double right turnstile', MathPlayer: 'double vertical bar double right turnstile', google: 'doppelte vertikale balken doppelte rechte kurve') - "⊬": [T: "beweist nicht"] # 0x22ac (en: 'does not prove', MathPlayer: 'does not prove') @@ -1167,7 +1167,7 @@ if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - T: "nicht wahr" # (en: 'not true', MathPlayer: 'not true') - - "⊮": [T: "nicht erzwingen"] # 0x22ae (en: 'does not force', MathPlayer: 'does not force', google: 'zwingt nicht') + - "⊮": [T: "erzwingt nicht"] # 0x22ae (en: 'does not force', MathPlayer: 'does not force', google: 'zwingt nicht') - "⊯": [T: "negierte doppelte vertikale Leiste mit doppeltem rechten Drehkreuz"] # 0x22af (en: 'negated double vertical bar double right turnstile', MathPlayer: 'negated double vertical bar double right turnstile', google: 'negierter doppelter vertikaler balken doppelte rechte kurve') - "⊰": [T: "vorangehend in Relation"] # 0x22b0 (en: 'precedes under relation', MathPlayer: 'precedes under relation', google: 'vorausgegangen in beziehung') - "⊱": [T: "nachfolgend in Relation"] # 0x22b1 (en: 'succeeds under relation', MathPlayer: 'succeeds under relation', google: 'erfolgreich in beziehung') @@ -1310,8 +1310,8 @@ if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - T: "gleich oder nachfolgend" # (en: 'equal to or succeeds', MathPlayer: 'equal to or succeeds', google: 'gleich oder erfolgreich') - - "⋠": [T: "weder vorangehend oder gleich"] # 0x22e0 (en: 'does not precede nor is equal to', MathPlayer: 'does not precede or equal', google: 'geht nicht voraus und ist nicht gleich') - - "⋡": [T: "weder nachfolgend oder gleich"] # 0x22e1 (en: 'does not succeed nor is equal to', MathPlayer: 'does not succeed or equal', google: 'gelingt weder noch ist es gleich') + - "⋠": [T: "weder vorangehend noch gleich"] # 0x22e0 (en: 'does not precede nor is equal to', MathPlayer: 'does not precede or equal', google: 'geht nicht voraus und ist nicht gleich') + - "⋡": [T: "weder nachfolgend noch gleich"] # 0x22e1 (en: 'does not succeed nor is equal to', MathPlayer: 'does not succeed or equal', google: 'gelingt weder noch ist es gleich') - "⋢": [T: "kein quadratisches Bild oder gleich"] # 0x22e2 (en: 'not square image of or equal to', MathPlayer: 'not square image of or equal to', google: 'kein quadratisches bild von oder gleich') - "⋣": [T: "kein quadratisches Original oder gleich"] # 0x22e3 (en: 'not square original of or equal to', MathPlayer: 'not square original of or equal to', google: 'kein quadratisches original von oder gleich') - "⋤": [T: "quadratisches Bild oder nicht gleich"] # 0x22e4 (en: 'square image of or not equal to', MathPlayer: 'square image of or not equal to', google: 'quadratisches bild von oder nicht gleich') @@ -1884,7 +1884,7 @@ - "⥅": [T: "Pfeil nach rechts mit Pluszeichen unten"] # 0x2945 (en: 'rightwards arrow with plus below', MathPlayer: 'rightwards arrow with plus below', google: 'rightwards pfeil mit plus unten') - "⥆": [T: "Pfeil nach links mit Pluszeichen unten"] # 0x2946 (en: 'leftwards arrow with plus below', google: 'links pfeil mit plus unten') - "⥇": [T: "Pfeil nach rechts durch X"] # 0x2947 (en: 'rightwards arrow through x', google: 'richtiger pfeil durch x') - - "⥈": [T: "Linker rechter Pfeil durch kleinen Kreis"] # 0x2948 (en: 'left right arrow through circle', MathPlayer: 'left right arrow through circle', google: 'links rechts pfeil durch den kreis') + - "⥈": [T: "Pfeil nach links und rechts durch kleinen Kreis"] # 0x2948 (en: 'left right arrow through circle', MathPlayer: 'left right arrow through circle', google: 'links rechts pfeil durch den kreis') - "⥉": [T: "Aufwärts zweiköpfiger Pfeil vom kleinen Kreis ausgehend"] # 0x2949 (en: 'upwards two headed arrow from circle', MathPlayer: 'upwards two headed arrow from circle', google: 'auf zwei köpfe pfeil aus dem kreis') - "⥊": [T: "Linker Haken oben mit rechtem Haken unten"] # 0x294a (en: 'left barb up right barb down harpoon', MathPlayer: 'left barb up right barb down harpoon', google: 'links barb oben rechte barb down harpoon') - "⥋": [T: "Linker Haken unten mit rechtem Haken oben"] # 0x294b (en: 'left barb down right barb up harpoon', MathPlayer: 'left barb down right barb up harpoon', google: 'linker barb unten rechte barb auf harpoon') From 6b806d9d73066bfdfe77a27101f2f689bfa236b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Tue, 31 Mar 2026 03:06:23 +0200 Subject: [PATCH 8/8] more fixes --- Rules/Languages/de/unicode-full.yaml | 56 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml index 3cf46395..6c9b5e32 100644 --- a/Rules/Languages/de/unicode-full.yaml +++ b/Rules/Languages/de/unicode-full.yaml @@ -686,8 +686,8 @@ - "∂": # 0x2202 - test: if: "$Verbosity='Terse'" - then: [T: "teilweise"] # (en: 'partial', google translation) - else: [T: "rundes d"] # (en: 'partial derivative', google: 'partielle ableitung') + then: [T: "partiell"] # (en: 'partial', google translation) + else: [T: "partielle Ableitung"] # (en: 'partial derivative', google: 'partielle ableitung') - "∃": [T: "es gibt"] # 0x2203 (en: 'there exists') - "∄": [T: "es gibt nicht"] # 0x2204 (en: 'there does not exist') - "∅": [T: "leere Menge"] # 0x2205 (en: 'empty set') @@ -695,12 +695,12 @@ - test: if: "$Verbosity!='Terse'" then: [T: "die"] # (en: 'the', google translation) - - T: "Differenz" # (en: 'laplacian of', MathPlayer: 'increment', google: 'laplace von') + - T: "Laplace-Operator von" # (en: 'laplacian of', MathPlayer: 'increment', google: 'laplace von') - "∇": # 0x2207 - test: if: "$Verbosity!='Terse'" then: [T: "die"] # (en: 'the', google translation) - - T: "gradient (nabla)" # (en: 'gradient of', google: 'gradient von') + - T: "Nabla" # (en: 'gradient of', google: 'gradient von') - "∈": # 0x2208 - test: if: "$SpeechStyle != 'ClearSpeak'" @@ -845,7 +845,7 @@ - test: if: "$Verbosity!='Terse'" then: [T: "ist"] # (en: 'is', google translation) - - T: "geometrische Proportion" # (en: 'geometrically proportional to') + - T: "geometrisch proportional" # (en: 'geometrically proportional to') - "∻": # 0x223b - test: if: "$Verbosity!='Terse'" @@ -1406,15 +1406,15 @@ - "⌭": [T: "Zylindrizität"] # 0x232d (google: 'zylinderheit') - "⌮": [T: "Runsumpfeil"] # 0x232e (google: 'rund um das profil') - "⌯": [T: "symmetrie"] # 0x232f (en: 'symmetry', google translation) - - "⌰": [T: "totaler auslauf"] # 0x2330 (en: 'total runout', google translation) - - "⌱": [T: "dimension ursprung"] # 0x2331 (en: 'dimension origin', google translation) - - "⌲": [T: "konische verjüngung"] # 0x2332 (en: 'conical taper', google translation) - - "⌳": [T: "neigung"] # 0x2333 (en: 'slope', google translation) - - "⌴": [T: "gegenbore"] # 0x2334 (en: 'counterbore', google translation) - - "⌵": [T: "versenken"] # 0x2335 (en: 'countersink', google translation) - - "⌶": [T: "apl i-träger"] # 0x2336 (en: 'apl i beam') - - "⌽": [T: "apl kreis-stütze"] # 0x233d (en: 'apl circle stile') - - "⌿": [T: "apl schrägstrich-balken"] # 0x233f (en: 'apl slash bar') + - "⌰": [T: "totaler Auslauf"] # 0x2330 (en: 'total runout', google translation) + - "⌱": [T: "Dimensionsursprung"] # 0x2331 (en: 'dimension origin', google translation) + - "⌲": [T: "konische Verjüngung"] # 0x2332 (en: 'conical taper', google translation) + - "⌳": [T: "Neigung"] # 0x2333 (en: 'slope', google translation) + - "⌴": [T: "Gegenbohrung"] # 0x2334 (en: 'counterbore', google translation) + - "⌵": [T: "Versenkung"] # 0x2335 (en: 'countersink', google translation) + - "⌶": [T: "APL I-Träger"] # 0x2336 (en: 'apl i beam') + - "⌽": [T: "APL-Kreisstütze"] # 0x233d (en: 'apl circle stile') + - "⌿": [T: "APL-Schrägstrichbalken"] # 0x233f (en: 'apl slash bar') - "⍰": [T: "eingerahmtes Fragezeichen"] # 0x2370 (en: 'unknown box', google: 'unbekannte box') - "⍼": [T: "rechter winkel mit abwärts-zickzackpfeil"] # 0x237c (en: 'right angle with downwards zigzag arrow') - "⎔": [T: "sechseck"] # 0x2394 (en: 'hexagon') @@ -2411,15 +2411,15 @@ - "⭗": [T: "Schwerer Kreis mit Kreis nach innen"] # 0x2b57 (en: 'heavy circle with circle inside', google: 'schwerer kreis mit kreis im inneren') - "⭘": [T: "Schwerer Kreis"] # 0x2b58 (en: 'heavy circle', google: 'schwerer kreis') - "⭙": [T: "Schwerer eingekreister Saltire"] # 0x2b59 (en: 'heavy circled saltire', google: 'schwer umgekreistes salzire') - - "⸀": [T: "rechtswinkel -substitutionsmarker"] # 0x2e00 (en: 'right angle substitution marker', google translation) + - "⸀": [T: "Rechtwinkel-Substitutionsmarker"] # 0x2e00 (en: 'right angle substitution marker', google translation) - "⸁": [T: "rechtswinkel gepunkteter substitutionsmarker"] # 0x2e01 (en: 'right angle dotted substitution marker', google translation) - "⸂": [T: "links -substitution -halterung"] # 0x2e02 (en: 'left substitution bracket', google translation) - - "⸃": [T: "richtige substitutionshalterung"] # 0x2e03 (en: 'right substitution bracket', google translation) + - "⸃": [T: "rechte Substitutionsklammer"] # 0x2e03 (en: 'right substitution bracket', google translation) - "⸄": [T: "links gepunktete substitutionshalterung"] # 0x2e04 (en: 'left dotted substitution bracket', google translation) - "⸅": [T: "richtig gepunktete substitutionshalterung"] # 0x2e05 (en: 'right dotted substitution bracket', google translation) - "⸆": [T: "erhöhter interpolationsmarker"] # 0x2e06 (en: 'raised interpolation marker', google translation) - "⸇": [T: "erhöhter gepunkteter interpolationsmarker"] # 0x2e07 (en: 'raised dotted interpolation marker', google translation) - - "⸈": [T: "gepunktete transpositionsmarkermarker"] # 0x2e08 (en: 'dotted transposition marker marker', google translation) + - "⸈": [T: "gepunkteter Transpositionsmarker"] # 0x2e08 (en: 'dotted transposition marker marker', google translation) - "⸉": [T: "linke transpositionshalterung"] # 0x2e09 (en: 'left transposition bracket', google translation) - "⸊": [T: "rechte transpositionsklasse"] # 0x2e0a (en: 'right transposition bracket', google translation) - "⸋": [T: "erhöhter quadrat"] # 0x2e0b (en: 'raised square', google translation) @@ -2439,7 +2439,7 @@ - "⸙": [T: "palmenzweig"] # 0x2e19 (en: 'palm branch', google translation) - "⸚": [T: "bindestrich mit diaerese"] # 0x2e1a (en: 'hyphen with diaeresis', google translation) - "⸛": [T: "tilde mit ring oben"] # 0x2e1b (en: 'tilde with ring above', google translation) - - "⸜": [T: "links niedrige paraphrasklasse"] # 0x2e1c (en: 'left low paraphrase bracket', google translation) + - "⸜": [T: "linke niedrige Paraphraseklammer"] # 0x2e1c (en: 'left low paraphrase bracket', google translation) - "⸝": [T: "rechte niedrige paraphrase -klammer"] # 0x2e1d (en: 'right low paraphrase bracket', google translation) - "⸞": [T: "tilde mit punkt oben"] # 0x2e1e (en: 'tilde with dot above', google translation) - "⸟": [T: "tilde mit punkt unten"] # 0x2e1f (en: 'tilde with dot below', google translation) @@ -2449,8 +2449,8 @@ - "⸣": [T: "Obere rechte halbe Klammer"] # 0x2e23 (en: 'top right half bracket', google: 'oben rechts halbhalterung') - "⸤": [T: "Linke halbe halterung unten"] # 0x2e24 (en: 'bottom left half bracket', google: 'unten linke halbe klammer') - "⸥": [T: "Untere rechte halbe Halterung"] # 0x2e25 (en: 'bottom right half bracket', google: 'unten rechts halbe klammer') - - "⸦": [T: "U-Halterung links seitlich"] # 0x2e26 (en: 'left sideways u bracket', google: 'links seitwärts u klammer') - - "⸧": [T: "U-Halterung rechts seitlich"] # 0x2e27 (en: 'right sideways u bracket', google: 'rechte seitwärtshalterung') + - "⸦": [T: "linksseitige U-Klammer"] # 0x2e26 (en: 'left sideways u bracket', google: 'links seitwärts u klammer') + - "⸧": [T: "rechtsseitige U-Klammer"] # 0x2e27 (en: 'right sideways u bracket', google: 'rechte seitwärtshalterung') - "⸨": [T: "Linke doppelte Klammer"] # 0x2e28 (en: 'left double parentheses', google: 'links doppelte klammern') - "⸩": [T: "Rechte doppelte Klammer"] # 0x2e29 (en: 'right double parentheses', google: 'rechte doppelte klammern') - "⸪": [T: "zwei punkte über eine punktzahl"] # 0x2e2a (en: 'two dots over one dot punctuation', google translation) @@ -2461,17 +2461,17 @@ - "ⸯ": [T: "vertikale tilde"] # 0x2e2f (en: 'vertical tilde', google translation) - "⸰": [T: "ringpunkt"] # 0x2e30 (en: 'ring point', google translation) - "⸱": [T: "wortseparator mittlerer punkt"] # 0x2e31 (en: 'word separator middle dot', google translation) - - "⸲": [T: "drehte komma"] # 0x2e32 (en: 'turned comma', google translation) + - "⸲": [T: "gedrehtes Komma"] # 0x2e32 (en: 'turned comma', google translation) - "⸳": [T: "erhöhter punkt"] # 0x2e33 (en: 'raised dot', google translation) - "⸴": [T: "erhöhter komma"] # 0x2e34 (en: 'raised comma', google translation) - - "⸵": [T: "drehte semikolon"] # 0x2e35 (en: 'turned semicolon', google translation) + - "⸵": [T: "gedrehtes Semikolon"] # 0x2e35 (en: 'turned semicolon', google translation) - "⸶": [T: "dolch mit der linken wache"] # 0x2e36 (en: 'dagger with left guard', google translation) - "⸷": [T: "dolch mit der rechten wache"] # 0x2e37 (en: 'dagger with right guard', google translation) - "⸸": [T: "drehte dolch"] # 0x2e38 (en: 'turned dagger', google translation) - - "⸹": [T: "abschnittszeichen der oberen halbzeit"] # 0x2e39 (en: 'top half section sign', google translation) - - "⸺": [T: "zwei em -dash"] # 0x2e3a (en: 'two em dash', google translation) - - "⸻": [T: "drei em -dash"] # 0x2e3b (en: 'three em dash', google translation) - - "〃": [T: "dito mark"] # 0x3003 (en: 'ditto mark', google translation) + - "⸹": [T: "oberes Halb-Abschnittszeichen"] # 0x2e39 (en: 'top half section sign', google translation) + - "⸺": [T: "zwei Em-Striche"] # 0x2e3a (en: 'two em dash', google translation) + - "⸻": [T: "drei Em-Striche"] # 0x2e3b (en: 'three em dash', google translation) + - "〃": [T: "Dittomarke"] # 0x3003 (en: 'ditto mark', google translation) - "〈": [T: "Linke Winkelklammer"] # 0x3008 (en: 'left angle bracket', google: 'linkswinkelhalter') - "〉": [T: "Rechtwinklige Halterung"] # 0x3009 (en: 'right angle bracket', google: 'rechtswinkelhalterung') - "《": [T: "Linke Doppelwinkelhalterung"] # 0x300a (en: 'left double angle bracket', MathPlayer: 'left double angle bracket', google: 'links zwei winkelhalterungen') @@ -2482,8 +2482,8 @@ - "』": [T: "Rechte weiße Eckhalterung"] # 0x300f (en: 'right white corner bracket', google: 'rechte weiße eckhalterung') - "【": [T: "Linke schwarze linsenförmige Halterung"] # 0x3010 (en: 'left black lenticular bracket', google: 'links schwarze linsenhalterung') - "】": [T: "Rechte schwarze linsenförmige Halterung"] # 0x3011 (en: 'right black lenticular bracket', google: 'rechte schwarze linsenhalterung') - - "〔": [T: "Linke Schildpatt-Klammer"] # 0x3014 (en: 'left tortoise shell bracket', MathPlayer: 'left tortoise shell bracket', google: 'links schildkrötenhalterung') - - "〕": [T: "Rechte Schildpattlasche"] # 0x3015 (en: 'right tortoise shell bracket', MathPlayer: 'right tortoise shell bracket', google: 'rechte schildkrötenhalterung') + - "〔": [T: "linke Schildpatt-Klammer"] # 0x3014 (en: 'left tortoise shell bracket', MathPlayer: 'left tortoise shell bracket', google: 'links schildkrötenhalterung') + - "〕": [T: "rechte Schildpatt-Klammer"] # 0x3015 (en: 'right tortoise shell bracket', MathPlayer: 'right tortoise shell bracket', google: 'rechte schildkrötenhalterung') - "〖": [T: "Linke weiße linsenförmige Halterung"] # 0x3016 (en: 'left white lenticular bracket', google: 'links weiße linsenhalterung') - "〗": [T: "Rechte weiße linsenförmige Halterung"] # 0x3017 (en: 'right white lenticular bracket', google: 'rechte weiße linsenhalterung') - "〘": [T: "Linke weiße Schildpatt-Klammer"] # 0x3018 (en: 'left white tortoise shell bracket', google: 'links weiße schildkröte')