How to make a MediaWiki site multilingual

There are two different ways to make a multilingual wiki setup.

  1. You can have a family of wikis each of which supports a different language. This is how the Wikipedias work (en.wikipedia.org, ru.wikipedia.org, es.wikipedia.org, etc). This is probably what you are aiming for. Pay special attention to the section on configuring interwiki links to get the links on the left hand side of the page.

  2. You can create one wiki that supports multiple languages. This is how meta.wikimedia.org works. For that, you want to use the Translate extension.

[Update 01.02.2021] the MediaWiki Language Extension Bundle is the currently encouraged way to realize a multilingual setup, incorporating the Translate extension as well as some other essentials that you'll end up needing anyway.


An easier way for smaller wikis is through the use of a simple template. It may not be as efficient as an extension or creating a family of wikis, which is a lot of work, but quite fast to set up.

Create a page under Template:Otherlang with the following code:


{{otherlang
|ru=Template:Otherlang:ru
}}

This template adds available translations for the page to the top through the use of flags.

To prevent issues, this template must be placed '''at the very beginning of a page'''.

Tip! When contributing a new translation to a document that already has other translations, please carry over the existing translations to the otherlang template of your contributed page. This way all multilingual pages are linked.

== Syntax ==
{{otherlang
| noborder=true (OPTIONAL)
| title=localized page display title
| lang=page:lang
| lang2=page:lang2
| etc...
}}
Warning! Do not include the language of the current page. This will only confuse readers. === Example === On a page called [[Template:Otherlang]]:
{{otherlang
| title=Template:Otherlang
| ru=Category:Programming:ru
}}
Note that: * The language "en" is not included, as it is the language of the page that template is being used on. * title is assigned the translated name of the page, and will appear as the display title (heading) for the page. This can replace the existing {{wrongtitle}} and {{DISPLAYTITLE}} templates currently in common use. * The English page has no suffix. == Available Languages == {| class="table table-bordered" border="2" cellpadding="7" ! Language ! Syntax ! Result |- id="en" |English |en=Page_name |[[File:En.png]] |- id="ru" |Russian |ru=Page_name:ru |[[File:Ru.png]] |} {{#if: {{{title|}}} | {{DISPLAYTITLE:{{{title}}}}} }}{{#if: {{{en|}}} | '''[[File:En.png|alt=English|link={{{en}}}]]''' }} {{#if: {{{ru|}}} | [[File:Ru.png|alt=Русский|link={{{ru}}}]] }}

Then within each English article, paste use the following code to get a flag to show up, representing the respective language.

{{otherlang
| title=Tutorials/Galacticraft Getting Started Guide
| ru=Tutorials/Galacticraft_Getting_Started_Guide/ru
}}

An example of this can be found here. If you click on the Russian flag to the right you will find a Russian translation of the article.