示例#1
0
 public function after(PHPTAL_Php_CodeWriter $codewriter)
 {
     // restore source
     $code = $codewriter->getTranslatorReference() . '->setSource(array_pop($_i18n_sources))';
     $codewriter->pushCode($code);
 }
示例#2
0
 /**
  * @param key - unescaped string (not PHP code) for the key
  */
 private function _getTranslationCode(PHPTAL_Php_CodeWriter $codewriter, $key)
 {
     $code = '';
     if (preg_match_all('/\\$\\{(.*?)\\}/', $key, $m)) {
         array_shift($m);
         $m = array_shift($m);
         foreach ($m as $name) {
             $code .= "\n" . $codewriter->getTranslatorReference() . '->setVar(' . $codewriter->str($name) . ',' . PHPTAL_Php_TalesInternal::compileToPHPExpression($name) . ');';
             // allow more complex TAL expressions
         }
         $code .= "\n";
     }
     // notice the false boolean which indicate that the html is escaped
     // elsewhere looks like an hack doesn't it ? :)
     $code .= 'echo ' . $codewriter->escapeCode($codewriter->getTranslatorReference() . '->translate(' . $codewriter->str($key) . ', false)');
     return $code;
 }
示例#3
0
 public function after(PHPTAL_Php_CodeWriter $codewriter)
 {
     $codewriter->pushCode($codewriter->getTranslatorReference() . '->setVar(' . $codewriter->str($this->expression) . ', ob_get_clean())');
 }
示例#4
0
 public function after(PHPTAL_Php_CodeWriter $codewriter)
 {
     // restore domain
     $code = $codewriter->getTranslatorReference() . '->useDomain(array_pop($_i18n_domains))';
     $codewriter->pushCode($code);
 }