Первод терминов таксономии. Посоветуйте как лучше реализовать.

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

Аватар пользователя VasyOK VasyOK 4 июня 2018 в 16:40

Вопрос к знатокам мультиязычности. Установлен i18n
Возможно ли переводить термины таксономии?

Если в настройках словаря выбрать
"Локализуется. Общие термины для всех языков, но их имена и описания могут быть локализованы." - можно перевести только название и описание термина. Но у термина есть еще поля.

Если вывбрать
"Переводится. Различные термины будут доступны для каждого языка, и они могут быть переведены." - переводятся все поля. Но, например, поля изображений переводить не нужно. Логотип бренда для всех языков одинаковый.

Как быть?

Комментарии

Аватар пользователя Kaylang Kaylang 4 июня 2018 в 22:16

admin/config/regional/content-language
Посмотрите в настройках. Если не ошибаюсь, там можно указать поля для которых предусмотрен перевод и для которых не предусмотрен.
Тогда сможете использовать второй вариант

Аватар пользователя univerico univerico 4 июня 2018 в 23:22

Здравствуйте! Я не знаток, но много времени пришлось провести над этой темой, перевод терминов как полей делается с помощью Entity translation (на 7 его надо ставить, на 8 вроде из кробоки используется), благодаря этому модулю на /admin/structure/taxonomy/имя_словаря (т.е. при редактировании или создании словаря) появляется пятый пункт Field translation.
Также могу привести некоторые соображения:
1)Да, термины таксономии переводить можно.
2)Одно из основных отличий между локализацией и переводом таксономии описано на русском здесь (это перевод одной из статей drupal.org на русский с комментариями)
3)О каких полях териминов, кроме названия и описания Вы говорите, которые Вы еще хотите перевести я не совсем пойму?
4)Стандартно при использовании i18n у Вас будет 4 варианта
"термины не переводятся. Переводится только словарь.
Локализуется.
Переводится.
Фиксированный язык:"
Благодаря Entity translation появляется пятый.
Чтобы это было возможно нужно также включить термины таксономии в список на странице
/admin/config/regional/entity_translation
в разделе Translatable entity types

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

Про особенность пунтка с вараинтом "локализация" цитата с вышеуказанного сайта:

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

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

Аватар пользователя VasyOK VasyOK 4 июня 2018 в 23:33

Kaylang wrote:

admin/config/regional/content-language

Может где-то в другом месте? Скриншот дайте, я там таких настроек не вижу.

univerico wrote:

О каких полях териминов, кроме названия и описания Вы говорите

о полях, которые я добавил для термина, в настройках словаря
univerico wrote:

Благодаря Entity translation появляется пятый.

Да, появлется. Но паля у термина все равно не переводятся.

Аватар пользователя alexo alexo 5 июня 2018 в 0:27

VasyOK wrote:

Да, появлется. Но паля у термина все равно не переводятся.


1)Я добавляю свое поле в настройках словаря
2)Потом в настройках этого поля выбираю в самом низу
"Users may translate all occurrences of this field:"
3)В настроках словаря у меня выбран вариант Field translation.
4)Захожу в список терминов и выбираю нужный термин
5)С вкладки редактирования теримина перехожу на вкладку перевода термина / translate
Выбираю нужный язык "add"
У меня отркывается окно для добавления перевода термина в том числе поля для которого ранее было выбрано "Users may translate all occurrences of this field:"

Аватар пользователя VasyOK VasyOK 5 июня 2018 в 2:06

Если в настройках словаря выбираю Field translation - вкладка перевода терминов у меня пропадает
В настройках поля можно выбрать Enable translation
"Users may translate all occurrences of this field" - такого у меня нету.

Аватар пользователя univerico univerico 5 июня 2018 в 7:42

VasyOK wrote:
вкладка перевода терминов у меня пропадает


Также еще для названия и описания нужно заменить эти поля термина таксономии на обычное поле: кнопка replace на странице редактировнаия полей словаря (видео).
Но если Вы создаете свое поле, то его в ряде случаев не нужно замещать, оно часто сразу создается как поле.
Точно уже не помню, возможно, если у Вас в поле - файл, то, чтобы работать с файлами как с полями, нужно еще поставить какой-то модуль типа file entity (но это больше еще для работы с заголовком и альтом файла как с полями )

Аватар пользователя alexo alexo 5 июня 2018 в 7:25

Эту настройку вы делали?

univerico wrote:

Благодаря Entity translation появляется пятый.

Чтобы это было возможно нужно также включить термины таксономии в список на странице

/admin/config/regional/entity_translation

в разделе Translatable entity types

Аватар пользователя Kaylang Kaylang 5 июня 2018 в 11:13

VasyOK wrote:

Kaylang написал:

admin/config/regional/content-language

Может где-то в другом месте? Скриншот дайте, я там таких настроек не вижу.

Извиняюсь, был невнимателен. Не обратил внимания, что вопрос про 7.
Но для 8 это действительно.
Добавил поле "test" в словарь таксономии "О нас"
1

2

скрин со страницы admin/config/regional/content-language (если не отметить чекбокс, то поле значение поля будет одинаковым для всех языков)
3

4

ЗЫ.
Вот так выглядит при неактивном чекбоксе
5

Аватар пользователя VasyOK VasyOK 6 июня 2018 в 19:09

Спасибо, за ответы!
Ситуация немного прояснилось благодаря видео univerico.
Сейчас разбираюсь со способом от модуля entity_translation пока что вырисовались 2 вопроса:
1) при редактировании уже существующих терминов пропадают заданные пути (урлы). Да, их можно заново вбить по CTRL+V, но технически неграмотный контенщик не всегда об этом вспомнит.
2) смотрю на список терминов словаря и не вижу какие термины переведены, какие нет. Тоже неудобно.

Аватар пользователя gun_dose gun_dose 7 июня 2018 в 6:48

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

Аватар пользователя VasyOK VasyOK 6 июня 2018 в 23:28

3) самое неудобное. Если при переводе есть поле "ссылка на термина" термины в этом поле идут языком оригинала (даже если переведены). Хотя при просмотре ноды ссылка идет куда нужно.

Аватар пользователя univerico univerico 6 июня 2018 в 23:34

VasyOK wrote:

2) смотрю на список терминов словаря и не вижу какие термины переведены, какие нет. Тоже неудобно.


Можно попробовать настройки tmgmt или модуля типа translation table (точно не помню название)
Также есть taxonomy manager (там вроде нет таблицы переводов в таком виде, как Вам нужно, но много удобных функций для таксономии)

Аватар пользователя univerico univerico 6 июня 2018 в 23:36

VasyOK wrote:

1) при редактировании уже существующих терминов пропадают заданные пути (урлы). Да, их можно заново вбить по

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

Аватар пользователя univerico univerico 6 июня 2018 в 23:45

VasyOK wrote:

3) самое неудобное. Если при переводе есть поле "ссылка на термина" термины в этом поле идут языком оригинала (даже если переведены). Хотя при просмотре ноды ссылка идет куда нужно.


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

Аватар пользователя univerico univerico 10 июня 2018 в 23:17

У меня кстати была похожая проблема с картой и переводами, при включении модуля xmlsitemap_i18n

выскакивала ошибка или предупреждение, приходистя его не включать совсем пока
А для entity translations там же кроме пэтчей в шапке еще очень много в обсуждении, можно их пробовать, 11 и 21 у многих работает хорошо.

Аватар пользователя VasyOK VasyOK 10 июня 2018 в 21:07

Не помогли патчи.
Поможет модуль https://www.drupal.org/project/node_translation_sitemap
как пишут его разработка прекращена, т.к.
"this functionality would be merged into the XML Sitemap module"
но пока это would be не произошло можно пользоваться им.

Аватар пользователя VasyOK VasyOK 11 июня 2018 в 5:37

Еще вопрос вырисовался. А как значения в views фильтрах поменять?

Например слева http://legalcompany.com.ua/aktyalnie-predlojeniya-po-prodaje-predpriyatii
"Район Киева" - можно указать значение на нужном языке
"Голосеевский" - нет Sad