nvdaportable/NVDA/include/nvda-mathcat/assets/Rules/Languages/en/definitions.yaml

375 lines
15 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
- include: "../../definitions.yaml"
# If an "intent" is used, the 'terse:medium:verbose' speech for the intent name is given here for a prefix||infix||postfix||function fixity
# If only one ":" is used, the first part is used for 'terse' and the second part is used for 'medium' and 'verbose'
# If no ":"s are used, the same speech is used for all forms
# If bracketing words make sense, they are separated with ";"s
# Intent mappings must specify whether they are "prefix", "infix", "postfix", or "function" with an "=" sign
# If there are multiple fixities (e.g., see transpose), they are separated with "||"
# for readability, spaces can be used around any of the delimiter characters
# Note: if there are multiple fixities, the first one is used if the fixity is not given in the intent
- IntentMappings: {
"indexed-by": "infix= ; sub; end sub: end sub: end subscript",
"modified-variable": "silent= ",
"say-super": "infix=super: superscript: superscript", # used with 'mo' for superscripts (e.g, "<")
"skip-super": "silent=", # used with 'mo' for superscripts (e.g, "*")
"absolute-value": "function= ; absolute value: the absolute value: the absolute value; end absolute value",
"binomial": "infix=binomial; choose; end binomial",
"dimension-product": "infix=by",
# "closed-interval": "other=closed-interval; from,to; end closed-interval",
"greatest-common-divisor": "function=gcd: the gcd: the greatest common divisor",
"imaginary-part": "function=imaginary part, the imaginary part, the imaginary part",
"least-common-multiple": "function=lcm:the lcm:the least common multiple",
# "large-op": "infix=over || other=from,to",
"limit": "prefix=limit as: the limit as: the limit as",
"lim-sup": "prefix=lim sup as: the limit superior as: the limit superior as",
"lim-inf": "prefix=lim inf as: the limit inferior as : the limit inferior as",
"logarithm-with-base": "prefix=log base: the log base: the log base",
"natural-logarithm": "function=l n: natural log: natural log",
"minus": "infix=minus || prefix=negative",
"plus": "infix=plus || prefix=positive",
# "pochhammer": "infix=permutations of", # arguments are in reverse order, so can't work here
"real-part": "function=the real part",
"transpose": "postfix=transpose || function=transpose",
"norm": "function=; norm: norm: norm; end norm",
"trace": "function=;trace : trace: the trace; end trace",
"dimension": "function=; dimension : dimension: the dimension; end dimension",
"homomorphism": "function= ; homomorphism : homomorphism: the homomorphism; end homomorphism",
"kernel": "function= ; kernel : kernel: the kernel; end kernel",
"vector": "function= ; vector || prefix=vector",
"cross-product": "infix=cross: cross product: cross product",
"dot-product": "infix=dot: dot product: dot:dot product",
"divergence": "function= ; dihv: divergence: divergence; end divergence",
"curl": "function= ; curl; end curl",
"gradient": "function= ; del: gradient: gradient; end gradient",
"laplacian": "function=lahplahsian", # speech engines don't do a good job with "laplacian"
"chemistry-concentration": "function= ; concentration: concentration of: the concentration of; end concentration",
}
# Names of functions that in terse mode don't say "of" (or it's equivalent in other languages)
- TerseFunctionNames: {
"divergence", "gradient", "curl"
}
- NavigationParts: {
# These are the parts of a formula that can be navigated to
"large-op": "base; lower limit; upper limit",
"mfrac": "numerator; denominator",
"fraction": "numerator; denominator",
"msqrt": "root",
"square-root": "root",
"mroot": "root; root index",
"root": "root; root index",
"msub": "base; subscript",
"sub": "base; subscript",
"msup": "base; superscript",
"say-super": "base; superscript",
"skip-super": "base; superscript",
"power": "base; exponent",
"msubsup": "base; subscript; superscript",
"munder": "base; under limit",
"mover": "base; upper limit",
"munderover": "base; under limit; upper limit",
# words for moving into and out of one of the parts (e.g., "move right 'out of' numerator, 'in' denominator")
# it's a hack to put them here, but at least they are grouped with the other navigation parts
"in": "in",
"out": "out of",
}
- KnownWords: {
# MathCAT will put together some runs of three or more mi's (a common mistake), but skips those in alphabetical order.
# This is a list of exceptions so that they do get put together. Don't list words with repeated letters.
# I asked bard and chatgpt for formula words that are alphabetical, and they failed.
# Here are the words I managed to find, but it almost certainly not complete. Change the list for other languages.
"Abel", "aery", "ails", "airy", "amps", "cents", "flux", "flow", "knot",
}
- SIPrefixes: {
"Q": "quetta", "R": "ronna", "Y": "yotta", "Z": "zetta", "E": "exa", "P": "peta", "T": "tera", "G": "giga", "M": "mega", "k": "kilo", "h": "hecto", "da": "deka",
"d": "deci", "c": "centi", "m": "milli", "µ": "micro", "n": "nano", "p": "pico", "f": "femto", "a": "atto", "z": "zepto", "y": "yocto", "r": "ronto", "q": "quecto"
}
# this is a list of all units that accept SIPrefixes
# from www.bipm.org/documents/20126/41483022/SI-Brochure-9-EN.pdf
# Prefixes may be used with any of the 29 SI units with special names
# The SI prefixes can be used with several of accepted units, but not, for example, with the non-SI units of time.
- SIUnits: {
# base units
"A": "amp",
"cd": "candela",
"K": "kelvin", "": "kelvin", # U+212A
"g": "gram",
"m": "metre", # British spelling works for US also
"mol": "mole",
"s": "second", "sec": "second", # "sec" not actually legal
# derived units
"Bq": "becquerel",
"C": "coulomb",
"°C": "degree celsius", "℃": "degree celsius", # should only take negative powers
"F": "farad",
"Gy": "gray",
"H": "henry",
"Hz": "hertz",
"J": "joule",
"kat": "kattel",
"lm": "lumen",
"lx": "lux",
"N": "newton",
"Ω": "ohm", "Ω": "ohm", # Greek Cap letter, U+2126 OHM SIGN
"Pa": "pascal",
"S": "siemens",
"Sv": "sievert",
"T": "tesla",
"V": "volt",
"W": "watt",
"Wb": "weber",
# accepted (plus a few variants) that take SI prefixes
"l": "litre", "L": "litre", "": "litre", # Should only take negative powers; British spelling works for US also
"t": "metric ton", # should only take positive powers
"Da": "dalton",
"Np": "neper", # should only take negative powers
"u": "atomic mass unit", # 'u' is correct: https://en.wikipedia.org/wiki/Dalton_(unit)
"eV": "electronvolt",
"rad": "radian", # should only take negative powers
"sr": "sterradion", # should only take negative powers
# others that take a prefix
"a": "annum", # should only take positive powers
"as": "arcsecond", # see en.wikipedia.org/wiki/Minute_and_second_of_arc
# technically wrong, but used in practice with SI Units
"b": "bit", # should only take positive powers
"B": "byte", # should only take positive powers
"Bd": "baud", # should only take positive powers
}
- UnitsWithoutPrefixes: {
# time
"″": "second", "\"": "second",
"": "minute", "'": "minute","min": "minute",
"h": "hour", "hr": "hour", "Hr": "hour",
"d": "day", "dy": "day",
"w": "week", "wk": "week",
"y": "year", "yr": "year",
# angles
"°": "degree", "deg": "degree", # should only take negative powers
"arcmin": "arcminute",
"amin": "arcminute",
"am": "arcminute",
"MOA": "arcminute",
"arcsec": "arcsecond",
"asec": "arcsecond",
# distance
"au": "astronomical unit", "AU": "astronomical unit",
"ltyr": "light year", "ly": "light year",
"pc": "parsec",
"Å": "angstrom", "Å": "angstrom", # U+00C5 and U+212B
"fm": "fermi",
# others
"ha": "hectare",
# "B": "bel", # "B" more commonly means bytes
"dB": "decibel", # already logarithmic, so not used with SI prefixes
"amu": "atomic mass unit",
"atm": "atmosphere",
"bar": "bar",
"cal": "calorie",
"Ci": "curie",
"grad": "gradian",
"M": "molar",
"R": "roentgen",
"rpm": "revolution per minute",
"℧": "m-h-o",
"dyn": "dyne",
"erg": "erg",
# powers of 2 used with bits and bytes
"Kib": "kibi-bit", "Mib": "mebi-bit", "Gib": "gibi-bit", "Tib": "tebi-bit", "Pib": "pebi-bit", "Eib": "exbi-bit", "Zib": "zebi-bit", "Yib": "yobi-bit",
"KiB": "kibi-byte", "MiB": "mebi-byte", "GiB": "gibi-byte", "TiB": "tebi-byte", "PiB": "pebi-byte", "EiB": "exbi-byte", "ZiB": "zebi-byte", "YiB": "yobi-byte",
}
# this will only be used if the language is English, so it can be empty for other countries
- EnglishUnits: {
# length
"in": "inch",
"ft": "foot",
"mi": "mile",
"rd": "rod",
"li": "link",
"ch": "chain",
# area
"sq in": "square inch", "sq. in": "square inch", "sq. in.": "square inch",
"sq ft": "square foot", "sq. ft": "square foot", "sq. ft.": "square foot",
"sq yd": "square yard", "sq. yd": "square yard", "sq. yd.": "square yard",
"sq mi": "square mile", "sq. mi": "square mile", "sq. mi.": "square mile",
"ac": "acre",
"FBM": "board foot",
# volume
"cu in": "cubic inch", "cu. in": "cubic inch", "cu. in.": "cubic inch",
"cu ft": "cubic foot", "cu. ft": "cubic foot", "cu. ft.": "cubic foot",
"cu yd": "cubic yard", "cu. yd": "cubic yard", "cu. yd.": "cubic yard",
"bbl": "barrel", "BBL": "barrel",
"pk": "peck",
"bu": "bushel",
"tsp": "teaspoon",
"tbl": "tablespoon",
# liquid
"fl dr": "fluid drams",
"fl oz": "fluid ounce",
"gi": "gill",
"cp": "cup", "cup": "cup",
"pt": "pint",
"qt": "quart",
"gal": "gallon",
# weight
"gr": "grain",
"dr": "dram",
"oz": "ounce", "℥": "ounce",
"lb": "pound",
"cwt": "hundredweight",
"dwt": "pennyweight",
"oz t": "troy ounce",
"lb t": "troy pound",
# energy
"hp": "horsepower",
"BTU": "BTU",
"°F": "degree fahrenheit", "℉": "degree fahrenheit",
# other
"mph": "mile per hour",
"mpg": "mile per gallon",
}
- PluralForms: {
# FIX: this needs to be flushed out
"inch": "inches", "square inch": "square inches", "cubic inch": "cubic inches",
"foot": "feet", "square foot": "square feet", "cubic foot": "cubic feet",
"board foot": "board feet",
"degree celsius": "degrees celsius",
"degree fahrenheit": "degrees fahrenheit",
"hertz": "hertz",
"siemens": "siemens",
"revolution per minute": "revolutions per minute",
"mile per hour": "miles per hour",
"mile per gallon": "miles per gallon",
}
# Lines starting with "#" are a comment
# Each definition in this file is of the form
# - name: { "...", "..." "..." }
# For numbers,
# - name: [] "...", "..." "..." ]
# ---------------- Cardinal and Ordinal Numbers --------------------------
# The following definitions are used to convert numbers to words
# The are mainly used for ordinals, of which there are two cases:
# 1. Regular ordinals: first, second, third, ...
# 2. Ordinals used in the denominator of fractions (e.g, one half, one third)
# When used in the denominator of fractions, a plural version might be
# used (e.g., two halves, two thirds)
# Although a lot of languages are regular after a few entries, for generality,
# the following lists should be filled out even though they are the same
# or easily derived from others in many languages (e.g, an 's' is added for plurals).
# The larger ordinal numbers (e.g, millionth) is used when there are only
# '0's after that decimal place (e.g., 23000000).:w
# All definitions start 0, 10, 100, etc.
# The definitions for the "ones" should extend until a regular pattern begins
# The minimum length is 10.
# For English, a regular pattern starts at twenty
- NumbersOnes: [
"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
"seventeen", "eighteen", "nineteen"
]
- NumbersOrdinalOnes: [
"zeroth", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth",
"tenth", "eleventh", "twelfth", "thirteenth", "fourteenth", "fifteenth", "sixteenth",
"seventeenth", "eighteenth", "nineteenth"
]
- NumbersOrdinalPluralOnes: [
"zeroth", "first", "seconds", "thirds", "fourths", "fifths", "sixths", "sevenths", "eighths", "ninths",
"tenths", "elevenths", "twelfths", "thirteenths", "fourteenths", "fifteenths", "sixteenths",
"seventeenths", "eighteenths", "nineteenths"
]
# stop when regularity begins
- NumbersOrdinalFractionalOnes: [
"zero", "first", "half"
]
# stop when regularity begins
- NumbersOrdinalFractionalPluralOnes: [
"zeros", "firsts", "halves"
]
# What to use for multiples of 10
- NumbersTens: [
"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"
]
- NumbersOrdinalTens: [
"", "tenth", "twentieth", "thirtieth", "fortieth", "fiftieth", "sixtieth", "seventieth", "eightieth", "ninetieth"
]
- NumbersOrdinalPluralTens: [
"", "tenths", "twentieths", "thirtieths", "fortieths", "fiftieths", "sixtieths", "seventieths", "eightieths", "ninetieths"
]
- NumbersHundreds: [
"", "one hundred", "two hundred", "three hundred", "four hundred", "five hundred",
"six hundred", "seven hundred", "eight hundred", "nine hundred"
]
- NumbersOrdinalHundreds: [
"", "one hundredth", "two hundredth", "three hundredth", "four hundredth", "five hundredth",
"six hundredth", "seven hundredth", "eight hundredth", "nine hundredth"
]
- NumbersOrdinalPluralHundreds: [
"", "one hundredths", "two hundredths", "three hundredths", "four hundredths", "five hundredths",
"six hundredths", "seven hundredths", "eight hundredths", "nine hundredths"
]
# At this point, hopefully the language is regular. If not, code needs to be written
- NumbersLarge: [
"", "thousand", "million", "billion", "trillion", "quadrillion",
"quintillion", "sextillion", "septillion", "octillion", "nonillion",
]
- NumbersOrdinalLarge: [
"", "thousandth", "millionth", "billionth", "trillionth", "quadrillionth",
"quintillionth", "sextillionth", "septillionth", "octillionth", "nonillionth"
]
- NumbersOrdinalPluralLarge: [
"", "thousandths", "millionths", "billionths", "trillionths", "quadrillionths",
"quintillionths", "sextillionths", "septillionths", "octillionths", "nonillionths"
]