Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
e87d74f
update acknowledgment for Russian braille
NSoiffer Aug 4, 2026
66a78c6
update version number because added Russian braille
NSoiffer Aug 4, 2026
37f1d19
UEB has a rule for some pseudo-script chars. The match for that rule …
NSoiffer Aug 5, 2026
62ea156
Added new UEB chars. Many of these are accented letters. I added 'A' …
NSoiffer Aug 5, 2026
697579d
Translate German absolute-value ending
moritz-gross Aug 6, 2026
98fbc3e
Merge pull request #650 from moritz-gross/fix/de-absolute-value-end
moritz-gross Aug 6, 2026
c39d867
Fix German unit plurals
moritz-gross Aug 6, 2026
871a153
Merge remote-tracking branch 'upstream/main' into fix/de-unit-plurals
moritz-gross Aug 6, 2026
c0b575f
Merge pull request #651 from moritz-gross/fix/de-unit-plurals
moritz-gross Aug 6, 2026
bc97cbe
Fix German pluralization for "ruthe" and add regression test
moritz-gross Aug 6, 2026
71e068f
Correct German translations for "ruthe" to "rute" and update regressi…
moritz-gross Aug 6, 2026
206c0dc
Merge pull request #652 from moritz-gross/fix/typo-rute-ruthe
moritz-gross Aug 6, 2026
8afdcc7
Expand German unit definitions and add regression test for pluralization
moritz-gross Aug 6, 2026
9bc557d
Merge pull request #653 from moritz-gross/fix/more-weird-unit-plurals
moritz-gross Aug 6, 2026
31858f4
fix some symbols
moritz-gross Aug 6, 2026
0d7a362
Merge pull request #654 from moritz-gross/fix/some-unicode-full-symbols
moritz-gross Aug 6, 2026
d588bdc
fix german set grammar
moritz-gross Aug 6, 2026
3608ca9
Merge pull request #655 from moritz-gross/fix/german-set-grammar
moritz-gross Aug 6, 2026
244e6f1
typo in example
NSoiffer Jun 1, 2026
bfffb90
Russian Braille fixes
Kostenkov-2021 Jun 3, 2026
6585277
Update Russian Braille rules and mappings
Kostenkov-2021 Jun 3, 2026
2c8af08
Add Russian language to docs
Kostenkov-2021 Jun 11, 2026
e8528b9
Refactor Russian function braille mapping
Kostenkov-2021 Jun 12, 2026
9755c9f
Addition of Russian documentation
Kostenkov-2021 Jun 1, 2026
7eafc70
typo in example
NSoiffer Jun 1, 2026
17f074c
Add vector/bar/arc mover rules and tests
Kostenkov-2021 Jun 25, 2026
76d5ae9
Add Russian braille math functions and limits
Kostenkov-2021 Jun 25, 2026
c499ebe
Support system left brace in Russian braille
Kostenkov-2021 Jun 25, 2026
75dca0a
Add signed-integer and nested-fraction rules
Kostenkov-2021 Jun 25, 2026
ccd0e42
Enhance Russian Braille support with mathematical symbols and rules (…
Kostenkov-2021 Jun 25, 2026
c50a407
Add Russian braille rules for geometry operators
Kostenkov-2021 Jun 29, 2026
de8b8b1
Improve Russian braille typeform and mathvariant handling
Kostenkov-2021 Jun 29, 2026
6dc9af5
Propagate mathvariant attribute to children
Kostenkov-2021 Jul 21, 2026
0f37a39
Fix clippy warnings and improve code style
Kostenkov-2021 Jul 21, 2026
d4e9d56
Remove unnecessary borrows in format macros
Kostenkov-2021 Jul 21, 2026
281efa8
Normalize Unicode math digits in decimal numbers
Kostenkov-2021 Jul 21, 2026
69d7f95
Remove unnecessary references and .to_string() calls
Kostenkov-2021 Jul 21, 2026
fc85711
Remove mathvariant propagation and update tests
Kostenkov-2021 Jul 31, 2026
b54431f
Remove math digit normalization for mn nodes
Kostenkov-2021 Aug 1, 2026
c156c0f
Adjust test expectations and unignore tests
Kostenkov-2021 Aug 3, 2026
25746d9
Bump to 0.7.6-beta.8 and update dependencies
Kostenkov-2021 Aug 3, 2026
3f769d9
Switch to sxd_document_no_unsafe and NameStr
Kostenkov-2021 Aug 3, 2026
a1034e4
Use no-unsafe sxd crates; adapt code & tests
Kostenkov-2021 Aug 3, 2026
9dc0c4d
Use no-unsafe sxd libs; refactor TTS & parsing
Kostenkov-2021 Aug 3, 2026
30bed18
Improve wording in RU user guide
Kostenkov-2021 Aug 9, 2026
ff7f0e6
Add Russian GOST-58511 typeform braille rules and tests
Kostenkov-2021 Aug 9, 2026
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
30 changes: 15 additions & 15 deletions Rules/Braille/CMU/CMU_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,7 @@
-
name: single-char-exceptions # 4.3.1
tag: msup
match: "*[2][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
match: "*[2][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
replace:
- x: "*"
- test:
Expand All @@ -609,7 +609,7 @@
-
name: single-char-exceptions # 4.3.1
tag: msubsup
match: "*[3][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
match: "*[3][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
replace:
- x: "*[1]"
- x: "*[3]"
Expand All @@ -633,8 +633,8 @@
name: number-char-exceptions # 4.3.1 (FIX: degree doesn't use dot-3 for chemistry or temp/angles/etc)
tag: [msub, msup]
match:
- "*[2][translate(., \"'*`+-∞ª°²³´¹º‘’“”‟‵‶‷\",'')=''] or"
- "*[2][self::m:mrow and count(*)=2 and *[1][self::m:mn] and *[2][self::m:mo][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']]"
- "*[2][translate(., \"'*`+-∞´°‘’“”‟‵‶‷\",'')=''] or"
- "*[2][self::m:mrow and count(*)=2 and *[1][self::m:mn] and *[2][self::m:mo][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']]"
replace:
- x: "*[1]"
- test:
Expand Down Expand Up @@ -779,7 +779,7 @@
replace:
- x: "*[1]"
- test: # special case superscript postscripts that preceed the prescripts
if: "$Postscripts and not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
if: "$Postscripts and not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Postscripts[2]"
- test:
Expand All @@ -805,7 +805,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Prescripts[1][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Prescripts[1][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Prescripts[1][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Prescripts[1]"
- test:
Expand Down Expand Up @@ -835,7 +835,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Prescripts[2][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Prescripts[2][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Prescripts[2][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Prescripts[2]"
- test:
Expand Down Expand Up @@ -868,7 +868,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Prescripts[3][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Prescripts[3][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Prescripts[3][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Prescripts[3]"
- test:
Expand Down Expand Up @@ -898,7 +898,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Prescripts[4][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Prescripts[4][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Prescripts[4][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Prescripts[4]"
- test:
Expand Down Expand Up @@ -935,7 +935,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Postscripts[1][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Postscripts[1][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Postscripts[1][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Postscripts[1]"
- test:
Expand All @@ -950,7 +950,7 @@
else:
- x: "$Postscripts[1]"
- test:
if: "not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')!='']"
if: "not($Postscripts[2][self::m:none]) and $Postscripts[2][translate(., \"′″‴⁗'*`+-´°‘’“”‟‵‶‷\",'')!='']"
then:
- t: "⠡"
- test:
Expand Down Expand Up @@ -991,7 +991,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Postscripts[3][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Postscripts[3][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Postscripts[3][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Postscripts[3]"
- test:
Expand Down Expand Up @@ -1021,7 +1021,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Postscripts[4][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Postscripts[4][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Postscripts[4][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Postscripts[4]"
- test:
Expand Down Expand Up @@ -1054,7 +1054,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Postscripts[5][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Postscripts[5][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Postscripts[5][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Postscripts[5]"
- test:
Expand Down Expand Up @@ -1084,7 +1084,7 @@
# degree doesn't use dot-3 for chemistry, temp, angles -- can't know that so we make a wild guess here
if: "not($Postscripts[6][.='°'] and *[1][self::m:mn or @data-chem-element])"
then: [t: "⠄"]
- else_if: "$Postscripts[6][translate(., \"'*`+-ª°²³´¹º‘’“”‟‵‶‷\",'')='']"
- else_if: "$Postscripts[6][translate(., \"'*`+-´°‘’“”‟‵‶‷\",'')='']"
then:
- x: "$Postscripts[6]"
- test:
Expand Down
27 changes: 27 additions & 0 deletions Rules/Braille/Russian/Russian_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,33 @@
- t: "⠐"
- x: "*[2]"

-
name: gost-58511-small-font
tag: [mrow, mstyle, semantics]
match: "@data-braille-typeform='small' or contains(@intent, ':small-font')"
replace:
- t: "⠔"
- x: "*"
- t: "⠔"

-
name: gost-58511-letter-spacing
tag: [mrow, mstyle, semantics]
match: "@data-braille-typeform='letter-spacing' or contains(@intent, ':letter-spacing')"
replace:
- t: "⠌"
- x: "*"
- t: "⠌"

-
name: gost-58511-insertion
tag: [mrow, mstyle, semantics]
match: "@data-braille-typeform='insertion' or contains(@intent, ':insertion')"
replace:
- t: "⠧"
- x: "*"
- t: "⠼"

-
name: default
tag: [mrow, mstyle, semantics]
Expand Down
2 changes: 1 addition & 1 deletion Rules/Braille/Swedish/Swedish_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@
-
name: single-char-exceptions # RUEB 3.11 -- ° and various prime/minute/seconds aren't treated as if superscripts
tag: msup
match: "*[2][translate(., \"'*`ª°²³´¹º‘’“”‟′″‴‵‶‷⁗\",'')='']"
match: "*[2][translate(., \"'*`´°‘’“”‟′″‴‵‶‷⁗\",'')='']"
replace:
- test:
if: "NeedsToBeGrouped(*[1], 'Swedish', true())"
Expand Down
2 changes: 1 addition & 1 deletion Rules/Braille/UEB/UEB_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@
-
name: single-char-exceptions # RUEB 3.11 -- ° and various prime/minute/seconds aren't treated as if superscripts
tag: [msup]
match: "*[2][translate(., \"'*`ª°²³´¹º‘’“”‟′″‴‵‶‷⁗\",'')='']"
match: "*[2][translate(., \"'*`´°‘’“”‟′″‴‵‶‷⁗\",'')='']"
replace:
- test:
if: "NeedsToBeGrouped(*[1], 'UEB', true())"
Expand Down
35 changes: 14 additions & 21 deletions Rules/Braille/UEB/unicode-full.yaml
Original file line number Diff line number Diff line change
@@ -1,24 +1,6 @@
---

- " ": [t: "W"] # 0x2000
- " ": [t: "W"] # 0x2001
- " ": [t: "W"] # 0x2002
- " ": [t: "W"] # 0x2003
- " ": [t: "W"] # 0x2004
- " ": [t: "W"] # 0x2005
- " ": [t: "W"] # 0x2006
- " ": [t: "W"] # 0x2007
- " ": [t: "W"] # 0x2008
- " ": [t: "W"] # 0x2009
- " ": [t: "W"] # 0x200a
- "​": [t: "W"] # 0x200b
- "
": [t: "W"] # 0x2028
- "
": [t: "W"] # 0x2029
- " ": [t: "W"] # 0x202f
- " ": [t: "W"] # 0x205f
- "": [t: "W"] # 0xfeff


- "⋇": [tc: "1⠌⠯⠦"] # 0x22C7 (Division times)
- "⊩": [tc: "⠸⠳⠿⠸⠒"] # 0x22A9 (Forces)
- "ℏ": [tc: "⠈⠒⠓"] # t: "B"F (reduced Plank's constant)
- "ⅆ": [tc: "⠙"] # 0x2146
- "ⅇ": [tc: "⠑"] # 0x2147
Expand Down Expand Up @@ -47,6 +29,7 @@
- "↉": [tc: "#N⠚N⠌N⠑"] # 0x2189 (Vulgar Fraction Zero Thirds)



- "ℊ": [tc: "TL⠛⠁"] # 0x210a (Script Small G)
- "ℋ": [tc: "TCL⠓⠁"] # 0x210b (Script Capital H)
- "ℒ": [tc: "TCL⠇"] # 0x2113 (Script Capital L)
Expand All @@ -73,6 +56,16 @@
- "ℤ": [tc: "𝔹CL⠵"] # 0x2124


- "𝚨-𝛀": # 0x1d6a8 - 0x1d6c0
- tc: "B"
- spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')"


- "𝛂-𝛚": # 0x1d6c2 - 0x1d6da
- tc: "BGL"
- spell: "translate('.', '𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙𝛚', 'αβγδεζηθικλμνξοπρςστυφχψω')"


- "𝔄-𝔜": # 0x1d504 - 0x1d51d ('z' version is reserved)
- tc: "DC"
- spell: "translate('.', '𝔄𝔅𝔆𝔇𝔈𝔉𝔊𝔋𝔌𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔𝔕𝔖𝔗𝔘𝔙𝔚𝔛𝔜', 'abcdefghijklmnopqrstuvwxyz')"
Expand Down Expand Up @@ -106,7 +99,7 @@
# script chars in math alphabetic block and also MathType private use area
- "𝒜-𝒵": # 0x1d49c - 0x1d4b5
- tc: "TsC"
- spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'abcdefghijklmnopqrstuvwxyz')"
- spell: "translate('.', '𝒜𝒝𝒞𝒟𝒠𝒡𝒢𝒣𝒤𝒥𝒦𝒧𝒨𝒩𝒪𝒫𝒬𝒭𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵', 'abcdefghijklmnopqrstuvwxyza')"

- "𝒶-𝓏": # 0x1d4b6 - 0x1d4cf
- tc: "Ts"
Expand Down
6 changes: 3 additions & 3 deletions Rules/Braille/UEB/unicode.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
- "~": [t: "⠈⠔"] # 0x007E (Tilde (swung dash))
- "¢": [t: "⠈⠉"] # 0x00A2 (Cents sign)
- "‐": [t: "⠤"] # 0x2010 (Hyphen)
- "–": [t: "⠠⠤"] # 0x2013 (En Dash)
- "–": [t: "P⠠⠤"] # 0x2013 (En Dash)
- "―": [t: "⠐⠠⠤"] # 0x2015 (Horizontal Bar)
- "‖": [t: "⠸⠳"] # 0x2016
- "€": [t: "⠈⠑"] # 0x20AC (Euro sign)
Expand All @@ -123,8 +123,8 @@
- "‴": [t: "1⠶⠶⠶"] # 0x2034 (Triple prime sign)
- "℃": [t: "⠘⠚⠠⠉"] # 0x2103 (Degrees Celsius)
- "℉": [t: "⠘⠚⠠⠋"] # 0x2109 (Degrees Fahrenheit)
- "Å": [t: "⠠⠘⠫⠁"] # 0x212B (Angstrom symbol)
- "Å": [t: "⠠⠘⠫⠁"] # 0x00C5 (WIRIS uses this for Angstrom)
- "Å": [t: "CA⠘⠫L⠁"] # 0x212B (Angstrom symbol)
- "Å": [t: "CA⠘⠫L⠁"] # 0x00C5 (WIRIS uses this for Angstrom)
- "∀": [t: "⠘⠁"] # 0x2200 (For all)
- "∂": [t: "⠈⠙"] # 0x2202 (Partial differential)
- "∃": [t: "⠘⠢"] # 0x2203 (There exists)
Expand Down
2 changes: 1 addition & 1 deletion Rules/Braille/Vietnam/Vietnam_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@
-
name: single-char-exceptions # RUEB 3.11 -- ° and various prime/minute/seconds aren't treated as if superscripts
tag: msup
match: "*[2][translate(., \"'*`ª°²³´¹º‘’“”‟′″‴‵‶‷⁗\",'')='']"
match: "*[2][translate(., \"'*`´°‘’“”‟′″‴‵‶‷⁗\",'')='']"
replace: [x: "*"]

-
Expand Down
4 changes: 2 additions & 2 deletions Rules/Languages/de/ClearSpeak_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@
if: "$ClearSpeak_AbsoluteValue = 'AbsEnd'"
then:
- pause: short
- T: "end"
- T: "ende"
- x: "$WordToSay"
- pause: short

Expand All @@ -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]"
Expand Down
18 changes: 11 additions & 7 deletions Rules/Languages/de/SharedRules/general.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -300,7 +304,7 @@
# HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets the prefix concatenated to the base
then: [x: "$Word"]
- else_if: "DefinitionValue($Word, 'Speech', 'PluralForms') != ''"
then: [x: "DefinitionValue($Word, 'Speech', 'PluralForms')"]
then: [x: "DefinitionValue($Word, 'Speech', 'PluralForms')", ct: " "]
else: [x: "$Word", ct: "s"]
else:
- x: "$Prefix"
Expand All @@ -310,7 +314,7 @@
# HACK: '\uF8FE' is used internally for the concatenation char by 'ct' -- this gets the prefix concatenated to the base
then: [x: "concat('\uF8FE', $Word)"]
- else_if: "DefinitionValue($Word, 'Speech', 'PluralForms') != ''"
then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))"]
then: [x: "concat('\uF8FE', DefinitionValue($Word, 'Speech', 'PluralForms'))", ct: " "]
else: [x: "concat('\uF8FE', $Word)", ct: "s"]


Expand Down
52 changes: 41 additions & 11 deletions Rules/Languages/de/definitions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
"in": "zoll",
"ft": "fuß",
"mi": "meile",
"rd": "ruthe",
"rd": "rute",
"li": "glied",
"ch": "kette",

Expand Down Expand Up @@ -159,16 +159,46 @@
}

- PluralForms: {
"inch": "zoll", "square inch": "quadratzoll", "cubic inch": "kubikzoll",
"foot": "füße", "square foot": "quadratfuß", "cubic foot": "kubikfuß",
"board foot": "brettfuß",
"degree celsius": "grad celsius",
"degree fahrenheit": "grad fahrenheit",
"hertz": "hertz",
"siemens": "siemens",
"revolution per minute": "umdrehungen pro minute",
"mile per hour": "meilen pro stunde",
"mile per gallon": "meilen pro gallone"
"ampere": "ampere", "candela": "candela", "kelvin": "kelvin",
"gramm": "gramm", "meter": "meter", "mol": "mol", "sekunde": "sekunden",
"becquerel": "becquerel", "coulomb": "coulomb", "grad celsius": "grad celsius",
"farad": "farad", "gray": "gray", "henry": "henry", "hertz": "hertz",
"joule": "joule", "katal": "katal", "lumen": "lumen", "lux": "lux",
"newton": "newton", "ohm": "ohm", "pascal": "pascal", "siemens": "siemens",
"sievert": "sievert", "tesla": "tesla", "volt": "volt", "watt": "watt", "weber": "weber",
"liter": "liter", "tonne": "tonnen", "dalton": "dalton", "neper": "neper",
"atommasse-einheit": "atommasse-einheiten", "elektronenvolt": "elektronenvolt",
"radiant": "radianten", "steradiant": "steradianten", "jahr": "jahre",
"bogenminute": "bogenminuten", "bogensekunde": "bogensekunden", "bit": "bit",
"byte": "byte", "baud": "baud",
"zoll": "zoll", "fuß": "füße", "meile": "meilen", "rute": "ruten",
"glied": "glieder", "kette": "ketten", "fass": "fässer", "gallone": "gallonen",
"quadratzoll": "quadratzoll", "quadratfuß": "quadratfüße", "quadratyard": "quadratyards",
"quadratmeile": "quadratmeilen", "morgen": "morgen", "brettfuß": "brettfüße",
"kubikzoll": "kubikzoll", "kubikfuß": "kubikfüße", "kubikyard": "kubikyards",
"buschelmaß": "buschelmaße", "buschel": "buschel", "teelöffel": "teelöffel",
"esslöffel": "esslöffel", "flüssige dram": "flüssige drams", "gill": "gills",
"tasse": "tassen", "pint": "pints", "quart": "quarts", "korn": "körner",
"dram": "drams", "unze": "unzen", "pfund": "pfund", "zentner": "zentner",
"feingewicht": "feingewichte", "troy-unze": "troy-unzen", "troy-pfund": "troy-pfund",
"ps": "ps", "britische wärmeeinheit": "britische wärmeeinheiten",
"grad fahrenheit": "grad fahrenheit",
"meile pro stunde": "meilen pro stunde", "meile pro gallone": "meilen pro gallone",

"minute": "minuten", "stunde": "stunden", "tag": "tage", "woche": "wochen",
"grad": "grade", "astronomische einheit": "astronomische einheiten",
"lichtjahr": "lichtjahre", "parsec": "parsec", "ångström": "ångström",
"fermi": "fermis", "hektar": "hektar", "dezibel": "dezibel",
"atmosphäre": "atmosphären", "bar": "bar", "kalorie": "kalorien", "curie": "curie",
"gon": "gon", "mol/liter": "mol/liter", "röntgen": "röntgen", "mho": "mho",
"dyn": "dyn", "erg": "erg",
"kibi-bit": "kibi-bit", "mebi-bit": "mebi-bit", "gibi-bit": "gibi-bit",
"tebi-bit": "tebi-bit", "pebi-bit": "pebi-bit", "exbi-bit": "exbi-bit",
"zebi-bit": "zebi-bit", "yobi-bit": "yobi-bit",
"kibi-byte": "kibi-byte", "mebi-byte": "mebi-byte", "gibi-byte": "gibi-byte",
"tebi-byte": "tebi-byte", "pebi-byte": "pebi-byte", "exbi-byte": "exbi-byte",
"zebi-byte": "zebi-byte", "yobi-byte": "yobi-byte",
"umdrehungen pro minute": "umdrehungen pro minute"
}


Expand Down
Loading
Loading