/** * @param string $message * @param int|null $count * @param array $args * @return \Nette\Utils\Html|string */ public function translate($message, $count = null, array $args = array()) { $result = $this->translator->translate($message, $count, $args); $last = $this->translator->getLastTranslated(); if (!$last) { return $result; } if ($this->translator->isDebugMode()) { $result .= ' <small><i>(' . $last . ')</i></small>'; } return Html::el()->setHtml($result)->style(array('color' => 'red')); }
/** * @return string */ public function getPanel() { $groups = array(); $empty = true; $translated = $this->translator->getTranslated(); foreach ($this->groups as $name => $pattern) { $group = array(); $translated = array_filter($translated, function ($translation) use(&$group, $pattern) { if (preg_match('/' . $pattern . '/', $translation)) { $group[] = $translation; return false; } else { return true; } }); if ($empty && !empty($group)) { $empty = false; } $groups[$name] = array('collapsed' => true, 'data' => $group); } $groups['Untranslated'] = array('collapsed' => false, 'data' => $this->translator->getUntranslated()); $groups['Translated'] = array('collapsed' => false, 'data' => $translated); if (count($groups['Untranslated']['data']) === 0 && count($groups['Translated']['data']) === 0 && $empty) { return null; } $translator = $this->translator; $link = $this->application->getPresenter()->link('this'); $xhrHeader = self::XHR_HEADER; $ajaxActionKey = self::AJAX_ACTION_KEY; $ajaxMessageKey = self::AJAX_MESSAGE_KEY; $ajaxTranslationKey = self::AJAX_TRANSLATION_KEY; $ajaxActionLoad = self::AJAX_ACTION_LOAD; $ajaxActionEdit = self::AJAX_ACTION_EDIT; $cookieDebugKey = self::COOKIE_DEBUG_KEY; $checkMessage = function ($message) { return preg_match('/^[a-zA-Z0-9._]+$/', $message) > 0; }; ob_start(); require __DIR__ . '/panel.phtml'; return ob_get_clean(); }