* @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2014 PradoSoft * @license http://www.pradosoft.com/license/ * @package Prado\I18N */ namespace Prado\I18N; use Prado\Exceptions\TException; use Prado\IO\TTextWriter; use Prado\Prado; use Prado\TPropertyValue; use Prado\Web\UI\TControl; /** * 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. * * * {greeting} {name}! * World * Hello * * * * Namespace: System.I18N * * Properties * - Key, string, required. *
Gets or sets the string in TTranslate to substitute. * - Trim, boolean, *
Gets or sets an option to trim the contents of the TParam. * Default is to trim the contents. * * @author Xiang Wei Zhuo * @package Prado\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(); } }