Intereting Posts
Лучший способ передать значения функции, когда их много? Неустранимая ошибка: использование $ this, если не в контексте объекта конвертировать персидские / арабские цифры на английские номера Как отображать теги HTML как обычный текст Запуск PHP «exec ()» в фоновом режиме в Windows? PHP readfile возвращает файл с нулевой длиной Как отправить изображение на Twitter с помощью php? Как отслеживать выполнение кода в PHP? Текст UTF-8 искажается, когда форма отправляется как multipart / form-data в PHP header («Content-type: text / css»); работает в Firefox и Chrome, но в Internet Explorer 9 он отображается как «text / html», Как использовать графический API Facebook для извлечения фан-фотографий, загруженных на стену страницы поклонников? Ошибка при перезаписи bindParam в PHP Вызовите внешнюю функцию API от контроллера, LARAVEL 4 Как загрузить файлы (multipart / form-data) с помощью многомерных POSTFIELDS с помощью PHP и CURL? подтвердите адрес электронной почты .edu или .ac

Как указать упорядоченные переменные в файлах gettext .po?

У меня есть многоязычный сайт, который использует массивы Zend_Translate PHP для обработки переводов. Он отлично работает, но я пытаюсь преобразовать его в использование gettext, поскольку он предлагает дополнительные функции.

Тем не менее, я еще не обнаружил эквивалент gettext функции, которая мне понравилась в переводах массива PHP: n $ position specifier ( пример № 4 PHP sprintf ).

Я нашел хороший пример того, что я хочу (обратите внимание, как порядок переменных отличается на английском и китайском языках):

#: wp-admin/upload.php:96 #, php-format msgid "File %1$s of type %2$s is not allowed." msgstr "类型为%2$s的文件%1$s不允许被上传。" 

Но я не работал для меня. Мой файл en / messages.po имеет следующее:

 #, php-format msgid "Earn X cash" msgstr "%1$sEarn 1-30%% cash back%2$s, get money-saving coupons, and find the best price on every purchase at %3$s2,500+ stores%4$s." 

и PHP это (который работал для стиля массива переводов, и я не думаю, что он должен измениться):

 <?php echo $this->translate('Earn X cash', '<span class="earnCashBack">', '</span>', '<a href="/stores" class="numStores">', '</a>'); ?> 

HTML выходит неправильно, вот так:

 $sEarn 1-30% cash back$s, get money-saving coupons, and find the best price on every purchase at $s2,500+ stores$s. 

Как мне отредактировать файл .po для этого? Или мне не следует использовать php-mo для компиляции .po в файл .mo?

Мои файлы .po и .mo работали (и моя веб-страница выглядит хорошо) после того, как я попытался прокомментировать эту строку php-mo.php:

$x = str_replace('$', '\\$', $x);

Я на самом деле не знаю, почему эта линия была там вообще, но ее удаление заставляет меня нервничать, что я могу ввести ошибки, которые я еще не обнаружил. Но, по крайней мере, это устранило проблемы, которые я видел!