1

내 현재 프로젝트에서 도우미를 사용해야하고 내 .po 파일에서이보기 도우미 내부의 문자열을 번역하고 싶습니다. 그래서 translate() 도우미를 사용해야한다고 생각하지만 도우미에서 사용하는 방법을 알지 못합니다.Zend 국제화보기 도우미

<?php 

/** 
* 
* @category View_Helper 
* @package Custom_View_Helper 
* @author Chris Jones <[email protected]> 
* @license New BSD License 
*/ 
class Zend_View_Helper_HumaneDate extends Zend_View_Helper_Abstract { 
    /** 
    * Various time formats 
    */ 
    private static $_time_formats = array(
     array(60, 'un instant'), 
     array(90, '1 minute'), // 60*1.5 
     array(3600, 'minutes', 60), // 60*60, 60 
     array(5400, '1 heure'), // 60*60*1.5 
     array(86400, 'heures', 3600), // 60*60*24, 60*60 
     array(129600, '1 jour'), // 60*60*24*1.5 
     array(604800, 'jours', 86400), // 60*60*24*7, 60*60*24 
     array(907200, '1 semaine'), // 60*60*24*7*1.5 
     array(2628000, 'semaines', 604800), // 60*60*24*(365/12), 60*60*24*7 
     array(3942000, '1 mois'), // 60*60*24*(365/12)*1.5 
     array(31536000, 'mois', 2628000), // 60*60*24*365, 60*60*24*(365/12) 
     array(47304000, '1 année'), // 60*60*24*365*1.5 
     array(3153600000, 'années', 31536000), // 60*60*24*365*100, 60*60*24*365 
     ); 
    /** 
    * Convert date into a pretty 'human' form 
    *  Now with microformats! 
    * 
    * @param string $ |Zend_Date $date_from Date to convert 
    * @return string 
    */ 
    public function humaneDate($date_from) 
    { 
     $date_to = new Zend_Date(null, Zend_Date::ISO_8601); 
     if (!($date_from instanceof Zend_Date)) { 
      $date_from = new Zend_Date($date_from, Zend_Date::ISO_8601); 
     } 
     $dateTo = $date_to->getTimestamp(); // UnixTimestamp 
     $dateFrom = $date_from->getTimestamp(); // UnixTimestamp 
     $difference = $dateTo - $dateFrom; 
     $message = ''; 
     if ($dateFrom <= 0) { 
      $message = 'il y a longtemps'; 
     } else { 
      foreach (self::$_time_formats as $format) { 
       if ($difference < $format[0]) { 
        if (count($format) == 2) { 
         $message = 'il y a ' . $format[1]; 
         break; 
        } else { 
         $message = 'il y a ' . ceil($difference/$format[2]) . ' ' . $format[1]; 
         break; 
        } 
       } 
      } 
     } 
     return sprintf('<abbr title="%sZ">%s</abbr>', 
      $date_from->get('YYYY-MM-ddTHH:mm:ss'), 
      $message 
      ); 
    } 
} 

어떤 생각 : 여기

내가 웹에있는 도우미입니까?

+0

안녕하세요, 내가 유사한 [보기 도우미]를 썼다 (http://borisguery.github.com/bgylibrary/#bgylib-components-bgy-view-helper-relativedatetime) 당신이 사용할 수있는 즉시 사용 가능하며 메시지 템플리트를 설정하고 기본 변환기를 사용할 수 있습니다. 희망 그 도움. –

답변

1

도우미가 Zend_View_Helper를 확장하면 도우미의 $view 멤버 변수를 사용하여보기에서와 같은 모든 항목에 액세스 할 수 있습니다. 이 구문을 사용 :

$this->view->translate('something'); 
+0

고마워, 노력했지만 내 배열이 정적 인 것을 보지 못했다. – Cyril

관련 문제