Translator 插件的 Ember 弃用警告

我看到这个插件有一个 Ember 弃用警告……

`
DEPRECATION: [PLUGIN discourse-translator-085393fc180a351d3e74518ec7971e580d749bf93686b725cf4995ffeeb614ba] 使用 Ember 全局已弃用。您应该导入 Ember 模块或特定的 API。 [deprecation id: ember-global] 有关更多详细信息,请参阅 Ember.js - Deprecations
(anonymous) @ deprecate-shim.js:33

我似乎拥有该插件的最新版本(1.0.0),所以我假设在 Ember5 Day 之前会有一个更新可用。

4 个赞

感谢您的报告,@packman。此插件的最新版本不应触发该警告。另外,我通常不期望插件的名称包含末尾的这些随机字符:

我期望的是 [PLUGIN discourse-translator] :thinking:

您有可能在使用该插件的 fork 版本吗?您能提供论坛链接以便我们查看吗?

1 个赞

抱歉……我确实在使用一个分支版本。它来自 https://github.com/LibreTranslate/discourse-translator

我需要试着回忆一下为什么我使用了那个版本。

2 个赞

我记得原因了。官方翻译插件不支持 LibreTranslate :frowning:

2 个赞

如果有人是 LibreTranslate 分叉插件的支持论坛会员,能否请您发帖说明此弃用警告。分叉的 Github 似乎不允许对其提出问题,我尝试在论坛注册以自行报告此问题,但未收到账户创建确认电子邮件。

2 个赞

官方仓库有一个(非常旧,抱歉! :sweat:)PR,用于添加 LibreTranslate 支持。我们将尽快合并它,然后大家就可以迁移到官方插件版本,并支持 Ember 5 了。

5 个赞

现已合并,再次为长时间的延迟表示歉意。从快速测试来看,LibreTranslate 似乎是一个很棒的开源替代付费服务的方法。

(也会更新 OP 说明。)

7 个赞

是的 :grinning: 它只是另一个 Docker 应用程序,虽然它不是很轻量级。

2 个赞

我已经安装了新的官方插件,而不是分叉版本,但没有得到任何翻译。我检查了以前肯定翻译过的旧帖子,也输入了带有法语文本的新主题(默认语言是英语),但旧的翻译已不存在,新的帖子也没有被翻译。

我已将 LibreTranslate 设置为翻译器,设置了指向我的内部实例的路径,没有 API 密钥(内部实例),每分钟最大翻译次数是默认值(3)。我已将两个“限制”设置设置为“所有人”,以允许所有人翻译和翻译所有人的帖子。这些设置的措辞有点令人困惑(限制与允许列表),所以我不能确定这是否绝对正确,但我尝试将这两个字段留空,仍然看不到任何翻译。该插件已启用内联翻译。

我通过 LibreTranslate 实例自己的 Web 界面对其进行了测试,它能够愉快地翻译我输入的非英语文本。

自从安装官方插件以来,我看来没有与翻译器相关的错误日志,JavaScript 控制台也没有显示任何错误。

我不确定接下来该查看什么来调试这个问题。

1 个赞

/logs 中有任何相关错误吗?

2 个赞

不。唯一与 discourse-translator 相关的项目是一个弃用警告:

弃用通知:SiteSetting.min_trust_to_flag_posts 已被弃用。请改用 SiteSetting.flag_post_allowed_groups。(将在 Discourse 3.3 中移除)
在 /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

因此,我不确定这实际上是插件还是系统插件接口。

1 个赞

我尝试了另一个使用默认“restrict”设置的消息,结果如下:

### 消息(报告了 2 条副本)

作业异常:未初始化的常量 DiscourseTranslator::LibreTranslate

### 回溯

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'

### 环境

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
opts post_id 574164
--- --- --- ---
--- ---
current_site_id default
2 个赞

是的,我知道这是什么,我正在处理修复。

3 个赞

日志现在来得又快又多……不确定为什么它们现在才出现,而之前没有。这里(英国)已经很晚了,所以这可能是我今晚的最后一帖。如果你需要更多信息,我明天会回来。

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'
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
2 个赞

FIX: Broken LibreTranslate support by pmusaraj · Pull Request #128 · discourse/discourse-translator · GitHub 应该可以修复此问题 @packman,很抱歉,我在尝试修复 PR 的 linting 时犯了一个糟糕的复制/粘贴错误 :man_facepalming:。该提交现已合并,因此如果您重新构建,希望它能正常工作。

6 个赞