zf2
에는보기 도우미 translatePlural
이 있습니다. 다음과 같이 사용할 수 있습니다. ZF2 복수 번역자, 왜 배열입니까?
echo $this->translatePlural('car', 'cars', $num);
그래서
$num == 1
그것은 말할 때 다른
car
cars
(현재 영어 규칙을 사용하기위한 복수의 규칙에 따라하지만).
파일로 번역하려면. 다음과 같은 배열을 사용해야합니다.
'car' => [
'auto',
'autos',
],
그래서 지금 당신은 다른 auto
경우 $num == 1
autos
얻을.
car
을 코드에서 변환 할 수있는 곳이 있다면 translate('car')
을 할 수 있지만 이는 분명히 우리가 원하는 것이 아닌 array to string coverstion
고지로 돌아갑니다.
car
도 번역 할 수 있도록 복수형을 사용하면 코드를 다음과 같이 수정할 수 있습니다.
echo $this->translatePlural('car_plural', 'cars', $num);
그리고 언어 설정;
'car_plural' => [
'auto',
'autos',
],
'car' => 'auto',
그리고 car_plural
에 대한 영어 번역을 추가해야합니다. 그러므로 translatePlural
기본 메시지는 기본 설정에서 translatePlural
을 사용하지 않고또는 cars
중 하나만 선택하고 번역하지 않는 한, 기본 설정에서는 거의 유용하지 않게됩니다.
translatePlural
대신 $num
을 보면 pluralRule
을 사용하여 단수 (자동차) 또는 복수형 (자동차) 중에서 선택할 수 있습니다. 그런 다음 translate
도우미를 사용하여 단수 또는 복수를 번역하십시오. 예를 들어 갑작스러운 작업과 같은 기본 설정과 같은 쉬운 구성을 가질 수 있습니다.
'car' => 'auto',
'cars' => 'autos',
이상한 키가 없으므로 영어 번역이나 별난 것이 필요하지 않습니다.
그래서/tldr;
왜 ZF2 복수형은 배열을 사용하며, 어느 것이 사용하고 하나만 번역하는지 확인하지 않는 이유는 무엇입니까? 더 나은 방법으로 보입니다.
https://github.com/zendframework/zf2/issues/4939 –