/**
  * 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);
     }
 }
Example #2
0
 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);
 }