Ako riešite plural stringy pri cz/sk vyrazoch?
- CZechBoY
- Člen | 3608
Tak nejjednodušší varianta je to pole.
<?php
class ArrayTranslator implements ITranslator
{
private $dictionary;
public function __construct()
{
$this->dictionary = array(
'auto' => array (
1 => 'auto',
2 => 'auta',
5 => 'aut',
);
);
}
public function translate($message, $count)
{
$baseCount = $count % 10;
if ($baseCount < 2) {
$fixedCount = 1;
} elseif ($baseCount >= 2 && $baseCount < 5) {
$fixedCount = 2;
} else {
$fixedCount = 5;
}
if (isset($this->dictionary[$message][$fixedCount])) {
return $this->dictionary[$message][$fixedCount];
}
}
}
Editoval CZechBoY (23. 12. 2016 13:32)
- Kamil Valenta
- Člen | 820
CZechBoY napsal(a):
$baseCount = $count % 10; if ($baseCount < 2) { $fixedCount = 1; } elseif ($baseCount >= 2 && $baseCount < 5) { $fixedCount = 2; } else { $fixedCount = 5; }
Používám to podobně, jen podmínky mám jinak, protože teď Ti bude překladač vracet třeba: 20 auto, count=0 by měl být ve stejné větvi jako count >= 5.
Takže udržuju překlady pro:
- count = 1
- count = 2 || 3 || 4
- count = 0 || count > 4