HOWTO Localize FMSLogo

Thank you for your interest in localizing FMSLogo. Each new translation of FMSLogo expands its potential audience and brings Logo to more people.

Localizing FMSLogo is mostly a matter of translating lots of text in several files and then testing that your translations look right. Your first step is to contact me (David Costanzo) so that I can create a "localization pack" for you. The localization pack is a collection of files which you must localize. Your next step is localize each file and email them back to me when you have significant updates. I will integrate your changes and send you an updated FMSLogo installer. You then test the localized FMSLogo by looking for GUI elements where the text is either cut-off, misspelled, or still in English.

We go back and forth like this until the localized FMSLogo reaches an acceptable level of quality (determined by you). The next time I release a new version of FMSLogo (see the FMSLogo Release Cycle), it will include your changes.

As I fix bugs and add features to FMSLogo, I may add new strings that need to be localized. These new strings will automatically be propagated to the other locales in English. You must then translate the new strings to your language, or else they will appear in English. I haven't worked out a system for notifying people when there are new strings to be translated such that the translations can be done in time for the next release.

The Localization Pack

The localization pack contains the following files:

Filename Description Instructions
fmslogo-X.X.X+.exe FMSLogo's multi-language installer Install the language you're working on to see how it looks so far.
fmslogo.nsi The source code for the installer See the comment at the top of the file for detailed instructions. Note that all languages share the same installer.

This file is encoded as UTF-16LE and must remain that way. You can edit UTF-16LE files in notepad.

localizedstrings-XX.txt A C++ header file that contains strings used for the UI. This also contains the canonical translations for all primitives. See the comment at the top of the file for detailed instructions. Be sure to give yourself credit for your effort by changing LOCALIZED_ABOUTFMS_MULTIMEDIALOGIC.

This file is encoded as UTF-8 and must remain that way.

startup-XXXX.logoscript A logo file that is run when Logo starts up. This also contains the secondary translations for all primitives (if any), as well as the translations for all library routines. This file starts out blank, so see the French version for an example on how to do the translations.

This file is encoded as UTF-8 with a byte order mark (BOM) at the beginning and must remain that way.

logohelp-XXXX.chm The FMSLogo manual I have not yet written instructions on how to localize the manual. Most translations either supply their own manual or use the English manual and add translations of procedure names and color names as an appendix. The translation tables are generated automatically from localizedstrings-XX.txt and startup-XXXX.logoscript.

Translating the manual is a large undertaking. It took me about 220 hours to translate the English manual into Spanish and I had the benefit of having an old translation of the MSWLogo manual to serve as a reference as well as a solid understanding of everything written in the manual. However, I am not a native Spanish speaker, so that undoubtedly slowed me down.

If you want to translate the manual, I recommend prioritizing the commonly used procedures, including turtle graphics (FORWARD, RIGHT, PENUP, etc.) list manipulation (LPUT, SENTENCE, etc.) and flow control (REPEAT, FOR, etc.), and being willing to leave the rest in English until you have time to finish the translation.

demo The demo program All of the strings for all languages are included in the same file. The program uses LOGOVERSION to determine which strings to show.

This file is encoded as UTF-8 with a byte order mark (BOM) at the beginning and must remain that way.

Localization Suggestions

To promote compatibility with other Logos, please look at how other Logo environments have been translated before translating any command names. The most widely translated Logo that I know of is XLogo.

If there are two good translations for the same command, feel free to use both of them.

If a primitive's name has accent marks, put the one with accent marks in localizedstrings-XX.txt and use a COPYDEF to add a form without accent marks.

All FMSLogo translations keep English as a common language and then add support for a new language. This way, all FMSLogo translations can run the same English programs and there's no need to translate Logolib. To achieve this goal, you must not use a word that happens to be the name of an English command as a translation for a different command. It's okay to replace some of the English abbreviations with abbreviations for your language, but please don't replace the "core" abbreviations: FD, BK, RT, LT, BF, PU, PD, ST, HT, SE, and OP.

Do not translate any of the deprecated commands. They are only supported in the English version for backward-compatibility of old English programs, so they are unnecessary in the translated versions.

The SLOWDRAW procedure cannot be translated with COPYDEF alone, because this would slow down only the English movements commands (FORWARD, BACK, FD, and BK) and not the translated ones. To translate SLOWDRAW, you can copy the implementation from logolib/slowdraw into startup-XXXX.logoscript and modify it accordingly. Then add COPYDEF to translate its name.

Who's Doing What

The following tables shows what languages are currently supported and who maintains them.

Language Maintainer
Chinese (Simplified) 冷家锋 (pachleng)
Croatian Domagoj Kuna
English David Costanzo
French Bertrand CARETTE
German Stephan Vogel
Greek Theodoros Chatzigiannakis
Italian Stefano Federici and Francesco Simone Carta
Portuguese Alexandre Soares
Polish Andrzej Pruszynski
Russian Igor Baglaev
Slovene Jelko Urbančič
Spanish Daniel Ajoy

Get FMSLogo at SourceForge.net. Fast, secure and Free Open Source software downloads