2012-07-19 4 views
6

PoEdit에서 PHP 어노테이션을 이해할 수있는 방법을 찾고 있습니다. 여기에 내가 PoEdit 픽업 및 카탈로그에 투입 할 코드의 샘플입니다 :PoEdit 및 PHP 어노테이션

class MyController extends Controller { 

    /** 
    * @Title "Home" 
    */ 
    public function index() { 
     ... 
    } 

} 

흥미로운 부분은 @Title 주석이다. 전면 컨트롤러에서 액세스되어 마스터보기에 할당되어 효과적으로 <title>...</title> 태그 내부에 있습니다.

이제는 번역 된 문자열이 필요하지만 PoEdit은 _() 수식만을 인식하는 것으로 보이며 키워드에 @Title을 추가해도 작동하지 않습니다. PHP의 주석이 주석 블록에 있기 때문일 수 있습니다.

PoEdit이 주석을 이해하도록하는 방법이 있습니까?

+4

실제로 문서에 물건을 할 수있는 의견의 사용을 싫어한다. 코드를 이해하고 변수 유형을 선택하는 데 IDE를 돕기 위해 사람이 읽을 수있는 텍스트로 주석을 지정해야합니다. 응용 프로그램의 어떤 기능도 서버해서는 안됩니다. –

+0

이것은 PHP에서 주석을 처리하는 유일한 방법이며 실제로 언어의 반사 하위 시스템이 보증합니다. 다양한 Reflection 클래스의 getDocComment() 메소드를 참조하십시오. 또한 위의 예제 대신 액션 코드에서 PageView :: getInstance() -> setTitle ("Home")과 같은 내용을 읽을 수 있습니다. –

+0

필자는 @Truth에 동의합니다. 주석을 사용하면 파일을 빈 파일의 파일 이름으로 변수를 저장하는 것과 같습니다. 당신은 그것을 할 수는 있지만 어색합니다. 게다가 값을 읽는 텍스트로 파일에 액세스하는 것은 필요한 값이 무엇이든 일반 변수 (예 : 공용 클래스 속성)를 설정할 때 낭비되는 것처럼 보입니다. – Mahn

답변

0

당신이 정말로 _ (문자열)와 주석 부분을 교체하는 동안 다음 방금, 외부 파일에 PHP 파일에서 필요한 문자열을 추출 할 수 있습니다이 그 방법을 수행 할 경우; 각 경기마다 Poedit을 실행합니다. (홈)

3

짧은 대답, 당신은 할 수 없습니다 : $2이 값이됩니다, 주석 될 것이다 경기를 $1 (제목) -

당신은 .*\*\s\@(\w+)\s\"(\w+)\".*과 일치시킬 수 있습니다.

POEdit 그러므로 주석 처리 된 줄을 무시하고 특정 구문을 사용하여 파일을 검색 xgettext를 사용합니다. > 문자열 '테스트'

_("test"); - -> 문자열 '테스트'

_('test' -> 문자열

_('test'); : 키워드가 _을 경우 예를 들어

, 다음의 예는 같은 구문 분석됩니다 '테스트'

_ 'test -> 어떤 캐치

_('test -> 어떤 캐치에게

_(test) -> 어떤 캐치

_($test) -> 더 캐치

//_('test'); -> 더 캐치

/*_('test');*/ -> 더 캐치

당신은 xgettext를 실행할 수 없습니다 다른 매개 변수를 사용하여 귀하의 목표를 달성 할 수 있을지 모르겠습니다.


(하지 표준 OFC)이 placeholder 같은 다른 키워드를 추가 할 수 있도록하는 PHP 기능을

function placeholder($string){} 

처럼 그것을 사용하는 한 쉽게 수정 그래서 POEdit는 구문 분석 할 수 그것을

class MyController extends Controller { 

    /** 
    * @Title "Home" 
    */ 
    public function index() { 
     placeholder('Home'); 
     ... 
    } 

} 

프론트 엔드 파서에서 간단한 _($value)을 사용하면 제목이 번역됩니다.

Dunno 어떻게 코드가 작성되었지만 이와 비슷한 것으로 가정합니다.

이 $ 태그 = '제목'과 $ 값을 가정 = '홈'

echo '<'.$tag.'>'._($value).'</'.$tag.'>'; 
관련 문제