#!/usr/bin/env php [ 'action' => ':', 'help' => '', 'key' => ':', 'language' => ':', 'origin-language' => ':', 'revert' => '', 'value' => ':', ], 'short' => [ 'action' => 'a', 'help' => 'h', 'key' => 'k', 'language' => 'l', 'origin-language' => 'o', 'revert' => 'r', 'value' => 'v', ], 'deprecated' => [], ]; $options = parseCliParams($parameters); if (!empty($options['invalid']) || array_key_exists('help', $options['valid'])) { manipulateHelp(); exit(); } if (!array_key_exists('action', $options['valid'])) { error('You need to specify the action to perform.'); } $data = new I18nFile(); $i18nData = new I18nData($data->load()); switch ($options['valid']['action']) { case 'add' : if (array_key_exists('key', $options['valid']) && array_key_exists('value', $options['valid']) && array_key_exists('language', $options['valid'])) { $i18nData->addValue($options['valid']['key'], $options['valid']['value'], $options['valid']['language']); } elseif (array_key_exists('key', $options['valid']) && array_key_exists('value', $options['valid'])) { $i18nData->addKey($options['valid']['key'], $options['valid']['value']); } elseif (array_key_exists('language', $options['valid'])) { $reference = null; if (array_key_exists('origin-language', $options['valid'])) { $reference = $options['valid']['origin-language']; } $i18nData->addLanguage($options['valid']['language'], $reference); } else { error('You need to specify a valid set of options.'); exit; } break; case 'delete' : if (array_key_exists('key', $options['valid'])) { $i18nData->removeKey($options['valid']['key']); } else { error('You need to specify the key to delete.'); exit; } break; case 'exist': if (array_key_exists('key', $options['valid'])) { $key = $options['valid']['key']; if ($i18nData->isKnown($key)) { echo "The '{$key}' key is known.\n\n"; } else { echo "The '{$key}' key is unknown.\n\n"; } } else { error('You need to specify the key to check.'); exit; } break; case 'format' : break; case 'ignore' : if (array_key_exists('language', $options['valid']) && array_key_exists('key', $options['valid'])) { $i18nData->ignore($options['valid']['key'], $options['valid']['language'], array_key_exists('revert', $options['valid'])); } else { error('You need to specify a valid set of options.'); exit; } break; case 'ignore_unmodified' : if (array_key_exists('language', $options['valid'])) { $i18nData->ignore_unmodified($options['valid']['language'], array_key_exists('revert', $options['valid'])); } else { error('You need to specify a valid set of options.'); exit; } break; default : manipulateHelp(); exit; } $data->dump($i18nData->getData()); /** * Output error message. */ function error(string $message): void { $error = <<