From b9abe706902c666d85cf60eb828a72c4f3062297 Mon Sep 17 00:00:00 2001 From: Inverle Date: Sun, 16 Nov 2025 18:44:07 +0100 Subject: 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. --- tests/cli/i18n/I18nDataTest.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/cli/i18n/I18nDataTest.php b/tests/cli/i18n/I18nDataTest.php index 02ad7ea9a..5533ce166 100644 --- a/tests/cli/i18n/I18nDataTest.php +++ b/tests/cli/i18n/I18nDataTest.php @@ -34,6 +34,16 @@ final class I18nDataTest extends \PHPUnit\Framework\TestCase { ]; } + public function testMoveKey(): void { + $data = new I18nData($this->referenceData); + $value = $data->getData()['en']['file2.php']['file2.l1.l2.k2']; + self::assertTrue($data->isKnown('file2.l1.l2.k2')); + self::assertFalse($data->isKnown('file2.l1.nkl2')); + $data->moveKey('file2.l1.l2.k2', 'file2.l1.nkl2'); + self::assertFalse($data->isKnown('file2.l1.l2.k2')); + self::assertTrue($data->isKnown('file2.l1.nkl2')); + } + public function testConstructWhenReferenceOnly(): void { $data = new I18nData($this->referenceData); self::assertSame($this->referenceData, $data->getData()); @@ -302,7 +312,7 @@ final class I18nDataTest extends \PHPUnit\Framework\TestCase { public function testAddLanguageWhenLanguageExists(): void { $this->expectException(\Exception::class); - $this->expectExceptionMessage('The selected language already exist.'); + $this->expectExceptionMessage('The selected language already exists.'); $data = new I18nData($this->referenceData); $data->addLanguage('en'); } @@ -430,7 +440,7 @@ final class I18nDataTest extends \PHPUnit\Framework\TestCase { public function testAddKeyWhenKeyExists(): void { $this->expectException(\Exception::class); - $this->expectExceptionMessage('The selected key already exist.'); + $this->expectExceptionMessage('The selected key already exists.'); $data = new I18nData($this->referenceData); $data->addKey('file2.l1.l2.k1', 'value'); } -- cgit v1.2.3