Как русифицировать Drupal 6?

Главные вкладки

Аватар пользователя PanDa777 PanDa777 18 марта 2008 в 22:26

Drupal CookBook - Готовить может каждый!Отредактированный вариант доступен на сайте DrupalCookBook.ru:
Перевод на русский язык сайта на Друпал.
Перевод на русский язык дополнительных модулей Друпал.

Сейчас перевод Drupal 6 ещё не закончен (перевод-то полный, но улучшать его можно бесконечно). Но желающие могут локализовать Drupal одним из трёх способов: при установке (по-моему, самый удобный), уже установленную систему с помощью нового механизма Drupal 6 и опять же уже установленную систему, но по-старому - через po-файл.

У некоторых возникают какие-то ошибки. Большая просьба: напишите текст ошибки, если таковая у вас произойдёт. Это позволит побыстрее понять возможные её причины.

Сначала я опишу локализацию "стандартной" поставки Drupal.

Способ 1 (установка русскоязычного Drupal).
Установка происходит на русском языке, после установки русский является языком по умолчанию.

  1. Заходим на http://drupaler.ru/translate/languages/ru/export .
  2. Выбираем проект drupal (в единственной строке набираем "drupal").
  3. Выбираем релиз (Release:) - 6.x-dev.
  4. Тип экспорта(Type of export:) - перевод(Translation).
  5. Используемый формат (Format used:) - Drupal 6 package format.
  6. Экспорт(Export).
  7. Полученный файл вместе с дистрибутивом Drupal распаковываем в корень будущего сайта.
  8. Проверяем, что у только что распакованных файлов и папок нормальные права - 644 для файлов и 755 для папок.
  9. Начинаем установку совершенно обыкновенным способом - заходим на http://<адрес_вашего_сайта> .
  10. Выбираем русский язык.
  11. Продолжаем её, как обычно...

Способ 2 (способ русификации уже установленного Drupal, появившийся в Drupal6).
Импорт перевода в Drupal происходит с помощью множества небольших po-файлов, причём администратору не требуется каждый файл указывать отдельно.

  1. Заходим на http://drupaler.ru/translate/languages/ru/export .
  2. Выбираем проект drupal (в единственной строке набираем "drupal").
  3. Выбираем релиз (Release:) - 6.x-dev.
  4. Тип экспорта(Type of export:) - перевод(Translation).
  5. Используемый формат (Format used:) - Drupal 6 package format.
  6. Экспорт(Export.)
  7. Полученный файл вместе с дистрибутивом Drupal распаковываем в корень сайта.
  8. Проверяем, что у только что распакованных файлов и папок нормальные права - 644 для файлов и 755 для папок.
  9. На странице <ваш_сайт>/admin/build/modules включаем(если он ещё не включен) модуль Locale.
  10. Далее возможны два варианта:
    1. (без помощи сторонних модулей)
      1. Удаляем, если создали, с сайта русский язык:
        1. Заходим на <ваш_сайт>/admin/settings/language .
        2. Устанавливаем "по умолчанию" английский язык.
        3. Удаляем русский - <ваш_сайт>/admin/settings/language/delete/ru .
      2. На странице <ваш_сайт>/admin/settings/language/add опять создаём русский язык. Перевод будет автоматически импортирован.
    2. (с помощью модуля Localization client - без удаления и повторного создания русского языка)
      1. Устанавливаем Localization client - http://drupal.org/project/l10n_client .
      2. Заходим на <ваш_сайт>/admin/build/translate/import/package .
      3. Выбираем русский язык.
      4. Reimport package.

Способ 3 (так же, как и в ранних версиях - через импорт одного po-файла)
На сайт через браузер загружается один большой po-файл, после чего Drupal за один раз его обрабатывает. В отличие от первых двух методов, этому методу может не хватить времени выполнения php-скрипта для полного импорта перевода.

  1. Заходим на http://drupaler.ru/translate/languages/ru/export .
  2. Выбираем проект drupal (в единственной строке набираем "drupal").
  3. Выбираем релиз (Release): - 6.x-dev.
  4. Тип экспорта(Type of export:) - перевод(Translation).
  5. Используемый формат (Format used:) - всё в один файл(All in one file) - для последующего импорта через po-файл.
  6. Экспорт(Export)
  7. На странице <ваш_сайт>/admin/build/modules включаем(если он ещё не включен) модуль Locale.
  8. Заходим на <ваш_сайт>/admin/build/translate/import .
  9. Выбираем скачанный ранее с drupaler.ru po-файл.
  10. Выбираем русский язык.
  11. Импорт (Import).

Перевод сторонних модулей, естественно, очень похож на перевод самого Drupal. Но тут есть некоторая специфика, связанная, например, с тем, что нужно узнать название проекта или что дополнительные модули часто доустанавливают после установки Drupal, когда весь перевод удалять не очень хорошо...

Для перевода сторонних модулей в Drupal 6 я опишу 2 способа:

Способ 1 (используя новую функциональность Drupal 6)
Перевод модуля импортируется Drupal автоматически при включении модуля на странице. Рекомендуется, если вы до этого ни разу не включали модуль.

  1. Заходим на http://drupaler.ru/translate/languages/ru/export .
  2. Выбираем нужный нам проект. Имя проекта можно узнать так:
    1. Находим на drupal.org страницу нужного нам модуля - например, через список модулей.
    2. Адрес этой страницы должен иметь вид http://drupal.org/project/<имя_модуля>. Именно это имя_модуля и является искомым именем проекта.
  3. Выбираем нужный нам релиз (Release). На всякий случай следует выбирать версию, в точности равную используемой (в этом случае перевод будет наиболее полон).
  4. Тип экспорта(Type of export:) - перевод(Translation).
  5. Используемый формат (Format used:) - Drupal 6 package format.
  6. Экспорт(Export)
  7. Распаковываем скачанный архив таким образом, чтобы все po-файлы лежали в папке <путь_к_папке_модуля>/translations. Скорее всего, <путь_к_папке_модуля> равен /all/<имя_модуля>.
  8. Проверяем, что у только что распакованных файлов и папок нормальные права - 644 для файлов и 755 для папок.
  9. Если до этого модуль не был ни разу включён, то просто включаем его на странице <ваш_сайт>/admin/build/modules. Вуаля! Если вы не помните, включали ли вы модуль то того, то включите его и посмотрите, произойдёт ли импорт языковых файлов (должна в какой-то момент появиться страница "Импорт переводов интерфейса."). Если произошёл, то дальше можно не читать.
  10. Если же вы уже включали модуль (или он сейчас уже включён), то настоятельно рекомендую прямо сейчас перейти ко второму способу, причём то, что вы уже сделали в рамках первых 6 пунктов, не откатывайте. Это пригодится, если впоследствии вы решите вдруг полностью удалить и обновить перевод всего Drupal сразу. Если же вы упорствуете в своём желании воспользоваться новым методом Drupal 6, то напишите об этом в комментариях. Я могу привести вам 3 способа решения этой проблемы.

Способ 2 (по-старому, через po-файл)
Для каждого модуля администратор загружает отдельный файл, который не сохраняется на сервере, а сразу обрабатывается и добавляется в перевод, как если бы вы перевели каждую фразу по-отдельности через /admin/build/translate/search. В комбинации с первым способом рекомендуется для уже работающих, но ещё не локализованных модулей.

  1. Заходим на http://drupaler.ru/translate/languages/ru/export .
  2. Выбираем нужный нам проект. Имя проекта можно узнать так:
    1. Находим на drupal.org страницу нужного нам модуля - например, через список модулей.
    2. Адрес этой страницы должен иметь вид http://drupal.org/project/<имя_модуля>. Именно это имя_модуля и является искомым именем проекта.
  3. Выбираем нужный нам релиз (Release). На всякий случай следует выбирать версию, в точности равную используемой (в этом случае перевод будет наиболее полон).
  4. Тип экспорта(Type of export:) - перевод(Translation).
  5. Используемый формат (Format used:) - всё в один файл(All in one file) - для последующего импорта через po-файл.
  6. Экспорт(Export)
  7. Заходим на <ваш_сайт>/admin/build/translate/import .
  8. Выбираем скачанный ранее с drupaler.ru po-файл.
  9. Выбираем русский язык.
  10. Импорт (Import).

P.S. Замечания по статье очень приветствуются...
P.P.S. Если на вашем сайте не включены "Чистые ссылки"("Clean urls"), то, естественно, все "внутренние" адреса на вашем сайте выглядят следующим образом: <ваш_сайт>/?q=<внутренний_путь>.
P.P.P.S. Есть сообщения о том, что Internet Explorer скачивает с drupaler.ru битые файлы. Воспользуйтесь альтернативными браузерами.
P.P.P.P.S. На всякий случай приложил перевод в обоих форматах, актуальный на 21:10 21 марта 2008 года. Обновил - теперь есть ещё и перевод в обоих форматах, актуальный на 17:15 11 мая 2008 года. А также - актуальный на 27 августа 2008 года.
P.P.P.P.P.S. Надеюсь, не сильно раздражает столь подробное изложение?


Drupal CookBook - Готовить может каждый!Отредактированный вариант доступен на сайте DrupalCookBook.ru:
Перевод на русский язык сайта на Друпал.
Перевод на русский язык дополнительных модулей Друпал.

Комментарии

Аватар пользователя Гость Гость (не проверено) 20 марта 2008 в 18:50

Любое ез выше названных действий заканчивается следующей ошибкой
Файл перевода drupal-6.1-ru.po содержит синтаксическую ошибку в строке 1.
Импорт перевода из drupal-6.1-ru.po завершился неудачей.

Аватар пользователя EllECTRONC EllECTRONC 27 мая 2008 в 23:04

Гость wrote:
Любое ез выше названных действий заканчивается следующей ошибкой
Файл перевода drupal-6.1-ru.po содержит синтаксическую ошибку в строке 1.
Импорт перевода из drupal-6.1-ru.po завершился неудачей.


Это происходит потому, что файл drupal-6.1-ru.po не относится к файлам перевода (особенно через авто-импорт), т.к. файл перевода должен иметь имя типа все_что-уг0дно.ru.po.
Т.е .ru.po обязательный атрибут названия файла.

Аватар пользователя PanDa777 PanDa777 29 мая 2008 в 11:05

2EllECTRONC
При импорте не через автоимпорт имя файла любое. При использовании автоимпорта крайне нежелательно использовать только один файл *.po, так как при этом теряются почти все преимущества автоимпорта.

Аватар пользователя EllECTRONC EllECTRONC 14 июня 2008 в 0:16

PanDa777 wrote:
2EllECTRONC
При импорте не через автоимпорт имя файла любое. При использовании автоимпорта крайне нежелательно использовать только один файл *.po, так как при этом теряются почти все преимущества автоимпорта.

[size=20]Чаво!!![/size] При чем тут количество файлов, когда я пишу про то, что в названии файла обязательно должно присутствовать [size=20]".ru.po"[/size] и разделяться именно точной (.)? (да - автоимпорт)

Аватар пользователя PanDa777 PanDa777 14 июня 2008 в 15:50

Я всего лишь говорю следующее:

  1. Один файл обычно используется только при ручном импорте. Иначе теряется половина бонусов автоимпорта. То есть в этом случае не верно, что "Т.е .ru.po обязательный атрибут названия файла."
  2. Если используется автоимпорт: да, безусловно, у каждого po-файла конец должен быть .ru.po. Но:
    • Ответом на
      Quote:
      Файл перевода drupal-6.1-ru.po содержит синтаксическую ошибку в строке 1.
      Импорт перевода из drupal-6.1-ru.po завершился неудачей.

      никак не может служить
      Quote:

      Это происходит потому, что файл drupal-6.1-ru.po не относится к файлам перевода

      Потому что если использовался ручной импорт, то абсолютно не важно, какое окончание файла. Если использовался автоматический импорт, то файл просто не начнёт импортироваться и такой ошибки также быть не может.
    • Теперь подойдём к вопросу с другой стороны. Пусть человек собирается использовать автоимпорт (то есть тот метод, в котором расширение файла важно). Как я уже сказал, брать перевод в одном файле ему нецелесообразно. Значит, он берёт архив, в котором и так уже все файлы имеют нужные имена, поскольку он изначально пакуется с таким расчётом. Естественно, сам архив всё равно придётся распаковывать, поэтому имя архива не обязано оканчиваться на .ru.po.Значит, и в этом случае, скорее всего, ничего переименовывать не придётся.
Аватар пользователя EllECTRONC EllECTRONC 16 июня 2008 в 16:15

Что ты мне одно и тоже талдычишь?!? Я то тебя поняла, а вот ты кажеться понять ни меня, ни себя никак не можешь!

PanDa777 wrote:

Один файл обычно используется только при ручном импорте. Иначе теряется половина бонусов автоимпорта. То есть в этом случае не верно, что "Т.е .ru.po обязательный атрибут названия файла."

С какой-такой стати и какие-такие бонусы теряются? Поподробнее, приведите хоть один!
PanDa777 wrote:

Если используется автоимпорт: да, безусловно, у каждого po-файла конец должен быть .ru.po. Но:
Ответом на.....
никак не может служить

А я вообще-то про АВТОИМПОРТ и говорю!!!
Если скачивать архив - да переименовывать ничего не нужно, но если просто скачать перевод одним файлом ".po", то его придется переименовать т.к. его имя, к примеру "имя_модуля-5.x-1.9-ru.po", не пройдет через автоимпорт, а пользоваться ручным импортом.... это....

Гость не уточнил(а) каким водом импорта пользовался, а т.к. при использовании АВТОИМПОРТА, имя файла имеет большое значение. Так что ОТВЕТОМ это вполне может служить!!! [color=#FF0000]Я ответила так, ПОТОМУ ЧТО сама сталкивалась с такой проблемой и именно из-за названия файла перевода!!![/color]

Целесообразно, не целесообразно - это не тебе решать. У меня к нескольким модулям как-то оказались переводы именно по одному файлу к каждому, так что, по-твоему я должна ручным импортом, для 5-6 модулей....?!?
ВСЕ "ВОПРОС" ПО ИМЕНИ ФАЙЛА - ЗАКРЫТ!!!

P.S.: Отвечала я не тебе, а Гостю, так что ему решать - ответ это или нет...

Аватар пользователя PanDa777 PanDa777 16 июня 2008 в 18:24

Как мне кажется, я вас понимаю:

  1. Что вы говорите: "Я использую автоимпорт. Перевод использую в одном файле. Этот файл обычно называется drupal-ru.po. Поэтому, чтобы заработал автоимпорт, я переименовываю этот файл так, чтобы он заканчивался .ru.po. И того же советую гостю, у которого возникла ошибка "Файл перевода drupal-6.1-ru.po содержит синтаксическую ошибку в строке 1. Импорт перевода из drupal-6.1-ru.po завершился неудачей." Насколько я понял из прочтения вашего последнего сообщения, вы говорите в том числе и о переводе сторонних модулей. Это единственное, чего я не понимал до предыдущего сообщения. Себя, уверяю, я понимаю...
  2. Отвечу сейчас на вопрос С какой-такой стати и какие-такие бонусы теряются?
    • В базе хранится перевод только тех модулей ядра, которые хоть один раз были включены. Это абсолютно теряется при использовании одного файла для импорта (я опять же говорю про ядро). Это самый большой плюс: если ещё и сделать модуль, который будет аккуратненько подчищать базу — этот плюс многократно увеличится.
    • Думаю, ещё не создан хостинг, на котором может не хватить времени с помощью локализации, если используется несколько файлов. Правда, наверное, здесь я с вами соглашусь: на том хостинге, на котором drupal не обработает за раз файл локализации, Drupal вообще не сможет работать. Хотя, кто знает?
    • После установки можно получить уже локализованный Drupal (может быть, это возможно при использовании локализации одного файла - не пробовал, не знаю).
    • Как вы думаете, зачем же существует другой формат хранения перевода? Наверное, не просто так... Не только чтобы запутать пользователя. Здесь уже вступает в ход официальная идеология Smile Нет, правда, не просто же так переводы распространяются в виде tgz-архивов (в том числе).
    • Откровенно говоря, определённые плюсы есть, но не так уж много... Погорячился я немного насчёт большинства. К тому же, похоже, вы говорите (в том числе) и про локализацию сторонних модулей, для которых использование одного файла почти ничем не отличается от использования нескольких фалов (которые всё равно будут лежать в одном каталоге). Ладно, по этому вопросу дискуссию продолжать не будем.
  3. А теперь поясню то, почему же на сообщение пользователя ваш ответ ответом служить не может. Читаем внимательно сообщение пользователя Гость (гостевой логин). Он приводит текст конкретной ошибки. Специально посмотрел код: Drupal при автоимпорте вообще даже не пробует читать те файлы, которые заканчиваются не на .ru.po. Значит, Drupal при автоимпорте даже не попытается обработать файл с "неправильным" именем. Текст ошибки же утверждает, что вполне конкретный файл содержит какую-то синтаксическую ошибку. Значит, модуль locale пытался его обработать. Значит, эта ошибка возникла не в результате автоимпорта. Значит, файл был указан вручную. Значит, имя файла было не важно. Поэтому я подумал, что лучше предупредить ползователя о том, что, скорее всего, ваше решение не устранит его неприятность.
  4. Почему я всё время говорил про число файлов. Я напрямую связывал количество файлов со способом имопрта. В этом пункте я был несколько неправ, хотя я буду прав в 95% случаев. Кстати, в отношении к тому самому сообщению Гостя моё предположение, не сомневаюсь, верно.

P.S. Кстати, в предыдущем сообщении вы впервые обмолвились о том, что, оказывается, вы, в том числе, говорите и о локализации модулей. До этого речь, вообще-то, шла о ядре Smile В том числе и в сообщении, в котором сообщается об ошибке. Ну да ладно.
P.P.S. Если ещё будете отвечать в этом топике, то, будьте добры, делайте это вежливо. Вы ведь умеете?
P.P.P.S. Ваше бы сообщение неплохо смотрелось в этой теме, если бы оно не претендовало бы на роль ответа к вышеобозначенному сообщению.

Аватар пользователя EllECTRONC EllECTRONC 19 июня 2008 в 13:19

Я говорила лишь о подобной ошибке и именно в сторонних модулях, а не про drupal-6.1-ru.po! Какая собственно разница, что именно...?
Ставила и ставлю Drupal (и не только) уже давно и не нуждаюсь в ваших описаниях об установке.
Если работать на хостинге (на котором у меня Drupal стоит), то это было бы гораздо быстрее, чем на моем старом пентиуме 4.
Насчет модуля с подчисткой согласна, давно ищу подобный!!!

п.3 Вот когда встретишься с такой же ошибкой, просто замени "-" на "." и все пойдет как по маслу,....... ну или же мне просто повезло! ))))))

--> P.P.S. > Это вы про мое P.S.: ???

Quote:
P.P.P.S. Ваше бы сообщение неплохо смотрелось в этой теме, если бы оно не претендовало бы на роль ответа к вышеобозначенному сообщению.

Вы против, что кто-то другой отвечает в ВАШЕМ посте???

На все остальное: bla bla-bla... are u still talking?

Аватар пользователя PanDa777 PanDa777 20 марта 2008 в 20:17

К сожалению, вашу проблему воспроизвести не смог.

Осознаёте ли вы, что при попытке загрузки перевода через admin/build/translate/import необходимо скачивать изначально po-файл (а не архив)? То есть, следуя моей инструкции, в пункте 5 необходимо выбрать второй вариант.

Если у вас так и не получится устранить проблему, то предлагаю вам поступить следующим образом:
1. Скачайте архив с сервера локализации по первой инструкции, выбрав в пункте 5 первый вариант.
2. Распакуйте полученный архив в корень сайта.
3. Удалите (если уже создали) русский из списка языков.
4. Добавьте его заново - перевод должен автоматически импортироваться (у меня так получилось).

Аватар пользователя Гость Гость (не проверено) 20 марта 2008 в 21:11

При попытке извлечь архив drupal-6.1-ru-translations.tgz на сервере или в windows всегда выдает ошибку:
Command 'tar -xz --directory="." -f "drupal-6.1-ru-translations.tgz"'
failed with return code 2 and error message
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Read 7422 bytes from drupal-6.1-ru-translations.tgz
tar: Error exit delayed from previous errors.

po файл тоже похоже скачивается поврежденным.

Уточню, что с любым другим архивом на сервере проблем не возникает. Все, что скачиваю с сервера перевода приходит битое.

Может выложите для проверки уже скачаный файл po и архив для 6.1.

Аватар пользователя Гость Гость (не проверено) 20 марта 2008 в 23:34

Экспорт работает, как и должен. Проблем не замечено. У меня в Linux проблем с открытием архива не было. Винды нигде нет, не проверял. Те, кому не распаковать архив под Виндой - пробуйте другой архиватор. Очень неплохой, полностью бесплатный да еще и мультиформатный - 7zip - http://www.7-zip.org/

Аватар пользователя Гость Гость (не проверено) 21 марта 2008 в 15:11

Проблема решилась другим браузером. Скачанные через IE файлы были действительно битые, похоже в них заголовок исковеркан, а файл po не является текстовым(набор крякозябр и не единого кусочка текста)

Аватар пользователя Akzhan Akzhan 21 марта 2008 в 22:06

Если быть точным, имеет смысл пошаманить над сайтом, чтобы он давал корректную информацию для IE.

Или хотя бы написать, что надо использовать FireFox...

Аватар пользователя SaBoNim SaBoNim 23 марта 2008 в 12:37

Чтобы такая ошибка не возникала:
Файл перевода ***********.po содержит синтаксическую ошибку в строке **.
Импорт перевода из ***********.po завершился неудачей.

Нужно открыть в любом редакторе (где есть поиск, не poedit) ваш файл .po и добавить после каждой строчки, содержащей слово
msgid_plural
вот это:
msgstr[] ""

И ошибки не будет.

Аватар пользователя PanDa777 PanDa777 23 марта 2008 в 19:26

Если был скачан битый файл - то уже, наверное, ничего не поможет.

Если файл не испортился при загрузке - а тогда откуда он вообще взялся такой неправильный?

Аватар пользователя KCEOH KCEOH 26 марта 2008 в 11:25

Непонятно, зачем разбито на русификацию друпала / модулей, избыточность информации какая-то получается.

Аватар пользователя PanDa777 PanDa777 26 марта 2008 в 11:45

Да там очень много избыточной информации.

Просто я не мог придумать, как же вставить информацию о модулях (в том числе, как найти название проекта, об автоматическом импорте перевода при включении модуля) в информацию о руссификации Drupal.

Информацию о руссификации стандартного набора, ИМХО, всё равно надо выделять отдельно...

Аватар пользователя SVictor SVictor 2 апреля 2008 в 17:38

Попробывал скачать и импортировать перевод, ответ масса ошибок. Сейчас пытаюсь их исправить, не уверен, что получится. Может быть кто-то уже проделывал эту работу, у кого-то есть работающий перевод???

Аватар пользователя PanDa777 PanDa777 3 апреля 2008 в 22:33

Каким образом вы пытались это сделать? Ибо как-то всё-так очень странно... У меня всё успешно работало, как и должно.

Аватар пользователя Фитодизайнер Фитодизайнер (не проверено) 3 апреля 2008 в 15:37

Все чудесно проходит, если сначала устанавливать англицкую верссию, а уже затем импортировать перевод.
Сначала в разделе Modules надо включить - locale, после чего зайти в site building и импортировать файл, который скачивается с этой страницы. Потом проходите по ссылке, со страницы, на которую вас перебросит после импорта и по умолчанию ставите русский.

Аватар пользователя rating-man rating-man (не проверено) 9 апреля 2008 в 14:23

У меня долго не получалось, пробовал разные варианты. При инсталяции по-новой, там стоит английский и варианты инсталляции на другом языке вообще отсутсвуют. Поэтому выбора нет - сначала инсталляция на английском.

Далее правильно написал Фитодизайнер, что надо включить возможность установки локали: для этого входим Site building, далее Module , помечаем модуль Locale, затем входим в Site building language выбираем import, устанавливаем обзором заранее скаченный файл (по третьему ванианту). Выбираем селектором русский и далее загружаем. Потом переходим Управление - настройки - языки и устанавливаем по умолчанию русский. Вот и все.

И еще ньюанс (третий вариант), через IE нормально файл не скачивается, через Opera загрузился файл руссификации, но у него объем был 2,7 Мб и при попытке загрузить на Drupal появлялось сообщение, что файл вообще не найден, хотя он был.
Попробовал скачать этот файл по третьему варианту но через Firefox, получилось - его объем был равен 813 Кб и все получилось как я описал. Руссификация установилась!

Вот так, не все так просто, как пишут.... Надеюсь и у Вас получится!

Аватар пользователя PanDa777 PanDa777 10 апреля 2008 в 20:24

У кого какие идеи причин этой ошибки? Ибо, похоже, она возникает у многих, но непонятно, почему. У меня (а я ставил перевод уже раз 10) она ни разу не возникла. К сожалению, в случае с edrokov, ошибка (пока что) для меня нерезультативна, ибо, похоже, просто js-скрипт Drupal, который отвечает на многоэтапные (batch) операции, посчитал, что произошла ошибка. Почему-то Drupal не вернул то, что от него ожидалась...

Просьба к тем, кто получает какую-либо ошибку: напишите текст ошибки...

Аватар пользователя Alex1.7707 Alex1.7707 23 апреля 2008 в 2:16

Сделал по варианту 1 - но с v.6.2.
После выбора пункта Choose language - русский, появляется сообщение об ошибке,
в заголовке =
Warning: fopen(./profiles/default/translations/ru.po) [function.fopen]: failed to open stream: Permission denied in /home2/oleg77/public_html/we/includes/locale.inc on line 1019

Warning: Cannot modify header information - headers already sent by (output started at /home2/oleg77/public_html/we/includes/locale.inc:1019) in /home2/oleg77/public_html/we/includes/common.inc on line 141

В теле страницы =
Requirements problem
The following error must be resolved before you can continue the installation process:
The translation import failed, because the file could not be read.

Please check the error messages and try again.
---------------------
Что сделать - ума не приложу, смотрел эти line №№, ничего не понял, полночи трахаюсь - хэлп плиз!!!

Аватар пользователя PanDa777 PanDa777 23 апреля 2008 в 19:29

Написано, что к файлу /profiles/default/translation/ru.po скрипт не может получить доступ, то есть не может его прочитать. Какие права доступа у файла?

Аватар пользователя Tesmon Tesmon (не проверено) 2 мая 2008 в 7:29

У меня проблема та же была. Решилась выставлением прав 644 файлу /profiles/default/translation/ru.po (до этого было 600 почему-то...) Это уже полвосьмого утра, а я с полуночи голову ломал Smile

Аватар пользователя PanDa777 PanDa777 4 мая 2008 в 9:20

Дело в том, что в tar-файлах, скачиваемых с drupaler.ru как-то странно выставлены разрешения. Добавлю сейчас в инструкцию.

Аватар пользователя Гурман Гурман (не проверено) 19 мая 2008 в 23:17

А у меня не получается. Весь день потратил только на русификацию. Вот мои действия:
1. Активирую модуль locale.
2. Скачиваю архив русского языка (пробовал разные браузеры).
3. Импортирую этот архив и выходит такая ошибка

warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access sites/default/files/tmp/drupal-6.2-ru-11-05-08.po in /home/web-kuhnya.msk.ru/public_html/drupal/includes/file.inc on line 572.
File upload error. Could not move uploaded file.
File to import not found.

Что только не делал все равно такая же ошибка. Помогите пожалуйста, а?

Аватар пользователя Гурман Гурман (не проверено) 20 мая 2008 в 12:57

Все у меня заработал русский. Устанавливал по первому способу. Только сейчас в админке отображается вот такое сообщение:

warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/kuhnyahi/:/tmp:/usr/local/lib/php/) in /home/kuhnyahi/domains/web-kuhnya.msk.ru/public_html/drupal/includes/file.inc on line 756.
Невозможно создать файл.
warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/kuhnyahi/:/tmp:/usr/local/lib/php/) in /home/kuhnyahi/domains/web-kuhnya.msk.ru/public_html/drupal/includes/file.inc on line 756.
Невозможно создать файл.

Что делать не подскажете?

Аватар пользователя PanDa777 PanDa777 21 мая 2008 в 13:13

Что указано на странице admin/settings/file-system в качестве "Временной папки"? Попробуйте поменять на /tmp (если там не так).

Аватар пользователя Гурман Гурман (не проверено) 21 мая 2008 в 18:28

Там было /tmp. После небольших манипуляций с правами доступа эти ошибки исчезли, теперь появились:

Выбранный файл /home/kuhnyahi/domains/web-kuhnya.msk.ru/public_html/drupal/sites/default/files/tmp/fileWK83Ul не удается скопировать.
Выбранный файл /home/kuhnyahi/domains/web-kuhnya.msk.ru/public_html/drupal/sites/default/files/tmp/filePCy5G5 не удается скопировать.

Что нужно сделать в этот раз?

Аватар пользователя PanDa777 PanDa777 21 мая 2008 в 19:16

Похожую проблему лично я решал просто отключением safe_mode. Честное слово, не разбирался. Почему-то не получается скопировать эти файлы из директории tmp куда-то при включенном safe_mode. Есть такая возможность? Если нет, надо разбираться, от какого ограничения эти ошибки происходят. А файлы эти нужны для перевода строк в JS-файлах....

Аватар пользователя PanDa777 PanDa777 22 мая 2008 в 15:37

Вряд ли это поможет... Попробуйте спросить у своего хостера - возможно, он отключит safe mode. Или попробуйте написать в файл .htaccess в корне Drupal строчку php_flag safe_mode Off . Или ещё (как вариант) установить владельца директории files равным юзеру, от имени которого запускаются скрипты (правда, не уверен, что это сработает)...

Аватар пользователя edhel edhel 22 мая 2008 в 19:24

Как всё сложно с переводами у нас... имхо с главной страницы должны быть 4 прямые ссылки: последний дрюпал 5.x + po-файл с переводом и тоже самое для 6.x.

А с каждой страницы ссылка на страницу "скачать", где эти же 4 ссылки. Плюс можно на 4.х ссылки добавить.

Например, на drupal.org скачать сам drupal - один клик, скачать перевод - 2 клика. А у меня студенты-математики-программисты ищут-ищут и не могут найти перевод тут.

Аватар пользователя PVasili PVasili 22 мая 2008 в 22:35

Неужели молодёжь совсем стала слабовата? За год ни одной "хотелки" не сдвинула, а новые даже перевод не могут найти Wink

Аватар пользователя PanDa777 PanDa777 22 мая 2008 в 21:59

Если я правильно понимаю, то если их не будет, то просто не будут переведены некоторые строки. На всякий случай: эти файлы сохранились? Можете ли вы выложить их? А то я почему-то уверен, что там находится перевод JS-строк, а вдруг это не так....

Аватар пользователя Гурман Гурман (не проверено) 23 мая 2008 в 12:58

Этих файлов нет. Но они есть в папке files/tmp/, и их невозможно открыть и скопировать. Появляется ошибка.
Еще заметил одну делаль. Каждый раз когда я вручную запускаю крон, то каждый раз меняется название файла в ошибке.

Аватар пользователя PanDa777 PanDa777 23 мая 2008 в 23:32

В общем, я сейчас придумал 3 способа решения этой проблемы:

  1. Совершенно нормальный: сделать владельца ВСЕХ файлов(и папок), находящихся в корневой папке или ниже, равным тому, кто запускает скрипт.
  2. С отключением переводов строк в js-файлах, возможны "лишние" сообщения в WATCHDOG: любым способом (например, создав блок и выполняя в нём php) при

    каждом запросе страницы выполнить следующий код:
    <?php
    $js_parsed = variable_get('javascript_parsed', array());
    if (!empty($js_parsed["refresh:ru"])) {
    unset($js_parsed["refresh:ru"]);
    variable_set('javascript_parsed', $js_parsed);

    //drupal_set_message("Translation of the javascript files was skipped");
    }
    ?>

  3. Несколько "грязный" способ, но с сохранением всей функциональности: делаем то же самое, что и в предыдущем методе, но вдобавок к этому 1. Содаём

    файл перевода js-строк где угодно "у себя". 2. Копируем в папку files/languages на сайте. 3. Пусть его имя ru_1a2b3c.js. 4. Выполняем <?php db_query("UPDATE {languages} SET javascript = '1a2b3c' WHERE language = 'ru' LIMIT 1 ;");?> 5. В код из прошлого способа дописываем
    <?php
    $lang = variable_get("language_default", array());
    if ($lang->javascript !== "1a2b3c") {
    $lang->javascript = "1a2b3c";
    variable_set("language_default", $lang);
    }
    ?>

  4. Модификация ядра с полным отключением переводов js-файлов. Добавляем строчку <?php return;?> в начало функции locale_update_js_files в файле locale.module.
  5. Модификация ядра с сохранением фунцкиональности. Генерируем файл перевода, куда-нибуль его кладём, в самое начало locale_update_js_files пишем 2 строчки:
    <?php drupal_add_js('path_to_file', 'core');
    return;
    ?>

Может, всё-таки уговорите их отключить safe mode? Спросите у support об этой проблеме...

Аватар пользователя VladSavitsky VladSavitsky 28 мая 2008 в 14:01

Drupal CookBook - Готовить может каждый!Решение было сохранено на сайте DrupalCookBook.ru:

Перевод на русский язык сайта на Друпал.

Перевод на русский язык дополнительных модулей Друпал.

Авторы, предложившие решения, также указаны в сохранённой статье.

Аватар пользователя VladSavitsky VladSavitsky 2 июня 2008 в 21:14

PanDa777, прочитал ваш комментарий и хотел написать опровержение. Написал.
Перечитал ещё раз ваш и увидел, что это одно и тоже, но так сложно выраженное (много отрицаний).
Всё таки публикую коммент:
Для автоимпорта имя файла должно заканчиваться ".ru.po", а вот для ручного импорта это не обязательно.
В Друпал5 я использую автоимпорт для модулей - перевод импортируется автоматом при установке модуля.
Для ручного импорта перевода самого Друпал - лучше конечно один файл (с ним проще управляться).
А для автоимпорта лучше использовать множество маленьких файлов.

Аватар пользователя sashken sashken 16 июня 2008 в 19:02

После русификации уже установленного Друпала начинает выскакивать ошибка:

* Выбранный файл /tmp/fileslKfKQ не удается закачать, поскольку каталог назначения sites/default/files/languages/ru_ecea589cabd236409bb7a95cc91bcfcd.js неверно сконфигурирован.
* Выбранный файл /tmp/filebPUZxa не удается закачать, поскольку каталог назначения sites/default/files/languages/ru_ecea589cabd236409bb7a95cc91bcfcd.js неверно сконфигурирован.

Подскажите что делать

Аватар пользователя PanDa777 PanDa777 16 июня 2008 в 20:57

Несколько вопросов:

  1. Существует ли в каталоге sites/default/files папка languages?
  2. Какие права доступа у sites/default/files и у sites/default/files/languages/
  3. Включен ли safemode?
  4. Какие сообщения есть в логах Drupal?
Аватар пользователя lermus lermus 11 февраля 2009 в 23:46

ничего не понял, но Способ 2 сработал!
Тупо выполнил всё пошагово и сработал!
ООООО!
Я себе устанавливал локализированную версию 6-го, но модуль Форум не перевёлся, а теперь ВСЁ перевелось
Спасибо Вам от гуманитария. Smile

Аватар пользователя MadBadJack MadBadJack 18 марта 2009 в 21:10

Вот что я хотел бы сказать. (Простите, это чистая лирика). Я заинтересовался Drupal около 4-5 мес. назад. Попробовал, покрутил, знаний не хватило, а особой необходимости менять привычное собственно не было. Теперь есть необходимость сделать пару более-менее коммерческих сайтов для своих старых друзей, при выборе CMS я выбрад Друпал потому что:
1. Благодаря этому проекту (поверьте, много русскоязычных сайтов поддержки CMS-ok обошел, нет такого отношения к новичкам как здесь. На Typo и вовосе кроме надувания щек никакой помощи, даже не стал задавать ни одного вопроса)
2. Считаю Друпал самой перспективной cms, во всяком случае в плане seo.
3. Рад вернуться сюда (вытекает из пункта 1)

Аватар пользователя MadBadJack MadBadJack 18 марта 2009 в 21:12

Вот что я хотел бы сказать. (Простите, это чистая лирика). Я заинтересовался Drupal около 4-5 мес. назад. Попробовал, покрутил, знаний не хватило, а особой необходимости менять привычное собственно не было. Теперь есть необходимость сделать пару более-менее коммерческих сайтов для своих старых друзей, при выборе CMS я выбрал Друпал потому что:
1. Благодаря этому проекту (поверьте, много русскоязычных сайтов поддержки CMS-ok обошел, нет такого отношения к новичкам как здесь. На Typo и вовсе кроме надувания щек никакой помощи, даже не стал задавать ни одного вопроса)
2. Считаю Друпал самой перспективной cms, во всяком случае в плане seo.
3. Рад вернуться сюда (вытекает из пункта 1)

Аватар пользователя Vremin Vremin 29 марта 2009 в 15:03

Замучился с переводом доп. модулей. Как и многие скачивал перевод с http://drupaler.ru/translate/languages/ru/export не FireFox-ом. В итоге, архив с переводом скачивался не полностью! Хорошо, что нашел эту конференцию. Скачал FireFox-ом и оказалось, что в архиве полявилась куча новых файликов Smile

Аватар пользователя jamshiddin jamshiddin 27 ноября 2009 в 0:22

Я подключил модуль localization client (l10n_client), модуль работает, но в "Создать материал" "Настройка меню" не работает (не активна), Если кто-то знает этого причина, отвечайте пожалуйста.

Аватар пользователя Sergej S@drupal.org Sergej S@drupal.org 29 января 2010 в 23:21

первым способом.
выдает ошибку при распаковке:
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Error exit delayed from previous errors
.................................
проб. одним файлом .ро
все по инструкциям и книгам,
но результат следующий.
=99,9% показывает переводимости
при нажатиии кнопки Деф... и после сохранить параметры
ни чего не происходит.

ЧЕМ вызвана проблема?
кто сталкивался с подобным или предположения

Аватар пользователя gogad gogad 9 октября 2010 в 16:27

уточните пожалуйста второй способ(с помощью множества небольших po-файлов) (без использования сторонних модулей) получаю архив с тремя папками modules, themes, profiles в них много других папок и ро-файлов, мне их надо распаковать в корень сайта-- но там уже есть такие папки--они должны быть заменены?, или мне надо все ро-файлы отдельно в корень скопировать из всех папок?.

Аватар пользователя karelia karelia 20 января 2011 в 23:22

Спасибо! Один из вариантов помог... Кстати, хорошо, что образцы архивов с переводом лежат здесь - на сайте-источнике скачиваются битые архивы.