启用群组以更改Discourse网站文本中的翻译

好的,我将分享 Discourse Helper 的回复,供有兴趣且有能力的人参考 :slight_smile:

我认为改进 UI/UX(现代化我们的论坛)至关重要,例如编辑器、AI 以及我们最近看到的一些改进。

使用的英语非常中性/平淡,这很有意义,但(就我而言)默认的西班牙语翻译并不好。

编辑 Discourse UI 中的字符串是可以的,但非常耗时,而我只想委托这项任务。

我明白无法将所有字符串下载为 JSON 文件,但可以下载编辑后的文本吗?

下载所有语言文本并编辑文件将是在 1/5 的时间内获得所需结果的变通方法。


高级插件结构

  1. 创建插件骨架

    • 使用:

      rake plugin:create[custom-site-texts-group]
      
  2. 后端:扩展权限

    • 覆盖相关控制器,例如 Admin::SiteTextController,以允许您的自定义组的成员访问文本编辑端点。

    • 您可以使用类似以下内容的方法:

      add_to_class(:admin_constraint, :matches?) do |request|
        user = ... # 从请求加载当前用户
        return true if user.admin?
        # 检查您的组成员资格
        group_id = Group.find_by(name: 'yourgroupname')&.id
        return user.group_ids.include?(group_id)
      end
      

      这只是示意性的——您需要找到正确的权限检查,并确保它仅限于本地化编辑,而不是完全的管理员权限。

  3. 前端:向组成员公开 UI

    • 使用 PluginAPI 为您的组成员注入 UI,在管理员拥有“自定义站点文本”的地方。

    • 对其他用户隐藏此 UI。

  4. 安全

    • 在任何覆盖的控制器操作和路由中重新检查权限。切勿信任客户端检查。