2010-07-02 6 views
1

현재 POEdit과 gettext를 사용하여 PHP 응용 프로그램을 번역 중입니다. 내 소스 코드에서 인쇄 여백을 존중하기 때문에, 그와 같은 쓰기 문자열로 사용되었다 : 예상대로POEdit 파서로 PHP 브레이크 라인을 무시하는 방법?

print $this->translate("A long string of text 
    that needs to follow the print margin and since 
    php outputs whitespaces for every break line I do 
    my sites renders correctly."); 

는 그러나 POEdit에서의 줄 바꿈은 공백으로 탈출하지 않습니다.

A long string of text\n 
    that needs to follow the print margin and since\n 
    php outputs whitespaces for every break line I do\n 
    my websites render correctly.\n 

나는 한 가지 방법은 같은 소스 코드에 라인을 변경하는 경우 문자열을 종료하는 것입니다 알고

print $this->translate("A long string of text " . 
    "that needs to follow the print margin and since " . 
    "php outputs whitespaces for every break line I do " . 
    "my sites renders correctly. "); 

그러나 텍스트를 변경해야 할 때 나를 위해 확장이 접근하지 netbeans (내가 사용하는 IDE)가 Java에서 이클립스 처럼 저를 자동으로 수행 할 수 없다면, 인쇄 마진 이 여전히 존중됩니다.

결론적으로, POEdit 파서가 환경 설정에서 줄 바꿈을 공백으로 탈출하도록 지시하는 방법이 있습니까?

줄 바꿈이 이스케이프 처리되지 않아도 문자열이 계속 번역 될 수 있음을 알고 있습니다. 내 번역사 (때로는 고객/사용자)가 번역을하는 동안 줄 바꿈을 복제해야한다고 생각하는 혼란을 피할 수 있도록 요청합니다. POEdit.

답변

0

당신은 당신의 오른쪽 라인 스크립트에서 휴식 및 Windows 시스템 내에서 앱이

LF: Line Feed, U+000A 
FF: Form Feed, U+000C 
CR: Carriage Return, U+000D 
CR+LF: CR (U+000D) followed by LF (U+000A) 
NEL: Next Line, U+0085 
LS: Line Separator, U+2028 
PS: Paragraph Separator, U+2029 

(MS-DOS) 줄 바꿈은 "유닉스"내가 CR+LF입니다, 그리고를 사용 있는지 확인해야합니다 시스템의 LF 및 8 비트 상품의 해당 사항은 CR

원본 위치에 편집 위치와 동일한 유형의 피드가 포함되어 있는지 확인해야합니다.

당신의 서버는 라인 에디터는 단지이 한 번 확인하고 당신이 말대로 OS


에 따라 유니 코드 문자를 대체하는 자동차의 몇 가지 방법을 개발할에 실행되고있는 호스트에 다른 피드 처리 귀하의 "POEdit와 gettext를 사용하여 내 PHP 응용 프로그램 번역", 나는 스크립트를 작성하여 쉘/doss/php를 통해 모든 파일을 던져 버리고 문자 코드를 실행중인 시스템의 유형으로 자동 변환합니다.

때문에 Windows에서 당신의 작업은 당신은 U+000A을 모든 문자를 검색하고 내가 내 유닉스 줄 바꿈을 사용해야합니다 이후 라인이 운영체제에서 문제를 중단하지 않아도 U+000DU+000A

+1

로 대체 할 경우 내 소스 코드 (또는 아마도 귀하의 진술을 분명히 이해하지 못했습니다). xgettext 파서 명령에서 줄 바꿈을 공백으로 해석하는 쉬운 방법이 있다고 생각했습니다. 이것이 가능한가? –