public function getCheckBox() { $this->mustBeKnownMessage(); global $wgTranslateDocumentationLanguageCode; $context = RequestContext::getMain(); $title = $context->getOutput()->getTitle(); list($alias, ) = SpecialPageFactory::resolveAlias($title->getText()); $tux = SpecialTranslate::isBeta($context->getRequest()) && $title->isSpecialPage() && $alias === 'Translate'; $formattedChecks = $tux ? FormatJson::encode(array()) : Html::element('div', array('class' => 'mw-translate-messagechecks')); $page = $this->handle->getKey(); $translation = $this->getTranslation(); $code = $this->handle->getCode(); $en = $this->getDefinition(); if (strval($translation) === '') { return $formattedChecks; } if ($code === $wgTranslateDocumentationLanguageCode) { return $formattedChecks; } // We need to get the primary group of the message. It may differ from // the supplied group (aggregate groups, dynamic groups). $checker = $this->handle->getGroup()->getChecker(); if (!$checker) { return $formattedChecks; } $message = new FatMessage($page, $en); // Take the contents from edit field as a translation $message->setTranslation($translation); $checks = $checker->checkMessage($message, $code); if (!count($checks)) { return $formattedChecks; } $checkMessages = array(); foreach ($checks as $checkParams) { $key = array_shift($checkParams); $checkMessages[] = $context->msg($key, $checkParams)->parse(); } if ($tux) { $formattedChecks = FormatJson::encode($checkMessages); } else { $formattedChecks = Html::rawElement('div', array('class' => 'mw-translate-messagechecks'), TranslateUtils::fieldset($context->msg('translate-edit-warnings')->escaped(), implode('<hr />', $checkMessages), array('class' => 'mw-sp-translate-edit-warnings'))); } return $formattedChecks; }
/** * Hook: MakeGlobalVariablesScript * * Adds $wgTranslateDocumentationLanguageCode to ResourceLoader configuration * when Special:Translate is shown. */ public static function addConfig(&$vars, OutputPage $out) { $request = $out->getRequest(); $title = $out->getTitle(); list($alias, ) = SpecialPageFactory::resolveAlias($title->getText()); if (SpecialTranslate::isBeta($request) && $title->isSpecialPage() && ($alias === 'Translate' || $alias === 'TranslationStash' || $alias === 'SearchTranslations')) { global $wgTranslateDocumentationLanguageCode, $wgTranslatePermissionUrl, $wgTranslateUseSandbox; $vars['TranslateRight'] = $out->getUser()->isAllowed('translate'); $vars['TranslateMessageReviewRight'] = $out->getUser()->isAllowed('translate-messagereview'); $vars['DeleteRight'] = $out->getUser()->isAllowed('delete'); $vars['wgTranslateDocumentationLanguageCode'] = $wgTranslateDocumentationLanguageCode; $vars['wgTranslatePermissionUrl'] = $wgTranslatePermissionUrl; $vars['wgTranslateUseSandbox'] = $wgTranslateUseSandbox; } return true; }