API:Localisation

This documents things specific to localisation of the MediaWiki web API (api.php).

See localisation>Special:MyLanguage/Localisation|Localisation for general comments on MediaWiki localisation.

Message files
Localisation messages for MediaWiki core are located under .

For extensions, the messages may be localisation>Special:MyLanguage/Localisation#Adding_new_messages|included in the general i18n files or may be in a separate file using the normal mechanisms for having MessageDirs>Special:MyLanguage/Manual:$wgMessagesDirs|multiple files.

Naming
The help messages for API modules are namespaced using the "module path", which is the string used for help>Special:ApiHelp/help|action=help's "modules" parameter.

For modules added to  this is going to be the same as the key used in that array, while for modules added to , , or  it will be that key prefixed with "query+".


 * The description message, formerly returned by the [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a49b8857e40e254e0af27fd281f3a2230 getDescription] method, is . This may be overridden by implementing the [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#aa0c499873fba5c934b98aae65e61a33d getDescriptionMessage] method, but cases where that is needed are rare.
 * The parameter description messages, formerly returned by the [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a1d9406dc4a7b6e5b69554c492ee464f6 getParamDescription] method, are  (where   is the key from [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a6806d2768e2bf6ea57e6b081bf4a9f9f getAllowedParams]). This may be overridden by setting a value for [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#ab3a6e8b6e7cfbaf4f8bf4339a13d76c5  ] in the data structure returned from [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a6806d2768e2bf6ea57e6b081bf4a9f9f getAllowedParams].
 * Parameters with a description similar to "When more results are available, use this to continue" should use api-help-param-continue instead of redefining a duplicate message.
 * Sorting parameters taking values "newer" and "older" (with related "start" and "end" parameters) should use api-help-param-direction instead of redefining a duplicate message.
 * Modules using CSRF tokens by implementing [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a9bd9dd747c20665d94b5939373b3f40c ] do not need to document the token parameter; this is automatically handled by ApiBase.
 * Several additional constants are available for use in [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a6806d2768e2bf6ea57e6b081bf4a9f9f getAllowedParams]; see ApiBase for details.
 * Parameters with an array for [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a345d7963199abd8893bd88015f7d4ed6 ] may use [//doc.wikimedia.org/mediawiki-core/master/php/html/classApiBase.html#a5a023b82d4aa17a44e33c1e8e2abdd6b  ] to specify that each value is individually documented. These messages are by default.
 * All examples must have a descriptive text. Message names should be along the lines of.

Message documentation
When documenting the messages in <tvar|qqq></>, use the templates <tvar|1></>, <tvar|2></>, <tvar|3></>, and <tvar|4></>.

Message formatting
All messages should end with a period, and be grammatical sentences.

For parameters passed to the messages by default, see the templates linked from doc>#Message documentation</>|#Message documentation.

Use semantic wikitext markup in messages:
 * for mention of parameter keys, and also references to variables like $wgMiserMode.
 * for the possible values of parameters, mention of parameters with values, and the mention of the input values in example docs.
 * for mention of keys or values in the API output.
 * for anything else that's computer code, e.g. "the  header" or "the page  ".
 * You don't need additional quotation marks when using semantic markup.

If you need to reference other API modules, pipe a link to Special:ApiHelp and the help formatter will do the right thing. For example, " " is used in the documentation for various token parameters. The Special:ApiHelp link properly renders as an in-page anchored link if it's on the same help page (example). Similarly, reference to MediaWiki configuration variables such as $wgMiserMode should link to the documentation on mediawiki.org.

Pages referenced in examples should generally not be linked, as these links are unlikely to exist on many wikis.

Examples
To give examples on how to use your API, implement getExampleMessages:

The array key is the example URL, and the value is a message key that describes the example.

Errors and warnings
The code for this has yet to be written.

Text in API responses
ApiBase, and thus all API modules, are also context sources. Messages should generally be accessed using <tvar|code> </>, and the API module itself should generally be passed when an IContextSource is needed.

Messages should not be arbitrarily included in the output because a client might find it useful.

Improving localisations on translatewiki
You can add and improve API help message translations on <tvar|twn>translatewiki.net</>, in the same manner as other core MediaWiki messages. The relevant message groups include


 * twn-mw-api>translatewiki:Special:Translate/mediawiki-api</>|MediaWiki web API
 * twn-api-usage>translatewiki:Special:Translate/ext-apifeatureusage</>|API feature usage
 * twn-api-sandbox>translatewiki:Special:Translate/ext-apisandbox</>|ApiSandbox extension