aboutsummaryrefslogtreecommitdiff
path: root/cli/manipulate.translation.php
diff options
context:
space:
mode:
Diffstat (limited to 'cli/manipulate.translation.php')
-rw-r--r--cli/manipulate.translation.php79
1 files changed, 79 insertions, 0 deletions
diff --git a/cli/manipulate.translation.php b/cli/manipulate.translation.php
new file mode 100644
index 000000000..aace5723a
--- /dev/null
+++ b/cli/manipulate.translation.php
@@ -0,0 +1,79 @@
+<?php
+
+$options = getopt("h");
+
+if (array_key_exists('h', $options)) {
+ help();
+}
+
+if (1 === $argc || 4 < $argc) {
+ help();
+}
+
+require_once __DIR__ . '/i18n/I18nFile.php';
+
+$i18nFile = new I18nFile();
+$i18nData = $i18nFile->load();
+
+switch ($argv[1]) {
+ case 'add_language' :
+ $i18nData->addLanguage($argv[2]);
+ break;
+ case 'add_key' :
+ if (3 === $argc) {
+ help();
+ }
+ $i18nData->addKey($argv[2], $argv[3]);
+ break;
+ case 'duplicate_key' :
+ $i18nData->duplicateKey($argv[2]);
+ break;
+ case 'delete_key' :
+ $i18nData->removeKey($argv[2]);
+ break;
+ default :
+ help();
+}
+
+if ($i18nData->hasChanged()) {
+ $i18nFile->dump($i18nData);
+}
+
+/**
+ * Output help message.
+ */
+function help() {
+ $help = <<<HELP
+NAME
+ %s
+
+SYNOPSIS
+ php %s [OPTION] [OPERATION] [KEY] [VALUE]
+
+DESCRIPTION
+ Manipulate translation files. Available operations are
+ Check if translation files have missing keys or missing translations.
+
+ -h display this help and exit.
+
+OPERATION
+ add_language
+ add a new language by duplicating the referential. This operation
+ needs only a KEY.
+
+ add_key add a new key in the referential. This operation needs a KEY and
+ a VALUE.
+
+ duplicate_key
+ duplicate a referential key in other languages. This operation
+ needs only a KEY.
+
+ delete_key
+ delete a referential key from all languages. This operation needs
+ only a KEY.
+
+HELP;
+ $file = str_replace(__DIR__ . '/', '', __FILE__);
+ echo sprintf($help, $file, $file);
+ exit;
+}