summaryrefslogtreecommitdiff
path: root/lib/prado/framework/I18N/TTranslateParameter.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/prado/framework/I18N/TTranslateParameter.php')
-rw-r--r--lib/prado/framework/I18N/TTranslateParameter.php118
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 &copy; 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();
+ }
+}
+