Discourseサイトテキスト翻訳:グループによる変更を許可

グループのテキスト編集を管理者以外にも有効にできるかどうか疑問に思っています。少なくともモデレーターには?

コミュニティで異なるトーンを使用し、独自の言葉でユーザーとの関係を締めくくりたいと考えています。

「いいね!」 2

他のユーザーが作成した投稿を編集する権限をグループに付与するには、サイト設定の Edit all post groups を変更します。これはお探しのものですか?

「いいね!」 1

こんにちは、返信ありがとうございます。Discourseのテキスト編集(ローカライゼーション、言語文字列)を有効にしたいと考えています :slight_smile:

現在、管理者のみに有効になっていると理解していますが、モデレーター/エディターにとってより実現可能な機能だと思います。

「いいね!」 1

明確にしていただきありがとうございます。これは現在不可能です。

興味のある方、知識のある方のために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. セキュリティ

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