Make OCP\IL10N strict

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2018-02-21 14:32:04 +01:00
parent 4b50fe7560
commit 541056f6c2
No known key found for this signature in database
GPG Key ID: F941078878347C0C
2 changed files with 24 additions and 23 deletions

View File

@ -1,4 +1,5 @@
<?php <?php
declare(strict_types=1);
/** /**
* @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, ownCloud, Inc.
* *
@ -60,7 +61,6 @@ class L10N implements IL10N {
$this->app = $app; $this->app = $app;
$this->lang = $lang; $this->lang = $lang;
$this->translations = [];
foreach ($files as $languageFile) { foreach ($files as $languageFile) {
$this->load($languageFile); $this->load($languageFile);
} }
@ -71,7 +71,7 @@ class L10N implements IL10N {
* *
* @return string language * @return string language
*/ */
public function getLanguageCode() { public function getLanguageCode(): string {
return $this->lang; return $this->lang;
} }
@ -84,7 +84,7 @@ class L10N implements IL10N {
* Returns the translation. If no translation is found, $text will be * Returns the translation. If no translation is found, $text will be
* returned. * returned.
*/ */
public function t($text, $parameters = array()) { public function t(string $text, array $parameters = []): string {
return (string) new L10NString($this, $text, $parameters); return (string) new L10NString($this, $text, $parameters);
} }
@ -103,17 +103,17 @@ class L10N implements IL10N {
* provided by the po file. * provided by the po file.
* *
*/ */
public function n($text_singular, $text_plural, $count, $parameters = array()) { public function n(string $text_singular, string $text_plural, int $count, array $parameters = []): string {
$identifier = "_${text_singular}_::_${text_plural}_"; $identifier = "_${text_singular}_::_${text_plural}_";
if (isset($this->translations[$identifier])) { if (isset($this->translations[$identifier])) {
return (string) new L10NString($this, $identifier, $parameters, $count); return (string) new L10NString($this, $identifier, $parameters, $count);
} else {
if ($count === 1) {
return (string) new L10NString($this, $text_singular, $parameters, $count);
} else {
return (string) new L10NString($this, $text_plural, $parameters, $count);
}
} }
if ($count === 1) {
return (string) new L10NString($this, $text_singular, $parameters, $count);
}
return (string) new L10NString($this, $text_plural, $parameters, $count);
} }
/** /**
@ -138,7 +138,7 @@ class L10N implements IL10N {
* - firstday: Returns the first day of the week (0 sunday - 6 saturday) * - firstday: Returns the first day of the week (0 sunday - 6 saturday)
* - jsdate: Returns the short JS date format * - jsdate: Returns the short JS date format
*/ */
public function l($type, $data = null, $options = array()) { public function l(string $type, $data = null, array $options = []) {
// Use the language of the instance // Use the language of the instance
$locale = $this->getLanguageCode(); $locale = $this->getLanguageCode();
if ($locale === 'sr@latin') { if ($locale === 'sr@latin') {
@ -155,14 +155,14 @@ class L10N implements IL10N {
$value = new \DateTime(); $value = new \DateTime();
if ($data instanceof \DateTime) { if ($data instanceof \DateTime) {
$value = $data; $value = $data;
} else if (is_string($data) && !is_numeric($data)) { } else if (\is_string($data) && !is_numeric($data)) {
$data = strtotime($data); $data = strtotime($data);
$value->setTimestamp($data); $value->setTimestamp($data);
} else if ($data !== null) { } else if ($data !== null) {
$value->setTimestamp($data); $value->setTimestamp($data);
} }
$options = array_merge(array('width' => 'long'), $options); $options = array_merge(['width' => 'long'], $options);
$width = $options['width']; $width = $options['width'];
switch ($type) { switch ($type) {
case 'date': case 'date':
@ -184,7 +184,7 @@ class L10N implements IL10N {
* Called by \OC_L10N_String * Called by \OC_L10N_String
* @return array * @return array
*/ */
public function getTranslations() { public function getTranslations(): array {
return $this->translations; return $this->translations;
} }
@ -194,8 +194,8 @@ class L10N implements IL10N {
* Called by \OC_L10N_String * Called by \OC_L10N_String
* @return string the plural form function * @return string the plural form function
*/ */
public function getPluralFormFunction() { public function getPluralFormFunction(): string {
if (is_null($this->pluralFormFunction)) { if (\is_null($this->pluralFormFunction)) {
$lang = $this->getLanguageCode(); $lang = $this->getLanguageCode();
$this->pluralFormFunction = function($n) use ($lang) { $this->pluralFormFunction = function($n) use ($lang) {
return PluralizationRules::get($n, $lang); return PluralizationRules::get($n, $lang);
@ -206,12 +206,12 @@ class L10N implements IL10N {
} }
/** /**
* @param $translationFile * @param string $translationFile
* @return bool * @return bool
*/ */
protected function load($translationFile) { protected function load(string $translationFile): bool {
$json = json_decode(file_get_contents($translationFile), true); $json = json_decode(file_get_contents($translationFile), true);
if (!is_array($json)) { if (!\is_array($json)) {
$jsonError = json_last_error(); $jsonError = json_last_error();
\OC::$server->getLogger()->warning("Failed to load $translationFile - json error code: $jsonError", ['app' => 'l10n']); \OC::$server->getLogger()->warning("Failed to load $translationFile - json error code: $jsonError", ['app' => 'l10n']);
return false; return false;

View File

@ -1,4 +1,5 @@
<?php <?php
declare(strict_types=1);
/** /**
* @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, ownCloud, Inc.
* *
@ -51,7 +52,7 @@ interface IL10N {
* returned. * returned.
* @since 6.0.0 * @since 6.0.0
*/ */
public function t($text, $parameters = array()); public function t(string $text, array $parameters = []): string;
/** /**
* Translating * Translating
@ -69,7 +70,7 @@ interface IL10N {
* @since 6.0.0 * @since 6.0.0
* *
*/ */
public function n($text_singular, $text_plural, $count, $parameters = array()); public function n(string $text_singular, string $text_plural, int $count, array $parameters = []): string;
/** /**
* Localization * Localization
@ -96,7 +97,7 @@ interface IL10N {
* - params: timestamp (int/string) * - params: timestamp (int/string)
* @since 6.0.0 - parameter $options was added in 8.0.0 * @since 6.0.0 - parameter $options was added in 8.0.0
*/ */
public function l($type, $data, $options = array()); public function l(string $type, $data, array $options = []);
/** /**
@ -105,5 +106,5 @@ interface IL10N {
* @return string language * @return string language
* @since 7.0.0 * @since 7.0.0
*/ */
public function getLanguageCode(); public function getLanguageCode(): string ;
} }