aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2021-03-30 20:19:41 +0200
committerJoas Schilling <coding@schilljs.com>2021-04-20 16:42:04 +0200
commita4c6749b020d5cb4e63a54b0aa9ca5ebe961ee4d (patch)
tree5bd5a342cec2acbac1e09558cdd96c2c921c6391
parent157147cb8eaa1800a8473db547c6964a5205e83d (diff)
downloadnextcloud-server-a4c6749b020d5cb4e63a54b0aa9ca5ebe961ee4d.tar.gz
nextcloud-server-a4c6749b020d5cb4e63a54b0aa9ca5ebe961ee4d.zip
Add a check for the pipe character
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r--build/translation-checker.php5
-rw-r--r--lib/private/L10N/L10NString.php6
2 files changed, 11 insertions, 0 deletions
diff --git a/build/translation-checker.php b/build/translation-checker.php
index 1f7ec343af5..2c3a7856d81 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 0eadadf9be1..ae90f52a02d 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;