mattdm
(Matthew Miller)
1
管理インターフェースを使用して、多くの Discourse 文字列を変更しました。手っ取り早く 非英語バージョンは無視しました。もちろん、それらは同期していません。
Fedora では、コミュニティ主導の翻訳に Weblate を使用しています。(https://translate.fedoraproject.org/ を参照)。これを連携させたいと考えています。理想的には、管理インターフェースで英語の文字列が更新されると Weblate に送信され、翻訳が完了すると戻ってくる、完全に自動化されたワークフローです。
これを達成するための最善の方法は何でしょうか?
「いいね!」 2
Danielle
(Danielle Lloyd)
4
API を使用したインテグレーションを実装します。具体的には以下のようになります。
- Discourse で新しいオーバーライドをポーリングする(Webhook なし)
- Weblate から新しい翻訳を Discourse サイトにプッシュする
これが予備的な概要です。現在の API は固定量の翻訳オーバーライドしか返さないため、既存の制限を定量化することを検討しています。つまり、機能させるためにはその API エンドポイントに変更を加える必要があります。
「いいね!」 1
mattdm
(Matthew Miller)
5
ポーリングは問題ないようです。翻訳はすぐに完了するわけではありません。しかし、ポーリングの仕組みは、何らかの方法で状態を追跡する必要があるのでしょうか?ステートレスである方が良いのですが…。
「いいね!」 2
gerhard
(Gerhard Schlager)
8
サイトで何も追跡する必要はありません。ステートレスで実装できるはずです。
- ポーリングするには、サイトの次のパスに
GET リクエストを送信する必要があります。
/admin/customize/site_texts.json?locale=en&overridden=true&page=0
locale パラメータを必要に応じて調整してください。API は最大 50 件の結果を返し、ページネーション (page パラメータ) をサポートします。
結果がさらにある場合、JSON には { "extras" : { "has_more" : true } } が含まれます。
- 翻訳オーバーライドの更新は、次のパスに
PUT リクエストを送信することで機能します。
/admin/customize/site_texts/<id>
<id> を翻訳したい文字列の ID に置き換えてください。例: 「js.user.username.instructions」。
PUT リクエストのペイロードはフォームデータ (Content-Type: application/x-www-form-urlencoded; charset=UTF-8) である必要があり、次の属性を含める必要があります。
site_text[value]: 翻訳
site_text[locale]: ロケール、例: 「en」
基本的に、Customize Text 管理インターフェースが使用するのと同じ API コールを使用する必要があります。
「いいね!」 4
system
(system)
クローズされました:
9
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.