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__.
The amended phrase will now appear as untranslated.

!! Master strings
To update an __old string__ in the database to a __new string__ 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.

! Creating a new language
Go to __Edit Languages__ where you can see all available languages. If your language or localisation does not exist, click __Create Language__, and fill in the required information. Then, proceed as above.

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

!! Language-specific 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' 'Créer User Information' 'criar Wiki Page'
;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="">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}
;There are possessive proper nouns: 'Daniel Misud's Mégaphone'

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

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. We should remove this string from the database.

!! Formal vs. Informal or even Dialect
So, you think you want to have a dialect, formal language version or even a redneck, rude or informal version for a given language. With our translation system this is possible. you can greate a base language using the 2 letter code such as __de__ and then you can 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.

!! Your preferred Language Nuances
See the dialect section ((TranslationTutorial#FormalvsInformalorevenDialect|above)).

!! 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:
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.
Page History
29 Oct 2008 (13:43 UTC)
less complex structure
Current • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
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
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source