다국어 플러그인 🌐

나도 마찬가지야. 내 Discourse 버전은 3.5.0.beta2-dev이고, discourse-multilingual은 최신 버전이야.


백트레이스

app/controllers/extra_locales_controller.rb:39:in `bundle_js_hash'
plugins/discourse-multilingual/extensions/extra_locales_controller.rb:25:in `bundle_js_hash'
app/controllers/extra_locales_controller.rb:44:in `url'
plugins/discourse-multilingual/lib/multilingual/locale_loader.rb:26:in `preload_custom_locale'
plugins/discourse-multilingual/plugin.rb:76:in `block (2 levels) in activate!'
lib/plugin/instance.rb:729:in `block in register_html_builder'
lib/discourse_plugin_registry.rb:230:in `block in build_html'
lib/discourse_plugin_registry.rb:230:in `map'
lib/discourse_plugin_registry.rb:230:in `build_html'
app/helpers/application_helper.rb:572:in `build_plugin_html'
app/views/layouts/application.html.erb:24

이 문제를 해결하는 방법을 아는 사람이 있을까?

1개의 좋아요

커스텀 names.yml 설정을 사용하여 English(US)를 English로 변경하려고 했으나, Oops 오류로 인해 깨졌습니다. 백트레이스:

ActionView::Template::Error (Unknown bundle: custom-language)
app/controllers/extra_locales_controller.rb:39:in `bundle_js_hash'
app/controllers/extra_locales_controller.rb:44:in `url'
lib/plugin/instance.rb:729:in `block in register_html_builder'
lib/discourse_plugin_registry.rb:230:in `block in build_html'
lib/discourse_plugin_registry.rb:230:in `map'
lib/discourse_plugin_registry.rb:230:in `build_html'
app/helpers/application_helper.rb:572:in `build_plugin_html'
app/views/layouts/application.html.erb:24
lib/topic_list_responder.rb:15:in `block (2 levels) in respond_with_list'
lib/topic_list_responder.rb:8:in `respond_with_list'
app/controllers/list_controller.rb:347:in `block (2 levels) in <class:ListController>'
app/controllers/list_controller.rb:316:in `public_send'
app/controllers/list_controller.rb:316:in `top'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:409:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'
1개의 좋아요

Discourse를 업그레이드한 후 다음과 같은 배너가 표시됩니다.

[관리자 공지] 다가오는 Discourse 코어 변경 사항과의 호환성을 위해 테마 또는 플러그인의 업데이트가 필요합니다. (id:discourse.component-template-overrides) 식별된 플러그인: ‘discourse-multilingual’

따라서 2025년 6월 이전에 이 플러그인에 대한 일부 기술적 변경이 필요할 것으로 보입니다.

5개의 좋아요

개발진으로부터 이에 대한 업데이트가 있나요?

1개의 좋아요

다국어 플러그인을 활성화했을 때 내 포럼의 언어가 영어로 변경된 이유가 무엇인지 아시나요? 플러그인을 비활성화했는데도 여전히 영어로 표시됩니다.

1개의 좋아요

이 가이드를 성공적으로 따라 카테고리 번역을 추가했습니다.
하지만 태그 번역은 제대로 작동하지 않았습니다.

tag.ja.yml 파일에 다음과 같이 작성해 두었습니다:

discussions: ディスカッション
questions: 質問
self-intro: 自己紹介
showcase: 作ってみた
other: その他
guidelines: ガイドライン
updates: 新着

인터페이스 언어를 일본어로 전환했을 때 아래와 같은 결과가 나왔습니다.

도움을 주시면 감사하겠습니다!

1개의 좋아요

@angus 콤마가 두 번 나타나는 문제를 수정할 방법이 있을까요? @Arkshine 님이 여기서 오래된 CSS를 제거하여 수정 방법을 찾았습니다:

1개의 좋아요

Discourse가 로딩에 멈춰 있습니다. 기술적 변경 사항 관련 버그 때문이라고 추측합니다.

게시물: Discourse Stuck on Loading (Logs) - #6 by joshhabka

1개의 좋아요

@angus 이 다국어 플러그인의 남은 파일/설정을 완전히 삭제하는 방법을 아시나요?

1개의 좋아요

@Angus 플러그인에서 새로운 오류를 확인했습니다: 언어 태그를 추가할 때 게시물을 저장하면 “500” 오류가 발생합니다. 이 플러그인을 개발해 주셔서 감사합니다 :slight_smile:

1개의 좋아요

안녕하세요,
내 로컬 Discourse 포럼에 다국어(Multilingual) 플러그인을 설치하려고 시도했습니다.
플러그인 폴더에서 다음 명령어로 클론했습니다:

git clone https://github.com/paviliondev/discourse-multilingual

하지만 관리자 설정에서 다국어(Multilingual) 탭을 찾을 수 없습니다. 플러그인 메뉴에는 표시되지만, 모든 설정 항목이 포함되어 있지 않습니다. 어떻게 해야 할까요?

다음과 같은 비추천(Deprecation) 경고가 표시됩니다:
비추천 경고: add_to_serializer는 include_*? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!

로컬 서버 로그
  • Executing task: bin/rake db:create db:migrate

비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
Database ‘discourse_development’ already exists
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!

  • Terminal will be reused by tasks, press any key to close it.

  • Executing task: bin/ember-cli -u

Scope: all 16 workspace projects
Lockfile is up to date, resolution step is skipped
Already up to date
Done in 1.4s using pnpm v9.15.7
Ember CLI running on PID: 57615
I, [2025-04-25T12:45:00.214872 #57627] INFO – : Refreshing Gem list
Starting CSS change watcher
[ember-cli] The setting ‘staticAddonTrees’ will default to true in the next version of Embroider and can’t be turned off. To prepare for this you should set ‘staticAddonTrees: true’ in your Embroider config.
[ember-cli] The setting ‘staticAddonTestSupportTrees’ will default to true in the next version of Embroider and can’t be turned off. To prepare for this you should set ‘staticAddonTestSupportTrees: true’ in your Embroider config.
비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
비추천 경고: add_to_serializer는 include_? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
비추천 경고: add_to_serializer는 include_
? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
비추천 경고: add_to_serializer는 include_*? 메서드를 직접 오버라이드하는 데 사용해서는 안 됩니다. 대신 include_condition 키워드 인수를 사용하세요.
At /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
I, [2025-04-25T12:45:03.044278 #57627] INFO – : listening on addr=127.0.0.1:3000 fd=29
[ember-cli] Proxying to http://127.0.0.1:3000
[ember-cli] building…
I, [2025-04-25T12:45:04.243153 #57627] INFO – : starting 1 supervised sidekiqs
[ember-cli] …[ConfigLoader]
I, [2025-04-25T12:45:04.554744 #57627] INFO – : master process ready
I, [2025-04-25T12:45:04.667840 #57910] INFO – : Loading Sidekiq in process id 57910
I, [2025-04-25T12:45:04.680493 #57914] INFO – : worker=0 ready
I, [2025-04-25T12:45:04.686440 #57919] INFO – : worker=1 ready
I, [2025-04-25T12:45:04.686445 #57924] INFO – : worker=2 ready
[ember-cli] …[Babel: discourse-widget-hbs > applyPatches]
[ember-cli] …[Babel: ember-source > applyPatches]
[ember-cli] …[Babel: dialog-holder > applyPatches]
[ember-cli] …[embroider-template-compile-stage1 > applyPatches]
[ember-cli] …[Babel: select-kit > applyPatches]
[ember-cli] …[@embroider/compat/app]
[ember-cli] …[@embroider/webpack]
[ember-cli] …[@embroider/webpack]
[ember-cli] …[@embroider/webpack]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: admin > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[TemplateCompiler > applyPatches]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[TemplateCompiler > applyPatches]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli]
[ember-cli] Build successful (31766ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -±
[ember-cli] @embroider/webpack (1) | 21608ms
[ember-cli] Babel: discourse-plugins (29) | 4506ms (155 ms)
[ember-cli] broccoli-persistent-filter:Mapper (36) | 1628ms (45 ms)
[ember-cli]
[ember-cli] (node:57634) [DEP0060] DeprecationWarning: The util._extend API is deprecated. Please use Object.assign() instead.
[ember-cli] (Use node --trace-deprecation ... to show where the warning was created)

2개의 좋아요

이로 인해 앱이 손상되었습니다. 최신 버전으로 업그레이드해야 합니다:

다음 오류로 인해 이 플러그인을 비활성화해야 했습니다:

ActionView::Template::Error (The asset 'locales/i18n.js' was not found in the load path.)

locales/i18n.js는 https://github.com/discourse/discourse/commit/c62a4a4759c7669982ff9e9918c92facd9105652에서 제거되었습니다.

2개의 좋아요

안녕하세요 @angus,

Discourse 3.4와 호환되는 버전이 언제 나올지 업데이트가 있을까요?

현재 Discourse 3.4.3 인스턴스에 플러그인을 설치하려고 시도하고 있지만, 호환성 문제로 인해 여러 오류가 발생하고 있습니다.

도움 주시면 감사하겠습니다!

PERF: Compile main locale bundles just-in-time (#32335) · discourse/discourse@c62a4a4 · GitHub 로 인해 discourse-multilingual 플러그인을 사용할 수 없습니다. 이에 대한 수정 계획이 있으신가요?

3개의 좋아요

안녕하세요 - 관리자 설정 UI 변경과 관련하여 번역 파일을 어디에 삽입해야 하나요?

수정: URL(<instance URL>/admin/multilingual/languages)을 통해 메뉴에 접근할 수는 있지만, 새로운 관리자 설정 UI에서 직접 하이퍼링크로 연결되는 방법은 없습니다…
이 모듈에 업데이트가 있다면 설정이 새로운 UI에 맞게 조정되기를 바랍니다.

이 플러그인 대신 tag를 사용했습니다. 하지만 태그 필터에만 적용됩니다.

소스를 업그레이드하기 위해 포크하는 것이 좋을 것 같습니다. 작성자가 너무 오랫동안 방치되고 있으니…

이 플러그인이 동결된 상태이지만, 최신 Discourse 버전에서는 카테고리 이름/설명 및 개별 주제(localization)에 대한 로컬라이제이션을 기본 Discourse 기능으로 지원한다는 점을 언급할 가치가 있습니다. 수동 로컬라이제이션도 포함됩니다:

따라서 이 플러그인이 더 이상 지원되지 않는다는 것은 이해할 수 있습니다. 그 이유는 이 플러그인이 제공하는 기능이 Discourse에서 기본적으로 거의 모두 사용 가능하기 때문입니다.

수정: 경고로, 현재 Multilingual 기능 중 일부는 아직 Discourse에서 네이티브로 사용할 수 없습니다. 예를 들어:

  • 특정 사용자 프로필의 Content Languages 설정에 따라 다른 카테고리 주제 페이지에서 주제를 숨기는 것이 불가능합니다.

아직도 기능 면에서 큰 발전이지만, 인스턴스를 업그레이드하기 전에 참고하시기 바랍니다.

4개의 좋아요