API:Локализация
Эта страница является частью документации по API действий MediaWiki. |
Версия 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 aapihelp-$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.
- Prior to 1.30, a
- 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 forApiBase::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 useApiBase::PARAM_HELP_MSG_PER_VALUE
to 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_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, используйте следующие шаблоны:
{{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 в соответствии с новой системой.