2014-02-05 2 views
0

번역을 위해 준비된 혼합 PHP/HTML 소스 파일을 Java 번역 메모리 응용 프로그램 인 OmegaT에 만들려고합니다. 깨끗한 HTML 파일을 멋지게 다룰 수있는 HTML 필터가 있지만 PHP 코드가 섞여 있으면 혼란 스럽습니다.HTML 코드에서 PHP 코드를 선택적으로 주석 처리하는 방법은 무엇입니까?

이 문제를 피하려면 PHP 코드를 HTML 안에 넣으려고합니다. 코멘트 (<! ->)이므로 OmegaT HTML 필터는이를 무시할 수 있습니다.

PHP 코드가 HTML 태그 사이에있는 경우에만 주석 처리가 이루어져야하며, PHP 코드가 HTML 태그 속성을 생성하는 데 사용되는 경우가 아니라는 점이 더 복잡합니다.

더 나은 요구 사항을 설명하기 위해 div id = 1 및 id = 3이지만 id = 2 인 PHP 코드 주위에 HTML 주석을 추가하고 싶습니다.

는 원본 :

<body> 
     <div id="1"> 
     <?php 
      echo $var; 
     ?> 
     </div> 
     <div id="2"> 
     <a href="/index.php?p=<?php echo $var; ?>" >text</a> 
     </div> 
     <div id="3"> 
     <p>Some text <?php echo $var; ?> generated partially with PHP.</p> 
     </div> 
    </body> 

는 댓글 : 내가 사업부 아이디의 PHP 코드를 주석 경우

<body> 
     <div id="1"> 
     <!--<?php 
      echo $var; 
     ?>--> 
     </div> 
     <div id="2"> 
     <a href="/index.php?p=<?php echo $var; ?>" >text</a> 
     </div> 
     <div id="3"> 
     <p>Some text <!--<?php echo $var; ?>--> generated partially with PHP.</p> 
     </div> 
    </body> 

은 = 2 OmegaT에서 HTML 필터는 내가하고 싶은 요소를 HTML하는 <> 문자로 변환 피하기 위해.

필자는 필요할 때 주석을 추가하기 위해 간단한 Perl 스크립트를 만들려고했지만 유용한 정규식 대체 솔루션을 찾지 못했습니다.

+0

은 #> (<\?php .*?\?>) <#을 (를) # # <# 작동합니까? –

+0

나는 내가하고 싶은 것을 더 명확하게하기 위해 예제를 다시 작성했다. @ JohannesH. PHP 코드가><사이에있을 때만 정규 표현식이 작동하는 것으로 보입니다. 그러나이 파일이 항상있는 것은 아닙니다. – richk

+0

예프는 모든 예전이 그랬듯이 그러한 경우에만 작동합니다. 당신은 그것을 기반으로 사용할 수 있습니다. 나는 그것을 다시 들여다 볼 것이다. 그러나 그것은 바쁜 시간이 걸릴 것이다. –

답변

0

전체 상황에 대한 또 다른 대체 방법 : 번역 도구가 손을 뗄 수있는 형식으로 hte 문서를 강제 적용하지 않고 왜 그 문제를 해결하지 않습니까? PHP 코드에서 문자열을 분리하고 문자열을 포함하는 XML 파일을 만듭니다. OmegaT는 해당 파일을 처리 할 수 ​​있습니다. 번역 된 파일을 직접 사용하는 대신 웹 사이트를 생성 할 때 PHP에서 읽고 파싱합니다. 내 눈에 훨씬 더 깨끗한 솔루션 ...

+0

원본 소스 파일을 제어 할 권한이 없습니다. 나는 단지 그들을 번역하려고하고있다. 실제 HTML/PHP 소스 파일을 번역하면 번역사가 번역 된 파일의 원시 미리보기를 로컬에서 볼 수 있습니다. – richk

+0

알겠습니다. 너무 나빴어. 다시 한 번 정규식을 찾으려고 노력할 것입니다;) 대체해야 할 모든 사례를 나열 할 수 있습니까? SInce "href"는 이미 예외이며 다른 것들은 있습니까? –

+0

HTML 태그의 동적 속성을 생성하는 인라인 PHP 코드가 주석 처리되지 않아야합니다. 태그는 단지 예일 뿐이므로 모든 HTML 태그에 해당해야합니다. – richk

관련 문제