API:Локализация
| Эта страница является частью документации по API действий MediaWiki. |
| Версия 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-summarymessage with a one-line summary of the module and aapihelp-$path-extended-descriptioncontaining 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-descriptionmessage was used. This was be overridden by implementing the getDescriptionMessage() method, but cases where that was needed were rare.
- Prior to 1.30, a
- The parameter description messages, formerly returned by the getParamDescription() method, are
apihelp-$path-param-$name(where$nameis the key from getAllowedParams()). This may be overridden by setting a value forApiBase::PARAM_HELP_MSGin 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_TYPEmay useApiBase::PARAM_HELP_MSG_PER_VALUEto specify that each value is individually documented. These messages are by defaultapihelp-$path-paramvalue-$name-$value. If the messages are named according to the default, there is no need to map messages to values in theApiBase::PARAM_HELP_MSG_PER_VALUEarray (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, используйте следующие шаблоны:
{{doc-apihelp-summary|путь модуля}}{{doc-apihelp-description|module path}}{{doc-apihelp-extended-description|путь модуля}}{{doc-apihelp-param|путь модуля|название параметра}}{{doc-apihelp-paramvalue|путь модуля|название параметра|значение параметра}}{{doc-apihelp-paraminfo|module path|parameter info tag name}}{{doc-apihelp-example|путь модуля}}
Форматирование сообщений
Все сообщения должны заканчиваться точкой и быть грамматически правильными предложениями. Для параметров, передаваемых сообщениям по умолчанию, см. шаблоны, на которые ссылается #Документация сообщений.
Используйте семантическую викитекстовую разметку в сообщениях:
<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 в соответствии с новой системой.