                            Translating GNU Solfege

   Copyright (c) 2002, 2003 Tom Cato Amundsen

     ----------------------------------------------------------------------

   Table of Contents

   Introduction

   .po-files

   online-docs/

                docbook xml tips

Introduction

   Translating GNU Solfege consists of two task.

     o The text displayed on buttons and menus, and other short messages are
       translated using the gettext tool and translating .po files, located
       in the po/ directory.

     o The users guide is made up of several docbook files, located in the
       online-docs/ directory.

.po-files

     o Edit po/Makefile and add your language to the LANGUAGES variable.

     o Copy po/solfege.pot to po/nn.po where nn is the two character ISO 639
       language code for your language. The language codes are listed in the
       gettext manual.

     o You must set the charset in the .po file, and the very first entry
       (where charset and Last-Translator etc. are set).

   For more info about translating GNU programs, you should have a look at
   the gettext documentation. Type info gettext.

   When you translate the .po file, you will notice some msgid strings that
   look a little strange, for example "interval|m9". This is because very
   short strings can be ambiguous. So some times in the source code I might
   write _("interval|m9") and some other place _("chord|m9"). Both strings
   will be displayed as "m9" when you run with english messages. But for some
   languages the strings might be translated differently. In norwegian
   "chord|m9" is translated to "m9" and "interval|m9" is translated to "l9".
   Notice that you should not include the word before "|" in the translated
   message.

   There are two strings in the .po files that require a little extra
   explanation. The string "notenameformat|%(notename)s" and
   "notenameformat|%(notename)s%(oct)s" describe for notenames are displayed
   to the user.

   %(unotename)s

           Untranslated notename

   %(notename)s

           Translated notename

   %(notename2)s

           Translated notename. Capitalize the first letter in notename if
           the note is (in solfege internal format) c, or lower.

   %(oct)s

           Zero or more comma (",") or apostrop ("'") chars that tell the
           octave.

   %(suboct)s

           If the tone is b, or lower, this will return a number (1 for "c,",
           2 for "c,,", 3 for "c,,," etc.) that will be displayed as small
           numbers below the line.

   %(supoct)s

           If the tone is c' or higher, this will return a number (1 for
           "c'", 2 for "c''", 3 for "c'''" etc.) that will be displayed as
           small numbers above the line.

online-docs/

   Sorry, this section is not finished yet. Please see how things are done
   for the norwegian or russian translation. If you have questions, you can
   ask on the mailinglist.

  docbook xml tips

   If you have to change the encoding of a file, you can do iconv -f
   YOUR_ENCODING -t utf8 thefile.xml

   Some ways to validate your file:

     o nsgmls -s -wxml /usr/lib/sgml/declaration/xml.dcl file.xml

     o xmllint --dtdvalid /usr/share/sgml/dtd/xml/4.1.2/docbookx.dtd --noout
       file.xml

   To check if your translated file has the same markup as the english
   original, you can use the sgmldiff command.
