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()); }
/** * Test * * @return void */ public function testInit() { $this->assertNull($this->object->init()); }
/** * 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); }
/** * Localize a text to the locale/culture specified in the globalization handler. * @param string text to be localized. * @param array a set of parameters to substitute. * @param string a different catalogue to find the localize text. * @param string the input AND output charset. * @return string localized text. * @see TTranslate::formatter() * @see TTranslate::init() */ function localize($text, $parameters = array(), $catalogue = null, $charset = null) { $app = pradoGetApplication()->getGlobalization(); $params = array(); foreach ($parameters as $key => $value) { $params['{' . $key . '}'] = $value; } //no translation handler provided if (empty($app->Translation)) { return strtr($text, $params); } Translation::init(); if (empty($catalogue) && isset($app->Translation['catalogue'])) { $catalogue = $app->Translation['catalogue']; } //globalization charset $appCharset = is_null($app) ? '' : $app->Charset; //default charset $defaultCharset = is_null($app) ? 'UTF-8' : $app->getDefaultCharset(); //fall back if (empty($charset)) { $charset = $appCharset; } if (empty($charset)) { $charset = $defaultCharset; } return Translation::formatter()->format($text, $params, $catalogue, $charset); }
/** * Localize a text to the locale/culture specified in the globalization handler. * @param string text to be localized. * @param array a set of parameters to substitute. * @param string a different catalogue to find the localize text. * @param string the output charset. * @return string localized text. * @see TTranslate::formatter() * @see TTranslate::init() */ function localize($text, $parameters = array(), $catalogue = null, $charset = null) { $app = pradoGetApplication()->getGlobalization(); $params = array(); foreach ($parameters as $key => $value) { $params['{' . $key . '}'] = $value; } //no translation handler provided if (empty($app->Translation)) { return strtr($text, $params); } Translation::init(); if (empty($catalogue) && isset($app->Translation['catalogue'])) { $catalogue = $app->Translation['catalogue']; } return Translation::formatter()->format($text, $params, $catalogue, $charset); }