Импорт переводов терминов таксономии с feeds и entity translation. Id терминов в бд или feeds_et или entity_translation_export_import

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

Аватар пользователя univerico univerico 14 апреля 2018 в 12:02

Здравствуйте!
Пытаюсь настроить импорт переводов терминов таксономии с feeds и entity translation.
Не понятно, как при импорте терминов настроить импорт перевода именно как перевода термина, а не отдельного термина на другом языке. Вероятно и с нодами возникнет такой же вопрос, как соединить ноду и ее перевод.
Есть модуль https://www.drupal.org/project/feeds_et .
и https://www.drupal.org/project/entity_translation_export_import

Может кто-то пробовал еще какие-то варианты? У этих модулей только версия dev.
Может указывать в соответсвиях один и тот же id и с помощью этого связывать перевод и оригинал. При использовании entity translation id же может быть один? Или у них разные id?

Ниже описываю, почему именно таким способом хочу делать, но возможно кто-то вообще другой способ порекомендует.
По рекомендациям (https://www.youtube.com/watch?v=LuDQi1OF45w&t=1781s) я пытаюсь делать именно перевод терминов как сущностей , а не перевод полей с терминами в ноде, но термины опять по тем же рекомендациям хочу переводить не с помощью подмодуля internalization, а с помощью entity translation. Я создаю импортер для одного языка (например русского)и указываю соответствия, потом клонирую его и меняю только язык и соответствия. При настройке импортера есть параметр id термина, я думаю, можно по нему дать понять импортеру, что нужно делать импорт именно перевода.
Т.е. если импортировать два термина на разных языках с одним Id они будут импортированы как термин и его перевод.
Но как правильно указать ID? Сейчас когда я просто придумываю ID и указываю его у меня вообще термины не импортируются.
1) Может загрузить сначала оригинал, посмотреть в БД id, внести это в свою таблицу, в которой я буду добавлять перевод, в ней добавить перевод и снова импортировать термин с тем же id и переводом.
Где и как в БД тогда смотреть ID? Ну и заодно guid?
Или как его праивльно создать самостоятельно, чтобы внести в бд свой id?

2)Если не получится как вариант рассматриваю вставлять перевод прямо в базу данных, чтобы не загружать вручную. Как тогда это правильно делать? Или не получится так?

3) или придется все же использовать internalization с опцией “переводится”, так как будут поля с автозавершением, поэтому локализация не подойдет (так как сначала при локализации термин создается на языке сайта по умолчанию, что не всегда удобно)

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

Предпочтителен первый вариант наверное все же.
Еще встречались
Title Module + Taxonomy CSV+ Entity Translation Export / Import
И
Использование как модуля интернализации так и entity Translation для того чтобы переводить термины таксономии и генерировать многоязычный алиасы URL

Из литературы вот это использую
(но может еще есть хорошие мануалы?)
https://www.bramvandenbulcke.be/en/article/drupal-entity-translation-guide
о состоянии с импортом переводов https://www.drupal.org/node/1183440#comment-10617116
https://www.youtube.com/watch?v=LuDQi1OF45w&t=1781s
модуль таблицы для перевода https://www.drupal.org/project/translation_table
песочница https://www.drupal.org/sandbox/liupascal/1382116
для преобразования перед сохранением https://www.drupal.org/project/feeds_tamper
https://drupal.ru/node/42734
Обновление существующих терминов по tid (Feeds) http://xandeadx.ru/blog/drupal/795
Импорт множества терминов https://drupal.stackexchange.com/questions/100190/how-to-import-csv-feed...
или лучше https://www.drupal.org/project/feeds_tamper
#1085190: Make taxonomy autocompletion work / tagging / block tagging ?
https://www.drupal.org/node/1114016
https://www.drupal.org/node/1114016
https://www.drupal.org/node/1114016
ttp://www.drupalcontrib.org/api/drupal/contributions%21taxonomy_csv%21taxonomy...

ВложениеРазмер
Иконка изображения 2018-04-19_11-03-04.png14.65 КБ
Иконка изображения 2018-04-19_11-05-48.png6.53 КБ

Комментарии

Аватар пользователя univerico univerico 19 апреля 2018 в 11:06

Удалось найти Id термина причем даже без бд, а с помощью графического интерфейса его можно посмотреть с помощью функционала term_merge и taxonomy_manager.
Но при импорте материалов с одинаковым ID но разными языками происходит замена языка источника, а не добавление перевода.
При попытке попробовать использовать https://www.drupal.org/project/feeds_et добавилась возможность в соответсвиях импортера поля на разных языках добавлять, но после первого импорта сначала выдалось сообщение, что было создано 2 материала, но в списке содержимого они не добавились, а потом вообще при обновлении всех страниц начала выдаваться ошибка.
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 8074 в файле .../includes/common.inc).
feeds
С чем может быть связана эта ошибка?

Аватар пользователя univerico univerico 19 апреля 2018 в 23:37

А кто-то вообще как-то делали импорт переводов при использовании для перевода entity translation?
у меня при использовании feeds_et выдается ошибка, которая на английском ошибка звучит как Missing bundle property on entity of type node

похажая тема https://drupal.ru/node/78234
и здесь решение https://www.drupal.org/project/feed_import/issues/1525988
Но я не могу понять, что они имеют ввиду
"Bundle property is node type. So please add field named type with no xpath and default value machine name of your node type (article, page, etc.)
This is not a bug - so I changed status to support request."

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

Аватар пользователя univerico univerico 20 апреля 2018 в 10:49

upd: при попытке импортировать разными импортерами разные языки с использованием одного nid
"drupal SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry for key 'PRIMARY'"
удалось найти похожую тему https://drupal.ru/node/81705, но что нужно сделать конкретно для настройки импорта, чтобы решить эту проблему не удалось пока найти, этот вопрос пока открыт