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
1d28f85
Correct image tag in README.md
moritz-gross Apr 2, 2026
40b8631
Fix some problems with bad mmultiscripts.
NSoiffer Apr 3, 2026
031f546
fix typos in comments
NSoiffer Apr 3, 2026
00f6d45
Merge branch 'main' of https://github.com/daisy/MathCAT
NSoiffer Apr 3, 2026
b46db4a
Some fixes that I thought were part of 40b8631ebde34b6c8a8bc95ed64130…
NSoiffer Apr 3, 2026
afb24de
Fix #545 -- data-split not getting removed
NSoiffer Apr 3, 2026
68671f4
comment out some debug statements
NSoiffer Apr 3, 2026
de0fc56
Fix some problems with bad mmultiscripts.
NSoiffer Apr 3, 2026
20769fe
fix up grammar issue and also Orca mention
NSoiffer Apr 6, 2026
6caf07f
change the debugger
NSoiffer Apr 6, 2026
839156b
update the Kurzweil description
NSoiffer Apr 7, 2026
564fb8d
tweak the wording
NSoiffer Apr 7, 2026
26629eb
User guides in English & Swedish + Swedish settings dialogue
TimArborealis Apr 14, 2026
b1ec36b
Change `isize` to `i32` (#550)
moritz-gross Apr 22, 2026
94920a2
fix assertions in chemistry.rs (#552)
moritz-gross Apr 22, 2026
eba39ac
clippy fixes
NSoiffer Apr 22, 2026
ffa0cdd
allow more whitespace before audit-ignore comment
moritz-gross Apr 22, 2026
54c3a77
clippy fixes
NSoiffer Apr 22, 2026
90e68d8
New translator's guide
TimArborealis Apr 23, 2026
e2b6e1c
Fix #532.
NSoiffer Apr 24, 2026
0b346bf
Merge branch 'main' of https://github.com/daisy/MathCAT
NSoiffer Apr 24, 2026
126a721
Add test for #532
NSoiffer Apr 24, 2026
9eee95d
remove extraneous blank line
NSoiffer Apr 25, 2026
fb0bd57
Minor cleanup that removed a call that was in two places and could be…
NSoiffer Apr 25, 2026
67f34cb
fix potential security problem where somehow a person puts in a path …
NSoiffer Apr 28, 2026
97ae493
add Russian translator
NSoiffer Apr 28, 2026
bfb0d4f
Initial seeding for Russian
NSoiffer Apr 7, 2025
ea56663
Update Russian ClearSpeak and unicode rules
Kostenkov-2021 Jan 2, 2026
7e29cd4
Update Russian math terminology translations
Kostenkov-2021 Jan 2, 2026
062e333
Update Russian Unicode symbol translations
Kostenkov-2021 Jan 2, 2026
3c0e4cc
Improve Russian ClearSpeak translations
Kostenkov-2021 Feb 19, 2026
b83b78c
Fixed unicode.yaml file
Kostenkov-2021 Feb 20, 2026
39ae354
Update of unicode-full
Kostenkov-2021 Feb 20, 2026
61fe44a
Add Russian ClearSpeak/SimpleSpeak tests
Kostenkov-2021 Mar 9, 2026
a773243
Update Russian navigation translations
Kostenkov-2021 Mar 31, 2026
179563f
Use correct Russian preposition for fractions
Kostenkov-2021 Mar 31, 2026
b3eb33f
Refine ru SimpleSpeak translations
Kostenkov-2021 Mar 31, 2026
57e0aad
Update Russian overview translations
Kostenkov-2021 Mar 31, 2026
78103f8
Localize Russian unit/prefix names and fix ordinals
Kostenkov-2021 Apr 5, 2026
06f6a4c
Fix RU ClearSpeak absolute-value and navigate
Kostenkov-2021 Apr 5, 2026
dad3917
Add common and anyhow::Result imports to ru.rs
Kostenkov-2021 Apr 5, 2026
14a008e
Update Russian ClearSpeak phrasing and fixes
Kostenkov-2021 Apr 5, 2026
9e4fa83
Expand Russian Unicode mappings
Kostenkov-2021 Apr 28, 2026
62dfb84
Use uppercase 'T' keys and fix text in ru rules
Kostenkov-2021 Apr 28, 2026
9077b86
Merge branch 'ru' of https://github.com/Kostenkov-2021/MathCAT into ru
Kostenkov-2021 Apr 28, 2026
5f61714
Update Russian Unicode speech rules
Kostenkov-2021 Apr 28, 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
4 changes: 2 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg", // "lldb",
"type": "lldb",
"request": "launch",
"program": "${workspaceRoot}/target/debug/mathcat.exe",
"args": [],
Expand All @@ -16,7 +16,7 @@
},
{
"name": "Run Test Debugger",
"type": "cppvsdbg", // "lldb",
"type": "lldb",
"request": "launch",
"program": "${workspaceRoot}/target/debug/mathcat.exe",
"args": [],
Expand Down
3 changes: 2 additions & 1 deletion PythonScripts/audit_translations/parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
Handles parsing of rule files and unicode files to extract rule information.
"""

import re
from pathlib import Path
from typing import Any

Expand Down Expand Up @@ -127,7 +128,7 @@ def parse_unicode_file(content: str, data: Any) -> list[RuleInfo]:

def has_audit_ignore(content: str) -> bool:
"""Check if the rule content contains an audit-ignore comment"""
return "# audit-ignore" in content
return re.search(r"#\s*audit-ignore\b", content) is not None


def find_untranslated_text_entries(node: Any) -> list[UntranslatedEntry]:
Expand Down
8 changes: 8 additions & 0 deletions PythonScripts/audit_translations/tests/test_parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ def test_detects_audit_ignore_comment(self):
"""Ensure detects audit ignore comment."""
assert has_audit_ignore("- name: foo\n # audit-ignore\n tag: bar")

def test_detects_audit_ignore_with_extra_spaces(self):
"""Ensure detects audit ignore when the comment has extra spaces."""
assert has_audit_ignore("- name: foo\n # audit-ignore\n tag: bar")

def test_detects_audit_ignore_with_tab_after_hash(self):
"""Ensure detects audit ignore when the comment uses a tab after the hash."""
assert has_audit_ignore("- name: foo\n #\taudit-ignore\n tag: bar")

def test_detects_inline_audit_ignore(self):
"""Ensure detects inline audit ignore."""
assert has_audit_ignore("- name: foo # audit-ignore")
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MathCAT: Math Capable Assistive Technology

<img src="logo.png" style="position: relative; top: 16px; z-index: -1; alt="The MathCAT logo with a cat sitting on the text "MathCAT"">
<img src="logo.png" style="position: relative; top: 16px; z-index: -1;" alt="The MathCAT logo with a cat sitting on the text MathCAT">
is a library that supports conversion of MathML to:


Expand All @@ -17,4 +17,4 @@ There are four related projects that make use of MathCAT:

MathCAT is used in many assistive technologies including NVDA and JAWS.

For more information, see the [full documentation](https://nsoiffer.github.io/MathCAT/).
For more information, see the [full documentation](https://nsoiffer.github.io/MathCAT/).
10 changes: 5 additions & 5 deletions Rules/Languages/en/ClearSpeak_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' square root of 25)
then: [ot: "the"] # phrase('the' square root of 25)
- test:
if: "$ClearSpeak_Roots = 'PosNegSqRoot' or $ClearSpeak_Roots = 'PosNegSqRootEnd'"
then:
Expand Down Expand Up @@ -65,7 +65,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase(6 is 'the' square root of 36)
then: [ot: "the"] # phrase(6 is 'the' square root of 36)
- test:
if: "$ClearSpeak_Roots = 'PosNegSqRoot' or $ClearSpeak_Roots = 'PosNegSqRootEnd'"
then:
Expand Down Expand Up @@ -262,7 +262,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' third power of 2)
then: [ot: "the"] # phrase('the' third power of 2)
- bookmark: "*[2]/@id"
- test:
if: "*[2][self::m:mn][not(contains(., '.'))]"
Expand Down Expand Up @@ -478,7 +478,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' absolute value of 25)
then: [ot: "the"] # phrase('the' absolute value of 25)
- x: "$WordToSay"
- t: "of" # phrase(the absolute value 'of' 25)
- x: "*[1]"
Expand Down Expand Up @@ -611,7 +611,7 @@
- bookmark: "@id"
- test:
if: "$Verbosity!='Terse' and not(IsNode(following-sibling::*[2],'simple'))"
then: [t: "the"] # phrase('the' square root of 25)
then: [ot: "the"] # phrase('the' square root of 25)
- test:
- if: ".='log'"
then: [t: "log"]
Expand Down
4 changes: 2 additions & 2 deletions Rules/Languages/en/SharedRules/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase("'the' root of x")
then: [ot: "the"] # phrase("'the' root of x")
- t: "root"
- test:
if: "$Verbosity!='Terse'"
Expand All @@ -138,7 +138,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase("'the' root of x")
then: [ot: "the"] # phrase("'the' root of x")
- t: "root with index" # phrase("the 'root with index' 3 of 5")
- x: "*[1]"
- pause: short
Expand Down
8 changes: 4 additions & 4 deletions Rules/Languages/en/SharedRules/general.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' square root of 25 equals 5)
then: [ot: "the"] # phrase('the' square root of 25 equals 5)
- x: "*[1]"
- t: "from" # phrase(subtracting 5 'from' 10 gives 5)
- x: "*[2]"
Expand All @@ -171,7 +171,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' square root of 25 equals 5)
then: [ot: "the"] # phrase('the' square root of 25 equals 5)
- x: "*[1]"
- t: "over" # phrase(2 'over' 3 equals two thirds)
- x: "*[2]"
Expand All @@ -185,7 +185,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' square root of 25 equals 5)
then: [ot: "the"] # phrase('the' square root of 25 equals 5)
- x: "*[1]"
- t: "of" # phrase(the square root 'of' 25 equals 5)
- x: "*[2]"
Expand Down Expand Up @@ -472,7 +472,7 @@
- bookmark: "@id"
- test:
- if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' logarithm function is used in mathematics)
then: [ot: "the"] # phrase('the' logarithm function is used in mathematics)
- test:
- if: ".= 'log'"
then: [t: "log"] # phrase(the 'log' function is used in mathematics)
Expand Down
4 changes: 2 additions & 2 deletions Rules/Languages/en/SharedRules/geometry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
replace:
- test:
if: "$Verbosity='Verbose'"
then: [t: "the"] # phrase('the' arc A B C)
then: [ot: "the"] # phrase('the' arc A B C)
- t: "arc" # phrase(the 'arc' A B C)
- x: "*[1]"
- x: "*[2]"
Expand All @@ -64,7 +64,7 @@
replace:
- test:
if: "$Verbosity='Verbose'"
then: [t: "the"] # phrase('the' point at 1, 2)
then: [ot: "the"] # phrase('the' point at 1, 2)
- t: "point" # phrase(the 'point' at 1, 2)
- test:
if: "$Verbosity='Verbose'"
Expand Down
6 changes: 3 additions & 3 deletions Rules/Languages/en/SimpleSpeak_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # phrase('the' square root of x)
then: [ot: "the"] # phrase('the' square root of x)
- t: "square root" # phrase(the 'square root' of x)
- test:
if: "$Verbosity!='Terse'"
Expand All @@ -52,7 +52,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- test:
if: "*[2][self::m:mn and not(contains(., '.'))]"
then_test:
Expand Down Expand Up @@ -181,7 +181,7 @@
replace:
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"] # # phrase('the' fourth power of 10)
then: [ot: "the"] # # phrase('the' fourth power of 10)
- bookmark: "*[2]/@id"
- test:
if: "*[2][self::m:mn][not(contains(., '.'))]"
Expand Down
1 change: 0 additions & 1 deletion Rules/Languages/en/navigate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,6 @@

# ********* ZoomIn ***************
- name: zoom-in-leaf

tag: "*"
match: "($NavCommand = 'ZoomIn' or $NavCommand = 'ZoomInAll') and IsNode(., 'leaf')"
replace:
Expand Down
16 changes: 8 additions & 8 deletions Rules/Languages/en/unicode-full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -676,7 +676,7 @@
- "∁": # 0x2201
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "complement of"
- "∂": # 0x2202
- test:
Expand Down Expand Up @@ -770,17 +770,17 @@
- "√": # 0x221a
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "square root of"
- "∛": # 0x221b
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "cube root of"
- "∜": # 0x221c
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "fourth root of"
- "∝": # 0x221d
- test:
Expand Down Expand Up @@ -893,7 +893,7 @@
- "≏": # 0x224f
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "difference between"
- "≐": [t: "approaches the limit"] # 0x2250
- "≑": # 0x2251
Expand Down Expand Up @@ -1227,17 +1227,17 @@
- "⋒": # 0x22d2
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "double intersection of"
- "⋓": # 0x22d3
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "double union of"
- "⋔": # 0x22d4
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "proper intersection of"
- "⋕": # 0x22d5
- test:
Expand Down
4 changes: 2 additions & 2 deletions Rules/Languages/en/unicode.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@
- "∆": # 0x2206
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "laplacian of"
- "∈": # 0x2208
- test:
Expand Down Expand Up @@ -471,7 +471,7 @@
- "√": # 0x221a
- test:
if: "$Verbosity!='Terse'"
then: [t: "the"]
then: [ot: "the"]
- t: "square root of"
- "∝": # 0x221d
- test:
Expand Down
Loading
Loading