公開日:
v1.3.0 で導入したカスタムプロンプト機能を、独自オブジェクトとして再設計しました。プロンプトをシステム共通のライブラリとして登録・選択する形になり、複数のフィールドや設定で同じプロンプトを使い回せます。また、翻訳対象フィールドの拡充、AI 呼び出しタイムアウト延長、エラー表示の改善も含まれています。
カスタムプロンプトを 独立した管理画面で一元管理 できるようになりました。
manage_ai_translator_prompts) が追加されました。スーパーユーザーまたは本権限を持つユーザーのみがプロンプトを編集できます。サイト管理者は「選んで使う」だけが可能です翻訳設定の編集画面で、長文 textarea ではなく select ドロップダウン からプロンプトを選択する形に変わりました。
これまで single_line_text / multi_line_text / tags のみが翻訳対象でしたが、以下を追加しました。
フィールド型 | 動作 |
|---|---|
| テキスト翻訳 |
| テキスト翻訳 |
| 同一カテゴリーセットを参照しているフィールド間でカテゴリー ID をコピー |
カテゴリーは ID 参照のため翻訳されません。ソース/ターゲットフィールドが同じカテゴリーセットを参照している場合のみ、選択中のカテゴリーがコピーされます。
各プロバイダ (ChatGPT / Gemini / Claude) の HTTP クライアントのタイムアウトを 120 秒 → 300 秒 に延長しました。長文や複雑な HTML を含むコンテンツの翻訳で、応答待ちのタイムアウトが発生しにくくなります。
Web サーバ/リバースプロキシ側のタイムアウト(Apache
ProxyTimeout/ Nginxproxy_read_timeout等)が短く設定されている環境では、引き続き 504 Gateway Timeout が発生する可能性があります。複雑なコンテンツを翻訳する場合は、サーバ側設定の見直しもご検討ください。
JS 側で翻訳リクエストが失敗したときの alert メッセージに、HTTP ステータスコード を含めるようにしました。
既存翻訳の確認に失敗しました。 (HTTP 504 Gateway Timeout)
ライセンスが認証されていません… (HTTP 403 Forbidden)
サーバ側エラー (4xx) とインフラ側タイムアウト (5xx) を切り分けて把握できます。
翻訳可能フィールドの判定を 3 箇所に散らばっていたインライン条件から、Translator.pm の定数 @TRANSLATABLE_TEXT_TYPES / @RELINKABLE_REFERENCE_TYPES 経由に統一しました。将来フィールド型を追加する際は 1 箇所の編集で済みます。
v1.3.0 で報告された、<img> や <!-- ... --> 等を含む長文プロンプトを保存するとフィールドマッピング UI が消える不具合を根治しました。原因は JSON::decode_json が MT::Object 由来の Perl 内部文字列 (UTF-8 flag 立ち) を扱えず「Wide character」エラーで silent fail していたことです。JSON::from_json (utf8=0 モード) に統一して解消しました。
v1.4.0 では本問題の発生経路自体(フィールドマッピング JSON へのプロンプト直接埋め込み)が無くなったため、再発の余地もありません。
checkExisting の catch 句でエラー内容を握りつぶしていた箇所を修正し、サーバから返るエラーメッセージが正しく表示されるようにdefault_prompt 文字列カラムへの上書き処理を撤去(プロンプトはオブジェクト参照に統一)translation_config に default_prompt_id (INT, NULL 可) を追加、新規テーブル mt_ai_trans_prompt を作成(schema_version 1.0006 → 1.0008)default_prompt(テキストカラム)および field_mapping JSON 内の inline prompt フィールドは、初回起動時に自動的に AITranslator::Prompt オブジェクトとして抽出され、ID 参照に置換されます。同一内容のプロンプトは集約され、重複は作られませんmanage_ai_translator_prompts を権限編集画面で付与可能。administer 権限保持者には自動付与されますTranslator.pm::_resolve_prompt がインラインプロンプトの読み出しをフォールバックします。翻訳動作は継続されますdefault_prompt / inline prompt を含む翻訳設定がある環境では、アップグレード後に AI翻訳プロンプト一覧 をご確認ください。「Imported prompt」「Default prompt for [設定名]」といった名前で自動移行されています