From a9077208174856bae2ce219f00a8c825d58130e1 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Mon, 24 Jul 2017 20:17:20 +0200 Subject: Move \OC_L10N_String to proper \OC\L10N\L10NString * Proper namespacing * Fixed phpdocs Signed-off-by: Roeland Jago Douma --- lib/private/L10N/L10N.php | 8 ++-- lib/private/L10N/L10NString.php | 87 ++++++++++++++++++++++++++++++++++++++ lib/private/legacy/json.php | 2 +- lib/private/legacy/l10n/string.php | 79 ---------------------------------- lib/public/IL10N.php | 4 +- lib/public/Template.php | 2 +- 6 files changed, 95 insertions(+), 87 deletions(-) create mode 100644 lib/private/L10N/L10NString.php delete mode 100644 lib/private/legacy/l10n/string.php diff --git a/lib/private/L10N/L10N.php b/lib/private/L10N/L10N.php index c83b6ea3960..b933048982f 100644 --- a/lib/private/L10N/L10N.php +++ b/lib/private/L10N/L10N.php @@ -82,7 +82,7 @@ class L10N implements IL10N { * returned. */ public function t($text, $parameters = array()) { - return (string) new \OC_L10N_String($this, $text, $parameters); + return (string) new L10NString($this, $text, $parameters); } /** @@ -103,12 +103,12 @@ class L10N implements IL10N { public function n($text_singular, $text_plural, $count, $parameters = array()) { $identifier = "_${text_singular}_::_${text_plural}_"; if (isset($this->translations[$identifier])) { - return (string) new \OC_L10N_String($this, $identifier, $parameters, $count); + return (string) new L10NString($this, $identifier, $parameters, $count); } else { if ($count === 1) { - return (string) new \OC_L10N_String($this, $text_singular, $parameters, $count); + return (string) new L10NString($this, $text_singular, $parameters, $count); } else { - return (string) new \OC_L10N_String($this, $text_plural, $parameters, $count); + return (string) new L10NString($this, $text_plural, $parameters, $count); } } } diff --git a/lib/private/L10N/L10NString.php b/lib/private/L10N/L10NString.php new file mode 100644 index 00000000000..fd2f14f9f28 --- /dev/null +++ b/lib/private/L10N/L10NString.php @@ -0,0 +1,87 @@ + + * @author Bernhard Posselt + * @author Jakob Sack + * @author Joas Schilling + * @author Jörn Friedrich Dreyer + * @author Morris Jobke + * @author Thomas Müller + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OC\L10N; + +class L10NString implements \JsonSerializable { + /** @var \OC\L10N\L10N */ + protected $l10n; + + /** @var string */ + protected $text; + + /** @var array */ + protected $parameters; + + /** @var integer */ + protected $count; + + /** + * @param \OC\L10N\L10N $l10n + * @param string|string[] $text + * @param array $parameters + * @param int $count + */ + public function __construct(\OC\L10N\L10N $l10n, $text, $parameters, $count = 1) { + $this->l10n = $l10n; + $this->text = $text; + $this->parameters = $parameters; + $this->count = $count; + } + + /** + * @return string + */ + public function __toString() { + $translations = $this->l10n->getTranslations(); + + $text = $this->text; + if(array_key_exists($this->text, $translations)) { + if(is_array($translations[$this->text])) { + $fn = $this->l10n->getPluralFormFunction(); + $id = $fn($this->count); + $text = $translations[$this->text][$id]; + } + else{ + $text = $translations[$this->text]; + } + } + + // Replace %n first (won't interfere with vsprintf) + $text = str_replace('%n', $this->count, $text); + return vsprintf($text, $this->parameters); + } + + + /** + * @return string + */ + public function jsonSerialize() { + return $this->__toString(); + } +} diff --git a/lib/private/legacy/json.php b/lib/private/legacy/json.php index 0e598a68ee1..9b90daccac9 100644 --- a/lib/private/legacy/json.php +++ b/lib/private/legacy/json.php @@ -159,7 +159,7 @@ class OC_JSON{ * Convert OC_L10N_String to string, for use in json encodings */ protected static function to_string(&$value) { - if ($value instanceof OC_L10N_String) { + if ($value instanceof \OC\L10N\L10NString) { $value = (string)$value; } } diff --git a/lib/private/legacy/l10n/string.php b/lib/private/legacy/l10n/string.php deleted file mode 100644 index 1410db6d730..00000000000 --- a/lib/private/legacy/l10n/string.php +++ /dev/null @@ -1,79 +0,0 @@ - - * @author Bernhard Posselt - * @author Jakob Sack - * @author Joas Schilling - * @author Jörn Friedrich Dreyer - * @author Morris Jobke - * @author Thomas Müller - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -class OC_L10N_String implements JsonSerializable { - /** @var \OC\L10N\L10N */ - protected $l10n; - - /** @var string */ - protected $text; - - /** @var array */ - protected $parameters; - - /** @var integer */ - protected $count; - - /** - * @param \OC\L10N\L10N $l10n - * @param string|string[] $text - * @param array $parameters - * @param int $count - */ - public function __construct(\OC\L10N\L10N $l10n, $text, $parameters, $count = 1) { - $this->l10n = $l10n; - $this->text = $text; - $this->parameters = $parameters; - $this->count = $count; - } - - public function __toString() { - $translations = $this->l10n->getTranslations(); - - $text = $this->text; - if(array_key_exists($this->text, $translations)) { - if(is_array($translations[$this->text])) { - $fn = $this->l10n->getPluralFormFunction(); - $id = $fn($this->count); - $text = $translations[$this->text][$id]; - } - else{ - $text = $translations[$this->text]; - } - } - - // Replace %n first (won't interfere with vsprintf) - $text = str_replace('%n', $this->count, $text); - return vsprintf($text, $this->parameters); - } - - - public function jsonSerialize() { - return $this->__toString(); - } -} diff --git a/lib/public/IL10N.php b/lib/public/IL10N.php index 0dfe28c2ce8..7856a74219d 100644 --- a/lib/public/IL10N.php +++ b/lib/public/IL10N.php @@ -47,7 +47,7 @@ interface IL10N { * Translating * @param string $text The text we need a translation for * @param array $parameters default:array() Parameters for sprintf - * @return \OC_L10N_String Translation or the same text + * @return string Translation or the same text * * Returns the translation. If no translation is found, $text will be * returned. @@ -61,7 +61,7 @@ interface IL10N { * @param string $text_plural the string to translate for n objects * @param integer $count Number of objects * @param array $parameters default:array() Parameters for sprintf - * @return \OC_L10N_String Translation or the same text + * @return string Translation or the same text * * Returns the translation. If no translation is found, $text will be * returned. %n will be replaced with the number of objects. diff --git a/lib/public/Template.php b/lib/public/Template.php index 85c60cfb0a2..3dcee14d880 100644 --- a/lib/public/Template.php +++ b/lib/public/Template.php @@ -102,7 +102,7 @@ function human_file_size($bytes) { * Return the relative date in relation to today. Returns something like "last hour" or "two month ago" * @param int $timestamp unix timestamp * @param boolean $dateOnly - * @return \OC_L10N_String human readable interpretation of the timestamp + * @return string human readable interpretation of the timestamp * * @deprecated 8.0.0 Use \OCP\Template::relative_modified_date() instead */ -- cgit v1.2.3