ConfigImportLocaleSubscriber.php in Locale: Config import 8
File
src/ConfigImportLocaleSubscriber.php
View source
<?php
namespace Drupal\config_import_locale;
use Drupal\locale\LocaleConfigSubscriber;
class ConfigImportLocaleSubscriber extends LocaleConfigSubscriber {
protected function saveCustomizedTranslation($name, $source, $context, $new_translation, $langcode) {
$config_import_locale_config = \Drupal::config('config_import_locale.settings');
$overwrite = $config_import_locale_config
->get('overwrite_interface_translation');
switch ($overwrite) {
case 'no_overwrite':
$this
->saveCustomizedTranslationNoOverwrite($name, $source, $context, $new_translation, $langcode);
break;
case 'nothing':
break;
default:
parent::saveCustomizedTranslation($name, $source, $context, $new_translation, $langcode);
}
}
protected function saveCustomizedTranslationNoOverwrite($name, $source, $context, $new_translation, $langcode) {
$locale_translation = $this->localeConfigManager
->getStringTranslation($name, $langcode, $source, $context);
if (!empty($locale_translation)) {
$existing_translation = $locale_translation
->getString();
if ($locale_translation
->isNew() && $source != $new_translation || !$locale_translation
->isNew() && empty($existing_translation) && $source != $new_translation) {
$locale_translation
->setString($new_translation)
->setCustomized(TRUE)
->save();
}
}
}
}