diff --git a/Rules/Languages/de/ClearSpeak_Rules.yaml b/Rules/Languages/de/ClearSpeak_Rules.yaml
index a4953b95..4c8f1d27 100644
--- a/Rules/Languages/de/ClearSpeak_Rules.yaml
+++ b/Rules/Languages/de/ClearSpeak_Rules.yaml
@@ -228,11 +228,11 @@
replace:
- test:
if: $ClearSpeak_Trig = 'TrigInverse'
- then: [x: "*[1]", bookmark: "*[2]/@id", T: "umgekehrte"]
+ then: [bookmark: "*[2]/@id", T: "umgekehrter", x: "*[1]"]
else_test:
if: $ClearSpeak_Trig = 'ArcTrig'
then: [bookmark: "*[2]/@id", T: "ark", x: "*[1]"]
- else: [bookmark: "*[2]/@id", T: "umgekehrte", x: "*[1]"] # default/Auto
+ else: [bookmark: "*[2]/@id", T: "umgekehrter", x: "*[1]"] # default/Auto
- name: function-squared-or-cubed
tag: power
diff --git a/Rules/Languages/de/SharedRules/geometry.yaml b/Rules/Languages/de/SharedRules/geometry.yaml
index 4ac49066..3d1003c1 100644
--- a/Rules/Languages/de/SharedRules/geometry.yaml
+++ b/Rules/Languages/de/SharedRules/geometry.yaml
@@ -28,7 +28,7 @@
- T: "nach" # phrase(the ray from A 'to' B)
- x: "*[2]"
else:
- - T: "ray" # phrase(the 'ray'A B)
+ - T: "strahl" # phrase(the 'ray' A B)
- x: "*[1]"
- x: "*[2]"
diff --git a/Rules/Languages/de/SimpleSpeak_Rules.yaml b/Rules/Languages/de/SimpleSpeak_Rules.yaml
index cf634351..e0474988 100644
--- a/Rules/Languages/de/SimpleSpeak_Rules.yaml
+++ b/Rules/Languages/de/SimpleSpeak_Rules.yaml
@@ -159,7 +159,7 @@
tag: inverse-function
match: "."
replace:
- - T: "umgekehrte" # phrase(the 'inverse' of f)
+ - T: "umgekehrter" # phrase(the 'inverse' of f)
- x: "*[1]"
- name: function-squared-or-cubed
diff --git a/Rules/Languages/de/definitions.yaml b/Rules/Languages/de/definitions.yaml
index 0783d946..94ac8233 100644
--- a/Rules/Languages/de/definitions.yaml
+++ b/Rules/Languages/de/definitions.yaml
@@ -158,6 +158,11 @@
"mpg": "meile pro gallone",
}
+- CurrencySymbols: {
+ "$": "dollar", "¢": "cent", "€": "euro", "£": "pfund", "₡": "colón", "₤": "lira", "₨": "rupie",
+ "₩": "won", "₪": "schekel", "₱": "peso", "₹": "rupie", "₺": "lira", "₿": "bitcoin"
+ }
+
- PluralForms: {
"ampere": "ampere", "candela": "candela", "kelvin": "kelvin",
"gramm": "gramm", "meter": "meter", "mol": "mol", "sekunde": "sekunden",
diff --git a/Rules/Languages/de/unicode-full.yaml b/Rules/Languages/de/unicode-full.yaml
index 4c9b4db3..5e941c61 100644
--- a/Rules/Languages/de/unicode-full.yaml
+++ b/Rules/Languages/de/unicode-full.yaml
@@ -1992,8 +1992,8 @@
- "⪎": [T: "Größer als oben ähnlich oder gleich"] # 0x2a8e (en: 'greater than above similar or equal', MathPlayer: 'greater than above similar or equal', google: 'größer als über ähnlich oder gleich')
- "⪏": [T: "Weniger als oben ähnlich oben größer als"] # 0x2a8f (en: 'less than above similar above greater than', MathPlayer: 'less than above similar above greater than', google: 'weniger als über ähnlich oben höher als größer als')
- "⪐": [T: "Größer als oben Ähnlich oben"] # 0x2a90 (en: 'greater than above similar above less than', MathPlayer: 'greater than above similar above less than', google: 'größer als über ähnlich über ähnlichem')
- - "⪑": [T: "less than greater than or equal to"] # 0x2a91 (en: 'less than above greater than above double line equal')
- - "⪒": [T: "greater than less than or equal to"] # 0x2a92 (en: 'greater than above less than above double line equal')
+ - "⪑": [T: "kleiner als über größer als über doppelter Gleichheitslinie"] # 0x2a91 (en: 'less than above greater than above double line equal')
+ - "⪒": [T: "größer als über kleiner als über doppelter Gleichheitslinie"] # 0x2a92 (en: 'greater than above less than above double line equal')
- "⪓": [T: "Weniger als oben schräg gleich oben Größer als oben schräg gleich"] # 0x2a93 (en: 'less than above slanted equal above greater than above slanted equal', MathPlayer: 'less than above slanted equal above greater than above slanted equal', google: 'weniger als über dem überdurchschnittlich überdurchschnittlich überdurchschnittlich ist es gleich')
- "⪔": [T: "Größer als oben schräg gleich oben kleiner als oben schräg gleich groß"] # 0x2a94 (en: 'greater than above slanted equal above less than above slanted equal', MathPlayer: 'greater than above slanted equal above less than above slanted equal', google: 'größer als über dem schrägen gleich über dem gleichen schrägen gleich')
- "⪕": [T: "Schräg gleich oder kleiner als"] # 0x2a95 (en: 'slanted equal to or less than', google: 'schräg gleich oder weniger als')
@@ -2011,7 +2011,7 @@
- "⪡": [T: "Verschachteltes kleiner als"] # 0x2aa1 (en: 'double nested less than', MathPlayer: 'nested less than', google: 'doppelt weniger verschachtelt als')
- "⪢": [T: "Verschachteltes größer als"] # 0x2aa2 (en: 'double nested greater than', MathPlayer: 'nested greater than', google: 'doppelt verschachtelt größer als')
- "⪣": [T: "Doppelt verschachtelt, weniger als mit Unterleiste"] # 0x2aa3 (en: 'double nested less than with underbar', google: 'doppelte verschachtel weniger als mit underbar')
- - "⪤": [T: "less than greater than overlay"] # 0x2aa4 (en: 'greater than overlapping less than')
+ - "⪤": [T: "größer als überlappend mit kleiner als"] # 0x2aa4 (en: 'greater than overlapping less than')
- "⪥": [T: "Größer als weniger als"] # 0x2aa5 (en: 'greater than beside less than', MathPlayer: 'greater than beside less than', google: 'größer als weniger als weniger als')
- "⪦": [T: "Weniger als durch Kurve geschlossen"] # 0x2aa6 (en: 'less than closed by curve', MathPlayer: 'less than closed by curve', google: 'weniger als durch kurve geschlossen')
- "⪧": [T: "Größer als durch Kurve geschlossen"] # 0x2aa7 (en: 'greater than closed by curve', MathPlayer: 'greater than closed by curve', google: 'größer als durch kurve geschlossen')
@@ -2077,15 +2077,15 @@
- "⫣": [T: "Doppelter vertikaler Balken linkes Drehkreuz"] # 0x2ae3 (en: 'double vertical bar left turnstile', google: 'doppelte vertikale balken linke drehkreuze')
- "⫤": [T: "vertikaler Strich mit doppeltem linkem Drehkreuz"] # 0x2ae4 (en: 'vertical bar double left turnstile')
- "⫥": [T: "Doppelter vertikaler Balken Doppelter linker Drehkreuz"] # 0x2ae5 (en: 'double vertical bar double left turnstile', google: 'doppelte vertikale balken doppelte linke drehkreuze')
- - "⫦": [T: "Long Dash von Left Member von Double Vertical"] # 0x2ae6 (en: 'long dash from left member of double vertical', MathPlayer: 'long dash from left member of double vertical', google: 'langer dash vom linken mitglied des doppel vertikalen')
+ - "⫦": [T: "langer Strich vom linken Teil eines doppelten Vertikalstrichs"] # 0x2ae6 (en: 'long dash from left member of double vertical', MathPlayer: 'long dash from left member of double vertical', google: 'langer dash vom linken mitglied des doppel vertikalen')
- "⫧": [T: "kurzer Abwärtshaken mit Überstrich"] # 0x2ae7 (en: 'short down tack with overbar', MathPlayer: 'short down tack with overbar', google: 'kurzer tack mit overbar')
- "⫨": [T: "kurzer Aufwärtshaken mit Unterstrich"] # 0x2ae8 (en: 'short up tack with underbar')
- "⫩": [T: "kurzer Aufwärtshaken über kurzem Abwärtshaken"] # 0x2ae9 (en: 'short up tack above short down tack', MathPlayer: 'short up tack above short down tack', google: 'kurzschluss über kurzer tack')
- "⫪": [T: "doppelter Abwärtshaken"] # 0x2aea (en: 'double down tack', google: 'double down tack')
- - "⫫": [T: "Verdoppeln Sie Tack"] # 0x2aeb (en: 'double up tack', MathPlayer: 'double up tack', google: 'doppelte tack')
+ - "⫫": [T: "doppelter Aufwärtshaken"] # 0x2aeb (en: 'double up tack', MathPlayer: 'double up tack', google: 'doppelte tack')
- "⫬": [T: "Doppelstrich nicht unterschreiben"] # 0x2aec (en: 'double stroke not sign', MathPlayer: 'double stroke not sign', google: 'doppelhub nicht unterschreiben')
- "⫭": [T: "Umgekehrter Doppelstrich nicht unterschrieben"] # 0x2aed (en: 'reversed double stroke not sign', MathPlayer: 'reversed double stroke not sign', google: 'umgekehrter doppelstrich nicht unterschreiben')
- - "⫮": [T: "Teilt sich nicht mit umgekehrten Negationsschrägstrich"] # 0x2aee (en: 'does not divide with reversed negation slash', MathPlayer: 'does not divide with reversed negation slash', google: 'teilt sich nicht mit umgekehrter negationsschrägung')
+ - "⫮": [T: "teilt nicht mit umgekehrtem Negationsschrägstrich"] # 0x2aee (en: 'does not divide with reversed negation slash', MathPlayer: 'does not divide with reversed negation slash', google: 'teilt sich nicht mit umgekehrter negationsschrägung')
- "⫯": [T: "Vertikale Linie mit Kreis oben"] # 0x2aef (en: 'vertical line with circle above', MathPlayer: 'vertical line with circle above', google: 'vertikale linie mit dem obigen kreis')
- "⫰": [T: "Vertikale Linie mit Kreis unten"] # 0x2af0 (en: 'vertical line with circle below', MathPlayer: 'vertical line with circle below', google: 'vertikale linie mit kreis unten')
- "⫱": [T: "Down Tack mit Kreis unten"] # 0x2af1 (en: 'down tack with circle below', MathPlayer: 'down tack with circle below', google: 'down tack mit kreis unten')
@@ -2236,7 +2236,7 @@
- "⸫": [T: "ein punkt über zwei punkte"] # 0x2e2b (en: 'one dot over two dots punctuation', google translation)
- "⸬": [T: "quadratische vier punkt -interpunktion"] # 0x2e2c (en: 'squared four dot punctuation', google translation)
- "⸭": [T: "fünf punkt mark"] # 0x2e2d (en: 'five dot mark', google translation)
- - "⸮": [T: "umgekehrter fragezeichen"] # 0x2e2e (en: 'reversed question mark', google translation)
+ - "⸮": [T: "umgekehrtes Fragezeichen"] # 0x2e2e (en: 'reversed question mark', google translation)
- "ⸯ": [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)
diff --git a/tests/Languages/de/ClearSpeak/functions.rs b/tests/Languages/de/ClearSpeak/functions.rs
index aa856036..6cb30e25 100644
--- a/tests/Languages/de/ClearSpeak/functions.rs
+++ b/tests/Languages/de/ClearSpeak/functions.rs
@@ -40,7 +40,7 @@ fn hyperbolic_trig_names() -> Result<()> {
#[test]
fn inverse_trig() -> Result<()> {
let expr = "";
- test("de", "ClearSpeak", expr, "umgekehrte sinus von x")?;
+ test("de", "ClearSpeak", expr, "umgekehrter sinus von x")?;
return Ok(());
}
@@ -49,7 +49,7 @@ fn inverse_trig() -> Result<()> {
fn inverse_trig_trig_inverse() -> Result<()> {
let expr = "";
test_ClearSpeak("de", "ClearSpeak_Trig", "TrigInverse",expr,
- "tangens umgekehrte von x")?;
+ "umgekehrter tangens von x")?;
return Ok(());
}
diff --git a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs
index ac1f7c2f..330776c9 100644
--- a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs
+++ b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs
@@ -39,6 +39,23 @@ fn quotation_mark() -> Result<()> {
Ok(())
}
+/// Compound relation symbols must use German descriptions rather than English fallbacks.
+#[test]
+fn compound_relation_symbols_are_localized() -> Result<()> {
+ let expr = "";
+ test("de", "ClearSpeak", expr,
+ "kleiner als über größer als über doppelter Gleichheitslinie; größer als über kleiner als über doppelter Gleichheitslinie; größer als überlappend mit kleiner als")?;
+ Ok(())
+}
+
+/// A geometric ray uses the German term rather than the English fallback.
+#[test]
+fn geometric_ray_is_localized() -> Result<()> {
+ let expr = "";
+ test("de", "ClearSpeak", expr, "strahl groß x groß y")?;
+ Ok(())
+}
+
#[test]
fn absolute_value_end_regression() -> Result<()> {
let expr = "";