To help with the localization of Haiku's graphical user interface, you first have to register an account at the Haiku Interface Translation site, which relies on the widely used Pootle.

Once you're all set up, you'll find all available languages on the front page.
Clicking on one, you follow down the directory tree from "Haiku (core)" into the various branching folders, like add-ons, apps, bin, kits, etc. and on from there.

For every folder, you get statistics showing you the state of the translation:

Statistics of untranslated strings

Here, we have 31 untranslated words, all in the "media" folder. Clicking "Continue translation (31 words left)" will take you to the translation editor where you find all those untranslated strings:

Editor showing untranslated string

In this example, you're asked to translate "Gain", which is part of the media-add-on multi_audio. At the bottom you have a list of "Similar translations" that can be a help sometimes. If you think one of those suggestions is correct, just click on it. Otherwise fill in the correct term into the text field.
If you're not completely sure, activate the checkbox "Needs work" and maybe describe your concerns by clicking "Add Comment" below the text field.

The "Context: MultiAudio" shows from what section in the source code the particular string comes from. Sometimes, you'll get an additional commentary to that string, explaining the context the string appears in.

Only language managers (LMs) have the permissions to actually use the "Submit" button to accept a localized string. Everyone else has to use the "Suggest" button, which tells the LMs that there's work for them.
If LMs become inactive for some reason, these suggestions begin to pile up. If you want to help out and become an LM yourself, get in contact on the general and language-specific mailing lists.

The accepted strings are regularly updated with Haiku's master repository (currently once a week), and are included in the nightly builds.


Don't translate variables like "%s" or "%something%"! Those variables are translated in-code. If you change those, the code won't find them anymore and you'll have your translated variable in there, %-characters included...

Plural forms

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 strings to translate like:

{0, plural, one{There is # new message} other{There are # new messages}}

You only translate the strings in the deepest level of braces, i.e. There is # new message and There are # new messages. The # is replaced 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}}

Ignore those 'critical errors'

Pootle complains about various formattings that are quite common in Haiku's code base, calling them 'Critical errors' when they are neither. Examples are "XML tags" (where pointy brackets are involved), "Python brace placeholders" (with curly brackets), "printf()" (for percent-symbols in e.g. variable names).

If you're sure that your translation is an adequate analogue to the original string, you can mute the 'error' for this string by clicking the no-entry sign:

A "critical error" of a string at pootle

Last modified 2 years ago Last modified on Jul 1, 2021, 6:01:43 AM

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.