2014-06-24 5 views
0

내 응용 프로그램에서 기본 Cake PHP 시간 도우미 문자열을 변환하려면 어떻게해야합니까? timeAgoInWords이라는 함수를 Cake php에서 사용하고 있는데 시간 도우미 함수에서 나에게 5 hours, 52 minutes ago과 같은 텍스트를 제공합니다 .시간 텍스트를 다른 언어로 번역

이것을 다른 언어로 번역하고 싶습니다. 어떻게 할 수 있습니까? 나는 문서를 수색하고 나는 아무것도 얻지 않았다.

<?php echo $this->Time->timeAgoInWords($question['Question']['created']) ?> 
+0

다른 정보를 모르는 경우 str_replace를 사용하여 영어 단어를 올바른 언어 단어로 바꾸는 것이 가장 쉬운 방법이라고 할 수 있습니다. –

+0

어떻게 할 수 있습니까? – osos

+0

http://www.php.net//manual/en/function.str-replace.php –

답변

0

물건을 완성하려면 사용자 정의 도우미가 필요합니다. timeAgoInWords 헬퍼는 단어를 단어로 대체하는 유연성을 제공하지 않습니다. 여기

, 나는 당신은 내가, 당신이 당신의 단어를 대체 할 수있는 영어로 쓸 것,에서 번역 할 언어 확실하지 않다 당신의 View/Helper

에서 TimeagoHelper.php라는 파일을 만듭니다.

<?php 

App::uses('AppHelper', 'View/Helper'); 


class TimeagoHelper extends AppHelper { 

    public function __construct(View $view, $settings = array()) { 
     parent::__construct($view, $settings); 
    } 


    public function timeago($datetime) { 
     $datetime1 = new DateTime($datetime); 
     $datetime2 = new DateTime('now'); 
     $obj = $datetime1->diff($datetime2); 
     if($obj->days == 1) { 
      $time = $obj->format('%a day'); // Replace your word 
     } elseif($obj->days == 0) { 
      if($obj->h == 0) { 
       if($obj->i == 0) { 
        $time = $obj->s . ' seconds'; // Replace your word 
       } else { 
        $time = $obj->i . ' minutes'; // Replace your word 
       } 
      } else { 
       $time = $obj->h . ' hours'; // Replace your word 
      } 
     } else { 
      $time = $obj->format('%a days'); // Replace your word 
     } 
     return $time.' ago'; // Replace your word 
    } 
} 

조치 또는 컨트롤러에이 도우미를로드하십시오.

저는 언젠가 php 5.5를 사용하고 있습니다. 더 낮은 버전에서 작동하는지, 즉 몇 초 및 몇 분 동안 concat이 허용되는지 기억하지 못하는지 확실하지 않습니다. Incase, 작동하지 않으며 변수에 할당하고 연결합니다. , CakeTime 너무 유용 가능성에 대한 api 체크 아웃 :

$this->Timeago->timeago($question['Question']['created']);

추신 :

은과 같이보기의 .ctp 파일에 사용합니다.

건배!

+0

참고 : 표준 도우미가 어떻게 표시되는지는 아닙니다. 이것은 가능한 최소한의 반복으로 작업을 완료하는 것입니다. 로컬라이제이션을 구현하여 유연성을 높입니다. 이는 표준 접근 방식입니다. – Karma

+1

커스텀 도우미가 필요하지 않습니다. 필요한 것은'CakeTime'의 지역화뿐입니다! – ndm

+0

안녕하세요, 환상적입니다! 나는'CakeTime'에 대해 몰랐다! +1에 +1하십시오. 나는 내 대답을 편집 할 것이다. 그러나이 사용자 지정 도우미도 나쁘지 않습니다 ... 나는 물건을 완성시키기 위해 빠른 해킹을 작성했습니다! 그게 다예요 :) 또한, 내 첫 번째 의견을 확인하시기 바랍니다, 나는 그것이 표준 도우미가되어야하는 방법이 아니라고 말했어, OP에 대한 간단한 해킹. – Karma

관련 문제