Параметр ?tl ведёт себя странно

Итак, я заметил кое-что странное. Как вы, возможно, знаете, иногда поиск в Google по запросу «Meta» даёт лучшие результаты. Поэтому я зашёл в Google, ввёл свой запрос, нашёл нужную тему и вдруг заметил, что заголовок темы во вкладке браузера (не в самой теме!) и название категории, и только этой категории, были переведены на нидерландский.

Странно, но это исчезло, когда я перешёл на другую страницу на Meta.

После некоторой путаницы я выяснил, что это произошло из-за того, что к URL темы был добавлен параметр ?tl=nl, который, судя по всему, добавил Google.

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

Теперь попробуем это сделать, не будучи авторизованным, и посмотрим, что получится. Должно сработать, верно?

Ну… не совсем.

Вернёмся к тому, как этот параметр оказался в поисковой системе.

На самом деле тема отображается в Google дважды: один раз с параметром ?tl=nl и один раз без него. Забавный момент: заголовок и сниппет версии с параметром не на нидерландском, а на английском, как и у другой версии.

Чтобы усложнить задачу, канонический URL в исходном коде не содержит этого параметра, поэтому мне непонятно, почему Google проиндексировал его с параметром.

<link rel="canonical" href="https://meta.discourse.org/t/how-to-have-multiple-copies-of-default-theme/359789">

Итак, у нас есть:

  • параметр tl должен работать только для анонимных пользователей (согласно описанию настройки «Установить локаль из параметра»), но для авторизованных пользователей он влияет на тег <title> и категорию.

  • он каким-то образом попадает в Google (хотя я не знаю, как это предотвратить, поскольку Google, похоже, игнорирует canonical?)

  • для анонимных пользователей параметр tl работает лишь частично и не сохраняется. Он не передаётся между запросами и, похоже, не устанавливает cookie (по крайней мере, на Meta)

    • установите ?tl
    • всё на китайском :tada:
    • перейдите к теме
    • увидите, что только категории на китайском :sob:
    • вернитесь «назад»
    • увидите, что приветственный баннер и категории всё ещё на китайском, но темы на английском :thinking:

5 лайков

Привет, спасибо, что помогли нам протестировать переведённые результаты поиска (пусть и случайно) и сообщили о своих находках. Это очень ценно.

Я могу ответить на несколько пунктов, но мне также нужно, чтобы вы ответили на некоторые вопросы:

  • На какой язык настроен ваш браузер при поиске в Google?
  • Какой поисковый запрос вы использовали?

Похоже, что настройки вашего браузера установлены на нидерландский (что объясняет фразу “Meer om te vragen”), но ваш поисковый запрос на английском.


Тема, на которую вы сослались (How to have multiple copies of Default theme?), к сожалению, отображается именно так, потому что:

  • заголовок темы переведён :check_mark:
  • ни одно из сообщений не переведено :cross_mark:

Вот почему мы видим все сообщения на английском (на данный момент), а заголовок — на нидерландском.


Параметр tl был добавлен задолго до того, как мы внедрили индексацию для переводов поисковыми роботами…

Технически говоря, параметр локали должен учитываться только для анонимных пользователей. Можете ли вы подтвердить, какой язык установлен в вашем профиле пользователя?


Типичный сценарий использования, для которого это было разработано, выглядит так:

  • У Диего настройки языка браузера установлены на испанский.
  • Он ищет проблему на испанском.
  • Он видит результат, ведущий на meta (в конце которого указано tl=es).
  • Он заходит на meta и читает результат на испанском.
  • Он продолжает серфинг по сайту на meta (потому что язык его браузера установлен на испанский).

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

2 лайка

TL;DR: Я использую исключительно английский язык для всего, что связано с Discourse.

Всё в моём браузере установлено на английский (США).
Язык моего пользовательского профиля на Meta также английский.

Мой браузер отправляет заголовок Accept-Language: en-Us,en;q=0.5 и больше ничего.

Поисковый запрос, который я использовал для скриншота Google, приведённого в этой теме, был «Как иметь несколько копий темы по умолчанию», поскольку я намеренно искал именно эту тему, чтобы сделать скриншот. Мой первоначальный запрос был «discourse duplicate theme», и именно этот результат поиска привёл меня к первому скриншоту (вы всё ещё можете увидеть этот поисковый запрос в правом верхнем углу).

Как видно на скриншоте страницы результатов поиска Google, Google также предлагает мне смесь английского и голландского языков. Вероятно, это происходит потому, что я физически нахожусь в Нидерландах. Когда я путешествую в Германию, он показывает мне смесь английского и немецкого. Моя теория заключается в том, что результат поиска с параметром ?tl=nl мог быть добавлен Google из-за моего местоположения (что глупо, но да). Тем не менее, я не ожидаю увидеть ни единого слова на голландском языке на Meta, когда я авторизован.

Да, я думаю, что вы представили случай, который нам ранее не встречался. Я точно не ожидаю, что Google добавит голландский язык, если вы нигде его не настроили.

@RGJ здесь тоже был отчет — "Set locale from param" and content localisation issue — и реализация параметра языка была доработана.

Мы должны убедиться, что настройка сайта остается в точном соответствии с её описанием: она применяется только к анонимным пользователям, так как мы не хотим, чтобы параметр обновлял предпочтения авторизованного пользователя, заданные в его профиле.

2 лайка

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