packman
(Chris McMahon)
12월 7, 2023, 2:49오후
1
이 플러그인에 대해 Ember 비추천(deprecation) 경고가 표시되고 있습니다…
`
DEPRECATION: [PLUGIN discourse-translator-085393fc180a351d3e74518ec7971e580d749bf93686b725cf4995ffeeb614ba] Ember Global 사용은 비추천됩니다. 대신 Ember 모듈 또는 특정 API를 가져와야 합니다. [deprecation id: ember-global] 자세한 내용은 Ember.js - Deprecations 을 참조하세요.
(anonymous) @ deprecate-shim.js:33
플러그인의 최신 버전(1.0.0)을 사용하고 있는 것으로 보이므로, Ember5 Day 전에 업데이트가 제공될 것으로 예상합니다.
david
(David Taylor)
12월 13, 2023, 2:46오후
2
@packman 님, 보고해 주셔서 감사합니다. 이 플러그인의 최신 버전에서는 해당 경고가 발생하지 않아야 합니다. 또한, 플러그인 이름 끝에 이 무작위 문자열이 포함된 것은 일반적으로 예상하지 못한 상황입니다:
단순히 [PLUGIN discourse-translator]만 표시될 것으로 예상합니다.
혹시 플러그인의 포크된 버전을 사용 중이신가요? 확인해 볼 수 있도록 포럼 링크를 공유해 주시겠어요?
packman
(Chris McMahon)
12월 13, 2023, 2:51오후
3
packman
(Chris McMahon)
12월 13, 2023, 4:09오후
4
왜인지 기억합니다. 공식 번역 플러그인이 LibreTranslate를 지원하지 않거든요
packman
(Chris McMahon)
12월 13, 2023, 4:45오후
5
LibreTranslate 포크 플러그인의 지원 포럼 회원이신 분이라면, 이 비추천(deprecation) 경고에 대해 게시글을 작성해 주시겠습니까? 포크된 GitHub에서는 이슈를 제기할 수 없는 것 같고, 제가 직접 보고하려고 포럼에 가입을 시도해 봤는데 계정 생성 확인 메일이 도착하지 않습니다.
david
(David Taylor)
12월 13, 2023, 5:15오후
6
공식 저장소에 LibreTranslate 지원을 추가하기 위한 (매우 오래된 PR, 죄송합니다! ) PR이 있는 것 같습니다. 최대한 빨리 머지되도록 노력할 것이며, 이후에는 Ember 5를 지원하는 공식 플러그인 복사본으로 전환할 수 있을 것입니다.
main ← LibreTranslate:libre
merged 06:33PM - 13 Dec 23 UTC
Hello :hand: !
This PR adds support for libretranslate (https://libretransla… te.com) as a translation provider.

Hope this can be useful to others. Let me know if changes are needed.
Cheers! :clinking_glasses:
pmusaraj
(Penar Musaraj)
12월 13, 2023, 6:57오후
7
드디어 머지되었습니다. 긴 지연으로 인해 다시 한번 죄송합니다. 간단한 테스트 결과, LibreTranslate는 유료 서비스의 훌륭한 오픈소스 대안으로 보입니다.
(OP 설명도 업데이트하겠습니다.)
packman
(Chris McMahon)
12월 13, 2023, 7:34오후
8
맞습니다 그냥 또 다른 Docker 앱일 뿐인데, 아주 가볍지는 않습니다.
packman
(Chris McMahon)
12월 13, 2023, 9:46오후
9
포크된 버전 대신 새로운 공식 플러그인을 설치했지만 번역이 전혀 이루어지지 않습니다. 이전에 번역되어 있던 것으로 확신하는 오래된 게시물을 확인했고, 기본 언어가 영어인 상태에서 프랑스어 텍스트로 새 주제도 작성해 보았지만, 기존 번역은 더 이상 존재하지 않으며 새 게시물도 번역되지 않습니다.
번역기로 LibreTranslate를 설정하고 내부 인스턴스 경로를 지정했으며, API 키는 비워 두었습니다(내부 인스턴스이므로). 분당 최대 번역 횟수는 기본값인 3으로 설정되어 있습니다. 두 개의 ‘restrict’ 설정을 모두 'everyone’으로 설정하여 모든 사용자가 번역할 수 있고 모든 사용자의 게시물이 번역되도록 했습니다. 해당 설정의 표현이 다소 혼란스럽습니다(restrict와 allowlist의 차이) 때문에 이것이 정확히 맞는지 확신은 없지만, 두 필드를 모두 비워 두어도 여전히 번역이 보이지 않습니다. 플러그인은 인라인 번역이 활성화되어 있습니다.
LibreTranslate 인스턴스 자체의 웹 인터페이스를 통해 테스트해 보니, 제가 입력한 영어 외 텍스트는 정상적으로 번역됩니다.
공식 플러그인을 설치한 이후로 번역기와 관련된 오류가 로그에 기록된 것을 볼 수 없으며, JavaScript 콘솔에도 오류가 표시되지 않습니다.
다음에 어떤 부분을 확인해야 이 문제를 디버깅할 수 있을지 모르겠습니다.
packman
(Chris McMahon)
12월 13, 2023, 10:01오후
11
아니요. discourse-translator 항목에 포함된 것은 비권장(deprecation) 경고뿐입니다:
비권장 공지: SiteSetting.min_trust_to_flag_posts는 비권장되었습니다. 대신 SiteSetting.flag_post_allowed_groups를 사용하세요. (Discourse 3.3에서 제거됨)
At /var/www/discourse/lib/site_setting_extension.rb:202:in public_send
해당 경보는 아래 HTTP Referrer와 관련이 있습니다:
https://discourse.weather-watch.com/admin/site_settings/category/all_results?filter=plugin%3Adiscourse-translator
따라서 이것이 실제로 플러그인 자체인지, 아니면 시스템 플러그인 인터페이스인지 100% 확신할 수 없습니다.
packman
(Chris McMahon)
12월 13, 2023, 10:06오후
12
기본 ‘restrict’ 설정으로 다른 메시지를 시도해 보았더니 다음 결과가 나왔습니다
### Message (2 copies reported)
Job exception: uninitialized constant DiscourseTranslator::LibreTranslate
### Backtrace
activesupport-7.0.7/lib/active_support/inflector/methods.rb:278:in `const_get'
activesupport-7.0.7/lib/active_support/inflector/methods.rb:278:in `constantize'
activesupport-7.0.7/lib/active_support/core_ext/string/inflections.rb:74:in `constantize'
/var/www/discourse/plugins/discourse-translator/plugin.rb:125:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/discourse-translator/plugin.rb:124:in `execute'
/var/www/discourse/app/jobs/base.rb:292:in `block (2 levels) in perform'
rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:279:in `block in perform'
/var/www/discourse/app/jobs/base.rb:275:in `each'
/var/www/discourse/app/jobs/base.rb:275:in `perform'
sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
### Env
1/2
hostname hv1-app
process_id 11330
application_version 0513865c3cbbf8449bcfdc0dff3d9c382d2c4207
current_db default
current_hostname discourse.weather-watch.com
job Jobs::DetectTranslation
problem_db default
time 10:03 pm
opts post_id 574164
--- --- --- ---
--- ---
current_site_id default
pmusaraj
(Penar Musaraj)
12월 13, 2023, 10:12오후
13
네, 이 문제가 뭔지 알고 있습니다. 수정하고 있습니다.
packman
(Chris McMahon)
12월 13, 2023, 10:12오후
14
로그가 지금 쏟아지고 있습니다… 왜 갑자기 나타나는지 모르겠네요. 전에 없었는데 말이죠. 여기(영국)는 이제 늦은 시간이라 오늘 밤으로는 이게 마지막 게시글이 될 것 같습니다. 더 정보가 필요하시면 내일 다시 올게요.
Message (3 copies reported)
NameError (uninitialized constant DiscourseTranslator::LibreTranslate)
(eval):111:in `_fast_attributes'
app/serializers/post_stream_serializer_mixin.rb:54:in `block in posts'
app/serializers/post_stream_serializer_mixin.rb:47:in `map'
app/serializers/post_stream_serializer_mixin.rb:47:in `posts'
app/serializers/post_stream_serializer_mixin.rb:18:in `post_stream'
(eval):3:in `_fast_attributes'
app/controllers/topics_controller.rb:1335:in `block (2 levels) in perform_show_response'
app/controllers/topics_controller.rb:1329:in `perform_show_response'
app/controllers/topics_controller.rb:187:in `show'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/008-rack-cors.rb:14: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/request_tracker.rb:233:in `call'
Backtrace
activesupport (7.0.7) lib/active_support/inflector/methods.rb:278:in `const_get'
activesupport (7.0.7) lib/active_support/inflector/methods.rb:278:in `constantize'
activesupport (7.0.7) lib/active_support/core_ext/string/inflections.rb:74:in `constantize'
plugins/discourse-translator/plugin.rb:167:in `can_translate'
(eval):111:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
app/serializers/post_stream_serializer_mixin.rb:54:in `block in posts'
activerecord (7.0.7) lib/active_record/relation/delegation.rb:88:in `each'
activerecord (7.0.7) lib/active_record/relation/delegation.rb:88:in `each'
app/serializers/post_stream_serializer_mixin.rb:47:in `map'
app/serializers/post_stream_serializer_mixin.rb:47:in `posts'
plugins/discourse-reactions/lib/discourse_reactions/topic_view_serializer_extension.rb:15:in `posts'
app/serializers/post_stream_serializer_mixin.rb:18:in `post_stream'
(eval):3:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (7.0.7) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.7) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.7) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/topics_controller.rb:1335:in `block (2 levels) in perform_show_response'
actionpack (7.0.7) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
app/controllers/topics_controller.rb:1329:in `perform_show_response'
app/controllers/topics_controller.rb:187:in `show'
actionpack (7.0.7) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.7) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.0.7) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.7) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
i18n (1.14.1) lib/i18n.rb:322:in `with_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
activesupport (7.0.7) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.7) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.7) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.7) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.7) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.7) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.7) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.7) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.7) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.7) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.7) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.3.0) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack (7.0.7) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.7) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.7) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.7) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.7) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.8) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.8) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.8) lib/rack/head.rb:12:in `call'
actionpack (7.0.7) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.8) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.8) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.7) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.7) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster (2.13.1) lib/logster/middleware/reporter.rb:40:in `call'
railties (7.0.7) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.7) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.8) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.8) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.7) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler (3.3.0) lib/mini_profiler.rb:191:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:233:in `call'
railties (7.0.7) lib/rails/engine.rb:530:in `call'
railties (7.0.7) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.7) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.8) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.8) lib/rack/urlmap.rb:58:in `each'
rack (2.2.8) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'
Env
1/3
hostname hv1-app
process_id 11359
application_version 0513865c3cbbf8449bcfdc0dff3d9c382d2c4207
HTTP_HOST discourse.weather-watch.com
REQUEST_URI /t/vp2-low-battery-warning/41154
REQUEST_METHOD GET
HTTP_USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
HTTP_ACCEPT text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
HTTP_REFERER https://discourse.weather-watch.com/search?q=low%20batt
HTTP_X_FORWARDED_FOR 255.36.47.44, 10.20.0.1
HTTP_X_REAL_IP 10.20.0.1
username luciano_giannobile
time 10:08 pm
pmusaraj
(Penar Musaraj)
12월 13, 2023, 11:13오후
17
FIX: Broken LibreTranslate support - Pull Request #128 - discourse/discourse-translator - GitHub 이 문제를 수정해야 합니다. @packman , 죄송합니다. PR의 린팅을 수정하려고 할 때 끔찍한 복사/붙여넣기 실수를 저질렀습니다 . 해당 커밋은 이제 병합되었으므로, 다시 빌드하면 정상적으로 작동할 것입니다.