class StaticTranslation
Same name in other branches
- 9 core/lib/Drupal/Core/StringTranslation/Translator/StaticTranslation.php \Drupal\Core\StringTranslation\Translator\StaticTranslation
- 8.9.x core/lib/Drupal/Core/StringTranslation/Translator/StaticTranslation.php \Drupal\Core\StringTranslation\Translator\StaticTranslation
- 10 core/lib/Drupal/Core/StringTranslation/Translator/StaticTranslation.php \Drupal\Core\StringTranslation\Translator\StaticTranslation
String translator with a static cache for translations.
This is a high performance way to provide a handful of string replacements.
Hierarchy
- class \Drupal\Core\StringTranslation\Translator\StaticTranslation implements \Drupal\Core\StringTranslation\Translator\TranslatorInterface
Expanded class hierarchy of StaticTranslation
File
-
core/
lib/ Drupal/ Core/ StringTranslation/ Translator/ StaticTranslation.php, line 10
Namespace
Drupal\Core\StringTranslation\TranslatorView source
class StaticTranslation implements TranslatorInterface {
/**
* String translations.
*
* @var array
* Array of cached translations indexed by language and context.
*/
protected $translations;
/**
* Constructs a translator from an array of translations.
*
* @param array $translations
* Array of override strings indexed by language and context
*/
public function __construct($translations = []) {
$this->translations = $translations;
}
/**
* {@inheritdoc}
*/
public function getStringTranslation($langcode, $string, $context) {
if (!isset($this->translations[$langcode])) {
$this->translations[$langcode] = $this->getLanguage($langcode);
}
if (isset($this->translations[$langcode][$context][$string])) {
return $this->translations[$langcode][$context][$string];
}
else {
return FALSE;
}
}
/**
* {@inheritdoc}
*/
public function reset() {
$this->translations = [];
}
/**
* Retrieves translations for a given language.
*
* @param string $langcode
* The langcode of the language.
*
* @return array
* A multidimensional array of translations, indexed by the context the
* source string belongs to. The second level is using original strings as
* keys. An empty array will be returned when no translations are available.
*/
protected function getLanguage($langcode) {
// This class is usually a base class but we do not declare as abstract
// because it can be used on its own, by passing a simple array on the
// constructor. This can be useful while testing, but it does not support
// loading specific languages. All available languages should be passed
// in the constructor array.
return [];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
StaticTranslation::$translations | protected | property | String translations. | ||
StaticTranslation::getLanguage | protected | function | Retrieves translations for a given language. | 2 | |
StaticTranslation::getStringTranslation | public | function | Overrides TranslatorInterface::getStringTranslation | ||
StaticTranslation::reset | public | function | Overrides TranslatorInterface::reset | ||
StaticTranslation::__construct | public | function | Constructs a translator from an array of translations. | 2 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.