Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
25.00% covered (danger)
25.00%
1 / 4
CRAP
20.00% covered (danger)
20.00%
2 / 10
StaticTranslation
0.00% covered (danger)
0.00%
0 / 1
25.00% covered (danger)
25.00%
1 / 4
24.43
20.00% covered (danger)
20.00%
2 / 10
 __construct
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getStringTranslation
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 5
 reset
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 getLanguage
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
<?php
/**
 * @file
 * Contains \Drupal\Core\StringTranslation\Translator\StaticTranslation.
 */
namespace Drupal\Core\StringTranslation\Translator;
/**
 * String translator with a static cache for translations.
 *
 * This is a high performance way to provide a handful of string replacements.
 */
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 = array()) {
    $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 = array();
  }
  /**
   * 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 array();
  }
}