2010-08-20 2 views
0

내가 PHP 스크립트의 번역을하고 일부 자동화를 수행하여 시간을 확보 할거야이 파일이PHP 정규 표현식 정의에 맞게() 함수

define('LNG_NewsletterNameIsNotValid', 'Email Campaign name is not Valid'); 
define('LNG_UnableToCreateNewsletter', 'Unable to create an Campaña de Email'); 
define('LNG_HLP_NewsletterName', 'You must insert \\\'Custom Fields\\\' in the field.'); 
define('LNG_UnableToUpdateNewsletter', 'Unable to update '. LNG_xxx . ' from Email Campaign'); 

과 같은 라인의 매우 큰 수를 포함 내가 좋아하는 것까지 :

  • 개방
  • 각 줄
  • 통과 각 PHP 파일은 각각의 정의에 해당하는 문자열을 얻을()
  • 번역 할 내가 문자열을 가져 오는 부분을 제외하고, 내가 스크립트가 거의을 수행 한 파일

에 새 문자열 저장 번역

  • 를 작성해야하는 필드를 넣어 각 라인에서. 여러 예제를 통해 번역 문자열에 다른 변수, 따옴표 등에 대한 참조가 포함될 수 있음을 알 수 있습니다.

    정규식이 필요한가요?
    아무도 도와 줄 수 있습니까?

  • +0

    "("stringX ','stringY ') define; "define (tokenX, tokenY);"가되어야합니다. "... 맞습니까? – Rusty

    답변

    2

    token_get_all을 사용하는 것이 좋습니다. 정규 표현식은 대부분 PHP를 구문 분석하는 데 필요한 복잡성이 없습니다 (just like regexes can't parse html). token_get_all은 가변 기능 또는 eval '텍스트를 사용하는 경우와 같이 가장자리의 경우 만 누락됩니다.

    언어 번역을 수행하는 경우 define 대신 gettext을 조사해볼 가치가 있습니다.

    +1

    +1 제안 : – Anpher

    +0

    켄들, 정말 끝내주었습니다. 스크립트의 개발자가 아니기 때문에 gettext에 대한 정의를 변경할 수는 없지만 제안을 보내 드리겠습니다. 감사! – Enrique