AI 생성 태그 번역이 완벽하지 않아요

독일어 태그 번역을 살펴보다가, AI가 컨텍스트를 충분히 이해하지 못해 발생한 것으로 보이는 다양한 문제를 발견했습니다. AI는 태그를 특정 Discourse 기능, 플러그인, 또는 컴포넌트에 대한 참조가 아닌, 고립된 단어처럼 취급하고 있습니다.

참고: 독일어 명사는 항상 대문자로 시작하지만, 메타 사이트의 태그는 소문자입니다. 따라서 이 게시물 내의 번역은 대소문자 표기가 일관되지 않습니다. 습관적으로 올바른 독일어 대문자 표기를 사용하게 되었습니다.

먼저 재미있는 부분부터

실용적인 문제들을 다루기 전에, 몇 가지 번역은 단순히 재미있습니다:

  • composer → “Komponist” - 이는 음악을 작곡하는 사람을 의미합니다.
  • auto-bump → “automatische-erhöhung” - “자동 증가”
  • fully-theme → “vollständig-thematisiert” - “완전히 다뤄진”
  • raspberry-pi → “Himbeere-pi” (과일인 “라즈베리”)
  • post-voting → “nach-der-Abstimmung” - “투표 후” (“post”가 포럼 게시물이 아니라 라틴어 접두사로 해석됨)
  • tablet → “Tablette” - “알약” (기기而非 약물)

서로 다른 태그에 동일한 번역이 적용된 경우

실제로 가장 큰 영향을 미치는 문제입니다. 두 개의 태그가 동일한 번역을 받으면, 주제들을 구별하는 능력이 사라집니다.

  • year-in-review & yearly-review → “Jahresrückblick” - 현재 플러그인 이름은 번역되지 않는 것으로 보입니다(관리자 사이드바와 설치된 플러그인 목록에서 영어 이름을 볼 수 있음), 따라서 플러그인 이름을 지칭할 때 영어 용어를 사용할 가능성이 높습니다. 하지만 언젠가 모든 플러그인이 번역된 이름을 가지기를 희망하므로, 이곳의 연례 리뷰 주제들을 그룹화하는 태그에 "Metas"를 추가하여 구분하는 것이 좋다고 생각합니다. 즉, “Metas-Jahresrückblick”(메타의 연례 리뷰)가 됩니다.
  • surveys & polls → “Umfragen” - 두 플러그인의 번역도 동일한 것 같으며, 지금까지 아무도 알아차리지 못한 것 같습니다. "voting"과도 쉽게 충돌할 수 있으므로 이 문제에 대한 좋은 해결책을 더 생각해 봐야 합니다 :exploding_head:
  • docs & documentation → “Dokumentation” - yearly-review docs와 마찬가지로 docs가 독일어로 번역되지 않았으므로 태그를 번역하지 않는 것이 좋습니다(이 경우 향후 번역 가능성은 매우 낮아 보입니다)
  • how-to & tutorial → “Anleitung” - 이 문제는 이미 수정되었습니다. https://diataxis.fr/ 번역을 찾아 해당 곳에서 사용된 용어[1]를 제안했습니다)

번역되어서는 안 되는 고유명사 및 제품명

일부 태그는 특정 도구, 프레임워크, 또는 제품을 가리킵니다. 이를 번역하면 해당 기능을 인식할 수 없게 됩니다.

  • raspberry-pi → “Himbeere-pi” (과일인 “라즈베리”)
  • mermaid → “Meerjungfrau” (신화 속 생물인 “인어”, 다이어그램 도구가 아님)
  • ember → “Glut” (불에서 나오는 달궈진 숯)
  • vanilla → “Vanille” (맛)
  • onebox → “einzige-box” - “단 하나의 상자”
  • intercom → “Gegensprechanlage” (도어 버저 같은 인터콤 - 다만 #intercom-widget은 올바르게 번역되었습니다)
  • passkey → “Passwort” - “비밀번호” (패스키는 특정하게 비밀번호가 아닙니다)
  • perspective-api → “Perspektiven-api”
  • backups → “Sicherungen”
  • design-experiment → “Experimententwurf” - “디자인 실험”일 수도 있고 “초안 실험”일 수도 있습니다. 전자는 “design”을 유지했을 것이고, Discourse에서 초안에 대한 언급은 꽤 흔하므로 후자를 생각하게 됩니다.

"Discourse"의 번역

"Discourse"를 참조하는 대부분의 태그는 소프트웨어의 이름을 더 이상 포함하지 않도록 번역되었습니다. 하나의 예외는 discourse-hub 입니다.

"Theme"가 일관되게 “Thema”(주제)로 오역됨

이것은 모든 테마 관련 태그에 걸쳐 발생하는 체계적인 문제입니다. 독일어에서 "theme"와 “topic” 모두 Thema로 번역되지만, Discourse 컨텍스트에서는 이 둘은 매우 다른 것입니다. 이로 인해 테마 태그들이 특정 토론 주제에 관한 것처럼 읽힙니다.

이것은 공식 테마 그룹의 모든 태그에 영향을 미칩니다.

컨텍스트가 부족했던 번역

  • composer → “Komponist” - 이는 음악을 작곡하는 사람을 의미하며, 독일어에서 일반적으로 "Editor"라고 부르는 입력 필드와 대비됩니다.
  • tablet → “Tablette” - “알약” 또는 “태블릿”.
  • copy-post → "kopierbeitrag” - “복사 수수료” (문제의 핵심은 단어의 조합입니다. "Beitrag"가 게시물(post)을 의미하는 것은 정확하지만, copy가 동사로 번역되지 않았기 때문에 Beitrag가 여기서 수수료(fee)의 의미로 사용되고 있는 것처럼 읽힙니다)

명사 또는 동사

일부 기능이 명사가 아닌 동사로 번역되었습니다.

  • chat → “plaudern” - “수다를 떨다”
  • search → “suchen” - “찾다”

“post”가 포럼 게시물이 아니라 라틴어 접두사로 해석됨

  • post-voting → “nach-der-Abstimmung” - “투표 후”
  • post-badges → “nach-Abzeichen” - “배지 후”

명확하지 않은 영어 태그로 인한 결과

  • hosted-support → “gehosteter-support” (호스팅된 고객이 아니라 호스팅된 지원처럼 읽힘)

약어

  • pm-dropdown (독일어와 동일) 컨텍스트 없이 m(message)이 n(Nachricht)으로 대체되지 않음

Discourse 자체의 인터페이스 용어와 일치하지 않는 번역

이러한 번역은 기술적으로 정확한 독일어이지만, Discourse 자체의 UI는 다른 용어를 사용합니다. 이로 인해 태그를 직관적으로 찾기 어려워지며, 특히 인터페이스 언어로 탐색하는 사용자에게 더 그렇습니다.

  • impersonate → “nachahmen” - “모방하다” (하지만 인터페이스는 Nutzersicht 또는 Nutzerrolle를 사용)
  • staged-users → “Staging-Benutzer” (하지만 인터페이스는 vorbereitete Benutzer라고 표시)
  • advertising → “Werbung” (하지만 인터페이스는 Anzeigen을 참조)
  • assign → “zuweisen” (하지만 플러그인 번역은 zuordnen을 사용)
  • hot-topics → “Top-Themen” (이것은 "top topics"으로 번역되었는데, 실제로는 Discourse에서 다른 목록입니다)
  • read-only → “nur lesbar”
  • bootstrap-mode → “Bootstrap-Modus” (하지만 번역가들은 원래 Starthilfemodus를 선택했음)
  • post-notices → “Nachrichten” - “메시지/뉴스” (메시지는 다른 기능이기 때문에 오해의 소지가 있으며, "공식 공지"는 인터페이스에서 Mitteilung을 사용)
  • about-page → “über-Seite” (이것은 문자 그대로의 번역입니다. 하지만 일반적으로 독일어 번역은 “회사 소개 페이지”와 같은 표현입니다. Über는 about만이 아니라 above의 의미도 가짐)
  • auto-bump → “automatische-erhöhung” - “자동 증가”
  • tags → “Etiketten” (하지만 #tag-groups와 tag를 포함하는 대부분의 태그는 “tag”를 사용하며, Crowdin에서 사용되는 용어는 Schlagwort입니다)

잘린 번역

이것은 다른 종류의 문제입니다. 번역 오류가 아니라, 독일어 복합 명사가 영어 대응어보다 훨씬 길기 때문에 태그 문자 수 제한과 결합되어 발생한 결과입니다.

  • content-security-policy → “inhalts-sicherheitsrichtl” (잘림, inhalts-sicherheitsrichtlinie이어야 함)
  • ai-custom-prompt → “ai-benutzerdefinierte-auf” (단어 중간에서 잘림, ai-benutzerdefinierte-aufforderung이어야 함)
  • custom-category-boxes → “benutzerdefinierte-katego” (단어 중간에서 잘림, benutzerdefinierte-kategorie-boxen이어야 함, 이 경우 box가 번역에서 완전히 누락됨)

"custom"을 포함하는 태그는 "benutzerdefiniert"가 꽤 긴 단어이기 때문에 쉽게 너무 길어집니다.

더 많은 예시

이 예시들은 번역 과정에 더 많은 컨텍스트가 필요함을 시사합니다 - 이상적으로는 태그가 어떤 플러그인이나 기능에 속하는지 알고, 기존 Discourse 인터페이스 번역을 참고할 수 있어야 합니다. 다른 언어에서도 유사한 패턴을 발견하신 분들의 의견을 듣고 싶습니다.


@nat (개인 요청에 따라)


  1. Lernunterlagen ↩︎

8개의 좋아요

@Moin, 감사합니다. 이 부분을 확인해서 프롬프트를 개선하겠습니다 :smiling_face:

또한 정말 웃기네요

웃겨주셔서 감사합니다 :hugs:

5개의 좋아요

@nat 에이전트에게 읽기(read) 도구에 대한 접근 권한을 주어서, 스스로 컨텍스트를 수집하게 하면 어떨까?

포스팅에는 비용이 너무 많이 들겠지만, 태그나 카테고리 같은 일회성 작업에서는 오히려 저렴할 뿐만 아니라, 모든 모델에서 품질을 높여줄 수 있을 거야.

4개의 좋아요

음, 좋은 아이디어네요 @falco.

제가 이전에 고려했던 또 다른 방법은 태그 이름을 번역할 때 태그 설명을 추가 컨텍스트로 전달하는 것이었습니다. 이 방식이 더 예측 가능할 것 같은데, 어떻게 생각하시나요?

4개의 좋아요

Crowdin에서 용어집(glossary)에 접근할 수 있다면 번역을 담당하는 봇에게 매우 유용할 것입니다(모든 사이트에 해당되지는 않지만, 특히 Meta에 유용합니다). 용어집에 "composer"를 "Editor"로 번역한다는 내용이 명시되어 있고, AI가 이를 인식한다면 태그뿐만 아니라 주제 제목과 게시물에도 이를 활용할 수 있을 것입니다.

저는 한때 Introducing our new composer, making writing on Discourse easier than ever "composer"를 수정한 적이 있었는데, 이 때문에 여기에서 번역 편집에 대한 피드백을 남겼습니다: Feedback on the composer when translating a post to German. 하지만 제가 수정한 후 해당 주제가 다시 편집되었고, 이전 번역이 컨텍스트로 사용되는 것 같지 않아서 게시글에는 다시 "composer"라고 나와 있습니다. (음악 작곡가는 보통 게시물에 등장하지 않으며, 주제 제목이나 태그와 같은 짧은 텍스트에만 해당됩니다.)

Meta에서는 설명이 컨텍스트를 크게 제공하지 않는 경우가 많습니다. 예를 들어 테마 컴포넌트에 대한 설명은 모두 해당 컴포넌트의 주제 링크만 포함되어 있고, 주제 시작 부분의 짧은 설명은 포함되어 있지 않습니다.

좋은 아이디어네요! 두 가지 모두 해보겠습니다!

이 기능의 아이디어는 Meta를 테스트베드이자 프록시로 사용하여 고객이 실제 환경에서 경험할 수 있는 상황을 미리 파악하고, 모든 사용자를 위해 기능을 개선하는 것입니다.

Meta에서 완벽한 번역을 얻는 것은 가장 비싼 LLM을 사용하고 소스 코드 접근 및 웹 검색과 같은 도구에 접근 권한을 부여함으로써 매우 쉬울 것입니다.

1개의 좋아요

어떤 모델도 디스코urs(Discourse) 인터페이스에 대해 독일어 번역가들이 선택한 것과 동일한 번역을 메타에 적용할 것이라고 생각하지 않습니다. "Mitarbeiter"는 "staff"에 대한 완벽한 번역입니다. 일부 번역가들이 수년 전, "staff"가 유급 직원을 의미하므로 소규모 취미 포럼에는 맞지 않는다고 판단하여 "Team"을 선택한 사실은 AI가 추측할 수 있는 것이 아닙니다. 단순히 올바른 번역이 아니기 때문입니다. 바로 이 지점에서 Crowdin 용어집(glossary)이 도움이 될 것입니다. 용어집이 없다면, AI가 생성한 용어는 관리자 인터페이스에서 실제로 보는 것과 일치하지 않을 것입니다. AI가 번역을 할 수 없기 때문이 아니라, 인간 번역가들이 내린 로컬라이제이션(localization) 결정을 내리지 않기 때문입니다. 이것은 번역(translation)과 로컬라이제이션의 차이입니다.

"bootstrap mode"나 "impersonation"과 같은 다른 용어들도 마찬가지입니다.

이것은 태그에만 영향을 미치는 것이 아니라, 여기에서 로컬라이제이션된 모든 것에 해당합니다. 가이드든 태그든, 사용자가 인터페이스에서 실제로 보는 용어와 일치하는 것이 소프트웨어가 말하는 내용과 일치하지 않는 언어적으로 완벽한 번역보다 더 유용합니다.

그렇지 않을 겁니다. 참고용으로 config/locales/**/*.yml 파일에 접근할 수 있기 때문에, 정확히 동일한 선택지를 활용할 수 있습니다.

전적으로 동의합니다. 카테고리나 태그와 같이 작고 열거 가능한 그룹의 경우, 소스 코드의 일부인 기존 번역에 에이전트가 접근할 수 있도록 하면 이를 기반으로 하는 데 도움이 될 것입니다.

게시물의 경우 비용이 너무 크므로 그렇게 할 수 없지만, 더 작은 사이트나 번역 예산이 넉넉한 고객에게는 선택지가 될 수 있습니다.

그렇다면 #documentation과 News and Events > Announcements 채널의 AI 번역을 비활성화하는 것이 좋을지도 모르겠네요 :wink: 제안된 수정 사항이 주제를 업데이트하지 않으므로, 게시물이 업데이트되었음을 쉽게 알아차릴 수 있는 방법이 없기 때문에 이러한 번역이 유용할 것이라고 확신할 수 없다고 생각합니다.

일반적으로, 모든 텍스트를 추가하지 않으면서도 가장 관련성 높은 선택지를 한 번만 포함할 것으로 예상되기 때문에, 모든 번역이 포함된 파일 대신 용어집(glossary)을 사용하도록 제안한 것이 비용 문제 때문입니다.

그렇게 작동하지 않습니다. 에이전트는 매칭되는 청크를 찾기 위해 코드에서 검색할 수 있으며, 전체를 컨텍스트에 로드하지 않습니다.

아기까지 욕조에 있는 물과 함께 버리는 것과 비슷하지 않나요?

방금 https://meta.discourse.org/t/calendar-subscription-urls-for-external-calendar-apps/398902의 PT-BR(브라질 포르투갈어) 버전을 확인해 봤는데, 번역이 훌륭해 보입니다. 아무것도 없는 것보다 훨씬 낫습니다.

비감독형 기계 번역 워크플로우에는 항상 개선할 부분이 있을 것이며, @nat는 여러분의 피드백 덕분에 오늘 이미 이를 더 개선했습니다!

완벽할 것이라고 기대하는 사람은 없으며, Meta는 디스코urses에서 사용자와 고객에게 가능한 것을 보여주기 위해 기능을 조기 채택하고 데모를 보여주는 장소입니다.

팀 여러분,

Discourse에서 AI 번역에 의해 생성된 특정 태그를 비활성화하는 방법은 무엇인가요?

이 AI 번역 태그의 품질이 일관성이 없어서, 독립적으로 꺼두기를 원합니다.

감사합니다.

현재 AI 번역은 모델 유형에 따라 범위가 지정되지 않으므로, 이 기능을 활성화하면 토픽, 게시물, 카테고리, 태그 모두에 적용됩니다.

제안은 태그 설정 내에서 태그 번역을 직접 편집하는 것입니다. 한 번만 수행하면 다시 할 필요가 없습니다.

또는 Short Text Translator 에이전트가 사용하는 프롬프트를 업데이트할 수도 있습니다.

1개의 좋아요

이 주제를 작성한 이후로 개선된 태그 번역을 찾아주는 데 도움을 주실 수 있을까요?

OP에서 언급된 태그(그리고 몇 가지 더)는 이제 메타에서 처리되어야 합니다. 매우 상세한 목록을 작성해 주셔서 감사드립니다. 덕분에 쉽게 처리할 수 있었고, 더 일찍 했어야 했는데요 :smiling_face:

태그 번역기에 더 많은 컨텍스트를 전달하는 기능은 현재 우선순위가 높지 않아 아직 시간이 좀 더 걸릴 것입니다.

2개의 좋아요