문제

디자이너가 시야에 현지화를 가능한 한 쉽게 만들고 싶습니다. 즉,이 작업을 수행하고 싶습니다.

...
<p><?php echo $this->_("Hello, world!"); ?></p>
...

Poedit이 현지화를 위해 모든 문자열을 자동으로 추출 할 수 있도록 여기서 밑줄 표기법이 필요합니다. 구현은 사소합니다.

public function _($string)
{
    return Zend_Registry::get('Zend_Translate')->_($string);
}

현재, 나는 이것을 직접 넣었다 Zend_View_Abstract, 그것은 나쁘다 (나는 Zend 라이브러리를 수정하여 이것을하고 싶지 않다). 이상적으로는 확장됩니다 Zend_View_Abstract 우리가 필요로하는 다른 콘크리트 기능을 구현할 수는 있지만이를 설정하는 방법을 모르겠습니다. 대안은 View 도우미를 구현하는 것이지만,이를 수행하는 방법을 아는 유일한 방법은 View의 코드를 더욱 장점으로 만듭니다. 어떤 포인터 (아니요, 그런 종류가 아님)는 대단히 감사 할 것입니다. 감사!

도움이 되었습니까?

해결책

분명히 자신의 길을 무시합니다 ...

  1. 연장하다 Zend_View
  2. 이 확장 클래스에 방법을 넣으십시오
  3. 수업을 인스턴스화하십시오 (예 : 부트 스트랩에서)
  4. Viewrenderer에 할당하십시오
  5. 그 뷰 렌더를 전달하십시오 Zend_Controller_Action_HelperBroker's addHelper 방법
  6. 당신의 관점에서 그것을 사용하십시오

/library/megahal/zend/create view.php :

class MegaHAL_Zend_View extends Zend_View
{
    public function _($string)
    {
    return Zend_Registry::get('translate')->_($string);
    }
}

부트 스트랩에서 :

require_once APPLICATION_PATH.'../library/MegaHAL/Zend/View.php';

$view = new MegaHAL_Zend_View();

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

당신의 견해로 :

<p><?php echo $this->_("Hello");?></p>

나는 그것이 당신이 원하는 것을 할 것이라고 믿습니다.

다른 팁

나는 당신이 만들 수있는 방법을 찾고 있다고 생각합니다 사용자 정의 조회 도우미.

예시:

class My_View_Helper extends Zend_View_Helper_Abstract
{
    public function translate($string)
    {
        //...
    }
}

...

$view->setHelperPath('/path/to/helpers', 'My_View_Helper');

...

그런 다음 귀하의 견해에서 사용할 수 있습니다.

echo $this->translate("Hello, World!");

View Helpers를 사용하면 올바른 "Zend-Framework"가이 작업을 수행 할 수 있다고 생각하지만 확장 할 수 있습니다. Zend_View 그리고 원하는 모든 추가 방법을 구현합니다. Zend_View.

class My_View extends Zend_View
{
    public function _($string)
    {
        return Zend_Registry::get('Zend_Translate')->_($string);
    }
}

그런 다음 새보기 클래스가 인스턴스화되고 기본보기로 등록되어 있는지 확인하면됩니다. 제어 장치 (설정 Zend_Controller_Action::$view 인스턴스 변수는 클래스의 인스턴스) 및 귀하의 Zend_Layout (레이아웃을 사용할 때; 키가있는 구성 옵션으로보기를 전달합니다. view) 사용하지 않을 때 ViewRenderer 또는 ViewRenderer 사용할 때 ViewRenderer 사용 Zend_Controller_Action_Helper_ViewRenderer::setView().

올바르게 구성된 경우 Poedit은 _ () 이외의 기능에서 문자열을 자동으로 추출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top