FILE FORMAT The *.i18n files follow a simple file format. All empty lines or lines starting with a hash sign (#) are comments and thus ignored. All other lines should be translation entries, that consist of a four digit number, a colon or dot, and the translated string. The order of the strings does not matter for climm, but it does matter for the scripts updating these files. The first 10 entries contain meta data: 1000: character encoding used for this file. 1001: the ISO 3166 country code, e.g. de for German. 1002: the current locale, e.g. de_DE for German/Germany. 1003: climm version this file was last updated for, e.g. 0-4-9-4. 1004: maintainers and contributors to this translation 1005: maintainer who last updated this file 1006: date of last update 1007: reserved (was character encoding) 1008: reserved 1009: reserved CREATING A NEW TRANSLATION WITHOUT CVS If you want to make a new translation, lets assume for Danish (language code: da), you start by copying the C.i18n file from the latest climm source package to a new file, da.i18n. Add a hash sign in front of every line of this file. Then translate each line, and for each line done, remove the leading hash sign. This way, all untranslated lines are commented out, while all translated lines are not. When you've done a significant part of the file, simply mail it to me (i18n@ruediger-kuhlmann.de, ICQ # 82274703). You may want to contact me when you start working on a translation as well. From this on, follow the directions for translation updates. UPDATING A TRANSLATION WITHOUT CVS Download the current translation file from the climm web page, namely from <URL:http://www.climm.org/documentation.shtml>, which is for the example given the file <URL:http://www.climm.org/doc/da.i18n>. DO THIS EVEN IF YOU HAVE A PREVIOUS VERSION OF THIS FILE. If I have made changes since you sent me the file the last time that you don't agree with, undo them now, but for heavens sake work on the file you downloaded from climm.org. Then update whatever needs updating. Often, same strings have changed. Then, instead of your translation, the file will now contain three lines: a line preceded by "#-#" containing your previous translation, a line preceded by "+" containing the previous English string, and a line preceded by "# #" containing the current English string. Thus, you can see what exactly has changed in the English string and whether any change and which is necessary for your translation. If, e.g., a typo in the English string is fixed, your translation doesn't need to be changed, but it needs to be checked anyway. When finished, mail the file to me as usual. CREATING A NEW TRANSLATION WITH CVS Get the newest CVS check-out from climm. Type "./i18n-template <cc>.i18n", where <cc> is the language code of the language you're going to translate to. UPDATING A TRANSLATION WITH CVS Update your CVS checkout to the current version. Watch for conflicts in the file you're maintaining, as you're the one who needs to fix them. Type "./i18n-template <cc>.i18n" to update the translation file; any <cc>.i18n~ file needs to be removed first. See the section for updating without CVS about changed English strings. When finished updating, type "./i18n-format <cc>.i18n" to check for format string errors; any differences will be printed. You may want to remove all .*.fmt files if the output seems bogus. If there are still differences, you need to fix them. Remember: the order of format string interpolates cannot be changed! When you're done, check the file in (if you have CVS write access), send me a diff (cvs diff -u <cc>.i18n, DO NOT SEND ME ANY OTHER DIFF NOT GENERATED THIS WAY) or otherwise the complete file. PROGRAMMERS INFORMATION The scripts i18n-extract and i18n-number extract the current set of strings into C.i18n resp. number new strings without a number. They're usually called by typing "make lang" in the src/ subdirectory after new strings have been added. These script create backups. To add a new string to be translated, add i18n (###, "new string") in your new code. Please never use tabs ("\t") and color codes (COLNONE, COL<whatever>), and use trailing white space only if you *absolutely* need them. Newlines ("\n") are fine. Never add an untranslated string. It is okay for patches to contain unnumbered new strings. It is not okay to have numbers that do not have the same english string.