Jump to content


From translatewiki.net
Getting started
Translation tutorial
How to start
See also
Localisation guidelines
Translating offline

This is a page of frequently asked questions (FAQs) based on general questions from the Support page and from the experiences of users. Please add new tips from your own experience.

Getting started

How do I get started as a translator?

See How to start.

How do I start a new project?

If you are interested in adding your project to translatewiki.net please read New project.

For developers, the process of adding new projects to translatewiki.net is documented at Setup of a new project.

How do I register?

On the main page you can create a temporary account by filling in a username, password and email address. To make it a permanent, translator account, please make some test translations in any supported language: note however, they'll be discarded after your account is approved.

If there is no language you can translate into, or you don't have time to translate right now, please instead click "Can't submit some translations right now? You can still join.".

Direct account creation on this wiki is currently restricted. If you don't want to share an email address, you can enter an invalid one, for instance no@email.thanks. If all else fails, please email an active staffer.

Which projects are translated on translatewiki.net?

Projects translated on translatewiki.net are free and open source software and interfaces. There is a list of the current projects supported here on the main page.

How is each language translation managed on translatewiki.net?

A control page is set up by the developers when work starts on any language: e.g. Portal:it, for Italian (it). This page contains links to general information about the language and to recent changes to the language interface translation on translatewiki.net. It also contains a list of the wikimedia projects in the language and records the users working on the language.

The list of 'maintainers' (users working on a particular language) can be found via Special:SupportedLanguages; on the language list click on the name of your language. If it is not on the list then go to the category of language and message pages on Category:Languages or go to the list on all pages Special:PrefixIndex/Portal:.

If there is more than one maintainer of a language then you can use the talk page of the Portal to discuss the translation amongst that language translation group, eg. Icelandic talk page.

How to add a new language

See also: #A language has been started on translatewiki.net but isn't listed at MediaWiki

Request the addition of a new language for translations at support. A member of translatewiki.net staff will add it, if it conforms to the policy. For advice on the minimum information required see Translating:Process and Translatewiki.net languages.

Want to work on more than one language?

Once you have acquired translator privileges to work on one language you can also work on other languages. You don't have to request translator privileges each time you want to work on another language. Please add some information about your knowledge of the extra language to your user page.

The translation tool and multiple languages

Links to the translation tool such as the link in the sidebar usually give the list of messages to translate in your default language, as set in your preferences – like this – Special:Translate. But it is possible to create links to the language tool (Special:Translate) in a particular language. The translation tool links in the language portals are linked to the messages in the language of that portal. The translation tool has a 'Language' box at the top of the page which tells you which language you are in now and where you can choose a different language to work in.

Where can I find information on the languages used at translatewiki.net?

There is an overview of Translatewiki.net languages, including notes on language policy and how to request the addition of a new language for localisation.

Language codes mul, und, zxx

There are language codes that do not refer to actual languages. They identify some specific special cases:

  • mul (multiple) – content composed of various, or multiple, or mixed languages,
  • und (undetermined) – the language is undefined or unknown,
  • zxx – there is no linguistic content, such as in an empty page, or a text-less photograph, or an orchestral piece of music. There are no translations to or from any of those.

A final ISO language code for non-linguistic content is mis (miscellaneous) which is for languages which have not yet been included in the ISO standard.

None of these languages are available for translation in translatewiki.net

Special private language codes qqq, qqx

IETF language tags are used to reference languages used in translations and in other translated pages of this wiki. These tags are made of one or several subtags (each one encoded with 1 to 8 Basic Latin letters or digits, and separated by a single hyphen). These subtags have been imported in the IANA registry for BCP 47 language tags from several standard sources, including several parts of ISO 639 (for main languages), ISO 15924 (for script variants), and other subtags added specifically for language variants. Some composite BCP47 tags are legacy and have been deprecated (they should not longer be used for any new translation project).

However, standard tags include some ranges intended for "private use". Some of them are specific to the application that need them locally (including Mediawiki itself). This includes several ranges from ISO 639-1 and ISO 639-2 language codes, ISO 3166-1 and UN M.49 region codes, ISO 15924 script codes, some of them (not all) being also imported in the IANA registry (only 2-letter and 3-letter codes for language codes, plus a few 3-digit codes for international regions, and a 4-letter codes for script codes).

We are using special language codes for technical reasons. They are taken from the ones reserved by ISO 639 for private use:

  • qqq – the (English) documentation of each message is kept under this code, as if it was a translation.
  • qqx – this is a debugging feature in MediaWiki. You can enable it via the URL parameter uselang=qqx to ask MediaWiki to show message key names instead of translations. This can help finding the correct translation to change.
  • xa – a left-to-right pseudo-locale used for Android development, in order to test application layouts in left-to-right languages, with many accents and diacritics added to test the rendering. Usually the texts remain in English, but the orthography is voluntarily added with garbage, and additional possibly some non-sense words of character sequences for special cases (such as longer words). Developers or testers need to activate the Debugging options on the Android device to activate this pseudo-locale and allow its selection in language settings. This pseudo-locale is not used on Translatewiki.net as these are not valid translations needing any help from actual translators (Android application developers may create such pseudo-locale in their own repository for their own testing purpose).
  • xb – a right-to-left pseudo-locale used for Android development, in order to test application layouts in right-to-left languages, to test the rendering and layout. Usually the texts remain in English, but the orthography is voluntarily added with garbage, and additional possibly some non-sense words of character sequences for special cases (such as longer words). Android alters the normal left-to-right rendering order of letters (and other Unicode characters with strong left-to-right directionality) to emulate the behavior of left-to-right languages (it also implements the mirroring of characters like paired punctuation signs whose weak directionality depends on the context). This pseudo-locale remains readable by developers or testers that can't read native languages like Arabic or Hebrew. It may be actually written in any other languages normally using a left-to-right alphabet. Developers or testers need to activate the Debugging options on the Android device to activate this pseudo-locale and allow its selection in language settings. This pseudo-locale is not used on Translatewiki.net as these are not valid translations needing any help from actual translators (Android application developers may create such pseudo-locale in their own repository for testing purpose).

Additionally, Wikimedia still uses specific "language codes" for its wikis that are not conforming to the BCP 47 standard (but they are still used and needed for domain names of wikis and in "interwiki codes", although obsolete for use for example in HTML with lang="" attributes or in XML with xml:lang="" pseudo-attributes, or in language selectors for CSS). A few of them need to be fixed as they are conflicting with codes assigned to unrelated languages and are blockign the creation of supported localisations for them (notably nrm) or were created as non-standard composite tags for language variants (not registered in the IANA registry, such as roa-tara) or for main languages after a mani tag for a language family in ISO 639-5 (such as the deprecated Wikimedia interwiki code fiu-vro). In language portals on this wiki, these codes are annoted with a warning: applications that are not related to MediaWiki may still use the translations, but may want to import them using standard BCP 47 codes (most often a ISO 639-3 code, or sometimes using a standard base language code and a conforming private extension, after an "-x-" special subtag). The current Wikimedia policies now forbid any addition of codes that are not strictly conforming for BCP 47, and all preexisting deviations (there remains very few) are in progress to be migrated (after long discussions about how to make the transition). Such errors of the past (using "reserved codes" just beacuse they were "still not used" for something else, when ISO 639-3, ISO 15924 were still not released and when BCP 47 still not updated accordingly with more precise rules in newer RFC's) should not be repeated: it takes too much efforts to fix everything, because uses of languages codes are spread in many places, and are difficult to detect and migrate correctly.

If any application wants to get standard behavior for encoding specific language variants (or for languages still not encoded at all), that are also not considered for encoding in ISO 639-3 as base language codes (due to lack of serious studies about how to classify them and how they differ from other languages), they should ask to the IANA for the registration of a subtag, according to BCP 47 rules, they should not invent their own codes (even if these codes are still not assigned, they are reserved for possible later use by unrelated languages). In the interim, they should ask to the Wikimedia Language Committee or to the support of this wiki to open a discussion for the allocation of a possible private use tag, that will not conflict with existing or future uses of unrelated special codes needed in existing Mediawiki-based wikis, or in internationalization libraries used by projects supported by this wiki. Such private use may be experimental (for demonstration purposes) and temporary (but over a long period that will likely take many years), waiting for a stable allocation that may happen later in ISO standards or in the IANA database for BCP 47, but it will allow existing tools to work with them correctly and without conflicts or unnecessary complications; this will allow to complete their migration to the standard slowly and progressively over many years (notably if there are lot of data and scripts to migrate), without any emergency and without completely breaking many existing applications.

What is a fallback language?

Messages are never blank in the finished translated software. If no translation has been completed for a message in a particular language then the project software displays the message which exists in the fallback language. The default fallback language is English, the language of the original messages. However, it is possible to set a different fallback language when a new language is added to translatewiki.net. This is useful when there is another language which is a more familiar second language than English to speakers of the target language. This is particularly useful where the alternative fallback and target languages share the same non-Roman script or direction.

Where an alternative fallback language is set, a message which has not yet been translated will appear in the fallback language, in both translatewiki.net and the relevant project. If it has not yet been translated to the fallback language, then it will appear in English. If the translation of MediaWiki core messages has not yet reached the threshold for being committed to MediaWiki.org then the alternative fallback does not work. To find out what the currently configured fallback language for a language is, look at languages/messages/Messageslanguagecode.php and check the setting of $fallback. If that variable does not appear, no fallback language is configured. Alternatively, here is a list of all the fallback languages.

Messages not existing in English are extremely rare. Usually, they point to undetected programming errors, most often typing errors in a message name. They appear as ⧼message_name⧽ or as <message_name> when displayed.

If you would like to change the fallback language definitions, please make a request at Phabricator.

Synchronisation with the projects

The messages on translatewiki.net are just a representation of what is in the code of each software project, which may also differ from what that project actually releases.

For best results, we believe that message updates should happen in a matter of days rather than weeks or months, but details differ depending on the project; see Translating:Localisation for developers#Export for some technical information.

How can I be notified about new messages to translate?

You can use external tools such as WatchTranslations.

The messages

How do I find information on the system messages?

translatewiki.net is slowly putting together pages of information on the system messages which should be useful to the translator – information on context, etc.

To read information on a particular message click on the 'edit' tab on the message. This edit page contains a box headed 'Information about message ...'. Information pages carry the extension /qqq for example MediaWiki:Lockbtn/qqq. Documentation is continually added to the /qqq pages. You can follow additions and changes to the documentation by viewing recent changes to /qqq pages. Doing this helps to check that the assumptions we make when translating were correct.

The manual on the MediaWiki site also has some information on the messages. Go to mw:Category:Interface messages to browse this information.

How do I find information on the MediaWiki extensions?

Each mediawiki extension should have a description page in the 'Extension' namespace on the MediaWiki site, for example Extension:FlaggedRevs. This is a list of pages in the 'Extension' namespace on MediaWiki. Unfortunately, the descriptions are sometimes very technical, written for software engineers, not for translators!. Sometimes the information (qqq) page for a message will include a link to the relevant description page on MediaWiki, but not always.

Sometimes an information page is created for an extension here on translatewiki.net, in the 'Translating' namespace, for example Flagged Revs extension. This is a list of pages in the 'Translating' namespace.

Finding messages

How can I spot messages having a given content?

There are two basic approaches.

  1. Special:SearchTranslations should make it possible to search. You can also translate the result messages without leaving the page.
  2. In Special:Translate, select "show all messages", the component, the language, and a sufficiently large number so as to have all messages shown in one page. Then use the search feature of your browser to spot the desired text.
    If you copy-paste searched text from real messages of another wiki, take into consideration that, the message may already have been altered on translatewiki.net. Be cautious to not include any variable parts inserted via $1, $2, etc., which may be pieces of text at times, coming from extra messages. Likewise, you cannot cross the beginning or ending of {{PLURAL}}, or other such constructs. In doubt, just use shorter search string.

Can I sort the messages in the translation tool alphabetically?

No. The messages on the translation tool cannot be sorted alphabetically because this would use too much of the system resources.

The order in which messages are presented is the same in which they appear in the original .php file, at least for single file message groups. Usually, the messages near the bottom of the list are the newest messages.

How to spot message keys?

I found a translated message having an error while browsing a wiki. How do I find its message key?

Go to the page and memorise, where the message appears on the page. Go to the address input field of your browser, and add ?uselang=qqx at the end of the URL, or &uselang=qqx, if the URL already contains a question mark followed by URL parameters. Then make your browser load the page from the altered URL. You will find most message texts replaced by message keys in round brackets. Pick the key that appears in the place of your message.

For example, if you add &uselang=qqx to the address of this page you will see that the text of the "Log out" link at the top right hand corner has changed to the message key "userlogout".

How do I find a message in the translation editor using its message key?

Type MediaWiki:Message key/xxx in the search box at the top of most pages on translatewiki.net and click on the magnifying glass search icon. This will take you to the message sub-page for language xxx which you can edit (in the old original translation editor) by clicking edit.

For example, try typing MediaWiki:Userlogout/fr in the search box. It should take you to the page MediaWiki:Userlogout/fr.

I can't find a particular message on the translation tool. Why?

Messages which are left blank in the default system messages

There are some messages which are left blank on the default system messages. They are not included in the list of messages to translate on translatewiki.net. These messages are specific to each site; they will be different according to the type of site, the site policies, etc. An obvious example is the site notice. If the message MediaWiki:Sitenotice is changed from '-' to ‘Welcome to Wackywiki’ on a particular wiki then ‘Welcome to Wackywiki’ appears at the top of every page of that wiki. If you look at MediaWiki:Sitenotice in the Special:AllMessages list at the MediaWiki wiki you will see that the default message is a single minus sign '-' (which gives a blank message) but there may be text in the customised message shown below the default; this is the text that appears at the top of every page at that wiki.

So if you come across any messages on your home wiki which have a default of '-' then you won’t find them on the translatewiki.net translation tool. On your home wiki they can be left blank or used, according to the needs of your wiki. Here is a list of these blank messages together with some examples of how they are used on some wikis. (If you know of good examples of these messages in action, please add them.)


  1. title
    • examples of use on other wikis

List of messages blank by default:

  1. Anonnotice
  2. Autocomment prefix
  3. Edittools
  4. History_copyright
  5. Licenses
    • English Wikipedia
      This gives the choices for the input box labelled ‘licence’ on the file upload form. If this is blank then the input box does not appear at all on the upload form. There is a lot of work to creating the licences too, which in turn depends on the licensing policy on the wiki. (If anyone knows where there is a help page or tutorial on how to set up a complex upload form then please add a link here.)
  6. Resetpass_text
  7. Revision-info-current
    • English Wikipedia
      This message appears at the top of the page when you use the 'permanent link' button in the toolbox. It tells you that the page URL is now shown in the Location Bar of the browser.
  8. Shareddescriptionfollows
  9. Sitenotice
  10. Sp-contributions-footer
  11. Sp-contributions-footer-anon
    • English Wikipedia
      This is a navigation box which appears at the bottom of the special page 'User contributions' for an anonymous user.
  12. Talkpagetext
    • English Wikipedia
      This is a message that appears at the top of every talk page on the wiki
  13. Uploadfooter
  14. Statistics-footer
Other messages customised by Wikimedia

There are some messages which are not included in the translation tool because they are customised by Wikimedia for all the Wikimedia projects. They are blank in the source code available to download from MediaWiki by anyone else (that is, outside of the Wikimedia Foundation). These messages can be translated on each wiki. Here is a list of these messages, together with the message as customised by Wikimedia for all its projects (please add to the list):

  • title
    • as customised on Wikimedia
  1. Shared-repo-name-shared
    • Wikimedia Commons
Search string doesn't match

I just wasted some time trying to locate Vector-simplesearch-containing ("containing..."). The text appearing in the search box on hu.wikipedia is tartalmazza… so I figured searching for "tartalmazza" in the MediaWiki namespace would yield the message but apparently it doesn't because the indexer thinks the ellipsis character (U+2026) is part of the word (searching for tartalmazza… works).

Also, if the message contains wiki syntax, then a search of the output (the message that appears on the interface) will not work.

String not from MediaWiki

Occasionally you will find a string that does not have a message key and is therefore not translateable (see above to display message keys). Some of these are translatable elsewhere on the software. Others are taken directly from the browser and will appear in the browser language only. For example, the strings "Browse..." and "File not selected" on the Upload page.

How do I view translations of a message into other languages?

If you are a translator you can choose to display messages on the edit screen in other languages, as well as English and your own language. These assistant languages are set in the 'Edit' tab of 'My preferences'.

Anybody can see all the translations of a message by clicking on 'In other languages' in the navigation bar when viewing a message in any language. This takes you to the special page All translations.

Improving the English source message

If you spot a spelling or grammar error in the original English message, or you would like to suggest a better way of expressing the message, then please do not change the English message. Instead, use the "Ask for more information" link at the bottom of the "Documentation"/"In other languages" sidebar next to the translation editor (you might have to scroll the sidebar to see the link). This link will take you to the current project's appropriate method for reporting a problem. You should explain why you think there is a problem with the current message and propose your alternative. The proposed change will then be discussed in the usual way and, if agreed, then one of the developers at the project concerned will change the message in the source code (kept, for instance, on GitLab, or wherever…) on that project. A bot run by translatewiki.net will then detect the change in the source code and import the new message to translatewiki.net. The amended message is usually brought to the attention of translators by placing the !!FUZZY!! mark in existing translations (it is all automatic; the FUZZY mark is also added by the bot detecting the change).

Why one can't edit English-language messages on here?

Because changing a message in English may impact all translations. Software developers own the source strings. If you want to propose that a message is changed, please use the button "Ask for more information" in the translation editor and write your proposal or concern.

Old or obsolete messages

If you are using the messages from another wiki, eg Wikipedia, to update messages on translatewiki.net then you will notice that some messages have been deleted on the other wiki. They have a warning message 'Warning: You are recreating a page that was previously deleted'. If you come across any of those then you can skip over them in translatewiki.net too. These messages are old messages that are no longer used. If the message has –old in the title then that also usually means that the message is old.

Obsolete messages are not included in the translation tool or in the localisation statistics. However, you may still come across them by accident. When searching for any keyword using the search box at the top left, obsolete messages containing the keyword in question will show up in the search results the same way current ones do, with no way to distinguish between them from the results list. Also, obsolete messages are accessible if they have been listed in a template of identical messages.

On the translation page itself, the English original message will be missing for an obsolete message, and in the classic/non-Javascript editor, the link "In other languages" at the left will also be missing. There is no need to translate or edit obsolete translations.

Why is this obsolete message kept?

Should this message and its translations be removed? It is not used any more.

We do not remove pages that became unused, or are no longer part of any groups. They are not in the way, and may serve a purpose one day. If they are in the way some day, we can always remove them. Pre-emptive optimisation is a waste of time, and we lose information both about history and specific translations. Finding these messages through searches may serve translators finding translation hints in them.


When the developers change the English source message, the current translations of the message are marked with a "!!FUZZY!!" prefix which means that they will appear in the 'Review changes to' section of 'Special:Translate'. See localisation guidelines for an explanation.

  • When changes are committed to the master copy kept on MediaWiki.org, any messages which contain "!!FUZZY!!" are exported without the "!!FUZZY!!" prefix. So you will not find "!!FUZZY!!" appearing on any wiki other than translatewiki.net. When you have checked the current translation against the new English version, and made any changes to the translation (or none) then just delete the "!!FUZZY!!" mark, and the message will be committed in the usual way.
  • The group statistics counter knows that a message has been marked "!!FUZZY!!" on translatewiki.net. So, if the table shows that 100% of the messages in a language have been translated, then there are no "!!FUZZY!!" marks left.
  • When a message is marked "!!FUZZY!!", the edit summary usually contains a hint on the change that has been made to the original message. To read the edit summary click on the "Page history" tab of the message.
  • You can insert "!!FUZZY!!" yourself (at start of messages), for example in partially translated long messages, or so as to mark messages needing further testing and checking by yourself or other translators.
  • When a message is saved, and some kind of formal inconsistency is detected, the message is automatically marked "!!FUZZY!!". Translators are thus made aware of things such as unbalanced pairs of parentheses, unused but required variables, unsupported excess variables used, some lost or altered link targets, and similar problems. Click on the 'Edit' tab and then the 'Preview' button so as to see a list of the detected glitches.

Do I have to do anything special when deleting messages?

No. Translatewiki.net will notice when source message keys have been deleted, and on the next export from translatewiki.net, deleted keys will also be removed from translations over time (when any other change triggers an update to the translations of a language).

Is it possible to rename message keys?

As a general rule: localization efforts should not block development. When there is a good reason to rename a key, do so. Just don't do so frivolously, as this unnecessarily hampers localization efforts.

When renaming a key, it is sufficient to rename just the source language (usually English) keys. The keys for the translations will be renamed during the import process on Translatewiki.net.

For bilingual formats like GNU Portable Object, messages do not have "keys", per se, the message itself appears in the source code.

Renamed messages are reviewed during the import process. When renaming it is strongly advised to inform the translatewiki.net staff so that they can review the renamed messages, and use Special:ReplaceText to rename the keys to preserve full edit history. This can be done using either of the following techniques,

  1. Projects using Github.com or GitLab.com can tag @translatewiki on the pull request that introduces the message key renames.
  2. Projects using other repository management software (such as Gerrit) can send an email to translatewiki@translatewiki.net.

Manual emails sent should contain a link to the PR(s), or equivalent, where the renames have been performed. This should help the admins to quickly map them on translatewiki.net.

Optional messages: messages that rarely need to be translated

Messages which would have a translation identical to the source text in a majority of languages, but not all, should be marked optional. This includes, for example, messages with only proper names, which may or may not be transliterated to the target script, as well as messages that only have punctuation, numbers, markup, URLs, etc. Some proper names may also have local names—think of major cities around the world.

Optional messages are not shown by default, and they do not count as untranslated messages when calculating translation percentages. If an optional message is translated, it does count as translated or outdated, though.

Translate an optional message only if it will be different in your language. Translations of optional messages that are identical to the source message may be deleted.

You can ask the staff to mark a message as optional. To view the optional messages in the translation editor click on the three points (...) behind tux-tab-translated ("Translated") and check tux-message-filter-optional-messages-label ("Optional messages").

Occasionally a new translation is imported by FuzzyBot. Where do these come from?

Those are just the translations which were made directly by the developers (committed to the codebase in version control system). Such changes usually happen when a developer makes some mass correction to all messages including translations. Contact the developers directly to find out more about the changes.

Like exports, imports are part of the regular process. Translatewiki.net staff decides whether to keep the wiki version of import the version from the codebase. The imports are then done by FuzzyBot.

MediaWiki translation

See Translating:MediaWiki and mw:Localisation for general information.

How is the work done on translatewiki.net connected to other wikis?

See also mw:Localisation#Update of localisation

MediaWiki translations, are "committed" (or "exported") every day done using a semi-automated process and become part of the official downloads.

You can check the latest version of the MediaWiki file containing messages, namespaces, and so on for your language via the language file index. The next steps are outside the control of translatewiki.net administrators as they happen on other wikis (or other products).

I have changed a message but the old one is still appearing on my home wiki

Your wiki probably needs to fetch the new code. In addition to the standard download methods, see below on LocalisationUpdate (most relevant for Wikimedia wikis) and custom messages.

Updates to partly-translated wikis
See also mw:Localisation#Old local translation system

If a particular message has already been translated (customised) on a wiki then an update from translatewiki.net will update the default message but not the actual customised message used by the wiki. If you look at the list of all messages on the wiki in Special:AllMessages, you will see the new default from translatewiki.net above the message which was customised on the wiki itself. The wiki will use the customised message in its interface and sometimes this is what you want because the customised version is specific to the needs of that wiki. To use the new default message either:

  • edit (or request an edit if you are not an administrator) the customised message to be the same as the default – the change will appear immediately, or
  • delete (or request deletion if you are not an administrator on the wiki) the customised message – the system will still use the customised message for a few days before clearing it and reverting to the default message.
  • do both!

For Wikimedia wikis, the MediaWiki namespace clean-up tool can help.

Update of "stable version" localisations

Historically a "language pack" was created for supported release branches. This, however, hasn't happened for a long time.

As these messages are also committed to Git (technically: to the REL1_XX branch), a subsequent release of the stable version will include the latest language pack. One more reason to update your MediaWiki from 1.xx.0 to the last 1.xx.y release (those "minor releases" usually contain several security updates)!

A language has been started on translatewiki.net but isn't listed at MediaWiki

A language Xxx must pass its export threshold for MediaWiki before a MessagesXxx.php file is created for it on MediaWiki. The current threshold is about 500 messages. When the threshold is reached, a developer will add the language code to those recognised by MediaWiki. The language file will be listed. The software will then start to export messages to this file automatically.

If your language has passed the threshold but no language file has yet been created, please post a report on Support.

Old MediaWiki releases

Beginning with MediaWiki 1.12, translatewiki.net allows you to translate messages for old, stable releases. These additional translations go into the appropriate language packs.

If you find issues inside a message that would need fixing with previous releases, other than message texts themselves, do not report them, there will be no such fixes. You can, however, look whether a problem persists in the current development version of MediaWiki, and have it fixed there.

Different sources lead to identical translations?

I have two distinct source messages but when translated, they become identical. What shall I do?

Usually, this is not a problem as long as they do not appear together, in the same context, or in the same Wiki page.
If they do appear in the same wiki page, carefully look at the way (how and where) they are used. Identical pieces appearing inside sentences, or lists, clarifying their different meanings, can usually be tolerated.
If there is the chance of misunderstanding, especially with links going to different targets, you must find a way to make them different.
For example:
  • In Chinese, "Special page", and "Special pages" are the same, but their meanings "repeat this special page", and "show list of names and links to all special pages", differ. Find distinct translations based on this difference. You cannot accept identical translations, since these are link labels appearing together on each special page in most skins.
Consider the impact of different skins, with and without CSS, JavaScript, in pure text displays, braille lines, acoustic screen readers, and other such devices. Although there may not be a large percentage of disabled people using Wikimedia software, the sheer size of Wikipedia's readership means that many disabled people access it. Offer them an equal opportunity.


As of 2015, AdvancedTranslate is disabled. See also phab:T109235.

This section has been commented out as it is no longer relevant.

How can I change the name of the Main page in my wiki?

In MediaWiki, the name of the main page is stored in the message mainpage. This message can be changed, but because the main page is prominent and sensitive, and because changing its name can break things if it's not done carefully, it's protected and only administrators can change it.

There are two ways to change it in your wiki. If you are sure that the current translation of "Main Page" is not what most users on MediaWiki in your language, do the following:

  1. Have an open, public discussion about this with other contributors to wikis in your language. This should be done at least in the Wikimedia projects in it (Wikipedia, Wiktionary, etc.), and if possible and relevant, it should also include users of other MediaWiki sites in this language. The discussion can be written in your own language, and it doesn't have to be in English.
  2. After having this discussion, ask for the change on the Support page, and provide an explanation and a link to the discussion.
  3. If the explanation is good and the discussion shows consensus, a translatewiki administrator will change it.
  4. The administrator must also update the RELEASE_NOTES file as soon as possible, because it can break external sites.
  5. After that, you should go over all the appearance of "main page" in the MediaWiki localizations into your language, and update them.

If the translation is OK for most sites in your language, but your specific site needs something else, get the site's administrator to edit the page MediaWiki:Mainpage on the site.

How do I localise other parts of the MediaWiki interface?

Translatewiki.net handles translation of MediaWiki messages. Other items are translated elsewhere.

Language names

Language names are not localised here, usually. They are imported from the Common Locale Data Repository (CLDR) which is run by the Unicode Consortium. The Unicode Consortium is a non-profit organisation which develops standards for software localisation in any language. It is an open-source project. The data is imported via the MediaWiki CLDR extension, which is updated whenever the CLDR issues a new release.

To add or change localised language names for translatewiki.net and MediaWiki software you should go to CLDR and request corrections or additions to the language name data held there for your language. The simplest way to request something on CLDR is to open a bug request, for example "Cebuano" in Catalan, although new data should apparently be added using the survey tool. New locale bug requests can be raised from the tracking system home page, but you should first search the CLDR tracking system using the search box, to find other bug reports for your language. When requesting a change, you should provide references, preferably to on-line sources, so that the CLDR staff can easily verify your request. If you can't provide a reliable source, you may have to wait a very long time to get your request processed. Once fixed, the new language name translation is released in the next release of CLDR. New releases only happen about twice a year for CLDR, although major bugs are fixed in interim releases.

If a language name has not been translated into your language yet on CLDR, then the CLDR data file will contain the language name in the fallback language used in CLDR for your language; see this discussion on Sorbian.

If CLDR does not yet have a locale for your language, then you could request one at CLDR, so that other websites and programs can offer an interface in your language. However, if you cannot get a locale added to CLDR, or CLDR does not support the language name you wish to translate, you can request language name support for translatewiki.net and MediaWiki at Support on translatewiki.net.

Read more about CLDR at its page on translatewiki.net.

Localised sitename for Wikipedia and other Wikimedia projects

To request a change in the title or sitename of a Wikimedia project make a request in Phabricator, giving the URL of the project concerned and the new title.

Please read the advice on Meta-Wiki regarding localisation of logos used by Wikimedia projects.

Central notices

Central notices placed by Wikimedia Foundation on groups of wikis are localised at Meta-Wiki. There are sometimes links from the central notice to the translation page at Meta-Wiki. Since Meta have now implemented the translate extension the central notices and other pages are translated through the translation tool on Meta-Wiki. You have to be logged in to use the translation tool.

Meta-Wiki also has a system of notifying registered translators by email of new Wikimedia Foundation material to be translated.

Sidebar in multi-lingual wikis

Each wiki customises its sidebar according to its needs. The text and URL links on the sidebar can be localised by admins using sub-pages /xxx for language code xxx. Here follows advice on how to localise the sidebar in Wikimedia Commons.

Add ?uselang=qqx (or &uselang=qqx if the URL already has a question mark) to the end of the web address to see what MediaWiki messages are used. For example: //commons.wikimedia.org/?uselang=qqx. You will see, for example, commons:MediaWiki:Village pump (example translation). If you click on the village pump link in qqx mode, you will get to the page called "(village_pump-url)". This means that you should translate commons:MediaWiki:Village pump-url. Same for the welcome text, welcome link, etc. However, you should only translate the URLs if the pages they direct to have been localised. If not, please leave the URL pointing to the version in the main site language. To translate these, get an admin to create the MediaWiki page with "/xxx" at the end. On Wikimedia wikis you can put {{editprotected}} in your request, to draw the administrators' attention.


See also Plural

How do I find out about the MediaWiki magic word PLURAL?

Language-dependent word conversions has a general introduction to the Plural function; why you need it, etc. See also Parameter substitution.

If the grammar for plural in your language is different from the grammar for plural in the language that your translation is based upon then you are going to need to have a special Plural function designed for your language. For example, if your translation is based on English, but the grammar for plural in your language is not [word/grammar for 1][word/grammar for all numbers except 1] then your LanguageXx.php file will need to include a definition for plural in your language. If you don't know computer code then all you need to do is leave a message on the Support page describing how plural works in your language. Give an example for each number, or group of numbers, which has a different plural. Then ask a developer to code this for you.

As at February 2008 the sourcecode can cope with a language having any number of different groups of numbers (see Translating:Interface translation/guidelines).

An English message contains a PLURAL function but it doesn't need a PLURAL function in my language

If an English message uses the PLURAL function but your translation doesn't use it then the software will include this on the list of localisation checks – see examples on 'Localisation checks'. As yet, there is no quick fix to this. You need to type the PLURAL function as if you needed it, but with just one instance of the text. For example {{PLURAL:$1|word}}.

If your language does not need the PLURAL function at all, then explain this on the Support page. You may be able to get the check software to ignore missing PLURALs in your language.

This value cannot be 1 or less, why is PLURAL used here?

There are languages that use grammar variations on totally different criteria than "one", or "several". Compare with English: 1st, 2nd, 3rd, 4th.

A MediaWiki message needs plural support in my language but the English original doesn't contain the magic word PLURAL

You can only use the PLURAL function for a variable in MediaWiki if the English source message already contains PLURAL for that variable. If you spot a message that needs PLURAL and hasn't yet got it, please request this on support. There are some messages, for example log messages, which cannot use PLURAL on all variables.


See also Gender.

How do I find out about the MediaWiki magic word GENDER?

Language-dependent word conversions has a general introduction to the Gender function; why you need it, etc. See also Parameter substitution.

If the grammar for gender in your language is different from the grammar for gender in the language that your translation is based upon then you are going to need to have a special Gender function designed for your language. See PLURAL, above.

An English message contains a GENDER function but it doesn't need a GENDER function in my language

If an English message uses the GENDER function but your translation doesn't use it then the software will include this on the list of localisation checks – see examples on 'Localisation checks'. As yet, there is no quick fix to this. You need to type the GENDER function as if you needed it, but with just one instance of the text. For example {{GENDER:$1|word}}.

If your language does not need the GENDER function at all, then explain this on the Support page. You may be able to get the check software to ignore missing GENDERs in your language.

Note that the "GENDER:" function in Mediawiki is independant of the support of grammatical genders in the target language (a language may have a single grammatical gender for both men and women, but could still need different terms to designate them correctly, including in pronouns like "he", "she", or the default neutral "they"). The "GENDER:" function is only used to select the correct form according to the preference of a single user, it does not support grammatical genders.

GENDER functions that do not contain dollar-number parameters, such as {{GENDER:|word}}, are using by default the gender of the user viewing the page. For example, You are {{GENDER:|a man|a woman|a human or a bot}}. If that visitor is not logged in, they will get a default neutral gender. When the gender applies to the visiting viewer (in messages containing "you", or actionable buttons or reply links like "I agree"), there's no need for an explicit parameter to pass their user name within a dollar-variable, but the word after the pipe is still localizable using one or more variants of the word when needed by the target language. The user's gender is stored in their user preferences on the wiki.

A MediaWiki message needs gender support in my language but the English original doesn't contain the magic word GENDER

You can only use the GENDER function for a variable in MediaWiki if the English source message already contains GENDER for that variable. If you spot a message that needs GENDER and hasn't yet got it, please request this on support. This is generally trickier than PLURAL as it needs a parameter about the locutor.


What is the MediaWiki magic word GRAMMAR?

GRAMMAR is a parser function in MediaWiki which operates with other magic words to produce the correct grammatical form of a magic word. See Grammar for more details.

Writing on translatewiki.net

I am new to wikis, where can I get help?

How do I make links to messages?

Using a template

There is a set of templates which you can use to make internal links to messages. These links link to the edit page of the message in the language that the reader has set as their main interface language (the default language). These templates are written as follows:


  • Writing {{Msg-mw|Edittoolbar-help-content-heading1-syntax}} gives Edittoolbar-help-content-heading1-syntax ("='"`UNIQ--h-69--QINU`"' Heading text =").
    The current text of a MediaWiki message in your default language appears in brackets after the link. If you don't want the current text to appear please add the parameter "|notext=yes" (or "|notext=1" or any other non-empty value) to the template, after the message title:
  • Writing {{Msg-mw|Edittoolbar-help-content-heading1-syntax|notext=Yes}} gives Edittoolbar-help-content-heading1-syntax.

Please use these templates in the text of a post to a thread, but not in the title of a thread, posted on pages that still using LiquidThreads (instead of standard Mediawiki talk pages).

Using a wiki link

You can also use an ordinary internal link to link to a particular message in a particular language. Example: writing [[mwlib:043dd90b8ffc8d85153fb1c96bda4bb72aa8fdb2-rendering/en]] gives you mwlib:043dd90b8ffc8d85153fb1c96bda4bb72aa8fdb2-rendering/en. This is sometimes useful if the templates above don't work for some reason. But please bear in mind that linking to the English source message is potentially confusing, because it could lead to them being accidentally edited. For notes on changing the English source message see above.

It is possible to add "/{{SUBPAGENAME}}" to the link after the page title. If the link starts from a page with the language code qqq then it will lead to a page with the language code qqq. Example: This link, [[MediaWiki:Hide/{{SUBPAGENAME}}|hide]], is on the page MediaWiki:Whatlinkshere-hidelinks/qqq. Click on the link "hide" to see where it takes you.

Are there abbreviations for interwiki links here?

Yes, you can use interwiki prefixes instead of web addresses for writing links to external wikis and websites. There is a table of interwiki prefixes.


Some writers on the internet like to use abbreviations for things. If you have been puzzling over what these abbreviations mean then here are some which have appeared on translatewiki.net, with a guess as to what they mean!

If you come across unintelligible abbreviations in messages that need to be translated, please report them on Support so that the message can be changed.

Technical terms

What is a bump on a talk page?

"Bumping a thread" is the concept of reactivating a thread that has fallen down or off a "recent activity" list of threads so that it goes to the top of the list of threads with recent activity again; the aim of the bump is to make the thread seen again. This is usually the default. A "bump" in forums is often a "no text" message only containing "*bump*". The bump is done by ticking the tickbox 'bump this thread' at the bottom of the edit box, when you 'add a reply' to a discussion thread (when using LiquidThreads).

Semantic maps on translatewiki.net

I have tried to add myself to the translator map on a Portal but it doesn't appear. Why?

The Semantic map of translators on the portals only shows translators who are native speakers of the portal language or having levels 4 or 5.

Where can I see the query conditions for the Semantic maps used on translatewiki.net?

  • The portal maps are generated using Template:Portal.
  • The conditions for the maps on the project pages are on those pages.

What is a bad token in MediaWiki? What is an edit token?

MediaWiki includes multiple security mechanism to authenticate that actions are really executed by the user. So users need to login to get a token that is transfered in cookies when user executes actions. Browser send this session token automatically, even if JavaScript on other website initiates the action. To prevent those sites from doing that, all write actions need another action token, which is first requested in other request. While other sites can initiate JavaScript requests to any site, they can't read the results, do they cannot access this action specific token and thus cannot execute write actions without the user knowing.

Now, this error message appears when an action is executed, where this token (a string basically) does not match what the server has stored for the user. This often happens if the session has timed out (keeping some page open for too long), clearing the previously stored value.

The solution for this is to reload the page you are on and try again.

"Creating new, empty pages is not allowed"

See also #How do I save a translation which is the same as the English source?.

If you see this error, you're not alone: it's a known regression in MediaWiki core, phab:T59238. As of July 2014, it should be fixed. If you actually want to create a message with some whitespace, like a space, please use an HTML entity for it, like  . If you really need to create a message which is empty, or has the same text as the original, then you have to first create the page with some random text and then edit it to its desired form.

Translation problems

What do I do when an input box and the text next to it are in the wrong order for my language?

MediaWiki developers have been asked to write text messages both before and after input boxes (including drop-down boxes) in future, so that translators can put text before or after, or on both sides, of an input box. However, it is not straightforward to fix the messages already in MediaWiki, and programmers on other software using translatewiki.net for localisation may not be aware of this issue. This is a flaw that may not be fixable.

Some suggestions for alternative wording which may help you if you have this problem are noted here:

  • Change the text to a question
  • Make the text into a polite request, such as "Please enter ... in the box on the right/left:".

What do I do when the messages in logs in MediaWiki are in the wrong order for my language?

Logs in MediaWiki are formed by using a string of messages, which are put in the correct word order for English. This is usually (time and date) (name of user performing action) (description of action) (notes or links to further actions) – see Special:Log for examples. At present this message order cannot be changed. Where a different word order is required, then it may be possible to reword, possibly not using complete sentences. For example, it may be possible to use a note form, something like... 'Action performed; description of action'.

How can we ensure consistent localised terminology?

For MediaWiki

Some language teams have written databases of localised terminology for use in their translation work; see the list at Terminology#Terminologies. Although the translators’ databases are kept at either translatewiki.net or meta, the discussion and agreement of the terms could be happening on one of the wiki projects for that language, usually Wikipedia.

These databases are set up for translators. At the same time there is a need to develop localised glossaries of MediaWiki terminology which include explanations of the terms, as for example this Korean glossary on Meta-Wiki. Usually the translatewiki.net translators are also involved in writing the glossaries for localised projects and Metawiki. If there are links between these different glossaries, then it should be easier to make sure that new additions to one glossary are included on or copied to the related glossaries on other sites.

For other projects

The principles of using consistent localised terminology are true for all projects. So projects which have specialised terminology specific to that project could do with a localised database of terms agreed by the translation team at translatewiki.net. If any other project database of terms has already been written, please provide a link to an example here.

General terms

Some lesser used languages do not yet have a large vocabulary connected to information technology. IT vocabulary is also expanding rapidly in all languages. Some languages have started to develop strategies to build localised technical terms. These strategies will be different for each language, depending on the availability of information technology to speakers of that language. Translatewiki.net translators usually use technical terms that are already in common usage. Where there are none, or no term has yet won general acceptance, then a strategy of discussion and using databases to build terminology, is sometimes used. Such a strategy would work best on a project which is as widely-used as possible, usually Wikipedia. Where a Wikipedia has a vocabulary database, then a resource link for translators can be added to the language portal on translatewiki.net.

Development of translatewiki.net glossary

Translatewiki.net has a project to develop terminologies of English terms, which can then be used to write multi-lingual glossaries.

Referring to user data, user actions, and similar

Should we say: 'My last visit was …' or 'Your last visit was …', should it be: 'My preferences' or is 'Your preferences' better? Should I stick to the English style and addressing? I am unsure.

The answer is, we don't know, it depends on your language and, probably, style. Choose what is more common or more convenient for your language and culture. Be consistent.

  • 'Your' and equivalents may be preferred since they show the software-user relationship.
  • 'My' may be asking the user to more closely identify with the software or web site.
  • Using whichever is usually shorter may be an option, too, since many of those are tab or link labels.

How do I translate verb forms used in software?

English is handicapped in 2 ways in writing verbs and nouns derived from verbs on computer interfaces. Firstly it is very limited in suitable verb forms available to it. the most suitable forms in English are usually the infinitive ((to) edit) and the command (edit). Secondly, the infinitive and the command look exactly the same in English, especially if you drop the "to" in the infinitive, as usually happens.

To make matters worse, in the early days of interface localisation the English would sometimes be simply translated word for word without considering whether there were alternative verb forms in other languages better suited to the job. Sometimes these literal translations have become accepted as a convention, and are not easy to dislodge. In developing a style for writing verbs in various situations (submit buttons, links, dialog box headings, etc) it is good practice to consider the various verb forms available in your language, to discuss with other translators on translatewiki.net which are best suited to the interface, and also bear in mind the influence of any conventions which are used on other software, and to record the agreed convention on the language portal.

See for instance notes on verb forms in particular languages as examples of problems to be addressed and guidelines to be established: Welsh, Portal:ksh/Verb forms. Terminology is mildly related and several other languages have guidelines on both.

See Translation best practices and Thread:Translating talk:Translators' forum/Mood for messages containing commands... to find further links and discussion.

Where can I find advice and guidance on how to translate software?

There are many online resources.

When it's not enough:

  • you can ask other translators and developers in all languages through the Support page;
  • for your language, you can ask on its portal talk page, or you can ask other translators directly. See Special:SupportedLanguages for a list of both.

Why are Android messages not allowed to be translated to my language?

Android before version 7.0 (alias "Nougat", released in August 2016) only supported 2-letter or 3-letter language codes (optionally with a 2-letter country code or 3-digit continental region code).

However Android 5.0 (alias "Lollipop", released in November 2014) was the first version to support 3-letter language codes (from ISO 639-3, first published in 2007)n that were added to the former smaller set of 2-letter codes from ISO 639-1/2 (e.g. "fil" for Filipino, "haw" for Hawaiian, "shi" for Tachelhit or "zgh" for Standard Moroccan Tamazight), keeping the restriction on optional region codes to support only ISO 3166-1 codes and UN M.49 continental region codes). Note also that since Android 2.1, some deprecated 2-letter language codes (that were removed from ISO 639-1, but kept as compatibility aliases in BCP 47) were also still used (e.g. "iw" instead of "he" for Hebrew, "ji" instead of "yi" for Yiddish, and "in" instead of "id" for Indonesian).

If your language has a 3-letter code, then Android before version 5.0 could not use messages translated into your language.

Android 7.0 (API level 24) introduced the support for BCP 47 language tags (see also how to provide alternative resources with other qualifiers), which means it can now use language- and region-specific resources in all languages, scripts and regional or dialectal variants, without being limited to the former 2-letter limit for the base language subtag (from ISO 639-1) and an optional uppercase 2-letter country code (from ISO 3166-1) suffixed after an hyphen "-" followed by the lowercase letter "r" (specific to Android resource qualifiers).

With BCP 47, a language tag is composed from a sequence of one or more subtags (each one made with 1 to 8 digits or letters), the first one being for the base language (which could have a 2-letter or 3-letter code), then followed by other subtags after a standard "-" or "_" separator (different separators or different letter case in subtags are not significant in BCP 47).

These BCP 47 tags can be used to name resources files for Android application packages, by using the "+" separator (instead of "-r" before the legacy region code supported by Android before version 7.0) and prefixing the tag by "b+" in the Android resource qualifier: this allows using 3-letter language codes for the base language subtags, as well as other suffixes (region codes are no longer limited to 2-letter country codes from ISO 3166-1, but can use 3-digit region codes from UN-M.49 for international regions; 4-letter script subtags and language variants are supported as well). This means that applications targetting Android 7.0 can support a much wider audience and all languages supported on this wiki.

Note that legacy language codes should still be used for languages that support them. This means for example that Simplified Chinese ("zh-Hant" with BCP 47) should still be encoded within Android resource files with the legacy resource qualifier "zh-rCN", rather than "b+zh+Hant" with the new format based on BCP 47 tags. However Android 7.0 and later will fallback as necessary to locate the resources: using the legacy qualifiers allows an Andoid application package to support older Android devices, even if this means that these devices will not display all the languages available in the application package (anyway, applications should already have different packages for older Android devices, due to many other changes in the supported API or the need to provide some emulation with additional libraries or adaptation of the application code built inside the package for older devices).

Android developers that want to localize their applications to more locales supported by Android 7.0 or later (for all Android devices sold since end of year 2016, or older devices that could be upgraded to Android 7 or newer) should use the new qualifiers: it's up to these developers to indicate if they support these extended BCP 47 locale tags (and then convert all BCP 47 tags used on this wiki to the syntax needed by Android resource qualifiers).

How do I create a support request?

  1. Go to the Support page (also linked in the Navigation sidebar from any wiki page of translatewiki.net).
  2. Click on the “'Start a discussion'” button on that page.
  3. Add a subject.
    1. The subject usually includes the word About, then the Project name, the message key, and the locale, usually en, but can refer to a specific locale that has an issue. Double brackets, [[]], surround the project, message key and locale in order to create a link to that message key’s webpage:
      e.g. About [[MediaWiki:Popups-settings-option-simple/en]]
  4. Add a support request message.
    1. The request message should include the support template with appropriate values filled in for status, project, and developer. {{Support|status=status|project=project|dev=developer}}
    2. And then any contextual information that will help a translator or developer handle the request.

How do I handle support requests?

See Translating:Localisation for developers#Support requests.


What is the difference between Betawiki and translatewiki.net?

None. The wiki originally started out as Betawiki on a domain name that had no relation to its name. When translatewiki.net moved to its own domain name, no "betawiki" domain names were available, leading to the registration of translatewiki.net.

Are there statistics on translatewiki.net?

Graph of weekly active translators before spring 2014.


Talk page discussion systems

Before 2023, translatewiki used the LiquidThreads system for all talk pages. It is now being replaced by the more modern DiscussionTools system. Some discussion pages still use LiquidThreads. Pages with LiquidThreads can be archived to allow migration to DiscussionTools.

To migrate a LiquidThreads page without any actual threads to Discussion Tools, simply click the link that looks like this: "[Edit↑]". Add the code {{#useliquidthreads:0}} to the page and publish it.

To migrate a page that has some existing threads:

  1. Move the page from the title "X" to "X/LiquidThreads" without leaving a redirect.
  2. Edit the page X/LiquidThreads to add {{ArchivedLiquidThreads}} (see above).
  3. Edit the page X to add {{HadLiquidThreads}}.

See an example here: Translating talk:Index.

Testing wiki pages on various browsers

At http://browsershots.org/ you can test URLs on their appearance in different browsers and on different systems.

See also