Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Создание сайтов на движке Drupal для "чайников". 004. Локализация Друпала. Часть вторая.


Здравствуйте, уважаемые друпологи!

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

После этого, на странице http://yourdomain.com/?q=admin/locale/language/overview (здесь yourdomain.com - это Ваш домен) Вы увидите следующий текст:

Drupal interface translations may be added or extended by several courses: by importing an existing translation, by translating everything from scratch, or by a combination of these approaches. 

Как Вы уже поняли, мы можем либо импортировать уже готовый перевод (by importing an existing translation) из имеющегося файла русификации или перевести все вручную (by translating everything from scratch).

Остановимся пока на быстром способе перевода, посредством импорта уже имеющихся переводов.
Для импорта уже имеющегося перевода нам понадобится собственно сам файл с переводом. Его можно взять либо с официального сайта разработчиков http://drupal.org/project/ru (или http://drupal.org/project/Translations/).

Скачаем перевод для установленной у нас версии 4.7.* (также на официальном сайте разработчиков доступен перевод для версии 4.6.*), которая доступна по ссылке http://ftp.osuosl.org/pub/drupal/files/projects/ru-4.7.x-1.x-dev.tar.gz . После этого два раза распакуем скачанный архив и получим папку с файлом русификации ru.po. После этого в интерфейсе localization выберем importing an existing translation и в появившемся интерфейсе для загрузки файла выберем наш свежераспакованный ru.po. После этого жмем кнопку Submit или Import.

... И вот тут-то Вы в первый раз столкнетесь с ошибкой. Вы не сможете загрузить файл ru.po - система выдаст Вам ошибку:

warning: set_time_limit() has been disabled for security reasons in /home/.../public_html/includes/locale.inc on line 452.

Вы, я думаю, уже догадались что нужно делать? Правильно! Нужно запустить фтп-менеджер, например Total Commander, зайти в папку /public_html/includes/ своего аккаунта и скачать оттуда на свой компьютер файл locale.inc для последующей редакции строки номер 452. Здесь я открою небольшую тайну - редактировать нужно не 452 строку (в моем случае это оказалась вполне безобидная строка

drupal_goto('admin/settings/locale/string/search'); ), а функцию, которая идет вслед за ней:

function _locale_import_po($file, $lang, $mode) {
  // If not in 'safe mode', increase the maximum execution time:
  if (!ini_get('safe_mode')) {
    set_time_limit(240);
  }

Здесь нам нужно увеличить время исполнения, с 240 до большего числа, например в 10 раз до 2400. После этого заливаем наш отредактированный файл на сервер, в тот же каталог, откуда мы его до этого скопировали (предварительно на всякий случай переименовав старый locale.inc в locale_old.inc, например) и после этого снова пробуем импортировать файл с переводом...

После того, как я сделал это на одном из своих сайтов, количество переведенных строк увеличилось с 77% до 81.5%. Этого вполне достаточно, и Вы сами можете в этом убедиться, если пройдетесь по страницам портала.

Остатки непереведенных строк Вы самостоятельно сможете перевести вручную, все равно об этом я расскажу в следующем выпуске рассылки.

В любом случае, я закончу рассказ о русификации Друпала в следующем выпуске рассылки, который выйдет через несколько дней. Если возникнут вопросы, то свяжитесь со мной либо по электронной почте mail@tretyakov.co.ua , либо задав вопрос на форуме http://5hatki.info/forum/ .


В избранное