diff options
Diffstat (limited to 'www/wiki/extensions/Translate/ttmserver/Interfaces.php')
-rw-r--r-- | www/wiki/extensions/Translate/ttmserver/Interfaces.php | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/ttmserver/Interfaces.php b/www/wiki/extensions/Translate/ttmserver/Interfaces.php new file mode 100644 index 00000000..1f8cb20e --- /dev/null +++ b/www/wiki/extensions/Translate/ttmserver/Interfaces.php @@ -0,0 +1,154 @@ +<?php +/** + * TTMServer - The Translate extension translation memory interface + * + * @file + * @author Niklas Laxström + * @copyright Copyright © 2012-2013, Niklas Laxström + * @license GPL-2.0-or-later + * @ingroup TTMServer + */ + +/** + * Interface for TTMServer that can be queried (=all of them). + * @ingroup TTMServer + * @since 2012-06-27 + */ +interface ReadableTTMServer { + /** + * Fetches all relevant suggestions for given text. + * + * @param string $sourceLanguage language code for the provide text + * @param string $targetLanguage language code for the suggestions + * @param string $text the text for which to search suggestions + * @return array List: unordered suggestions, which each has fields: + * - source: String: the original text of the suggestion + * - target: String: the suggestion + * - context: String: title of the page where the suggestion comes from + * - quality: Float: the quality of suggestion, 1 is perfect match + */ + public function query( $sourceLanguage, $targetLanguage, $text ); + + /** + * Determines if the suggestion returned by this TTMServer comes + * from this wiki or any other wiki. + * @param array $suggestion + * @return Bool + */ + public function isLocalSuggestion( array $suggestion ); + + /** + * Given suggestion returned by this TTMServer, constructs fully + * qualified URL to the location of the translation. + * @param array $suggestion + * @return String URL + */ + public function expandLocation( array $suggestion ); +} + +/** + * Interface for TTMServer that can be updated. + * @ingroup TTMServer + * @since 2012-06-27 + */ +interface WritableTTMServer { + /** + * Shovels the new translation into translation memory. + * Use this for single updates (=after message edit). + * If no text is provided, entry will be removed from the translation + * memory. + * + * @param MessageHandle $handle + * @param string|null $targetText Use null to only delete. + */ + public function update( MessageHandle $handle, $targetText ); + + /** + * Called when starting to fill the translation memory. + * Set up necessary variables and remove old content + * from the server. + */ + public function beginBootstrap(); + + /** + * Called before every batch (MessageGroup). + */ + public function beginBatch(); + + /** + * Called multiple times per batch if necessary. + * + * @param array $batch + */ + public function batchInsertDefinitions( array $batch ); + + /** + * Called multiple times per batch if necessary. + * + * @param array $batch + */ + public function batchInsertTranslations( array $batch ); + + /** + * Called before every batch (MessageGroup). + */ + public function endBatch(); + + /** + * Do any cleanup, optimizing etc. + */ + public function endBootstrap(); + + /** + * Get the list of services to duplicate writes to make them "mirrors" + * of this service. + * + * @since 2017.04 + * @return string[] + */ + public function getMirrors(); + + /** + * Check if the service is frozen, attempting to write to + * a frozen service may lead to errors or unexpected behaviors. + * + * @since 2017.04 + * @return bool true if the service is frozen + */ + public function isFrozen(); +} + +/** + * Interface for TTMServer that can act as backend for translation search. + * @ingroup TTMServer + * @since 2014.04 + */ +interface SearchableTTMServer { + /** + * Performs a search in the translation database. + * + * @param string $queryString String to search for. + * @param array $opts Query options like language. + * @param array $highlight Tags for highlighting. + * @return mixed Result set + */ + public function search( $queryString, $opts, $highlight ); + + /** + * @param stdClass $resultset + * @return array[] + */ + public function getFacets( $resultset ); + + /** + * @param stdClass $resultset + * @return int + */ + public function getTotalHits( $resultset ); + + /** + * @param stdClass $resultset + * @return array[] + */ + public function getDocuments( $resultset ); +} |