Поиск локализованного заголовка/контента в поиске Discourse

У меня возник вопрос о локализованном контенте: есть ли возможность или план включить локализованные заголовки и содержание тем в поиск Discourse на основе языка пользователя?

1 лайк

Вы имеете в виду здесь?

Технически это выполнимо, да.

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

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

3 лайка

Да, речь именно об этом поиске, о котором я спрашивал.

В основном это связано с тем, что ранее наш форум использовал плагин «Многоязычность» (Multi-lingual), который на момент написания этого сообщения больше не поддерживается. Этот плагин позволял фильтровать темы по языкам и осуществлять поиск по обоим языкам, поскольку наши темы дублировались на двух языках (французском и немецком), обеспечивая одинаковый опыт для пользователей обоих языков. Таким образом, прямой поиск по переведённому контенту был бы для нас полезен, чтобы воссоздать этот опыт.

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

Возможность локализации конкретных тем на нескольких языках уже является большим плюсом и желанным дополнением!

В качестве дополнительного вопроса: планируете ли вы добавить возможность поиска или фильтрации тем по языку темы?

1 лайк

Когда вы говорите «фильтр», имеете ли вы в виду использование https://meta.discourse.org/filter? А под «языком темы» вы имеете в виду исходный язык, на котором тема была написана автором?

1 лайк

Когда вы говорите «фильтр», имеете ли вы в виду использование https://meta.discourse.org/filter? А под «языком темы» вы имеете в виду исходный язык, на котором автор написал текст?

Я имел в виду скорее возможность фильтровать темы, которые отображаются при просмотре форума.
Например, на нашем форуме ( https://forum.commown.coop ) с активированным плагином Multilingual, после входа в систему вы можете установить «Языки контента» в разделе Профиль → Параметры интерфейса, выбрав те языки, которые хотите видеть.

Я не знал о странице /filter. Если бы можно было фильтровать темы на основе поля locale темы, это могло бы стать хорошей альтернативой :slight_smile:

Под «языком темы» я имел в виду поле locale в сообщениях:

Редактирование:

  • Я уточнил, что фильтр тем — это функция плагина Multilingual.
  • Для уточнения: плагин Multilingual использует теги, рассматривая языковые теги (fr, de, en) как отдельное поле, а затем, вероятно, фильтрует темы по заданному тегу (я не изучал код фильтрации подробно).
1 лайк

Мне кажется, что при переходе от Multilingual к новой функции Content Localization в ядре Discourse (+ AI) необходимо фундаментальное изменение в мышлении.

В эпоху Multilingual были темы, которые некоторые пользователи не могли прочитать, так как они были написаны только на одном языке. Однако с новой функцией Content Localization пользователи могут читать любые темы, для которых сайт настроен на перевод. Одна тема теперь доступна на X языках.

На примере OP

Доступно на …




… и на других

Вы всё ещё считаете, что фильтр необходим?

2 лайка

Для наших целей мы поддерживаем и переводим базу данных статей о нескольких технических процедурах на двух разных языках, поскольку наш сервис обслуживает два языка.
В настоящее время наши немецкоязычные пользователи могут напрямую искать немецкие статьи, а наши франкоязычные пользователи — французские.
Если бы они хотели отображать только статьи на определённых языках, они могли бы создать учётную запись и настроить параметр «Языки контента».

Однако, если бы мы объединили текущие немецкие статьи с французскими, немецкоязычные пользователи не смогли бы найти необходимую информацию, поскольку, хотя отдельный пост может быть переведён на любой язык, вы не сможете найти эту тему, если не знаете её оригинальное название. Это привело бы к ухудшению опыта по сравнению с тем, что наш форум предлагает сейчас.

Например, я не могу найти эту тему, используя локализованное французское название. Таким образом, если бы я говорил только по-французски, я не смог бы её найти.

Как объяснил Фалько в первом ответе, эта функция не планируется в краткосрочной перспективе, и я понимаю, почему.
Тем не менее, возможность фильтрации/скрытия тем на основе локализации поста позволила бы обеспечить хороший опыт поиска и просмотра для многоязычных форумов.

Тем не менее, спасибо за добавление функции локализации постов — как ручной, так и автоматической — и за вашу непрерывную работу над программным обеспечением Discourse :pink_heart:

2 лайка

Теперь я понимаю, похоже, что это (поиск) действительно является пробелом в нашем опыте локализации контента.

Я проверю, можно ли быстро добавить /filter по исходной локализации темы. О, да, можно:

РЕДАКТИРОВАНИЕ: Это фильтр тем, поэтому он специфичен для темы, а не для сообщений внутри неё.

3 лайка

О, это было бы желанной функцией! Признаю, я не проверял, есть ли уже какие-либо PR по фильтрации локалей в репозитории Discourse.

Спасибо за оперативные ответы и за работу разработчика!

1 лайк

Мы сейчас работаем над этим аспектом, используя ИИ и векторные представления для обеспечения многоязычного поиска. Думаю, здесь есть несколько логичных следующих шагов:

  • Отображение локализованных тем/сообщений в результатах поиска
  • Автоматическое показ результатов поиска ИИ, когда обычный поиск по всей странице не находит ничего
  • Автоматическое добавление результатов поиска ИИ, когда быстрый поиск даёт мало результатов
2 лайка

У меня есть дополнительный вопрос о функции фильтра по локалям — можно ли добавить эту опцию фильтрации в поиск Discourse /search, чтобы можно было напрямую искать сообщения/темы по локали?

Конечно, посмотрим, что я могу сделать :slight_smile: Оставайтесь на связи.

1 лайк

Привет! Всё готово и теперь отображается на meta.

Локализованный заголовок и краткое описание

Фильтр поиска по локале

Обратите внимание:

  • Ваш поисковый запрос всё ещё должен совпадать с оригинальным содержимым поста, однако результат будет локализован под ваш язык.
  • Поисковые запросы включают:
    • locale:en — посты с локалью «en», «en_US», «en-gb» (варианты, регистронезависимость, дефис)
    • locale:none или locale:null — посты без указанной локали
    • locale:any или locale:present — посты, у которых локаль установлена