- MoinMoin Translation
Introduction for new translators
- The master wikis
- What needs translation?
- How to work on the master wikis?
- Working online and offline
- Getting notified when something changes
- Check what needs to be done
- Creating a new translation from scratch
- Creating new pages
- Tips & Tricks, Questions and Answers
- Specific language topics, contacts and coordination
Some translators obfuscated their email address in last-translator field in the po file. While I can understand the reasons for doing this, I just want to note that by doing this, you make it impossible to get automated notifications sent to you. See moin maint mailtranslators script - I usually run this once or twice when a new major release is at the horizon. If you are regularly watching moinmaster wikis, you maybe don't need "wakeup" mails, but in case you do not regularly watch, maybe better do not obfuscate your email address there. -- ThomasWaldmann 2008-09-20 08:48:14
If you are new here, please begin reading with the Introduction for new translators below. We try to keep the important and current stuff at the top of this page.
master19: was cloned from master18 at 2008-11-16 - we will do major docs changes for moin 1.9 (mostly WSGI / installation related) there.
- master18: you can still work on updates for next 1.8.x minor release there. for bigger work maybe rather use master19.
Fixes to do for 1.9
your SystemPagesIn<YourLanguage>Group defined the set of your translated system and help pages up to moin 1.8 - for moin 1.9, we don't use these group pages any more, but we moved those page names into the .po file (visible on the MoinI18n/xx page). So please, move the page names from your group page to your MoinI18n/xx page to the appropriate place (== the translation of the original english pagename). It is essential that you have the names of the pages you translated there, otherwise they won't be included in the page package for your language.
- if you are editing your MoinI18n/xx page, there is a new "Check Translation" action in the menu - use it to see how moin maps the english page names to your page names
- please update your MoinI18n/xx page on master19 wiki
- Kill (for now) everything you translated from:
HelpOnInstalling and its subpages (will get a complete rewrite)
DesktopEdition page (already gone)
- smaller changes on other pages:
HelpOnConfiguration - remove references to deleted sub pages
HelpForAdministrators (remove sentence referencing DesktopEdition)
remove links to (your translation of) SyntaxReference
link to (your translation of) HelpOnMoinWikiSyntax
remove your translation of SyntaxReference
remove links to (your translation of) MoinMoin/TextFormatting
link to (your translation of) HelpOnMoinWikiSyntax
remove your translation of MoinMoin/TextFormatting
Fixes to do for 1.8
Most work willnow go into moin 1.9.
All master17 content was cloned into master18 wiki at 2008-08-30.
Alternatively, you could also subscribe to the MoinI18n/de page to get notified if stuff changes there (usually this is one of the first languages that gets updated, as it is maintained by moin development).
The editor quickhelp translation needs fixing for quite some languages - just remove the <<Verbatim( and )>> from the quickhelp section about headlines.
Introduction for new translators
MoinMoin is translated into many languages (thanks to our translators!).
The master wikis
The texts that need to be translated are all kept on the MoinMaster wikis (these are separate wiki sites, that only keep the master copies of the translations - no homepages, no discussion, no other stuff there).
To make it easier to maintain and develop different releases at the same time, we have multiple master wikis (and we try to run the master wikis with the respective software version, if possible):
http://master18.moinmo.in/ - this is for moin 1.8 release
http://master19.moinmo.in/ - this is for moin 1.9 release
Hints for choosing the right master wiki:
- If you like to quickly improve the current stable release, do it in the respective wiki - your changes are likely contained in 1.x.y+1 release then.
If you like to have those changes also in future release, you will have to do your changes in the development master wiki also.
- If you do major changes, it is recommended to use the current development master wiki.
- Expect some fluctuations on the master wiki of the development version while we develop it.
What needs translation?
The MoinMoin software has some texts built-in into the software. Those texts are in English and we use xgettext to extract those texts into so-called *.po-Files. Those files are text files and contain the original english text (msgid) and the translator then adds his translation below (msgstr). For easy editing and updating those files, we import them into the master wikis as pages MoinI18n/xx where xx is the 2 char language code of the target language. E.g. the French (fr) PO file is at MoinI18n/fr.
We also have text to translate on so-called system pages (wiki pages that are used by the wiki system to realize some functionality). E.g. the page RecentChanges is a system page and needs to get translated into the target language - for german. These pages are also kept on the master wikis.
There is another kind of wiki pages needing translation: the help pages (this is MoinMoin's documentation), e.g. HelpContents.
How to work on the master wikis?
Before working on the master wikis, please read EditingOnMoinMaster.
Please keep and maintain all internationalization (short: i18n) content there:
*.po files' content is kept on the MoinI18n/xx pages
- help and system pages
This makes sure they get into the distribution automatically.
Working online and offline
The master wikis use utf-8 encoding and the preferred way for doing translations is doing them using the wiki (if you prefer using your own offline editor, then leave a remark on that wiki page before starting, download the content (raw action), edit it, remove the remark, and upload it again - and don't keep uncommitted work off the wiki for more than a few hours. If you have to stop working on it, commit your changes to the wiki page, so other's can work while you do other things).
From time to time, we include the content of the master wikis into the moin code repository we us for development.
Be aware of that you won't see realtime updates in the wiki you are working in with the i18n work you have done.
Getting notified when something changes
- subscribe to THIS page
subscribe to the MoinI18n/de page on the master wikis. Many moin core developers speak german (Language code "de") and update that page rather quickly if there is something to do.
put a correct email address into the metadata section of your MoinI18n/xx page - you will receive notifications when we are preparing a new release then.
Check what needs to be done
To see the status of system texts, look at MoinI18n/xx (xx is the language code of your language). We use a special parser for those pages that tells you how complete the translation of system texts is, how many fuzzy strings there are, how many untranslated strings, errors, etc.
To see status of system and help page translation, see the SystemPagesGroup and SystemPagesInXxxGroup pages on the master wikis.
You can check whether your SystemPagesInXXXXXGroup is complete by looking on TitleIndex from time to time - when not including system pages, it should be almost empty (at least you should not see any of your translated pages). Please add your translated "FrontPage" to your SystemPagesInXXXGroup - as we have underlay now, there is no reason to handle it separately any longer.
Creating a new translation from scratch
Until moin 1.8 translations make an equivalent page of SystemPagesInEnglishGroup for your language, listing all system pages of your translation (and also common pages you use untranslated, like SystemInfo). With the upcoming new release of moin 1.9, we don't use these group pages any more.
Add a link to that group page to SystemPagesGroup.
create a page MoinI18n/xx (xx being your language code) with the contents of MoinMoin/i18n/MoinMoin.pot (you could also use a copy of a different and already translated MoinI18n/xx page, especially if that helps you with translating, because that language is better understood than just English is).
start with the system texts (MoinI18n/xx)
continue with important system pages (like translation of RecentChanges etc.)
- finally do the help pages
Creating new pages
Mark each new page with its language, by adding a line like "#language:en" to the very top of the page (replace en with the appropriate ISO language tag). Also, add lines ##master-page:NameOfMaster and ##master-revision:number. This last is the revision of the original page for which this translation is up-to-date. Instead of revision, you can use ##master-date:timestamp, where timestamp is the the time of the master page last change. You see this time on the info action of the master page or on the "Check Translation" output.
Order is not important — but all #xxx lines have to be at top.
Example (Danish translation "HjemmesideSkabelon" of the master page "HomepageTemplate"):
##master-page:HomepageTemplate ##master-date:2001-11-30 21:30:20 ##master-revision:10 #language:da == Dit Navn == Email: firstname.lastname@example.org ... ---- KategoriHjemmeside
Those tags are used only by CheckTranslation action yet, but also can be used also by grep or by translators to see if a page is outdated.
Tips & Tricks, Questions and Answers
Note that <<GetText(text)>> was added to enable help pages to refer to features as the user sees them, e.g. "EditText".
- How should i18n of templates be done?
Q: Should translated HelpTemplate be named HjaelpTemplate (templates for all languages are listed together) or HjaelpSkabelon (requires setting page_template_ending)? Maybe add "Template" as SYSTEM_PAGE, so that page_template_ending changes automagically?
- A: When doing the system pages group stuff, I found setting the group regex to ([a-z]Gruppe$)([a-z]Group$) is best for German.
A: There is a bug for not requiring to set the regexes: MoinMoinBugs/ShouldTranslateCategoryAndTemplateRegexes.
Q: I'm going to upload the Galician translation, but what happens if the translated page has the same name in other language? How to upload to MoinMaster? (InterWiki, WebWikiWiki in French, NomeWiki in Italian)
- A: Currently there is no other way than finding a different page name for the translation or just using the English (or other language's) page "as is".
If you have to make URL examples (http or mailto), be sure to use ONLY the reserved domain names example.(com|net|org) (i.e. http://www.example.com or email@example.com ), or the .example TLD, as defined in RfC 2606 – do not translate them to beispiel.com or whatever.
- be careful with the fuzzy indicator in your local language PO file. A translated page will never be included in the official distribution if its title string in the PO file is marked fuzzy!
Specific language topics, contacts and coordination
All language specific stuff about translation, language maintainer contacts, discussion, etc. should be kept on a page in this wiki that ends with Translation, just like those you can find here.
Specific word translation for building the right regex
We have some page vars which could be written in templates without escaping them. That can only done with your help. I need the correct translation of the word "Template" in your language.
Who wrote this and how would that work exactly? Some vars, not all? If I understand it correctly, you want to allow translated templates in master wikis to escape the vars too? That would be nice, it would eliminate the need of the me:: ME hack (which requires replacing all @ME@ occurrences with @@me@@ every time you edit the template). This would become automatically fixed if Moin supported multiple template patterns at the same time, as mentioned here. -- RenatoSilva 2010-02-13 01:59:25
Please, see also ConfigMarket.