setParameter('language.default_values', $language); } /** * {@inheritdoc} */ protected function setUpLanguages() { parent::setUpLanguages(); ConfigurableLanguage::createFromLangcode('hu')->save(); } /** * {@inheritdoc} */ protected function setUpLocale() { parent::setUpLocale(); $this->setUpTranslation('locale_test.translation', 'test', 'English test', 'Hungarian test', 'hu', TRUE); } /** * Tests that the language of default configuration was updated. */ public function testDefaultConfigLanguage() { $this->assertEqual('hu', $this->configFactory->getEditable('locale_test.no_translation')->get('langcode')); $this->assertEqual('hu', $this->configFactory->getEditable('locale_test.translation')->get('langcode')); $this->assertEqual($this->configFactory->getEditable('locale_test.translation')->get('test'), 'Hungarian test'); } /** * Tests creating translations of shipped configuration. */ public function testCreateActiveTranslation() { $config_name = 'locale_test.no_translation'; $this->saveLanguageActive($config_name, 'test', 'Test (Hungarian)', 'hu'); $this->assertTranslation($config_name, 'Test (Hungarian)', 'hu'); } /** * Tests importing community translations of shipped configuration. */ public function testLocaleCreateActiveTranslation() { $config_name = 'locale_test.no_translation'; $this->saveLocaleTranslationData($config_name, 'test', 'Test', 'Test (Hungarian)', 'hu', TRUE); $this->assertTranslation($config_name, 'Test (Hungarian)', 'hu', FALSE); } /** * Tests updating translations of shipped configuration. */ public function testUpdateActiveTranslation() { $config_name = 'locale_test.translation'; $this->saveLanguageActive($config_name, 'test', 'Updated Hungarian test', 'hu'); $this->assertTranslation($config_name, 'Updated Hungarian test', 'hu'); } /** * Tests updating community translations of shipped configuration. */ public function testLocaleUpdateActiveTranslation() { $config_name = 'locale_test.translation'; $this->saveLocaleTranslationData($config_name, 'test', 'English test', 'Updated Hungarian test', 'hu', TRUE); $this->assertTranslation($config_name, 'Updated Hungarian test', 'hu', FALSE); } /** * Tests deleting a translation override. */ public function testDeleteTranslation() { $config_name = 'locale_test.translation'; $this->deleteLanguageOverride($config_name, 'test', 'English test', 'de'); // The German translation in this case will be forced to the Hungarian // source so its not overwritten with locale data later. $this->assertTranslation($config_name, 'Hungarian test', 'de'); } /** * Tests deleting translations of shipped configuration. */ public function testDeleteActiveTranslation() { $config_name = 'locale_test.translation'; $this->configFactory->getEditable($config_name)->delete(); // Deleting active configuration should not change the locale translation. $this->assertTranslation($config_name, 'Hungarian test', 'hu', FALSE); } /** * Tests deleting community translations of shipped configuration. */ public function testLocaleDeleteActiveTranslation() { $config_name = 'locale_test.translation'; $this->deleteLocaleTranslationData($config_name, 'test', 'English test', 'hu'); // Deleting the locale translation should not change active config. $this->assertEqual($this->configFactory->getEditable($config_name)->get('test'), 'Hungarian test'); } /** * Tests that adding English creates a translation override. */ public function testEnglish() { $config_name = 'locale_test.translation'; ConfigurableLanguage::createFromLangcode('en')->save(); // Adding a language on the UI would normally call updateConfigTranslations. $this->localeConfigManager->updateConfigTranslations([$config_name], ['en']); $this->assertConfigOverride($config_name, 'test', 'English test', 'en'); $this->configFactory->getEditable('locale.settings')->set('translate_english', TRUE)->save(); $this->saveLocaleTranslationData($config_name, 'test', 'English test', 'Updated English test', 'en'); $this->assertTranslation($config_name, 'Updated English test', 'en', FALSE); $this->saveLanguageOverride($config_name, 'test', 'Updated English', 'en'); $this->assertTranslation($config_name, 'Updated English', 'en'); $this->deleteLocaleTranslationData($config_name, 'test', 'English test', 'en'); $this->assertNoConfigOverride($config_name, 'en'); } /** * Saves a language override. * * This will invoke LocaleConfigSubscriber through the event dispatcher. To * make sure the configuration was persisted correctly, the configuration * value is checked. Because LocaleConfigSubscriber temporarily disables the * override state of the configuration factory we check that the correct value * is restored afterwards. * * @param string $config_name * The configuration name. * @param string $key * The configuration key. * @param string $value * The configuration value to save. * @param string $langcode * The language code. */ protected function saveLanguageActive($config_name, $key, $value, $langcode) { $this ->configFactory ->getEditable($config_name) ->set($key, $value) ->save(); $this->assertActiveConfig($config_name, $key, $value, $langcode); } }