From a4c6749b020d5cb4e63a54b0aa9ca5ebe961ee4d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 30 Mar 2021 20:19:41 +0200 Subject: [PATCH] Add a check for the pipe character Signed-off-by: Joas Schilling --- build/translation-checker.php | 5 +++++ lib/private/L10N/L10NString.php | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/build/translation-checker.php b/build/translation-checker.php index 1f7ec343af..2c3a7856d8 100644 --- a/build/translation-checker.php +++ b/build/translation-checker.php @@ -48,6 +48,11 @@ foreach ($directories as $dir) { $content = file_get_contents($file->getPathname()); $json = json_decode($content, true); + $translations = json_encode($json['translations']); + if (strpos($content, '|') !== false) { + $errors[] = $file->getPathname() . "\n" . ' ' . 'Contains a | in the translations' . "\n"; + } + if (json_last_error() !== JSON_ERROR_NONE) { $errors[] = $file->getPathname() . "\n" . ' ' . json_last_error_msg() . "\n"; } else { diff --git a/lib/private/L10N/L10NString.php b/lib/private/L10N/L10NString.php index 0eadadf9be..ae90f52a02 100644 --- a/lib/private/L10N/L10NString.php +++ b/lib/private/L10N/L10NString.php @@ -59,6 +59,12 @@ class L10NString implements \JsonSerializable { public function __toString(): string { $translations = $this->l10n->getTranslations(); + + $pipeCheck = implode('', $translations[$this->text]); + if (strpos($pipeCheck, '|') !== false) { + return 'Can not use pipe character in translations'; + } + $identityTranslator = $this->l10n->getIdentityTranslator(); $parameters = $this->parameters;