Настройка перевода материала Книга в Drupal 8

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

Аватар пользователя Godwin Godwin 11 декабря 2018 в 18:54

Для меня критична настройка перевода подшивки Книга, но для 8-ки не могу найти решение. Пересмотрел много статей (En|Ru), сайт настроен вроде бы правильно. Проблема в том, что вот эта первая страница, переведённая на русский имеет внизу оглавление почему-то на английском.

Как это можно сделать на 8-ке?

Комментарии

Аватар пользователя Godwin Godwin 13 декабря 2018 в 21:13

Сравнив со своим 7-м сайтом, увидел, что там при переводе «Книга» с английского, создаётся новая! книга на русском. В 8-ке при переводе в закладке «Оглавление книги» предлагается только английское название книги, уже существующей, тогда как в 7-ке предлагался выбор - Новая книга -.

Мне не понятно, это баг 8-ки или я что-то не то делаю??
Настройки сайта-
Базовый: русский
Способ определения языка: Текст интерфейса - URL, Префикс пути

Но формат Книга «Restoring the Greatness of Democratic Nations» была первоначально создана на английской стороне сайта, которую я стал переводить на русский. Или надо было сначала создать русский вариант книги, и потом водить на английском, при таких настройках сайта??

Аватар пользователя Orion76 Orion76 13 декабря 2018 в 21:36

Вообще, функции "многоязычности" в Drupal 8 заложены в ядре..
Странно, что с book такие нюансы..

По моим "ощущениям" модуль book находиться в ядре друпал только потому что на drupal.org справочная система на нем.
Хотя, для некоторых задач, если уметь его приготовить - отличная штука.

Но похоже - ей уделяют мало внимания-)

Хм.. покопался на орге.. для семерки для модуля book не было нормальной "многоязычности", и ее приделали отдельным модулем. но версии этого модуля для восьмерки нет.
А с "многоязычностью" на восьмерке не только у вас проблемы..
Там что-то не так с переводами меню-навигации по подшивке.

Короче, доделывать надо модуль-)

Аватар пользователя Godwin Godwin 13 декабря 2018 в 21:50

Попалась интересная статья «Drupal 8 translations best practices», и там рекомендуется язык по умолчанию всегда ставить EN.

В ...Типы материалов > Book page > Управление отображением - стоит поле «Ссылки», которое не редактируется. Его можно как-то отредактировать? По сути проблема только в этом.

Аватар пользователя Orion76 Orion76 13 декабря 2018 в 22:07

Я про это и писал, "Ссылки" это скорее всего и есть "меню навигации по подшивке" ..
а генерация меню для всех языков подшивке, похоже, не предусмотрена..
наверное забыли сделать-)

Аватар пользователя sas@drupal.org sas@drupal.org 14 декабря 2018 в 7:12

Книга, это только связи материалов с материалами и вывод дерева их связей, в 8-ке, что мешает сделать это на стандартном уровне сущностей со стандартным переводом и выгрузить config

Аватар пользователя Godwin Godwin 14 декабря 2018 в 11:27

Алексей, вы думаете я хоть что-то понял из того, что вы сказали? Lol Буду вам благодарен за сценарий действий, как это сделать.

Павел, да, это точно забыли сделать. На ОРГе я нашёл тему по этому вопросу. Патч есть, надо попробовать.

Аватар пользователя Godwin Godwin 14 декабря 2018 в 22:06

Патч book_navigation_translatable-2470896-75.patch провел вручную, ошибок при вводе не должно быть. Получил белый экран с такой надписью:

The website encountered an unexpected error. Please try again later.
Recoverable fatal error: Argument 3 passed to Drupal\book\BookBreadcrumbBuilder::__construct() must implement interface Drupal\Core\Language\LanguageManagerInterface, none given, called in /home/useraccount/mysite.org/core/lib/Drupal/Component/DependencyInjection/Container.php on line 266 and defined in Drupal\book\BookBreadcrumbBuilder->__construct() (line 52 of core/modules/book/src/BookBreadcrumbBuilder.php).

Что посоветуете, друзья, как исправить? (Архив есть, но хотелосьбы найти решение.)

Аватар пользователя Godwin Godwin 15 декабря 2018 в 20:48

Повторно вручную ввёл патч book_navigation_translatable-2470896-75.patch, и на ссылках книги перевод появился. Но появилась проблема с очисткой кэша, после которого экран не обновляется и остаётся белым, без сообщений. В логах чисто, крон и статус сайта - всё нормально. Написал в ОРГе о проблеме.

Почему вводил вручную:
Патч положил в директорю - Мойсайт/core/modules/book. Через Putty консоль SSH перешёл в эту директорию и запустил
patch -p1 < book_navigation_translatable-2470896-75.patch
Выдало сообщение, что нет такого файла(на ряд файов), которые ищет скрипт.

Запуск
git apply -v book_navigation_translatable-2470896-75.patch
выдал такой же результат.

Запустил патч через SSH первый раз, подскажите, в чём ошибка была?

Аватар пользователя Godwin Godwin 16 декабря 2018 в 21:09

ErikWegner создал новый патч #82 для решения этой проблемы.
Он написал: "If dependency injection does not know about additional required service, retrieve service from global object. This should handle the case when clearing the cache is not possible and avoid a WSOD."
Я ничего не понял из сказанного (английский я знаю). Может ли кто-нибудь пояснить, о чем идет речь и нужно делать?

Аватар пользователя marassa marassa 16 декабря 2018 в 21:57

Godwin wrote:

Может ли кто-нибудь пояснить, о чем идет речь и нужно делать?

Это просто комментарий к его последнему патчу, пояснение что именно он там поменял в коде. Разбираться в этом не обязательно. "Что делать?" - поставить патч. Если всё равно не работает - написать туда же.

Аватар пользователя Godwin Godwin 17 декабря 2018 в 17:34

Спасибо за отклик, Андрей! Последние изменения от ErikWegner я ввёл, но «белый экран смерти» продолжает упорствовать, когда я нажимаю "Очистить Кэш". При этом, в "Recent log messages" всё чисто. В "Status report" всё нормально.

Эрик мне написал, как совет, что:
"Если внедрение зависимости не знает о дополнительном требуемом сервисе, то извлеки сервис из глобального объекта. Это должно отрегулировать случай, когда очистка кэша невозможна и избежать «белого экрана смерти»."

Из этого я ничего не понял: Какой сервис извлечь, из какого глобального объекта, как??? Какие зависимости?? Я даже не знаю, что ему сказать. Тупо написать, что продолжает появляться WSOD? Или проигнорировать, и просто дождаться следующей версии Drupal 8.6.5 ?

Аватар пользователя marassa marassa 17 декабря 2018 в 18:50

Godwin wrote:

Эрик мне написал, как совет

И еще раз: это не совет. Это краткое описание того, что он изменил своим патчем.
Godwin wrote:

Из этого я ничего не понял: Какой сервис извлечь, из какого глобального объекта, как???

Эрик его уже извлёк. В своём патче. Который должен был починить WSOD.
Godwin wrote:

Я даже не знаю, что ему сказать. Тупо написать, что продолжает появляться WSOD?

Именно так.

Аватар пользователя Godwin Godwin 17 декабря 2018 в 21:17

Orion76 wrote:

Если WSOD, то вэб-сервер оставил в error.log сообщение..
Интересно... что там..?
Хороший вопрос. В итоге не нашёл его. Есть директория logs, где файл в формате gz. Запуск "Очистка кэша" в нем ничего не меняет, и там что-то не по теме.


marassa wrote:

И еще раз: это не совет. Это краткое описание того, что он изменил своим патчем.

Понятно..., тогда я тут ничего не понял.))
-----------------------------------------------------
Эрику написал. Сейчас он попросит логи сервера.... (

Аватар пользователя marassa marassa 17 декабря 2018 в 21:38

Godwin wrote:

не нашёл его

Файл error_log должен быть в корне инсталляции друпала, там же где index.php, .htaccess и директории core, modules, themes и т.п. Директория logs это на уровень выше.

Аватар пользователя Orion76 Orion76 17 декабря 2018 в 22:00

логи сервера могут быть где угодно,
если "сервер" шаред-хостинг, часто доступ к логам есть в панели управления хостингом
иногда его выводят в папку сайта или домашнюю директорию пользователя.. (скорее всего папка log, logs и т.п.)

Если это впс-вдс то логи обычно лежат в папке: /var/log (путь от корня файловой системы сервера)
ищем папки nginx, php, apache и т.п.

Но в любом случае, если WSOD - не надо тратить свое и чужое время зря,
надо просто посмотреть логи, и в 98% случаев там все написано.

ЗЫ.. еще проще способ найти логи: спросить у поддержки хостинга..

Аватар пользователя Godwin Godwin 17 декабря 2018 в 22:29

Увы, брат, нет его и не было раньше. Модуль Syslog у меня активирован, стоит на Ошибки и предупреждения.
Настройки сайта кривые? Экспериментов после установки сайта я не проводил, не до этого.

Аватар пользователя Orion76 Orion76 17 декабря 2018 в 22:59

"логи сервера" в данном случае журнал сообщений интерпретатора PHP, непосредственно к Drupal и его модулям не имеют отношения.
Система перехвата ошибок, в т.ч. и критических
(когда php-скрипт почему-то не может продолжать свою работу, отсюда и WSOD (белый экран смерти))
и вывод их описания в "логи" - это специальный инструмент PHP (как и большинства "языков программирования")

И этот инструмент как раз для того чтобы дать пользователю-разработчику максимум возможной информации о причине ошибки.

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

Аватар пользователя Godwin Godwin 26 декабря 2018 в 12:36

Чтобы довести весь этот разговор к логическому завершению, скажу, что видимо потребуется переустановить сайт заново. Народ пишет #84, что патч работает, у всех. Мне надо было по умолчанию сразу ставить английский язык при инсталляции.

Кроме того, сейчас в процессе перевода книги, при загрузке картинки возникает ошибка:
"Указанный файл priorities_2a.png не может быть загружен.
Размер файла 21.07 КБ превышает максимальный размер файла 1 байт
".

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

Так что, только переустанавливать. Кстати, попались интересные ссылки на обучающий материал по Drupal 8, правда за 2015 год.

-------------------------------
Я понял, что Drupal 8 -- это голый скелет (как в шкафу), а дальше нужно искать массу модулей, чтобы хотя бы(!) опубликовать книгу. Мне же многого то и не надо было, только самое элементарное, но и тут всплыла куча проблем. Файловыи "менеждером" IMCE практически невозможно пользоваться, ни загрузить, ни ставить. В 7-ке есть нормальный elFinder.

Хорошое ещё я форум отдельный поставил, на phpBB.
-------------------------------
Может кто подскажет ссылку на новый материал по настройке двуязычного сайта на Drupal 8 после инсталляции на англ. или рус.? Буду премного благодарен.

Аватар пользователя marassa marassa 26 декабря 2018 в 12:54

Godwin wrote:

Я понял, что Drupal 8 -- это голый скелет

Гораздо менее голый, чем Drupal 7 или 6 - очень многие контрибные модули включены в ядро, включая хотя бы Views, без которых ни один сайт не обходится, та же поддержка многоязычности и мн. др.
Godwin wrote:

дальше нужно искать массу модулей, чтобы хотя бы(!) опубликовать книгу

И это очень правильно, потому что большинству (вот мне, например), совсем не надо "публиковать книгу", и совершенно необязательно раздувать ядро специфичной функциональностью, которая нужна очень немногим.
Godwin wrote:

Может кто подскажет ссылку на новый материал по настройке двуязычного сайта на Drupal 8 после инсталляции

Да как-то вот просто поставил, настроил, и всё работает Wink Читал очень много разнородных материалов в сети по мере возникновения конкретных проблем, но никакого всеобъемлющего мануала, увы, посоветовать не могу.
Вы лучше обращайтесь с конкретными вопросами по мере их возникновения, так будет проще.