To help with the localization of Haiku's graphical user interface, you first have to register an account at the [http://i18n.haiku-os.org/pootle Haiku Interface Translation] site, which relies on the widely used [http://docs.translatehouse.org/projects/pootle/en/stable-2.5.1/index.html Pootle]. Once you're all set up, you'll find all available languages on the front page.[[BR]] 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: [[Image(pootle-statistic.png)]] 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: [[Image(pootle-editor.png)]] 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.[[BR]] 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 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 language manager that there's work for him. The accepted strings are regularly updated with Haiku's master repository (currently once a week), and are included in the nightly builds. == Variables == '''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{# new message} other{# new messages}} }}} You only translate the strings following the #, i.e. ''new message'' and ''new messages''. If your target language has additional plural forms, you can add additional rules besides ''one'' and ''other', see [http://cldr.unicode.org/index/cldr-spec/plural-rules the spec] and this [http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html language table]. For example: {{{ {0, plural, zero{# new message} one{# new message} few{# new messages} other{# new messages}} }}}