Разобрался таки с кривым официальным wordpress.pot
Гуглил, гуглил по разным запросам и нагуглил , который типа извлекает все ресурсы как надо. Мне точнее было интересно больше какие ключевые слова используются, т.к. все собирал гуглом по крупицам и вот сейчас наконец POEDIT перестал выдрепываться и заработал как надо при извлечении ресурсов.
Тот файл wordpress.pot что выложен на wordpress.org настолько кривой что вообще лучше его не использовать, т.к. он основан на уже будущей версии 2.9 и к 2.8.* подходит не на 100%
Чем руководствовались авторы? зачем с только премудростей если раньше без них обходились? в официальной документации про это ни слова. там старое бла-бла-бла про
__($message)
и
_e($message)
В общем в версии 2.8.* используется аж вот столько ключевиков для локализации:
__
_e
_c
__ngettext:1,2
_n:1,2
_nc:1,2
__ngettext_noop:1,2
_n_noop:1,2
_x:1,2c
_nx:1,2,4c
_nx_noop:1,2,3c
esc_attr__
esc_attr_e
esc_attr_x:1,2c
esc_html__
esc_html_e
esc_html_x:1,2c
Причем о конструкции некоторых элементов можно было только примерно догадываться и на основе этого гуглить. Также нашел про это на официальном форуме, но там был вопрос только про один из ключевиков и все.
Рубрики: Wordpress Метки: 2.8, Wordpress
Распечатать
Связанные записи
10 комментариев
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

(голосов: 7, средний: 4.57 из 5)

18 августа 2009 в 14:17 (GMT+6)
На самом деле всё довольно просто:
* функции, оканчивающиеся на __, просто возвращают переведённую строку (возможно, выполняя какие-либо другие действия, как esc_attr__ и esc_html__);
* функции, оканчивающиеся на _e, выводят строку;
* функции, оканчивающиеся на _x, переводят с контекстом gettext (то же самое, что и __(), разница только в вызываемом пост-фильтре и дополнительных параметрах);
* _c — перевод с контекстом (строки вида “фраза|пояснение для переводчика”);
* _n, __ngettext — перевод с учётом единственного и множественного числа (_nx() — перевод с контекстом gettext, _nc() — перевод с контекстом переводчика);
* _n_noop, _nx_noop, __ngettext_noop — эти больше xgettext/msgmerge — ничего не переводят, используются в качестве указания на то, что строки (единственное и множественное число) нужно поместить в .po-файл.
Как-то так. Вроде бы ничего не забыл.
PS — а вообще вся эта муть живёт в wp-includes/l10n.php.
18 августа 2009 в 14:22 (GMT+6)
Официальный ответ разработчиков — для того, чтобы улучшить читаемость кода.
Например, в 2.7 нужно было писать так:
echo wp_specialchars(__('something', 'domain'))По мнению разработчиков, это было плохо и не очевидно. С 2.8 это делается так:
esc_html_e('something', 'domain')Одна функция вместо трех и всего одна пара скобок.
18 августа 2009 в 14:27 (GMT+6)
если бы все это еще снижало прожорливость…
18 августа 2009 в 15:39 (GMT+6)
Ох, накрутили… И не думаю, что к лучшему.
Кстати, Lecactus, мне ваш перевод нравится, но у вас в некоторых местах есть орфографические и пунктуационные ошибки. Сообщать вам о таких? :)
18 августа 2009 в 16:26 (GMT+6)
pot- для всех существующих версий живут здесь:
А тот, что здесь:
это следующая версия, да…
18 августа 2009 в 17:02 (GMT+6)
да, на мыло
а вот в руководстве в кодексе предлагают как раз кривую версию всегда.
и вообще сколько сталкивался с POT файлами обычно бывали проблемы и не только в движке самом. самостоятельное сканирование обычно всегда точнее выявляло нужное.
18 августа 2009 в 18:43 (GMT+6)
Такое частенько бывает, каталоги POT уже надоедать начинают, поскольку уж часто авторы (не только WordPress’а, но и различных плагинов, а также тем), забывают (по чистой случайности, специально или “волей небес”?) добавлять какие-либо строки. И в результате приходится страдать.
После выхода вашего перевода для 2.8.3 (или 2.8.4) сразу буду писать обо всем, что найду.
18 августа 2009 в 18:47 (GMT+6)
так 284 с обновленным переводом уже выложен, просто поста про это нет еще.
а перевод отдельно тут http://lecactus.ru/download-manager.php?id=490
18 августа 2009 в 20:44 (GMT+6)
Хм, прикольно, обновился через админку и белый экран :) Что-то новенькое. Пойду править.
24 августа 2009 в 3:48 (GMT+6)
В Кодексе ссылка на trunk.
Я думал, ты читаешь рассылку для переводчиков…