Documentation

  • Demos
  • Visit our website
  • Contact us
  • MathType

    • Wiris Quizzes

      • Learning Lemur

        • CalcMe

          • MathPlayer

            • Store FAQ

              • VPAT for the electronic documentation

                • MathFlow

                  • BF FAQ

                    • Home
                    • MathPlayer
                    • Getting Started on a Translation
                    • Getting Started on a Translation

                    Getting Started on a Translation

                    Reading time: 5min

                    In the "Rules" directory, there are subfolders that correspond to various languages that already have translations. The "en" (English) subdirectory has the most complete translation and is probably the best candidate to use as a starting point. However, other directories can be used and might be better starting points if the language is similar to your language.

                    Here is an outline of what you should do to begin a translation:

                    1. Copy the "en" directory (or other directory you choose) and create a directory with the appropriate ISO 639-1 language code for the language for which you are doing a translation. The remaining instructions apply to the new/copied files. Do not modify the files in the "en" directory.
                    2. If you do not know what is the language code is, here is a list of codes. Use the 639-1 column. If there are multiple dialects of a language (e.g., US English and British English), first create the files for what you believe should be the default and then add a subdirectory for the other dialect(s) with the appropriate ISO code (e.g, en-GB). Contact WIRIS for further instructions
                    3. If Nemeth Code is not used as a Braille code for the target language, remove the files MathSpeak.tdl, MathSpeak_unicode.tld, and MathSpeak-en.tdl. If Nemeth Code is used for the target language, it might be useful to translate these files also, but you can wait to do that at a later date.
                    4. ClearSpeak builds in some common ways of speaking math in English. It might not be appropriate for other languages. Starting with SimpleSpeak is probably best. Remove all the files that start with "ClearSpeak". For example, remove ClearSpeak.tdl.
                    5. Rename simple-speech-en.tdl: change the "en" to the appropriate country code (eg, simple-speech-es.tdl)
                    6. Open the renamed file in a text editor that is able to handle utf-8 encoded files. Notepad, Notepad++, and WordPad are all able to handle utf-8 encoded files.
                      • Near the top of the file are some lines like:

                    speechStyle = "Simple Speech PI"; description = "Simple Speech PI input translator v1.00 by Design Science, Inc."; isoLanguage = "en"; language = "English";

                    Change at least the last two lines to refer to the new language. "language" can be in your native language -- it is displayed in a drop-down list.

                     * Remove some apparently English only rules for saying "negative" and "positive". The first line to remove is
                    

                    // rule for speaking "negative" instead of "minus" (apparently English-only) and all of the lines between it and // subject area rules should be first (but not including this last line) should be removed.

                    1. Open simple-speech.tdl in a text editor that handles utf-8 encoded files.
                      • Do the same change with "speechStyle" etc., in that file as you did above.
                      • Change the line
                        phaseIFile = "simple-speech-en.tdl"; to point to the renamed file
                    1. Do the same thing for the files Simple-speech-nav-en.tdl and Simple-speech-nav.tdl.
                    2. Open the MathPlayer control panel (close and reopen if you had it open from before). Under "Language for Speech", you should now see the new language listed. "Simple Speech" (or whatever name you choose) should be listed under "Speech Style" next to it. If you don't see that, make sure you followed the above steps; make sure the quotes remain balanced; and make sure a ";" is at the end of lines.
                    3. Open simple-speech-words.tdl in a text editor that handles utf-8 encoded files. Find the first occurrence of "UIWord". You should start by modifying all of the English words inside of quotes that follow 'text="xxx"'. For example, the Spanish translation changes the word used in a fraction from
                      text="over" to & text="sobre" See the Verbosity and Target Group sections below for a discussion about those and the meaning/syntax of "?" and ":".
                    1. Open unicode.tdl and change the string values of 'text="xxx"' as before. This is a very large file and most characters will never be used. See www.unicode.org/charts to see what the characters look like. We recommended you translate at least the following Unicode values:
                      • 0x0032 - 0x00FF, although translating modified characters such as

                    text="cap e with grave" can be skipped on the first pass. At this point, you can test simple expressions such as fractions and powers and see if they speak correctly. If nothing is spoken or there are problems, see the Debugging section below.

                     * 0x0391 - 0x0x03F6 (Greek letters)
                     * 0x2010 - 0x2063
                     * 0x20AC (Euro)
                     * 0x2190 - 0x2199, 0x21BC - 0x21BF, 0x21D0 - 0x21D5, and 0x21FD - 0x21FF (Arrows)
                     * 0x2200 - 0x224D, 0x2260 - 0x228B, 0x22C0 - 0x22C3, 0x22EE- 0x22F1 (Mathematical Operators)
                     * 0x27E6 - 0x27EF (Brackets)
                     * 0x27F5 - 0x27FA (Long arrows)
                     * 0x2308 - 0x230B (Floor, Ceiling), 0x2329 - 0x232A (deprecated angle brackets), 0x23DE - 0x23E1 (horizontal brackets)
                     * 0xF000 - 0xF251 including the plane 1 chars 0x1D504, etc (Fraktur, Script, etc, letters)
                     * The more characters you translate, the better, but this is by far the most tedious task. Finishing off the 2200 block (Mathematical Operators) and the Arrow block are probably next on the most important character list.
                    - Open **functions.tdl** and translate the string values of 'text="xxx"' as before.
                    - Open **units.tdl** and translate the string values of 'text="xxx"' as before.
                     * **{{units.xht|units.xht}}** is useful for testing these translations.
                     * Some languages have special ways of reading certain numbers. Eg, Spanish uses "un" instead of "uno" in some cases. See the Spanish version of units.tdl and simple-speech-es.tdl to see how this is handled if it is relevant to your language. Contact WIRIS if you need help getting special cases right.
                    - Open **money.tdl** and translate the string values of 'text="xxx"' as before.
                     * Some languages may not use a connector such as "and" between dollars and cents. Use an empty string ("") if this is true for the target language.
                     * **{{money.xht|money.xht}}** is useful for testing these translations.
                     * As with units, some languages have special ways for speaking monetary amounts that differ from the normal pattern. Check the Spanish files for examples if that is the case with your language. Contact WIRIS if you need help getting special cases right.
                    - Open the subject area files **geometry.tdl**, **statistics.tdl**, and **calculus.tdl** and translate the string values of 'text="xxx"' as before.
                     * We have tried to include notations not used in the US, but there are likely to be ones that need to be added to simple-speech-en.tdl. Contact WIRIS if you need help getting special cases right.
                     * There are test files included for testing these translations.
                    - Open and translate **chemistry.tdl**. For Romance languages, it might be better to start with French or some other Romance langauge as there are word order issues that do not come up in English.
                    - Open **elementary-math.tdl** and translate the string values of 'text="xxx"' as before.
                     * This file and the related elementary-math-base.tdl file are still undergoing development and may change. In particular, we are looking for a better way to speak borrows and carries. If you have a suggestion, please contact WIRIS.
                     * Examples of elementary are not currently part of the example files. To try out some examples, go to the [[https://www.w3.org/Math/testsuite/build/main/Topics/ElementaryMathExamples/rec3-ElementaryMathExamples-00-simple.xhtml|elementary math examples]] at the W3C math testsuite. There are many styles of long division. All should work, but find the style used in your country and verify that the speech is correct for that.
                    - If you feel that any of the pauses are too long or too short, [[support@wiris.com|let us know]]. If could be that they are not well tuned in general, or it could be that they don't work well with your language. If you think it is language-specific, copy the specific rule from simple-speech-base.tdl to simple-speech-xx.tdl and modify the values given in "pause{ms=nnn;}". You can also add "pause" statements if they are not present.
                    

                    Caution

                    Note: MathPlayer 4 fully supports MathML 3, including support for elementary math notation. elementary-math-base.tdl is a start on speaking the new notations, however, much more work remains to be done before translators should attempt to translate that file.

                    Was this article helpful?

                    Yes
                    No
                    Give feedback about this article

                    Related Articles

                    • Symbols
                    • Brackets
                    • Examples
                    • Testing

                    Getting Started on a Translation

                    Caution

                    Making people’s STEM work more meaningful

                    MathType

                    • MathType for Office Tools
                    • MathType for Mac
                    • MathType for Microsoft 365
                    • MathType for Google Workspace
                    • MathType for LMS
                    • MathType for XML Editors
                    • Arabic notation
                    • Our products accessibility
                    • MathType is online

                    WirisQuizzes

                    Learning Lemur

                    Solutions for Education

                    • Blackboard Learn
                    • Brightspace by D2L
                    • Canvas
                    • Google Classroom
                    • Moodle
                    • Schoology

                    Solutions for Publishing Houses

                    Solutions for Technical Writers

                    Solutions for Chemistry

                    Integrations

                    • HTML Editors
                    • MathType in WordPress

                    Pricing

                    Company

                    Careers

                    Blog

                    Contact Us

                    Buy Now

                    Plugin Downloads

                    © Wiris 2025

                    • Cookie Settings
                    • Cookie Policy
                    • Terms of Use
                    • Privacy Policy / GDPR
                    • Student Data Privacy
                    • Compliance
                    • Powered by Helpjuice
                    Expand