Ошибка генерации PoEdit .PO

Я попытался отсканировать свои сценарии на наличие всех вызовов функций _('gettext') в новый каталог PoEdit. После анализа файлов выдает эту ошибку:

Filename.class.php:11: warning: Although being used in a format string position, the msgid is not a valid PHP format string. Reason: In the directive number 1, the character '"' is not a valid conversion specifier.

Filename.class.php, строка 11 выглядит так:

throw new fatalException(sprintf(_('The chosen directory "%" does not exist.'), $dir));

Файл .MO по-прежнему генерируется, но на сайте не отображается переведенный текст. Вместо этого отображается исходный текст внутри вызовов _('gettext'). Вероятно, проблема в этом или есть другая причина (например, неверная setlocale() информация), по которой перевод не работает? Кто-нибудь может сказать мне, что означает приведенное выше сообщение об ошибке?

Запуск Windows на WAMP Server 2.1 на моем локальном хосте с PHP 5.3.8 и Apache 2.2.17.

Спасибо.


person pb149    schedule 20.11.2011    source источник


Ответы (2)


Как я это пропустил...

В сообщении об исключении не было s после %, поэтому вместо этого в качестве спецификатора преобразования использовалась двойная кавычка...

Замена строки 11 проблемного файла приведенным ниже кодом устранила проблему.

throw new fatalException(sprintf(_('The chosen directory "%s" does not exist.'), $dir));

Я до сих пор не могу отобразить переведенный текст, поэтому проблема, похоже, в другом. Я могу опубликовать другой вопрос об этом позже...

person pb149    schedule 20.11.2011
comment
Теперь, когда msgid изменился, обновили ли вы .po, .mo и перезапустили веб-сервер? - person dsas; 21.11.2011
comment
@dsas Да, все сделано. При создании файлов/перезапуске Apache не сообщалось об ошибках. - person pb149; 21.11.2011
comment
Я также проверил свою функцию setlocale(), и она не возвращает false. Расширение Gettext включено... - person pb149; 21.11.2011

Кроме того, возможно, вам следует избегать кавычек, ставя перед ними обратную косую черту?

person Tor-Bjorn Fjellner    schedule 15.12.2011