You are here

private function PoDatabaseReader::loadStrings in Localization update 7.2

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

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

File

includes/locale/PoDatabaseReader.php, line 125
Definition of PoDatabaseReader.

Class

PoDatabaseReader
Gettext PO reader working with the locale module database.

Code

private function loadStrings() {
  $langcode = $this->_langcode;
  $options = $this->_options;
  $textgroup = $this->_textgroup;
  $conditions = array();
  if ($textgroup) {
    $conditions['textgroup'] = $textgroup;
  }
  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'] = L10N_UPDATE_CUSTOMIZED;
      }

      // Else no filtering needed in this case.
    }
    else {
      if ($options['not_customized']) {

        // Filter for non-customized strings only.
        $conditions['customized'] = L10N_UPDATE_NOT_CUSTOMIZED;
      }
      else {

        // Filter for strings without translation.
        $conditions['translated'] = FALSE;
      }
    }
    if (!$options['not_translated']) {

      // Filter for string with translation.
      $conditions['translated'] = TRUE;
    }
    return $this->storage
      ->getTranslations($conditions);
  }
  else {

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