Translation Guidelines
From PsiWiki
[edit] What's it like translating Psi?
Psi has a vibrant and supportive translators' group. Would you like to help with the translation of your favourite Jabber program? We'll welcome you and help you out in any way we can. It's fun, and very rewarding, to be part of our group, and you're doing a very worth-while and important thing for your language community.
[edit] So, where do I start?
I'm so glad you asked. ;-)
- Please read all the guidelines on this page. Then check out the below resources. You may want to ask to make sure nobody else is already working your language.
- Read about the different kinds of Translation Files.
- You can drop in at our translators' forum, and catch up with the hot topics.
- Most importantly, please join our mailing list. This is where all the key announcements are posted, and where we discuss the technical issues of translating, and generally help each other out. It's a very quiet list, only coming to life when a new release is imminent, and we need to update our translations. Right now, Akito's developed a new translation-update tool, so we're trying that out, and talking about it. Come and join us!
[edit] Do I need special software?
Well, apart from your own ability and experience, which no software can replace, you'll find the task is simplified and facilitated extensively by an excellent translation tool called Qt Linguist. Since Psi is based on Qt™, we have Linguist to help us out. Where do you get it? Download it from the Qt download page. [Note: If you use Linux, search your package manager for Qt packages. Qt Linguist will likely have its own package.]
Alternatively you can use Virtaal - a powerful translation tool with support for many file formats, including Qt translation files. It has many advanced features to help translators, such as integration with Open-Tran.eu.
[edit] How are translation files named?
Psi uses the OS's environment to find the correct translations on initial install. In order for Psi to find the correct file, it must be named according to a known convention. Psi uses a naming scheme closely relating to IETF RFC 3066.
The actual naming scheme that we use (omitting file extensions) is "psi_${language}[_${COUNTRY}]", where ${language} is the language code in lowercase and [_${COUNTRY}] is an optional country code in uppercase prepended by an underscore.
The language codes are specified in either ISO 639-1 or ISO 639-2. ISO 639-1 specifies languages by two-letter codes, while ISO 639-2 specifies languages by three-letter codes. If available, the two-letter codes must be chosen over the three-letter codes.
The country codes are specified in ISO 3166-1. A country code only needs to be specified if the translation is only for one country's dialect of a language that is not the default dialect. For lack of a better reference at the moment, and assuming the glibc people did their homework, the default dialect (if it is ambiguous) can be determined by running "LC_IDENTIFICATION=${language} ; locale -k territory" under Linux, where ${language} is the language code in lowercase.
[edit] Examples
- English language for USA: (no translation files needed)
- English language for Canada: psi_en_CA.qm
- English language for Great Britain: psi_en_GB.qm
- French language for France: psi_fr.qm
- French language for Canada: psi_fr_CA.qm
- Portuguese language for Portugal: psi_pt.qm
- Portuguese language for Brasil: psi_pt_BR.qm
- Serbian language for Serbia and Montenegro: psi_sr.qm
- Ukrainian language for Ukraine: psi_uk.qm
[edit] Where do people get the translations?
Yes, they're on the download page, too. ;-) Translations are called Language Packs, and you can see that we have an impressive array of languages already. However, maintaining good translations is an ongoing task, so any time you can contribute to your language will be very much welcome and appreciated. Pass the word around in your language community: Psi speaks our language!
[edit] Where do I get a translation template of the latest release (Psi 0.12 at the moment)
You can download the [1] file and rename it according to the language scheme above. Then set in Linguist the language and country if necessary and you can start translating. :) If you want to create such a translation template on your own you can do it on the same way as for the development version (see next point)
[edit] Where do I get a translation template of the latest development version
Updating Translations with lupdate has short instructions to generate them from the sources.

