/** * Initialize the TTranslate translation components */ public static function init() { //initialized the default class wide formatter if (is_null(self::$formatter)) { $app = pradoGetApplication()->getGlobalization(); //var_dump($app); $source = MessageSource::factory($app->Translation['type'], $app->Translation['source'], $app->Translation['filename']); $source->setCulture($app->Culture); if ($app->Cache) { $source->setCache(new MessageCache($app->Cache)); } self::$formatter = new MessageFormat($source, $app->Charset); } }
public static function localize($text, $parameters = array(), $catalogue = null, $charset = null) { Prado::using('System.I18N.Translation'); $app = Prado::getApplication()->getGlobalization(false); $params = array(); foreach ($parameters as $key => $value) { $params['{' . $key . '}'] = $value; } if ($app === null || ($config = $app->getTranslationConfiguration()) === null) { return strtr($text, $params); } if ($catalogue === null) { $catalogue = isset($config['catalogue']) ? $config['catalogue'] : 'messages'; } Translation::init($catalogue); $appCharset = $app === null ? '' : $app->getCharset(); $defaultCharset = $app === null ? 'UTF-8' : $app->getDefaultCharset(); if (empty($charset)) { $charset = $appCharset; } if (empty($charset)) { $charset = $defaultCharset; } return Translation::formatter($catalogue)->format($text, $params, $catalogue, $charset); }
/** * Translates the text with subsititution. * @param string text for translation * @param array list of substitutions * @return string translated text */ protected function translateText($text, $subs) { $app = $this->getApplication()->getGlobalization(); //no translation handler provided if (($config = $app->getTranslationConfiguration()) === null) { return strtr($text, $subs); } $catalogue = $this->getCatalogue(); if (empty($catalogue) && isset($config['catalogue'])) { $catalogue = $config['catalogue']; } if (empty($catalogue)) { $catalogue = 'messages'; } Translation::init($catalogue); $key = $this->getKey(); if (!empty($key)) { $text = $key; } //translate it return Translation::formatter($catalogue)->format($text, $subs, $catalogue, $this->getCharset()); }
/** * Display the translated string. */ protected function renderBody() { $app = $this->Application->getGlobalization(); //get the text from either Property Text or the body $text = $this->getText(); if (strlen($text) == 0) { $text = parent::renderBody(); } //trim it if ($this->doTrim()) { $text = trim($text); } //no translation handler provided if (empty($app->Translation)) { return strtr($text, $this->getParameters()); } Translation::init(); $catalogue = $this->getCatalogue(); if (empty($catalogue) && isset($app->Translation['catalogue'])) { $catalogue = $app->Translation['catalogue']; } $key = $this->getKey(); if (!empty($key)) { $text = $key; } $charset = $this->getCharset(); if (empty($charset)) { $charset = 'UTF-8'; } //translate it return Translation::formatter()->format($text, $this->getParameters(), $catalogue, $charset); }