API:Локализация

This page is a translated version of the page API:Localisation and the translation is 61% complete.
Outdated translations are marked like this.
Версия MediaWiki:
1.25
Gerrit change 160798

Это документирует данные, специфические для локализации предназначенного для выполнения действий API движка MediaWiki (api.php). См. Localisation для общих комментариев на тему локализации MediaWiki.

Файлы сообщений

Сообщения локализации для ядра MediaWiki содержатся в includes/api/i18n.

Для расширений, сообщения могут быть включены в общих файлах интернационализации или находиться в отдельном файле с использованием обычных механизмов для наличия нескольких файлов. См. документацию по локализации о добавлении новых сообщений.

Сообщения справки

Именование

Сообщения справки по модулям API размещены в пространстве имён с использованием «пути модуля» — строки, используемой для параметра «modules» action=help. Для модулей, добавленных в $wgAPIModules , это будет тот же ключ, как и использованный в этом массиве, когда для модулей, добавленных в $wgAPIPropModules , $wgAPIListModules или $wgAPIMetaModules это будет тот же ключ с префиксом «query+».

  • The description message, formerly returned by the getDescription() method, has been split into two: a apihelp-$path-summary message with a one-line summary of the module and a apihelp-$path-extended-description containing any additional module-level documentation. These may be overridden with corresponding methods, but cases where that is needed are rare.
    • Prior to 1.30, a apihelp-$path-description message was used. This was be overridden by implementing the getDescriptionMessage() method, but cases where that was needed were rare.
  • The parameter description messages, formerly returned by the getParamDescription() method, are apihelp-$path-param-$name (where $name is the key from getAllowedParams()). This may be overridden by setting a value for ApiBase::PARAM_HELP_MSG in the data structure returned from 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 needsToken() do not need to document the token parameter; this is automatically handled by ApiBase.
    • Several additional constants are available for use in getAllowedParams(); see ApiBase for details.
  • Parameters with an array for ApiBase::PARAM_TYPE may use ApiBase::PARAM_HELP_MSG_PER_VALUE to specify that each value is individually documented. These messages are by default apihelp-$path-paramvalue-$name-$value. If the messages are named according to the default, there is no need to map messages to values in the ApiBase::PARAM_HELP_MSG_PER_VALUE array (it still has to exist but can be left empty).
  • All examples must have a descriptive text. Message names should be along the lines of apihelp-$path-example-$arbitrarySuffix.

Документирование сообщений

При документировании сообщений в qqq.json, используйте следующие шаблоны:

Форматирование сообщений

Все сообщения должны заканчиваться точкой и быть грамматически правильными предложениями. Для параметров, передаваемых сообщениям по умолчанию, см. шаблоны, на которые ссылается #Документация сообщений.

Используйте семантическую викитекстовую разметку в сообщениях:

  • ‎<var> для упоминания ключей параметров, а также ссылок на такие переменные, как $wgMiserMode.
  • ‎<kbd> для возможных значений параметров, упоминания параметров со значениями (включая ссылки на другие модули) и упоминания входных значений в примерах документов.
  • ‎<samp> для упоминания ключей или значений в выводе API.
  • ‎<code> для чего-либо еще, что является компьютерным кодом, например "заголовок max-age" или "страница ‎<head>".
  • При использовании семантической разметки дополнительные кавычки не нужны.

Если вам нужно сослаться на другие модули API, передайте ссылку в Special:ApiHelp, и средство форматирования справки сделает все правильно. Например, "[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]" используется в документации для различных параметров token. Ссылка Special:ApiHelp правильно отображается как привязанная ссылка на странице, если она находится на той же странице справки (пример). 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.

Ошибки и предупреждения

Ошибки генерируются вызовом $this->dieWithError( $messageObjectOrKey );, и сообщение может быть локализовано обычным способом. Тот же принцип действует для предупреждений, используется код $warning-snippet. Likewise for warnings with $this->addWarning( $messageObjectOrKey );. См. API:Errors and warnings для более детальной информации.

Согласно принятым принципам, сообщения об ошибке, генерируемые API, используют ключи сообщений, начинающиеся с apierror-, а предупреждения — ключи, начинающиеся с apiwarn-. Вы можете использовать {{doc-apierror}} в документации сообщения.

Текст в ответах API

ApiBase, а, значит, и все модули API, также являются контекстными источниками. К сообщениям обычно следует обращаться через $code, а сам модуль API обычно следует передавать, когда требуется IContextSource. Messages should generally be accessed using $this->msg(), and the API module itself should generally be passed when an IContextSource is needed.

Сообщения не следует включать в вывод произвольным образом просто по той причине, что клиент может найти их полезными.

Улучшение локализации на сайте translatewiki

Вы можете добавить и улучшить перевода сообщений справки API на translatewiki.net, так же, как и другие сообщения ядра MediaWiki. Соответствующие группы сообщений включают The relevant message groups include

См. также

  • API/Architecture_work/i18n – Черновик документа 2014 года с информацией о преобразовании старых модулей API в соответствии с новой системой.