Jump to content

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

From mediawiki.org
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). See API:REST_API/Extensions/Modules for the REST API. См. 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 в соответствии с новой системой.