Ouzo\Translator::translateWithChoice PHP Method

translateWithChoice() public method

public translateWithChoice ( $key, $choice, $params = [] )
    public function translateWithChoice($key, $choice, $params = array())
    {
        $value = $this->translate($key, $params);
        $split = explode('|', $value);
        $index = $this->getIndex($choice);
        if ($index >= sizeof($split)) {
            $index = sizeof($split) - 1;
        }
        return $this->localize($split[$index]);
    }

Usage Example

Beispiel #1
0
 /**
  * @test
  */
 public function shouldSupportPluralizationForPolish()
 {
     //given
     $labels = array('key' => 'Mam %{n} rok|Mam %{n} lata|Mam %{n} lat');
     $translator = new Translator('pl', $labels);
     //when
     $translation1 = $translator->translateWithChoice('key', 1, array('n' => '1'));
     $translation2 = $translator->translateWithChoice('key', 2, array('n' => '2'));
     $translation3 = $translator->translateWithChoice('key', 5, array('n' => '5'));
     //then
     $this->assertEquals("Mam 1 rok", $translation1);
     $this->assertEquals("Mam 2 lata", $translation2);
     $this->assertEquals("Mam 5 lat", $translation3);
 }