Wiki Translation
Wiki Translation can be a good way to help develop the project across the world. The wiki holds a lot of important help content and documentation. We'd like to make at least some of this available in other languages. Note that translation efforts in other areas of the project are equally important if not more so.
Community cohesion
Unlike Wikipedia, we are not aiming to capture vast amounts of knowledge in the wiki. Wikipedia decided that the best way to build their encyclopedia was to split the communities up by language, and run them as almost entirely separate projects. The situation here is entirely different. The wiki is not the project. Translating wiki pages should be an exercise in improving community cohesion, helping everyone to understand each other, and ultimately helping to build the maps!
With this in mind we haven't deployed exactly the same wiki technology to support translations. We want the small fledging groups of people who do not speak English to feel welcome, and to have all the information they need, but we also want the community as a whole to stay together and stay focused.
Wiki translation progress
Wiki translation is taking place on a somewhat ad-hoc basis, and you are encouraged to join in, but we also need to try and get more organised about this.
Translation efforts are still in very early stages in many languages. There are some wiki pages that are more important than others, so concentrate on these pages first.
How to translate
Single page
- Find the English version of a page in the main namespace.
- If there is no English version, create one, for example by starting a new page from a search:
- Type the name of the page you want (say English page name) in the Search box, and start the search.
- The search results will say that no such page exists, but it will also include a (red) link to the (non-existing) page. The message (and the tooltip when hovering this red link) will say (in the language defined in your preferences for this wiki):
- Create the page "English page name" on this wiki!
- 👆🏻 English page name (page does not exist)
- Create the page "English page name" on this wiki!
- Click on this red link and you will be starting to create the new page, in edit mode.
- When you are reading the English version of the page, switch to edit mode.
- In order to have the languages tool bar displayed at the top (as you see on this page for example), be sure that the template {{Languages}} is present near the beginning of the page, otherwise insert the following wiki text in edit mode:
{{Languages|English page name}}
- While you're in edit mode, copy the wiki text of the entire page to your clipboard. Save this English version with the Languages template added.
- In order to have the languages tool bar displayed at the top (as you see on this page for example), be sure that the template {{Languages}} is present near the beginning of the page, otherwise insert the following wiki text in edit mode:
- Click on the Other languages link in the language template and follow a red link to the language you want in order to begin creating the new wiki page. You will see that the new page will have the same title, but a language code prefix added.
- Paste in the English text from your clipboard and now start translating it into your language and save the new translated page.
- Finally, you may rename the new translated page with a translated title, but keep the language code prefix in the new name!
- Don't delete the redirecting page which is still needed for the interlanguage navigation bar to work properly.
- If you renamed a page that has subpages, you should also translate and rename the subpages the same way, using a consistent base page name for all subpages.
Technical notes:
- Before saving the new page, your language is shown as a missing language in the preview. However, after you have saved it, your language may still be shown in the missing language box with black colour and bold type. This strange thing is caused by a template cache. Purge cache to rescan the available languages. Your language will be shown as available. The languages navigation bar at top of translated pages includes now the Purge link to do that in one click.
Additional steps:
- You are strongly recommended to note the revision you are translating. To do that, go back to the source page, click on "permanent link", and copy the number after
&oldid=
to your clipboard. Then go to the bottom of the translated page and add{{Translated|revision=NUMBER}}
to its bottom, replacing "NUMBER" with the number you got. This way people who come after you can easily check the difference between the revision you are working on and a later revision of the source page. - Some templates transcluded in your translated page may need to be adapted: in some cases these are different templates rewritten in your language (also named with a language code prefix), but many templates now can autodetect the language they should display by internally using {{Langcode}} which returns the lowercase language code of the current page transcluding it, provided that this current page uses the correct language code prefix.
- Categories listed at end of your page should be converted to use the translated categories when they exist (see below for details about how to create them), instead of remaining in the English categories.
See also Wiki Help.
Category
- Use "Category:<languagecode>:<Adapted title>" convention.
- Use
{{Languages|Category:Original English title}}
at top of your localized version in order to display the interlanguage navigation bar. - You need to keep "Category:<languagecode>:<Original English title>" as a redirecting page (example: category in English, redirect in Japanese, actual category in Japanese) so that the interlanguage navigation bar works.
- In the redirecting category (still named in English), please also add
{{Category redirect|<languagecode>:<Adapted title>}}
so that any page that would still be categorized with the English title will be listed in that category visible as a subcategory of the translated category and not left in an orphaned category: it will ease the maintenance of those pages whose categorisation should be edited to use the adapted title. - Don't delete the redirecting category named in English, even if it is empty (and it should remain empty)! It is needed for links shown in the interlanguage navigation bar (which cannot guess the translated titles).
Interface
- To translate the menu to the left - comment on MediaWiki talk:Sidebar with info how it should be translated.
- All pages in the MediaWiki namespace are editable for administrators only. Please file a request on Wiki:Requests for administrator attention. A common use case is MediaWiki:Uploadtext.
Template
There are currently three systems to translate templates. You should usually follow the one that is currently in use. Otherwise, we end up with chaos like duplicated translations and hard to find bugs in templates.
- One template with Conditional statements (example)
-
- There is a conditional statement that determines the translation to be used. It usually looks like
{{LangSwitch|lang={{#if: {{{lang|}}} | {{lc:{{{lang|}}}}} | {{Langcode}} }} ...
. - Below the statement, there are lines starting with language codes like
| hu =
(for Hungarian). They are ordered alphabetically. - Start a new line with the correct language code and insert the translated text behind the equation sign.
- You can use this template identical on all translations
{{<template name>}}
. The language prefix or namespace will determine which language is shown. If that does not work as desired, use{{<template name>|lang=<desired language code>}}
. - Templates of that kind are usually listed in Category:Template with translation strings.
- There is a conditional statement that determines the translation to be used. It usually looks like
- One main template and separate templates for the translations (example)
-
- There is one template named Template:xyz or Template:Generic:xyz and other templates named Template:<language code>:xyz. The translations use the main template for formatting, the translated text is stored separately.
- The documentation of the main template usually contains a list of all parameters that can be translated.
- Create a new page for the translation as described in #Single page.
- Copy the list of all parameters and translate each parameter. You can leave out parameters if there is no translated page for a link. Then, they will use the content of the main template (usually English)
- Note that you need to write
{{Template:<language code>:<template name>}}
to use this template.
- Separate templates for each language (example)
-
- The translations are completely independent of each other. Every translation can have their own markup.
- Translation works exactly as with single pages.
- Note that you need to write
{{Template:<language code>:<template name>}}
to use this template.
Translated pages with a title in a non-English language
If you want that a page translated to a national language have the title translated also, it is necessary to maintain anyway a page with English title preceded by language code and colon. This page would be a simply redirect to the actual page with title in national language.
Let's suppose that the English page name is "English_page_name", and you already have got a translated page with the title "XX:English_page_name" (where XX is the target language code like Ar, Ca, DE, IT, Zh-hant, ...). Now you want the translated page to get a translated title "XX:Translated_page_name" too. Do the following steps:
- Go to the edit-view of the translated version (XX:English_page_name) and find the code-piece like {{Languages}}
- Change this code-piece to the following: {{Languages|English_page_name}}. That is necessary to keep the language bar working after we moved the page.
- Use the move function of the wiki to create a new translated title for the page: Click the small arrow next to the search bar, top right of the page, then move.
- On the upcoming page, use the form like this:
- To new title: type the translated title;
- Check the Move associated talk page box;
- Click the Move page button.
Now the content is moved to a page with the new translated page name "XX:Translated_page_name". And also, a redirect is automatically established, so all old links to XX:English_page_name will be redirected to the new translated page.
Sometimes there are already some pages redirecting to the old English named page (our new redirecting page). Then there would occur a double redirection, and that causes problems because the Wiki-System will stop the second redirection (see Special:DoubleRedirects). To prevent this from happening:
- Open again the XX:English_page_name - Oh yeah, you can't open it because you will be redirected. Just use the link in the upper left corner: (Redirected from XX:English_page_name)
- Now we opened the old page title which is now just a redirecting page
- Open the link What links here in the left menu.
- Check if there are any pages where is written (redirect page) in black color.
- Open this page, edit them and change the redirect directly to XX:Translated_page_name
This would fix the double redirect problem and you have done a clean fresh title translation.
Instructions for the Languages template
Template:Languages lists all languages available. It is based on parser functions from MediaWiki and the IETF language tags (as defined in the BCP 47 standard, based on ISO 639-1 with a few exclusions, and extensions partly borrowed from other standards). See below for a partial list.
This automatically generates a language menu consisting of links to the original page (in English) and all translated pages. The links are written in their respective native names: "Deutsch", "English", "français", etc. The list of languages is sorted alphabetically, grouped by scripts, with RTL scripts after LTR scripts.
The complete syntax is:
- {{Languages|NameSpace:English page name}}
The parameter Page name is not necessary if the title of current page is equal to English page title, because his default value is assumed to be exactly the title of current page (however it is recommended to keep it to ease the translation of English pages and then renaming them in the actual target language).
Note: Now the parameter "ns=" is not required to specify a leading namespace such as Template or Category, which can be merged into the first parameter (see see here). But don't use any language code prefix or namespace in that parameter, just specify the full page name of the English page.
Example for actually implemented namespaces and languages:
Page_name (should be in English) Ar:Page_name (Arabic) Cs:Page_name (Czech) DE:Page_name (German: capitalized namespace) ES:Page_name (Spanish: capitalized namespace) FR:Page_name (French: capitalized namespace) IT:Page_name (Italian: capitalized namespace) JA:Page_name (Japanese: capitalized namespace) NL:Page_name (Dutch: capitalized namespace) Pl:Page_name (Polish) Pt:Page_name (Portuguese) RU:Page_name (Russian: capitalized namespace) Uk:Page_name (Ukrainian, not United Kingdom!!!) Zh-hans:Page_name (Simplified Chinese) Zh-hant:Page_name (Traditional Chinese)
Brief instruction
- For correct work of the template all page names are in English.
Every translated page needs a page name with a language code as a prefix, followed by a colon and the English page name.- If the "plain" English page name content is written in English, the English page name does not have a prefix in the file name.
Example: Page_name (English content) - FR:Page_name - DE:Page_name - If the "plain" English page name should be a redirect to a page in some other language, the English translated page does need a prefix of "EN".
Example: Page_name (redirect to non-English page) - EN:Page_name - FR:Page-name - DE:Page_name
- If the "plain" English page name content is written in English, the English page name does not have a prefix in the file name.
- The following has to be included in each page: {{Languages|English page name}}.
If you click on "missing languages", and then you click on a red link, it automatically opens a new page with the right prefix and the right page name. Copy the original text to this page and translate it. In the first line you put {{Languages|English page name}}.
If you want to translate the title then make sure that the page name in English with the additional language prefix is redirected to a localized article name with its language code.
- First create the localized page (or category) with the same name as in English, using only a different language prefix (language prefixes for categories are after the namespace "Category:", e.g. "Category:FR:Maps")
- Then move that page to its new translated name (e.g. "Category:FR:Cartes"). Keep the generated redirect which is needed for interlanguage navigation!
- Make sure that the new page (or category) indicates the correct full English page name (including its namespace) in {{Languages|Full page name}} (e.g. {{Languages|Category:Maps}} without any language prefix)
- Check the sortkey for the translated title so that they sort correctly in categories for in your language: in most languages on this wiki, the default sort key includes the language code prefix which is part of the title and not part of a separate namespace: at least you should copy in the DEFAULTSORTKEY the page title without the language code prefix, and the sortkey may need to be transliterated (e.g. in Japanese for sorting using Kanas instead of the Kanjis present in the translated title). Specific categories also use shortened keys (exclusing terms shared by most or all pages in that category, or excluding leading articles not used in all titles of pages sorted in that category: this shortened sortkey should be adapted too (just like the DEFAULTSORTKEY used by the listed categories not using shortened keys).
If you moved a category at step 2 above
- Edit the generated redirect category to add {{Category redirect|Language code:New translated name}} just after the generated #REDIRECT [[:Category:...]] line: it will help tracking redirected categories still containing pages.
- Edit the pages or subcategories that are still listed in the redirected category, in order to specify the new translated category name.
Language prefixes and namespaces
Many languages are supported merely as a wiki page naming convention, while some of the more widely used ones are set up as proper namespaces within the wiki software, allowing features like tickboxes on the advanced search. Pages can be listed by prefix (for any language) using Special:PrefixIndex.
Note that only a few languages (for which there are ample contents on this wiki and enough maintainers) have a dedicated namespace on this wiki (for historic reasons, these namespaces are using capital letters). These namespaces allow to perform searches in the many pages created in those languages. Most languages won't have this dedicated namespace. This wiki should progressively be updated to use autotranslatable templates (in a way similar to Wikimedia Commons), instead of having to maintaining a lot of separate pages for each language, for contents that can be maintained in one place independently of the language displayed.
All other translated pages are stored in the main namespace, using a language-code prefix that should be written in lowercase (only the first letter of the prefix will be automatically uppercased, but this letter case is not significant). This wiki may still contain a few languages for which the language code was uppercased. But to ease the maintenance of links be consistent with the letter case of codes already used in the Languages template shown at the top of translated pages.
Note that most language codes used in prefixes are using lowercase letters. But for legacy reasons on this wiki, some languages have their own dedicated article namespaces that are named using capital letters (for translated articles in the following 7 namespaces: DE, ES, FR, IT, JA, NL, RU). The letter case is significant for prefixes that are not declared on this wiki with a dedicated namespace. But the lettercase of recognized namespace names is not significant, so you can safely use lowercase letters everywhere for all language codes (this will simplify maintenance tasks for links, notably by avoiding the creation of additional redirects on this wiki).
The letter case of language code prefixes however remains significant outside article namespaces and their associated talk pages (such as Template: or Category:), because the language code prefix after the namespace prefix is an actual part of the page title. For reasons of coherence and to help reduce the number of needed redirects and their maintenance, languages prefixes for pages in those namespaces should be lowercase everywhere except for the 7 languages listed above which should have their prefix capitalized (e.g. with "Category:Categories"; "Category:FR:Categories" soft-redirecting to "Category:FR:Catégories"; "Category:DE:Categories" soft-redirecting to "Category:DE:Kategorien"; "Category:Cs:Categories". But not "Category:Fr:Category", or "Category:CS:Categories"; the same applies to templates).
In a few cases, the original article was actually not written in English, but an English version (generally limited as a stub or partly translated) can use temporarily the capitalized prefix "EN:". However the interlanguage navigation bar does not work well in this case because it cannot properly detect that the unprefixed page name is not in English. To allow interlanguage navigation, the original page in other language than English should also use its own language code prefix, so that its translation to English could have its "EN:" prefix removed. The interlanguage navigation bar will link to the English page using the "EN:" prefix only where it exists, otherwise it will use the unprefixed page name (assuming that this unprefixed page name is in English).
Note also that categories cannot be simply hard-redirected (unlike articles, talk pages or templates). When a translated category with an English title (but a language code prefix) is renamed with a translated title (keeping its language code prefix), the category with the untranslated title becomes a hard redirect. If any page is categorized in a redirected category, the categories listed at bottom of these pages will be italicized: clicking on this category will redirect to the renamed category that will not list that page, listed only in the English-named category (this is an old limitation/bug of the MediaWiki software). To help diagnose those cases, an additional template should be added immediately after this renaming, so that the English-named category be listed within the translated category as long as the English-named category is populated.
For new language, please use language codes conforming to the BCP 47 standard — check the Registry of language subtags on the IANA.org site (according to the BCP 47 standard, currently in RFC 5646): generally this means using the ISO 639-1 two-letter code where it exists, otherwise the two-letter technical ISO 639-2 language code, otherwise the three-letter ISO 639-3 code; avoid using obsolete language codes that are marked in this registry as being replaced by another one, or deprecated and split into several more precise ones; for some languages, the language code may be followed by a ISO 15924 script code; it may also be followed by a ISO 3166-1 country/region code (or a numeric continental or subcontinental region code from the UN-M.49 statistics standard), but this usage is no longer recommended for coding a language variant, and this wiki will prefer to be really international and edited in a way acceptable in all regions where the same language is written. If for some language variants you need region/script subtags after a main language subtag, please write them in lowercase, even if BCP 47 preferably lists them with uppercase letters, but remember that letter case in BCP 47 language tags are not significant but only suggested. BCP 47 also allows registered subtags for encoding historic linguistic variants by date or usage with specific terminologies, but they should not be needed on this wiki written in the most common modern variant for general use.
Note also that a few language codes used for Wikipedia editions (and in interwiki links) do not apply to this scheme, for historical reasons, and have still not been converted or redirected to use the recommended BCP 47 codes (which is the universal standard for the web). Also some languages used on this wiki do not have an exact match with a linguistic edition of Wikipedia or this OSM wiki still makes distinctions which are no longer relevant in Wikipedia (such as script variants, because Wikipedia natively supports transliterators between those variants when this wiki still does not have this support). These exceptions are highlighted in the table below.
OSM Wiki language codes
The column "Status" indicates which languages are automatically tested for looking for translated pages that are transcluding Template:Languages at top of pages. This navigation template will automatically detect the existence of translated pages and will avoid showing red links. But such detection is limited to about 50 languages, for technical reasons in this wiki. All other languages are only listed as "Other languages" in this navigation box, in a list with many red links hidden by default. For this reason, only major languages (or regional languages for which this wiki has significant contents content to show) will be part of the tested language list which is not hidden by default.
To add an unlisted language to the language bar, follow the instructions at Module:Languages/config. Please also document your change in Template:Wiki language table. This data is also available as JSON. Many other languages may be referenced for the translations of toponyms and POIs in the OSM database (for example for name=*, using BCP47 language codes as suffixes), but most of these languages are not used for translations in this documentation wiki (they will probably never appear as "Listed" in the table).
Notes:
- The Min Nan language spoken in Taiwan ("zh-min-nan-TW" in the old RFC 3066, or better now "nan-TW" or just "nan", see BCP 47) is normally written in the Latin script (rather than the simplified Han script, for which it is almost impossible to differentiate from Chinese written with the Simplified Han orthography), and has its own distinctive language code "nan". Taiwanese Chinese (zh-TW) is completely unrelated to Min Nan; the use of zh-TW is deprecated, use Traditional Chinese ("zh-Hant") instead. Feel free to create pages translated in Min Nan, if you need, using the standard "nan" language code.
- See Chinese Wikipedia for information about Chinese languages on WP ! If the transcoder is implemented here on this wiki, we would no longer need to maintain separate pages with orthographic differences between "zh-Hans" (essentially the same for the P.R. of China mainland, and Singapore) and "zh-Hant" (essentially the same for Taiwan, Hong Kong SAR, and Macau SAR)
- Since Moldavian "ro-md"/"mo" is not needed and should be removed! See [1] ! The only remaining difference of Moldovan was when the Romanian language was written in the Cyrillic script by people living in Moldova before its independence from USSR. The Russian minority living in the secessionist Eastern part of Moldova, use the Russian language written in the Cyrillic script, not Moldovan/Romanian, but the other Moldovans do speak Romanian (with just minor vocabulary differences that have been developed when Moldova was occupied by USSR, differences that are now disappearing fast with the increased exchanges with Romanian medias and the return to the use of the Latin alphabet, and with which people of both countries can coexist with an excellent and evident mutual understanding.