original_string: public function translate($key, array $tokensValues = [])
      {
          if (isset($tokensValues['_count'])) {
              $message = $this->getMessage(static::PLURAL_PREFIX . $key);
              if (!$message) {
                  $message = $this->getMessage($key);
              }
          } else {
              $message = $this->getMessage($key);
              if (!$message) {
                  $message = $this->getMessage(static::PLURAL_PREFIX . $key);
              }
          }
  
          if (!$message) {
              // Fallback to the message key
              $message = $key;
          }
  
          // Check for missing/invalid context
          if (isset($message['_context'])) {
              $message = $this->resolveContext($key, $message, $tokensValues);
              unset($tokensValues['_context']);
          }
  
          if (!$tokensValues) {
              // Fallback for plurals that were using the singular key
              if (is_array($message)) {
                  return array_values($message + [''])[0];
              }
  
              return $message;
          }
  
          // Singular message, but plural call
          if (is_string($message) && isset($tokensValues['_singular'])) {
              $message = [$tokensValues['_singular'], $message];
          }
  
          // Resolve plural form.
          if (is_array($message)) {
              $count = isset($tokensValues['_count']) ? $tokensValues['_count'] : 0;
              $form = PluralRules::calculate($this->locale, $count);
              $message = isset($message[$form]) ? $message[$form] : (string)end($message);
          }
  
          if (strlen($message) === 0) {
              $message = $key;
          }
  
          return $this->formatter->format($this->locale, $message, $tokensValues);
      }
code: public function translate($key, array $tokensValues = [])
      {
          if (isset($tokensValues['_count'])) {
              $message = $this->getMessage(static::PLURAL_PREFIX . $key);
              if (!$message) {
                  $message = $this->getMessage($key);
              }
          } else {
              $message = $this->getMessage($key);
              if (!$message) {
                  $message = $this->getMessage(static::PLURAL_PREFIX . $key);
              }
          }
  
          if (!$message) {
              // Fallback to the message key
              $message = $key;
          }
  
          // Check for missing/invalid context
          if (isset($message['_context'])) {
              $message = $this->resolveContext($key, $message, $tokensValues);
              unset($tokensValues['_context']);
          }
  
          if (!$tokensValues) {
              // Fallback for plurals that were using the singular key
              if (is_array($message)) {
                  return array_values($message + [''])[0];
              }
  
              return $message;
          }
  
          // Singular message, but plural call
          if (is_string($message) && isset($tokensValues['_singular'])) {
              $message = [$tokensValues['_singular'], $message];
          }
  
          // Resolve plural form.
          if (is_array($message)) {
              $count = isset($tokensValues['_count']) ? $tokensValues['_count'] : 0;
              $form = PluralRules::calculate($this->locale, $count);
              $message = isset($message[$form]) ? $message[$form] : (string)end($message);
          }
  
          if (strlen($message) === 0) {
              $message = $key;
          }
  
          return $this->formatter->format($this->locale, $message, $tokensValues);
      }
code_tokens: public function translate ( $ key , array $ tokensValues = [ ] ) { if ( isset ( $ tokensValues [ '_count' ] ) ) { $ message = $ this -> getMessage ( static :: PLURAL_PREFIX . $ key ) ; if ( ! $ message ) { $ message = $ this -> getMessage ( $ key ) ; } } else { $ message = $ this -> getMessage ( $ key ) ; if ( ! $ message ) { $ message = $ this -> getMessage ( static :: PLURAL_PREFIX . $ key ) ; } } if ( ! $ message ) { // Fallback to the message key $ message = $ key ; } // Check for missing/invalid context if ( isset ( $ message [ '_context' ] ) ) { $ message = $ this -> resolveContext ( $ key , $ message , $ tokensValues ) ; unset ( $ tokensValues [ '_context' ] ) ; } if ( ! $ tokensValues ) { // Fallback for plurals that were using the singular key if ( is_array ( $ message ) ) { return array_values ( $ message + [ '' ] ) [ 0 ] ; } return $ message ; } // Singular message, but plural call if ( is_string ( $ message ) && isset ( $ tokensValues [ '_singular' ] ) ) { $ message = [ $ tokensValues [ '_singular' ] , $ message ] ; } // Resolve plural form. if ( is_array ( $ message ) ) { $ count = isset ( $ tokensValues [ '_count' ] ) ? $ tokensValues [ '_count' ] : 0 ; $ form = PluralRules :: calculate ( $ this -> locale , $ count ) ; $ message = isset ( $ message [ $ form ] ) ? $ message [ $ form ] : ( string ) end ( $ message ) ; } if ( strlen ( $ message ) === 0 ) { $ message = $ key ; } return $ this -> formatter -> format ( $ this -> locale , $ message , $ tokensValues ) ; }
docstring: Translates the message formatting any placeholders
  
  
  @param string $key The message key.
  @param array $tokensValues Token values to interpolate into the
  message.
  @return string The translated message with tokens replaced.
docstring_tokens: Translates the message formatting any placeholders