Здравствуйте. Включаю модули, делаю все по инструкции, добавляю перевод меню, но он не отображает. Может есть какие-нибудь подводные камни с переводом? По теме не нашел ничего толкового в сети.
Видео с проблемой перевода меню
Страницы сайта созданы через Таксономии и Представления и мне нужно их перевести.
Версия 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
Комментарии
Помню, сталкивался с таким глюком в начале моего пути с D8: чтобы перевести на язык, нужно было сначала переключиться на этот язык. То есть хотите переводить на английский, сначала переключаетесь на английский, потом добавляете/редактируете перевод. Трудно поверить, что эта фигня дожила до 8.9, но по крайней мере попробуйте...
Как переключиться? Где в настройках это сделать? Переключаюсь через переключатель на сайте, но все равно не работает (
Переключаться обычным способом через переключатель языков. Если не помогает, значит дело в чем-то другом...
Перепробовал все. Аж переустановил плагин через Devel, из-за чего сломался сайт. Пришлось заново устанавливать. Могу дать доступ к сайту, мне уже чисто интересно в чем причина @@
1. На видео видно, что статус ссылки меню на русском языке "Не опубликовано". Должно быть, как и на английском - "Published".
Причина может быть в следующем. Изначально основным языком сайта является Английский. Например, использовали готовую англоязычную сборку (движок и тему) на английском, а потом начали переделывать на русский язык, но английский - по прежнему основной. Из-за этого часто возникает путаница в переводах.
Статус должен быть "Опубликовано".
2. Также проверьте, на странице админпанели:
/admin/config/regional/content-language
отмечены ли те сущности которые нужно переводить, в том числе меню. Возможно не отмечен пункт "Пользовательская ссылка меню".
3. Посмотрите, каким образом выводится меню в теме. Обычно для этого используются различные модули меню. Не все модули поддерживают мультиязычность. Это будет указано на странице модуля на drupal.org.
1. Это вероятнее всего, так как и тема купленная, да и все страницы через таксономии и представления построены. Тут не только меню, а и таксономии не переводятся. Когда добавляю, они отображаются вместе с русской версией.
Сделайте так:
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 Друпале не поддерживали мультиязычность панели.
Спасибо за инструкцию, но так и делал. Повторил еще раз, но не помогло(
Язык сайта стоит Русский, где перевод 11127/22699 (49.02%). Предполагаю, он и вправду был изначально английским и его перевели на русский.
Возможно на чистый сайт перевести весь контент без потери? Установить все заново.
Переводите все, что нужно переводить.
В представлениях добавьте в фильтрацию "язык перевода"
В настройках блоков выберите
И по свитчеру будет подтягиваться соответствующий язык
так и делаю, не переводится
"Возможно на чистый сайт перевести весь контент без потери? Установить все заново." - лучше установить по умолчанию русский язык и заполнить все переводы. Про представления, спасибо 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
обновить ядро тоже не получается. Делаю по инструкции: удаляю все папки кроме themes modules и sites, открываю update.php, а она выдает ошибку Error 500.
В логе пишет такое:
modules/contrib/currency/src/Entity/CurrencyInterface.php on line 12
Обновил ядро (из-за одного плагина update.php показывал ошибку 500).
Удалил Русский, скачал и импортировал. Все равно показывает 9742/22928 (42.49%)
Кто поможет решить эту проблему с оплатой? Дам доступ к сайту
Попробуйте исправить русский перевод путем его обновления. На странице "Настройки перевода интерфейса ":
/admin/config/regional/translate/settings
в верхней секции "Проверка обновлений" есть ссылка "Проверить сейчас". После проверки обновлений система предложит их установить.
На вышеуказанной странице есть секция " Работа импорта" с пунктами:
- Не перезаписывать существующие переводы.
- Перезаписывать только импортированные переводы, изменённые переводы не заменять.
- Перезаписывать существующие переводы.
Предварительно, перед обновлением перевода выберите последний пункт и сохраните эту настройку.
Также можно попробовать обновить русский перевод с помощью локального файла (выше в ветке указан адрес, где его скачать):
В секции "Источник перевода" указать "Локальные файлы"
Файлы перевода сохраняются локально в каталоге sites/default/files/translations. Изменить данный каталог можно на странице конфигурации Файловой системы.
Несколько лет назад у меня на одном из сайтов была подобная проблема с неполным русским переводом, которая решилась импортом файла перевода. В автоматическом режиме система также упорно устанавливала не полный перевод.
После обновления перевода почистите кэш.
Получилось! Просто установил тему Bartik и сново переключил на свои. И перевод начал появляться. До этого все перепробовал с удалением кеша. Спасибо!
версия php слабовата https://www.drupal.org/docs/system-requirements/php-requirements и апач не обновленный Apache/2.4.46 и пхп включен медленным способом.
Не слабовата, а уже не поддерживается командой безопасности PHP
Написано же "CentOS"