For translators, Polyglot should be pretty much self-explanatory with only very few things that need explaining.
Before you can start translating, an admin has to grant you the necessary permissions. Please see the Haiku forum post Help translating applications with Polyglot.
After logging into Polyglot, the start page shows a list of all the hosted projects. After a project's name you may see a globe symbol, linking the it's website and a sheet icon linking to its bugtracker. Some developers also include the date of the next planned release, so translators can cram to get in their translations in time.
Projects that aren't 100% translated in your preferred language - see Edit profile in your user menu at the top right of the page - are highlighted yellow.
Click on a project to go to its translation page:
Most projects have only one Translation module (one "catkeys" file) per language, i.e. there's only one column with the language progress for the main application. If the software, however, includes for example a Tracker add-on or a library or consists of several applications, you'll see more columns that you'll have to get to 100%.
Polyglot can be used to translate other files besides catkeys. For this guide, we focus on catkeys, but the translation of "Line separated files" and "Java properties" works in a similar way.
By default, only languages that are being actively translated are listed. If yours isn't among them, it means that nobody has started a translation yet: Click Show all languages to see it.
If the progress of a translation is below 100% the menu Continue beside the progress bar is highlighted blue and a click brings you to a page with all still unfinished text blocks.
In the menu, the item All blocks opens that page with all text blocks, the ones already translated and the ones still needing work.
Pre-translate opens a page with all the text blocks that have been automatically translated according to the Glossaries (see below).
Export lets you download the catkeys of that particular language, just like Export languages: all | only completed at the bottom of the list of languages lets you download the catkeys of all languages or just the 100% completed ones (as a ZIP archive). The downloaded file can then be edited in a text editor or CatKeysEditor, if you prefer that.
You can only edit text blocks for the languages you have permissions for. All others you can only Export or View all the text blocks.
This is the translation page:
At the top, you can upload a previously exported and edited catkeys file of your language. Be aware: if the developer has updated the original English catkeys of his project, they take precedence. If it has changed - more or fewer text blocks - only the ones of yours that still match will be imported.
So everthing's safe, but you may want to prefer leaving the exporting/uploading to the developer and stick to the Polyglot web interface...
Next is a search bar if you need to find a specific string in either the original or the translation. To get back to the unfiltered list, you have to click the "X" button that appears at the left of the text box when you started your search.
Below the search bar, there's a table with all the GUI texts that need localization. Clicking in a row expands it to the editing mode (last row in this example):
Yet untouched rows are highlighted yellow, and the Needs work button of the editing mode is yellow, too. This means that the text isn't counted as being translated and the percentage status won't increase.
If you are not sure about your translation yet, keep the Needs work yellow until you are.
On the other hand: Some texts may be the same in the English original and your language; OK buttons are a good example. Don't forget to go into editing mode and click Save in that case!
Polyglot 'pre-translates' common strings that are defined in the Glossaries, linked at the top of the page.
Clicking on Add opens a page with one text box for the English original and a second for the translation. You can add several string pairs at the same time, just make sure that each line of English text has a corresponding line with the translated string.
This 'pre-translation' works only for full phrases, no partial matches. However, punctuation at the end ("...", "…", "." and ":") will be separated and applied to the translation, so you only need one glossary entry for "Add" and "Add:" - both will be pre-translated.
Choosing Pre-translate for a language of a project instead of Continue or All blocks should be the first thing you do when starting the translation of a project. That way you'll quickly get through the most common strings of many apps. The Pre-translate page:
Here you can quickly move through the list and correct any flawed proposed translations. If that happens a lot, you may want to edit the Glossary... The Context column shows where in the source these texts are found, and sometimes there's a Comment that provides additional information.
All entries with a ticked checkbox are committed to the project's database when you finally click the Save button at the bottom.
A few points on localization in general, and Haiku specifics in particular:
If you'd like to go the extra mile and download a project's catkeys to compile it with your translation for yourself, check out the blog post Localizing an application. You may find some useful background information and tips.
If you find a typo in the English original, let the developer know. You can quickly reach the issue tracker of the project by clicking the bug icon after the project name at the top of the page.
It's highly recommended to install and make yourself familiar with the application first. Best to have it open while translating and see where and when some text appears. Your translation will be more accurate and you can judge, if e.g. the length of the translated text may become a problem.
Use the "Terminology" and "Style" documents of your language which are maintained by the localization teams of Haiku. A good way to stay consistent over apps and the OS itself.
If it's not in the "Terminology", see how the standard buttons, menus etc. are named in Haiku's applications and preferences.
Variables: Don't translate variables like "%s" or "%something%"! Those variables are replaced at runtime. If you change those, the code won't find them anymore and you'll have your translated variable in there, %-characters included...
Some languages use more specific plural forms than English, for example special plural forms for 2 or 3 to 5 items. To account for that you may find constructions to translate like:
{0, plural, one{There is # new message} other{There are # new messages} }
You only translate the text in the deepest level of braces, i.e. There is # new message and There are # new messages.
The "#" is a variable that is replaced at runtime by a number. If your target language has additional plural forms, you can add additional rules besides one and other, see the spec and this language table.
For example:
{0, plural, zero{There are no new messages} one{There is # new message} few{There are # new messages} other{There are # new messages} }