Не переводится сайт drupal 8

Аватар пользователя lionq lionq 24 января в 12:49

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

Видео с проблемой перевода меню

Страницы сайта созданы через Таксономии и Представления и мне нужно их перевести.

Версия Drupal 8.9.1
PHP Версия 7.2.34
Веб-сервер
Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 OpenSSL/1.0.2k-fips PHP/7.2.34

Лучший ответ

Аватар пользователя primary primary 29 января в 18:56

Попробуйте исправить русский перевод путем его обновления. На странице "Настройки перевода интерфейса ":

/admin/config/regional/translate/settings

в верхней секции "Проверка обновлений" есть ссылка "Проверить сейчас". После проверки обновлений система предложит их установить.

На вышеуказанной странице есть секция " Работа импорта" с пунктами:
- Не перезаписывать существующие переводы.
- Перезаписывать только импортированные переводы, изменённые переводы не заменять.
- Перезаписывать существующие переводы.

Предварительно, перед обновлением перевода выберите последний пункт и сохраните эту настройку.

Также можно попробовать обновить русский перевод с помощью локального файла (выше в ветке указан адрес, где его скачать):

В секции "Источник перевода" указать "Локальные файлы"

Файлы перевода сохраняются локально в каталоге sites/default/files/translations. Изменить данный каталог можно на странице конфигурации Файловой системы.

Несколько лет назад у меня на одном из сайтов была подобная проблема с неполным русским переводом, которая решилась импортом файла перевода. В автоматическом режиме система также упорно устанавливала не полный перевод.

После обновления перевода почистите кэш.

Комментарии

Аватар пользователя marassa marassa 24 января в 14:03

Помню, сталкивался с таким глюком в начале моего пути с D8: чтобы перевести на язык, нужно было сначала переключиться на этот язык. То есть хотите переводить на английский, сначала переключаетесь на английский, потом добавляете/редактируете перевод. Трудно поверить, что эта фигня дожила до 8.9, но по крайней мере попробуйте...

Аватар пользователя lionq lionq 24 января в 20:27

Как переключиться? Где в настройках это сделать? Переключаюсь через переключатель на сайте, но все равно не работает (

Аватар пользователя marassa marassa 24 января в 20:33

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

Аватар пользователя lionq lionq 24 января в 23:25

Перепробовал все. Аж переустановил плагин через Devel, из-за чего сломался сайт. Пришлось заново устанавливать. Могу дать доступ к сайту, мне уже чисто интересно в чем причина @@

Аватар пользователя primary primary 24 января в 23:47

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

Причина может быть в следующем. Изначально основным языком сайта является Английский. Например, использовали готовую англоязычную сборку (движок и тему) на английском, а потом начали переделывать на русский язык, но английский - по прежнему основной. Из-за этого часто возникает путаница в переводах.

Статус должен быть "Опубликовано".

2. Также проверьте, на странице админпанели:

/admin/config/regional/content-language

отмечены ли те сущности которые нужно переводить, в том числе меню. Возможно не отмечен пункт "Пользовательская ссылка меню".

3. Посмотрите, каким образом выводится меню в теме. Обычно для этого используются различные модули меню. Не все модули поддерживают мультиязычность. Это будет указано на странице модуля на drupal.org.

Аватар пользователя lionq lionq 25 января в 0:01

1. Это вероятнее всего, так как и тема купленная, да и все страницы через таксономии и представления построены. Тут не только меню, а и таксономии не переводятся. Когда добавляю, они отображаются вместе с русской версией.

Аватар пользователя primary primary 25 января в 0:39

Сделайте так:

1. Резервную копию сайта.

2. Поставьте модули для мультиязычности, как здесь:

https://www.ostraining.com/blog/drupal/d8-multi-lingual/

3. На странице

/admin/config/regional/language

установить язык сайта по умолчанию - Русский. Убедитесь, что закачан русский перевод Друпала.

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

4. На странице админпанели:

/admin/config/regional/content-language

отметьте те сущности которые нужно переводить.

5. В разделе админки "Определение и выбор языка" на странице

/admin/config/regional/language/detection

ставите флажок - метод определения - URL.

По умолчанию должен также стоять флажек (последний) "Выбранный язык".

В строке "Метод определения - URL" нажимаете "Настроить" и переходите на страницу

/admin/config/regional/language/detection/url

Ставите флажок "Часть URL, которая определяет язык" - Префикс пути
Затем, в поле "Префикс пути языка English (en)" - пишите: en
Поле "Префикс пути языка Russian (ru) (Язык по умолчанию)" оставляете пустым.
Сохраняете. После этого на англоязычных страницах в url будет автоматически добавляться префикс en:

sait.ru/en/page1

Почистите КЭШ

6. Далее заходите в админку и в разделе Содержимое добавляете русский перевод страниц. В разделе Блоки - русский перевод блоков. И т.д. по всем элементам. По мере добавления русских переводов эти элементы станут отображаться.

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

Аватар пользователя lionq lionq 25 января в 15:50

Спасибо за инструкцию, но так и делал. Повторил еще раз, но не помогло(

Язык сайта стоит Русский, где перевод 11127/22699 (49.02%). Предполагаю, он и вправду был изначально английским и его перевели на русский.

Возможно на чистый сайт перевести весь контент без потери? Установить все заново.

Аватар пользователя IceWhisky IceWhisky 25 января в 16:45

Переводите все, что нужно переводить.
В представлениях добавьте в фильтрацию "язык перевода"

В настройках блоков выберите

И по свитчеру будет подтягиваться соответствующий язык

Аватар пользователя primary primary 26 января в 1:31

"Возможно на чистый сайт перевести весь контент без потери? Установить все заново." - лучше установить по умолчанию русский язык и заполнить все переводы. Про представления, спасибо IceWhisky, я забыл дополнить, что следует добавить фильтрацию по языку, иначе контент будет дублироваться (например, блок с представлением будет выводиться два раза).

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

У вас на сайте также не корректно установлен русский перевод - "... где перевод 11127/22699 (49.02%)". Должно быть, примерно, более 84%.

1. Обновите ядро.

2. Удалите текущий русский 49.02% перевод.

3. Попробуйте на странице:

/admin/config/regional/language

еще раз добавить русский язык.

4. Если опять загрузиться не полный перевод - примерно менее 84 %,
то опять удалите текущий русский перевод.

5. Скачайте для своего ядра файл с переводом здесь:

https://localize.drupal.org/translate/languages/ru

6. Импортируйте файл с переводом на странице:

/admin/config/regional/translate/import

Аватар пользователя lionq lionq 26 января в 11:28

обновить ядро тоже не получается. Делаю по инструкции: удаляю все папки кроме themes modules и sites, открываю update.php, а она выдает ошибку Error 500.
В логе пишет такое:
modules/contrib/currency/src/Entity/CurrencyInterface.php on line 12

Аватар пользователя lionq lionq 26 января в 18:06

Обновил ядро (из-за одного плагина update.php показывал ошибку 500).
Удалил Русский, скачал и импортировал. Все равно показывает 9742/22928 (42.49%)

Аватар пользователя primary primary 29 января в 18:56

Попробуйте исправить русский перевод путем его обновления. На странице "Настройки перевода интерфейса ":

/admin/config/regional/translate/settings

в верхней секции "Проверка обновлений" есть ссылка "Проверить сейчас". После проверки обновлений система предложит их установить.

На вышеуказанной странице есть секция " Работа импорта" с пунктами:
- Не перезаписывать существующие переводы.
- Перезаписывать только импортированные переводы, изменённые переводы не заменять.
- Перезаписывать существующие переводы.

Предварительно, перед обновлением перевода выберите последний пункт и сохраните эту настройку.

Также можно попробовать обновить русский перевод с помощью локального файла (выше в ветке указан адрес, где его скачать):

В секции "Источник перевода" указать "Локальные файлы"

Файлы перевода сохраняются локально в каталоге sites/default/files/translations. Изменить данный каталог можно на странице конфигурации Файловой системы.

Несколько лет назад у меня на одном из сайтов была подобная проблема с неполным русским переводом, которая решилась импортом файла перевода. В автоматическом режиме система также упорно устанавливала не полный перевод.

После обновления перевода почистите кэш.

Аватар пользователя lionq lionq 30 января в 10:09

Получилось! Просто установил тему Bartik и сново переключил на свои. И перевод начал появляться. До этого все перепробовал с удалением кеша. Спасибо!

Аватар пользователя ivnish ivnish 31 января в 6:34

jura12 wrote: версия php слабовата

Не слабовата, а уже не поддерживается командой безопасности PHP

jura12 wrote: апач не обновленный

Написано же "CentOS" Smile