496 lines
31 KiB
YAML
496 lines
31 KiB
YAML
---
|
||
# 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
|
||
- "a-z":
|
||
- test:
|
||
if: "$TTS='none'"
|
||
then: [T: "."]
|
||
else: [spell: "'.'"]
|
||
- "A-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: "mayúscula"] # (en: 'cap', google 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('.', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"]
|
||
|
||
- "0-9": [T: "."] # (en: '.')
|
||
|
||
- " ": [t: " "] # 0x20
|
||
|
||
- "!": [T: "factorial"] # 0x21
|
||
- "\"": [T: "barra inversa"] # 0x22 (en: 'quotation mark')
|
||
- "#": [T: "almohadilla"] # 0x23 (en: 'number', MathPlayer: 'signo de número', google: 'número')
|
||
- "$": [T: "dólar"] # 0x24 (en: 'dollars')
|
||
- "%": [T: "porciento"] # 0x25 (en: 'percent')
|
||
- "&": [T: "ampersand"] # 0x26
|
||
- "'": [T: "apóstrofo"] # 0x27 (en: 'apostrophe', MathPlayer: 'apóstrofo', google: 'apóstrofe')
|
||
- "(": # 0x28
|
||
- test:
|
||
if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
|
||
then_test:
|
||
if: "$Verbosity='Terse'"
|
||
then: [T: "abrir paréntesis"] # (en: 'open', google translation)
|
||
else: [T: "se abren paréntesis"] # (en: 'open paren', MathPlayer: 'paréntesis', google: 'paréntesis abierto')
|
||
else: [T: "se abren paréntesis"] # (en: 'left paren', MathPlayer: 'paréntesis', google: 'paréntesis dejado')
|
||
- ")": # 0x29
|
||
- test:
|
||
if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
|
||
then_test:
|
||
if: "$Verbosity='Terse'"
|
||
then: [T: "cerrar paréntesis"] # (en: 'close', google translation)
|
||
else: [T: "se cierran paréntesis"] # (en: 'close paren', MathPlayer: 'cierra paréntesis', google: 'paréntesis cercana')
|
||
else: [T: "se cierran paréntesis"] # (en: 'right paren', MathPlayer: 'cierra paréntesis')
|
||
|
||
- "*": # 0x2a
|
||
test:
|
||
if: "parent::*[name(.)='msup' or name(.)='msubsup']"
|
||
then: [T: "estrella"] # (en: 'star', google translation)
|
||
else: [T: "por"] # (en: 'times')
|
||
- "+": [T: "más"] # 0x2b (en: 'plus')
|
||
- ",": # 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: "coma" # (en: 'comma', google translation)
|
||
- test:
|
||
if: "$Verbosity != Terse"
|
||
then: [pause: short]
|
||
# else silent
|
||
|
||
- "-": [T: "menos"] # 0x2d (en: 'minus')
|
||
- ".": # 0x2e
|
||
- test:
|
||
if: "parent::*[1][self::m:mn]"
|
||
then: [T: "punto"] # (en: 'point', google translation)
|
||
else: [T: "punto"] # (en: 'dot')
|
||
- "/": [T: "barra oblicua"] # 0x2f (en: 'divided by')
|
||
- ":": [T: "dos puntos"] # 0x3a (en: 'colon')
|
||
- ";": [T: "punto y coma"] # 0x3b (en: 'semicolon')
|
||
- "<": # 0x3c
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "menor que" # (en: 'less than')
|
||
- "=": # 0x3d
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es igual a"] # (en: 'is equal to', google translation)
|
||
else: [T: "igual a"] # (en: 'equals', google: 'iguales')
|
||
|
||
- ">": # 0x3e
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "mayor que" # (en: 'greater than')
|
||
- "?": [T: "interrogación derecha"] # 0x3f (en: 'question mark', MathPlayer: 'cierra interrogación', google: 'signo de interrogación')
|
||
- "@": [T: "arroba"] # 0x40 (en: 'at sign')
|
||
- "[": # 0x5b
|
||
- test:
|
||
if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
|
||
then: [T: "abrir corchetes"] # (en: 'open bracket', google translation)
|
||
else: [T: "se abren corchetes"] # (en: 'left bracket', MathPlayer: 'abre corchetes', google: 'soporte izquierdo')
|
||
- "\\": [T: "se abren corchetes"] # 0x5c (en: 'back slash', MathPlayer: 'abre corchetes', google: 'back slash')
|
||
- "]": # 0x5d
|
||
- test:
|
||
if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
|
||
then: [T: "cerrar corchetes"] # (en: 'close bracket', google translation)
|
||
else: [T: "se cierran corchetes"] # (en: 'right bracket', MathPlayer: 'cierra corchetes', google: 'soporte derecho')
|
||
- "^": [T: "acento circunflejo"] # 0x5e (en: 'hat')
|
||
- "_": [T: "subrayado"] # 0x5f (en: 'under bar')
|
||
- "`": [T: "acento grave"] # 0x60 (en: 'grave')
|
||
- "{": # 0x7b
|
||
- test:
|
||
if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
|
||
then: [T: "abrir llaves"] # (en: 'open brace', google translation)
|
||
else: [T: "se abren llaves"] # (en: 'left brace', MathPlayer: 'abre llaves', google: 'abrazadera izquierda')
|
||
- "|": # 0x7c
|
||
# note: for ClearSpeak and SimpleSpeak, "|" inside of sets is handled at the mrow level, same for 'sets'
|
||
- test:
|
||
- if: "$SpeechStyle != 'ClearSpeak' or not(preceding-sibling::*) or not(following-sibling::*)"
|
||
then: [T: "barra vertical"] # (en: 'vertical line', google translation)
|
||
- else_if: "$ClearSpeak_VerticalLine = 'SuchThat'"
|
||
then: [T: "tal que"] # (en: 'such that', google translation)
|
||
- else_if: "$ClearSpeak_VerticalLine = 'Given'"
|
||
then: [T: "dado"] # (en: 'given', google translation)
|
||
- else: [T: "barra vertical"] # (en: 'divides')
|
||
|
||
- "}": # 0x7d
|
||
- test:
|
||
if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak'
|
||
then: [T: "cerrar llaves"] # (en: 'close brace', google translation)
|
||
else: [T: "se cierran llaves"] # (en: 'right brace', MathPlayer: 'cierra llaves', google: 'abrazadera derecha')
|
||
|
||
- "~": [T: "tilde"] # 0x7e
|
||
- " ": # 0xa0
|
||
- test:
|
||
if: "@data-empty-in-2D"
|
||
then: [T: "vacío"] # want to say something for fraction (etc) with empty child (en: 'empty', google translation)
|
||
else: [T: ""]
|
||
|
||
- "¢": [T: "centavo"] # 0xa2 (en: 'cents')
|
||
- "£": [T: "libra esterlina"] # 0xa3 (en: 'pounds')
|
||
- "¬": [T: "no"] # 0xac (en: 'not')
|
||
- "°": [T: "grado"] # 0xb0 (en: 'degrees')
|
||
- "±": [T: "más menos"] # 0xb1 (en: 'plus or minus')
|
||
- "´": [T: "acento agudo"] # 0xb4 (en: 'acute')
|
||
- "·": # 0xB7
|
||
- test:
|
||
if: "$SpeechStyle != 'ClearSpeak' or $ClearSpeak_MultSymbolDot = 'Auto'"
|
||
then_test:
|
||
if: "$Verbosity = 'Verbose'"
|
||
then: [T: "multiplicado por"] # (en: 'times', google translation)
|
||
else: [T: "por"]
|
||
else: [T: "punto medio"] # (en: 'dot')
|
||
- "×": # 0xd7
|
||
- test:
|
||
if: "$Verbosity = 'Verbose'"
|
||
then: [T: "multiplicado por"] # (en: 'times', google translation)
|
||
else: [T: "por"]
|
||
- "÷": [T: "dividido por"] # 0xf7 (en: 'divided by')
|
||
- "̀": [T: "acento grave ornamentado"] # 0x300 (en: 'grave accent embellishment', google: 'embellido de acento grave')
|
||
- "́": [T: "acento agudo ornamentado"] # 0x301 (en: 'acute accent embellishment', google: 'embellido de acento agudo')
|
||
- "̂": [T: "acento circunflejo ornamentado"] # 0x302 (en: 'circumflex accent embellishment', google: 'embellamiento del acento circunflejo')
|
||
- "̃": [T: "tilde ornamentada"] # 0x303 (en: 'tilde embellishment', google: 'tilde adorno')
|
||
- "̄": [T: "barra ornamentada"] # 0x304 (en: 'macron embellishment', google: 'embellido de macron')
|
||
- "̅": [T: "barra encima con adorno"] # 0x305 (en: 'overbar embellishment', google: 'embellido de overbar')
|
||
- "̆": [T: "breve"] # 0x306
|
||
- "̇": [T: "punto encima con adorno"] # 0x307 (en: 'dot above embellishment', google: 'punto por encima del adorno')
|
||
|
||
# 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: "mayúscula"] # (en: 'cap', google 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')
|
||
- "β": [T: "beta"] # 0x3b2
|
||
- "γ": [T: "gamma"] # 0x3b3 (google: 'gama')
|
||
- "δ": [T: "delta"] # 0x3b4
|
||
- "ε": [T: "épsilon"] # 0x3b5 (en: 'epsilon', google: 'epsilon')
|
||
- "ζ": [T: "zeta"] # 0x3b6
|
||
- "η": [T: "eta"] # 0x3b7
|
||
- "θ": [T: "theta"] # 0x3b8
|
||
- "ι": [T: "iota"] # 0x3b9
|
||
- "κ": [T: "kappa"] # 0x3ba
|
||
- "λ": [T: "lambda"] # 0x3bb
|
||
- "μ": [T: "my"] # 0x3bc (en: 'mu', google: 'mu')
|
||
- "ν": [T: "ny"] # 0x3bd (en: 'nu', google: 'nu')
|
||
- "ξ": [T: "xi"] # 0x3be (en: 'zai', google: 'zai')
|
||
- "ο": [T: "ómicron"] # 0x3bf (en: 'omicron', google: 'omicron')
|
||
- "π": [T: "pi"] # 0x3c0
|
||
- "ρ": [T: "rho"] # 0x3c1
|
||
- "ς": [T: "sigma final"] # 0x3c2 (en: 'final sigma', google: 'final sigma')
|
||
- "σ": [T: "sigma"] # 0x3c3
|
||
- "τ": [T: "tau"] # 0x3c4
|
||
- "υ": [T: "ípsilon"] # 0x3c5 (en: 'upsilon', google: 'upsilon')
|
||
- "φ": [T: "phi"] # 0x3c6 (google: 'fi')
|
||
- "χ": [T: "ji"] # 0x3c7 (en: 'chi', google: 'chi')
|
||
- "ψ": [T: "psi"] # 0x3c8
|
||
- "ω": [T: "omega"] # 0x3c9
|
||
- "ϕ": [T: "phi recta"] # 0x3d5 (en: 'phi', google: 'fi')
|
||
- "ϖ": [T: "variante de pi"] # 0x3d6 (en: 'pi', google: 'pi')
|
||
- "ϵ": [T: "variante de épsilon"] # 0x3f5 (en: 'epsilon', google: 'epsilon')
|
||
- "϶": [T: "épsilon invertida"] # 0x3f6 (en: 'reversed epsilon')
|
||
|
||
- "–": [T: "ene raya"] # 0x2013 (en: 'en dash')
|
||
- "—": [T: "eme raya"] # 0x2014 (en: 'em dash')
|
||
- "―": [T: "barra horizontal"] # 0x2015 (en: 'horizontal bar')
|
||
- "‖": [T: "barra vertical doble"] # 0x2016 (en: 'double vertical line')
|
||
- "…": # 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: "puntos suspensivos"] # (en: 'dot dot dot', google translation)
|
||
else_test: # must have $ClearSpeak_Ellipses = 'AndSoOn'
|
||
if: "count(following-sibling::*) = 0"
|
||
then: [T: "etcétera"] # (en: 'and so on', google translation)
|
||
else: [T: "puntos suspensivos"] # (en: 'and so on up to', MathPlayer: 'punto punteado punteado', google: 'y así sucesivamente')
|
||
|
||
- "": # 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: "de"] # (en: 'of', google translation)
|
||
- "": [T: ""] # 0x2062
|
||
- "": [T: ""] # 0x2063
|
||
- "": [T: "más"] # 0x2064 (en: 'and', google: 'y')
|
||
- "′": [T: "prima"] # 0x2032 (en: 'prime')
|
||
- "″": [T: "segunda"] # 0x2033 (en: 'double prime', MathPlayer: 'segunda', google: 'doble primo')
|
||
- "‴": [T: "tercera"] # 0x2034 (en: 'triple prime', MathPlayer: 'tercera', google: 'triple prime')
|
||
- "‵": [T: "prima inversa"] # 0x2035 (en: 'reversed prime')
|
||
- "‶": [T: "segunda inversa"] # 0x2036 (en: 'reversed double prime')
|
||
- "‷": [T: "tercera inversa"] # 0x2037 (en: 'reversed triple prime', google: 'triple prime invertido')
|
||
|
||
- "ℂℕℚℝℤ": # here we rely on this running through the table again to speak "cap xxx"
|
||
- T: "prima inversa" # (en: 'double-struck', google: 'doble golpe')
|
||
- spell: "translate('.', 'ℂℕℚℝℤ', 'CNQRZ')"
|
||
|
||
- "℃": [T: "grados Celsius"] # 0x2103 (en: 'degrees celsius', google: 'grados celsius')
|
||
- "℉": [T: "grados Fahrenheit"] # 0x2109 (en: 'degrees fahrenheit')
|
||
- "ℋℛℓ": # 0x210b
|
||
- T: "grados Fahrenheit" # (en: 'script', google: 'guion')
|
||
- spell: "translate('.', 'ℋℛℓ', 'HRl')"
|
||
- "ℎ": [T: "constante de Planck"] # 0x210e (en: 'planck constant', MathPlayer: 'constante de Planck', google: 'planck constante')
|
||
- "ℜ": # 0x211c
|
||
- T: "r mayúscula partida" # (en: 'fraktur', google: 'fraktur')
|
||
- spell: "'R'"
|
||
|
||
- "Ω": [T: "ohmio"] # 0x2126 (en: 'ohms')
|
||
- "K": [T: "grados Kelvin"] # 0x212a (en: 'kelvin')
|
||
- "Å": [T: "angstrom"] # 0x212b (en: 'angstroms')
|
||
- "ⅆⅇⅈⅉ": # 0x2146-9
|
||
- T: "angstrom resaltado" # (en: 'double-struck italic')
|
||
- spell: "translate('.', 'ⅆⅇⅈⅉ', 'deij')"
|
||
|
||
- "←": [T: "flecha izquierda"] # 0x2190 (en: 'leftwards arrow')
|
||
- "↑": [T: "flecha arriba"] # 0x2191 (en: 'upwards arrow')
|
||
- "→": # 0x2192
|
||
- test:
|
||
if: "ancestor::*[2][self::m:limit]"
|
||
then: [T: "aproximaciones"] # (en: 'approaches', google translation)
|
||
else: [T: "flecha derecha"] # (en: 'right arrow', MathPlayer: 'flecha', google: 'flecha correcta')
|
||
|
||
- "↓": [T: "flecha abajo"] # 0x2193 (en: 'downwards arrow')
|
||
- "⇒": [T: "flecha doble derecha"] # 0x21d2 (en: 'rightwards double arrow')
|
||
- "∀": [T: "para todo"] # 0x2200 (en: 'for all')
|
||
- "∂": # 0x2202
|
||
- test:
|
||
if: "$Verbosity='Terse'"
|
||
then: [T: "parcial"] # (en: 'partial', google translation)
|
||
else: [T: "derivada parcial"] # (en: 'partial derivative')
|
||
- "∃": [T: "existe"] # 0x2203 (en: 'there exists')
|
||
- "∄": [T: "no existe"] # 0x2204 (en: 'there does not exist')
|
||
- "∅": [T: "conjunto vacío"] # 0x2205 (en: 'empty set')
|
||
- "∆": # 0x2206
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "el"] # (en: 'the', google translation)
|
||
- T: "incremento" # (en: 'laplacian of')
|
||
- "∈": # 0x2208
|
||
- test:
|
||
if: "$SpeechStyle != 'ClearSpeak'"
|
||
then: [T: "un elemento de"] # (en: 'an element of', google 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: "en"] # (en: 'in', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Member'
|
||
then: [T: "miembro de"] # (en: 'member of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
|
||
then: [T: "elemento de"] # (en: 'element of', google translation)
|
||
- else: [T: "pertenece a"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to')
|
||
else_test:
|
||
- if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
|
||
then: [T: "es miembro de"] # (en: 'is a member of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
|
||
then: [T: "es un elemento de"] # (en: 'is an element of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'In'
|
||
then: [T: "está en"] # (en: 'is in', google translation)
|
||
- else: [T: "pertenece a"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to')
|
||
- "∉": # 0x2209
|
||
# rule is identical to 0x2208
|
||
- test:
|
||
if: "$SpeechStyle != 'ClearSpeak'"
|
||
then: [T: "no es un elemento de"] # (en: 'is not an element of', google 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: "no está en"] # (en: 'not in', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Member'
|
||
then: [T: "no es miembro de"] # (en: 'not member of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
|
||
then: [T: "no es un elemento de"] # (en: 'not element of', google translation)
|
||
- else: [T: "no pertenece a"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'not belonging to')
|
||
else_test:
|
||
- if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
|
||
then: [T: "no es miembro de"] # (en: 'is not a member of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
|
||
then: [T: "no es un elemento de"] # (en: 'is not an element of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'In'
|
||
then: [T: "no está incluido en"] # (en: 'is not in', google translation)
|
||
- else: [T: "no pertenece a"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'does not belong to')
|
||
- "∊": # 0x220a
|
||
- test:
|
||
if: "$SpeechStyle != 'ClearSpeak'"
|
||
then: [T: "es un elemento de"] # (en: 'is an element of', google 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: "en"] # (en: 'in', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Member'
|
||
then: [T: "miembro de"] # (en: 'member of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
|
||
then: [T: "elemento de"] # (en: 'element of', google translation)
|
||
- else: [T: "pertenece a"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belonging to')
|
||
else_test:
|
||
- if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member'
|
||
then: [T: "es miembro de"] # (en: 'is a member of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'Element'
|
||
then: [T: "es un elemento de"] # (en: 'is an element of', google translation)
|
||
- else_if: $ClearSpeak_SetMemberSymbol = 'In'
|
||
then: [T: "está en"] # (en: 'is in', google translation)
|
||
- else: [T: "pertenece a"] # $ClearSpeak_SetMemberSymbol = 'Belongs' (en: 'belongs to')
|
||
- "∏": [T: "producto"] # 0x220f (en: 'product')
|
||
- "∐": [T: "coproducto"] # 0x2210 (en: 'co-product')
|
||
- "∑": [T: "suma"] # 0x2211 (en: 'sum', SRE: 'sumatorio')
|
||
- "−": [T: "menos"] # 0x2212 (en: 'minus')
|
||
- "∓": [T: "menos más"] # 0x2213 (en: 'minus or plus')
|
||
- "∗": [T: "asterisco"] # 0x2217 (en: 'times')
|
||
- "∘": [T: "compuesto"] # 0x2218 (en: 'composed with')
|
||
- "√": # 0x221a
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "el"] # (en: 'the', google translation)
|
||
- T: "raíz cuadrada de" # (en: 'square root of')
|
||
- "∝": # 0x221d
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "proporcional a" # (en: 'proportional to')
|
||
- "∞": [T: "infinito"] # 0x221e (en: 'infinity')
|
||
- "∟": [T: "ángulo recto"] # 0x221f (en: 'right angle')
|
||
- "∠": [T: "ángulo"] # 0x2220 (en: 'angle')
|
||
- "∡": [T: "ángulo medido"] # 0x2221 (en: 'measured angle')
|
||
- "∣": [T: "divisible"] # 0x2223 (en: 'divides')
|
||
- "∤": [T: "indivisible"] # 0x2224 (en: 'does not divide')
|
||
- "∥": # 0x2225
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "paralelo a" # (en: 'parallel to')
|
||
- "∦": # 0x2226
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "no paralela a" # (en: 'not parallel to')
|
||
- "∧": [T: "y"] # 0x2227 (en: 'and')
|
||
- "∨": [T: "o"] # 0x2228 (en: 'or')
|
||
- "∩": [T: "intersección"] # 0x2229 (en: 'intersection')
|
||
- "∪": [T: "unión"] # 0x222a (en: 'union')
|
||
- "∫": [T: "integral"] # 0x222b
|
||
- "∬": [T: "integral doble"] # 0x222c (en: 'double integral')
|
||
- "∭": [T: "integral triple"] # 0x222d (en: 'triple integral')
|
||
- "∮": [T: "integral de contorno"] # 0x222e (en: 'contour integral')
|
||
- "∶": # 0x2236
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "a" # (en: 'to')
|
||
- "∷": [T: "como"] # 0x2237 (en: 'as')
|
||
- "∼": [T: "distinto de"] # 0x223c (en: 'varies with')
|
||
- "∽": [T: "tilde inversa"] # 0x223d (en: 'reversed tilde')
|
||
- "∾": # 0x223e
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "más positivo" # (en: 'most positive')
|
||
- "∿": [T: "onda sinusoidal"] # 0x223f (en: 'sine wave')
|
||
- "≠": # 0x2260
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "no es igual a" # (en: 'not equal to', MathPlayer: 'distinto de', google: 'no igual a')
|
||
- "≡": # 0x2261
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "idéntico a" # (en: 'identical to')
|
||
- "≤": # 0x2264
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "menor o igual a"
|
||
- "≥": # 0x2265
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "mayor o igual a" # (en: 'greater than or equal to')
|
||
- "≦": [T: "menor o igual a"] # 0x2266 (en: 'less than over equal to')
|
||
- "≧": [T: "mayor o igual a"] # 0x2267 (en: 'greater than over equal to')
|
||
- "≺": [T: "precede a"] # 0x227a (en: 'precedes')
|
||
- "≻": [T: "sigue a"] # 0x227b (en: 'succeeds')
|
||
- "⊂": # 0x2282
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es un"] # (en: 'is a', google translation)
|
||
- T: "subconjunto de" # (en: 'subset of')
|
||
- "⊃": # 0x2283
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es un"] # (en: 'is a', google translation)
|
||
- T: "superconjunto de" # (en: 'superset of')
|
||
- "⊄": # 0x2284
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "no es un subconjunto de" # (en: 'not a subset of')
|
||
- "⊅": # 0x2285
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es"] # (en: 'is', google translation)
|
||
- T: "no esun superconjunto de" # (en: 'not a superset of')
|
||
- "⊆": # 0x2286
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es un"] # (en: 'is a', google translation)
|
||
- T: "subconjunto o igual a" # (en: 'subset of or equal to')
|
||
- "⊇": # 0x2287
|
||
- test:
|
||
if: "$Verbosity!='Terse'"
|
||
then: [T: "es un"] # (en: 'is a', google translation)
|
||
- T: "superconjunto o igual a" # (en: 'superset of or equal to')
|