diff options
| author | 2025-11-16 18:44:07 +0100 | |
|---|---|---|
| committer | 2025-11-16 18:44:07 +0100 | |
| commit | b9abe706902c666d85cf60eb828a72c4f3062297 (patch) | |
| tree | 887eae20f83b8e39bb515933615b4a39428b965e /cli/manipulate.translation.php | |
| parent | cf4d8043d2076ba346e9890a41984d458e94c8dc (diff) | |
Add new translate action: `move`, `make i18n-move-key` (#8214)
So that renaming something like `conf.shortcut.toggle_sidebar` to `conf.shortcut.toggle_aside` can be done easily even after already having added `conf.shortcut.toggle_sidebar` and translated it in multiple languages.
Example of usage:
```console
./cli/manipulate.translation.php -a move -k conf.shortcut.toggle_sidebar -n conf.shortcut.toggle_aside
```
```console
make i18n-move-key key="conf.shortcut.toggle_sidebar" new-key="conf.shortcut.toggle_aside"
```
The key will be moved and all values/states will be kept.
Diffstat (limited to 'cli/manipulate.translation.php')
| -rwxr-xr-x | cli/manipulate.translation.php | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/cli/manipulate.translation.php b/cli/manipulate.translation.php index 1c4a30ca6..59f28ec78 100755 --- a/cli/manipulate.translation.php +++ b/cli/manipulate.translation.php @@ -9,6 +9,7 @@ require_once dirname(__DIR__) . '/constants.php'; $cliOptions = new class extends CliOptionsParser { public string $action; public string $key; + public string $newKey; public string $value; public string $language; public string $originLanguage; @@ -18,6 +19,7 @@ $cliOptions = new class extends CliOptionsParser { public function __construct() { $this->addRequiredOption('action', (new CliOption('action', 'a'))); $this->addOption('key', (new CliOption('key', 'k'))); + $this->addOption('newKey', (new CliOption('new-key', 'n'))); $this->addOption('value', (new CliOption('value', 'v'))); $this->addOption('language', (new CliOption('language', 'l'))); $this->addOption('originLanguage', (new CliOption('origin-language', 'o'))); @@ -56,6 +58,14 @@ switch ($cliOptions->action) { exit; } break; + case 'move': + if (isset($cliOptions->key) && isset($cliOptions->newKey)) { + $i18nData->moveKey($cliOptions->key, $cliOptions->newKey); + } else { + error('You need to specify the key to move and its new location.'); + exit; + } + break; case 'delete': if (isset($cliOptions->key)) { $i18nData->removeKey($cliOptions->key); @@ -131,7 +141,7 @@ DESCRIPTION Manipulate translation files. -a, --action=ACTION - select the action to perform. Available actions are add, delete, + select the action to perform. Available actions are add, move, delete, exist, format, ignore, and ignore_unmodified. This option is mandatory. -k, --key=KEY select the key to work on. -v, --value=VAL select the value to set. @@ -176,6 +186,9 @@ Example 10: check if a key exist. Example 11: add a new file to all languages php $file -a add -k my_file.php -HELP; + +Example 12:\tmove an existing key into a new location + php $file -a move -k my_key -n new_location +HELP, PHP_EOL; exit(); } |
