diff --git a/Rules/Languages/de/ClearSpeak_Rules.yaml b/Rules/Languages/de/ClearSpeak_Rules.yaml
index a4ed1cd1a..a4953b958 100644
--- a/Rules/Languages/de/ClearSpeak_Rules.yaml
+++ b/Rules/Languages/de/ClearSpeak_Rules.yaml
@@ -501,7 +501,7 @@
- T: "Menge"
- test:
if: $ClearSpeak_Sets != 'woAll'
- then: [T: "alle"]
+ then: [T: "aller"]
- x: "*[1]/*[1]"
- T: "so dass"
- x: "*[1]/*[3]"
diff --git a/Rules/Languages/de/SharedRules/general.yaml b/Rules/Languages/de/SharedRules/general.yaml
index 5ed2a7463..a5792c745 100644
--- a/Rules/Languages/de/SharedRules/general.yaml
+++ b/Rules/Languages/de/SharedRules/general.yaml
@@ -55,17 +55,21 @@
match: "count(*)=0"
replace:
- bookmark: "@id"
+ - test:
+ - if: "$SpeechStyle = 'ClearSpeak' and ($ClearSpeak_SetMemberSymbol = 'In' or ($ClearSpeak_SetMemberSymbol = 'Auto' and ancestor::m:set)) and preceding::m:mo[1][.='∈' or .='∊' or .='∉']"
+ then: [T: "den"]
+ else: [T: "die"]
- test:
- if: ".='ℂ'"
- then: [T: "die komplexen zahlen"] # phrase('the complex numbers' include 2 parts)
+ then: [T: "komplexen zahlen"] # phrase('the complex numbers' include 2 parts)
- else_if: ".='ℕ'"
- then: [T: "die natürlichen zahlen"] # phrase('the natural numbers' begin at 1)
+ then: [T: "natürlichen zahlen"] # phrase('the natural numbers' begin at 1)
- else_if: ".='ℚ'"
- then: [T: "die rationalen zahlen"] # phrase('the rational numbers' are the fraction of 2 integers)
+ then: [T: "rationalen zahlen"] # phrase('the rational numbers' are the fraction of 2 integers)
- else_if: ".='ℝ'"
- then: [T: "die reellen zahlen"] # phrase('the real numbers' can be both positive and negative)
+ then: [T: "reellen zahlen"] # phrase('the real numbers' can be both positive and negative)
- else_if: ".='ℤ'"
- then: [T: "die ganzen zahlen"] # phrase('the integers' are natural numbers above 0)
+ then: [T: "ganzen zahlen"] # phrase('the integers' are natural numbers above 0)
else: [x: "text()"] # shouldn't happen
- name: real-part
diff --git a/Rules/Languages/de/unicode.yaml b/Rules/Languages/de/unicode.yaml
index 142069a4c..bdd89fc76 100644
--- a/Rules/Languages/de/unicode.yaml
+++ b/Rules/Languages/de/unicode.yaml
@@ -320,9 +320,9 @@
else_test:
if: "../../self::m:set or ../../../self::m:set" # inside a set
then_test:
- - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
- then: [T: "in"] # (google translation)
- - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
+ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
+ then: [T: "in"]
+ - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
then: [T: "element von"] # (en: 'member of', google translation)
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [T: "element von"] # (en: 'element of', google translation)
@@ -344,9 +344,9 @@
else_test:
if: "../../self::m:set or ../../../self::m:set" # inside a set
then_test:
- - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
- then: [T: "nicht in"] # (en: 'not in', google translation)
- - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
+ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
+ then: [T: "nicht in"]
+ - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
then: [T: "nicht element von"] # (en: 'not member of', google translation)
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [T: "nicht element von"] # (en: 'not element of', google translation)
@@ -367,9 +367,9 @@
else_test:
if: "../../self::m:set or ../../../self::m:set" # inside a set
then_test:
- - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
- then: [T: "in"] # (google translation)
- - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
+ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In'
+ then: [T: "in"]
+ - else_if: $ClearSpeak_SetMemberSymbol = 'Member'
then: [T: "element von"] # (en: 'member of', google translation)
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [T: "element von"] # (en: 'element of', google translation)
diff --git a/tests/Languages/de/ClearSpeak/sets.rs b/tests/Languages/de/ClearSpeak/sets.rs
index 2b7ad5cde..e8911f33f 100644
--- a/tests/Languages/de/ClearSpeak/sets.rs
+++ b/tests/Languages/de/ClearSpeak/sets.rs
@@ -205,7 +205,7 @@ fn set_with_colon() -> Result<()> {
let expr = "";
- test("de", "ClearSpeak", expr, "die Menge alle x so dass x ist größer als 2")?;
+ test("de", "ClearSpeak", expr, "die Menge aller x so dass x ist größer als 2")?;
return Ok(());
}
@@ -215,7 +215,7 @@ fn set_with_bar() -> Result<()> {
let expr = "";
- test("de", "ClearSpeak", expr, "die Menge alle x so dass x ist größer als 2")?;
+ test("de", "ClearSpeak", expr, "die Menge aller x so dass x ist größer als 2")?;
return Ok(());
}
@@ -263,7 +263,7 @@ fn complicated_set_with_colon() -> Result<()> {
7
}
";
- test("de", "ClearSpeak", expr, "die Menge alle x in die ganzen zahlen so dass 2 ist kleiner als x ist kleiner als 7")?;
+ test("de", "ClearSpeak", expr, "die Menge aller x in den ganzen zahlen so dass 2 ist kleiner als x ist kleiner als 7")?;
return Ok(());
}
@@ -279,7 +279,7 @@ fn complicated_set_with_mtext() -> Result<()> {
}
";
test("de", "ClearSpeak", expr,
- "die Menge alle x in die natürlichen zahlen so dass x is an even number")?;
+ "die Menge aller x in den natürlichen zahlen so dass x is an even number")?;
return Ok(());
}
@@ -299,7 +299,7 @@ fn set_with_bar_member() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "Member",
- expr, "die Menge alle x element von die ganzen zahlen so dass x ist größer als 5")?;
+ expr, "die Menge aller x element von die ganzen zahlen so dass x ist größer als 5")?;
return Ok(());
}
@@ -348,7 +348,7 @@ fn set_with_bar_element() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "Element",
- expr, "die Menge alle x element von die ganzen zahlen so dass x ist größer als 5")?;
+ expr, "die Menge aller x element von die ganzen zahlen so dass x ist größer als 5")?;
return Ok(());
}
@@ -396,7 +396,7 @@ fn set_with_bar_in() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "In",
- expr, "die Menge alle x in die ganzen zahlen so dass x ist größer als 5")?;
+ expr, "die Menge aller x in den ganzen zahlen so dass x ist größer als 5")?;
return Ok(());
}
@@ -407,7 +407,7 @@ fn element_alone_in() -> Result<()> {
3+2i∉ℝ
";
test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "In",
- expr, "3 plus 2 i, ist nicht in die reellen zahlen")?;
+ expr, "3 plus 2 i, ist nicht in den reellen zahlen")?;
return Ok(());
}
@@ -425,7 +425,7 @@ fn element_under_sum_in() -> Result<()> {
";
test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "In",
- expr, "die summe durch i ist in die ganzen zahlen von; der bruch mit zähler 1; und nenner i quadrat")?;
+ expr, "die summe durch i ist in den ganzen zahlen von; der bruch mit zähler 1; und nenner i quadrat")?;
return Ok(());
}
@@ -444,7 +444,7 @@ fn set_with_bar_belongs() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_SetMemberSymbol", "Belongs",
- expr, "die Menge alle x element von die ganzen zahlen so dass x ist größer als 5")?;
+ expr, "die Menge aller x element von die ganzen zahlen so dass x ist größer als 5")?;
return Ok(());
}
@@ -524,7 +524,7 @@ fn silent_bracket() -> Result<()> {
{x|x>2}
";
test_ClearSpeak("de", "ClearSpeak_Sets", "SilentBracket", expr,
- "die Menge alle x so dass x ist größer als 2")?;
+ "die Menge aller x so dass x ist größer als 2")?;
return Ok(());
}
diff --git a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs
index 05529529d..ac1f7c2f3 100644
--- a/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs
+++ b/tests/Languages/de/ClearSpeak/symbols_and_adornments.rs
@@ -237,7 +237,7 @@ fn vertical_line_set() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_VerticalLine", "Auto", expr,
- "die Menge alle x so dass x ist größer als 0")?;
+ "die Menge aller x so dass x ist größer als 0")?;
return Ok(());
}
@@ -257,7 +257,7 @@ fn vertical_line_set_such_that() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_VerticalLine", "SuchThat", expr,
- "die Menge alle x so dass x ist größer als 0")?;
+ "die Menge aller x so dass x ist größer als 0")?;
return Ok(());
}
@@ -277,7 +277,7 @@ fn vertical_line_set_given() -> Result<()> {
";
// the rules for set will override all the options -- ClearSpeak spec should be clarified
test_ClearSpeak("de", "ClearSpeak_VerticalLine", "Given", expr,
- "die Menge alle x so dass x ist größer als 0")?;
+ "die Menge aller x so dass x ist größer als 0")?;
return Ok(());
}
@@ -300,7 +300,7 @@ fn vertical_line_set_and_abs() -> Result<()> {
}
";
test_ClearSpeak("de", "ClearSpeak_VerticalLine", "Auto", expr,
- "die Menge alle x so dass der Betrag von x; ist größer als 2")?;
+ "die Menge aller x so dass der Betrag von x; ist größer als 2")?;
return Ok(());
}