Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions Rules/Languages/ja/definitions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -280,29 +280,29 @@
"dot-product": "infix=内積",
"downwards-diagonal-ellipsis": "infix=下向き対角の省略記号",
"direct-product": "infix=直積",
"element-of": "infix=の要素",
"element-of": "infix=要素オブ",
"ellipsis": "infix=省略記号",
"equals": "infix=イコール",
"equivalent-to": "infix=と同等の",
"evaluates-to": "infix=評価する",
"given": "infix=与えられた",
"greater-than": "infix=より大きい",
"greater-than-or-equal-to": "infix=より大きいか等しい",
"greater-than": "infix=大なり",
"greater-than-or-equal-to": "infix=大なり オア イコール",
"identically-equals": "infix=恒等的に等しい",
"if-and-only-if": "infix=同値",
"implies": "infix=ならば",
"inner-product": "infix=内積",
"intersection": "infix=共通部分",
"less-than": "infix=より小さい",
"less-than-or-equal-to": "infix=以下",
"less-than": "infix=小なり",
"less-than-or-equal-to": "infix=小なり オア イコール",
"list-separator": "infix=コンマ",
"maps-to": "infix=に写る",
"member-of": "infix=に属する",
"member-of": "infix=",
"minus-or-plus": "infix=マイナスまたはプラス",
"not-subset": "infix=部分集合でない",
"not-superset": "infix=上位集合でない",
"not-equal-to": "infix=等しくない",
"not-member-of": "infix=に属さない",
"not-equal-to": "infix=ノット イコール",
"not-member-of": "infix=元でない",
"not-parallel-to": "infix=平行でない",
"obtained-from": "infix=から得られる",
"or": "infix=または",
Expand Down
28 changes: 14 additions & 14 deletions Rules/Languages/ja/unicode.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@
- test:
if: "$Verbosity!='Terse'"
then: [t: "は"]
- t: "小なり"
- T: "小なり"
- "=": # 0x3d
- test:
if: "$Verbosity!='Terse'"
Expand All @@ -149,7 +149,7 @@
- test:
if: "$Verbosity!='Terse'"
then: [t: "は"]
- t: "より大きい"
- T: "大なり"
- "?": [t: "疑問符"] # 0x3f
- "@": [t: "アットマーク"] # 0x40
- "[": # 0x5b
Expand Down Expand Up @@ -345,23 +345,23 @@
- test:
if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad"
then: [t: "は"]
- t: "属する"
- T: "要素オブ"
# Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option
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: "中へ"]
then: [T: "イン"]
- else_if: $ClearSpeak_SetMemberSymbol = 'Member'
then: [t: "元"]
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [t: "要素の"]
then: [T: "要素オブ"]
- else: [t: "に属する"] # $ClearSpeak_SetMemberSymbol = 'Belongs'
else_test:
- if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
then: [t: "元"]
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [t: "要素"]
then: [t: "要素オブ"]
- else_if: $ClearSpeak_SetMemberSymbol = 'In'
then: [t: "に含まれる"]
- else: [t: "属する"] # $ClearSpeak_SetMemberSymbol = 'Belongs'
Expand All @@ -383,12 +383,12 @@
- test:
if: "$Verbosity!='Terse'"
then: [t: "は"]
- t: "より小さいか等しい"
- T: "小なり オア イコール"
- "≥": # 0x2265
- test:
if: "$Verbosity!='Terse'"
then: [t: "は"]
- t: "より大きいか等しい"
- T: "大なり オア イコール"

# --- restored complex short definitions (prefer over unicode-full) ---
- "…": # 0x2026
Expand Down Expand Up @@ -448,23 +448,23 @@
- test:
if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad"
then: [t: "は"]
- t: "要素の"
- T: "要素オブ"
# Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option
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: "中へ"]
then: [T: "イン"]
- else_if: $ClearSpeak_SetMemberSymbol = 'Member'
then: [t: "元"]
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [t: "要素の"]
then: [T: "要素オブ"]
- else: [t: "に属する"] # $ClearSpeak_SetMemberSymbol = 'Belongs'
else_test:
- if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
then: [t: "元"]
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
then: [t: "要素"]
then: [t: "要素オブ"]
- else_if: $ClearSpeak_SetMemberSymbol = 'In'
then: [t: "に含まれる"]
- else: [t: "属する"] # $ClearSpeak_SetMemberSymbol = 'Belongs'
Expand All @@ -487,12 +487,12 @@
- test:
if: "$Verbosity!='Terse'"
then: [t: "は"]
- t: "最も肯定的な"
- T: "最も正の"
- "≠": # 0x2260
- test:
if: "$Verbosity!='Terse'"
then: [t: "は"]
- t: "等しくない"
- T: "ノット イコール"
- "≡": # 0x2261
- test:
if: "$Verbosity!='Terse'"
Expand Down
75 changes: 66 additions & 9 deletions tests/Languages/ja/ja.rs
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,62 @@ fn less_than() -> Result<()> {
return Ok(());
}

/// 小なり / 大なり are the pair the source gives for < and >. より大きい stranded the
/// より, which needs its comparand in front of it, so "x は より大きい 5" read as
/// "x is a bigger 5"; and it did not match the 小なり already used for <.
#[test]
fn greater_than() -> Result<()> {
let expr = "<math><mi>x</mi><mo>&gt;</mo><mn>5</mn></math>";
test("ja", "ClearSpeak", expr, "x は 大なり 5")?;
return Ok(());
}

/// ≠ is ノット・イコール, the partner of the イコール already used for =.
#[test]
fn not_equal() -> Result<()> {
let expr = "<math><mi>x</mi><mo>&#x2260;</mo><mn>5</mn></math>";
test("ja", "ClearSpeak", expr, "x は ノット イコール 5")?;
return Ok(());
}

/// ∈ is 要素オブ. 要素の attaches backwards -- 要素の A is "A of an element" -- and
/// the rules for ∈ and ∊ did not even agree with each other.
#[test]
fn element_of() -> Result<()> {
for ch in ["&#x2208;", "&#x220a;"] {
let expr = format!("<math><mi>x</mi><mo>{ch}</mo><mi>A</mi></math>");
test("ja", "SimpleSpeak", &expr, "x は 要素オブ, 大文字 エー")?;
test_ClearSpeak("ja", "ClearSpeak_SetMemberSymbol", "Element", &expr,
"x 要素オブ 大文字 エー")?;
}
return Ok(());
}

/// Inside a set the ClearSpeak options take a different branch of the same rule.
/// 中へ is "into", a direction of motion, not membership. The shape is the one
/// en/ClearSpeak/sets.rs uses for set-builder notation.
#[test]
fn set_builder_member_symbol() -> Result<()> {
for ch in ["&#x2208;", "&#x220a;"] {
let expr = format!(
"<math><mo>{{</mo><mi>x</mi><mo>{ch}</mo><mi>&#x2124;</mi><mo>:</mo> <mi>x</mi><mo>&#x003E;</mo><mn>5</mn><mo>}}</mo></math>"
);
test_ClearSpeak("ja", "ClearSpeak_SetMemberSymbol", "In", &expr,
"集合 すべて x イン 整数 そのようなこと x は 大なり 5")?;
test_ClearSpeak("ja", "ClearSpeak_SetMemberSymbol", "Element", &expr,
"集合 すべて x 要素オブ 整数 そのようなこと x は 大なり 5")?;
}
return Ok(());
}

/// ∾ is "most positive" in the numeric sense; 最も肯定的な is "most affirmative".
#[test]
fn most_positive() -> Result<()> {
let expr = "<math><mi>x</mi><mo>&#x223e;</mo><mi>y</mi></math>";
test("ja", "ClearSpeak", expr, "x は 最も正の y")?;
return Ok(());
}

/// A hat over a variable is ハット. 帽子 is the thing you wear, and it was said
/// twice.
#[test]
Expand Down Expand Up @@ -423,7 +479,7 @@ fn greek_letters() -> Result<()> {
#[test]
fn set_membership() -> Result<()> {
let expr = "<math><mi>x</mi><mo>&#x2208;</mo><mi mathvariant='double-struck'>R</mi></math>";
test("ja", "SimpleSpeak", expr, "x は 属する 実数")?;
test("ja", "SimpleSpeak", expr, "x は 要素オブ 実数")?;
return Ok(());
}

Expand Down Expand Up @@ -490,12 +546,13 @@ fn parallel_and_perpendicular() -> Result<()> {
}

/// ≤ said より少しまたは等しい ("a little more, or equal") and ≥ ended in the
/// particle へ.
/// particle へ. They then said より小さいか等しい / より大きいか等しい, which strand the
/// より the same way > did; the source gives 小なり・オア・イコール.
#[test]
fn comparison_with_equality() -> Result<()> {
for (op, expected) in [
("&#x2264;", "x は より小さいか等しい 5"),
("&#x2265;", "x は より大きいか等しい 5"),
("&#x2264;", "x は 小なり オア イコール 5"),
("&#x2265;", "x は 大なり オア イコール 5"),
] {
let expr = format!("<math><mi>x</mi><mo>{op}</mo><mn>5</mn></math>");
test("ja", "ClearSpeak", &expr, expected)?;
Expand Down Expand Up @@ -592,11 +649,11 @@ fn matrix_terminology() -> Result<()> {
#[test]
fn number_set_names() -> Result<()> {
for (letter, expected) in [
("C", "x は 属する 複素数"),
("N", "x は 属する 自然数"),
("Q", "x は 属する 有理数"),
("R", "x は 属する 実数"),
("Z", "x は 属する 整数"),
("C", "x は 要素オブ 複素数"),
("N", "x は 要素オブ 自然数"),
("Q", "x は 要素オブ 有理数"),
("R", "x は 要素オブ 実数"),
("Z", "x は 要素オブ 整数"),
] {
let expr = format!(
"<math><mi>x</mi><mo>&#x2208;</mo><mi mathvariant='double-struck'>{letter}</mi></math>"
Expand Down
Loading