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. セキュリティ

    • オーバーライドされたコントローラーのアクションとルートで権限を再確認します。クライアントサイドのチェックを絶対に信頼しないでください。