{maketoc}

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 [http://www.bitweaver.org/forums/index.php?t=7820|this form thread] or drop by ((ConnectingToIrc|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 __[http://www.bitweaver.org/languages/edit_languages.php|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.


! 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 __[http://www.bitweaver.org/languages/edit_languages.php|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.


! Translation notes
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.



! Troubleshooting
!! 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, Nuances, Dialect
To have a dialect, a formal language version, or even a redneck, rude or informal version 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__, it looks 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:
{code}
You have 2 unread messages.
You have 3 unread messages.
You have 4 unread messages.
You have 5 unread messages.
{/code}
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.


!! Notes
---
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).

{code}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>{code}


!! 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 the origianl).
Page History
Date/CommentUserIPVersion
29 Oct 2008 (13:43 UTC)
less complex structure
laetzer141.20.150.4325
Current • Source
laetzer85.178.7.21623
View • Compare • Difference • Source
laetzer85.178.7.21622
View • Compare • Difference • Source
laetzer85.178.26.24221
View • Compare • Difference • Source
kinderlehrer118.90.21.12620
View • Compare • Difference • Source
xing62.47.239.13516
View • Compare • Difference • Source
kinderlehrer118.90.21.12615
View • Compare • Difference • Source
kinderlehrer118.90.21.12614
View • Compare • Difference • Source
kinderlehrer118.90.21.12613
View • Compare • Difference • Source
kinderlehrer118.90.99.22512
View • Compare • Difference • Source
kinderlehrer118.90.99.22511
View • Compare • Difference • Source
laetzer85.178.31.15510
View • Compare • Difference • Source
Kozuch85.207.244.1609
View • Compare • Difference • Source
xing194.152.164.457
View • Compare • Difference • Source
AC van Rijn146.50.201.1546
View • Compare • Difference • Source
AC van Rijn146.50.201.1545
View • Compare • Difference • Source
AC van Rijn146.50.201.1544
View • Compare • Difference • Source
xing194.152.164.453
View • Compare • Difference • Source
xing194.152.164.452
View • Compare • Difference • Source
Neanderthal194.152.164.451
View • Compare • Difference • Source