?tl 파라미터가 이상하게 동작합니다

이상한 점을 하나 발견했습니다. 아시다시피, Google을 통해 Meta를 검색할 때 더 나은 검색 결과를 얻을 수 있는 경우가 있습니다. 그래서 Google에 접속하여 쿼리를 입력하고 해당 토픽을 찾았는데, 갑자기 브라우저 탭의 토픽 제목(토픽 본문이 아닌!)과 카테고리 이름, 그리고 그 카테고리만 네덜란드어로 번역되어 있는 것을 알게 되었습니다.

이상하게도, Meta의 다른 페이지로 클릭하면 이 현상이 사라졌습니다.

혼란스러웠지만, URL에 ?tl=nl이 붙어 있었고 이것이 Google에 의해 추가된 것임을 발견했습니다.

즉, 저는 로그인된 상태였고, tl 매개변수는 원래 익명 사용자만 작동하도록 설계되었습니다. 하지만 로그인된 상태에서도 일부 요소에 영향을 미치는 것 같습니다.

이제 로그아웃 상태에서 시도해 보겠습니다. 이번에는 제대로 작동할 것 같죠?

글쎄요. 실제로는 그렇지 않습니다.

그렇다면 이 매개변수가 검색 엔진에 어떻게 도달했는지 다시 생각해 봅시다.

사실상 해당 토픽은 Google에서 두 번 표시됩니다. 하나는 ?tl=nl이 있는 경우이고, 다른 하나는 없는 경우입니다. 재미있는 점은 매개변수가 있는 경우의 제목과 스니펫이 네덜란드어가 아니라 영어라는 것입니다. 다른 하나와 마찬가지로 말이죠.

더 흥미로운 점은 소스 코드에 있는 canonical URL에는 매개변수가 없음에도 Google이 왜 매개변수가 포함된 상태로 인덱싱했는지는 저에게도 명확하지 않다는 것입니다.

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

즉, 우리는 다음과 같은 상황을 마주하고 있습니다:

  • tl 매개변수는 원래 익명 사용자만 작동하도록 설계되어 있습니다(Set locale from param 설정 설명 참조) 하지만 로그인된 사용자의 경우에도 <title>과 카테고리에 영향을 미칩니다.

  • 어떤 식으로든 Google에 포함됩니다(아마도 Google은 canonical을 무시하는 것 같아서 이를 방지하는 방법을 알지 못합니다).

  • 익명 사용자의 경우 tl 매개변수는 부분적으로만 작동하며 유지되지 않습니다. 요청 간에 전달되지 않으며 쿠키를 설정하는 것으로도 보이지 않습니다(적어도 Meta에서는요).

    • ?tl 설정
    • 모든 것이 중국어로 표시됩니다 :tada:
    • 토픽으로 이동
    • 카테고리만 중국어로 표시됩니다 :sob:
    • “뒤로” 이동
    • 환영 배너와 카테고리는 여전히 중국어이지만 토픽은 영어로 표시됩니다 :thinking:

5개의 좋아요

안녕하세요, 번역된 검색 결과를 (우연히라도) 테스트해 주시고 결과를 보고해 주셔서 감사합니다. 정말 감사드립니다.

여기서 몇 가지 항목에 대해 답변드릴 수 있지만, 몇 가지 질문에 대한 답변도 필요합니다.

  • Google에서 검색할 때 브라우저 언어 설정은 무엇인가요?
  • 어떤 검색어를 사용하셨나요?

어떤 이유에서인지 브라우저 설정이 네덜란드어인 것 같습니다(이것이 "Meer om te vragen"가 표시되는 이유를 설명합니다)만, 검색어는 영어로 되어 있습니다.


참조하신 주제(How to have multiple copies of Default theme?)가 그렇게 표시되는 이유는 불행히도 다음과 같습니다.

  • 주제 제목은 번역되어 있습니다 :check_mark:
  • 게시글 중 어떤 것도 번역되어 있지 않습니다 :cross_mark:

때문에 (현재 시점에서) 모든 게시글은 영어로 보이지만 제목은 네덜란드어로 표시됩니다.


tl 파라미터 설정은 번역 크롤러 인덱싱을 도입하기 훨씬 전에 추가되었습니다…

기술적으로 말하면, 로케일 파라미터는 익명 사용자에 대해서만 고려되어야 합니다. 사용자 프로필 언어가 무엇인지 확인해 주시겠습니까?


이 기능이 일반적으로 구축된 일반적인 사용자 흐름은 다음과 같습니다:

  • Diego의 브라우저 언어 설정은 스페인어입니다.
  • 그는 스페인어로 문제를 검색합니다.
  • meta로 이어지는 결과를 확인합니다(결말이 tl=es인 경우).
  • 그는 meta에 들어가서 결과를 스페인어로 읽습니다.
  • 그는 meta 사이트에서 서핑을 계속합니다(브라우저 언어가 스페인어로 설정되어 있기 때문에).

여기에는 여러 가지 요인이 작용하여 문제를 일으킬 수 있으며, 예를 들어 위와 같이 주제의 게시글이 아직 번역되지 않은 경우 등이 있습니다. 이는 가능성이 높으며(확실히 말할 수는 없지만) Google에서 두 개의 결과를 본 이유를 설명할 수 있습니다. 왜냐하면 우리는 영어를 네덜란드어로 제시하고 있기 때문입니다. 내부적으로 결정된 사항 중 하나는 궁극적 일관성(eventual consistency)을 믿는 것이었지만, 4월 이후로 꽤 새로운 게시글들이 아직 번역되지 않은 이유를 확인해봐야 할 것 같습니다.

2개의 좋아요

요약하자면, 저는 디스커스(Discourse)와 관련된 모든 작업에서 영어만 사용하고 있습니다.

브라우저의 모든 설정이 영어(미국)로 되어 있습니다.
메타(Meta)의 사용자 프로필 언어도 영어로 설정되어 있습니다.

제 브라우저는 Accept-Language: en-Us,en;q=0.5만 전송하고 다른 것은 전송하지 않습니다.

이 주제에서 제공한 구글 검색 결과 스크린샷에 사용한 검색어는 “How to have multiple copies of default theme”(기본 테마의 여러 사본을 갖는 방법)이었으며, 스크린샷을 만들기 위해 해당 주제를 명시적으로 목표로 삼았기 때문입니다. 원래 검색어는 “discourse duplicate theme”(디스커스 테마 복제)이었고, 이는 첫 번째 스크린샷으로 이어진 검색 결과였습니다(거기서 오른쪽 위를 보면 검색어가 여전히 보일 것입니다).

구글 검색 결과 페이지의 스크린샷에서 볼 수 있듯이, 구글은 영어와 네덜란드어가 섞인 결과를 또한 제공하고 있습니다. 이는 제가 물리적으로 네덜란드에 위치해 있기 때문일 가능성이 높습니다. 독일로 여행 가면 영어와 독일어가 섞인 결과를 제공합니다. 제 추측에 따르면, ?tl=nl 검색 결과는 제 위치(이건 어리석은 일이지만 그렇습니다) 때문에 구글에 의해 슬쩍 끼워 넣어졌을 수 있습니다. 그럼에도 불구하고, 로그인된 상태에서는 메타에서 어떤 네덜란드어 내용도 기대하지 않습니다.

네, 여기 제시하신 사례는 우리가 지금까지 인지하고 있는 것과 다른 것 같습니다. 어딘가에 네덜란드어를 설정하지 않았다면 구글이 네덜란드어를 삽입할 것이라고 확실히 기대하지 않습니다.

@RGJ 여기에도 보고가 있었습니다 - "Set locale from param" and content localisation issue - 그리고 언어 파라미터의 구현이 개선되었습니다.

로그인한 사용자의 사용자 프로필에서 정의된 설정이 파라미터에 의해 변경되는 것을 원하지 않으므로, 사이트 설정이 설명대로匿名用户에게만 적용되어야 한다는 것을 확인해야 합니다.

2개의 좋아요

이 주제는 3일 후 자동으로 닫혔습니다. 더 이상 답변이 허용되지 않습니다.