How to make a MediaWiki site multilingual

2019-01-22 22:57发布

I've installed a MediaWiki site. I think default MediaWiki supports only one language which is configured during installation.

Is there a way in MediaWiki to support two or more languages like wikipedia.org? Available languages for a page should be listed on left side like Wikipedia, and when a user clicks a language, the version of the page in the selected language can be seen.

What is the conventional way to support multilingualism?

2条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-01-22 23:15

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.

查看更多
劳资没心,怎么记你
3楼-- · 2019-01-22 23:24

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.

查看更多
登录 后发表回答