多语言插件 🌐

我也是,我的 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) 改为 Einglish,但它在出现Oops时崩溃了。回溯信息:

ActionView::Template::Error (未知的 bundle: custom-language)
app/controllers/extra_locales_controller.rb:39:在 `bundle_js_hash`
app/controllers/extra_locales_controller.rb:44:在 `url`
lib/plugin/instance.rb:729:在 `block in register_html_builder`
lib/discourse_plugin_registry.rb:230:在 `block in build_html`
lib/discourse_plugin_registry.rb:230:在 `map`
lib/discourse_plugin_registry.rb:230:在 `build_html`
app/helpers/application_helper.rb:572:在 `build_plugin_html`
app/views/layouts/application.html.erb:24
lib/topic_list_responder.rb:15:在 `block (2 levels) in respond_with_list`
lib/topic_list_responder.rb:8:在 `respond_with_list`
app/controllers/list_controller.rb:347:在 `block (2 levels) in <class:ListController>`
app/controllers/list_controller.rb:316:在 `public_send`
app/controllers/list_controller.rb:316:在 `top`
app/controllers/application_controller.rb:427:在 `block in with_resolved_locale`
app/controllers/application_controller.rb:427:在 `with_resolved_locale`
lib/middleware/omniauth_bypass_middleware.rb:35:在 `call`
lib/content_security_policy/middleware.rb:12:在 `call`
lib/middleware/anonymous_cache.rb:409:在 `call`
lib/middleware/csp_script_nonce_injector.rb:12:在 `call`
config/initializers/008-rack-cors.rb:14:在 `call`
lib/middleware/default_headers.rb:13:在 `call`
config/initializers/100-quiet_logger.rb:20:在 `call`
config/initializers/100-silence_logger.rb:29:在 `call`
lib/middleware/enforce_hostname.rb:24:在 `call`
lib/middleware/processing_request.rb:12:在 `call`
lib/middleware/request_tracker.rb:385:在 `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 卡在加载中。我猜是技术更改的 bug?

帖子:Discourse Stuck on Loading (Logs) - #6 by joshhabka

1 个赞

@angus 你知道如何完全删除这个多语言插件的所有残留文件和设置吗?

1 个赞

@Angus 请查看插件的新错误:“500”在添加语言标签时保存帖子。感谢您开发此插件 :slight_smile:

1 个赞

您好,

我尝试在我的本地 Discourse 论坛上安装 Multilingual 插件。
我在 plugins 文件夹中使用了以下命令克隆它:

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

但我无法在我的管理员设置中找到 Multilingual 选项卡。它只出现在插件菜单中,但没有包含所有设置。我该怎么办?

它给出了这个弃用通知:
弃用通知:不应使用 add_to_serializer 直接覆盖 include_*? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!

本地服务器日志
  • 正在执行任务:bin/rake db:create db:migrate

弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
数据库 ‘discourse_development’ 已存在
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!

  • 终端将由任务重新使用,按任意键关闭。

  • 正在执行任务:bin/ember-cli -u

范围:所有 16 个工作区项目
锁定文件是最新的,跳过解析步骤
已是最新
在 1.4 秒内完成,使用 pnpm v9.15.7
Ember CLI 正在运行,PID:57615
I, [2025-04-25T12:45:00.214872 #57627] INFO – : 正在刷新 Gem 列表
正在启动 CSS 更改监视器
[ember-cli] 在下一版本的 Embroider 中,‘staticAddonTrees’ 设置将默认为 true,并且无法关闭。为准备此更改,您应该在 Embroider 配置中设置 ‘staticAddonTrees: true’。
[ember-cli] 在下一版本的 Embroider 中,‘staticAddonTestSupportTrees’ 设置将默认为 true,并且无法关闭。为准备此更改,您应该在 Embroider 配置中设置 ‘staticAddonTestSupportTrees: true’。
弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_
? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
弃用通知:不应使用 add_to_serializer 直接覆盖 include_*? 方法。请改用 include_condition 关键字参数
在 /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
I, [2025-04-25T12:45:03.044278 #57627] INFO – : 正在监听 addr=127.0.0.1:3000 fd=29
[ember-cli] 代理到 http://127.0.0.1:3000
[ember-cli] 正在构建…
I, [2025-04-25T12:45:04.243153 #57627] INFO – : 正在启动 1 个受监督的 sidekiq
[ember-cli] …[ConfigLoader]
I, [2025-04-25T12:45:04.554744 #57627] INFO – : master 进程已准备就绪
I, [2025-04-25T12:45:04.667840 #57910] INFO – : 进程 ID 57910 中的 Sidekiq 正在加载
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] 构建成功 (31766ms) – 在 http://localhost:4200/ 上提供服务
[ember-cli]
[ember-cli] 最慢的节点 (totalTime >= 5%) | 总计 (平均)
[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] 弃用警告:util._extend API 已弃用。请改用 Object.assign()。
[ember-cli] (使用 node --trace-deprecation ... 显示警告创建位置)

2 个赞

这导致应用程序损坏,您应该升级到最新的:

由于发生以下错误,我不得不禁用此插件:

ActionView::Template::Error (在加载路径中未找到资源 'locales/i18n.js'。)

locales/i18n.jsPERF: Compile main locale bundles just-in-time (#32335) · discourse/discourse@c62a4a4 · GitHub 中已被移除

2 个赞

你好 @angus

你有关于兼容 Discourse 3.4 版本的插件何时可以使用的最新信息吗?

我们目前正尝试在我们的 Discourse 3.4.3 实例上安装该插件,但由于不兼容性遇到了几个错误。

提前感谢你的帮助!

由于 https://github.com/discourse/discourse/commit/c62a4a4759c7669982ff9e9918c92facd9105652,discourse-multilingual 无法使用,您有计划解决这个问题吗?

3 个赞

你好 - 关于管理员设置UI的更改,我们可以在哪里插入翻译文件?

我使用了一个 tag,而不是这个插件。但它只在 tags 过滤器中。

我认为应该分叉来升级源代码,作者太久没更新了……

虽然此插件已冻结,但值得注意的是,较新版本的 Discourse 允许将类别名称/描述本地化,以及将单个主题本地化作为 Discourse 的基本功能,包括手动 c:

因此,可以理解的是,此插件不再受支持,因为它带来的功能几乎都已在 Discourse 中默认提供。

编辑:作为警告,并非所有当前的多种语言功能都已在 Discourse 中原生可用,例如:

  • 您无法根据用户配置文件中的 内容语言 设置来隐藏不同类别主题页面中的主题。

这仍然是功能的巨大进步,但在升级您的实例之前,请注意这一点。

4 个赞