private function PoDatabaseReader::loadStrings

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

1 call to PoDatabaseReader::loadStrings()
PoDatabaseReader::readString in drupal/core/modules/locale/lib/Drupal/locale/PoDatabaseReader.php
Get the database result resource for the given language and options.

File

drupal/core/modules/locale/lib/Drupal/locale/PoDatabaseReader.php, line 111
Definition of Drupal\locale\PoDatabaseReader.

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 locale_storage()
      ->getTranslations($conditions);
  }
  else {

    // If no language, we don't need any of the target fields.
    return locale_storage()
      ->getStrings($conditions);
  }
}