다국어 플러그인 🌐

이 버그를 (대부분) 수정하는 PR을 열었습니다!

show_subcategory_list 옵션이 카테고리에서 활성화되어 있을 때, 카테고리 이름, 설명 및 하위 카테고리에서 작동합니다!
남은 문제는 show_subcategory_list가 꺼져 있을 때의 하위 카테고리입니다. :purple_heart:

4개의 좋아요

포럼의 카테고리, 카테고리 설명 및 태그를 10가지 언어로 번역하려면 설정 및 업데이트를 위해 3 x 10 = 30개의 개별 파일을 생성하고 업로드해야 합니다.

다음과 같은 구조를 가진 하나의 파일에 모든 번역을 포함시키는 것을 고려하고 있습니다:

categories:
  slug: 
    _de: German name
    _en: English name 
    .description:
       _de: German description
       _en: English description
tags:
  tag:
     ...

이 방식에는 여러 가지 이점이 있습니다:

  • 모든 번역을 한 번에 업데이트할 수 있습니다.
  • 번역자는 번역 과정에서 문맥을 확인할 수 있습니다.
  • 대규모 언어 모델(LLM)을 활용하여 번역 작업을 효율화할 수 있습니다.

이전에 이 방식을 시도해 본 분이 계신가요?

제가 보지 못하는 단점이 있을까요?

최초 구현을 위해 Multilingual::CustomTranslation에 필요한 모든 항목을 생성하고 업데이트하는 플러그인을 작성해 보려 합니다.

3개의 좋아요

이 플러그인은 업그레이드가 필요합니다. 업그레이드가 가치가 있는지, 그리고 어떤 작업이 필요한지 파악하고 싶습니다. 다국어 기능에 관심이 있으시다면 투표해 주세요:

  • 이 플러그인을 사용 중이며, 계속 작동하기를 바랍니다.
  • 이 플러그인을 사용 중이며, 더 나은/다른 기능 또는 UX를 원합니다.
  • 이 플러그인은 사용하지 않지만 Discourse에서 더 나은 다국어 기능을 원합니다 (아래에 설명해 주세요).
  • 해당 없음 (투표 이유를 아래에 설명해 주세요).
0 voters
2개의 좋아요

제 답변인 "더 나은 다국어 기능을 Discourse에서 사용하고 싶지만 이 플러그인은 사용하지 않습니다(아래에 설명드리겠습니다)"는 이유는, 우리는 좋은 다국어 옵션을 평가 중이기 때문입니다. 당신의 도구가 그 역할을 할 수 있기를 바라고 있습니다.

필요한 사항에 대해 질문해 주셨으므로, 다국어 지원에 대한 일반 질문으로 작성했던 제 게시글을 여기에 붙여넣겠습니다:

우리는 하나의 도메인과 두 가지 언어(독일어, 영어)를 가진 웹사이트를 운영하고 있습니다. 콘텐츠는 domain.org/de/[nameofsite]와 domain.org/en/[nameofsite]로 구분되어 있습니다.
현재 독일어 Discourse 포럼이 서브도메인 [germankeyword]-forum.domain.org에 있습니다.
이제 영어 버전의 포럼을 추가하고자 합니다.
불행히도, 주제를 적절히 설명하며 영어 포럼에([englishkeyword]-forum.domain.org) 사용하고 싶은 영어 키워드는 독일어 키워드와 다릅니다. 독일어 키워드는 영어로 통하지 않고, 영어 키워드는 독일어로 통하지 않습니다.

질문:
다른 언어마다 다른 서브도메인을 사용하면서 계정 관리는 하나만 사용하여 (하나의) Discourse 포럼을 운영할 수 있나요?
아니면, 자체 서브도메인과 자체 계정 관리를 가진 완전히 새로운 영어 포럼을 구축해야 하나요?

"하나의 계정 관리"라는 용어는 사용자를 위한 데이터베이스가 하나만 있고, 두 언어 모두에 대해 로그인도 하나만 가능하다는 것을 의미합니다.
두 언어를 모두 사용하려는 사용자들이 두 번 등록해야 하는 것을 피할 수 있는 방법이 있을까요?

같은 포럼의 다른 언어에 대해 동일한 로그인을 제공하려면 도메인을 하나로 제한해야 하나요?

하나의 도메인과 하나의 포럼이 필요하다면, 게시글의 링크 이름에 게시글의 언어를 표시할 수 있는 방법이 있을까요?

예를 들어, 영어 게시글의 경우:
https://meta.discourse.org/t/multilingual-plugin/*en/*142740/125
독일어 게시글의 경우:
https://meta.discourse.org/t/multilingual-plugin/*de/*142740/125

질문이 너무 바보 같아서 죄송합니다…

2개의 좋아요

간단히 말해, 불가능합니다.

이 플러그인의 목표 중 하나는 서로 다른 모국어 사용자들이 동일한 포럼에 존재할 수 있도록 하고, 그들이 선호하는 언어가 자연스럽게 노출되도록 하는 것입니다. 이것이 이 플러그인의 원래 의도였습니다.

네, 같은 포럼에 있도록 하면 됩니다. 만약 정말로 두 개의 분리된 포럼이 필요하다면, auth0나 okta와 같은 ID 제공자(Identity Provider)를 사용하여 두 포럼 모두에 대한 인증을 제공해야 합니다.

현재 이 플러그인의 기능은 아니지만, 추가 작업을 통해 이를 달성할 수 있습니다. 어떤 방식으로든 당신의 비전을 완전히 실현하려면 추가 작업이 필요합니다. coop.pavilion.tech에서 저에게 개인 메시지를 보내주세요.

2개의 좋아요

이번 설문조사 결과를 바탕으로, 9월부터 이 플러그인의 다음 주요 버전을 개발하겠습니다. 특정 기능에 대한 요청 사항이 있다면 지금이 바로 그 때입니다. 플러그인의 다음 버전에는 지원 서비스와 기타 혜택이 포함된 유료 비즈니스 구독 옵션도 제공됩니다. 플러그인은 100% 오픈소스로 유지됩니다.

4개의 좋아요

두 개의 인스턴스를 사용하고 discourse connect를 사용하여 그 중 하나를 인증을 처리하는 사이트로 설정할 수 있습니다.

1개의 좋아요

매우 작고 어려운 언어 가족의 일원으로서, 핀란드어와 에스토니아어 사용자를 위해 AI 기반 번역이 필요합니다. 주요 언어를 제외한 언어의 번역 서비스는 매우 좋지 않습니다.

영어로의 번역은 조금 더 나은 편입니다.

4개의 좋아요

게스트용 다국어 언어 전환기 푸터 표시(multilingual guest language switcher footer visible) 설정을 사용하여, 게스트가 커뮤니티의 주요 언어를 인터페이스 언어로 빠르게 선택할 수 있게 하려고 합니다. 관찰한 내용은 다음과 같습니다:

  1. 인터페이스 언어 목록이 표시되는 바는 multilingual guest language switcher가 footer로 설정되어 있을 때만 표시되며, header로 설정되어 있을 때는 표시되지 않습니다.

    해당 바는 설정 이름에서 "footer"라고 불리지만(실제로는 Discourse의 페이지 푸터가 아니라, 창 우측 하단 근처에 내용 위에 떠 있는 형태입니다), 이는 예상되는 동작일 수 있습니다. 다만, 인터페이스 언어가 많이 제공되는 사이트(예: 현재 Discourse에서 사용 가능한 모든 언어)에서는 게스트용 전체 언어 선택 메뉴의 위치와 무관하게 커뮤니티의 주요 언어에 대한 빠른 접근 목록이 제공되면 좋겠습니다. (또한, 헤더에 메뉴 버튼이 있는 형태가 페이지 콘텐츠의 일부가 가려지는 바보다 훨씬 깔끔해 보입니다.)

    혹시 header가 선택되고 multilingual guest language switcher footer visible에서 언어가 선택된 경우, 해당 언어를 메뉴 상단에 정렬하고 약간 강조 표시하는 것이 가능할까요?

  2. 해당 설정은 바에 표시될 목록의 언어 순서를 재배열할 수 있습니다:

    그러나 바는 이 순서를 무시하고, 대신 2글자 언어 코드 순서대로 알파벳순으로 정렬하는 것 같습니다:
    screenshot of the multilingual guest language switcher bar. The languages are (in that order), Arabic, German, English (US), French and Italian, all listed by their native names: "اللغة العربية", "Deutsch", "English (US)", "Français", "Italiano" and "简体中文"

    설정에서 구성한 순서가 반영되었으면 좋겠습니다(기본적으로, 또는 추가 설정 토글을 통해).

1개의 좋아요

아, 그리고 다국어 게스트 언어 전환기가 헤더로 설정되어 있으면, 언어 목록이 포함된 메뉴가 스크롤되지도(또는 브라우저 창 높이에 의해 제한되지도) 않아서 브라우저 하단 가장자리 아래에 위치하게 된 일부 언어를 선택할 수 없습니다. (Firefox에서 임시 해결 방법: Ctrl+마우스 휠을 이용해 줌을 축소하여 전체 메뉴가 브라우저 창 안에 들어오도록 합니다.)

이는 “Multilingual” 플러그인의 0.2.9 버전(ba63f9a)에서 발생하는 문제입니다.

1개의 좋아요

이전 관리자 중 한 명이 이미 category_name.<language code>.yml 파일을 <discourse base URL>/admin/multilingual/translations 경로에 업로드한 것으로 보입니다.

하지만 작동하지 않는 것 같습니다. 내용을 확인하거나 다운로드할 수 있는 방법이 있을까요? 수정한 후 다시 업로드하고 싶습니다.

수정:

이제 작동합니다. (무엇이 변경되었는지 모르겠습니다.) 나중에 수정이 필요한 경우를 대비하여 다운로드(또는 파일 시스템에 있다면 서버에서 접근)하는 방법에 대해 여전히 궁금합니다.

1개의 좋아요

안녕하세요. 두 개의 사이트에 discourse-multilingual을 설치했습니다.
i18n.js에서 require가 정의되지 않았다는 오류가 발생합니다:

discourse-multilingual을 비활성화하면 오류가 발생하지 않습니다. 이 문제의 원인이 무엇일지 알려주시면 감사하겠습니다.

감사합니다.

하지만 저는 다음과 같이 하고 싶습니다:

이 주제에 대한 두 번째 버그를 여기서 발견했습니다.

简体中文을 한국어로 교체했습니다.
변경 사항을 알리는 연필 아이콘이 표시되었습니다.
하지만 편집 이력 항목을 보면 주제 언어 변경 사항이 표시되지 않습니다.
원본(Raw) 모드에서도 Before와 After가 동일합니다.

저는 이것이 Issue with Customize About Page Feature Mixing with Old js.about.contact_info Text - #18 by Osama 의 문제이기도 했다고 생각합니다.

1개의 좋아요

안녕하세요!

부드러운 질문이어서 죄송하지만, 플러그인이 실제로 동작하는 모습을 볼 수 있는 곳이 있을까요? 문서를 읽고 이 스레드를 꼼꼼히 살펴봤는데, 링크된 예시 사이트 대부분이 작동하지 않거나 변경된 것 같습니다. 예를 들어: Pavilion 와 http://try.thepavilion.io/ 때문에 플러그인, 언어 전환기 등 언급된 예시들을 확인할 수 없습니다.

현재 테스트할 방법이 없다면, 몇 가지 질문에 답해 주실 수 있을까요? :slightly_smiling_face:

  • 가입 시 사용자가 선호하는 언어를 선택할 수 있으며, 선택에 따라 포럼 콘텐츠가 자동으로 필터링되나요?
  • “LanguageSwitch” 버튼을 지구본 아이콘 등으로 변경할 수 있나요? 현재는 일본어 문자로 표시되는 것 같은데, 제 포럼에서 해당 언어를 사용하는 사람이 없으므로 사용자가 혼란을 겪거나 무시할 수 있습니다.
  • 카테고리 및 설명을 번역할 수 있다는 점은 이해했습니다(제가 맞게 이해한 거라면요). 그렇다면 하위 카테고리의 하위 카테고리에도 적용되나요? 또한 브랜드 헤더(플러그인)의 링크와 같은 요소에도 적용할 수 있을까요? 예를 들어, "Products"라는 단어를 번역하여 사용자가 선택한 언어에 따라 스페인어 또는 영어 버전으로 리디렉션할 수 있을까요? 이 플러그인이 매우 인기 있기 때문에 다국어 플러그인과 호환되는지 궁금해서 묻습니다.

많은 질문을 해서 죄송합니다! 스크린샷과 문서를 보고 최대한 알아볼려고 노력했습니다.

이 플러그인이 Discourse 3.5.0beta1과 잘 동작하지 않는 것 같습니다. 포럼을 정상적으로 되돌리기 위해 플러그인을 비활성화해야 했습니다. 로그에서 발견한 것은 다음과 같은 내용뿐입니다:

Deprecation notice: add_to_serializer should not be used to directly override include_*? methods. Use the include_condition keyword argument instead
At /var/www/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!

2개의 좋아요

현재 discourse에서 Error 500 / Oops가 발생합니다:

ArgumentError (wrong number of arguments (given 2, expected 1))
app/controllers/extra_locales_controller.rb:44:in `url'

Backtrace

plugins/discourse-multilingual/extensions/extra_locales_controller.rb:21:in `bundle_js_hash'
app/controllers/extra_locales_controller.rb:44:in `url'
plugins/discourse-multilingual/lib/multilingual/locale_loader.rb:30:in `preload_tag_translations'
plugins/discourse-multilingual/plugin.rb:77:in `block (2 levels) in activate!'

내 로케일은 de_DE.UTF-8으로 설정되어 있습니다.

참고로: 위의 “Report a bug” 링크는 현재 알려지지 않은 도메인 discourse.pluginmanager.org를 가리키고 있습니다.

1개의 좋아요

이 플러그인이 지금 내 사이트를 확실히 충돌시키고 있습니다.

1개의 좋아요

플러그인이 업데이트되어 최신 버전의 Discourse에서 오류가 발생하지 않도록 수정되었습니다.

14개의 좋아요