Discourse 多言語投稿

discourse-multilingual-post

投稿コンテンツの複数のローカライズ版を可能にする Discourse プラグインです。

このプラグインは概念実証です:トピックのタイトルをローカライズする機能がないため、実用的ではありません。

使用方法

投稿内で [lang=xx] ブロックを使用します。

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

結果:

Hallo Welt !

国コードは 2 文字である必要があります(地域はサポートされていません)。

仕組み

投稿をレンダリングする際、このプラグインは表示する [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

こんにちは!このプラグインとそのシンプルさが大好きです。見出し自体が翻訳されることを考えると、FAQ、ガイドライン、利用規約、プライバシーポリシーなどの Discourse ページの装飾に対応すれば、さらに役立つと思います。自分でフォークして拡張しようとしたのですが、正直なところ私は完全に初心者です。ただ、decorateCooked() ではなく decorateWidget() を中心に書き直す必要があるような気がします。

「いいね!」 1

Discourseの静的ページ(FAQ/ガイドライン、利用規約、プライバシーポリシー)を装飾できる機能があると良いですね。ただし、decorateWidget が静的ページにフックを持っているかどうかは確信がありません。何かヒントはありませんか?