Translations The &opie;-Project tries to offer the support for as many languages as possible. In this chapter the process of translating &opie; and its documentation is explained. To ensure that &opie; can be used by as many people as possible the &opie;-project aims to be translated in as many languages as possible. Of course, as there are so many different languages, there is always a lot of work to do. Furthermore, &opie; evolves and thus most likely there are translations for applications which should be updated. In this tutorial you will learn how to help &opie; to be available in as many languages as possible and see how easy it is to give something very much respected to the open-source community.
Preferences In order to translate for &opie; you need an editor to edit the translation file and preferably access to cvs. The preferred editor is Linguist. That is an application which comes with &qt;. It has a intuitive GUI and is very easy to use. A tutorial can be found here. However, you can use every editor which works with UTF8, for example VIM or EMACS. The advantage of Linguist is that its GUI is optimized for &opie;s translation files and can help you by proposing a translation and warn you if there is an error within the translation. CVS is a tool which the developers and most translators use to get the source of &opie;. If you already have an anonymous account for the &opie;-cvs you should go to OPIEDIR/i18n and do cvs up If there is already a translation for the language you would like to translate you will see the language code in that directory. For example, for german this is de and for danish it is da If not, you should contact the coordinator Carsten Niehaus so that everything will be set up for your language.
Styleguide To ensure a high quality of the translations the translators have to keep certain things in mind. The applications do not speak to the user. This means that for example it should not be I didn't find the file! but File not found!. Try not to use exclamation marks. If the users see them to often the ! looses it function as an amplifier of a warning. Don't put a space in front of a punctuation mark. So write eg "this is a demonstration!" instead of "this is a demonstration !".
Examplecode In the next paragraph you see an example of what the XML looks like. <message> <source>New</source> <translation>Neu</translation> </message> <message> <source>Today</source> <translation>Heute</translation> </message> <message> <source>Day</source> <translation type="unfinished"></translation> </message> As you can see the markup is very simple. The part between two source-tags is the english text which appears if there is no translation yet. In the first case this is New. The next row is where the translated string would be. The first two messages are already translated, the third is not. This is marked by the type="unfinished" If you choose to use an editor like VIM instead of the prefered tool -Linguist- you have to remove that mark and add the translated string between the two translation-tags. It might happen that you see type="obsolete" in a .ts-file. You should not translate these strings as they do no longer appear in the application. The translation coordinator removes those strings from time to time. In Linguist those strings are grey and not translatable.
Filetypes As a translator one needs to know three different filetypes. ts .ts-files are the most important files for translators. In these files are all strings which need to be translated and the translations themselves. All .ts-files are located in OPIEDIR/i18n/xx while xx is a languagecode (eg. de or de). In theory .ts-files are the only ones a translator needs to know. pro Every application has a .pro-file from which the Makefiles are generated. As a translator you need to check if in every .pro-file is a line for the language you want to translate to. This line should look like: ../../../i18n/de/today.ts \ Usually the translation coordinator takes care of these entries so you should not need to edit them. qm These are binary files used by &opie; to display the translated strings. They are automatically generated by calling the command make lrelease. Of course, you need to have the binary of lrelease which comes with &qt;.
Do's and don'ts There are certain things that should only be done be the translation coordinator or one of the core developers. The translation files should never be updated by the translators. Only the translation coordinator updates the repository. This is to avoid merging conflicts. The binary .qm-files are created by either the translation coordinator or by the feed-manager. Of course, the translators can create them as described above for testing purposes but the official files will be provided. Whenever you find a typo or an incorrect message, contact the author of the application and/or use our bug tracking system (Mantis) to make sure this string will be fixed. If you find a string like "Form1" contact the translation coordinator. These strings should not be in the translation files. You don't need to translate them. If you check your translation and see an un-translated string even though your translation file is 100% translated use the bug tracking system and/or contact the author of that application directly so that this bug is fixed.