다국어 플러그인 🌐

스테이징 사이트에서도 같은 문제가 발생하고 있지만, 설정에서 플러그인을 비활성화(안전 모드로 접근)하는 방식으로 문제를 해결하여 정상적인 사이트로 복귀했습니다. Ed님, 새로운 업데이트 일정 정책에 대해 알고 계신가요? 이번 달 첫 5일 동안만 코어와의 충돌 문제를 지원한다고 합니다. 따라서 현재 프로덕션 사이트를 업데이트하면 수정 사항을 기대할 수 없으니 주의해 주세요.

2개의 좋아요

관심과 피드백을 주셔서 감사합니다.

일반적인 참고 사항으로, 이 플러그인을 사용하기 전에 반드시 문서화를 읽어 보시기 바랍니다. 많은 질문들이 그곳에서 다루어지고 있습니다. 문서에 다루지 않은 주제를 발견하시면 알려 주시면 추가하겠습니다.

문서 페이지를 방문하실 때(게스트인 경우) 이 플러그인의 기능을 실제로 확인하실 수 있습니다. 바로 언어 전환기입니다:

@eax 피드백을 주셔서 감사합니다

네, 추측하신 대로 콘텐츠 언어 기능의 의도입니다. 현재는 운영 환경에서는 끔 두시는 것(즉, 사이트 설정을 꺼두는 것)을 권장하며, 기능을 익히는 동안에는 먼저 격리된 환경에서 테스트해 보시길 권합니다.

참고로:

  • multilingual content languages enabled 사이트 설정을 통해 켜고 끌 수 있습니다.
  • 콘텐츠 언어 필터링은 사용자가 사용자 설정에서 콘텐츠 언어를 선택한 경우에만 적용됩니다.

콘텐츠 언어에 대한 전체 문서는 여기서 확인하세요: Pavilion

여기에 설명된 것과 같은 서버 측 작업을 통해 언어 태그를 일괄 적용할 수 있습니다. 명령줄과/또는 rails에 익숙하지 않으시다면 도움을 받으시는 것을 권장합니다. 콘텐츠 언어 기능은 아직 초기 단계이므로, 특히 대규모 사이트에서 이 기능을 사용하도록 기존 사이트를 설정하는 주요 방법은 이 방식입니다.

Translator 플러그인의 언어 감지 기능을 이 플러그인의 multilingual translator content tag sync 기능과 함께 사용하여 언어 태그를 자동으로 적용해 볼 수 있습니다. 번역 서비스를 통한 언어 감지는 무료가 아닙니다. 또한 이 방식은 현재 단계에서 실험적이며, 특히 대규모 사이트에서는 더욱 그러합니다.

저는 try.thepavilion.io에서 Translator 플러그인 + 콘텐츠 언어 동기화 방식을 테스트해 보았는데, 현재 이 사이트에는 게시물이 77개만 있습니다. 진행 방법은 다음과 같습니다.

  1. Translator 플러그인과 이 플러그인을 설정하고, 동기화가 작동하도록 관련 설정을 모두 켜세요. 자세한 내용은 여기서 확인하세요: Pavilion

  2. 서버에서 rebake 작업을 실행하여 기존 모든 게시물에 대한 언어 감지를 트리거하세요. 자세한 내용은 여기서 확인하세요: Rebake all posts? - #2 by zogstrip.

  3. 일부 게시물에 언어 태그가 자동으로 부여되었습니다.

이 방식이 모든 주제에 대해 작동하지 않았으며 완벽하지도 않았습니다. 기존 태그가 있는 일부 주제에서는 작동하지 않았고, 모든 경우에서 정확하지 않았습니다. 예를 들어 이 게시물이 러시아어라고 판단했습니다: https://try.thepavilion.io/t/well-have-a-whale-of-a-time/59

더 큰 문제는 여러 주제에 태그가 부여되지 않았다는 것입니다. 이는 Translator 플러그인의 일괄 작업과 이 플러그인의 일괄 작업 간의 상호작용 문제로 인해 발생하는 것입니다. 향후 한 달 정도 내에 기존 게시물에 콘텐츠 언어를 태깅하는 이 방식을 개선하여, 기술적 도움 없이 기존 사이트에서 채택하기 더 현실적으로 만들겠습니다. 진전이 있으면 문서에 해당 주제에 대한 섹션도 추가할 예정입니다.

@Ed_Bobkov @davidkingham이 친절하게 언급한 대로, Pavilion은 매월 첫 주에만 가장 최신 Discourse와 호환되도록 플러그인을 업데이트합니다.

그러나 도움을 드리고자, 이 플러그인이 가장 최신 Discourse와 함께 작동하도록 필요한 변경 사항을 적용했습니다. https://try.thepavilion.io에서 최신 Discourse와 함께 작동하는 것을 지금 바로 확인하실 수 있습니다.

6개의 좋아요

그 사실을 몰랐습니다. 감사합니다!

2개의 좋아요

내 문제를 일으킨 것이 플러그인 조합 때문인지 확실하지 않지만, 설정에서 플러그인을 비활성화했을 때 500 에러가 발생했고, 안전 모드(세이프 모드)를 켜도 아무것도 할 수 없었습니다.

이 문제를 겪고 계신 분은 걱정하지 마세요. 터미널에 접속하여 서버에 연결한 다음 다음 명령어를 실행해 보세요:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.multilingual_enabled = true

포럼이 복구되었다면, 터미널을 안전하게 닫기 위해 exit 명령어를 세 번 입력하세요.

참고 - 설치된 플러그인
      - git clone https://github.com/discourse/discourse-akismet.git
      - git clone https://github.com/discourse/discourse-solved.git
      - git clone https://github.com/discourse/discourse-assign.git
      - git clone https://github.com/discourse/discourse-chat-integration.git
      - git clone https://github.com/discourse/discourse-adplugin.git
      - git clone https://github.com/discourse/discourse-calendar.git
      - git clone https://github.com/discourse/discourse-translator.git
      ## 비공식
      - git clone https://github.com/paviliondev/discourse-multilingual.git
      - git clone https://github.com/Ebsy/discourse-nationalflags.git
      - git clone https://github.com/jannolii/discourse-topic-trade-buttons.git

수정: ‘Multilingual Disabled Content Tags’ 태그 그룹을 삭제해도 안전할까요?

새 주제를 생성하려고 하면 이 태그들이 목록 맨 위에 먼저 표시되어 불편합니다. (때때로 태그 설정 때문에 혼란을 겪기도 해서, 제가 무언가를 놓쳤을 수도 있습니다)

5개의 좋아요

가능하다면, 여러분의 사이트에서 무슨 일이 일어나고 있는지 더 자세히 살펴보고 싶습니다 (가능하시다면 PM을 보내주세요).

네, 해당 스크린샷 우하단에 있는 컨트롤(플러그인에 의해 추가됨)을 사용하세요.

3개의 좋아요

재미있는 건, 오른쪽 아래 버튼을 눌러도 아무 반응이 없어요.

하나씩 삭제할 수는 있지만, 먼저 몇 가지 사항을 확인해 보실 수 있도록 제 인증 정보를 보내드릴게요. 그 외에는 플러그인이 잘 작동하니까 큰 문제는 아닙니다.

1개의 좋아요

사용자들이 게시글과 답글의 자동 번역을 읽을 수 있는 방법을 찾고 있습니다.

discourse-multilingual과 discourse-translator 플러그인을 모두 설치했습니다.

discourse-multilingual의 모든 설정을 활성화했습니다.

discourse-translator의 인라인 번역을 활성화하고 Azure 구독 키를 추가했습니다(스크린샷을 위해 키를 재생성했습니다).

문제를 단순화하기 위해 다국어 지원 언어를 제한했습니다. 하지만 비활성화한 모든 항목에서 “태그 충돌(tag conflict)” 오류가 발생하는데, 그 이유는 알 수 없습니다(링크를 클릭하면 404 페이지가 로드됩니다).


또한 multilingual의 번역 결과가 비어 있는데, 그 이유도 알 수 없습니다.

사용자 로케일 설정 3가지를 모두 활성화했습니다.

하지만 다른 사용자의 내용을 번역할 수 있는 옵션은 어디에서도 찾을 수 없습니다. 추가 버튼, 헤더, 푸터 등이 없습니다.

무엇을 놓치고 있을까요?

제가 작업 중인 포럼에서 설정을 확인해 보았는데, 번역에 Google API를 사용했지만 잘 작동하고 있습니다. 제 추측으로는 이 플러그인에 문제가 없는 것 같습니다.

두 가지 가능성이 있습니다:

  • 번역 API가 언어를 감지하지 못해 번역을 제안하지 못하는 경우입니다. 다른 언어로 아주 짧은 새 주제를 게시해 보시는 것을 제안합니다.
  • 구독 키에 문제가 있는 경우입니다. /logs를 확인하여 어떤 오류가 발생했는지 살펴보세요.

하지만 태그 충돌 문제는 좀 이상합니다. 제 포럼에서는 최신 버전에서 모든 기능이 정상적으로 작동합니다(헤더/푸터의 게스트 언어 전환기에 문제가 있지만 이미 보고된 상태입니다). /tags 페이지에서 content_languages 태그에 문제가 있는지 확인하고, /tag_groups 페이지에서 모든 태그를 업데이트해 보시는 것이 좋습니다.

1개의 좋아요

이 플러그인을 사용해 카테고리 및 하위 카테고리 이름을 번역하고 있는데, 일반 표시에서는 잘 작동합니다.
하지만 하위 카테고리가 박스 형태로 표시될 때는 하위 카테고리 이름이 번역되지 않습니다.

category-title-link.hbs 파일에서 코드가 다음과 같다는 것을 확인했습니다:

<span class="category-name">{{dir-span category.name}}</span>

그리고 categories-boxes.hbs 파일에서는 다음과 같습니다:

<a class="parent-box-link" href={{c.url}}>
            <h3>
              {{#if c.read_restricted}}
                {{d-icon "lock"}}
              {{/if}}
              {{c.name}}
            </h3>
          </a>

박스 표시 모드에서도 정상적으로 작동하도록 categories-boxes 템플릿을 오버라이드하는 방법은 무엇일까요?

2개의 좋아요

의도를 잘 이해하지 못하겠습니다.
categories-boxes와 category-title-link라는 두 컴포넌트에서 카테고리 이름 데이터를 어떻게 가져오는지 이해가 되지 않습니다.
두 컴포넌트가 카테고리 이름 데이터를 가져오는 방식의 차이점이 무엇인가요?

찾았어요. categories-boxes.hbs를 이렇게 수정하면 됩니다:

<a class="parent-box-link" href={{c.url}}>
     <h3>
        {{category-title-link tagName="span" category=c}}
    </h3>
</a>

이 category-title-link 컴포넌트를 카테고리 제목으로 사용하면 됩니다. 잘 작동해요. :laughing::laughing::laughing::laughing::laughing:

2개의 좋아요

안녕하세요, 이 플러그인을 사용하는 실제로 운영 중인 포럼 사례가 있을까요? 플러그인이 실제로 어떻게 작동하는지 이해하고 싶습니다.

또한, 언어별로 사용자를 다른 링크로 유도할 수 있는지도 알고 싶습니다.

2개의 좋아요

현재 버전의 Discourse와 Multilingual 플러그인에서 tags 관련 문제를 겪고 있는 사람이 더 있나요?

로케일 제외 부분만 따로 분리해서 사용할 수 있다면 좋겠습니다. 제 포럼에서는 이것이 필수 조건이지만, 플러그인의 나머지 기능은 사용하지 않을 예정입니다.

4개의 좋아요

같은 문제를 발견했습니다. 해당 플러그인은 태그에 대해 오래된 루트를 사용하고 있습니다. 플러그인을 끄자 문제가 해결되었습니다.

1개의 좋아요

여러분, 기다려 주셔서 감사합니다.

@anon20593648 @Ed_Bobkov 새로운 태그 경로를 지원하도록 플러그인을 업데이트했습니다.

기능은 예제와 함께 문서에 자세히 설명되어 있습니다:

거기에 설명된 기능 중 특정 사항에 대해 질문이 있으시면 해당 주제에 게시해 주시면 후속 답변을 드리겠습니다.

7개의 좋아요

@angus, 안녕하세요! 사용자 정의 필드에 번역을 추가하는 방법은 무엇인가요?

3개의 좋아요

저희 토론 포럼에서는 사용자 프로필 페이지에 표시할 언어를 선택하기 위해 다국어 인터페이스를 사용하고 있습니다. 현재 사용자 프로필 페이지에는 선택된 언어만 표시되며, 그 목록은 다음과 같습니다.
아랍어
영어
프랑스어
독일어
포르투갈어
루마니아어
러시아어
스페인어

다국어 인터페이스에서 위의 언어를 선택한 후 ‘변경 사항 저장’ 버튼을 클릭하면 'Internal server error(내부 서버 오류)'가 표시됩니다.
그러나 데이터베이스에는 데이터가 저장되어 있는 것을 확인했습니다. 하지만 3일 후에 다시 확인해 보니, 다국어 인터페이스(/admin/multilingual/languages)에서 마지막으로 선택했던 값들이 선택 해제된 상태였습니다.
영어, 프랑스어, 스페인어, 영국 영어와 같은 기본 값만 표시되고 있으며, 이와 관련된 에러 로그는 찾지 못했습니다. 비슷한 문제를 경험하신 분 있으시면 조언 부탁드립니다.

1개의 좋아요

안녕하세요, 다음 주 초에 이 플러그인에 집중해서 질문하신 내용을 처리할게요 :+1:

3개의 좋아요

답변해 주셔서 감사합니다.

1개의 좋아요

이것이 질문하기에 가장 적절한 곳인지 확실하지 않지만, 플러그인과 직접적으로 관련이 있다고 생각합니다:

저희 새 포럼(https://forums.sociocracyforall.org)에서 방금 다국어 플러그인을 활성화했는데 대부분 잘 작동하지만:

  1. 플러그인을 활성화하기 전에 작성된 게시물의 언어 태그를 변경하려고 하면 변경할 수 없습니다. 500 오류가 발생합니다. 제 게시물인지 다른 사람의 게시물인지 관계없이 동일합니다.

이유와 해결 방법에 대해 아이디어가 있을까요?

  1. 언어 태그를 입력하지 않았을 때 나타나는 경고 메시지가 최종 사용자에게는 다소 어렵게 느껴진다는 점을 알게 되었습니다.

  2. 콘텐츠 언어 선택 항목이 인터페이스 언어(이 경우 스페인어)로 표시되지 않습니다. :stuck_out_tongue:
    번역이 되어 있지 않아서 그런 건가요, 아니면 다른 이유가 있나요?

이런 주제에 대해 이 스레드보다 더 나은 곳이 있다면 - 예를 들어 GitHub 같은 곳 - 알려주세요. :slight_smile:
수정: 실제로 GitHub에서 각각의 문제에 대해 이슈를 게시했습니다: Issues · paviliondev/discourse-multilingual · GitHub

1개의 좋아요