class StaticTranslation

Same name in other branches
  1. 9 core/lib/Drupal/Core/StringTranslation/Translator/StaticTranslation.php \Drupal\Core\StringTranslation\Translator\StaticTranslation
  2. 10 core/lib/Drupal/Core/StringTranslation/Translator/StaticTranslation.php \Drupal\Core\StringTranslation\Translator\StaticTranslation
  3. 11.x 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

Expanded class hierarchy of StaticTranslation

File

core/lib/Drupal/Core/StringTranslation/Translator/StaticTranslation.php, line 10

Namespace

Drupal\Core\StringTranslation\Translator
View 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 Retrieves English string to given language. Overrides TranslatorInterface::getStringTranslation
StaticTranslation::reset public function Resets translation cache. 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.