diff options
Diffstat (limited to 'lib/prado/framework/I18N/TTranslateParameter.php')
-rw-r--r-- | lib/prado/framework/I18N/TTranslateParameter.php | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/lib/prado/framework/I18N/TTranslateParameter.php b/lib/prado/framework/I18N/TTranslateParameter.php new file mode 100644 index 0000000..a12546e --- /dev/null +++ b/lib/prado/framework/I18N/TTranslateParameter.php @@ -0,0 +1,118 @@ +<?php +/** + * TTranslateParameter component. + * + * @author Wei Zhuo <weizhuo[at]gmail[dot]com> + * @link https://github.com/pradosoft/prado + * @copyright Copyright © 2005-2015 The PRADO Group + * @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT + * @package System.I18N + */ + +/** + * TTranslateParameter component should be used inside the TTranslate component to + * allow parameter substitution. + * + * For example, the strings "{greeting}" and "{name}" will be replace + * with the values of "Hello" and "World", respectively. + * The substitution string must be enclose with "{" and "}". + * The parameters can be further translated by using TTranslate. + * <code> + * <com:TTranslate> + * {greeting} {name}! + * <com:TTranslateParameter Key="name">World</com:TTranslateParameter> + * <com:TTranslateParameter Key="greeting">Hello</com:TTranslateParameter> + * </com:TTranslate> + * </code> + * + * Namespace: System.I18N + * + * Properties + * - <b>Key</b>, string, <b>required</b>. + * <br>Gets or sets the string in TTranslate to substitute. + * - <b>Trim</b>, boolean, + * <br>Gets or sets an option to trim the contents of the TParam. + * Default is to trim the contents. + * + * @author Xiang Wei Zhuo <weizhuo[at]gmail[dot]com> + * @version v3.0, last update on Friday, 6 January 2006 + * @package System.I18N + */ +class TTranslateParameter extends TControl +{ + /** + * The substitution key. + * @var string + */ + protected $key; + + /** + * To trim or not to trim the contents. + * @var boolean + */ + protected $trim = true; + + + /** + * Get the parameter substitution key. + * @return string substitution key. + */ + public function getKey() + { + if(empty($this->key)) + throw new TException('The Key property must be specified.'); + return $this->key; + } + + /** + * Set the parameter substitution key. + * @param string substitution key. + */ + public function setKey($value) + { + $this->key = $value; + } + + /** + * Set the option to trim the contents. + * @param boolean trim or not. + */ + public function setTrim($value) + { + $this->trim = TPropertyValue::ensureBoolean($value); + } + + /** + * Trim the content or not. + * @return boolean trim or not. + */ + public function getTrim() + { + return $this->trim; + } + + public function getValue() + { + return $this->getViewState('Value', ''); + } + + public function setValue($value) + { + $this->setViewState('Value', $value, ''); + } + + /** + * @return string parameter contents. + */ + public function getParameter() + { + $value = $this->getValue(); + if(strlen($value) > 0) + return $value; + $htmlWriter = Prado::createComponent($this->GetResponse()->getHtmlWriterType(), new TTextWriter()); + $this->renderControl($htmlWriter); + return $this->getTrim() ? + trim($htmlWriter->flush()) : $htmlWriter->flush(); + } +} + |