private function PoDatabaseReader::loadStrings in Drupal 10
Same name and namespace in other branches
- 8 core/modules/locale/src/PoDatabaseReader.php \Drupal\locale\PoDatabaseReader::loadStrings()
- 9 core/modules/locale/src/PoDatabaseReader.php \Drupal\locale\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\localeCode
private function loadStrings() {
$langcode = $this->langcode;
$options = $this->options;
$conditions = [];
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);
}
}