From 8b7717c06b86262d188827fb26a4bfb2e480c256 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 7 Apr 2006 03:26:25 +0000 Subject: Moved localize() into PradoBase. --- framework/PradoBase.php | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'framework/PradoBase.php') diff --git a/framework/PradoBase.php b/framework/PradoBase.php index 59ab5b14..5325005a 100644 --- a/framework/PradoBase.php +++ b/framework/PradoBase.php @@ -519,6 +519,47 @@ class PradoBase require_once(PRADO_DIR.'/Util/TVarDumper.php'); return TVarDumper::dump($var,$depth,$highlight); } + + /** + * 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() + */ + public static function localize($text, $parameters=array(), $catalogue=null, $charset=null) + { + Prado::using('System.I18N.Translation'); + $app = Prado::getApplication()->getGlobalization(); + + $params = array(); + foreach($parameters as $key => $value) + $params['{'.$key.'}'] = $value; + + //no translation handler provided + if(($config = $app->getTranslationConfiguration())===null) + return strtr($text, $params); + + Translation::init(); + + if(empty($catalogue) && isset($config['catalogue'])) + $catalogue = $config['catalogue']; + + //globalization charset + $appCharset = $app===null ? '' : $app->getCharset(); + + //default charset + $defaultCharset = ($app===null) ? 'UTF-8' : $app->getDefaultCharset(); + + //fall back + if(empty($charset)) $charset = $appCharset; + if(empty($charset)) $charset = $defaultCharset; + + return Translation::formatter()->format($text,$params,$catalogue,$charset); + } } /** -- cgit v1.2.3