aboutsummaryrefslogtreecommitdiff
path: root/cli/i18n
diff options
context:
space:
mode:
authorGravatar Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com> 2023-11-16 22:43:00 +0100
committerGravatar GitHub <noreply@github.com> 2023-11-16 22:43:00 +0100
commit30c7a61a9b410f023c56ef19b9389a61647d8768 (patch)
treebb58408980ce5b86f1d2b4a9be29d55b2d46dbb1 /cli/i18n
parentee99e7e2cc228500efc1b539954c0ca6cd4c146d (diff)
Use strict_types (#5830)
* Little's optimisations and booleans in conditions * Apply strict type * Apply strict type * Apply strict type * Fix multiple bugs with PHP 8.2 and 8.3 * Many declares missing, more errors fixed * Apply strict type * Another approach * Stronger typing for Minz_Session * Fix case of SQLite --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'cli/i18n')
-rw-r--r--cli/i18n/I18nCompletionValidator.php1
-rw-r--r--cli/i18n/I18nData.php1
-rw-r--r--cli/i18n/I18nFile.php11
-rw-r--r--cli/i18n/I18nUsageValidator.php5
-rw-r--r--cli/i18n/I18nValidatorInterface.php1
-rw-r--r--cli/i18n/I18nValue.php7
6 files changed, 18 insertions, 8 deletions
diff --git a/cli/i18n/I18nCompletionValidator.php b/cli/i18n/I18nCompletionValidator.php
index 6240580c4..4a8e54759 100644
--- a/cli/i18n/I18nCompletionValidator.php
+++ b/cli/i18n/I18nCompletionValidator.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
require_once __DIR__ . '/I18nValidatorInterface.php';
diff --git a/cli/i18n/I18nData.php b/cli/i18n/I18nData.php
index 957ec2887..6e87e1d7e 100644
--- a/cli/i18n/I18nData.php
+++ b/cli/i18n/I18nData.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
class I18nData {
diff --git a/cli/i18n/I18nFile.php b/cli/i18n/I18nFile.php
index 5a0c74aaa..8932bff57 100644
--- a/cli/i18n/I18nFile.php
+++ b/cli/i18n/I18nFile.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
require_once __DIR__ . '/I18nValue.php';
@@ -27,7 +28,7 @@ class I18nFile {
}
/**
- * @param array<string,array<array<string>>> $i18n
+ * @param array<string,array<string,array<string,I18nValue>>> $i18n
*/
public function dump(array $i18n): void {
foreach ($i18n as $language => $file) {
@@ -65,7 +66,7 @@ class I18nFile {
} catch (ParseError $ex) {
if (defined('STDERR')) {
fwrite(STDERR, "Error while processing: $filename\n");
- fwrite(STDERR, $ex);
+ fwrite(STDERR, $ex->getMessage());
}
die(1);
}
@@ -108,7 +109,7 @@ class I18nFile {
* The first key is dropped since it represents the filename and we have
* no use of it.
*
- * @param array<string> $translation
+ * @param array<string,I18nValue> $translation
* @return array<string,array<string,I18nValue>>
*/
private function unflatten(array $translation): array {
@@ -118,7 +119,7 @@ class I18nFile {
foreach ($translation as $compoundKey => $value) {
$keys = explode('.', $compoundKey);
array_shift($keys);
- eval("\$a['" . implode("']['", $keys) . "'] = '" . addcslashes($value, "'") . "';");
+ eval("\$a['" . implode("']['", $keys) . "'] = '" . addcslashes($value->__toString(), "'") . "';");
}
return $a;
@@ -131,7 +132,7 @@ class I18nFile {
* translation file. The array is first converted to a string then some
* formatting regexes are applied to match the original content.
*
- * @param array<string> $translation
+ * @param array<string,I18nValue> $translation
*/
private function format(array $translation): string {
$translation = var_export($this->unflatten($translation), true);
diff --git a/cli/i18n/I18nUsageValidator.php b/cli/i18n/I18nUsageValidator.php
index 49cc266f9..1267cd66d 100644
--- a/cli/i18n/I18nUsageValidator.php
+++ b/cli/i18n/I18nUsageValidator.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
require_once __DIR__ . '/I18nValidatorInterface.php';
@@ -6,14 +7,14 @@ class I18nUsageValidator implements I18nValidatorInterface {
/** @var array<string> */
private array $code;
- /** @var array<string,array<string,string>> */
+ /** @var array<string,array<string,I18nValue>> */
private array $reference;
private int $totalEntries = 0;
private int $failedEntries = 0;
private string $result = '';
/**
- * @param array<string,array<string,string>> $reference
+ * @param array<string,array<string,I18nValue>> $reference
* @param array<string> $code
*/
public function __construct(array $reference, array $code) {
diff --git a/cli/i18n/I18nValidatorInterface.php b/cli/i18n/I18nValidatorInterface.php
index e6f5f7cdd..9266489f6 100644
--- a/cli/i18n/I18nValidatorInterface.php
+++ b/cli/i18n/I18nValidatorInterface.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
interface I18nValidatorInterface {
diff --git a/cli/i18n/I18nValue.php b/cli/i18n/I18nValue.php
index 4a1ddaeee..22317e1ae 100644
--- a/cli/i18n/I18nValue.php
+++ b/cli/i18n/I18nValue.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
class I18nValue {
private const STATE_DIRTY = 'dirty';
@@ -13,7 +14,11 @@ class I18nValue {
private string $value;
private ?string $state = null;
- public function __construct(string $data) {
+ /** @param I18nValue|string $data */
+ public function __construct($data) {
+ if ($data instanceof I18nValue) {
+ $data = $data->__toString();
+ }
$data = explode(' -> ', $data);
$this->value = array_shift($data);