TranslationTutorial

A guide on how to translate bitweaver into your language

Created by: Neanderthal, Last modification: 29 Oct 2008 (13:43 UTC) by laetzer

Bitweaver has a unique translation interface. You can translate strings here on bitweaver.org, and then export them from here to import them to your own site. The added benefit of translating here on this site is that everything will be included in the next programme release for other users.

How to get started

To translate Bitweaver to another language than English, please contact us through this form thread or drop by IRC to get someone to give you the appropriate permissions.

Languages menu

As soon as you are member of the group Translators, you can access a language menu which gives you several new options:
  • Edit Languages: gives you access to all available languages and their descriptions
  • Import/Export: access the available languages, and import or export them
  • Master Strings: list of all English master strings - the references for the translated strings

Translation procedure


Translating

Go to Edit Languages and select the language you want to translate bitweaver into. The button Edit Translation will take you to an alphabetical listing of the English master strings. For each master string there is a text box. If you understand the context and know how to translate the text, go ahead and translate it.

Unfortunately, there is no easy way to work out the context of where the master string has originated from. On bitweaver.org, try going to your personal preferences page and set the site language to the language you want to translate to. This way, it's easier to spot untranslated strings as well strings that don't match the context.

Translating a specific string

When you spot a string that needs modifying or updating, you can go to the Edit Languages page and then search for the string using the search box.

Typos

Typos (or multiple strings with similar content in general) can't be avoided, due to the continuous development of Bitweaver. Certain strings will always have to be updated slightly, when a developer changes them in any template (e.g., /wiki/templates/edit.tpl).

On bitweaver.org, the feature record untranslated strings is enabled, which adds such strings to the database.

For instance, say, this string is adjusted in a template (e.g. buttonform.tpl):
  • Press this button to be happyy, has been updated to
  • Press this button to be happy.

Now to update the old string in the database to the new string, in order to reflect the change in the template: go to the Master Strings page (language menu) and search for the old string, edit it, insert the new string, and save. After clearing the language cache, all the translations will work correctly.

Importing and exporting

Once the translation has been completed, export the language file via Import/Export (language menu). Pick the language you translated to export and save the file to your server. Then, visit the Import/Export on your server, select the correct language in the import section and import that file.

Once you are at the import screen, you can choose between three modi. You can either overwrite all strings from your local install with the ones you are about to import, or never overwrite local strings if they were changed locally before, or solve these kinds of conflicts manually. Choose manually to be safe. This will give you an overview of all strings you just translated on bitweaver.org and contrast them with the old local strings you want to update.

Notes and Recommendations

Creating a new language

Go to Edit Languages where you can see all available languages. If your language does not exist, click Create Language, and fill in the required information. Then, proceed as above: go to Edit Languages and select the language you want to translate bitweaver into, and so on. This procedure of creating a new language also applies if you want to create a localalisation, a dialect, or a formal/informal version of an existing language.

Source code snippets

If you come across {curly brackets}, please copy them and their contents into your translation string. Try to work out where in the text this part should go. Please maintain any HTML formatting which is present. As an example, a master string like
  • A gallery named {displayname}'s Gallery will be created for you and images will be added to it, would be translated to
  • Die Galerie {displayname}s Galerie wird erstellt und Bilder hinzugefügt, if the language was German. Note how curly brackets (and HTML code, if in place) are preserved. The curly brackets enclose the displayname of a given user, in this example. This means you can simply treat the string in curly brackets as a regular name.

Master string is not English

If you come a accross a master string that is not in English, something like 'Viimeiset Foorumin Lähetykset' you can ignore this. This means that a particular string was translated twice. We have fixed the code that caused these problems, but there might still be such strings in the database. Let us know of such strings and we will remove them. If you edit the translations here on bitweaver.org, you can safely remove non-english master strings. Just don't delete master strings that appear to have typos (without checking if a translation exists anyway).

This is also true for cases where the master string might already look translated. e.g.: You are translating to German and you see the master string: 'Apfel'. You don't have to translate this again. It will eventually be removed from the database.

Formal, Informal, Dialects

To have a dialect, a formal language version, or even a redneck, rude or informal nuance for a given language: greate a base language using the two-letter code such as de. Then, add your own dialects such as de-at (Austria) or de-ch (Swiss German) or even something like de-formal (formal). It's important to have a base translation in de and then have modifications in the dialect.

Say you set your homepage language to de-at, your Bitweaver will look for the translation of a string in that set of translations. If it can not find the translation of the string there, it will look in de (the base translation of that language). If it still can't find the translation, it will return the original English string.

The Master string is the name of a package

Well... this is a bit tricky. I'd say that we shouldn't translate package names, but we put them in there that they could be translated if so desired. Suppose this is a personal preference thing.

Incomplete sentences

These are difficult to deal with since it's difficult to determine where the string came from. In terms of coding it's sometimes necessary to do this, otherwise we'd end up with strings like:

<?php
You have 2 unread messages
.
You have 3 unread messages.
You have 4 unread messages.
You have 5 unread messages.
?>

In a case like this, a coder might decide that it might be best to translate You have and unread messages. We have restructured most sentences to avoid this sort of broken sentence but sometimes it's unavoidable. I'm afraid there's no easy answer to deal with this question.

Wrong Master Strings

What to do if
The Master string is partly in English and partly in another language
see below and 'Vytvořit Wiki Page Body'
There are multiple identical Master strings
'This plugin creates a expandable box of text. All text should be entered between the '
There are many variants - do they all need to be translated
See "R" (there are mixed language master strings, foreign language master strings and permutations).


<?php
Recent Images autor
: <a title="Visit the userpage of: Anna" href="http://66.179.240.126/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://bonnie.bitweaver.org/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://com.bitweaver.org/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://content.schedulewire.com/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://testing.bitweaver.org/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://www2.bitweaver.com/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://www.bitweaver.org/schuflada">Anna</a>
Recent Images autor: <a title="Visit the userpage of: Anna" href="http://www.schedulewire.com/schuflada">Anna</a>
?>


Language-specific notes

In a language where there is a formal and an informal expression, consider avoiding the active mode. "If you enable this, feature X will do Y" can easily become "If enabled, feature X will do Y" (even in English).

Related Items

Documentation » Tutorials

Tutorials to help you work out how something in bitweaver is done

  •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •  Anonymous  •  Array  •  Array  •  Array

Online Help

These pages are linked from within bitweaver's administration

  •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •    •  Anonymous  •  Anonymous  •  Anonymous  •  Array  •  Array

Comments

Thanks for this great tutorial

by davidm, 07 Jun 2005 (11:50 UTC)
Had I come across such a tutorial first, I wouldn't have done the mistake of translating strings locally (oops), too bad...

Neanderthal, that's a great tuto here, much learned from it... Hats off !

Translation issues

by Kozuch, 12 Apr 2007 (07:42 UTC)
Ive got some issues translating 1.3.1:
  • cant find some strings in master strings at all (maybe they are hardcoded in the templates)
  • some translations do not display (e.g. master strings still display) - this really sucks

Please help. I have met pretty much same things during the R2 translation, but not so often I would say.