逐語翻訳デスク(Complete Translation Desk)
¥0
「逐語翻訳デスク」は、Gemini 2.5 Flash APIを利用して長文テキストを省略・意訳なしで完全翻訳するためのシングルページWebツールです。PDFなどから抜き出した長文原稿を貼り付けると、指定した文字数でチャンク(分割単位)に自動分割し、各チャンクを順次Gemini APIに送信して翻訳、進捗状況と段落数の整合性チェックを表示しながら結果を結合し、最終的にWord用の.docファイルとしてダウンロードできます。APIキーはブラウザのタブ内メモリにのみ保持され、外部への保存は一切行われません。
単一のHTMLファイルで完結しており、外部依存はGoogle Fonts(Noto Sans JP / JetBrains Mono)のみです。画面は左右2カラムのグリッドレイアウトで、左に「設定」パネル、右に「原文入力・実行・結果表示」パネルが並びます(860px以下ではは1カラムに切り替わるレスポンシブ対応)。
splitIntoChunks / splitLargeBlock)原文を空行(ns*n)区切りで段落単位に分割し、指定チャンクサイズを超えない範囲で段落をまとめていきます。1段落だけでチャンクサイズを超える巨大な塊がある場合は、splitLargeBlock関数が行単位でさらに分割し、それでも1行が長すぎる場合は文字数で強制分割するという、3段階のフォールバック構造になっています。
callGemini)gemini-2.5-flash固定。generationConfigではtemperature: 0.1(訳の安定性重視)とthinkingBudget: 0(Gemini 2.5 Flashの内部思考トークンを無効化し、maxOutputTokensの枠を本文出力に全振りする)が設定されています。これはコード内コメントにある通り、Thinkingが原因で本文出力前にトークン上限(MAX_TOKENS)に達してしまう問題への対策です。safetySettingsは4カテゴリすべてBLOCK_ONLY_HIGHに緩和されており、差別・ヘイト等の語を含む調査資料のような翻訳対象を安全フィルターが誤って途中省略しないよう配慮されています。チャンクごとに「チップ」と呼ばれる小さなステータス表示が並び、以下の状態遷移を視覚化します。
| 状態 | 表示 | 意味 |
|---|---|---|
| pending | 半透明 | 未処理 |
| working | 黄色系 | 翻訳中 |
| ok | 緑系 | 原文と訳文の段落数が一致 |
| warn | オレンジ系 | 段落数不一致、または出力トークン上限で途中終了(MAX_TOKENS) |
| err | 赤系 | 安全フィルター等でブロック、または通信失敗 |
段落数チェックはcountParagraphs(空行区切り段落数のカウント)により原文・訳文を比較する簡易的な目安であり、フッターにも「警告が出たチャンクは原文と見比べて確認してください」との注意書きがあります。
全体の進捗は上部のプログレスバーと「◯/◯ 完了(◯%)」のテキストでリアルタイム表示されます。
navigator.clipboardで訳文全体をクリップボードにコピー(失敗時はexecCommand('copy')にフォールバック)。<p>タグに変換したHTML文書を生成、MS Word互換のHTML形式(application/msword)でBlob化してダウンロードします。フォントは明朝体(Yu Mincho / MS Mincho)、フォントサイズ11pt、行間1.8で指定されており、そのまま印刷・提出用の文書として扱いやすい体裁になっています。長文の外国語資料(調査レポート、論文、規約文書など)を、意訳による情報の欠落を避けて日本語(または他言語)に「逐語的に」変換したい場面を想定したツールと考えられます。段落数チェックやfinishReasonの監視など、LLM翻訳にありがちな「知らないうちに一部が省略される」リスクに対する検証機構が随所に組み込まれている点が特徴です。
埋め込むにはこの URL をコピーして WordPress サイトに貼り付けてください
埋め込むにはこのコードをコピーしてサイトに貼り付けてください