LocaleConfigSubscriber::saveCustomizedTranslation

protected LocaleConfigSubscriber::saveCustomizedTranslation($name, $source, $context, $new_translation, $langcode)

Saves a translation string and marks it as customized.

Parameters

string $name: The configuration name.

string $source: The source string value.

string $context: The source string context.

string $new_translation: The translation string.

string $langcode: The language code of the translation.

File

core/modules/locale/src/LocaleConfigSubscriber.php, line 208

Class

LocaleConfigSubscriber
Updates strings translation when configuration translations change.

Namespace

Drupal\locale

Code

protected function saveCustomizedTranslation($name, $source, $context, $new_translation, $langcode) {
  $locale_translation = $this->localeConfigManager->getStringTranslation($name, $langcode, $source, $context);
  if (!empty($locale_translation)) {
    // Save this translation as custom if it was a new translation and not the
    // same as the source. (The interface prefills translation values with the
    // source). Or if there was an existing (non-empty) translation and the
    // user changed it (even if it was changed back to the original value).
    // Otherwise the translation file would be overwritten with the locale
    // copy again later.
    $existing_translation = $locale_translation->getString();
    if (($locale_translation->isNew() && $source != $new_translation) || 
      (!$locale_translation->isNew() && ((empty($existing_translation) && $source != $new_translation) || ((!empty($existing_translation) && $new_translation != $existing_translation))))) {
      $locale_translation
      ->setString($new_translation)
        ->setCustomized(TRUE)
        ->save();
    }
  }
}
doc_Drupal
2016-10-29 09:23:58
Comments
Leave a Comment

Please login to continue.