User:Pfctdayelise/Manual:Uselang hack

From MediaWiki.org
Jump to: navigation, search
The default upload form

The "uselang hack" can be used to create (or at least simulate) multiple "versions" of pages. This is useful for the Special:Upload form, for example: create forms that have different purposes, to avoid crowding too much information into a single form.

Caveats[edit | edit source]

Note that this is a hack and as such, may break if better functionality to achieve this purpose is introduced into MediaWiki core. It is also awkward to use on multilingual wikis, although certainly still possible.

You will need rights to edit system messages, i.e. pages in the MediaWiki: namespace. (User right 'editinterface', usually "sysop" group and above)

Note: for this to fully work, due to bugzilla:11695, you need to put this setting in LocalSettings.php:

$wgForceUIMsgAsContentMsg = array( 'licenses' );

You likely also need

$wgUseDatabaseMessages = true;

which is the default. (This says to look in the MediaWiki: namespace for system messages content.)

How it works[edit | edit source]

The uselang hack exploits MediaWiki's internationalisation capabilities, but instead of displaying text in another language, it displays text for another purpose.

Normal URL for accessing the upload form
http://www.mediawiki.org/wiki/Special:Upload
Displayed language from the user's preferences (special:preferences)
Uselang parameter used to overrride user preferences
http://www.mediawiki.org/wiki/Special:Upload?uselang=fr
All the user interface, including menus and form labels, are displayed in French (language code "fr")
Uselang hack
http://www.mediawiki.org/wiki/Special:Upload?uselang=mynewform
Since "mynewform" is not a valid language code, there is no corresponding Messages.php file in MediaWiki. Then, for each system message, it checks the local version: e.g. for Uploadtext, it looks for MediaWiki:Uploadtext/mynewform. If this doesn't exist, it displays the default MediaWiki:Uploadtext.

Create a "new" form[edit | edit source]

Create the new landing page[edit | edit source]

Change the menu link[edit | edit source]

Extra tips for multilingual wikis[edit | edit source]

Advanced form hacking: JavaScript[edit | edit source]