2014-04-17 6 views
1

저는 CakePHP 2.4.6을 사용합니다.복수형 CakePHP 로켈 변환이 없습니다

github repository에서 로케일 파일 (cake.po)이 표시됩니다.
나는 내보기 파일 내부에 같은 코드를 가지고 :

$myStr = $this->Time->timeAgoInWords($mTimestamp, array('end' => '+10 year')); 

내가 아래 오류를 붙여. 모든 오류는 this link에서 찾을 수 있습니다.

Warning: Warning (512): Missing plural form translation for "%d year" in "cake" 
    domain, "fra" locale. 
Check your po file for correct plurals and valid Plural-Forms header. 
    in [/var/www/vhosts/example.com/httpdocs/lib/Cake/I18n/I18n.php, line 210] 
Trace: 
I18n::translate() - CORE/Cake/I18n/I18n.php, line 210 
__dn - CORE/Cake/basics.php, line 644 
CakeTime::timeAgoInWords() - CORE/Cake/Utility/CakeTime.php, line 884 
TimeHelper::timeAgoInWords() - CORE/Cake/View/Helper/TimeHelper.php, line 417 
include - APP/View/Mytool/index.ctp, line 42 
View::_evaluate() - CORE/Cake/View/View.php, line 935 
View::_render() - CORE/Cake/View/View.php, line 897 
View::render() - CORE/Cake/View/View.php, line 466 
Controller::render() - CORE/Cake/Controller/Controller.php, line 952 
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 192 
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 160 
[main] - APP/webroot/index.php, line 111 

그래서 cake.po 파일의 라인을 194-197로, %d yearlike this에 대한 번역이 존재한다.

나는 또한 /app/tmp/cache/persistent 디렉토리에서 french의 cake.po 캐시 파일을 제거했습니다.

나는이 오류가 왜 내 프랑스어 cake.po 파일의 번역이 있지만? 나는 또한 other languages' cake.po 파일을 추가
참고.
그리고 그들은 오류를 제공하지 않습니다. 훌라 cake.po 파일에 Plural-Forms에 문제가 있습니다

답변

2

.

변경 :

"Plural-Forms: nplurals=2; plural=(n > 1);\n" 

하고 작동합니다 :

"Plural-Forms: nplurals=2; plural=(n==1? 0 : 1);\n" 

합니다.

나는 그것을 테스트했습니다 :

echo sprintf(__dn('cake', '%d year', '%d years',2),2); 
+0

당신에게 대단히 감사합니다 ... – trante