こんにちはチーム、
AI 翻訳機能の現在の動作について理解を深めたいと考えています。また、最近のバージョンで設定の変更や移行が行われたかどうか確認したいです。
当初、AI 翻訳機能を設定した際、設定ページには**「翻訳対象のカテゴリ」**というフィールドがあり、その説明は以下の通りでした。
選択されたカテゴリ内のコンテンツのみが翻訳されます。サブカテゴリは別途追加する必要があります。
この設定を使用して、翻訳の範囲を限定しました。
しかし、現在の設定を確認すると、代わりに**「除外カテゴリ」**というフィールドが表示されています。
これにより、いくつかの疑問が生じます。
設定の変更
AI 翻訳機能は、**「翻訳対象のカテゴリ」モデルから 「除外カテゴリ」**モデルに変更されたのでしょうか?
もしそうであれば:
自動移行は行われましたか?
既存のカテゴリ選択はどのように変換されましたか?
現在の設定が自動で移行されたのか、手動で変更されたのかを判断する方法はありますか?
翻訳の範囲
現在、「翻訳進捗」ページには以下が表示されています:
バックフィル設定により、2018 年 3 月以降のすべての投稿が翻訳されるように設定されています。
このメッセージはどのように解釈すべきでしょうか?
これは以下のいずれを指すのでしょうか:
フォーラム内のすべての投稿、
除外カテゴリを除くすべての投稿、
それとも他の翻訳範囲でしょうか?
コスト計算
また、AI 翻訳機能のコストがどのように発生するかについて、より深く理解したいと考えています。
具体的には:
バックフィル中に投稿が翻訳された際、翻訳されたコンテンツは保存され再利用されますか?
それとも、ユーザーが翻訳されたコンテンツにアクセスするたびに新しい翻訳リクエストが生成されますか?
コストに寄与する要因は:
バックフィル操作、
新しく作成されたコンテンツ、
ユーザーが翻訳されたコンテンツを閲覧すること、
それらの組み合わせでしょうか?
レポーティング
以下の情報を特定する方法はありますか:
現在翻訳されているカテゴリ、
カテゴリごとに翻訳された投稿数、
最も大きな翻訳コストを生み出しているカテゴリ。
過去の設定である**「翻訳対象のカテゴリ」と、現在の 「除外カテゴリ」**の両方を示すスクリーンショットをご用意しており、必要であれば提供可能です。
ご協力ありがとうございます。
Moin
2026 年 6 月 11 日午後 2:21
2
はい、移行が行われました。
pmusaraj:
この変更により、特定のトピックのみを翻訳対象とする機能は引き続き利用可能です。ただし、初期の実装とは異なり、Discourseはデフォルトですべてのコンテンツを翻訳するようになり、カテゴリを翻訳から除外するためのai_translation_excluded_categoriesサイト設定が利用可能になりました。
既存のコミュニティは自動的にこのシステムに移行されているはずです。問題が発生した場合はお知らせください。
移行では、フォーラム上のすべてのカテゴリのリストを取得し、翻訳可能なカテゴリ設定で構成されていたカテゴリを除外しました。残りのカテゴリは新しい「除外されるカテゴリ」設定に保存され、既存の翻訳動作が維持されました。
スタッフアクションログで、設定に対する手動変更を確認できます。特定の設定に対する変更でフィルタリングすることができます(URLはhttps://forum.example.com/admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22ai_translation_excluded_categories%22%2C%22action_name%22%3A%22change_site_setting%22%7Dのような形式です)。
投稿の翻訳はデータベースに保存されるため、同じコンテンツは一度だけ翻訳されます。
データエクスプローラーを使用して、フォーラム上の翻訳に関するより詳細なデータを取得できます。
以下のクエリは、AI翻訳から除外するよう構成されたカテゴリを除く、フォーラム上のすべてのカテゴリを返します:
SELECT c.id as category_id, c.name
FROM categories c
WHERE c.id NOT IN (
SELECT unnest(string_to_array(value, '|')::integer[])
FROM site_settings
WHERE name = 'ai_translation_excluded_categories'
)
ORDER BY c.id
Moin
2026 年 6 月 11 日午後 2:35
3
他の質問にはデータエクスプローラーもご利用いただけます
これがご希望の内容でしょうか?
SELECT
c.id AS category_id,
COUNT(DISTINCT pl.post_id) AS translated_posts,
COUNT(DISTINCT pl.locale) AS languages,
COUNT(*) AS total_translations
FROM post_localizations pl
JOIN posts p ON p.id = pl.post_id
JOIN topics t ON t.id = p.topic_id
JOIN categories c ON c.id = t.category_id
GROUP BY c.id, c.name
ORDER BY total_translations DESC