diff --git a/core/modules/config_translation/migrations/d7_system_site_translation.yml b/core/modules/config_translation/migrations/d7_system_site_translation.yml new file mode 100644 index 0000000000000000000000000000000000000000..9aac86df53aec5ed9827ad29e7b309eb141e038c --- /dev/null +++ b/core/modules/config_translation/migrations/d7_system_site_translation.yml @@ -0,0 +1,27 @@ +id: d7_system_site_translation +label: Site configuration translation +migration_tags: + - Drupal 7 + - Configuration + - Multilingual +source: + plugin: d7_variable_translation + variables: + - site_name + - site_mail + - site_slogan + - site_frontpage + - site_403 + - site_404 +process: + langcode: language + name: site_name + mail: site_mail + slogan: site_slogan + 'page/front': site_frontpage + 'page/403': site_403 + 'page/404': site_404 +destination: + plugin: config + config_name: system.site + translations: true diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d7/MigrateSystemSiteTranslationTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d7/MigrateSystemSiteTranslationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e25a0f8fb9375664403d66eb582ffeb40c2efede --- /dev/null +++ b/core/modules/config_translation/tests/src/Kernel/Migrate/d7/MigrateSystemSiteTranslationTest.php @@ -0,0 +1,54 @@ +executeMigration('d7_system_site_translation'); + } + + /** + * Tests migration of system (site) variables to system.site.yml. + */ + public function testSystemSite() { + $language_manager = \Drupal::service('language_manager'); + $config_translation = $language_manager->getLanguageConfigOverride('fr', 'system.site'); + $this->assertSame('The Site Name', $config_translation->get('name')); + $this->assertSame('fr - The Slogan', $config_translation->get('slogan')); + $this->assertSame('node', $config_translation->get('page.403')); + $this->assertSame('node', $config_translation->get('page.404')); + $this->assertSame('node', $config_translation->get('page.front')); + $this->assertSame(NULL, $config_translation->get('admin_compact_mode')); + + $config_translation = $language_manager->getLanguageConfigOverride('is', 'system.site'); + $this->assertSame('is - The Site Name', $config_translation->get('name')); + $this->assertSame('is - The Slogan', $config_translation->get('slogan')); + $this->assertSame('node/1', $config_translation->get('page.403')); + $this->assertSame('node/6', $config_translation->get('page.404')); + $this->assertSame('node/4', $config_translation->get('page.front')); + $this->assertNULL($config_translation->get('admin_compact_mode')); + } + +} diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php index 9e3e2042a4c7eceb6c93a46763b61246ec61cfb3..bf91e17c1588381dec989219d2a89f15e598ce86 100644 --- a/core/modules/migrate_drupal/tests/fixtures/drupal7.php +++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php @@ -51469,6 +51469,76 @@ 'value' => 'is - This is a custom maintenance mode message.', 'serialized' => '0', )) +->values(array( + 'realm' => 'language', + 'realm_key' => 'is', + 'name' => 'site_403', + 'value' => 'node/1', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'is', + 'name' => 'site_404', + 'value' => 'node/6', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'is', + 'name' => 'site_frontpage', + 'value' => 'node/4', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'is', + 'name' => 'site_name', + 'value' => 'is - The Site Name', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'is', + 'name' => 'site_slogan', + 'value' => 'is - The Slogan', + 'serialized' => '0', +)) + ->values(array( + 'realm' => 'language', + 'realm_key' => 'fr', + 'name' => 'site_403', + 'value' => 'node', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'fr', + 'name' => 'site_404', + 'value' => 'node', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'fr', + 'name' => 'site_frontpage', + 'value' => 'node', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'fr', + 'name' => 'site_name', + 'value' => 'The Site Name', + 'serialized' => '0', +)) +->values(array( + 'realm' => 'language', + 'realm_key' => 'fr', + 'name' => 'site_slogan', + 'value' => 'fr - The Slogan', + 'serialized' => '0', +)) ->execute(); $connection->schema()->createTable('watchdog', array(