PoDatabaseReader::loadStrings

private PoDatabaseReader::loadStrings()

Builds and executes a database query based on options set earlier.

File

core/modules/locale/src/PoDatabaseReader.php, line 104

Class

PoDatabaseReader
Gettext PO reader working with the locale module database.

Namespace

Drupal\locale

Code

private function loadStrings() {
  $langcode = $this->langcode;
  $options = $this->options;
  $conditions = array();

  if (array_sum($options) == 0) {
    // If user asked to not include anything in the translation files,
    // that would not make sense, so just fall back on providing a template.
    $langcode = NULL;
    // Force option to get both translated and untranslated strings.
    $options['not_translated'] = TRUE;
  }
  // Build and execute query to collect source strings and translations.
  if (!empty($langcode)) {
    $conditions['language'] = $langcode;
    // Translate some options into field conditions.
    if ($options['customized']) {
      if (!$options['not_customized']) {
        // Filter for customized strings only.
        $conditions['customized'] = LOCALE_CUSTOMIZED;
      }
      // Else no filtering needed in this case.
    }
    else {
      if ($options['not_customized']) {
        // Filter for non-customized strings only.
        $conditions['customized'] = LOCALE_NOT_CUSTOMIZED;
      }
      else {
        // Filter for strings without translation.
        $conditions['translated'] = FALSE;
      }
    }
    if (!$options['not_translated']) {
      // Filter for string with translation.
      $conditions['translated'] = TRUE;
    }
    return \Drupal::service('locale.storage')->getTranslations($conditions);
  }
  else {
    // If no language, we don't need any of the target fields.
    return \Drupal::service('locale.storage')->getStrings($conditions);
  }
}
doc_Drupal
2016-10-29 09:34:23
Comments
Leave a Comment

Please login to continue.