The "uselang hack" (or "int:lang hack") can be used to create (or at least simulate) multiple "versions" of pages. This was originally used for the Special:Upload form on Wikimedia Commons to create variants of the same forms for different purposes (e.g. upload "Own work", upload "Government work", etc) instead of a single overcrowded form.
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.
$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
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
- Displayed language from the user's preferences (Special:Preferences)
- Uselang parameter used to override user preferences
- All the user interface, including menus and form labels, are displayed in French (language code "fr")
- Uselang hack
- Since "mynewform" is not a valid language code, there is no corresponding
Messages*.phpfile 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
Create the new landing page
Extra tips for multilingual wikis
- Registered and unregistered users will need to be able to pick and keep their preferred language, e.g. with a method like commons:MediaWiki:AnonymousI18N.js (commons:User:Krinkle/Scripts/AnonymousI18N).