• Модератор Sergey Biryukov

    (@sergeybiryukov)


    Live and Learn

    Случайно вдохновился популярной в некоторых кругах идеей прямого перевода, позволяющего выиграть несколько мегабайт памяти. Вместо жёсткой замены строк в файлах предлагаю более простую реализацию 🙂

    Алгоритм

    Из файла ru_RU.mo при помощи особого скрипта создаётся strings-ru_RU.php, который содержит все строки перевода и функции, выступающие в роли фильтров gettext, gettext_with_context, ngettext и ngettext_with_context. Созданный файл подключается вместо ru_RU.mo.

    На текущий момент этого достаточно для работы всех стандартных конструкций в системе локализации без использования gettext. Также сохраняется возможность использовать плагины для мультиязычного блога.

    Установка перевода

    (30.12) Идея реализована в плагине Pure PHP Localization:
    http://wordpress.org/extend/plugins/pure-php-localization/

    Тестовая копия блога с 39 активными плагинами при таком подходе потребляет 24 МБ вместо 27.3.

Просмотр 15 ответов — с 16 по 30 (всего 31)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Активированных 🙂 При установке новых плагинов или деактивации старых словарь обновляется, как и при смене темы.

    Atrax

    (@atrax)

    Ethical engineer

    Однако круто.

    SergeyBiryukov, поправьте в репозитории — Requires WordPress Version: 2.9 or higher.

    Обновил архив — теперь в словарь добавляются также переводы активных плагинов и текущей темы оформления (если она использует gettext).

    Это Вы тестовый архив поправили или архив с версией 0.3?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Исправил требования. Спасибо! Новая возможность пока в тестовом архиве (версия 0.4-trunk).

    Очень даже полезный и актуальный плагин получился и прямой перевод теперь досмерти не нужен.

    Поставил данный плагин и заметил что действительно упало потребление памяти на несколько мегабайт…вообщем круто…далее зашел в папку languages там изменений никаких…удалил ее…вроде везьде на сайте и в админке язык наш родной…так где же создаеться файл перевода…и вообще правильно я поступил что удалил папку languages!!!

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    По предложению alexpts, файл с переводами хранится в каталоге для загрузок (по умолчанию wp-content/uploads) — в этом случае не нужно дополнительно ставить права на запись.

    Каталог с языковыми файлами лучше не удалять по нескольким причинам:
    1. Он не мешает 🙂
    2. Помимо собственно перевода, к языковым файлам также относятся дополнения таблицы стилей и несколько функций в ru_RU.php.
    3. При обновлении, установке или удалении плагинов словарь обновляется. Если языковые файлы не будут найдены, интерфейс станет англоязычным.

    Спасибо за обновление плагина до 06.

    ошибки по логам для версии плагина 0.6

    [Sun Aug  1 15:09:54 2010] [error] PHP Warning:  Unexpected character in input:  ''' (ASCII=39) state=1 in .../wp-content/uploads/pure-php-localization/strings-ru_RU_front.php on line 1668
    [Sun Aug  1 15:09:54 2010] [error] PHP Parse error:  syntax error, unexpected T_STRING, expecting ')' .../wp-content/uploads/pure-php-localization/strings-ru_RU_front.php on line 1668

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Скорее всего, файл записался не полностью. Добавил проверку.

    Хм.. У меня на 2.8 вот так выходит:

    C Pure PHP Localization:

    Время рендеринга: 1.286 секунды cpu (45% загрузка, 0.003 запуск). Время: 2.854 секунды (19.9% на запросы). Запросы БД: 41, нет дефективных, нет > 1.000 секунды. Память: 31.2MB

    Без Pure PHP Localization:

    Время рендеринга: 1.267 секунды cpu (52% загрузка, 0.003 запуск). Время: 2.417 секунды (9.6% на запросы). Запросы БД: 41, нет дефективных, нет > 1.000 секунды. Память: 29.7MB

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Спасибо! Воспроизвелось. Версия 0.5.1 должна работать с WordPress 2.8.4. Буду смотреть, почему не работает 0.6.

    Буду ждать с нетерпением!
    А 0.5.1-trunk можно скачать где-то? Или все же лучше дождаться исправленную 0.6?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно скачать на странице плагина:
    http://wordpress.org/extend/plugins/pure-php-localization/download/

    С 0.5.1:

    25 / 1.593 / 30.4mb

    Без 0.5.1:

    25 / 1.557 / 29.07mb

Просмотр 15 ответов — с 16 по 30 (всего 31)
  • Тема «Прямой перевод WordPress» закрыта для новых ответов.