多语言帖子讨论

discourse-multilingual-post

一个 Discourse 插件,支持帖子内容的多语言版本。

本插件仅为概念验证:由于无法本地化主题标题,其实用性有限。

使用方法

在帖子中使用 [lang=xx] 代码块:

[lang=en]
Hello World!
[/lang]
[lang=fr]
Bonjour monde !
[/lang]
[lang=de]
Hallo Welt !
[/lang]

结果:

Hallo Welt !

国家代码必须为两位字母(不支持地区代码)。

工作原理

在渲染帖子时,插件会查找一个 [lang=xx] 代码块进行显示。一旦找到以下任一情况,它将停止查找:

  1. 用户语言(由 Discourse 选择)设置的代码块
  2. Discourse 实例的默认语言设置的代码块
  3. 第一个代码块

仓库

https://github.com/sylque/discourse-multilingual-post

13 个赞

Discourse 团队,有人知道如何本地化主题标题吗?

我想实现的功能如下:

  • 定义语言顺序,例如 “en,fr,de”
  • 允许用户这样编写主题标题:Hello World#Bonjour monde#Hallo Welt
  • 当 Discourse 显示主题标题时,修改它仅保留正确的语言

然而,我没有找到可以修改标题的客户端钩子。有什么建议吗?

6 个赞

您是否考虑过在 Rails 中处理标题?默认语言使用现有的语言,而额外的标题则是自定义的主题字段。然后,您修改序列化器,使有效载荷中发送所选语言的标题。

8 个赞

做得好!

我附议这个观点。我认为标题处理放在服务器端是更好的方案。

我实际上正在开发一个多语言插件(即将完成),它支持以下内容的翻译:

  1. 标签
  2. 分类名称
  3. 分类描述

此外,还包含一个管理面板,用于管理语言和区域设置,以及用户特定的语言内容过滤器等其他功能。

或许我们可以在此领域携手合作。

14 个赞

你好!我很喜欢这个插件,它非常简洁。我觉得如果它能支持装饰 Discourse 页面(如常见问题/指南、服务条款、隐私政策),将会更加实用,毕竟这些页面的标题本身就会被翻译。我曾尝试自行分叉并扩展它,但说实话,我是个绝对的新手。不过,我有一种感觉,它需要围绕 decorateWidget() 而不是 decorateCooked() 进行重写。

1 个赞

为 Discourse 静态页面(如常见问题/指南、服务条款、隐私政策)添加装饰功能将是一个不错的特性。不过,我不确定 decorateWidget 是否能挂钩到静态页面。有人对此有任何提示吗?