summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/hooks.txt
diff options
context:
space:
mode:
authorYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
committerYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
commitfc7369835258467bf97eb64f184b93691f9a9fd5 (patch)
treedaabd60089d2dd76d9f5fb416b005fbe159c799d /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.txt133
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