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;
 }