diff options
Diffstat (limited to 'cli')
28 files changed, 212 insertions, 2075 deletions
diff --git a/cli/check.translation.php b/cli/check.translation.php index 12655fc8e..38bb83af5 100644 --- a/cli/check.translation.php +++ b/cli/check.translation.php @@ -3,12 +3,10 @@ require_once __DIR__ . '/i18n/I18nCompletionValidator.php'; require_once __DIR__ . '/i18n/I18nData.php'; require_once __DIR__ . '/i18n/I18nFile.php'; -require_once __DIR__ . '/i18n/I18nIgnoreFile.php'; require_once __DIR__ . '/i18n/I18nUsageValidator.php'; $i18nFile = new I18nFile(); -$i18nIgnoreFile = new I18nIgnoreFile(); -$i18nData = new I18nData($i18nFile->load(), $i18nIgnoreFile->load()); +$i18nData = new I18nData($i18nFile->load()); $options = getopt("dhl:r"); @@ -30,14 +28,10 @@ $report = array(); foreach ($languages as $language) { if ($language === $i18nData::REFERENCE_LANGUAGE) { $i18nValidator = new I18nUsageValidator($i18nData->getReferenceLanguage(), findUsedTranslations()); - $isValidated = $i18nValidator->validate(include __DIR__ . '/i18n/ignore/' . $language . '.php') && $isValidated; + $isValidated = $i18nValidator->validate() && $isValidated; } else { $i18nValidator = new I18nCompletionValidator($i18nData->getReferenceLanguage(), $i18nData->getLanguage($language)); - if (file_exists(__DIR__ . '/i18n/ignore/' . $language . '.php')) { - $isValidated = $i18nValidator->validate(include __DIR__ . '/i18n/ignore/' . $language . '.php') && $isValidated; - } else { - $isValidated = $i18nValidator->validate(null) && $isValidated; - } + $isValidated = $i18nValidator->validate() && $isValidated; } $report[$language] = sprintf('%-5s - %s', $language, $i18nValidator->displayReport()); @@ -87,12 +81,14 @@ function findUsedTranslations() { * Output help message. */ function help() { - $help = <<<HELP + $file = str_replace(__DIR__ . '/', '', __FILE__); + + echo <<<HELP NAME - %s + $file SYNOPSIS - php %s [OPTION]... + php $file [OPTION]... DESCRIPTION Check if translation files have missing keys or missing translations. @@ -103,7 +99,5 @@ DESCRIPTION -r display completion report. HELP; - $file = str_replace(__DIR__ . '/', '', __FILE__); - echo sprintf($help, $file, $file); exit; } diff --git a/cli/i18n/I18nCompletionValidator.php b/cli/i18n/I18nCompletionValidator.php index 3287a2500..ee4ab9f78 100644 --- a/cli/i18n/I18nCompletionValidator.php +++ b/cli/i18n/I18nCompletionValidator.php @@ -23,23 +23,22 @@ class I18nCompletionValidator implements I18nValidatorInterface { return $this->result; } - /** - * @param array<string>|null $ignore - */ - public function validate($ignore) { + public function validate() { foreach ($this->reference as $file => $data) { - foreach ($data as $key => $value) { + foreach ($data as $refKey => $refValue) { $this->totalEntries++; - if (is_array($ignore) && in_array($key, $ignore)) { - $this->passEntries++; + if (!array_key_exists($refKey, $this->language[$file])) { + $this->result .= "Missing key $refKey" . PHP_EOL; continue; } - if (!array_key_exists($key, $this->language[$file])) { - $this->result .= sprintf('Missing key %s', $key) . PHP_EOL; + + $value = $this->language[$file][$refKey]; + if ($value->isIgnore()) { + $this->passEntries++; continue; } - if ($value === $this->language[$file][$key]) { - $this->result .= sprintf('Untranslated key %s - %s', $key, $value) . PHP_EOL; + if ($refValue->equal($value)) { + $this->result .= "Untranslated key $refKey - $refValue" . PHP_EOL; continue; } $this->passEntries++; diff --git a/cli/i18n/I18nData.php b/cli/i18n/I18nData.php index 2e5e373f8..6656d45cd 100644 --- a/cli/i18n/I18nData.php +++ b/cli/i18n/I18nData.php @@ -4,68 +4,33 @@ class I18nData { const REFERENCE_LANGUAGE = 'en'; - private $data = array(); - private $ignore = array(); + private $data = []; - public function __construct($data, $ignore) { + public function __construct(array $data) { $this->data = $data; - $this->ignore = $ignore; - $this->synchonizeKeys(); + $this->addMissingKeysFromReference(); + $this->removeExtraKeysFromOtherLanguages(); + $this->processValueStates(); } public function getData() { - $output = array(); - $reference = $this->getReferenceLanguage(); - $languages = $this->getNonReferenceLanguages(); - - foreach ($reference as $file => $values) { - foreach ($values as $key => $value) { - $output[static::REFERENCE_LANGUAGE][$file][$key] = $value; - foreach ($languages as $language) { - if ($this->data[$language][$file][$key] !== $value) { - // This value is translated, there is no need to flag it. - $output[$language][$file][$key] = $this->data[$language][$file][$key]; - } elseif (array_key_exists($language, $this->ignore) && in_array($key, $this->ignore[$language])) { - // This value is ignored, there is no need to flag it. - $output[$language][$file][$key] = $this->data[$language][$file][$key]; - } else { - // This value is not translated nor ignored, it must be flagged. - $output[$language][$file][$key] = "{$value} -> todo"; - } - } - } - } - - return $output; - } - - public function getIgnore() { - $ignore = array(); - - foreach ($this->ignore as $language => $keys) { - sort($keys); - $ignore[$language] = $keys; - } - - return $ignore; - } - - private function synchonizeKeys() { - $this->addMissingKeysFromReference(); - $this->removeExtraKeysFromOtherLanguages(); - $this->removeUnknownIgnoreKeys(); + return $this->data; } private function addMissingKeysFromReference() { $reference = $this->getReferenceLanguage(); $languages = $this->getNonReferenceLanguages(); - foreach ($reference as $file => $values) { - foreach ($values as $key => $value) { + foreach ($reference as $file => $refValues) { + foreach ($refValues as $key => $refValue) { foreach ($languages as $language) { if (!array_key_exists($key, $this->data[$language][$file])) { - $this->data[$language][$file][$key] = $value; + $this->data[$language][$file][$key] = clone $refValue; + } + $value = $this->data[$language][$file][$key]; + if ($refValue->equal($value) && !$value->isIgnore()) { + $value->markAsTodo(); } } } @@ -85,12 +50,22 @@ class I18nData { } } - private function removeUnknownIgnoreKeys() { + private function processValueStates() { $reference = $this->getReferenceLanguage(); - foreach ($this->ignore as $language => $keys) { - foreach ($keys as $index => $key) { - if (!array_key_exists($this->getFilenamePrefix($key), $reference) || !array_key_exists($key, $reference[$this->getFilenamePrefix($key)])) { - unset($this->ignore[$language][$index]); + $languages = $this->getNonReferenceLanguages(); + + foreach ($reference as $file => $refValues) { + foreach ($refValues as $key => $refValue) { + foreach ($languages as $language) { + $value = $this->data[$language][$file][$key]; + if ($refValue->equal($value) && !$value->isIgnore()) { + $value->markAsTodo(); + continue; + } + if (!$refValue->equal($value) && $value->isTodo()) { + $value->markAsDirty(); + continue; + } } } } @@ -220,10 +195,13 @@ class I18nData { // To create an array, we need to change the key by appending an empty section. foreach ($this->getAvailableLanguages() as $language) { $parentValue = $this->data[$language][$this->getFilenamePrefix($parentKey)][$parentKey]; - $this->data[$language][$this->getFilenamePrefix($this->getEmptySibling($parentKey))][$this->getEmptySibling($parentKey)] = $parentValue; + $this->data[$language][$this->getFilenamePrefix($this->getEmptySibling($parentKey))][$this->getEmptySibling($parentKey)] = + new I18nValue($parentValue); } } + $value = new I18nValue($value); + $value->markAsTodo(); foreach ($this->getAvailableLanguages() as $language) { if (!array_key_exists($key, $this->data[$language][$this->getFilenamePrefix($key)])) { $this->data[$language][$this->getFilenamePrefix($key)][$key] = $value; @@ -251,6 +229,8 @@ class I18nData { !array_key_exists($key, $this->data[static::REFERENCE_LANGUAGE][$this->getFilenamePrefix($key)])) { throw new Exception('The selected key does not exist for the selected language.'); } + + $value = new I18nValue($value); if (static::REFERENCE_LANGUAGE === $language) { $previousValue = $this->data[static::REFERENCE_LANGUAGE][$this->getFilenamePrefix($key)][$key]; foreach ($this->getAvailableLanguages() as $lang) { @@ -282,9 +262,6 @@ class I18nData { if (array_key_exists($key, $this->data[$language][$this->getFilenamePrefix($key)])) { unset($this->data[$language][$this->getFilenamePrefix($key)][$key]); } - if (array_key_exists($language, $this->ignore) && $position = array_search($key, $this->ignore[$language])) { - unset($this->ignore[$language][$position]); - } } if ($this->isOnlyChild($key)) { @@ -305,24 +282,16 @@ class I18nData { * @param boolean $reverse */ public function ignore($key, $language, $reverse = false) { - if (!array_key_exists($language, $this->ignore)) { - $this->ignore[$language] = array(); - } - - $index = array_search($key, $this->ignore[$language]); - if (false !== $index && $reverse) { - unset($this->ignore[$language][$index]); - return; - } - if (false !== $index && !$reverse) { - return; + $value = $this->data[$language][$this->getFilenamePrefix($key)][$key]; + if ($reverse) { + $value->markAsIgnore(); + } else { + $value->unmarkAsIgnore(); } - - $this->ignore[$language][] = $key; } /** - *Ignore all unmodified keys from a language, or reverse it. + * Ignore all unmodified keys from a language, or reverse it. * * @param string $language * @param boolean $reverse @@ -332,7 +301,7 @@ class I18nData { foreach ($this->getReferenceLanguage() as $file => $ref_language) { foreach ($ref_language as $key => $ref_value) { if (array_key_exists($key, $my_language[$file])) { - if($ref_value == $my_language[$file][$key]) { + if($ref_value->equal($my_language[$file][$key])) { $this->ignore($key, $language, $reverse); } } diff --git a/cli/i18n/I18nFile.php b/cli/i18n/I18nFile.php index 222d07692..50b2d5023 100644 --- a/cli/i18n/I18nFile.php +++ b/cli/i18n/I18nFile.php @@ -1,8 +1,8 @@ <?php -require_once __DIR__ . '/I18nFileInterface.php'; +require_once __DIR__ . '/I18nValue.php'; -class I18nFile implements I18nFileInterface{ +class I18nFile { private $i18nPath; @@ -22,7 +22,8 @@ class I18nFile implements I18nFileInterface{ if (!$file->isFile()) { continue; } - $i18n[$dir->getFilename()][$file->getFilename()] = $this->flatten(include $file->getPathname(), $file->getBasename('.php')); + + $i18n[$dir->getFilename()][$file->getFilename()] = $this->flatten($this->process($file->getPathname()), $file->getBasename('.php')); } } @@ -43,13 +44,42 @@ class I18nFile implements I18nFileInterface{ } /** + * Process the content of an i18n file + * + * @param string $filename + * @return array + */ + private function process(string $filename) { + $content = file_get_contents($filename); + $content = str_replace('<?php', '', $content); + + $content = preg_replace([ + "#',\s*//\s*TODO#i", + "#',\s*//\s*DIRTY#i", + "#',\s*//\s*IGNORE#i", + ], [ + ' -> todo\',', + ' -> dirty\',', + ' -> ignore\',', + ], $content); + + $content = eval($content); + + if (is_array($content)) { + return $content; + } + + return []; + } + + /** * Flatten an array of translation * * @param array $translation * @param string $prefix * @return array */ - private function flatten($translation, $prefix = '') { + private function flatten(array $translation, string $prefix = '') { $a = array(); if ('' !== $prefix) { @@ -60,7 +90,7 @@ class I18nFile implements I18nFileInterface{ if (is_array($value)) { $a += $this->flatten($value, $prefix . $key); } else { - $a[$prefix . $key] = $value; + $a[$prefix . $key] = new I18nValue($value); } } @@ -76,7 +106,7 @@ class I18nFile implements I18nFileInterface{ * @param array $translation * @return array */ - private function unflatten($translation) { + private function unflatten(array $translation) { $a = array(); ksort($translation, SORT_NATURAL); @@ -99,25 +129,43 @@ class I18nFile implements I18nFileInterface{ * @param array $translation * @return string */ - private function format($translation) { + private function format(array $translation) { $translation = var_export($this->unflatten($translation), true); $patterns = array( + '/ -> todo\',/', + '/ -> dirty\',/', + '/ -> ignore\',/', '/array \(/', '/=>\s*array/', '/(\w) {2}/', '/ {2}/', - '/ -> todo\',/', ); $replacements = array( + "',\t// TODO", // Double quoting is mandatory to have a tab instead of the \t string + "',\t// DIRTY", // Double quoting is mandatory to have a tab instead of the \t string + "',\t// IGNORE", // Double quoting is mandatory to have a tab instead of the \t string 'array(', '=> array', '$1 ', "\t", // Double quoting is mandatory to have a tab instead of the \t string - "',\t// TODO - Translation", // Double quoting is mandatory to have a tab instead of the \t string ); $translation = preg_replace($patterns, $replacements, $translation); - // Double quoting is mandatory to have new lines instead of \n strings - return sprintf("<?php\n\nreturn %s;\n", $translation); + return <<<OUTPUT + <?php + + /******************************************************************************/ + /* Each entry of that file can be associated with a comment to indicate its */ + /* state. When there is no comment, it means the entry is fully translated. */ + /* The recognized comments are (comment matching is case-insensitive): */ + /* + TODO: the entry has never been translated. */ + /* + DIRTY: the entry has been translated but needs to be updated. */ + /* + IGNORE: the entry does not need to be translated. */ + /* When a comment is not recognized, it is discarded. */ + /******************************************************************************/ + + return {$translation}; + + OUTPUT; } } diff --git a/cli/i18n/I18nFileInterface.php b/cli/i18n/I18nFileInterface.php deleted file mode 100644 index 9e7c41200..000000000 --- a/cli/i18n/I18nFileInterface.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -require_once __DIR__ . '/I18nData.php'; - -interface I18nFileInterface { - - public function load(); - - public function dump(array $i18n); -} diff --git a/cli/i18n/I18nIgnoreFile.php b/cli/i18n/I18nIgnoreFile.php deleted file mode 100644 index a05a3d5e8..000000000 --- a/cli/i18n/I18nIgnoreFile.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php - -require_once __DIR__ . '/I18nFileInterface.php'; - -class I18nIgnoreFile implements I18nFileInterface { - - private $i18nPath; - - public function __construct() { - $this->i18nPath = __DIR__ . '/ignore'; - } - - public function dump(array $i18n) { - foreach ($i18n as $language => $content) { - $filename = $this->i18nPath . DIRECTORY_SEPARATOR . $language . '.php'; - file_put_contents($filename, $this->format($content)); - } - } - - public function load() { - $i18n = array(); - $files = new DirectoryIterator($this->i18nPath); - foreach ($files as $file) { - if (!$file->isFile()) { - continue; - } - $i18n[$file->getBasename('.php')] = (include $file->getPathname()); - } - - return $i18n; - } - - /** - * Format an array of translation - * - * It takes an array of translation and format it to be dumped in a - * translation file. The array is first converted to a string then some - * formatting regexes are applied to match the original content. - * - * @param array $translation - * @return string - */ - private function format($translation) { - $translation = var_export(($translation), true); - $patterns = array( - '/array \(/', - '/=>\s*array/', - '/ {2}/', - '/\d+ => /', - ); - $replacements = array( - 'array(', - '=> array', - "\t", // Double quoting is mandatory to have a tab instead of the \t string - '', - ); - $translation = preg_replace($patterns, $replacements, $translation); - - // Double quoting is mandatory to have new lines instead of \n strings - return sprintf("<?php\n\nreturn %s;\n", $translation); - } - -} diff --git a/cli/i18n/I18nUsageValidator.php b/cli/i18n/I18nUsageValidator.php index 8ab934971..2e402faf0 100644 --- a/cli/i18n/I18nUsageValidator.php +++ b/cli/i18n/I18nUsageValidator.php @@ -23,16 +23,13 @@ class I18nUsageValidator implements I18nValidatorInterface { return $this->result; } - public function validate($ignore) { + public function validate() { foreach ($this->reference as $file => $data) { foreach ($data as $key => $value) { $this->totalEntries++; if (preg_match('/\._$/', $key) && in_array(preg_replace('/\._$/', '', $key), $this->code)) { continue; } - if (is_array($ignore) && in_array($key, $ignore)) { - continue; - } if (!in_array($key, $this->code)) { $this->result .= sprintf('Unused key %s - %s', $key, $value) . PHP_EOL; $this->failedEntries++; diff --git a/cli/i18n/I18nValidatorInterface.php b/cli/i18n/I18nValidatorInterface.php index 80fcb22ad..d5681912b 100644 --- a/cli/i18n/I18nValidatorInterface.php +++ b/cli/i18n/I18nValidatorInterface.php @@ -11,10 +11,9 @@ interface I18nValidatorInterface { public function displayResult(); /** - * @param array $ignore Keys to ignore for validation * @return bool */ - public function validate($ignore); + public function validate(); /** * Display the validation report. diff --git a/cli/i18n/I18nValue.php b/cli/i18n/I18nValue.php new file mode 100644 index 000000000..e691b8574 --- /dev/null +++ b/cli/i18n/I18nValue.php @@ -0,0 +1,75 @@ +<?php + +class I18nValue { + private const STATE_DIRTY = 'dirty'; + private const STATE_IGNORE = 'ignore'; + private const STATE_TODO = 'todo'; + private const STATES = [ + self::STATE_DIRTY, + self::STATE_IGNORE, + self::STATE_TODO, + ]; + + private $value; + private $state; + + public function __construct(string $data) { + $data = explode(' -> ', $data); + + $this->value = array_shift($data); + if (count($data) === 0) { + return; + } + + $state = array_shift($data); + if (in_array($state, self::STATES)) { + $this->state = $state; + } + } + + public function __clone() { + $this->markAsTodo(); + } + + public function equal(I18nValue $value) { + return $this->value === $value->getValue(); + } + + public function isIgnore() { + return $this->state === self::STATE_IGNORE; + } + + public function isTodo() { + return $this->state === self::STATE_TODO; + } + + public function markAsDirty() { + $this->state = self::STATE_DIRTY; + } + + public function markAsIgnore() { + $this->state = self::STATE_IGNORE; + } + + public function markAsTodo() { + $this->state = self::STATE_TODO; + } + + public function unmarkAsIgnore() { + if ($this->state === self::STATE_IGNORE) { + $this->state = null; + } + } + + public function __toString() { + if ($this->state === null) { + return $this->value; + } + + return "{$this->value} -> {$this->state}"; + } + + public function getValue() { + return $this->value; + } +} diff --git a/cli/i18n/ignore/cz.php b/cli/i18n/ignore/cz.php deleted file mode 100644 index 8cb761736..000000000 --- a/cli/i18n/ignore/cz.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.dir', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', -); diff --git a/cli/i18n/ignore/de.php b/cli/i18n/ignore/de.php deleted file mode 100644 index 28d4ec6d8..000000000 --- a/cli/i18n/ignore/de.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -return array( - 'admin.extensions.name', - 'admin.extensions.version', - 'admin.stats.feed', - 'admin.user.admin', - 'admin.user.feed_count', - 'conf.query.name', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'conf.shortcut.navigation', - 'gen.date.Apr', - 'gen.date.Aug', - 'gen.date.Nov', - 'gen.date.Sep', - 'gen.date.april', - 'gen.date.august', - 'gen.date.november', - 'gen.date.september', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.menu.account', - 'gen.menu.admin', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'index.about.version', - 'install.bdd.host', - 'install.title', - 'sub.api.title', - 'sub.bookmarklet.title', - 'sub.category.information', - 'sub.feed.information', - 'sub.tag.name', -); diff --git a/cli/i18n/ignore/en-us.php b/cli/i18n/ignore/en-us.php deleted file mode 100644 index 8fa02163e..000000000 --- a/cli/i18n/ignore/en-us.php +++ /dev/null @@ -1,804 +0,0 @@ -<?php - -return array( - 'admin.auth.allow_anonymous', - 'admin.auth.allow_anonymous_refresh', - 'admin.auth.api_enabled', - 'admin.auth.form', - 'admin.auth.http', - 'admin.auth.none', - 'admin.auth.title', - 'admin.auth.token', - 'admin.auth.token_help', - 'admin.auth.type', - 'admin.auth.unsafe_autologin', - 'admin.check_install.cache.nok', - 'admin.check_install.cache.ok', - 'admin.check_install.categories.nok', - 'admin.check_install.categories.ok', - 'admin.check_install.connection.nok', - 'admin.check_install.connection.ok', - 'admin.check_install.ctype.nok', - 'admin.check_install.ctype.ok', - 'admin.check_install.curl.nok', - 'admin.check_install.curl.ok', - 'admin.check_install.data.nok', - 'admin.check_install.data.ok', - 'admin.check_install.database', - 'admin.check_install.dom.nok', - 'admin.check_install.dom.ok', - 'admin.check_install.entries.nok', - 'admin.check_install.entries.ok', - 'admin.check_install.favicons.nok', - 'admin.check_install.favicons.ok', - 'admin.check_install.feeds.nok', - 'admin.check_install.feeds.ok', - 'admin.check_install.fileinfo.nok', - 'admin.check_install.fileinfo.ok', - 'admin.check_install.files', - 'admin.check_install.json.nok', - 'admin.check_install.json.ok', - 'admin.check_install.mbstring.nok', - 'admin.check_install.mbstring.ok', - 'admin.check_install.pcre.nok', - 'admin.check_install.pcre.ok', - 'admin.check_install.pdo.nok', - 'admin.check_install.pdo.ok', - 'admin.check_install.php._', - 'admin.check_install.php.nok', - 'admin.check_install.php.ok', - 'admin.check_install.tables.nok', - 'admin.check_install.tables.ok', - 'admin.check_install.title', - 'admin.check_install.tokens.nok', - 'admin.check_install.tokens.ok', - 'admin.check_install.users.nok', - 'admin.check_install.users.ok', - 'admin.check_install.zip.nok', - 'admin.check_install.zip.ok', - 'admin.extensions.author', - 'admin.extensions.community', - 'admin.extensions.description', - 'admin.extensions.disabled', - 'admin.extensions.empty_list', - 'admin.extensions.enabled', - 'admin.extensions.latest', - 'admin.extensions.name', - 'admin.extensions.no_configure_view', - 'admin.extensions.system._', - 'admin.extensions.system.no_rights', - 'admin.extensions.title', - 'admin.extensions.update', - 'admin.extensions.user', - 'admin.extensions.version', - 'admin.stats._', - 'admin.stats.all_feeds', - 'admin.stats.category', - 'admin.stats.entry_count', - 'admin.stats.entry_per_category', - 'admin.stats.entry_per_day', - 'admin.stats.entry_per_day_of_week', - 'admin.stats.entry_per_hour', - 'admin.stats.entry_per_month', - 'admin.stats.entry_repartition', - 'admin.stats.feed', - 'admin.stats.feed_per_category', - 'admin.stats.idle', - 'admin.stats.main', - 'admin.stats.main_stream', - 'admin.stats.no_idle', - 'admin.stats.number_entries', - 'admin.stats.percent_of_total', - 'admin.stats.repartition', - 'admin.stats.status_read', - 'admin.stats.status_total', - 'admin.stats.status_unread', - 'admin.stats.title', - 'admin.stats.top_feed', - 'admin.system._', - 'admin.system.auto-update-url', - 'admin.system.cookie-duration.help', - 'admin.system.cookie-duration.number', - 'admin.system.force_email_validation', - 'admin.system.instance-name', - 'admin.system.max-categories', - 'admin.system.max-feeds', - 'admin.system.registration.help', - 'admin.system.registration.number', - 'admin.update._', - 'admin.update.apply', - 'admin.update.check', - 'admin.update.current_version', - 'admin.update.last', - 'admin.update.none', - 'admin.update.title', - 'admin.user.admin', - 'admin.user.article_count', - 'admin.user.back_to_manage', - 'admin.user.create', - 'admin.user.database_size', - 'admin.user.email', - 'admin.user.enabled', - 'admin.user.feed_count', - 'admin.user.is_admin', - 'admin.user.language', - 'admin.user.last_user_activity', - 'admin.user.list', - 'admin.user.number', - 'admin.user.numbers', - 'admin.user.password_form', - 'admin.user.password_format', - 'admin.user.title', - 'admin.user.username', - 'conf.archiving._', - 'conf.archiving.exception', - 'conf.archiving.help', - 'conf.archiving.keep_labels', - 'conf.archiving.keep_max', - 'conf.archiving.keep_min_by_feed', - 'conf.archiving.keep_period', - 'conf.archiving.keep_unreads', - 'conf.archiving.maintenance', - 'conf.archiving.optimize', - 'conf.archiving.optimize_help', - 'conf.archiving.policy', - 'conf.archiving.policy_warning', - 'conf.archiving.purge_now', - 'conf.archiving.title', - 'conf.archiving.ttl', - 'conf.display._', - 'conf.display.icon.bottom_line', - 'conf.display.icon.display_authors', - 'conf.display.icon.entry', - 'conf.display.icon.publication_date', - 'conf.display.icon.related_tags', - 'conf.display.icon.sharing', - 'conf.display.icon.summary', - 'conf.display.icon.top_line', - 'conf.display.language', - 'conf.display.notif_html5.seconds', - 'conf.display.notif_html5.timeout', - 'conf.display.show_nav_buttons', - 'conf.display.theme', - 'conf.display.theme_not_available', - 'conf.display.thumbnail.label', - 'conf.display.thumbnail.landscape', - 'conf.display.thumbnail.none', - 'conf.display.thumbnail.portrait', - 'conf.display.thumbnail.square', - 'conf.display.title', - 'conf.display.width.content', - 'conf.display.width.large', - 'conf.display.width.medium', - 'conf.display.width.no_limit', - 'conf.display.width.thin', - 'conf.profile._', - 'conf.profile.api', - 'conf.profile.delete._', - 'conf.profile.delete.warn', - 'conf.profile.email', - 'conf.profile.password_api', - 'conf.profile.password_form', - 'conf.profile.password_format', - 'conf.profile.title', - 'conf.query._', - 'conf.query.deprecated', - 'conf.query.filter._', - 'conf.query.filter.categories', - 'conf.query.filter.feeds', - 'conf.query.filter.order', - 'conf.query.filter.search', - 'conf.query.filter.state', - 'conf.query.filter.tags', - 'conf.query.filter.type', - 'conf.query.get_all', - 'conf.query.get_category', - 'conf.query.get_feed', - 'conf.query.name', - 'conf.query.no_filter', - 'conf.query.number', - 'conf.query.order_asc', - 'conf.query.order_desc', - 'conf.query.search', - 'conf.query.state_0', - 'conf.query.state_1', - 'conf.query.state_12', - 'conf.query.state_13', - 'conf.query.state_14', - 'conf.query.state_15', - 'conf.query.state_2', - 'conf.query.state_3', - 'conf.query.title', - 'conf.reading._', - 'conf.reading.after_onread', - 'conf.reading.always_show_favorites', - 'conf.reading.articles_per_page', - 'conf.reading.auto_load_more', - 'conf.reading.auto_remove_article', - 'conf.reading.confirm_enabled', - 'conf.reading.display_articles_unfolded', - 'conf.reading.display_categories_unfolded', - 'conf.reading.hide_read_feeds', - 'conf.reading.img_with_lazyload', - 'conf.reading.jump_next', - 'conf.reading.mark_updated_article_unread', - 'conf.reading.number_divided_when_reader', - 'conf.reading.read.article_open_on_website', - 'conf.reading.read.article_viewed', - 'conf.reading.read.keep_max_n_unread', - 'conf.reading.read.scroll', - 'conf.reading.read.upon_reception', - 'conf.reading.read.when', - 'conf.reading.read.when_same_title', - 'conf.reading.show._', - 'conf.reading.show.active_category', - 'conf.reading.show.adaptive', - 'conf.reading.show.all_articles', - 'conf.reading.show.all_categories', - 'conf.reading.show.no_category', - 'conf.reading.show.remember_categories', - 'conf.reading.show.unread', - 'conf.reading.show_fav_unread_help', - 'conf.reading.sides_close_article', - 'conf.reading.sort._', - 'conf.reading.sort.newer_first', - 'conf.reading.sort.older_first', - 'conf.reading.sticky_post', - 'conf.reading.title', - 'conf.reading.view.default', - 'conf.reading.view.global', - 'conf.reading.view.normal', - 'conf.reading.view.reader', - 'conf.sharing._', - 'conf.sharing.add', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.more_information', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.remove', - 'conf.sharing.shaarli', - 'conf.sharing.share_name', - 'conf.sharing.share_url', - 'conf.sharing.title', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'conf.shortcut._', - 'conf.shortcut.article_action', - 'conf.shortcut.auto_share', - 'conf.shortcut.auto_share_help', - 'conf.shortcut.close_dropdown', - 'conf.shortcut.collapse_article', - 'conf.shortcut.first_article', - 'conf.shortcut.focus_search', - 'conf.shortcut.global_view', - 'conf.shortcut.help', - 'conf.shortcut.javascript', - 'conf.shortcut.last_article', - 'conf.shortcut.load_more', - 'conf.shortcut.mark_read', - 'conf.shortcut.navigation', - 'conf.shortcut.navigation_help', - 'conf.shortcut.navigation_no_mod_help', - 'conf.shortcut.next_article', - 'conf.shortcut.next_unread_article', - 'conf.shortcut.non_standard', - 'conf.shortcut.normal_view', - 'conf.shortcut.other_action', - 'conf.shortcut.previous_article', - 'conf.shortcut.reading_view', - 'conf.shortcut.rss_view', - 'conf.shortcut.see_on_website', - 'conf.shortcut.shift_for_all_read', - 'conf.shortcut.skip_next_article', - 'conf.shortcut.skip_previous_article', - 'conf.shortcut.title', - 'conf.shortcut.toggle_media', - 'conf.shortcut.user_filter', - 'conf.shortcut.user_filter_help', - 'conf.shortcut.views', - 'conf.user.articles_and_size', - 'conf.user.current', - 'conf.user.is_admin', - 'conf.user.users', - 'feedback.access.denied', - 'feedback.access.not_found', - 'feedback.admin.optimization_complete', - 'feedback.api.password.failed', - 'feedback.api.password.updated', - 'feedback.auth.login.invalid', - 'feedback.auth.login.success', - 'feedback.auth.logout.success', - 'feedback.conf.error', - 'feedback.conf.query_created', - 'feedback.conf.shortcuts_updated', - 'feedback.conf.updated', - 'feedback.extensions.already_enabled', - 'feedback.extensions.cannot_remove', - 'feedback.extensions.disable.ko', - 'feedback.extensions.disable.ok', - 'feedback.extensions.enable.ko', - 'feedback.extensions.enable.ok', - 'feedback.extensions.no_access', - 'feedback.extensions.not_enabled', - 'feedback.extensions.not_found', - 'feedback.extensions.removed', - 'feedback.import_export.export_no_zip_extension', - 'feedback.import_export.feeds_imported', - 'feedback.import_export.feeds_imported_with_errors', - 'feedback.import_export.file_cannot_be_uploaded', - 'feedback.import_export.no_zip_extension', - 'feedback.import_export.zip_error', - 'feedback.profile.error', - 'feedback.profile.updated', - 'feedback.sub.actualize', - 'feedback.sub.articles.marked_read', - 'feedback.sub.articles.marked_unread', - 'feedback.sub.category.created', - 'feedback.sub.category.deleted', - 'feedback.sub.category.emptied', - 'feedback.sub.category.error', - 'feedback.sub.category.name_exists', - 'feedback.sub.category.no_id', - 'feedback.sub.category.no_name', - 'feedback.sub.category.not_delete_default', - 'feedback.sub.category.not_exist', - 'feedback.sub.category.over_max', - 'feedback.sub.category.updated', - 'feedback.sub.feed.actualized', - 'feedback.sub.feed.actualizeds', - 'feedback.sub.feed.added', - 'feedback.sub.feed.already_subscribed', - 'feedback.sub.feed.cache_cleared', - 'feedback.sub.feed.deleted', - 'feedback.sub.feed.error', - 'feedback.sub.feed.internal_problem', - 'feedback.sub.feed.invalid_url', - 'feedback.sub.feed.n_actualized', - 'feedback.sub.feed.n_entries_deleted', - 'feedback.sub.feed.no_refresh', - 'feedback.sub.feed.not_added', - 'feedback.sub.feed.not_found', - 'feedback.sub.feed.over_max', - 'feedback.sub.feed.reloaded', - 'feedback.sub.feed.selector_preview.http_error', - 'feedback.sub.feed.selector_preview.no_entries', - 'feedback.sub.feed.selector_preview.no_feed', - 'feedback.sub.feed.selector_preview.no_result', - 'feedback.sub.feed.selector_preview.selector_empty', - 'feedback.sub.feed.updated', - 'feedback.sub.purge_completed', - 'feedback.tag.created', - 'feedback.tag.name_exists', - 'feedback.tag.renamed', - 'feedback.update.can_apply', - 'feedback.update.error', - 'feedback.update.file_is_nok', - 'feedback.update.finished', - 'feedback.update.none', - 'feedback.update.server_not_found', - 'feedback.user.created._', - 'feedback.user.created.error', - 'feedback.user.deleted._', - 'feedback.user.deleted.error', - 'feedback.user.updated._', - 'feedback.user.updated.error', - 'gen.action.actualize', - 'gen.action.add', - 'gen.action.back', - 'gen.action.back_to_rss_feeds', - 'gen.action.cancel', - 'gen.action.create', - 'gen.action.demote', - 'gen.action.disable', - 'gen.action.empty', - 'gen.action.enable', - 'gen.action.export', - 'gen.action.filter', - 'gen.action.import', - 'gen.action.load_default_shortcuts', - 'gen.action.manage', - 'gen.action.mark_read', - 'gen.action.promote', - 'gen.action.purge', - 'gen.action.remove', - 'gen.action.rename', - 'gen.action.see_website', - 'gen.action.submit', - 'gen.action.truncate', - 'gen.action.update', - 'gen.auth.accept_tos', - 'gen.auth.email', - 'gen.auth.keep_logged_in', - 'gen.auth.login', - 'gen.auth.logout', - 'gen.auth.password._', - 'gen.auth.password.format', - 'gen.auth.registration._', - 'gen.auth.registration.ask', - 'gen.auth.registration.title', - 'gen.auth.username._', - 'gen.auth.username.format', - 'gen.date.Apr', - 'gen.date.Aug', - 'gen.date.Dec', - 'gen.date.Feb', - 'gen.date.Jan', - 'gen.date.Jul', - 'gen.date.Jun', - 'gen.date.Mar', - 'gen.date.May', - 'gen.date.Nov', - 'gen.date.Oct', - 'gen.date.Sep', - 'gen.date.apr', - 'gen.date.april', - 'gen.date.aug', - 'gen.date.august', - 'gen.date.before_yesterday', - 'gen.date.dec', - 'gen.date.december', - 'gen.date.feb', - 'gen.date.february', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.date.fri', - 'gen.date.jan', - 'gen.date.january', - 'gen.date.jul', - 'gen.date.july', - 'gen.date.jun', - 'gen.date.june', - 'gen.date.last_2_year', - 'gen.date.last_3_month', - 'gen.date.last_3_year', - 'gen.date.last_5_year', - 'gen.date.last_6_month', - 'gen.date.last_month', - 'gen.date.last_week', - 'gen.date.last_year', - 'gen.date.mar', - 'gen.date.march', - 'gen.date.may', - 'gen.date.may_', - 'gen.date.mon', - 'gen.date.month', - 'gen.date.nov', - 'gen.date.november', - 'gen.date.oct', - 'gen.date.october', - 'gen.date.sat', - 'gen.date.sep', - 'gen.date.september', - 'gen.date.sun', - 'gen.date.thu', - 'gen.date.today', - 'gen.date.tue', - 'gen.date.wed', - 'gen.date.yesterday', - 'gen.dir', - 'gen.freshrss._', - 'gen.freshrss.about', - 'gen.js.category_empty', - 'gen.js.feedback.body_new_articles', - 'gen.js.feedback.request_failed', - 'gen.js.feedback.title_new_articles', - 'gen.js.new_article', - 'gen.js.should_be_activated', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.menu.about', - 'gen.menu.account', - 'gen.menu.admin', - 'gen.menu.archiving', - 'gen.menu.authentication', - 'gen.menu.check_install', - 'gen.menu.configuration', - 'gen.menu.display', - 'gen.menu.extensions', - 'gen.menu.logs', - 'gen.menu.queries', - 'gen.menu.reading', - 'gen.menu.search', - 'gen.menu.sharing', - 'gen.menu.shortcuts', - 'gen.menu.stats', - 'gen.menu.system', - 'gen.menu.update', - 'gen.menu.user_management', - 'gen.menu.user_profile', - 'gen.pagination.first', - 'gen.pagination.last', - 'gen.pagination.load_more', - 'gen.pagination.mark_all_read', - 'gen.pagination.next', - 'gen.pagination.nothing_to_load', - 'gen.pagination.previous', - 'gen.period.days', - 'gen.period.hours', - 'gen.period.months', - 'gen.period.weeks', - 'gen.period.years', - 'gen.share.Known', - 'gen.share.blogotext', - 'gen.share.clipboard', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.print', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.attention', - 'gen.short.blank_to_disable', - 'gen.short.by_author', - 'gen.short.by_default', - 'gen.short.damn', - 'gen.short.default_category', - 'gen.short.no', - 'gen.short.not_applicable', - 'gen.short.ok', - 'gen.short.or', - 'gen.short.yes', - 'index.about._', - 'index.about.agpl3', - 'index.about.bugs_reports', - 'index.about.credits', - 'index.about.credits_content', - 'index.about.freshrss_description', - 'index.about.github', - 'index.about.license', - 'index.about.project_website', - 'index.about.title', - 'index.about.version', - 'index.feed.add', - 'index.feed.empty', - 'index.feed.rss_of', - 'index.feed.title', - 'index.feed.title_global', - 'index.log._', - 'index.log.clear', - 'index.log.empty', - 'index.log.title', - 'index.menu.about', - 'index.menu.before_one_day', - 'index.menu.before_one_week', - 'index.menu.bookmark_query', - 'index.menu.global_view', - 'index.menu.main_stream', - 'index.menu.mark_all_read', - 'index.menu.mark_cat_read', - 'index.menu.mark_feed_read', - 'index.menu.mark_selection_unread', - 'index.menu.newer_first', - 'index.menu.normal_view', - 'index.menu.older_first', - 'index.menu.queries', - 'index.menu.read', - 'index.menu.reader_view', - 'index.menu.rss_view', - 'index.menu.search_short', - 'index.menu.stats', - 'index.menu.subscription', - 'index.menu.tags', - 'index.menu.unread', - 'index.share', - 'index.tag.related', - 'index.tos.title', - 'install.action.finish', - 'install.action.fix_errors_before', - 'install.action.keep_install', - 'install.action.next_step', - 'install.action.reinstall', - 'install.auth.form', - 'install.auth.http', - 'install.auth.none', - 'install.auth.password_form', - 'install.auth.password_format', - 'install.auth.type', - 'install.bdd._', - 'install.bdd.conf._', - 'install.bdd.conf.ko', - 'install.bdd.conf.ok', - 'install.bdd.host', - 'install.bdd.password', - 'install.bdd.prefix', - 'install.bdd.type', - 'install.bdd.username', - 'install.check._', - 'install.check.already_installed', - 'install.check.cache.nok', - 'install.check.cache.ok', - 'install.check.ctype.nok', - 'install.check.ctype.ok', - 'install.check.curl.nok', - 'install.check.curl.ok', - 'install.check.data.nok', - 'install.check.data.ok', - 'install.check.dom.nok', - 'install.check.dom.ok', - 'install.check.favicons.nok', - 'install.check.favicons.ok', - 'install.check.fileinfo.nok', - 'install.check.fileinfo.ok', - 'install.check.json.nok', - 'install.check.json.ok', - 'install.check.mbstring.nok', - 'install.check.mbstring.ok', - 'install.check.pcre.nok', - 'install.check.pcre.ok', - 'install.check.pdo.nok', - 'install.check.pdo.ok', - 'install.check.php.nok', - 'install.check.php.ok', - 'install.check.reload', - 'install.check.tmp.nok', - 'install.check.tmp.ok', - 'install.check.unknown_process_username', - 'install.check.users.nok', - 'install.check.users.ok', - 'install.check.xml.nok', - 'install.check.xml.ok', - 'install.conf._', - 'install.conf.ok', - 'install.congratulations', - 'install.default_user', - 'install.fix_errors_before', - 'install.javascript_is_better', - 'install.js.confirm_reinstall', - 'install.language._', - 'install.language.choose', - 'install.language.defined', - 'install.missing_applied_migrations', - 'install.ok', - 'install.session.nok', - 'install.step', - 'install.steps', - 'install.this_is_the_end', - 'install.title', - 'sub.api.documentation', - 'sub.api.title', - 'sub.bookmarklet.documentation', - 'sub.bookmarklet.label', - 'sub.bookmarklet.title', - 'sub.category._', - 'sub.category.add', - 'sub.category.archiving', - 'sub.category.empty', - 'sub.category.information', - 'sub.category.position', - 'sub.category.position_help', - 'sub.category.title', - 'sub.feed.add', - 'sub.feed.advanced', - 'sub.feed.archiving', - 'sub.feed.auth.configuration', - 'sub.feed.auth.help', - 'sub.feed.auth.http', - 'sub.feed.auth.password', - 'sub.feed.auth.username', - 'sub.feed.clear_cache', - 'sub.feed.content_action._', - 'sub.feed.content_action.append', - 'sub.feed.content_action.prepend', - 'sub.feed.content_action.replace', - 'sub.feed.css_cookie', - 'sub.feed.css_cookie_help', - 'sub.feed.css_help', - 'sub.feed.css_path', - 'sub.feed.description', - 'sub.feed.empty', - 'sub.feed.error', - 'sub.feed.filteractions._', - 'sub.feed.filteractions.help', - 'sub.feed.information', - 'sub.feed.keep_min', - 'sub.feed.maintenance.clear_cache', - 'sub.feed.maintenance.clear_cache_help', - 'sub.feed.maintenance.reload_articles', - 'sub.feed.maintenance.reload_articles_help', - 'sub.feed.maintenance.title', - 'sub.feed.moved_category_deleted', - 'sub.feed.mute', - 'sub.feed.no_selected', - 'sub.feed.number_entries', - 'sub.feed.priority._', - 'sub.feed.priority.archived', - 'sub.feed.priority.main_stream', - 'sub.feed.priority.normal', - 'sub.feed.proxy', - 'sub.feed.proxy_help', - 'sub.feed.selector_preview.show_raw', - 'sub.feed.selector_preview.show_rendered', - 'sub.feed.show.all', - 'sub.feed.show.error', - 'sub.feed.showing.error', - 'sub.feed.ssl_verify', - 'sub.feed.stats', - 'sub.feed.think_to_add', - 'sub.feed.timeout', - 'sub.feed.title', - 'sub.feed.title_add', - 'sub.feed.ttl', - 'sub.feed.url', - 'sub.feed.useragent', - 'sub.feed.useragent_help', - 'sub.feed.validator', - 'sub.feed.website', - 'sub.feed.websub', - 'sub.import_export.export', - 'sub.import_export.export_opml', - 'sub.import_export.feed_list', - 'sub.import_export.file_to_import', - 'sub.import_export.file_to_import_no_zip', - 'sub.import_export.import', - 'sub.import_export.title', - 'sub.menu.add', - 'sub.menu.import_export', - 'sub.menu.label_management', - 'sub.menu.stats.idle', - 'sub.menu.stats.main', - 'sub.menu.stats.repartition', - 'sub.menu.subscription_management', - 'sub.menu.subscription_tools', - 'sub.tag.name', - 'sub.tag.new_name', - 'sub.tag.old_name', - 'sub.title._', - 'sub.title.add', - 'sub.title.add_category', - 'sub.title.add_feed', - 'sub.title.add_label', - 'sub.title.delete_label', - 'sub.title.feed_management', - 'sub.title.rename_label', - 'sub.title.subscription_tools', - 'user.email.feedback.invalid', - 'user.email.feedback.required', - 'user.email.validation.change_email', - 'user.email.validation.email_sent_to', - 'user.email.validation.feedback.email_failed', - 'user.email.validation.feedback.email_sent', - 'user.email.validation.feedback.error', - 'user.email.validation.feedback.ok', - 'user.email.validation.feedback.unnecessary', - 'user.email.validation.feedback.wrong_token', - 'user.email.validation.need_to', - 'user.email.validation.resend_email', - 'user.email.validation.title', - 'user.mailer.email_need_validation.body', - 'user.mailer.email_need_validation.title', - 'user.mailer.email_need_validation.welcome', - 'user.password.invalid', - 'user.tos.feedback.invalid', - 'user.username.invalid', - 'user.username.taken', -); diff --git a/cli/i18n/ignore/en.php b/cli/i18n/ignore/en.php deleted file mode 100644 index 89574966d..000000000 --- a/cli/i18n/ignore/en.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -return array( - 'admin.check_install.cache.nok', - 'admin.check_install.cache.ok', - 'admin.check_install.categories.nok', - 'admin.check_install.categories.ok', - 'admin.check_install.connection.nok', - 'admin.check_install.connection.ok', - 'admin.check_install.ctype.nok', - 'admin.check_install.ctype.ok', - 'admin.check_install.curl.nok', - 'admin.check_install.curl.ok', - 'admin.check_install.data.nok', - 'admin.check_install.data.ok', - 'admin.check_install.dom.nok', - 'admin.check_install.dom.ok', - 'admin.check_install.entries.nok', - 'admin.check_install.entries.ok', - 'admin.check_install.favicons.nok', - 'admin.check_install.favicons.ok', - 'admin.check_install.feeds.nok', - 'admin.check_install.feeds.ok', - 'admin.check_install.fileinfo.nok', - 'admin.check_install.fileinfo.ok', - 'admin.check_install.json.nok', - 'admin.check_install.json.ok', - 'admin.check_install.pcre.nok', - 'admin.check_install.pcre.ok', - 'admin.check_install.pdo.nok', - 'admin.check_install.pdo.ok', - 'admin.check_install.php.nok', - 'admin.check_install.php.ok', - 'admin.check_install.tables.nok', - 'admin.check_install.tables.ok', - 'admin.check_install.tokens.nok', - 'admin.check_install.tokens.ok', - 'admin.check_install.users.nok', - 'admin.check_install.users.ok', - 'admin.check_install.zip.nok', - 'admin.check_install.zip.ok', - 'conf.query.get_all', - 'conf.query.get_category', - 'conf.query.get_favorite', - 'conf.query.get_feed', - 'conf.query.order_asc', - 'conf.query.order_desc', - 'conf.query.state_0', - 'conf.query.state_1', - 'conf.query.state_10', - 'conf.query.state_11', - 'conf.query.state_12', - 'conf.query.state_13', - 'conf.query.state_14', - 'conf.query.state_15', - 'conf.query.state_2', - 'conf.query.state_3', - 'conf.query.state_4', - 'conf.query.state_5', - 'conf.query.state_6', - 'conf.query.state_7', - 'conf.query.state_8', - 'conf.query.state_9', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.Known', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.movim', - 'gen.share.print', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.menu.non-starred', - 'index.menu.read', - 'index.menu.starred', - 'index.menu.unread', -); diff --git a/cli/i18n/ignore/es.php b/cli/i18n/ignore/es.php deleted file mode 100644 index 43d34b2da..000000000 --- a/cli/i18n/ignore/es.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php - -return array( - 'admin.stats.status_total', - 'admin.user.feed_count', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.no', - 'index.about.agpl3', - 'sub.api.title', - 'sub.bookmarklet.title', -); diff --git a/cli/i18n/ignore/fr.php b/cli/i18n/ignore/fr.php deleted file mode 100644 index 78f517c08..000000000 --- a/cli/i18n/ignore/fr.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php - -return array( - 'admin.extensions.description', - 'admin.extensions.title', - 'admin.extensions.version', - 'admin.stats.number_entries', - 'admin.user.article_count', - 'conf.archiving.maintenance', - 'conf.display.thumbnail.portrait', - 'conf.display.width.large', - 'conf.query.filter.search', - 'conf.query.filter.type', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'conf.shortcut.navigation', - 'conf.user.articles_and_size', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.menu.admin', - 'gen.menu.configuration', - 'gen.menu.extensions', - 'gen.menu.logs', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'index.about.version', - 'index.log._', - 'index.log.title', - 'install.this_is_the_end', - 'install.title', - 'sub.api.title', - 'sub.bookmarklet.title', - 'sub.feed.description', - 'sub.feed.maintenance.title', - 'sub.feed.number_entries', -); diff --git a/cli/i18n/ignore/he.php b/cli/i18n/ignore/he.php deleted file mode 100644 index 7ec93f84a..000000000 --- a/cli/i18n/ignore/he.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.no', - 'index.about.agpl3', -); diff --git a/cli/i18n/ignore/it.php b/cli/i18n/ignore/it.php deleted file mode 100644 index 27ddffa04..000000000 --- a/cli/i18n/ignore/it.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.dir', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.no', - 'index.about.agpl3', -); diff --git a/cli/i18n/ignore/ja.php b/cli/i18n/ignore/ja.php deleted file mode 100644 index 075fefc36..000000000 --- a/cli/i18n/ignore/ja.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'sub.api.title', -); diff --git a/cli/i18n/ignore/ko.php b/cli/i18n/ignore/ko.php deleted file mode 100644 index a9ba0700b..000000000 --- a/cli/i18n/ignore/ko.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.Apr', - 'gen.date.Aug', - 'gen.date.Dec', - 'gen.date.Feb', - 'gen.date.Jan', - 'gen.date.Jul', - 'gen.date.Jun', - 'gen.date.Mar', - 'gen.date.May', - 'gen.date.Nov', - 'gen.date.Oct', - 'gen.date.Sep', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.Known', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'sub.api.title', -); diff --git a/cli/i18n/ignore/nl.php b/cli/i18n/ignore/nl.php deleted file mode 100644 index f2ae47c39..000000000 --- a/cli/i18n/ignore/nl.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php - -return array( - 'admin.stats.feed', - 'admin.user.feed_count', - 'conf.query.filter.type', - 'conf.query.number', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.Apr', - 'gen.date.Dec', - 'gen.date.Nov', - 'gen.date.Sep', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.menu.account', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.print', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.ok', - 'index.about.agpl3', - 'index.about.version', - 'install.bdd._', - 'install.bdd.host', - 'sub.api.title', - 'sub.bookmarklet.title', -); diff --git a/cli/i18n/ignore/oc.php b/cli/i18n/ignore/oc.php deleted file mode 100644 index 7a0991f58..000000000 --- a/cli/i18n/ignore/oc.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php - -return array( - 'admin.extensions.title', - 'admin.extensions.version', - 'admin.stats.number_entries', - 'admin.stats.status_total', - 'admin.user.admin', - 'admin.user.article_count', - 'conf.display.width.large', - 'conf.query.filter.search', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'conf.shortcut.navigation', - 'conf.user.articles_and_size', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.menu.admin', - 'gen.menu.configuration', - 'gen.menu.extensions', - 'gen.menu.logs', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'index.about.version', - 'index.log._', - 'index.log.title', - 'install.this_is_the_end', - 'install.title', - 'sub.api.title', - 'sub.bookmarklet.title', - 'sub.feed.description', - 'sub.feed.number_entries', -); diff --git a/cli/i18n/ignore/pl.php b/cli/i18n/ignore/pl.php deleted file mode 100644 index 9db10449a..000000000 --- a/cli/i18n/ignore/pl.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php - -return array( - 'admin.user.admin', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.ok', - 'index.about.agpl3', - 'sub.api.title', - 'sub.import_export.import', -); diff --git a/cli/i18n/ignore/pt-br.php b/cli/i18n/ignore/pt-br.php deleted file mode 100644 index 56fe1f712..000000000 --- a/cli/i18n/ignore/pt-br.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - -return array( - 'admin.stats.feed', - 'admin.stats.status_total', - 'admin.user.feed_count', - 'conf.query.number', - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.menu.logs', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'gen.short.ok', - 'index.about.agpl3', - 'index.log._', - 'index.log.title', - 'install.bdd.host', - 'sub.api.title', - 'sub.bookmarklet.title', -); diff --git a/cli/i18n/ignore/ru.php b/cli/i18n/ignore/ru.php deleted file mode 100644 index 634396dad..000000000 --- a/cli/i18n/ignore/ru.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'sub.api.title', -); diff --git a/cli/i18n/ignore/sk.php b/cli/i18n/ignore/sk.php deleted file mode 100644 index 02c2f5495..000000000 --- a/cli/i18n/ignore/sk.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.print', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.Aug', - 'gen.date.Dec', - 'gen.date.Nov', - 'gen.date.Sep', - 'gen.date.apr', - 'gen.date.aug', - 'gen.date.august', - 'gen.date.dec', - 'gen.date.december', - 'gen.date.feb', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.date.jan', - 'gen.date.mar', - 'gen.date.nov', - 'gen.date.november', - 'gen.date.sep', - 'gen.date.september', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.print', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'sub.api.title', - 'sub.import_export.title', - 'sub.menu.import_export', -); diff --git a/cli/i18n/ignore/tr.php b/cli/i18n/ignore/tr.php deleted file mode 100644 index 5ecb9a13a..000000000 --- a/cli/i18n/ignore/tr.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.date.format_date', - 'gen.date.format_date_hour', - 'gen.date.may_', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.print', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'sub.api.title', - 'sub.bookmarklet.title', -); diff --git a/cli/i18n/ignore/zh-cn.php b/cli/i18n/ignore/zh-cn.php deleted file mode 100644 index f7847bf17..000000000 --- a/cli/i18n/ignore/zh-cn.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php - -return array( - 'conf.sharing.blogotext', - 'conf.sharing.diaspora', - 'conf.sharing.email', - 'conf.sharing.facebook', - 'conf.sharing.raindrop', - 'conf.sharing.shaarli', - 'conf.sharing.twitter', - 'conf.sharing.wallabag', - 'gen.dir', - 'gen.freshrss._', - 'gen.lang.cz', - 'gen.lang.de', - 'gen.lang.en', - 'gen.lang.en-us', - 'gen.lang.es', - 'gen.lang.fr', - 'gen.lang.he', - 'gen.lang.it', - 'gen.lang.ja', - 'gen.lang.ko', - 'gen.lang.nl', - 'gen.lang.oc', - 'gen.lang.pl', - 'gen.lang.pt-br', - 'gen.lang.ru', - 'gen.lang.sk', - 'gen.lang.tr', - 'gen.lang.zh-cn', - 'gen.share.blogotext', - 'gen.share.diaspora', - 'gen.share.email', - 'gen.share.facebook', - 'gen.share.gnusocial', - 'gen.share.jdh', - 'gen.share.lemmy', - 'gen.share.linkedin', - 'gen.share.mastodon', - 'gen.share.movim', - 'gen.share.pinboard', - 'gen.share.pocket', - 'gen.share.raindrop', - 'gen.share.shaarli', - 'gen.share.twitter', - 'gen.share.wallabag', - 'gen.share.wallabagv2', - 'index.about.agpl3', - 'sub.api.title', -); diff --git a/cli/manipulate.translation.php b/cli/manipulate.translation.php index 1e9de4385..2b53b8606 100755 --- a/cli/manipulate.translation.php +++ b/cli/manipulate.translation.php @@ -3,7 +3,6 @@ require_once __DIR__ . '/i18n/I18nData.php'; require_once __DIR__ . '/i18n/I18nFile.php'; -require_once __DIR__ . '/i18n/I18nIgnoreFile.php'; $options = getopt("a:hk:l:o:rv:"); @@ -16,8 +15,7 @@ if (!array_key_exists('a', $options)) { } $data = new I18nFile(); -$ignore = new I18nIgnoreFile(); -$i18nData = new I18nData($data->load(), $ignore->load()); +$i18nData = new I18nData($data->load()); switch ($options['a']) { case 'add' : @@ -81,7 +79,6 @@ switch ($options['a']) { } $data->dump($i18nData->getData()); -$ignore->dump($i18nData->getIgnore()); /** * Output error message. @@ -99,19 +96,20 @@ ERROR; * Output help message. */ function help() { - $help = <<<HELP + $file = str_replace(__DIR__ . '/', '', __FILE__); + echo <<<HELP NAME - %1\$s + $file SYNOPSIS - php %1\$s [OPTIONS] + php $file [OPTIONS] DESCRIPTION Manipulate translation files. -a=ACTION select the action to perform. Available actions are add, delete, - exist, format, and ignore. This option is mandatory. + exist, format, ignore, and ignore_unmodified. This option is mandatory. -k=KEY select the key to work on. -v=VAL select the value to set. -l=LANG select the language to work on. @@ -121,38 +119,35 @@ DESCRIPTION EXAMPLES Example 1: add a language. It adds a new language by duplicating the referential. - php %1\$s -a add -l my_lang - php %1\$s -a add -l my_lang -o ref_lang + php $file -a add -l my_lang + php $file -a add -l my_lang -o ref_lang Example 2: add a new key. It adds the key for all supported languages. - php %1\$s -a add -k my_key -v my_value + php $file -a add -k my_key -v my_value Example 3: add a new value. It adds a new value for the selected key in the selected language. - php %1\$s -a add -k my_key -v my_value -l my_lang + php $file -a add -k my_key -v my_value -l my_lang Example 4: delete a key. It deletes the selected key from all supported languages. - php %1\$s -a delete -k my_key + php $file -a delete -k my_key Example 5: format i18n files. - php %1\$s -a format + php $file -a format Example 6: ignore a key. It adds the key in the ignore file to mark it as translated. - php %1\$s -a ignore -k my_key -l my_lang + php $file -a ignore -k my_key -l my_lang Example 7: revert ignore a key. It removes the key from the ignore file. - php %1\$s -a ignore -r -k my_key -l my_lang + php $file -a ignore -r -k my_key -l my_lang Example 8: ignore all unmodified keys. It adds all modified keys in the ignore file to mark it as translated. - php %1\$s -a ignore_unmodified -l my_lang + php $file -a ignore_unmodified -l my_lang Example 9: revert ignore of all unmodified keys. It removes the unmodified keys from the ignore file. Warning, this will also revert keys added individually. - php %1\$s -a ignore_unmodified -r -l my_lang + php $file -a ignore_unmodified -r -l my_lang Example 10: check if a key exist. - php %1\$s -a exist -k my_key\n\n + php $file -a exist -k my_key\n\n HELP; - $file = str_replace(__DIR__ . '/', '', __FILE__); - echo sprintf($help, $file); - exit; } |
