Использование серверного gettext в WordPress
Вопрос по использованию нативного php-шного gettext уже поднимался. Тогда по [уже мертвой] инструкции у меня не получилось проверить, да и как-то там всё мудрено было, что-то куда-то само писаться пыталось… И вот я решил повторить эксперимент.
1. Создал директорию /locale/ru_RU/LC_MESSAGES
2. В нее скопировал ru_RU.mo с именем default.mo.
3. В wp-config.php убрал
define ('WPLANG', 'ru_RU');
и добавил
setlocale(LC_ALL, 'ru_RU');
putenv("LC_ALL=ru_RU");
bindtextdomain("default", "locale");
bind_textdomain_codeset("default","utf8");
textdomain("default");
4. Сделал плагин
add_filter('gettext','native_gettext');
function native_gettext($text) {
$text = gettext($text);
return $text;
}
Тестовая платформа: WordPress 2.8.1-beta1, локализация от Sola, Apache/1.3.35 (Win32) PHP/5.2.6, Тема Classic, какие-то плагины и куча постов.
Результат:
- Стандартная: 15 queries. 2.764 seconds, 16 MB
- Через php_gettext: 15 queries. 2.623 seconds, 13 MB
Выигрыш 3МБ — не много, но может быть критично. Кроме того, такой способ локализации может помочь в тех редких случаях, когда вордпрессовский gettext наотрез отказывается работать на хостинге.
Недостатки: локализация Тем и плагинов сама по себе не подключится.
Само собой разумеется, что работать это будет только в том случае, если у вашей php есть модуль gettext и если вашей php разрешено менять локаль и энверонмент.
ВНИМАНИЕ! Приведенное выше решение является исключительно экспериментальным. Вы можете его повторить на свой страх и риск.
Свежие комментарии