piapia123
ja

構造化ファイルの翻訳

変換

このツールはネットワーク照会を行います。入力は第三者サービスへ送信され、当サイトのサーバーは経由しません

ファイルをここにドロップ、またはクリックして選択。下の欄に貼り付けても構いません

対応する拡張子:JSON · JSONL · YAML · CSV · TSV · SRT · WebVTT

翻訳後のファイル

言語ファイル・設定ファイル・字幕ファイルを入れて言語を選び、「翻訳」を押すだけです。翻訳されるのは文字列の値だけで、キー名・フィールドの順序・CSV の見出し・字幕のタイムラインは 1 バイトも動きません。ファイル全体を翻訳にかけると `"Save"` のようなキー名まで翻訳され、プログラムがそのキーを二度と取得できなくなります —— この種のツールの典型的な壊れ方です。 テキストは第三者の翻訳サービスに送信されます(ページタイトルの下の注記のとおりです)。 翻訳の前に「プレビュー」。 プレビューは 1 件もリクエストを送らず、「48 件・1234 文字を送信、12 件をスキップ」と報告し、どの文字列が送られるかを一件ずつ並べます。無料枠は文字数で数えられるので、先に確認してから決められます。キー名が混ざっていないことをその場で確かめる機会にもなります。 同じ文字列は一度しか送りません。 言語ファイルでは `"Save"` が何十回も現れます。出現ごとに翻訳すると枠を何倍も消費するうえ、同じ語が場所によって別々の訳語になってしまいます。 書式について:出力は構造として等価ですが、一字一句同じではありません —— コメントは失われ(JSON と CSV にはもともとコメントがありませんが YAML にはあります)、引用符のスタイルが変わることがあり、JSON は選んだインデントで書き直されます。これは知っておく価値があるので、FAQ でもう一度書いています。

機能

  • 7 形式に対応:JSON・JSONL・YAML・CSV・TSV・SRT・WebVTT(自動判別も可)
  • 翻訳するのは文字列の値だけ:キー名・フィールド順・CSV の見出し・字幕のタイムラインは 1 バイトも動きません
  • 同じ文字列は一度だけ送信(重複除去してから翻訳するので枠を節約でき、同じ語の訳語も揃います)
  • URL・メール・サイト内パス、および値そのものが変数やプレースホルダーのもの({name}・%s・$1)は既定でスキップ。どちらもスイッチで解除できます
  • 翻訳する内容がない値(数字のみ・記号のみ)は自動的に飛ばします
  • 翻訳前に「プレビュー」:何件・何文字を送り、何をスキップするかを報告します。リクエストは送りません
  • 一件ずつ翻訳するので進捗を表示します(48 件中 12 件)。数十秒の待ちが固まったように見えません
  • ファイルをドロップするか内容を貼り付け。翻訳後はコピーまたはダウンロードでき、拡張子は形式に合わせます
  • エンジンは無料の MyMemory、またはご自身の Azure キー(キーはこのブラウザー内にのみ保存し、送信しません)
  • 結果に、判別した形式・翻訳した件数・送信した文字数とリクエスト数を表示します

使い方

  1. 言語ファイル・設定ファイル・字幕ファイルを上の枠にドロップするか、左に内容を貼り付けます
  2. 原文の言語と訳文の言語を選びます。ファイル形式は既定で自動判別です
  3. 「プレビュー」を押し、何件・どの文字列が送られるかを確認します
  4. 「翻訳」を押し、進捗が終わるまで待ちます
  5. 右に翻訳後のファイルが出ます。コピーまたはダウンロードできます

よくある質問

ファイルは誰に見られますか?
選んだ翻訳サービス(MyMemory または Azure)に送信され、当サイトを経由しません —— このサイトは完全に静的なので、データに触れるサーバーがありません。ただし内容は端末の外に出ますので、機密性の高い内容にはオンライン翻訳を使わないでください。
キー名も翻訳されますか?
いいえ。これが「ファイル全体を翻訳にかける」との決定的な違いです。`{"Save": "Save the file"}` の場合、右側の値だけが置き換わり、左側の `"Save"` はそのまま残ります。キー名が翻訳されるとプログラムはそのキーを二度と取得できず、しかもそれは実行時に初めて壊れます。CSV の 1 行目は見出しとして扱い、同じく翻訳しません。
翻訳後のファイルが元と見た目が違うのはなぜですか?
値を書き戻したあとにシリアライズし直すためです。構造は等価で値も正しいのですが、書式は各形式の決定的な書き方で作り直されます —— YAML のコメントは失われ引用符のスタイルが変わることがあり、JSON は選んだインデントで並べ直され、CSV は CRLF と引用符つきの書き方に統一されます。JSON と CSV はもともとコメントがないぶん影響が最も小さいです。「元の書式を一字一句保つ」ことは不可能で、このツールはできたふりをしません。
翻訳されない値があるのはなぜですか?
3 種類をスキップしています:URL・メール・サイト内パスに見える値、値そのものが変数やプレースホルダーのもの(`{count}`・`%s`・`$1`)、そして文字が 1 つも含まれないもの(`123`・`---`)です。最初の 2 つは上のスイッチで解除すれば翻訳できます。既定でスキップするのは、翻訳サービスが `{count}` を別の書き方に変えてしまうとプログラムが壊れ、その原因をたどるのが非常に難しいからです。
TOML と INI に対応していないのはなぜですか?
それらのファイルの値はほとんどがパス・スイッチ・識別子で、翻訳が必要なものはごくわずかです。一方で対応形式を増やすほど「シリアライズ後に元のファイルと見た目が変わる」危険も増えます。どうしても必要な場合は、先にTOML 変換で JSON にしてからお使いください —— そのほうが確実です。
字幕のタイムラインは変わりますか?
変わりません。SRT と WebVTT は本文だけを翻訳し、キュー番号・タイムスタンプ・キューの設定はすべてそのまま保持します。タイムライン全体を秒単位でずらしたり係数で伸縮したりする場合は字幕変換をお使いください。
無料枠はどう数えられますか?
MyMemory の匿名枠は文字数で数えられ、1 日単位でリセットされます。このツールは送信前に重複除去とスキップを行うため、実際に異なる文字列だけが計上されます —— `"Save"` が 50 回現れる言語ファイルでも 1 回分です。「プレビュー」を押せば、今回実際に何文字送るかが分かります。
「オンライン翻訳」との違いは何ですか?
あちらはテキストの一節を翻訳します —— 貼ったものがそのまま翻訳されます。こちらはファイルを翻訳します。まず解析し、翻訳すべき値だけを取り出し、元の構造に書き戻します。言語ファイル・設定・字幕にはこちら、段落やメールにはオンライン翻訳をお使いください。

関連ツール