wiki:Localization

Version 27 (modified by damato, 11 months ago) (diff)

--

Languages:

YAM in your own language

Right from the beginning, YAM had been translated to multiple languages. However, the responsible translator for each specific language changed over the years. As YAM is an open source project, we are continously searching for motivated people translating our project to all different kind of languages. While from the beginning of our project we exclusively used the Amiga catalog system and interesting translator had to directly edit the corresponding catalog translation files (.ct), since 2014, we are offering to submit your translations not only by directly editing the translation files in the PO-style file format in our source code repositories, but also using the very nice and intuitive web services of transifex.com.

The following table lists an excerpt of the translation status of the top languages in our repository. The percentage defines how complete the translations currently are compared to the main catalog file.

Top YAM Translation Completion Status:

If you feel that you have the time and knowledge to translate YAM in your language or complete a language translation which is currently not in line with the main catalog file feel free to join our project so that we can provide a translated YAM for more and more languages. So in case you are interested please read on and make yourself familiar with the following two ways of translating YAM.

HowTo translate using transifex.com

Translating YAM using the web services of transifex is probably the most convenient and easy way of translating YAM to a different language. All you have to do is, create yourself a transifex.com account (which of course is free) and then apply for a membership to the language group of YAM you want to translate YAM to. So the principle steps are:

  1. Create yourself a transifex.com account (please make sure to use the same username as you use on the yam.ch homepage). Go here...
  2. Join one of the language teams of YAM. Go here...
  3. (Optional): Join our developer mailing list to monitor any announcement regarding translations. Go here...

As soon as our project managers have acknowledged your membership to one of our supported languages you will be able to use the nice online editor of transifex and start your translations. Please note, that in case you want to start translating YAM to a different not-yet supported language you can apply also over transifex to start a translation to that particular languages. Our project managers will then take care to acknowledge that request so that you can start translating YAM to the new language.

HowTo translate directly in the source code repository

In the rare case you are not satisfied with the free services transifex provides you to manage your translations, there is of course still the possibility to submit your translations directly to our source code repository. Please note, however, that in contrast to the former possibility to provide your translation in the Amiga-style catalog translation file format (.ct) we are now accepting translations only in the PO-style gettext format. So before considering to manually submitting your translations please make yourself familiar with the PO-style format by simply having a look at the already existing PO-style translation files here.

After you had a look at the PO-style format and you are still convinced you want to submit your translation directly to our source code repository you need a bunch of tools to manage your translations properly.

  1. First, you need to get a subversion (svn) client for the operating system you might using. For AmigaOS see here.
  2. To sync your direct translation back to the transifex YAM project you'll need to have the transifex command-line program (tx) installed. See here.

Afterwards you will have to configure your transifex command-line client to use the same username/password as you have used to login to transifex.com. More information on that can be found here. The important step is that you will have to generate a .transifexrc file in your home directory with the credentials.

After you have both tools installed and working, you can go and do a checkout by running the following command:

cd "where you want to store the files"
svn co https://svn.yam.ch/trunk yam

This will checkout the sources from our "trunk" to your local directory "yam". Now you can go into the "locale" subdir and change the *.po file for your language in there (Don't change the directory layout and such).

However, you need to make sure you keep the following in mind:

  1. Before working on a translation make sure to synchronize your work with the transifex YAM translation team of that language.
  2. Always do a "svn update" in that "yam" directory (not in any subdir of it) right before your next change or checkin so that you make sure you get the very latest changes.
  3. Always do a "tx pull -l XX" where XX refers to the language code of the language you are translating. This will pull the latest .po file from the transifex server. So in case someone would have made a change it will end up in your working copy first.
  4. Always bump the date of your *.po file (in the header of it) before you checkin your changes back to the repository. That's very important!

After you have done your changes you might do a "svn status" in the "yam" directory and subversion should tell you which files you changed (not the 'M' sign). And after that you could even do a "svn diff" in the directory and subversion should show you a diff file with the particular local changes you have made.

If you then have verified that the supposed change looks fine and that you don't mess something up you can do a "svn commit" in the directory "yam" and subversion will prompt you for a log message. This should open C:Ed or any other configured editor and here you should add a descriptive comment like "- Updated XXXX translation". It will also show you which files have been changed and thus which changes will be checked in. After that you will be promted for your login and password and subversion will submit your changes to our repository. Voila.

As the last step you have to make sure the latest po file will be submitted back to the transifex YAM project or otherwise your changes might get overwritten next time someone on the transifex YAM pages perform some changes on the same language. To make that happen you will have to run "tx push -t -l XX" where XX is again the language shortcut you will find in the corresponding po file.

In the future you do not need to do a complete new subversion checkout again, all you need to do, to update yam and its transifex po file, is:

cd "your yam directory"
svn update
tx pull -l XX

And please note, before you are able to use "svn commit" you need to got our permission to submit your changes. So please inform us first in case you want to submit your .po file to us. And please note as well that it would really be easier for all of us if you would consider editing your translations directly on the transifex.com pages rather than submitting the po file manually.

HowTo translate the online documentation

Another big thing we are interested in is a wide range of translations of the online documentation. The good thing is, that you don't need a subversion client here. Your favorite browser and an account on the YAM site will do.

You need to know the ISO639-1 code of the language you wish to translate the documentation.
For example, if you wish to translate into Italian, the code is "it". For a complete List of the possible language codes see the following page: http://yam.ch/wiki/TracLanguages

A little bit of knowledge about WikiFormatting will help, but is not required.

Here are the steps to start a new translation:

  1. Login - This is needed to be allowed to create and edit wiki documents.
  2. Go to the main default (English) documentation page.
  3. Click on the Edit button and copy the content.
  4. Cancel the edition of that page.
  5. Now you have to create a new main page for your translation. Let's say the translation will be in Italian.
    In the URL text gadget of your browser, type:
    http://yam.ch/wiki/it%3ADocumentation
    • "it" is the ISO639-1 code for Italian
    • "%3A" is the URL replacement for ":".
  6. You will be prompted that the document does not exist. Click on Create.
  7. Paste the content you have previously copied, and start replacing the English strings by the Italian equivalent.
  8. Use the Preview Page button as much as needed, then save your work with the Submit changes button.

IMPORTANT for the main page (and the main page only):
This page is the root of all subsequent documents, linked by an absolute path.
To make those links point to the future translated pages and not the English ones, you need to edit each occurence of

wiki:Documentation... by
wiki:it:Documentation....

Links in the other documents won't need to be edited as they will be all relatives to wiki:it:Documentation/.

When the main documentation page is created, with the links in it properly edited, you can just follow those links to create or edit other documentation pages.

Editing the macro instructions

On top of most pages, you will find 2 macros :

TranslatedPages This creates a list of all available languages the current page is translated to.

Translated pages must be given the revision argument. For example, if the English page you wish to translate is at version 4, add or edit the macro instruction on the translation so that it looks like this :

[TranslatedPages(revision=4)]

Another useful argument is outdated.

  TranslatedPages(revision=4,outdated=Needs proof-reading)

means the page is flagged as to be updated (in yellow in the below table), and the text "Needs proof-reading" will appear on top of the page. More information on the TranslatedPages macro can be found on the [WikiMacros#TranslatedPages-macro] page.

TOC Creates a Table Of Content.

As with the main first page, where you see a pattern starting with "Documentation", you have to prepend the language code to it.
Example:

  [[TOC(titleindex, heading=ARexx API, notitle, depth=2, it:Documentation/ARexx API/*)]]
                                                         ^^^

Status of online documentation translations

To assist in properly translating the online documentation and wiki pages please see the following list of status messages for all currently translated pages:

  • Red: There is an error with this page (see error list below)
  • Yellow: Page needs update
  • Green: Everything up-to-date
  • Grey: Page is missing

Page de en es fi fr
Documentationdeenesfifr
Documentation/ARexxAPIde?enesfi?fr
Documentation/ARexxAPI/ADDRDELETEde?enesfi?fr
Documentation/ARexxAPI/ADDREDITde?enesfi?fr?
Documentation/ARexxAPI/ADDRFINDde?enesfi?fr?
Documentation/ARexxAPI/ADDRGOTOde?enesfi?fr?
Documentation/ARexxAPI/ADDRINFOde?enesfi?fr?
Documentation/ARexxAPI/ADDRLOADde?enesfi?fr?
Documentation/ARexxAPI/ADDRNEWde?enesfi?fr?
Documentation/ARexxAPI/ADDRRESOLVEde?enesfi?fr?
Documentation/ARexxAPI/ADDRSAVEde?enesfi?fr?
Documentation/ARexxAPI/APPBUSYde?enesfi?fr?
Documentation/ARexxAPI/APPNOBUSYde?enesfi?fr?
Documentation/ARexxAPI/FINDMAILde?enesfi?fr?
Documentation/ARexxAPI/FLUSHINDEXESde?enesfi?fr?
Documentation/ARexxAPI/FOLDERINFOde?enesfi?fr?
Documentation/ARexxAPI/GETCONFIGINFOde?enesfi?fr?
Documentation/ARexxAPI/GETFOLDERINFOde?enesfi?fr?
Documentation/ARexxAPI/GETMAILINFOde?enesfi?fr?
Documentation/ARexxAPI/GETSELECTEDde?enesfi?fr?
Documentation/ARexxAPI/GETURLde?enesfi?fr?
Documentation/ARexxAPI/HELPde?enesfi?fr?
Documentation/ARexxAPI/HIDEde?enesfi?fr?
Documentation/ARexxAPI/INFOde?enesfi?fr?
Documentation/ARexxAPI/ISONLINEde?enesfi?fr?
Documentation/ARexxAPI/LISTFREEZEde?enesfi?fr?
Documentation/ARexxAPI/LISTSELECTde?enesfi?fr?
Documentation/ARexxAPI/LISTUNFREEZEde?enesfi?fr?
Documentation/ARexxAPI/MAILARCHIVEde?enesfi?fr?
Documentation/ARexxAPI/MAILBOUNCEde?enesfi?fr?
Documentation/ARexxAPI/MAILCHANGESUBJECTde?enesfi?fr?
Documentation/ARexxAPI/MAILCHECKde?enesfi?fr?
Documentation/ARexxAPI/MAILCOPYde?enesfi?fr?
Documentation/ARexxAPI/MAILDELETEde?enesfi?fr?
Documentation/ARexxAPI/MAILEDITde?enesfi?fr?
Documentation/ARexxAPI/MAILEXPORTde?enesfi?fr?
Documentation/ARexxAPI/MAILFILTERde?enesfi?fr?
Documentation/ARexxAPI/MAILFORWARDde?enesfi?fr?
Documentation/ARexxAPI/MAILIMPORTde?enesfi?fr?
Documentation/ARexxAPI/MAILINFOde?enesfi?fr?
Documentation/ARexxAPI/MAILMOVEde?enesfi?fr?
Documentation/ARexxAPI/MAILREADde?enesfi?fr?
Documentation/ARexxAPI/MAILREPLYde?enesfi?fr?
Documentation/ARexxAPI/MAILSENDde?enesfi?fr?
Documentation/ARexxAPI/MAILSENDALLde?enesfi?fr?
Documentation/ARexxAPI/MAILSTATUSde?enesfi?fr?
Documentation/ARexxAPI/MAILUPDATEde?enesfi?fr?
Documentation/ARexxAPI/MAILWRITEde?enesfi?fr?
Documentation/ARexxAPI/NEWMAILFILEde?enesfi?fr?
Documentation/ARexxAPI/QUITde?enesfi?fr?
Documentation/ARexxAPI/READCLOSEde?enesfi?fr?
Documentation/ARexxAPI/READINFOde?enesfi?fr?
Documentation/ARexxAPI/READPRINTde?enesfi?fr?
Documentation/ARexxAPI/READSAVEde?enesfi?fr?
Documentation/ARexxAPI/REQUESTde?enesfi?fr?
Documentation/ARexxAPI/REQUESTFILEde?enesfi?fr?
Documentation/ARexxAPI/REQUESTFOLDERde?enesfi?fr?
Documentation/ARexxAPI/REQUESTSTRINGde?enesfi?fr?
Documentation/ARexxAPI/RESTARTde?enesfi?fr?
Documentation/ARexxAPI/SCREENTOBACKde?enesfi?fr?
Documentation/ARexxAPI/SCREENTOFRONTde?enesfi?fr?
Documentation/ARexxAPI/SETFLAGde?enesfi?fr?
Documentation/ARexxAPI/SETFOLDERde?enesfi?fr?
Documentation/ARexxAPI/SETMAILde?enesfi?fr?
Documentation/ARexxAPI/SETMAILFILEde?enesfi?fr?
Documentation/ARexxAPI/SHOWde?enesfi?fr?
Documentation/ARexxAPI/USERINFOde?enesfi?fr?
Documentation/ARexxAPI/WRITEATTACHde?enesfi?fr?
Documentation/ARexxAPI/WRITEBCCde?enesfi?fr?
Documentation/ARexxAPI/WRITECCde?enesfi?fr?
Documentation/ARexxAPI/WRITEEDITORde?enesfi?fr?
Documentation/ARexxAPI/WRITEFROMde?enesfi?fr?
Documentation/ARexxAPI/WRITEIDENTITYde?enesfi?fr?
Documentation/ARexxAPI/WRITELETTERde?enesfi?fr?
Documentation/ARexxAPI/WRITEMAILTOde?enesfi?fr?
Documentation/ARexxAPI/WRITEOPTIONSde?enesfi?fr?
Documentation/ARexxAPI/WRITEQUEUEde?enesfi?fr?
Documentation/ARexxAPI/WRITEREPLYTOde?enesfi?fr?
Documentation/ARexxAPI/WRITESENDde?enesfi?fr?
Documentation/ARexxAPI/WRITESUBJECTde?enesfi?fr?
Documentation/ARexxAPI/WRITETOde?enesfi?fr?
Documentation/Configurationde?enesfi?fr
Documentation/Creditsde?enesfi?fr
Documentation/Featuresde?enesfi?fr
Documentation/Installationde?enesfi?fr
Documentation/Menusde?enesfi?fr
Documentation/Pattern matchingde?enesfi?fr
Documentation/Quickstartde?enesfi?fr
Documentation/Referencede?enesfi?fr
Documentation/Requirementsde?enesfi?fr
Documentation/Tips & tricksde?enesfi?fr
Documentation/Tooltypesde?enesfi?fr
Documentation/User licensede?enesfi?fr
Documentation/What is e-mailde?enesfi?fr
Documentation/Windowsde?enesfi?fr
Documentation/Windows/Addressbookde?enesfi?fr?
Documentation/Windows/Foldersettingsde?enesfi?fr
Documentation/Windows/Mailtransfersde?enesfi?fr?
Documentation/Windows/Mainwindowde?enesfi?fr
Documentation/Windows/Readwindowde?enesfi?fr?
Documentation/Windows/Searchwindowde?enesfi?fr?
Documentation/Windows/Userswindowde?enesfi?fr
Documentation/Windows/Writewindowde?enesfi?fr?
FAQde?enesfi?fr?
FAQ/ARexx Scriptingde?enesfi?fr?
FAQ/Debuggingde?enesfi?fr?
FAQ/General Questionsde?enesfi?fr?
FAQ/Installing YAMde?enesfi?fr?
FAQ/Using YAMde?enesfi?fr?
Localizationde?enesfi?fr?


If you have questions or wish to discuss about translations, please post on the Locale Translations forum.