多语言插件 🌐

我的测试站点上也出现了这个问题,但我通过安全模式进入设置关闭了该插件,现在网站已恢复正常。Ed,你了解他们新的更新排期政策吗?他们仅在每月的前 5 天支持与核心功能的冲突,因此你现在不应更新生产站点并期望获得修复。

2 个赞

感谢大家的兴趣和反馈。

一般来说,请在使用该插件之前阅读其文档,许多问题都在其中得到了解答。如果您发现某些主题未被涵盖,请告诉我,我会将其补充进去。

当您访问文档时(如果您是访客),还会看到该插件的一项功能正在运行:语言切换器。

@eax 感谢您的反馈。

是的,正如您所推断的,这正是“内容语言”功能的设计初衷。我建议您目前在生产环境中暂时关闭此功能(即保持站点设置关闭),并在熟悉该功能之前,先在隔离环境中进行测试。

请注意:

  • 您可以通过站点设置 multilingual content languages enabled 来开启或关闭此功能。
  • 内容语言过滤仅在用户在其用户设置中选择了内容语言时才会生效。

请在此处阅读关于内容语言的完整文档:Pavilion

您可以通过服务器端操作批量应用语言标签,例如 此处描述的操作。如果您不熟悉命令行和/或 Rails,建议寻求相关帮助。内容语言功能仍处于早期阶段,因此这是为现有站点(尤其是大型站点)配置以支持此功能的主要方式。

您可以尝试结合使用翻译插件的语言检测功能与本插件的 多语言翻译内容标签同步 功能,以自动应用语言标签。请注意,通过翻译服务进行语言检测并非免费。此外,这种方法目前仍处于实验阶段,尤其是在大型站点上。

我刚刚在 try.thepavilion.io 上测试了“翻译插件 + 内容语言同步”方案,该站点目前仅有 77 篇帖子。以下是我的操作步骤:

  1. 设置翻译插件和本插件,并开启所有与同步相关的设置。详见此处:Pavilion

  2. 在服务器上运行 rebake 操作,以触发对所有现有帖子的语言检测。详见此处:Rebake all posts? - #2 by zogstrip

  3. 部分帖子自动被赋予了语言标签。

但这并未对所有主题生效,效果也不完美。例如,它未能正确处理某些已带有标签的主题,也并非在所有情况下都准确。例如,它错误地将此帖子识别为俄语:https://try.thepavilion.io/t/well-have-a-whale-of-a-time/59

更大的问题是,许多主题未获得任何标签。这是翻译插件的批量操作与本插件的批量操作之间相互作用的问题。我将在未来一个月左右内尝试优化这种为现有帖子添加内容语言标签的方法,使其更易于在没有技术支持的情况下被现有站点采用。一旦取得进展,我也会在文档中增加相关章节。

@Ed_Bobkov 正如 @davidkingham 友好地提到的,Pavilion 仅会在每月的第一周更新我们的插件,以适配最新版本的 Discourse。

不过,为了提供帮助,我已经对本插件进行了必要的修改,使其能够与最新版本的 Discourse 兼容。您现在可以在 https://try.thepavilion.io 的最新 Discourse 上查看其运行效果。

6 个赞

我之前不知道这一点。谢谢!

2 个赞

我不确定是否是插件组合导致了我的问题,但当我在设置中停用该插件时,出现了 500 错误,即使启用了安全模式也无法进行任何操作。

如果您遇到此问题,请不要担心,进入终端,连接到您的服务器并执行以下命令:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.multilingual_enabled = true

如果您的论坛恢复正常,请执行三次 exit 命令以安全关闭终端。

仅供参考 - 已安装的插件
      - git clone https://github.com/discourse/discourse-akismet.git
      - git clone https://github.com/discourse/discourse-solved.git
      - git clone https://github.com/discourse/discourse-assign.git
      - git clone https://github.com/discourse/discourse-chat-integration.git
      - git clone https://github.com/discourse/discourse-adplugin.git
      - git clone https://github.com/discourse/discourse-calendar.git
      - git clone https://github.com/discourse/discourse-translator.git
      ## 非官方插件
      - git clone https://github.com/paviliondev/discourse-multilingual.git
      - git clone https://github.com/Ebsy/discourse-nationalflags.git
      - git clone https://github.com/jannolii/discourse-topic-trade-buttons.git

编辑:删除“多语言禁用内容标签”标签组是否安全?

当我想创建新主题时,这些标签会首先出现在列表中,这不太方便(尽管,我有时可能会被标签设置搞糊涂,可能漏掉了某些设置)

5 个赞

如果可以的话,我很想仔细查看一下您的网站,了解那里的情况(如果您愿意,请私信我)。

是的,请使用该截图右下角的控制选项(这些选项由插件添加)。

3 个赞

有点奇怪,点击右下角的按钮没有任何反应。

它们可以逐个删除,不过我会先发送我的凭证给你,以便你检查一些情况。除此之外插件运行正常,所以问题不大。

1 个赞

我正在寻找一种方法,让我的用户能够阅读帖子和回复的自动翻译。

我已安装了 discourse-multilingual 和 discourse-translator 两个插件。

我已为 discourse-multilingual 启用了所有选项。

同时,我为 discourse-translator 启用了内联翻译,并添加了 Azure 订阅密钥(此截图中的密钥已重新生成)。

为了简化设置,我限制了多语言支持的语言范围。但系统却提示我所有已禁用的语言都存在“标签冲突”,我不知道原因(点击相关链接会加载 404 页面)。


此外,discourse-multilingual 的翻译内容为空,我也不知道原因。

我还启用了全部三项用户语言区域设置。

但我在任何地方都看不到翻译其他用户内容的选项。没有额外的按钮、页眉或页脚。

我可能遗漏了什么?

我在正在运营的论坛中检查了设置,我使用了 Google API 进行翻译,一切正常。我的猜测是这个插件本身没有问题。

我看到有两个可能的原因:

  • 翻译 API 无法检测语言,因此无法提供翻译建议。我建议用另一种语言发布一个非常简短的新话题。
  • 订阅密钥可能有问题。你可以查看 /logs 日志,看看是否有相关报错。

不过,标签冲突的问题确实很奇怪。在我的论坛(最新版本)上,一切运行正常(关于访客语言切换器的页眉/页脚问题已有人报告)。你应该检查标签页面(/tags),看看 content_languages 标签是否有异常,或者在标签组页面(/tag_groups)更新所有标签。

1 个赞

我使用此插件翻译分类和子分类名称,它运行正常,但在子分类以方块形式显示时,子分类名称无法翻译。

我注意到在 category-title-link.hbs 中,代码为:

<span class="category-name">{{dir-span category.name}}</span>

而在 categories-boxes.hbs 中:

<a class="parent-box-link" href={{c.url}}>
            <h3>
              {{#if c.read_restricted}}
                {{d-icon "lock"}}
              {{/if}}
              {{c.name}}
            </h3>
          </a>

我该如何覆盖 categories-boxes 模板,使其在方块显示模式下也能正常工作?

2 个赞

我不太明白,categories-boxes 和 category-title-link 这两个组件是如何获取类别名称数据的。
这两个组件在获取类别名称数据方面有什么区别?

我找到了。将 categories-boxes.hbs 修改为以下内容:

<a class="parent-box-link" href={{c.url}}>
     <h3>
        {{category-title-link tagName="span" category=c}}
    </h3>
</a>

直接使用这个 category-title-link 组件作为分类标题即可,它有效。:joy::joy::joy::joy::joy:

2 个赞

你好,有没有使用此插件的实际运行论坛案例?我想了解它具体是如何工作的。

此外,我还想了解一下,是否可以根据不同语言将用户引导至不同的链接。

2 个赞

有人在使用当前版本的 Discourse 和多语言插件时遇到 tags 相关的问题吗?

如果能只提取出排除特定语言区域的部分就太好了,因为这是我论坛的需求,但我不打算使用插件的其他功能。

4 个赞

遇到了同样的问题。该插件使用了旧的标签根路径。关闭该插件后问题已解决。

1 个赞

大家好,感谢你们的耐心等待。

@anon20593648 @Ed_Bobkov 我已更新插件以适配新的标签路由。

这些功能在文档中都有详细介绍,并附有示例:

如果你对其中某个功能有具体问题,请在相关主题中发帖,我会跟进回复。

7 个赞

@angus,你好!如何为自定义用户字段添加翻译?

3 个赞

在我们的讨论论坛中,我们使用多语言界面来选择要在用户个人资料页面显示的语言。我们仅在用户个人资料页面显示所选语言,即:
阿拉伯语
英语
法语
德语
葡萄牙语
罗马尼亚语
俄语
西班牙语

从多语言界面选择上述语言后,点击“保存更改”按钮时,系统会显示“内部服务器错误”。
但我们发现数据已保存到数据库中。然而,三天后检查时发现,之前选中的值在多语言界面中已被取消选择(/admin/multilingual/languages)。
目前仅显示默认值,如英语、法语、西班牙语、英国英语。未发现与此相关的任何错误日志。
有人遇到过类似问题吗?请提供建议。

1 个赞

嘿,我下周一开始会专注于这个插件,到时候再回答你的问题:+1:

3 个赞

感谢您的回复。

1 个赞

我不确定这是否是提问的最佳地点,但我认为这与插件直接相关:

在我们的新论坛(https://forums.sociocracyforall.org)上,我刚刚启用了多语言插件,它大部分功能运行良好,但存在以下问题:

  1. 当我尝试更改在启用插件之前发布的帖子的语言标签时,无法操作,会收到 500 错误。无论是我自己的帖子还是他人的帖子,都会出现此问题。

请问有什么原因以及解决方法吗?

  1. 我注意到,未输入语言标签时显示的警告信息对最终用户来说有些晦涩难懂。

  2. 内容语言选择并未以界面语言(在此情况下为西班牙语)显示 :stuck_out_tongue:
    这是因为尚未翻译,还是有其他原因?

如果讨论这些问题的最佳地点不是本线程(例如 GitHub),请告诉我 :slight_smile:
编辑:我刚刚在 GitHub 上为每个问题创建了议题:Issues · paviliondev/discourse-multilingual · GitHub

1 个赞