Как игнорировать разрывные строки PHP с парсером POEdit? - PullRequest
1 голос
/ 02 июля 2010

В настоящее время я переводю свое PHP-приложение, используя gettext с POEdit. Так как я уважаю поля печати в моем исходном коде, я привык писать такие строки:

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, который я использую) не может сделать это для меня автоматически, как eclipse в Яве.

Итак, в заключение, есть ли способ указать парсеру POEdit избегать разрывов строк в качестве пробелов в настройках?

Я знаю, что строки по-прежнему можно перевести, хотя разрывы строк не экранированы, я спрашиваю об этом, чтобы мой traductor (иногда даже клиент / пользователь) избегал путаницы, думая, что ему нужно дублировать переводы строк, пока он переводит в POEdit .

1 Ответ

0 голосов
/ 02 июля 2010

Вы должны убедиться, что вы используете правильные разрывы строк в вашем скрипте и в вашем приложении

 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

В системах Windows (ms-dos) перевод строки - CR+LF, а в "Unix"-подобные "системы его LF ADN 8Bit Commodore его CR

Вы должны убедиться, что исходное местоположение содержит тот же тип каналов для вашего места редактирования.

Ваш серверобрабатывает свои переводы строк по-разному для хоста, на котором работает редактор, просто дважды проверьте это и разработайте некоторые способы автоматической замены символов Unicode в зависимости от вашей ОС


Поскольку вы говорите, что ваш "перевод мойPHP-приложение, использующее gettext с POEdit ", я бы создал скрипт, который перекинул бы все ваши файлы через shell / doss / php и автоматически преобразовал коды символов в тип системы, на которой вы работаете.

, так что если вы работаетев Windows вы должны найти все символы, которые U+000A и заменить на U+000DU+000A

...