WordPress файл .po не распознает французские акценты - PullRequest
0 голосов
/ 12 ноября 2011

Я написал .po файл для моей темы WordPress.Кодировка является Unicode, так как я не могу определить его как 'utf-8', иначе он не откроется в Poedit (программа, которую я сейчас использую для каталогизации моих строк).К сожалению, строки, содержащие акценты (французские строки, поскольку мой базовый язык - французский), не будут корректно отображаться ни Peoedit (и, следовательно, компиляцией .mo), ни обработчиками gettext __ () и _e ().Мои .php файлы для моего сайта в настоящее время utf-8, чтобы обрабатывать французские акценты.

Может ли несоответствие кодировки между .mo и веб-файлами быть виновником здесь?Если да, то как мне отрендерить файлы .po и .mo в кодировке utf-8 и заставить их работать?Вот заголовок моего .po файла (включая кодировку utf-8, которая не работает):

msgid ""
msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Patrick <shock_x_trooper@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

Вы должны определить «Content-Type: text / plain; charset = utf-8 \ n», как вы сказали, но вам также нужно конвертировать ваш файл в UTF-8 (без спецификации) (это делает notepad ++).

Когда вы снова откроете его в poedit, акценты должны показывать ОК. Сохраните и загрузите в папку с темой WP.

0 голосов
/ 13 ноября 2011

Вместо каких-либо подробностей кода инициализации или шестнадцатеричных значений ваших реальных файлов .po или .mo единственное, на что стоит обратить внимание, это bind_textdomain_codeset. (Также setlocale или добавление кодировки в LANG= или LC_ALL=.)

msgfmt и php2po (через Pootle) ​​являются альтернативами Poedit, если вам не удается заставить UTF-8 работать. (Что вам нужно сделать.)

...