diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/extensions/Translate/hooks.txt |
first commit
Diffstat (limited to 'www/wiki/extensions/Translate/hooks.txt')
-rw-r--r-- | www/wiki/extensions/Translate/hooks.txt | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/hooks.txt b/www/wiki/extensions/Translate/hooks.txt new file mode 100644 index 00000000..e144adb8 --- /dev/null +++ b/www/wiki/extensions/Translate/hooks.txt @@ -0,0 +1,133 @@ +This document describes how event hooks work in the Translate extension; +how to add hooks for an event; and how to run hooks for an event. + +For a more comprehensive guide to hooks, navigate to your root MediaWiki +directory, and then find /docs/hooks.txt. + +== Rationale == + +Hooks allow us to decouple optionally-run code from code that is run for +everyone. It allows MediaWiki hackers, third-party developers and local +administrators to define code that will be run at certain points in the mainline +code, and to modify the data run by that mainline code. Hooks can keep mainline +code simple, and make it easier to write extensions. Hooks are a principled +alternative to local patches. + +== Writing hooks == + +=== PHP hooks === +For a guide to PHP hooks, navigate to your root MediaWiki +directory, and then find docs/hooks.txt. + +=== JavaScript hooks === +JavaScript hooks for the Translate extension use the standard mw.hook API provided +by MediaWiki. + +Hooks are prefixed with mw.translate as a convention. + +== Events and parameters == + +This is a list of known events and parameters; please add to it if you're going +to add events to the Translate extension. + +<!-- +Post processing step to format in wiki +^;([^ ]+): >>> ;<nowiki>\1</nowiki>: +--> + +=== PHP events === + +;Translate:MessageGroupStats:isIncluded: Controls whether message group is shown for a given language in language or message group statistics. Mostly used internally by Translate to hide discouraged groups and groups restricted to certain languages. + string $groupId: Message group id + string $code: Language code + +;TranslateBeforeAddModules: Provides an opportunity to load extra modules + array &$modules: List of resource loader module names + +;TranslateEventMessageMembershipChange: When group gets new messages or loses messages + MessageHandle $handle + array $old Previous groups + array $new Current groups + +;TranslateEventMessageGroupStateChange: Event triggered when a message group workflow state is changed in a language + MessageGroup $group: Message group instance + string $code: Language code + string $oldState + string $newState + +;TranslateEventTranslationReview: Event triggered when a translation is proofread + MessageHandle $handle + +;TranslateGetBoxes: Provides an opportunity to add or remove "boxes" (translation helpers) from the translation interface + MessageGroup $group: The message group being worked on + MessageHandle $handle: An object representing the translation page (e.g. 'MediaWiki:Example/qqq') + array &$boxes: An associative array to be appended to (format: 'name' => 'some HTML string') + +;TranslateGetAPIMessageGroupsParameterList: Allows extra parameters to be added to the action=query&meta=messagegroups module + array &$params: An associative array of possible parameters (name => details; see ApiQueryMessageGroups.php for correct spacing) + +;TranslateGetAPIMessageGroupsPropertyDescs: Allows extra properties to be added to captured by action=query&meta=messagegroups&mgprop=foo|bar|bat module + array &$properties: An associative array of properties, name => description (which is ignored). + +;TranslateGetSpecialTranslateOptions: Provides an opportunity for overriding task values + array &$defaults: Associative array of default values + array &$nondefaults: Associative array of nondefault (override) values + +;Translate:GettextFFS:headerFields: Allows to customize headers of exported Gettext files per group. Certain X-headers nor Plural-Forms cannot be customized. + array &$headers: List of prefilled headers. You can remove, change or add new headers. + MessageGroup $group: Message group instance + string $code: Language code + +;TranslateMessageGroupPathVariables: Allows to manipulate the list of variables for message group path patterns. + MessageGroup $group + array &$variables: Variable name => replacement + +;Translate:newTranslation: Event triggered when non-fuzzy translation has been made + MessageHandle $handle + int $revisionId + string $text: Content of the new translation + User $user: User who created or changed the translation + +;TranslatePostInitGroups: Hook to register new message groups to Translate. Manual cache clear may be needed to have this hook executed. + array &$groups: Map of message group id to message group instance + array &$deps: List of dependencies as supported by DependecyWrapper class from MediaWiki + array &$autoload: List of autoloaded classes. Key is the name of the class and value is filename. + +;TranslatePrefillTranslation: Provides an opportunity for a new translation to start not from as a carte blanche (the default) but from some prefilled string + string &$translation: The translation string as it stands + MessageHandle $handle: The current MessageHandle object + +;TranslateProcessAPIMessageGroupsProperties: Allows exrra property requests to be acted upon, and the new new properties returned + array &$a: Associative array of the properties of $group that will be returned + array $props: Associative array ($name => true) of properties the user has specifically requested + array $params: Parameter input by the user (unprefixed name => value) + MessageGroup $g: The group in question + +;TranslateSupportedLanguages: Allows removing languages from language selectors. For adding $wgExtraLanguage names is recommended. + array &$list: List of languages indexed by language code + string $language: Language code of the language of which language names are in + +;TranslateTranslationAids: Make new translation aids available to any message group (which must choose an implementation in its getTranslationAids() method). + array &$types: List of translation aid identifiers, numerically indexed + +;Translate:modifyMessageGroupStates: Allow hooks to change workflow states depending on the group's ID. + string $groupId: ID of the current message group. + array &$conf: Workflow states, can be modified. + +=== JavaScript events === + +;mw.translate.editor.afterSubmit: Provides an opportunity to modify a Translate translation form immediately after it is submitted + jQuery form: The form that has just been submitted + +;mw.translate.editor.afterEditorShown: Provides an opportunity to manipulate the editing interface once it's shown + jQuery translateEditor.$editor: The current translation-editing form + +;mw.translate.editor.beforeSubmit: Provides an opportunity to modify a Translate translation form immediately before it is submitted + jQuery form: The form being submitted + +;mw.translate.messagetable.formatMessageBeforeTable: Provides an opportunity to manipulate the display of translation strings (messages) in the main table + object message: The message object, with a range of useful (and manipulable) properties + +;mw.translate.editor.showTranslationHelpers: Provides an opportunity to handle custom translation helpers + object result.helpers: JSON subset focusing on the helpers returned e.g. result.helpers.definition + jQuery translateEditor.$editor: The current translation-editing form |