Manual:generateJsonI18n.php

From MediaWiki.org
Jump to navigation Jump to search

Other languages:
English • ‎español • ‎polski • ‎日本語

Details[edit]

MediaWiki version: 1.23
Gerrit change 102171

generateJsonI18n.php file is a maintenance script to generate JSON-formatted i18n files from legacy PHP array-based mediawiki i18n files.

Usage[edit]

php maintenance/generateJsonI18n.php phpfile jsondir

where:

  • phpfile - PHP file defining a $messages array. Required unless --extension is provided.
  • jsondir - directory to write the JSON files to. Will default to $phpfile/i18n.

Script dependant parameters[edit]

Option/Parameter Description
--langcode="lang" Language code; only needed for converting core i18n files.
--extension 1.24 Perform default conversion on an extension. If you use this parameter, don't specify the phpfile argument. It will make phpfile be set as "$IP/extensions/$extension/$extension.i18n.php", and targetfolder will be set to i18n
--shim-only Only create or update the backward-compatibility shim
--supplementary Find supplementary i18n files in subdirs and convert those

Example[edit]

cd core/extensions/YourExtension
mkdir i18n
php ../../maintenance/generateJsonI18n.php ExtensionName.i18n.php i18n
MediaWiki version: 1.24
Gerrit change 122659

Alternate way for extensions, since Gerrit change 122659: This example performs the default conversions in $IP/extensions/WikiLove/, replacing the WikiLove.i18n.php file with a backwards-compatibility shim and porting messages to the WikiLove/i18n/ directory.

php maintenance/generateJsonI18n.php --extension WikiLove

Suggested migration process[edit]

If your extension has not been converted already.

  • Make sure you have the latest code
  • Create the i18n directory
  • Run the script
  • Update your extension's entry file to add $wgMessagesDirs ['YourExtension'] = __DIR__ . '/i18n';
  • Commit it to gerrit if the extension is hosted there
  • Add Siebrand and Raimond as reviewers if the extension is translated in translatewiki.net
  • Wait for review and all should go smoothly

See also[edit]