diff --git a/Rules/Languages/hu/SharedRules/default.yaml b/Rules/Languages/hu/SharedRules/default.yaml index 89aae5c0..b218667d 100644 --- a/Rules/Languages/hu/SharedRules/default.yaml +++ b/Rules/Languages/hu/SharedRules/default.yaml @@ -62,7 +62,7 @@ - test: - if: "string-length(.) = 1 and text() != '_'" # need unicode.tdl to kick in for single letter tokens then: [x: "text()"] - - else_if: "@data-chem-element or @data-roman-numeral" # NavMode=Character needs this + - else_if: "@data-chem-element > 0 or @data-roman-numeral" # NavMode=Character needs this then: [SPELL: "text()", pause: "short"] else: [x: "translate(., '-_\u00A0', ' ')"] # from intent literals or from extra spaces added (which get deleted) @@ -237,12 +237,26 @@ - x: "*[2]" - T: "alatt" # phrase(x with z 'below' it) +# FIX: this only works for up to four dots (which is realistically all we need) +- name: dot-over + tag: modified-variable + match: "*[1][self::m:mi] and (*[2][translate(., '.', '')=''])" + replace: + - x: "*[1]" + - x: "IfThenElse(string-length(*[2])=1, 'pont', + IfThenElse(string-length(*[2])=2, 'pont pont', + IfThenElse(string-length(*[2])=3, 'pont pont pont', 'pont pont pont pont') + ))" + - pause: short + +# FIX: the 'translate' list is a little different from 'modified-variable', so we also include 'mover' (unify?) - name: diacriticals - tag: mover + tag: [mover, modified-variable] match: "*[1][self::m:mi] and *[2][translate(., '\u0306\u030c.\u00A8\u02D9\u20DB\u20DC`^ˇ~→¯_', '')='']" replace: - x: "*[1]" - x: "*[2]" + - pause: short - name: default tag: mover diff --git a/Rules/Languages/hu/SharedRules/general.yaml b/Rules/Languages/hu/SharedRules/general.yaml index a5363878..0637bf6e 100644 --- a/Rules/Languages/hu/SharedRules/general.yaml +++ b/Rules/Languages/hu/SharedRules/general.yaml @@ -469,15 +469,17 @@ - name: log # handle both log and ln (if in an mrow, 'intents' are used) tag: mi - match: ".='log' or .='ln'" + match: ".='log' or .='Log' or .='ln'" replace: - bookmark: "@id" - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # phrase('the' logarithm function is used in mathematics) + then: [OT: ""] # phrase('the' logarithm function is used in mathematics) - test: - if: ".= 'log'" then: [T: "logaritmus"] # phrase(the 'log' function is used in mathematics) + - else_if: ".= 'Log'" + then: [T: "logaritmus főértéke"] - else_if: "$Verbosity='Terse'" then: [SPELL: "'ln'"] else: [T: "természetes alapú logaritmus"] # phrase(the 'natural log' function is used in mathematics) diff --git a/Rules/Languages/hu/unicode-full.yaml b/Rules/Languages/hu/unicode-full.yaml index c45035bf..1d9d940a 100644 --- a/Rules/Languages/hu/unicode-full.yaml +++ b/Rules/Languages/hu/unicode-full.yaml @@ -1,6 +1,5 @@ --- - - "¢": [T: "centiméter"] # 0xa2 (en: 'cents', DeepL translation) - "£": [T: "font"] # 0xa3 (en: 'pounds', DeepL translation) - "¤": [T: "valuta jel"] # 0xa4 (en: 'currency sign', DeepL translation) diff --git a/Rules/Languages/hu/unicode.yaml b/Rules/Languages/hu/unicode.yaml index b184a627..3d8bcdfa 100644 --- a/Rules/Languages/hu/unicode.yaml +++ b/Rules/Languages/hu/unicode.yaml @@ -1,575 +1,547 @@ ---- - - "a": - - test: - if: "$TTS='none'" - then: [T: "a"] # long "a" sound in all speech engines I tested (espeak, MS SAPI, eloquence, - else: [SPELL: "'a'"] # AWS Polly, ReadSpeaker, NaturalReader, google cloud, nuance, ibm watson) - - "b-z": - - test: - if: "$TTS='none'" - then: [T: "."] - else: [SPELL: "'.'"] - # Note to translators: - # most languages don't have two ways to pronounce 'a' -- if not need, remove the rules and change "B-Z" to "A-Z" - # some languages say the word for "uppercase" after the letter. Make sure to change that where appropriate by moving some code around - # Capital letters are a little tricky: users can pick their favorite word (something that was requested) and - # screen readers have options to use pitch changes or beeps instead of or in addition to say "cap" - # Also, if a user can see the screen, they probably don't need to hear "cap", but if they specified an override, they must want to hear the override. - # Some languages say the word for "uppercase" after the letter. Make sure to change that where appropriate by moving some code around - - "A": - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "nagy"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - replace: - - test: - if: "$TTS='none'" - then: [T: "a"] - else: [SPELL: "'a'"] - - - "B-Z": - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "nagy"] - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - # note: processing of ranges converts '.' into the character, so it needs to be in quotes below - replace: [SPELL: "translate('.', 'BCDEFGHIJKLMNOPQRSTUVWXYZ', 'bcdefghijklmnopqrstuvwxyz')"] - - - "0-9": [T: "."] # (en: '.', DeepL translation) - - - " ": [T: " "] # 0x20 (DeepL translation) - - - "!": # 0x21 - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then_test: - if: "$Verbosity = 'Terse'" - then: [T: "felkiáltójel"] # 0x21 (DeepL translation) - else: [T: "felkiáltójel"] # 0x21 (en: 'exclamation point', DeepL translation) - else: [T: "faktoriális"] # 0x21 (en: 'factorial', DeepL translation) - - - "\"": [T: "idézőjel"] # 0x22 (en: 'quotation mark', DeepL translation) - - "#": [T: "kettőskereszt"] # 0x23 (DeepL translation) - - "$": [T: "dollár"] # 0x24 (en: 'dollars', DeepL translation) - - "%": [T: "százalék"] # 0x25 (en: 'percent', DeepL translation) - - "&": [T: "zárójel"] # 0x26 (en: 'ampersand', DeepL translation) - - "'": [T: "aposztróf"] # 0x27 (en: 'apostrophe', DeepL translation) - - "(": # 0x28 - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then_test: - if: "$Verbosity='Terse'" - then: [T: "nyitott zárójel"] # 0x28 (DeepL translation) - else: [T: "nyitott zárójel"] # 0x28 (en: 'open paren', DeepL translation) - else: [T: "bal zárójel"] # 0x28 (en: 'left paren', DeepL translation) - - ")": # 0x29 - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then_test: - if: "$Verbosity='Terse'" - then: [T: "zárt zárójel"] # 0x29 (en: 'close', DeepL translation) - else: [T: "zárt zárójel"] # 0x29 (en: 'close paren', DeepL translation) - else: [T: "jobb zárójel"] # 0x29 (en: 'right paren', DeepL translation) - - - "*": # 0x2a - test: - if: "parent::*[name(.)='msup' or name(.)='msubsup' or name(.)='skip-super']" - then: [T: "csillag"] # 0x2a (en: 'star', DeepL translation) - else: [T: "szorozva"] # 0x2a (DeepL translation) - - "+": [T: "plusz"] # 0x2b (en: 'plus', DeepL translation) - - ",": # 0x2c - # the following deals with the interaction of "," with "…" which sometimes wants the ',' to be silent - # that this test is here and not with "…" is not ideal, but seems simplest - test: - if: - - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or " - # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' - # speak "comma" when not adjacent to '…' - - "( following-sibling::*[1][text()!= '…'] and preceding-sibling::*[1][text()!='…'] ) or " - # except if expression starts with '…' - - "../*[1][.='…'] " - then: - - T: "vessző" # (en: 'comma', google translation) - - test: - if: "$Verbosity != Terse" - then: [pause: short] - # else silent - - - "-": [T: "mínusz"] # 0x2d (en: 'minus', DeepL translation) - - ".": # 0x2e - - test: - if: "parent::*[1][self::m:mn]" - then: [T: "pont"] # (en: 'point', DeepL translation) - else: [T: "pont"] # (en: 'dot', DeepL translation) - - "/": # 0x2f - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [T: "per"] # 0x2f (DeepL translation) - else: [T: "osztva"] # 0x2f (en: 'divided by', DeepL translation) - - - ":": [T: "kettőspont"] # 0x3a (en: 'colon', DeepL translation) - - ";": [T: "pontosvessző"] # 0x3b (en: 'semicolon', DeepL translation) - - "<": # 0x3c - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "kisebb, mint" # (en: 'less than', DeepL translation) - - "=": # 0x3d - - test: - if: "$Verbosity!='Terse'" - then: [T: "egyenlő"] # (en: 'is equal to', DeepL translation) - else: [T: "egyenlő"] # (en: 'equals', DeepL translation) - - - ">": # 0x3e - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "nagyobb, mint" # (en: 'greater than', DeepL translation) - - "?": [T: "kérdőjel"] # 0x3f (en: 'question mark', DeepL translation) - - "@": [T: "kukac"] # 0x40 (en: 'at sign', DeepL translation) - - "[": # 0x5b - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "nyitott zárójel"] # (en: 'open bracket', DeepL translation) - else: [T: "bal oldali zárójel"] # (en: 'left bracket', DeepL translation) - - "\\": [T: "bexles"] # 0x5c (en: 'back slash', DeepL translation) - - "]": # 0x5d - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "zárójel"] # (en: 'close bracket', DeepL translation) - else: [T: "jobb oldali zárójel"] # (en: 'right bracket', DeepL translation) - - "^": # 0x5e - - test: - if: "parent::m:modified-variable or parent::m:mover" - then: [T: "kalap"] # (en: 'hat', DeepL translation) - else: [T: "fölfelényíl"] # (DeepL translation) - - "_": [T: "aláhúzás"] # 0x5f (en: 'under bar', DeepL translation) - - "`": [T: "súlyozott"] # 0x60 (en: 'grave', DeepL translation) - - "{": # 0x7b - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "nyitott zárójel"] # (en: 'open brace', DeepL translation) - else: [T: "bal oldali zárójel"] # (en: 'left brace', DeepL translation) - - "|": # 0x7c - # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' - - with: - variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) - replace: - - test: - - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [T: "függőleges vonal"] # (en: 'vertical line', DeepL translation) - - else_if: "$SpeechStyle != 'ClearSpeak'" - then_test: - - if: "$DefaultToGiven" - then: [T: "adott"] # (en: 'given', DeepL translation) - - else_if: "preceding-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))] and - following-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))]" - then: [T: "osztja"] # (en: 'divides', DeepL translation) - else: [T: "függőleges vonal"] # (en: 'vertical line', DeepL translation) - - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" - then: [T: "függőleges vonal"] # (en: 'vertical line', DeepL translation) - - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" - then: [T: "olyan, hogy"] # (en: 'such that', DeepL translation) - - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" - then: [T: "adott"] # (en: 'given', DeepL translation) - - else: [T: "osztja"] # (en: 'divides', DeepL translation) - - - "}": # 0x7d - - test: - if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' - then: [T: "zárt zárójel"] # (en: 'close brace', DeepL translation) - else: [T: "jobb oldali zárójel"] # (en: 'right brace', DeepL translation) - - - "~": [T: "tilde"] # 0x7e (DeepL translation) - - " ": # 0xa0 - - test: - # could be mtext in mtd or mtext in an mrow that is a concatenation of mtd's. Is there a better solution? - if: "@data-empty-in-2D and not(ancestor::*[self::m:piecewise or self::m:system-of-equations or self::m:lines])" - then: [T: "üres"] # want to say something for fraction (etc) with empty child (en: 'empty', DeepL translation) - else: [T: ""] - - - "¬": [T: "logikai nem"] # 0xac (en: 'not', DeepL translation) - - "°": [T: "fok"] # 0xb0 (en: 'degrees', DeepL translation) - - "±": [T: "plusz vagy mínusz"] # 0xb1 (en: 'plus or minus', DeepL translation) - - "´": [T: "éles ékezet"] # 0xb4 (en: 'acute', DeepL translation) - - "·": # 0xB7 - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')] or not($SpeechStyle = 'ClearSpeak' and $ClearSpeak_MultSymbolDot = 'Auto')" - then: [T: "pont"] # (en: 'dot', DeepL translation) - else: [T: "szorozva"] # (DeepL translation) - - "×": # 0xd7 - - test: - if: "$SpeechStyle = 'ClearSpeak'" - then_test: - - if: "$ClearSpeak_MultSymbolX = 'Auto'" - then: [T: "szorozva"] # (DeepL translation) - - else_if: "$ClearSpeak_MultSymbolX = 'By'" - then: [T: "szorozva"] # (DeepL translation) - else: [T: "kereszt"] # (en: 'cross', DeepL translation) - else_test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [T: "kereszt"] # (en: 'cross', DeepL translation) - else: [T: "szorozva"] # (DeepL translation) - - - "÷": [T: "osztva"] # 0xf7 (en: 'divided by', DeepL translation) - - "̀": [T: "súlyos ékezet díszítés"] # 0x300 (en: 'grave accent embellishment', DeepL translation) - - "́": [T: "akut ékezet díszítés"] # 0x301 (en: 'acute accent embellishment', DeepL translation) - - "̂": [T: "cirkumflex ékezet díszítés"] # 0x302 (en: 'circumflex accent embellishment', DeepL translation) - - "̃": [T: "tilde"] # 0x303 (en: 'tilde embellishment', DeepL translation) - - "̄": [T: "makron"] # 0x304 (en: 'macron embellishment', DeepL translation) - - "̅": [T: "túlszárnyaló díszítés"] # 0x305 (en: 'overbar embellishment', DeepL translation) - - "̆": [T: "rövid"] # 0x306 (DeepL translation) - - "̇": [T: "pont a díszítés felett"] # 0x307 (en: 'dot above embellishment', DeepL translation) - - # Note: ClearSpeak has pref TriangleSymbol for "Δ", but that is wrong - - "Α-Ω": - - test: - if: "$CapitalLetters_Beep" - then: - - audio: - value: "beep.mp4" - replace: [] - - test: - if: "$CapitalLetters_UseWord" - then_test: - if: "$SpeechOverrides_CapitalLetters = ''" - then_test: - if: "$Impairment = 'Blindness'" - then: [T: "nagy"] # (en: 'cap', DeepL translation) - else: [x: "$SpeechOverrides_CapitalLetters"] - - pitch: - value: "$CapitalLetters_Pitch" - # note: processing of ranges converts '.' into the character, so it needs to be in quotes below - replace: [SPELL: "translate('.', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ', 'αβγδεζηθικλμνξοπρςστυφχψω')"] - - - "α": [T: "alfa"] # 0x3b1 (en: 'alpha', DeepL translation) - - "β": [T: "béta"] # 0x3b2 (en: 'beta', DeepL translation) - - "γ": [T: "gamma"] # 0x3b3 (DeepL translation) - - "δ": [T: "delta"] # 0x3b4 (DeepL translation) - - "ε": [T: "epszilon"] # 0x3b5 (DeepL translation) - - "ζ": [T: "zéta"] # 0x3b6 (en: 'zeta', DeepL translation) - - "η": [T: "éta"] # 0x3b7 (DeepL translation) - - "θ": [T: "théta"] # 0x3b8 (en: 'theta', DeepL translation) - - "ι": [T: "ióta"] # 0x3b9 (DeepL translation) - - "κ": [T: "kappa"] # 0x3ba (DeepL translation) - - "λ": [T: "lambda"] # 0x3bb (DeepL translation) - - "μ": [T: "mű"] # 0x3bc (DeepL translation) - - "ν": [T: "nű"] # 0x3bd (DeepL translation) - - "ξ": [T: "kszí"] # 0x3be (DeepL translation) - - "ο": [T: "omikron"] # 0x3bf (en: 'omicron', DeepL translation) - - "π": [T: "pí"] # 0x3c0 (DeepL translation) - - "ρ": [T: "ró"] # 0x3c1 (DeepL translation) - - "ς": [T: "szóvégi szigma"] # 0x3c2 (en: 'final sigma', DeepL translation) - - "σ": [T: "szigma"] # 0x3c3 (DeepL translation) - - "τ": [T: "tau"] # 0x3c4 (DeepL translation) - - "υ": [T: "üpszilon"] # 0x3c5 (DeepL translation) - - "φ": [T: "fí"] # 0x3c6 (DeepL translation) - - "χ": [T: "khí"] # 0x3c7 (DeepL translation) - - "ψ": [T: "pszí"] # 0x3c8 (DeepL translation) - - "ω": [T: "omega"] # 0x3c9 (DeepL translation) - - "ϕ": [T: "phi"] # 0x3d5 (DeepL translation) - - "ϖ": [T: "pí"] # 0x3d6 (DeepL translation) - - "ϵ": [T: "holdkóros epszilon"] # 0x3f5 (DeepL translation) - - "϶": [T: "félhold alakú tükrözött görög epszilon"] # 0x3f6 (en: 'reversed epsilon', DeepL translation) - - - "–": [T: "en kötőjel"] # 0x2013 (en: 'en dash', DeepL translation) - - "—": [T: "em kötőjel"] # 0x2014 (en: 'em dash', DeepL translation) - - "―": [T: "vízszintes sáv"] # 0x2015 (en: 'horizontal bar', DeepL translation) - - "‖": [T: "dupla függőleges vonal"] # 0x2016 (en: 'double vertical line', DeepL translation) - - "…": # 0x2026 - test: - if: - - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or" - # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' - # speak '…' as 'and so on...' unless expr starts with '…' - - "../*[1][.='…']" - then: [T: "pont pont pont"] # (en: 'dot dot dot', DeepL translation) - else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn' - if: "count(following-sibling::*) = 0" - then: [T: "és így tovább"] # (en: 'and so on', DeepL translation) - else: [T: "és így tovább egészen az alábbi értékig:"] # (en: 'and so on up to', DeepL translation) - - - "⁡": # 0x2061 - - test: - # skip saying "of" when Terse and a trig function, when it is a shape (does this happen?), or we are in :literal mode - if: "not( - ( $Verbosity='Terse' or ($SpeechStyle = 'ClearSpeak' and IsNode(following-sibling::*[1],'simple')) and - preceding-sibling::*[1][IfThenElse($SpeechStyle='ClearSpeak', - IsInDefinition(., 'ClearSpeakTrigFunctionNames'), - IsInDefinition(., 'TrigFunctionNames') )] - ) or - preceding-sibling::*[1][IsInDefinition(., 'GeometryShapes')] or - (@data-changed='added' and ancestor-or-self::*[contains(@data-intent-property, ':literal:')]) - )" - then: [T: ""] # (DeepL translation) - - "⁢": [T: ""] # 0x2062 - - "⁣": [T: "láthatatlan elválasztó"] # 0x2063 - - "⁤": [T: "és"] # 0x2064 (en: 'and', DeepL translation) - - "′": [T: "prím"] # 0x2032 (en: 'prime', DeepL translation) - - "″": [T: "dupla prím"] # 0x2033 (en: 'double prime', DeepL translation) - - "‴": [T: "hármas prím"] # 0x2034 (en: 'triple prime', DeepL translation) - - - "ℂℕℚℝℤ": # here we rely on this running through the table again to speak "cap xxx" - - T: "duplán leütött" # (en: 'double-struck', DeepL translation) - - SPELL: "translate('.', 'ℂℕℚℝℤ', 'CNQRZ')" - - - "℃": [T: "celsius fok"] # 0x2103 (en: 'degrees celsius', DeepL translation) - - "℉": [T: "fahrenheit fok"] # 0x2109 (en: 'degrees fahrenheit', DeepL translation) - - "ℋℛℓ": # 0x210b - - T: "alsó index" # (DeepL translation) - - SPELL: "translate('.', 'ℋℛℓ', 'HRl')" - - "ℎ": [T: "planck-állandó"] # 0x210e (en: 'planck constant', DeepL translation) - - "ℜ": # 0x211c - - T: "fraktur" # (DeepL translation) - - SPELL: "'R'" - - - "Ω": [T: "ohm"] # 0x2126 (en: 'ohms', DeepL translation) - - "K": [T: "kelvin"] # 0x212a (DeepL translation) - - "Å": [T: "angström"] # 0x212b (en: 'angstroms', DeepL translation) - - "ⅆⅇⅈⅉ": # 0x2146-9 - - T: "duplán dőlt betűs" # (en: 'double-struck italic', DeepL translation) - - SPELL: "translate('.', 'ⅆⅇⅈⅉ', 'deij')" - - - "←": [T: "balra nyíl"] # 0x2190 (en: 'left arrow', DeepL translation) - - "↑": [T: "felfelé nyíl"] # 0x2191 (en: 'up arrow', DeepL translation) - - "→": # 0x2192 - - test: - if: "ancestor::*[2][self::m:limit]" - then: [T: "megközelítések"] # (en: 'approaches', DeepL translation) - else: [T: "jobbra nyíl"] # (en: 'right arrow', DeepL translation) - - - "↓": [T: "lefelé nyíl"] # 0x2193 (en: 'down arrow', DeepL translation) - - "⇒": [T: "dupla jobbranyíl"] # 0x21d2 (en: 'right double arrow', DeepL translation) - - "∀": [T: "minden"] # 0x2200 (en: 'for all', DeepL translation) - - "∂": # 0x2202 - - test: - if: "$Verbosity='Terse'" - then: [T: "részleges"] # (en: 'partial', DeepL translation) - else: [T: "parciális derivált"] # (en: 'partial derivative', DeepL translation) - - "∃": [T: "létezik"] # 0x2203 (en: 'there exists', DeepL translation) - - "∄": [T: "nem létezik"] # 0x2204 (en: 'there does not exist', DeepL translation) - - "∅": [T: "üres halmaz"] # 0x2205 (en: 'empty set', DeepL translation) - - "∆": # 0x2206 - - test: - if: "$Verbosity!='Terse'" - then: [T: "a"] # (en: 'the', DeepL translation) - - T: "növekménye" # (en: 'laplacian of', DeepL translation) - - "∈": # 0x2208 - - test: - if: "$SpeechStyle != 'ClearSpeak'" - then: - - test: - if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "eleme ennek:" # (en: 'an element of', DeepL translation) - # 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: ""] # (DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "tagja"] # (en: 'member of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "eleme ennek:"] # (en: 'element of', DeepL translation) - - else: [T: "hozzátartozó eleme ennek:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to', DeepL translation) - else_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "tagja az alábbi halmaznak:"] # (en: 'is a member of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "egy eleme ennek:"] # (en: 'is an element of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "benne van ebben:"] # (en: 'is in', DeepL translation) - - else: [T: "ebbe a halmazba tartozik:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to', DeepL translation) - - "∉": # 0x2209 - # rule is identical to 0x2208 - - test: - if: "$SpeechStyle != 'ClearSpeak'" - then: - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "nem eleme ennek:" # (en: 'not an element of', DeepL translation) - # 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: "nincs benne ebben:"] # (en: 'not in', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "nem tagja az alábbi halmaznak:"] # (en: 'not member of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "nem eleme ennek:"] # (en: 'not element of', DeepL translation) - - else: [T: "nem tartozik ebbe:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to', DeepL translation) - else_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "nem tagja az alábbi halmaznak:"] # (en: 'is not a member of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "nem eleme ennek:"] # (en: 'is not an element of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "nincs benne az alábbi halmazban:"] # (en: 'is not in', DeepL translation) - - else: [T: "nem tartozik ebbe:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'does not belong to', DeepL translation) - - "∊": # 0x220a - - test: - if: "$SpeechStyle != 'ClearSpeak'" - then: - - test: - if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "egy eleme" # (en: 'an element of', DeepL translation) - # 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: ""] # (DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "tagja ennek:"] # (en: 'member of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "kisbetűs eleme ennek:"] # (en: 'element of', DeepL translation) - - else: [T: "hozzátartozó eleme ennek:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to', DeepL translation) - else_test: - - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: "nem tagja az alábbi halmaznak:"] # (en: 'is a member of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: "egy eleme ennek:"] # (en: 'is an element of', DeepL translation) - - else_if: $ClearSpeak_SetMemberSymbol = 'In' - then: [T: "benne van ebben:"] # (en: 'is in', DeepL translation) - - else: [T: "ebbe a halmazba tartozik:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to', DeepL translation) - - "∏": [T: "produktum"] # 0x220f (en: 'product', DeepL translation) - - "∐": [T: "diszjunkt unió"] # 0x2210 (en: 'co-product', DeepL translation) - - "∑": [T: "összeg"] # 0x2211 (DeepL translation) - - "−": [T: "mínusz"] # 0x2212 (en: 'minus', DeepL translation) - - "∓": [T: "mínusz vagy plusz"] # 0x2213 (en: 'minus or plus', DeepL translation) - - "∗": [T: "csillag operátortimes"] # 0x2217 (DeepL translation) - - "∘": [T: "gyűrű operátor"] # 0x2218 (en: 'composed with', DeepL translation) - - "√": # 0x221a - - test: - if: "$Verbosity!='Terse'" - then: [T: "a"] # (en: 'the', DeepL translation) - - T: "négyzetgyöke" # (en: 'square root of', DeepL translation) - - "∝": # 0x221d - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "arányos" # (en: 'proportional to', DeepL translation) - - "∞": [T: "végtelen"] # 0x221e (en: 'infinity', DeepL translation) - - "∟": [T: "derékszög"] # 0x221f (en: 'right angle', DeepL translation) - - "∠": [T: "szög"] # 0x2220 (en: 'angle', DeepL translation) - - "∡": [T: "mért szög"] # 0x2221 (en: 'measured angle', DeepL translation) - - "∣": [T: "osztója"] # 0x2223 (en: 'divides', DeepL translation) - - "∤": [T: "nem osztója"] # 0x2224 (en: 'does not divide', DeepL translation) - - "∥": # 0x2225 - - test: - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" - then: [T: "dupla függőleges vonal"] # (en: 'double vertical line', DeepL translation) - else: - - test: - if: "$Verbosity!='Terse'" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "párhuzamos" # (en: 'parallel to', DeepL translation) - - "∦": # 0x2226 - - test: - if: "$Verbosity!='Terse'" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "nem párhuzamos" # (en: 'not parallel to', DeepL translation) - - "∧": [T: "logikai és"] # 0x2227 (en: 'and', DeepL translation) - - "∨": [T: "logikai vagy"] # 0x2228 (en: 'or', DeepL translation) - - "∩": [T: "metszéspont"] # 0x2229 (en: 'intersection', DeepL translation) - - "∪": [T: "unió"] # 0x222a (en: 'union', DeepL translation) - - "∫": [T: "integrál"] # 0x222b (en: 'integral', DeepL translation) - - "∬": [T: "kettős integrál"] # 0x222c (en: 'double integral', DeepL translation) - - "∭": [T: "hármas integrál"] # 0x222d (en: 'triple integral', DeepL translation) - - "∮": [T: "kontúr integrál"] # 0x222e (en: 'contour integral', DeepL translation) - - "∶": # 0x2236 - - test: - if: "$Verbosity!='Terse'" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "hogy" # (DeepL translation) - - "∷": [T: "arány"] # 0x2237 (DeepL translation) - - "∼": [T: "változik"] # 0x223c (en: 'varies with', DeepL translation) - - "∽": [T: "fordított tilde"] # 0x223d (en: 'reversed tilde', DeepL translation) - - "∾": # 0x223e - - test: - if: "$Verbosity!='Terse'" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "legpozitívabb" # (en: 'most positive', DeepL translation) - - "∿": [T: "szinuszhullám"] # 0x223f (en: 'sine wave', DeepL translation) - - "≠": # 0x2260 - - test: - if: "$Verbosity!='Terse'" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "nem egyenlő" # (en: 'not equal to', DeepL translation) - - "≡": # 0x2261 - - test: - if: "$Verbosity!='Terse'" - then: [T: "van"] # (en: 'is', DeepL translation) - - T: "azonos" # (en: 'identical to', DeepL translation) - - "≤": # 0x2264 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "kisebb vagy egyenlő" # (en: 'less than or equal to', DeepL translation) - - "≥": # 0x2265 - - test: - if: "$Verbosity!='Terse'" - then: [T: ""] # (en: 'is', DeepL translation) - - T: "nagyobb vagy egyenlő" # (en: 'greater than or equal to', DeepL translation) - - "≦": [T: "kisebb, mint egyenlő"] # 0x2266 (en: 'less than over equal to', DeepL translation) - - "≧": [T: "nagyobb, mint az egyenlő"] # 0x2267 (en: 'greater than over equal to', DeepL translation) - - "≺": [T: "megelőzi"] # 0x227a (en: 'precedes', DeepL translation) - - "≻": [T: "követi"] # 0x227b (en: 'succeeds', DeepL translation) - - "⊂": # 0x2282 - - test: - if: "$Verbosity!='Terse'" - then: [T: "egy"] # (DeepL translation) - - T: "részhalmaza" # (en: 'subset of', DeepL translation) - - "⊃": # 0x2283 - - test: - if: "$Verbosity!='Terse'" - then: [T: "egy"] # (DeepL translation) - - T: "szuperhalmaza ennek:" # (en: 'superset of', DeepL translation) - - "⊄": # 0x2284 - - test: - if: "$Verbosity!='Terse'" - then: [T: "egy"] # (en: 'is', DeepL translation) - - T: "nem részhalmaza ennek:" # (en: 'not a subset of', DeepL translation) - - "⊅": # 0x2285 - - test: - if: "$Verbosity!='Terse'" - then: [T: "egy"] # (en: 'is', DeepL translation) - - T: "nem szuperhalmaza ennek:" # (DeepL translation) - - "⊆": # 0x2286 - - test: - if: "$Verbosity!='Terse'" - then: [T: "egy"] # (DeepL translation) - - T: "részhalmaza vagy egyenlő" # (en: 'subset of or equal to', DeepL translation) - - "⊇": # 0x2287 - - test: - if: "$Verbosity!='Terse'" - then: [T: "egy"] # (DeepL translation) - - T: "szuperhalmaza vagy egyenlő" # (en: 'superset of or equal to', DeepL translation) +--- + - "a-z": + - test: + if: "$TTS='none'" + then: [T: "."] + else: [SPELL: "'.'"] + # Note to translators: + # most languages don't have two ways to pronounce 'a' -- if not need, remove the rules and change "B-Z" to "A-Z" + # some languages say the word for "uppercase" after the letter. Make sure to change that where appropriate by moving some code around + # Capital letters are a little tricky: users can pick their favorite word (something that was requested) and + # screen readers have options to use pitch changes or beeps instead of or in addition to say "cap" + # Also, if a user can see the screen, they probably don't need to hear "cap", but if they specified an override, they must want to hear the override. + # Some languages say the word for "uppercase" after the letter. Make sure to change that where appropriate by moving some code around + - "AB-Z": + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "nagy"] + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + # note: processing of ranges converts '.' into the character, so it needs to be in quotes below + replace: [SPELL: "translate('.', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"] + + - "0-9": [T: "."] # (en: '.', DeepL translation) + + - " ": [T: " "] # 0x20 (DeepL translation) + + - "!": # 0x21 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then_test: + if: "$Verbosity = 'Terse'" + then: [T: "felkiáltójel"] # 0x21 (DeepL translation) + else: [T: "felkiáltójel"] # 0x21 (en: 'exclamation point', DeepL translation) + else: [T: "faktoriális"] # 0x21 (en: 'factorial', DeepL translation) + + - "\"": [T: "idézőjel"] # 0x22 (en: 'quotation mark', DeepL translation) + - "#": [T: "kettőskereszt"] # 0x23 (DeepL translation) + - "$": [T: "dollár"] # 0x24 (en: 'dollars', DeepL translation) + - "%": [T: "százalék"] # 0x25 (en: 'percent', DeepL translation) + - "&": [T: "zárójel"] # 0x26 (en: 'ampersand', DeepL translation) + - "'": [T: "aposztróf"] # 0x27 (en: 'apostrophe', DeepL translation) + - "(": # 0x28 + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then_test: + if: "$Verbosity='Terse'" + then: [T: "nyitott zárójel"] # 0x28 (DeepL translation) + else: [T: "nyitott zárójel"] # 0x28 (en: 'open paren', DeepL translation) + else: [T: "bal zárójel"] # 0x28 (en: 'left paren', DeepL translation) + - ")": # 0x29 + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then_test: + if: "$Verbosity='Terse'" + then: [T: "zárt zárójel"] # 0x29 (en: 'close', DeepL translation) + else: [T: "zárt zárójel"] # 0x29 (en: 'close paren', DeepL translation) + else: [T: "jobb zárójel"] # 0x29 (en: 'right paren', DeepL translation) + + - "*": # 0x2a + test: + if: "parent::*[name(.)='msup' or name(.)='msubsup' or name(.)='skip-super']" + then: [T: "csillag"] # 0x2a (en: 'star', DeepL translation) + else: [T: "szorozva"] # 0x2a (DeepL translation) + - "+": [T: "plusz"] # 0x2b (en: 'plus', DeepL translation) + - ",": # 0x2c + # the following deals with the interaction of "," with "…" which sometimes wants the ',' to be silent + # that this test is here and not with "…" is not ideal, but seems simplest + test: + if: + - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or " + # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' + # speak "comma" when not adjacent to '…' + - "( following-sibling::*[1][text()!= '…'] and preceding-sibling::*[1][text()!='…'] ) or " + # except if expression starts with '…' + - "../*[1][.='…'] " + then: + - T: "vessző" # (en: 'comma', google translation) + - test: + if: "$Verbosity != Terse" + then: [pause: short] + # else silent + + - "-": [T: "mínusz"] # 0x2d (en: 'minus', DeepL translation) + - ".": # 0x2e + - test: + if: "parent::*[1][self::m:mn]" + then: [T: "pont"] # (en: 'point', DeepL translation) + else: [T: "pont"] # (en: 'dot', DeepL translation) + - "/": # 0x2f + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [T: "per"] # 0x2f (DeepL translation) + else: [T: "osztva"] # 0x2f (en: 'divided by', DeepL translation) + + - ":": [T: "kettőspont"] # 0x3a (en: 'colon', DeepL translation) + - ";": [T: "pontosvessző"] # 0x3b (en: 'semicolon', DeepL translation) + - "<": # 0x3c + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "kisebb, mint" # (en: 'less than', DeepL translation) + - "=": # 0x3d + - test: + if: "$Verbosity!='Terse'" + then: [T: "egyenlő"] # (en: 'is equal to', DeepL translation) + else: [T: "egyenlő"] # (en: 'equals', DeepL translation) + + - ">": # 0x3e + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "nagyobb, mint" # (en: 'greater than', DeepL translation) + - "?": [T: "kérdőjel"] # 0x3f (en: 'question mark', DeepL translation) + - "@": [T: "kukac"] # 0x40 (en: 'at sign', DeepL translation) + - "[": # 0x5b + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "nyitott zárójel"] # (en: 'open bracket', DeepL translation) + else: [T: "bal oldali zárójel"] # (en: 'left bracket', DeepL translation) + - "\\": [T: "bexles"] # 0x5c (en: 'back slash', DeepL translation) + - "]": # 0x5d + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "zárójel"] # (en: 'close bracket', DeepL translation) + else: [T: "jobb oldali zárójel"] # (en: 'right bracket', DeepL translation) + - "^": # 0x5e + - test: + if: "parent::m:modified-variable or parent::m:mover" + then: [T: "kalap"] # (en: 'hat', DeepL translation) + else: [T: "fölfelényíl"] # (DeepL translation) + - "_": [T: "aláhúzás"] # 0x5f (en: 'under bar', DeepL translation) + - "`": [T: "súlyozott"] # 0x60 (en: 'grave', DeepL translation) + - "{": # 0x7b + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "nyitott zárójel"] # (en: 'open brace', DeepL translation) + else: [T: "bal oldali zárójel"] # (en: 'left brace', DeepL translation) + - "|": # 0x7c + # note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets' + - with: + variables: [DefaultToGiven: "count(preceding-sibling::*)=1 and count(following-sibling::*)=1 and ../../../*[1][.='P']"] # P(A|B) + replace: + - test: + - if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [T: "függőleges vonal"] # (en: 'vertical line', DeepL translation) + - else_if: "$SpeechStyle != 'ClearSpeak'" + then_test: + - if: "$DefaultToGiven" + then: [T: "adott"] # (en: 'given', DeepL translation) + - else_if: "preceding-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))] and + following-sibling::*[1][self::m:mn and not(contains(., $DecimalSeparators))]" + then: [T: "osztja"] # (en: 'divides', DeepL translation) + else: [T: "függőleges vonal"] # (en: 'vertical line', DeepL translation) + - else_if: "not(preceding-sibling::*) or not(following-sibling::*)" + then: [T: "függőleges vonal"] # (en: 'vertical line', DeepL translation) + - else_if: "$ClearSpeak_VerticalLine = 'SuchThat'" + then: [T: "olyan, hogy"] # (en: 'such that', DeepL translation) + - else_if: "$ClearSpeak_VerticalLine = 'Given' or $DefaultToGiven" + then: [T: "adott"] # (en: 'given', DeepL translation) + - else: [T: "osztja"] # (en: 'divides', DeepL translation) + + - "}": # 0x7d + - test: + if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' + then: [T: "zárt zárójel"] # (en: 'close brace', DeepL translation) + else: [T: "jobb oldali zárójel"] # (en: 'right brace', DeepL translation) + + - "~": [T: "tilde"] # 0x7e (DeepL translation) + - " ": # 0xa0 + - test: + # could be mtext in mtd or mtext in an mrow that is a concatenation of mtd's. Is there a better solution? + if: "@data-empty-in-2D and not(ancestor::*[self::m:piecewise or self::m:system-of-equations or self::m:lines])" + then: [T: "üres"] # want to say something for fraction (etc) with empty child (en: 'empty', DeepL translation) + else: [T: ""] + + - "¬": [T: "logikai nem"] # 0xac (en: 'not', DeepL translation) + - "°": [T: "fok"] # 0xb0 (en: 'degrees', DeepL translation) + - "±": [T: "plusz vagy mínusz"] # 0xb1 (en: 'plus or minus', DeepL translation) + - "´": [T: "éles ékezet"] # 0xb4 (en: 'acute', DeepL translation) + - "·": # 0xB7 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')] or not($SpeechStyle = 'ClearSpeak' and $ClearSpeak_MultSymbolDot = 'Auto')" + then: [T: "pont"] # (en: 'dot', DeepL translation) + else: [T: "szorozva"] # (DeepL translation) + - "×": # 0xd7 + - test: + if: "$SpeechStyle = 'ClearSpeak'" + then_test: + - if: "$ClearSpeak_MultSymbolX = 'Auto'" + then: [T: "szorozva"] # (DeepL translation) + - else_if: "$ClearSpeak_MultSymbolX = 'By'" + then: [T: "szorozva"] # (DeepL translation) + else: [T: "kereszt"] # (en: 'cross', DeepL translation) + else_test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [T: "kereszt"] # (en: 'cross', DeepL translation) + else: [T: "szorozva"] # (DeepL translation) + + - "÷": [T: "osztva"] # 0xf7 (en: 'divided by', DeepL translation) + - "̀": [T: "súlyos ékezet díszítés"] # 0x300 (en: 'grave accent embellishment', DeepL translation) + - "́": [T: "akut ékezet díszítés"] # 0x301 (en: 'acute accent embellishment', DeepL translation) + - "̂": [T: "cirkumflex ékezet díszítés"] # 0x302 (en: 'circumflex accent embellishment', DeepL translation) + - "̃": [T: "tilde"] # 0x303 (en: 'tilde embellishment', DeepL translation) + - "̄": [T: "makron"] # 0x304 (en: 'macron embellishment', DeepL translation) + - "̅": [T: "túlszárnyaló díszítés"] # 0x305 (en: 'overbar embellishment', DeepL translation) + - "̆": [T: "rövid"] # 0x306 (DeepL translation) + - "̇": [T: "pont a díszítés felett"] # 0x307 (en: 'dot above embellishment', DeepL translation) + + # Note: ClearSpeak has pref TriangleSymbol for "Δ", but that is wrong + - "Α-Ω": + - test: + if: "$CapitalLetters_Beep" + then: + - audio: + value: "beep.mp4" + replace: [] + - test: + if: "$CapitalLetters_UseWord" + then_test: + if: "$SpeechOverrides_CapitalLetters = ''" + then_test: + if: "$Impairment = 'Blindness'" + then: [T: "nagy"] # (en: 'cap', DeepL translation) + else: [x: "$SpeechOverrides_CapitalLetters"] + - pitch: + value: "$CapitalLetters_Pitch" + # note: processing of ranges converts '.' into the character, so it needs to be in quotes below + replace: [SPELL: "translate('.', 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩ', 'αβγδεζηθικλμνξοπρςστυφχψω')"] + + - "α": [T: "alfa"] # 0x3b1 (en: 'alpha', DeepL translation) + - "β": [T: "béta"] # 0x3b2 (en: 'beta', DeepL translation) + - "γ": [T: "gamma"] # 0x3b3 (DeepL translation) + - "δ": [T: "delta"] # 0x3b4 (DeepL translation) + - "ε": [T: "epszilon"] # 0x3b5 (DeepL translation) + - "ζ": [T: "zéta"] # 0x3b6 (en: 'zeta', DeepL translation) + - "η": [T: "éta"] # 0x3b7 (DeepL translation) + - "θ": [T: "théta"] # 0x3b8 (en: 'theta', DeepL translation) + - "ι": [T: "ióta"] # 0x3b9 (DeepL translation) + - "κ": [T: "kappa"] # 0x3ba (DeepL translation) + - "λ": [T: "lambda"] # 0x3bb (DeepL translation) + - "μ": [T: "mű"] # 0x3bc (DeepL translation) + - "ν": [T: "nű"] # 0x3bd (DeepL translation) + - "ξ": [T: "kszí"] # 0x3be (DeepL translation) + - "ο": [T: "omikron"] # 0x3bf (en: 'omicron', DeepL translation) + - "π": [T: "pí"] # 0x3c0 (DeepL translation) + - "ρ": [T: "ró"] # 0x3c1 (DeepL translation) + - "ς": [T: "szóvégi szigma"] # 0x3c2 (en: 'final sigma', DeepL translation) + - "σ": [T: "szigma"] # 0x3c3 (DeepL translation) + - "τ": [T: "tau"] # 0x3c4 (DeepL translation) + - "υ": [T: "üpszilon"] # 0x3c5 (DeepL translation) + - "φ": [T: "fí"] # 0x3c6 (DeepL translation) + - "χ": [T: "khí"] # 0x3c7 (DeepL translation) + - "ψ": [T: "pszí"] # 0x3c8 (DeepL translation) + - "ω": [T: "omega"] # 0x3c9 (DeepL translation) + - "ϕ": [T: "phi"] # 0x3d5 (DeepL translation) + - "ϖ": [T: "pí"] # 0x3d6 (DeepL translation) + - "ϵ": [T: "holdkóros epszilon"] # 0x3f5 (DeepL translation) + - "϶": [T: "félhold alakú tükrözött görög epszilon"] # 0x3f6 (en: 'reversed epsilon', DeepL translation) + + - "–": [T: "en kötőjel"] # 0x2013 (en: 'en dash', DeepL translation) + - "—": [T: "em kötőjel"] # 0x2014 (en: 'em dash', DeepL translation) + - "―": [T: "vízszintes sáv"] # 0x2015 (en: 'horizontal bar', DeepL translation) + - "‖": [T: "dupla függőleges vonal"] # 0x2016 (en: 'double vertical line', DeepL translation) + - "…": # 0x2026 + test: + if: + - "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_Ellipses = 'Auto' or" + # must be ClearSpeak and $ClearSpeak_Ellipses = 'AndSoOn' + # speak '…' as 'and so on...' unless expr starts with '…' + - "../*[1][.='…']" + then: [T: "pont pont pont"] # (en: 'dot dot dot', DeepL translation) + else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn' + if: "count(following-sibling::*) = 0" + then: [T: "és így tovább"] # (en: 'and so on', DeepL translation) + else: [T: "és így tovább egészen az alábbi értékig:"] # (en: 'and so on up to', DeepL translation) + + - "⁡": # 0x2061 + - test: + # skip saying "of" when Terse and a trig function, when it is a shape (does this happen?), or we are in :literal mode + if: "not( + ( $Verbosity='Terse' or ($SpeechStyle = 'ClearSpeak' and IsNode(following-sibling::*[1],'simple')) and + preceding-sibling::*[1][IfThenElse($SpeechStyle='ClearSpeak', + IsInDefinition(., 'ClearSpeakTrigFunctionNames'), + IsInDefinition(., 'TrigFunctionNames') )] + ) or + preceding-sibling::*[1][IsInDefinition(., 'GeometryShapes')] or + (@data-changed='added' and ancestor-or-self::*[contains(@data-intent-property, ':literal:')]) + )" + then: [T: ""] # (DeepL translation) + - "⁢": [T: ""] # 0x2062 + - "⁣": [T: "láthatatlan elválasztó"] # 0x2063 + - "⁤": [T: "és"] # 0x2064 (en: 'and', DeepL translation) + - "′": [T: "prím"] # 0x2032 (en: 'prime', DeepL translation) + - "″": [T: "dupla prím"] # 0x2033 (en: 'double prime', DeepL translation) + - "‴": [T: "hármas prím"] # 0x2034 (en: 'triple prime', DeepL translation) + + - "ℂℕℚℝℤ": # here we rely on this running through the table again to speak "cap xxx" + - T: "duplán leütött" # (en: 'double-struck', DeepL translation) + - SPELL: "translate('.', 'ℂℕℚℝℤ', 'CNQRZ')" + + - "℃": [T: "celsius fok"] # 0x2103 (en: 'degrees celsius', DeepL translation) + - "℉": [T: "fahrenheit fok"] # 0x2109 (en: 'degrees fahrenheit', DeepL translation) + - "ℋℛℓ": # 0x210b + - T: "alsó index" # (DeepL translation) + - SPELL: "translate('.', 'ℋℛℓ', 'HRl')" + - "ℎ": [T: "planck-állandó"] # 0x210e (en: 'planck constant', DeepL translation) + - "ℜ": # 0x211c + - T: "fraktur" # (DeepL translation) + - SPELL: "'R'" + + - "Ω": [T: "ohm"] # 0x2126 (en: 'ohms', DeepL translation) + - "K": [T: "kelvin"] # 0x212a (DeepL translation) + - "Å": [T: "angström"] # 0x212b (en: 'angstroms', DeepL translation) + - "ⅆⅇⅈⅉ": # 0x2146-9 + - T: "duplán dőlt betűs" # (en: 'double-struck italic', DeepL translation) + - SPELL: "translate('.', 'ⅆⅇⅈⅉ', 'deij')" + + - "←": [T: "balra nyíl"] # 0x2190 (en: 'left arrow', DeepL translation) + - "↑": [T: "felfelé nyíl"] # 0x2191 (en: 'up arrow', DeepL translation) + - "→": # 0x2192 + - test: + if: "ancestor::*[2][self::m:limit]" + then: [T: "megközelítések"] # (en: 'approaches', DeepL translation) + else: [T: "jobbra nyíl"] # (en: 'right arrow', DeepL translation) + + - "↓": [T: "lefelé nyíl"] # 0x2193 (en: 'down arrow', DeepL translation) + - "⇒": [T: "dupla jobbranyíl"] # 0x21d2 (en: 'right double arrow', DeepL translation) + - "∀": [T: "minden"] # 0x2200 (en: 'for all', DeepL translation) + - "∂": # 0x2202 + - test: + if: "$Verbosity='Terse'" + then: [T: "részleges"] # (en: 'partial', DeepL translation) + else: [T: "parciális derivált"] # (en: 'partial derivative', DeepL translation) + - "∃": [T: "létezik"] # 0x2203 (en: 'there exists', DeepL translation) + - "∄": [T: "nem létezik"] # 0x2204 (en: 'there does not exist', DeepL translation) + - "∅": [T: "üres halmaz"] # 0x2205 (en: 'empty set', DeepL translation) + - "∆": # 0x2206 + - test: + if: "$Verbosity!='Terse'" + then: [T: "a"] # (en: 'the', DeepL translation) + - T: "növekménye" # (en: 'laplacian of', DeepL translation) + - "∈": # 0x2208 + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "eleme ennek:" # (en: 'an element of', DeepL translation) + # 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: ""] # (DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "tagja"] # (en: 'member of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "eleme ennek:"] # (en: 'element of', DeepL translation) + - else: [T: "hozzátartozó eleme ennek:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to', DeepL translation) + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "tagja az alábbi halmaznak:"] # (en: 'is a member of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "egy eleme ennek:"] # (en: 'is an element of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "benne van ebben:"] # (en: 'is in', DeepL translation) + - else: [T: "ebbe a halmazba tartozik:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to', DeepL translation) + - "∉": # 0x2209 + # rule is identical to 0x2208 + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "nem eleme ennek:" # (en: 'not an element of', DeepL translation) + # 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: "nincs benne ebben:"] # (en: 'not in', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "nem tagja az alábbi halmaznak:"] # (en: 'not member of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "nem eleme ennek:"] # (en: 'not element of', DeepL translation) + - else: [T: "nem tartozik ebbe:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to', DeepL translation) + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "nem tagja az alábbi halmaznak:"] # (en: 'is not a member of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "nem eleme ennek:"] # (en: 'is not an element of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "nincs benne az alábbi halmazban:"] # (en: 'is not in', DeepL translation) + - else: [T: "nem tartozik ebbe:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'does not belong to', DeepL translation) + - "∊": # 0x220a + - test: + if: "$SpeechStyle != 'ClearSpeak'" + then: + - test: + if: "$Verbosity!='Terse' and not(ancestor::*[self::m:set])" # "the set x is an element of ..." sounds bad" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "egy eleme" # (en: 'an element of', DeepL translation) + # 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: ""] # (DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "tagja ennek:"] # (en: 'member of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "kisbetűs eleme ennek:"] # (en: 'element of', DeepL translation) + - else: [T: "hozzátartozó eleme ennek:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to', DeepL translation) + else_test: + - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' + then: [T: "nem tagja az alábbi halmaznak:"] # (en: 'is a member of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'Element' + then: [T: "egy eleme ennek:"] # (en: 'is an element of', DeepL translation) + - else_if: $ClearSpeak_SetMemberSymbol = 'In' + then: [T: "benne van ebben:"] # (en: 'is in', DeepL translation) + - else: [T: "ebbe a halmazba tartozik:"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to', DeepL translation) + - "∏": [T: "produktum"] # 0x220f (en: 'product', DeepL translation) + - "∐": [T: "diszjunkt unió"] # 0x2210 (en: 'co-product', DeepL translation) + - "∑": [T: "összeg"] # 0x2211 (DeepL translation) + - "−": [T: "mínusz"] # 0x2212 (en: 'minus', DeepL translation) + - "∓": [T: "mínusz vagy plusz"] # 0x2213 (en: 'minus or plus', DeepL translation) + - "∗": [T: "csillag operátortimes"] # 0x2217 (DeepL translation) + - "∘": [T: "gyűrű operátor"] # 0x2218 (en: 'composed with', DeepL translation) + - "√": # 0x221a + - test: + if: "$Verbosity!='Terse'" + then: [T: "a"] # (en: 'the', DeepL translation) + - T: "négyzetgyöke" # (en: 'square root of', DeepL translation) + - "∝": # 0x221d + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "arányos" # (en: 'proportional to', DeepL translation) + - "∞": [T: "végtelen"] # 0x221e (en: 'infinity', DeepL translation) + - "∟": [T: "derékszög"] # 0x221f (en: 'right angle', DeepL translation) + - "∠": [T: "szög"] # 0x2220 (en: 'angle', DeepL translation) + - "∡": [T: "mért szög"] # 0x2221 (en: 'measured angle', DeepL translation) + - "∣": [T: "osztója"] # 0x2223 (en: 'divides', DeepL translation) + - "∤": [T: "nem osztója"] # 0x2224 (en: 'does not divide', DeepL translation) + - "∥": # 0x2225 + - test: + if: "ancestor-or-self::*[contains(@data-intent-property, ':literal:')]" + then: [T: "dupla függőleges vonal"] # (en: 'double vertical line', DeepL translation) + else: + - test: + if: "$Verbosity!='Terse'" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "párhuzamos" # (en: 'parallel to', DeepL translation) + - "∦": # 0x2226 + - test: + if: "$Verbosity!='Terse'" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "nem párhuzamos" # (en: 'not parallel to', DeepL translation) + - "∧": [T: "logikai és"] # 0x2227 (en: 'and', DeepL translation) + - "∨": [T: "logikai vagy"] # 0x2228 (en: 'or', DeepL translation) + - "∩": [T: "metszéspont"] # 0x2229 (en: 'intersection', DeepL translation) + - "∪": [T: "unió"] # 0x222a (en: 'union', DeepL translation) + - "∫": [T: "integrál"] # 0x222b (en: 'integral', DeepL translation) + - "∬": [T: "kettős integrál"] # 0x222c (en: 'double integral', DeepL translation) + - "∭": [T: "hármas integrál"] # 0x222d (en: 'triple integral', DeepL translation) + - "∮": [T: "kontúr integrál"] # 0x222e (en: 'contour integral', DeepL translation) + - "∶": # 0x2236 + - test: + if: "$Verbosity!='Terse'" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "hogy" # (DeepL translation) + - "∷": [T: "arány"] # 0x2237 (DeepL translation) + - "∼": [T: "változik"] # 0x223c (en: 'varies with', DeepL translation) + - "∽": [T: "fordított tilde"] # 0x223d (en: 'reversed tilde', DeepL translation) + - "∾": # 0x223e + - test: + if: "$Verbosity!='Terse'" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "legpozitívabb" # (en: 'most positive', DeepL translation) + - "∿": [T: "szinuszhullám"] # 0x223f (en: 'sine wave', DeepL translation) + - "≠": # 0x2260 + - test: + if: "$Verbosity!='Terse'" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "nem egyenlő" # (en: 'not equal to', DeepL translation) + - "≡": # 0x2261 + - test: + if: "$Verbosity!='Terse'" + then: [T: "van"] # (en: 'is', DeepL translation) + - T: "azonos" # (en: 'identical to', DeepL translation) + - "≤": # 0x2264 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "kisebb vagy egyenlő" # (en: 'less than or equal to', DeepL translation) + - "≥": # 0x2265 + - test: + if: "$Verbosity!='Terse'" + then: [T: ""] # (en: 'is', DeepL translation) + - T: "nagyobb vagy egyenlő" # (en: 'greater than or equal to', DeepL translation) + - "≦": [T: "kisebb, mint egyenlő"] # 0x2266 (en: 'less than over equal to', DeepL translation) + - "≧": [T: "nagyobb, mint az egyenlő"] # 0x2267 (en: 'greater than over equal to', DeepL translation) + - "≺": [T: "megelőzi"] # 0x227a (en: 'precedes', DeepL translation) + - "≻": [T: "követi"] # 0x227b (en: 'succeeds', DeepL translation) + - "⊂": # 0x2282 + - test: + if: "$Verbosity!='Terse'" + then: [T: "egy"] # (DeepL translation) + - T: "részhalmaza" # (en: 'subset of', DeepL translation) + - "⊃": # 0x2283 + - test: + if: "$Verbosity!='Terse'" + then: [T: "egy"] # (DeepL translation) + - T: "szuperhalmaza ennek:" # (en: 'superset of', DeepL translation) + - "⊄": # 0x2284 + - test: + if: "$Verbosity!='Terse'" + then: [T: "egy"] # (en: 'is', DeepL translation) + - T: "nem részhalmaza ennek:" # (en: 'not a subset of', DeepL translation) + - "⊅": # 0x2285 + - test: + if: "$Verbosity!='Terse'" + then: [T: "egy"] # (en: 'is', DeepL translation) + - T: "nem szuperhalmaza ennek:" # (DeepL translation) + - "⊆": # 0x2286 + - test: + if: "$Verbosity!='Terse'" + then: [T: "egy"] # (DeepL translation) + - T: "részhalmaza vagy egyenlő" # (en: 'subset of or equal to', DeepL translation) + - "⊇": # 0x2287 + - test: + if: "$Verbosity!='Terse'" + then: [T: "egy"] # (DeepL translation) + - T: "szuperhalmaza vagy egyenlő" # (en: 'superset of or equal to', DeepL translation) diff --git a/tests/Languages/hu/ClearSpeak/large_ops.rs b/tests/Languages/hu/ClearSpeak/large_ops.rs index 994dafff..d2c70157 100644 --- a/tests/Languages/hu/ClearSpeak/large_ops.rs +++ b/tests/Languages/hu/ClearSpeak/large_ops.rs @@ -128,7 +128,7 @@ fn intersection_both() -> Result<()> { Si "; - test("hu", "ClearSpeak", expr, "kereszteződés ettől: i egyenlő 1, eddig: 10 értéke:; nagy s alsó index i")?; + test("hu", "ClearSpeak", expr, "metszet ettől: i egyenlő 1, eddig: 10 értéke:; nagy s alsó index i")?; return Ok(()); } @@ -143,7 +143,7 @@ fn intersection_under() -> Result<()> { Si "; - test("hu", "ClearSpeak", expr, "kereszteződés alatta nagy c, nagy s alsó index i")?; + test("hu", "ClearSpeak", expr, "metszet alatta nagy c, nagy s alsó index i")?; return Ok(()); } @@ -155,7 +155,7 @@ fn intersection() -> Result<()> { Si "; - test("hu", "ClearSpeak", expr, "kereszteződés nagy s alsó index i")?; + test("hu", "ClearSpeak", expr, "metszet nagy s alsó index i")?; return Ok(()); } @@ -217,7 +217,7 @@ fn integral_both() -> Result<()> { dx "; - test("hu", "ClearSpeak", expr, "integrál ettől: 0, eddig: 1 értéke:; f x; d x")?; + test("hu", "ClearSpeak", expr, "integrált ettől: 0, eddig: 1 értéke:; f x; d x")?; return Ok(()); } @@ -233,7 +233,7 @@ fn integral_under() -> Result<()> { f(x ) dx "; - test("hu", "ClearSpeak", expr, "integrál alatta a valós számok halmaza; f x d x")?; + test("hu", "ClearSpeak", expr, "integrált alatta a valós számok halmaza; f x d x")?; return Ok(()); } @@ -246,7 +246,7 @@ fn integral() -> Result<()> { f(x ) dx "; - test("hu", "ClearSpeak", expr, "integrál f x d x")?; + test("hu", "ClearSpeak", expr, "integrált f x d x")?; return Ok(()); } diff --git a/tests/Languages/hu/SimpleSpeak/large_ops.rs b/tests/Languages/hu/SimpleSpeak/large_ops.rs index 1d798202..c76ce150 100644 --- a/tests/Languages/hu/SimpleSpeak/large_ops.rs +++ b/tests/Languages/hu/SimpleSpeak/large_ops.rs @@ -128,7 +128,7 @@ fn intersection_both() -> Result<()> { Si "; - test("hu", "SimpleSpeak", expr, "kereszteződés ettől: i egyenlő 1, eddig: 10 értéke:; nagy s alsó index i")?; + test("hu", "SimpleSpeak", expr, "metszet ettől: i egyenlő 1, eddig: 10 értéke:; nagy s alsó index i")?; return Ok(()); } @@ -143,7 +143,7 @@ fn intersection_under() -> Result<()> { Si "; - test("hu", "SimpleSpeak", expr, "kereszteződés alatta nagy c, nagy s alsó index i")?; + test("hu", "SimpleSpeak", expr, "metszet alatta nagy c, nagy s alsó index i")?; return Ok(()); } @@ -155,7 +155,7 @@ fn intersection() -> Result<()> { Si "; - test("hu", "SimpleSpeak", expr, "kereszteződés nagy s alsó index i")?; + test("hu", "SimpleSpeak", expr, "metszet nagy s alsó index i")?; return Ok(()); } @@ -217,7 +217,7 @@ fn integral_both() -> Result<()> { dx "; - test("hu", "SimpleSpeak", expr, "integrál ettől: 0, eddig: 1 értéke:; f x; d x")?; + test("hu", "SimpleSpeak", expr, "integrált ettől: 0, eddig: 1 értéke:; f x; d x")?; return Ok(()); } @@ -233,7 +233,7 @@ fn integral_under() -> Result<()> { f(x ) dx "; - test("hu", "SimpleSpeak", expr, "integrál alatta a valós számok halmaza; f x d x")?; + test("hu", "SimpleSpeak", expr, "integrált alatta a valós számok halmaza; f x d x")?; return Ok(()); } @@ -246,7 +246,7 @@ fn integral() -> Result<()> { f(x ) dx "; - test("hu", "SimpleSpeak", expr, "integrál f x d x")?; + test("hu", "SimpleSpeak", expr, "integrált f x d x")?; return Ok(()); } diff --git a/tests/Languages/hu/alphabets.rs b/tests/Languages/hu/alphabets.rs index 7fcdecbd..b6ff080e 100644 --- a/tests/Languages/hu/alphabets.rs +++ b/tests/Languages/hu/alphabets.rs @@ -12,7 +12,7 @@ fn special_alphabet_chars() -> Result<()> { let expr = " ,"; test("hu", "SimpleSpeak", expr, "dupla leütésű nagy h, vessző; dupla leütésű nagy pí")?; let expr = " ,"; - test("hu", "SimpleSpeak", expr, "script nagy i vessző, script nagy m")?; + test("hu", "SimpleSpeak", expr, "alsó index nagy i, vessző, alsó index nagy m")?; return Ok(()); } @@ -37,7 +37,7 @@ fn greek() -> Result<()> { #[test] fn cap_cyrillic() -> Result<()> { let expr = " А,Я"; - test("hu", "SimpleSpeak", expr, "nagybetű а vessző, nagybetű ya")?; + test("hu", "SimpleSpeak", expr, "nagy а vessző, nagy ciril ya")?; return Ok(()); } @@ -120,14 +120,14 @@ fn double_struck() -> Result<()> { #[test] fn script() -> Result<()> { let expr = " 𝒜,𝒵"; - test("hu", "SimpleSpeak", expr, "script nagy a vessző, script nagy z")?; + test("hu", "SimpleSpeak", expr, "alsó index nagy a, vessző, alsó index nagy z")?; let expr = " 𝒶,𝓏"; - test("hu", "SimpleSpeak", expr, "script a vessző, script z")?; + test("hu", "SimpleSpeak", expr, "alsó index a vessző, alsó index z")?; // MathType private space versions let expr = " ,"; - test("hu", "SimpleSpeak", expr, "script nagy a vessző, script nagy z")?; + test("hu", "SimpleSpeak", expr, "alsó index nagy a, vessző, alsó index nagy z")?; let expr = " ,"; - test("hu", "SimpleSpeak", expr, "script a vessző, script z")?; + test("hu", "SimpleSpeak", expr, "alsó index a vessző, alsó index z")?; return Ok(()); } @@ -136,14 +136,14 @@ fn script() -> Result<()> { #[test] fn bold_script() -> Result<()> { let expr = " 𝓐,𝓩"; - test("hu", "SimpleSpeak", expr, "script félkövér nagy a, vessző; script félkövér nagy z")?; + test("hu", "SimpleSpeak", expr, "alsó index félkövér nagy a, vessző; alsó index félkövér nagy z")?; let expr = " 𝓪,𝔃"; - test("hu", "SimpleSpeak", expr, "script félkövér a, vessző, script félkövér z")?; + test("hu", "SimpleSpeak", expr, "alsó index félkövér a, vessző; alsó index félkövér z")?; // MathType private space versions let expr = " ,"; - test("hu", "SimpleSpeak", expr, "script félkövér nagy a, vessző; script félkövér nagy z")?; + test("hu", "SimpleSpeak", expr, "alsó index félkövér nagy a, vessző; alsó index félkövér nagy z")?; let expr = " ,"; - test("hu", "SimpleSpeak", expr, "script félkövér a, vessző, script félkövér z")?; + test("hu", "SimpleSpeak", expr, "alsó index félkövér a, vessző; alsó index félkövér z")?; return Ok(()); } @@ -434,7 +434,7 @@ fn enclosed_numbers() -> Result<()> { let expr = " ,"; test("hu", "SimpleSpeak", expr, "bekarikázott 1 vessző, bekarikázott 9")?; let expr = " ,"; - test("hu", "SimpleSpeak", expr, "fekete bekarikázott egy, vessző; bekarikázott szám ötven")?; + test("hu", "SimpleSpeak", expr, "fekete bekarikázott egy, vessző; bekarikázott ötvenes szám")?; let expr = " ,"; test("hu", "SimpleSpeak", expr, "zárójeles 1 vessző, zárójeles 9")?; let expr = " ,"; diff --git a/tests/Languages/hu/intent.rs b/tests/Languages/hu/intent.rs index c5c2fa3e..65993668 100644 --- a/tests/Languages/hu/intent.rs +++ b/tests/Languages/hu/intent.rs @@ -7,18 +7,44 @@ use anyhow::Result; // AI generated #[test] fn silent_intent() -> Result<()> { - let expr = " 2 x "; + let expr = " 2 x "; test("hu", "SimpleSpeak", expr, "2 x")?; test("hu", "LiteralSpeak", expr, "2 x")?; return Ok(()); } +#[test] +fn silent_intent_underscore() -> Result<()> { + let expr = " + + H + 2 + "; + test("hu", "SimpleSpeak", expr, "nagy h vessző, 2")?; + test("hu", "ClearSpeak", expr, "nagy h vessző, 2")?; + return Ok(()); + +} + +#[test] +fn intent_prob_x() -> Result<()> { + //init_logger(); + let expr = " + + x + P + "; + test("hu", "ClearSpeak", expr, "valószínűség x")?; + return Ok(()); + +} + // AI generated #[test] fn prefix_intent() -> Result<()> { - let expr = r#" x T "#; - test("hu", "SimpleSpeak", expr, "testing x")?; + let expr = r#" x T "#; + test("hu", "SimpleSpeak", expr, "tesztelés x")?; return Ok(()); } @@ -26,8 +52,8 @@ fn prefix_intent() -> Result<()> { // AI generated #[test] fn postfix_intent() -> Result<()> { - let expr = r#" x T "#; - test("hu", "SimpleSpeak", expr, "x testing")?; + let expr = r#" x T "#; + test("hu", "SimpleSpeak", expr, "x tesztelése")?; return Ok(()); } @@ -35,12 +61,12 @@ fn postfix_intent() -> Result<()> { // AI generated #[test] fn infix_intent() -> Result<()> { - let expr = r#" + let expr = r#" x y z "#; - test("hu", "SimpleSpeak", expr, "x testing y testing z testing 2")?; + test("hu", "SimpleSpeak", expr, "x tesztelés y tesztelés z tesztelés 2")?; return Ok(()); } @@ -49,7 +75,7 @@ fn infix_intent() -> Result<()> { #[test] fn infix_intent_no_args() -> Result<()> { // this is illegal intent, so it is just an mrow with one child - let expr = r#" + let expr = r#" x "#; test("hu", "SimpleSpeak", expr, "x")?; @@ -60,11 +86,11 @@ fn infix_intent_no_args() -> Result<()> { // AI generated #[test] fn infix_intent_one_arg() -> Result<()> { - let expr = r#" + let expr = r#" x "#; // Note: we say the intent name because there are infix plus/minus with a single arg due to continued rows or combined columns - test("hu", "SimpleSpeak", expr, "testing x")?; + test("hu", "SimpleSpeak", expr, "teszteljük x")?; return Ok(()); } @@ -72,12 +98,12 @@ fn infix_intent_one_arg() -> Result<()> { // AI generated #[test] fn function_intent() -> Result<()> { - let expr = r#" + let expr = r#" x y z "#; - test("hu", "SimpleSpeak", expr, "testing x vessző, y vessző, z vessző, 2")?; + test("hu", "SimpleSpeak", expr, "teszteljük x vessző, y vessző, z vessző, 2")?; return Ok(()); } @@ -86,7 +112,7 @@ fn function_intent() -> Result<()> { #[test] fn function_no_args_intent() -> Result<()> { // this is illegal intent, so it is just an mrow with one child - let expr = r#" + let expr = r#" x "#; test("hu", "SimpleSpeak", expr, "x")?; @@ -97,10 +123,10 @@ fn function_no_args_intent() -> Result<()> { // AI generated #[test] fn function_one_arg_intent() -> Result<()> { - let expr = r#" + let expr = r#" x "#; - test("hu", "SimpleSpeak", expr, "testing x")?; + test("hu", "SimpleSpeak", expr, "teszteljük x")?; return Ok(()); } diff --git a/tests/Languages/hu/shared.rs b/tests/Languages/hu/shared.rs index 1d47de7f..a97805f8 100644 --- a/tests/Languages/hu/shared.rs +++ b/tests/Languages/hu/shared.rs @@ -22,7 +22,7 @@ fn modified_vars() -> Result<()> { t "; test("hu", "SimpleSpeak", expr, - "a súlyozott, b tilde, c rövid, b ellenőrzés, c súlyozott; plusz, r hacsek karakter mint repülő ékezet, plusz; x pont, y pont, z dupla pont, u hármas pont, v négyes pont; plusz x kalap, plusz vektor kezdete t")?; + "a súlyozott, b tilde, c rövid, b ellenőrzés, c súlyozott; plusz, r hacsek karakter mint repülő ékezet; plusz; x pont, y pont, z dupla pont, u hármas pont, v négyes pont; plusz x kalap, plusz vektor kezdete t")?; return Ok(()); } @@ -477,14 +477,14 @@ fn literal_speak_perpendicular() -> Result<()> { A - + B "#; - test("hu", "LiteralSpeak", expr, "nagy a jobbra nyíl, perpendicular to, nagy b jobbra nyíl")?; + test("hu", "LiteralSpeak", expr, "nagy a jobbra nyíl; merőleges nagy b jobbra nyíl")?; return Ok(()); } @@ -513,7 +513,7 @@ fn literal_speak_chars() -> Result<()> { // AI generated #[test] fn literal_speak_with_name() -> Result<()> { - let expr = r#" + let expr = r#" f @@ -527,7 +527,7 @@ fn literal_speak_with_name() -> Result<()> { "#; - test("hu", "LiteralSpeak", expr, "forced f, bal zárójel, x felkiáltójel, jobb zárójel")?; + test("hu", "LiteralSpeak", expr, "kényszerített f, bal zárójel, x felkiáltójel, jobb zárójel")?; return Ok(()); } @@ -563,14 +563,14 @@ fn literal_intent_property() -> Result<()> { A - + B "#; - test("hu", "SimpleSpeak", expr, "nagy a jobbra nyíl, perpendicular to, nagy b jobbra nyíl")?; + test("hu", "SimpleSpeak", expr, "nagy a jobbra nyíl; merőleges nagy b jobbra nyíl")?; return Ok(()); } @@ -578,7 +578,7 @@ fn literal_intent_property() -> Result<()> { // AI generated #[test] fn literal_intent_property_with_name() -> Result<()> { - let expr = r#" + let expr = r#" f @@ -592,7 +592,7 @@ fn literal_intent_property_with_name() -> Result<()> { "#; - test("hu", "SimpleSpeak", expr, "forced f, nyitott zárójel, x felkiáltójel, zárt zárójel")?; + test("hu", "SimpleSpeak", expr, "kényszerített f, nyitott zárójel, x felkiáltójel, zárt zárójel")?; return Ok(()); }