このページはJavaScriptを使用しています。JavaScriptを有効にして対応ブラウザでご覧下さい。

DOCUMENTSドキュメント

MT Translator

はじめに

MT Translatorは、多言語サイト制作の作業を大幅に軽減するプラグインです。 Excelで作成した翻訳辞書ファイルを記事/ウェブページ編集画面からアップロードすることで、翻訳元言語から対象言語へテキストを差し替えることができます。 また、Google Cloud Translation APIキーや、DeepL APIキーを使用した翻訳も可能です。

※ OpenAIでの翻訳にも対応しておりますが、現在はβ版となりますのでご了承ください。

対応バージョン

  • Movable Type 8 / 9
  • Movable Typeクラウド版
  • Movable Type for AWS

このプラグインの利用、及び著作権や保証について

このプラグインの著作権は株式会社COLSISが所有しています。著作権者の許可なく本プラグインを使用、改変、再配布することはできません。

主な機能

ウェブサイト複製機能

ウェブサイトおよび配下のブログを全て複製します。

対訳プレビュー機能

翻訳元言語と翻訳対象言語の両記事を一画面に表示して確認することができます。

翻訳履歴参照機能

過去にアップロードした翻訳辞書ファイルの履歴を参照、ダウンロードします。また、アップロード時点でのテキストの差分を確認することもできます。

翻訳辞書ファイルダウンロード機能

記事/ウェブページの内容を翻訳辞書ファイル(Excel)としてダウンロードします。

翻訳辞書ファイル一括ダウンロード

ウェブサイト/ブログ内の全記事/ウェブページの翻訳辞書ファイル(Excel)を一括でダウンロードします。

翻訳辞書ファイル一括アップロード

複数の翻訳辞書ファイル(Excel)を一括でアップロードし、翻訳します。

リンクパス置換機能

翻訳元記事/ウェブページに含まれるリンクのパス部分を指定した文字列で置換します。

翻訳対象フィールド指定機能

記事/ウェブページ/コンテンツデータにおいて翻訳対象となる入力フィールドを指定することができます。デフォルトでは、タイトル(title)、本文(text)、続き(text_more)が対象となっています。

マルチバイト文字チェック機能

翻訳対象の入力フィールドにマルチバイト文字が残っているかどうかをチェックし、警告を表示することができます。

新規記事/ウェブページの複製機能

翻訳元のウェブサイトから複製を作成後に、翻訳元ウェブサイト/ブログに記事/ウェブページを追加した場合、複製サイト側にもその複製を追加することができます。

Google Cloud Translation APIのサポート

Google Cloud Translation APIを利用して、記事/ウェブページの翻訳、ウェブサイト/ブログ単位での一括翻訳を行うことができます。

DeepL APIのサポート

DeepL APIを利用して、記事/ウェブページの翻訳、ウェブサイト/ブログ単位での一括翻訳を行うことができます。
Pro版、Free版のどちらでもご使用可能です。
文字数の制限などはDeepLのサイトよりご確認ください。

カスタム翻訳機能

翻訳対象文字列の抽出およびその翻訳を外部プラグインで実施することができます。

共通辞書機能

システムで共通の辞書を持つことができます。固有名詞など訳語を統一したい場合などに利用できます。

記事/ウェブページ一覧画面から一括翻訳機能

一覧画面からGoogle Cloud Translation API、DeepL APIを利用しての一括翻訳を行うことができます。

OpenAI翻訳機能

OpenAIを利用して、記事/ウェブページの翻訳、ウェブサイト/ブログ単位での一括翻訳を行うことができます。

OpenAIでの翻訳にも対応しておりますが、現在はβ版となりますのでご了承ください。

インストール

Zipアーカイブファイルを展開すると、以下のフォルダが作成されます。

Translator
├── README.html
├── mt-static
│   └── plugins
│       └── Translator
├── plugins
    └── Translator
        ├── extlib
        ├── lib
        ├── tmpl
        └── Translator.pl

「Translator/plugins/Translator」ディレクトリをMTのプラグインディレクトリへコピーしてください。また、「Translator/mt-static/plugins/Translator」ディレクトリをMTのインストールディレクトリの直下にある、「mt-static/plugins」ディレクトリへコピーしてください。

使い方

MT Translatorでサイトを翻訳する場合、以下の手順で行います。

  1. 翻訳元ウェブサイトのプラグイン設定を行う
  2. 翻訳元ウェブサイトを複製する
  3. 翻訳対象ウェブサイトのプラグイン設定を行う
  4. 翻訳辞書ファイルをダウンロードする
  5. 翻訳辞書ファイルを編集する
  6. 翻訳辞書ファイルをアップロードする
  7. 翻訳対象ウェブサイト全体を再構築する

ここまでで、一通り翻訳されたサイトが出来上がります。

その後、必要に応じて各記事/ウェブページごとに、

  • 翻訳内容を確認する。
  • 修正した翻訳辞書ファイルを再度アップロードする。

などの作業を行います。

以降では、日本語から英語のウェブサイトの作成を例に説明していきます。

1.翻訳元ウェブサイトのプラグイン設定を行う

翻訳元となるウェブサイトのプラグイン設定画面を開き、以下の項目を設定します。

プラグイン有効化

プラグインを有効にします。

種類

現在設定を行っているウェブサイト/ブログを翻訳元として指定します。

使用言語

現在設定を行っているウェブサイト/ブログの言語をISO 639-1コードで指定します。ここでは "ja" を指定します。

カスタム翻訳対象フィールド・カスタム翻訳対象コンテンツフィールド

追加のカスタムプラグインを利用する際に使用します。(基本機能では利用しません。)

翻訳元のウェブサイト以下に複数のブログが存在する場合は、同様の設定をそれぞれのブログに対しても行います。

2.翻訳元ウェブサイトを複製する

翻訳元ウェブサイトのプラグイン設定画面を開き、ウェブサイトの複製ボタンを押下するとダイアログが表示されますので、複製するウェブサイトに必要な情報を入力します。

ウェブサイト名

新たに作成されるウェブサイト名を入力します。

ウェブサイトURL

新たに作成されるウェブサイトのURLを入力します。

ウェブサイトパス

新たに作成されるウェブサイトのパスを入力します。

アップロードパス

辞書ファイルをアップロードするファイルパスを指定します。ドキュメントルート以下のパスは指定しないでください。

置き換えるパス

AタグのHREF属性の最初のパスを置き換えます。対象となるパスと新しいパスをカンマで区切って指定します。カンマなしでパスを1つだけ指定した場合、パスの先頭に追加されます。

除外する文字

マルチバイト文字のチェック時に除外する文字を列挙します。

翻訳対象フィールド

記事/ウェブページ/コンテンツデータにおいて翻訳の対象となる入力フィールドをカンマ区切りで指定します。

翻訳対象フィールドの設定値
項目名 設定での記述
タイトル title
本文 text
続き text_more
概要 excerpt
キーワード keywords
カスタムフィールド カスタムフィールドのベースネーム
コンテンツデータ 入力フィールドのフィールド名を入力

日本語の場合は日本語のまま

Google Cloud Translation APIキー

Google Cloud Translation APIを利用する場合は、APIキーを入力します。

DeepL APIキー

DeepL APIを利用する場合は、APIキーを入力します。

続けて複製ボタンを押下すると、複製が開始され、進捗が表示された後、完了しますので、閉じるボタンを押下してダイアログを終了します。

3.翻訳対象ウェブサイトのプラグイン設定を行う

複製されたウェブサイトのプラグイン設定画面を開き、以下の項目の設定を行います。

プラグイン有効化

プラグインを有効にします。

種類

現在設定を行っているウェブサイト/ブログを翻訳対象として指定します。

使用言語

現在設定を行っているウェブサイト/ブログの言語をISO 639-1コードで指定します。ここでは "en" を指定します。

言語コード一例
使用言語 言語コード
英語 en
中国語(簡体) zh / zh-cn
中国語(繁体) zh-tw
韓国語 ko

アップロードパス

辞書ファイルをアップロードするファイルパスを指定します。ウェブサイトの複製時に指定した値が表示されていますので、変更が必要な場合は編集してください。ドキュメントルート以下のパスは指定しないでください。

翻訳元ブログID

翻訳元のウェブサイト/ブログのIDを指定します。ウェブサイトの複製時に指定した値が表示されていますので、そのままにしておきます。

置き換えるパス

AタグのHREF属性の最初のパスを置き換えます。対象となるパスと新しいパスをカンマで区切って指定します。カンマなしでパスを1つだけ指定した場合、パスの先頭に追加されます。ウェブサイトの複製時に指定した値が表示されていますので、変更が必要な場合は編集してください。

除外する文字

マルチバイト文字のチェック時に除外する文字を列挙します。ウェブサイトの複製時に指定した値が表示されていますので、変更が必要な場合は編集してください。

翻訳対象フィールド

記事/ウェブページ/コンテンツデータにおいて、翻訳の対象となる入力フィールドを指定します。ウェブサイトの複製時に指定した値が表示されていますので、変更が必要な場合は編集してください。

カスタム翻訳対象フィールド

記事/ウェブページにおいて、外部プラグインで翻訳対象文字列の抽出/翻訳を行いたい入力フィールドを指定します。ここで指定するフィールドは、「翻訳対象フィールド」にも指定する必要があります。

Google Cloud Translation APIキー

Google Cloud Translation APIを利用する場合は、APIキーを入力します。

DeepL APIキー

DeepL APIを利用する場合は、APIキーを入力します。

DeepL プラン

Freeプラン、Proプランのどちらかを選択します。

OpenAI API キー

OpenAI を利用するには、OpenAI API プラットフォームへの登録が必要です。その後、API Keys から APIキーを発行し、発行したキーをプラグインの設定に登録することで利用できます。

OpenAIでの翻訳にも対応しておりますが、現在はβ版となりますのでご了承ください。

OpenAI API モデル

ご利用を希望するOpenAI APIのモデルを登録ください。

OpenAI API 追加プロンプト

OpenAI API による翻訳処理を行う際に、翻訳方法の指示や条件を追加するための設定です。
なお、指定するプロンプトの内容によっては、翻訳結果が期待通りにならない場合や、翻訳の品質が安定しない場合があります。そのため、実際の翻訳結果を確認しながら適宜調整してご利用ください。

ウェブサイト以下に小サイトが存在する場合は、同様の設定をそれぞれの小サイトに対しても行います。

4.翻訳辞書ファイルをダウンロードする

複製されたウェブサイトのプラグイン設定画面を開き、「一括ダウンロード」ボタンを押下するとダイアログが開き、翻訳辞書ファイル生成の進捗が表示されます。

翻訳辞書ファイルの生成が完了すると、Zipアーカイブ形式にまとめられたファイルのダウンロードを開始しますので、ファイルを保存してください。

5.翻訳辞書ファイルを編集する

ダウンロードした翻訳辞書ファイルは、次の命名規則に従ったファイル名がつけられています。

  • TranslationDic-(エントリID)-(タイトル).xlsx
  • ContentData-TranslationDic-(エントリID)-(タイトル).xlsx

エントリIDが11533、タイトルが「未翻訳記事」の場合、ファイル名は次のようになります。

  • TranslationDic-11533-未翻訳記事.xlsx
  • ContentData-TranslationDic-11533-未翻訳記事.xlsx

翻訳辞書ファイルを開くと、A1セルの「タイトル」、A3セルの「URL」に続き、「No」、「日本語」、「英語」、「コメント」の4つの列があります。5行目以降が訳語の入力欄となり、A列「No」、B列「日本語」は、MT Translatorによって入力済みですので、「日本語」に対応する訳をC列「英語」に入力してください。D列「コメント」の使用は任意であり、MT Translatorプラグインの動作に影響を及ぼしません。

現在のバージョンでは、翻訳辞書ファイルのファイル名は固定です。「エントリID」を基に翻訳すべき記事/ウェブページを特定していますので、変更すると不具合が生じます。現在のバージョンでは、翻訳辞書ファイルのC列4行目は翻訳言語にかかわらず「英語」と記載されます。現在のバージョンでは、翻訳辞書ファイルのフォーマットは固定です。訳語が入力される列、開始行は変更できません。また、訳語の途中に空行があると、それ以降の行を認識しません。

6.翻訳辞書ファイルをアップロードする

翻訳辞書ファイルの編集が完了したら、Zipアーカイブ形式にまとめてアップロードします。

プラグイン設定画面を開き、「翻訳辞書ファイル」のファイルインプット欄にZipファイルを指定し、「一括アップロード」ボタンを押下します。

アップロードが終了するとメッセージが表示され、翻訳の完了です。

7.ウェブサイト全体を再構築する

ウェブサイトの複製、翻訳辞書ファイルのアップロードが完了すると、データベースの内容は更新されていますが、静的ファイルは生成されていませんので、ウェブサイト全体の再構築を行ってください。

翻訳内容を確認する

MT Translatorプラグインをインストールすると、記事/ウェブページ編集画面の右下に、翻訳ウィジェットが表示されます。

翻訳履歴によって、いつどのようなファイルがアップロードされ、翻訳されたかを確認することができます。

翻訳履歴の日時が示すリンクをクリックすると、翻訳ログのダイアログが表示されます。翻訳ログでは、翻訳辞書ファイルのアップロードによって翻訳された内容の差分を確認したり、翻訳辞書ファイルのダウンロードを行うことができます。

翻訳ウィジェットの「対訳プレビュー」ボタンを押下することで、翻訳元の記事/ウェブページと翻訳対象記事/ウェブページの両方を1つの画面でプレビューすることができます。プレビュー画面では、上下、左右、タブの三つの表示モードで切り替えが可能です。2画面のうち、どちらかをスクロールすると、もう一方の画面も追従してスクロールします。また、どちらか一方の画面でリンクをクリックすると、もう一方の画面も同じリンク先へ遷移することができます。

リンクをクリックして画面遷移した場合、ブラウザの戻るボタンでは、両画面同時に戻ることができないため、専用の戻る/進むボタンを用意していますので、こちらを利用して画面遷移を行ってください。

修正した翻訳辞書ファイルを再度アップロードする

未翻訳の語句が残っていたり、語句を修正した場合、翻訳辞書ファイルを再度アップロードすることにより、記事/ウェブページの内容を変更することができます。

変更したい記事/ウェブページの編集画面を開き、翻訳ウィジェット内の項目「翻訳辞書ファイル」に翻訳辞書ファイルを指定し、コメントを入力して、「更新」ボタンを押下します。

2回目以降の翻訳辞書ファイルのアップロードでは、現在の記事/ウェブページの内容に対して翻訳を行います。もし、翻訳元の内容を基に再度翻訳をやり直したい場合は、「翻訳元テキストを再度取得し翻訳する 」チェックボックスにチェックをつけて、「更新」ボタンを押下します。

共通辞書を利用する

システム全体で共通の辞書を利用する場合は、システムプラグイン設定画面で操作を行います。

まず最初に「テンプレートファイルをダウンロード」をクリックして、共通辞書ファイルのテンプレートをダウンロードします。

ダウンロードしたファイル(Excel形式)を開くと、「テキスト」、「翻訳テキスト」、「言語」、「翻訳言語」、「コメント」の5つのカラムが表示されます。「テキスト」には翻訳前のテキスト、「翻訳テキスト」には翻訳後のテキスト、「言語」には翻訳前のテキストの言語を、「翻訳言語」には翻訳後のテキストの言語をそれぞれ入力してください。

ファイルの編集が終わったら、「共通辞書ファイル」でファイルを指定し、アップロードをしてください。

アップロードした共通辞書の内容は、「共通辞書の内容を確認」をクリックすると、ダイアログが開きますのでそこで確認できます。

共通辞書の内容を変更したい場合は、「ファイルをダウンロード」をクリックして共通辞書ファイルをダウンロードし、編集後再度アップロードしてください。

共通辞書の内容を初期化したい場合は、「共通辞書を初期化」をクリックしてください。

共通辞書はエクセルファイルのアップロードによる翻訳の場合のみ、その利用の優先度を変更することができます。「共通辞書優先」と「個別辞書優先」(エクセルファイル優先)のどちらかを選択してください。デフォルトでは「個別辞書優先」に設定されています。

自動翻訳の仕様について

  • 共通辞書が登録されている場合は、まず共通辞書による置換を行ったのち、自動翻訳が行われます。共通辞書で置換したテキストも自動翻訳の対象になるため、翻訳前の言語が置換後に入っていた場合に共通辞書部分も自動翻訳されてしまう場合がございます。
  • altにファイル名が入っている場合に、以下の記述へ翻訳がかかり適切に出力されない場合がございます。その場合は翻訳後のソースを直接修正するか、altの内容を空にして再度翻訳をお試しください
  • imgタグのsrc
  • iframeタグのsrc
  • aタグのhref
  • 各翻訳対象の入力フィールドにて「htmlタグ」もしくは「文字実体参照」が入力されている場合は、自動翻訳のフォーマットをhtmlフォーマットで行います。そのため翻訳後の一部テキストが「文字実体参照」になる場合がございます。

共通辞書の仕様について

■基本動作

  • 共通辞書の「テキスト」に記載の内容で翻訳対象フィールドを検索し、一致した箇所を「翻訳テキスト」へ置換します。
  • エクセルを使った手動翻訳の場合のみ、共通辞書と個別辞書の優先順位を選択することが可能です。
  • 通常は「個別辞書優先」を使用ください。
  • 「共通辞書優先」を利用した場合、先に共通辞書による置換が行われるため、個別辞書の置換が動作しなくなる場合があります。「共通辞書優先」を使用する場合は、特定の記事共通文章のみを共通辞書へ登録し、それを置換させるといった利用を想定しています。

■仕様

  • 半角文字と全角文字は文字コードが異なるため、別々に処理されます。
  • 機種依存文字はUTF-8で登録しているため、登録と翻訳は可能です。エクセルファイルを開いた際にOS間で文字化けした場合は、OSまたはエクセルの仕様による不具合のためご了承ください。
  • 改行の含んだ文章は登録することが可能ですが、翻訳対象フィールド内に<br>タグが含まれる場合は一致しないため置換できません。
  • Google Translate APIまたはDeepL APIでの翻訳の場合、共通辞書で置換した後に自動翻訳が動作するため、置換後の文字列に翻訳前の言語が使われていると自動翻訳する可能性がごさいます。
  • 各翻訳対象の入力フィールドにて「htmlタグ」もしくは「文字実体参照」が入力されている場合に、共通辞書に登録されている「< , > , & , ‘ , ”」を文字実体参照へ自動で変更し置換作業を行います。
  • 共通辞書の登録は実体参照ではなく、「< , > , & , ‘ , ”」を使って登録ください。
  • 同一フィールド内に「文字実体参照」を使用しているものと使用していないものがある場合(表記揺れがある場合)は、正常に置換ができないためご注意ください。

■共通辞書の登録・更新・削除

  • エクセルの5行目以降から、ADの各列を読み込みます。
  • A列:テキスト
  • B列:翻訳テキスト
  • C列:言語(翻訳元) ※jaもしくはenのみ対応しています。
  • D列:翻訳言語 ※ISO 639-1コードで指定します。(: en, ja)
  • 5行目以降に空白の行がある場合、そこで読み込みはストップします。
  • A,C,D列のセルが同じテキストでB列のテキストが異なる場合、新しく登録されたテキストに更新します。
  • A,C,D列のセルが同じテキストでB列のテキストが空の場合、登録していたテキストを共通辞書から削除します。

注意事項

現在のところ、以下の注意事項があります。

適応範囲について

本製品は、BlockEditorは非対応になっております。

翻訳辞書ファイルの一括ダウンロード/アップロード機能について

翻訳辞書ファイルの一括ダウンロード/アップロードを行った際、記事/ウェブページの数が多い場合、サーバ側でタイムアウトを起こし、エラーになることがあります。その際は、サーバ側のタイムアウト値を伸ばしてください。

翻訳辞書ファイル名とフォーマットについて

現在のバージョンでは、翻訳辞書ファイルのファイル名は固定です。「エントリID」を基に翻訳すべき記事/ウェブページを特定していますので、変更すると不具合が生じます。

翻訳辞書ファイルのフォーマットも固定です。訳語が入力される列、開始行は変更できません。また、訳語の途中に空行があると、それ以降の行を認識しません。

ウェブサイトの複製機能について

ウェブサイトの複製を行った場合、記事のトラックバック、コメント、アイテムは複製されません。アイテムについては、翻訳元記事内で参照される画像のURLがそのまま使用されています。複製後のウェブサイトでアイテムの利用が必要な場合は、再度登録をしなおしてください。

GoogleTranslate APIについて

GoogleTranslate APIではAPIキーを使用するため、Basicプランのみ対応しております。Advanceプランではご利用いただけません。

DeepL APIについて

DeepL APIではFreeプラン、Proプラン共に対応しております。

マルチフィールドの翻訳

MTTranslatorは、原則としてMovable Typeの標準機能にのみ対応しており、管理画面を拡張する他のプラグインには非対応となります。
MTAppjQueryとの併用をご希望の場合は、拡張プラグイン「MultiFieldTranslator」にて一部対応しております。

コンテンツデータへの適用

  1. MTAppjQueryのuser.jsにて設定を行います。
  2. マルチフィールドを適用したコンテンツタイプを設定します。
  3. MultiFieldTranslatorの「翻訳対象フィールド」にて、「コンテンツタイプ名:コンテンツフィールド名」で設定を入れます。複数のコンテンツタイプを翻訳したい場合はカンマで繋いでください。
  4. MTTranslatorの「カスタム翻訳対象コンテンツフィールド」にて「コンテンツタイプ名:コンテンツフィールド名」で設定を入れます。複数のコンテンツタイプを翻訳したい場合はカンマで繋いでください。
  5. 以降はMTTranslatorの操作を行います。

記事への適用

  1. カスタムフィールドのベースネームを、MT Translatorの設定の、翻訳対象フィールドに追加します。
  2. 複製された、記事から任意の翻訳方法を選択のうえ、更新を実施する。

この際、Google Cloud Translationでは問題無く翻訳されますが、DeepL APIだと管理画面の該当箇所が崩れる事象が発生しております。 記事への適用をご希望の場合は、Google Cloud Translationをご使用を推奨しております。

更新履歴

  • MT9に対応しました。OpenAI機能のβ版をリリース。
  • DeepL APIでの翻訳に対応しました。
    • 「未翻訳の語句をダウンロードする。」のリンクで Excel 形式のファイルをダウンロードするように変更
    • 「未翻訳の語句をダウンロードする。」のリンクがコンテンツデータでは動作していない不具合を修正しました。
  • テキスト(複数行)フィールド、データ識別ラベルの翻訳がうまく行かない不具合の修正
  • Movable Type 7 への対応
  • 辞書ファイルに改行を含む場合でも置換されるようにした。
  • PerlモジュールList::MoreUtilsがインストールされていない環境での動作不具合を修正した。
  • 翻訳辞書ファイルの一括アップロードによる翻訳での不具合を修正した。
  • Google Cloud Translation APIで翻訳が失敗する不具合を修正した。
  • 共通辞書をサポートした。
    • 特定フィールドの外部プラグインによる翻訳機能を実装した。
    • 不具合を修正した。
    • Google Cloud Translation APIでの翻訳をサポートした。
    • 不具合を修正した。
    • 新規に作成した翻訳元記事の複製機能を実装した。
    • 不具合を修正した。
    • 翻訳辞書ファイルの一括ダウンロードをダイアログで行うようにした。
    • ウェブサイトの複製機能を実装した。
    • 不具合を修正した。
  • 最初のリリース
INFORMATION