original_string: protected function compileString($string, $vars)
      {
          $translation = $string;
  
          // Loop through and replace the placeholders
          // with the values from the $vars array.
          $count = 0;
          foreach ($vars as $key => $val) {
              $count++;
  
              // If array key is an integer,
              // use the counter to avoid clashes
              // with numbered placeholders.
              if (is_integer($key)) {
                  $key = $count;
              }
  
              // Replace placeholder with value
              $translation = str_replace(array("{{$key}}", "{{$count}}"), $val, $translation);
          }
  
          // Match plural:n,{x, y}
          if (preg_match_all("/{plural:(?<value>-{0,1}\d+)(,|, ){(?<replacements>.*?)}}/i", $translation, $matches)) {
              foreach($matches[0] as $id => $match) {
                  // Split the replacements into an array.
                  // There's an extra | at the start to allow for better matching
                  // with values.
                  $replacements = explode('|', $matches['replacements'][$id]);
  
                  // Get the value
                  $value = $matches['value'][$id];
  
                  // Check what replacement to use...
                  $replacement_id = $this->calculateNumeral($value);
                  if ($replacement_id !== false) {
                      $translation = str_replace($match, $replacements[$replacement_id], $translation);
                  }
                  // Get the last value then
                  else {
                      $translation = str_replace($match, end($replacements), $translation);
                  }
              }
          }
  
          // We're done here.
          return $translation;
      }
code: protected function compileString($string, $vars)
      {
          $translation = $string;
  
          // Loop through and replace the placeholders
          // with the values from the $vars array.
          $count = 0;
          foreach ($vars as $key => $val) {
              $count++;
  
              // If array key is an integer,
              // use the counter to avoid clashes
              // with numbered placeholders.
              if (is_integer($key)) {
                  $key = $count;
              }
  
              // Replace placeholder with value
              $translation = str_replace(array("{{$key}}", "{{$count}}"), $val, $translation);
          }
  
          // Match plural:n,{x, y}
          if (preg_match_all("/{plural:(?<value>-{0,1}\d+)(,|, ){(?<replacements>.*?)}}/i", $translation, $matches)) {
              foreach($matches[0] as $id => $match) {
                  // Split the replacements into an array.
                  // There's an extra | at the start to allow for better matching
                  // with values.
                  $replacements = explode('|', $matches['replacements'][$id]);
  
                  // Get the value
                  $value = $matches['value'][$id];
  
                  // Check what replacement to use...
                  $replacement_id = $this->calculateNumeral($value);
                  if ($replacement_id !== false) {
                      $translation = str_replace($match, $replacements[$replacement_id], $translation);
                  }
                  // Get the last value then
                  else {
                      $translation = str_replace($match, end($replacements), $translation);
                  }
              }
          }
  
          // We're done here.
          return $translation;
      }
code_tokens: protected function compileString ( $ string , $ vars ) { $ translation = $ string ; // Loop through and replace the placeholders // with the values from the $vars array. $ count = 0 ; foreach ( $ vars as $ key => $ val ) { $ count ++ ; // If array key is an integer, // use the counter to avoid clashes // with numbered placeholders. if ( is_integer ( $ key ) ) { $ key = $ count ; } // Replace placeholder with value $ translation = str_replace ( array ( "{{$key}}" , "{{$count}}" ) , $ val , $ translation ) ; } // Match plural:n,{x, y} if ( preg_match_all ( "/{plural:(?<value>-{0,1}\d+)(,|, ){(?<replacements>.*?)}}/i" , $ translation , $ matches ) ) { foreach ( $ matches [ 0 ] as $ id => $ match ) { // Split the replacements into an array. // There's an extra | at the start to allow for better matching // with values. $ replacements = explode ( '|' , $ matches [ 'replacements' ] [ $ id ] ) ; // Get the value $ value = $ matches [ 'value' ] [ $ id ] ; // Check what replacement to use... $ replacement_id = $ this -> calculateNumeral ( $ value ) ; if ( $ replacement_id !== false ) { $ translation = str_replace ( $ match , $ replacements [ $ replacement_id ] , $ translation ) ; } // Get the last value then else { $ translation = str_replace ( $ match , end ( $ replacements ) , $ translation ) ; } } } // We're done here. return $ translation ; }
docstring: Compiles the translated string with the variables.
  
  @example
  compileString('{plural:$1, {$1 post|$1 posts}}', array(1));
  will become "1 post"
  
  @param string $string
  @param array  $vars
  
  @return string
docstring_tokens: Compiles the translated string with the variables .