When using the StringTranslationTrait in a service why should you inject the 'string_translation' service aswell?
If you didn't inject the string translation service into $this-&gt;stringTranslation, the trait would get it from the static \Drupal wrapper

  /**
   * Gets the string translation service.
   *
   * @return \Drupal\Core\StringTranslation\TranslationInterface
   *   The string translation service.
   */
  protected function getStringTranslation() {
    if (!$this-&gt;stringTranslation) {
      $this-&gt;stringTranslation = \Drupal::service('string_translation');
    }

    return $this-&gt;stringTranslation;
  }


and this should be avoided in OOP code. The main reason for this is to be able to inject mock-up services for code tests.