テンプレートの編集 - 検索と置換スクリプト
複雑なテキストドキュメントは、memoQプロジェクトにインポートする前に少し変更する必要があるかもしれません。この変更または変換は前処理と呼ばれ、ドキュメントがインポートされる前に実行されます。
ドキュメントをインポート前に前処理する場合は、エクスポート後に元に戻す必要があります。そのため、ドキュメントをインポートする前に前処理を実行する場合は、エクスポート後に後処理を実行する必要があります。
ほとんどの場合、必要な操作は、文書に対していくつかの検索と置換動作を実行するだけです。そのために正規表現を使う必要がある場合もあります。Notepad++やUltraEditなどの開発者用テキストエディタを使用して、これらの変更を試すことができます。
これらをすべて行うには、memoQ 8.1以降のバージョンに含まれている検索と置換スクリプトを使用します。検索と置換スクリプトを使用すると、ドキュメントに対して一連の検索と置換動作を実行できます。プログラミングをする必要はありません。正規表現を使用して、構成ファイル内の検索と置換動作をリストする必要があります。これにより、C#やPowerShell、Pythonなどを学習する必要はなく、正規表現だけを学べばよいです。
テキスト (プレーンテキスト) ドキュメントのみ:検索と置換スクリプトは、プレーンテキストドキュメント、タブ区切りテキストドキュメント (CSVなど)、タグ付きドキュメント (XMLやHTMLなど)、またはソースコードドキュメント (JSON、.propertiesなど) など、人間が読めるドキュメントで動作します。
このトピックでは、次の内容について説明します:
- memoQまたはmemoQ serverで検索と置換スクリプトを設定する方法
- 検索と置換の操作を記述する方法
- プロジェクトテンプレートで検索と置換スクリプトを使用する方法:前処理 (インポート前)、後処理 (エクスポート後)、およびプロジェクト中 (インポート後など) の3つの使用例
memoQの準備:コンピュータで検索と置換スクリプトを設定する
コンピュータでは、検索と置換スクリプトがC:\Program Files (x86)\Kilgray\FindReplace Toolフォルダにインストールされます。
フォルダには、FindAndReplace.exeプログラムと、検索と置換ルールを含む.xmlファイルが含まれています。
memoQ 8.1以降がインストールされている場合は、自分のコンピュータで検索と置換スクリプトを使用できます。フォルダパスは後で使用する必要があるためメモしてください。
管理者アクセスが必要な場合があります:このフォルダを変更するには (検索と置換ルールを編集するなど)、管理者ユーザーのユーザー名とパスワードを入力する必要があります。十分なアクセス権がない場合は、WindowsのUser Account Controlサービスによって警告が表示されます。
memoQ serverの準備:サーバーコンピュータで検索と置換スクリプトを設定する
管理者アクセスが必要:そのためには、Remote Desktopを使用してmemoQ serverコンピュータにアクセスし、管理者である必要があります。memoQ serverコンピュータに対する管理者権限がない場合は、組織のシステムオペレータに連絡して、このトピックを参照してください。
- リモートデスクトップからmemoQ serverコンピュータにログオンします。
- Deployment toolを実行します:開始キーを押して、deploymentと入力します (最初の数文字で十分です)。結果リストで、memoQ Server Deployment Administrationをクリックします。memoQ Server Deployment Administrationウィンドウが開きます。
- ツールが見つからない場合、またはmemoQ serverがインストールされていない場合:memoQ serverをインストールします。手順については、memoq.comWebサイトから入手できるInstalling memoQ Server Guideを参照してください。
- memoQ serverで、詳細をクリックします。メニューで、Configure custom code executionをクリックします。Configure custom code executionウィンドウが開きます。
- カスタムコードの実行のためのユーザーアカウントで、仮想サービスアカウントをクリックします。memoQ serverがプログラムを実行すると、サーバー上のユーザーのように動作します。仮想サービスアカウントを選択すると、memoQ serverはmemoQ custom code execution serviceというユーザ名でプログラムを実行します。
スクリプトはネットワークにアクセスする必要がありますか?仮想サービスアカウントは、memoQ serverコンピュータ上で必要なすべての権限を受け取りますが、ネットワーク内の他のコンピュータにログオンすることはできません。スクリプトが他のコンピュータにアクセスする必要がある場合は、カスタムアカウントを使用します。サービスで使用できるドメインアカウントについては、IT部門またはIT管理者に問い合わせてください。詳細 (ユーザー名、パスワード、ドメイン名) が表示されたら、このアカウントをクリックし、受信した名前とパスワードをアカウント名ボックスとパスワードボックスに入力します。
- Limit executable files to scripting and batch files only (no EXEs)チェックボックスをオフにします。検索と置換ツールは.exeファイルです。
- 次へをクリックします。次の画面では不足しているものがあるか表示されます。すべてが緑のティックマークの場合は、完了をクリックします。デプロイメントツールは、カスタムコード実行用にサービスを構成します。サービスアカウントは、必要なすべての権限とアクセス許可を受け取ります。
検索と置換ツールを使用する前に、memoQ serverが使用できるフォルダにツールのファイルをコピーする必要があります。
- Remote Desktopを使用してmemoQ serverコンピュータにログインし、File Explorerを使用してファイルをコピーします。
サーバ上での作業:すべてのドライブ、フォルダ、パスは、memoQ serverコンピュータ上にローカルに存在します。この説明は、memoQ serverがデフォルト設定でインストールされている場合に有効です。
- まず、検索と置換ツールはC:\Program Files\Kilgray\MemoQ Server\FindReplace Toolフォルダにあります。最初にこのフォルダを開く:File Explorerを開きます。このフォルダをファイルエクスプローラ (This PC) ウィンドウのアドレスバーにコピー&ペーストし、Enterを押します。
- FindReplace Toolフォルダ内の両方のファイルを選択してコピーします。
- 次に、ファイルエクスプローラでC:\ProgramData\MemoQ Server\Scriptingフォルダを開きます。通常、このフォルダは非表示になっています。このフォルダを開くには、ファイルエクスプローラウィンドウのアドレスバーにこのトピックのパスを入力 (貼り付けない) し、Enterを押します。(フォルダをコピーして貼り付けると、ファイルをコピーできなくなります。)
- Scriptingフォルダ内に、FindAndReplaceという別のフォルダを作成します。その新しいフォルダを開きます。
- FindAndReplaceフォルダ内のファイルを貼り付けます。
ドキュメント変換の設定:構成ファイルに検索と置換動作を記述します。
検索と置換ツールを使用するには、検索されたテキストの置換方法を知るための構成ファイルが必要です。
構成ファイルは、ツール自体と同じフォルダにある必要があります。したがって、実際の検索と置換の動作を設定するには、構成ファイルをサーバコンピュータにコピーするか、構成ファイルを編集する必要があります。
構成ファイルはハードコードされていません。検索と置換ツールを呼び出すときに、構成ファイルを選択できます。ただし、どの構成ファイルを選択した場合でも、そのファイルはサーバコンピュータのフォルダにある必要があります。
作業に必要なドキュメント形式ごとに個別の構成ファイルを使用できます。または、1つの構成ファイルを使用して、フォーマットと変換ごとに個別のセクションを記述することもできます。
プロジェクトテンプレートで自動操作を設定する場合は、検索と置換ツールを呼び出す必要があります。その後、構成ファイルそして構成ファイル内のセクションを選択する必要があります。
検索と置換構成ファイルはXMLファイルであり、1つの文書フォーマットに対する検索と置換動作をリストします。複数のセクション、またはユースケース (usecase要素) があります。各セクションまたはユースケースは、次のいずれかの動作に関するものです:
- ドキュメントをインポートする前の変換 (例:PreImport)、
- ドキュメントのエクスポート後の変換 (例:PostExport)、または
- memoQ取り込み後の文書の変換:文書のインポート後、前翻訳後、またはドキュメント完了後 (例:PostImport)。
これらのユースケースには任意の名前を付けることができます。たとえば、.xmlファイルにJSONのインポート/エクスポート変換と.poファイルのインポート/エクスポート変換を含めることができます。この場合、各ユースケースのセクションは、JSON-PreImport、JSON-PostExport、PO-PreImport、PO-PostExportと呼ばれます。
インポート時に変換する場合は、エクスポート時に再び変換する必要があります:PreImport変換を実行する場合は、エクスポート後に反対の変換を実行する必要があります (PostExport)。
既にプロジェクト内にあるドキュメントに対して検索と置換を実行するにはどうすればよいですか?ドキュメントのインポート後にカスタム動作を設定すると、memoQ serverはドキュメントをプレーン (非圧縮) memoQ XLIFFファイルにエクスポートし、指定したスクリプトを実行して、変更したXLIFFファイルをプロジェクトにインポートします。これらはすべてバックグラウンドで実行されます。
構成ファイルを一から作成する必要はありません。Find and Replace ToolまたはFindReplace Toolフォルダには、サンプル構成ファイルが含まれています。独自の変換を設定するには、example_config.xmlファイルのコピーを作成するだけです。ファイル内の変換を自分の変換に置き換えます。
この検索と置換ツールは、2種類の検索置換動作をサポートしています。プレーンテキストを置換することも、正規表現とプレースホルダを使用してテキストを置換することもできます。
それぞれのユースケースについて、いくつかの検索と置換のルールを作成することができます。各ルールはsearchItem要素に記述されます。searchItem要素のタイプ ("text"または"regex") は、プレーンテキストを置換するか、正規表現を使用するかを定義します。
各searchItem要素には、searchExpressionとreplaceExpression要素があります。searchExpression要素には、プレーンテキスト検索語または正規表現を1つだけ含める必要があります。replaceExpression要素には、searchExpressionの正規表現のプレースホルダを使用して、プレーンテキストの一節または置換ルールを1つだけ含める必要があります。
このXML文書を翻訳する必要があるとします:
このドキュメントには、検索と置換ツールを使用して解決できる2つの問題があります。
第一に、memoQは\nキャラクターを見つけたときに新しいセグメントを始めることができなければなりません。これらの文字は、memoQが認識できるマークアップに変換する必要があります。文書をインポートした (正規表現タグ化ツールを実行する重ねがけフィルタを使用して) 後では、セグメンテーションルールが\n文字を認識しないため、タグ付けはできません。ただし、ドキュメントをインポートする前に、各\nシーケンスを<break/>タグで置き換えることができます。これを行う場合は、ファイルのエクスポート後に<break/>タグを\nシーケンスに再度置き換える必要があります。XMLフィルタ構成では、<break/>タグを構造タグとして定義する必要があります。これにより、memoQは<break/>ごとに新しいセグメントを開始します。これらの変換は、検索と置換構成ファイルのPreImportおよびPostExport使用例で設定されます。
第2に、数字のみを含むセグメントがあります。翻訳者がドキュメントを受け取る前に、これらをロックする必要があります。これを行うには、ドキュメントがプロジェクト内に存在する間に実行されるカスタム自動操作であるmidscriptを、ドキュメントのインポート直後に実行します。midscriptを実行すると、memoQ serverはドキュメントを非圧縮memoQ XLIFFファイルにエクスポートし、スクリプトを実行してから、変更されたmemoQ XLIFFファイルからプロジェクトのドキュメントを更新します。
インポート後にドキュメントを変更するには、常にmemoQのXLIFFファイルで作業し、形式を念頭に置いて検索語または正規表現を記述する必要があります。
サンプル構成ファイルのPostImportユースケースを次に示します:
検索と置換ツールを使用するようにプロジェクトテンプレートを設定する
- リソースコンソールを開きます。
- オンラインプロジェクトテンプレートを作成するには:検索と置換ツールを設定したmemoQ serverに接続します。サーバーURLボックスで、サーバのアドレスを入力または選択し、チェックマーク アイコンをクリックします。ローカルプロジェクトテンプレートを使用する場合は、この手順を省略できます。
- ビルトインプロジェクトテンプレート、できればOne TM per client templateを選択し、クローンを作成します。テンプレートを右クリックし、クローンを選択します。新規リソースにプロジェクトテンプレートをクローンウィンドウで、新しいテンプレートの名前を入力し、OKをクリックします。
- テンプレートを編集します。新しいテンプレートを右クリックし、編集を選択します。プロジェクトテンプレートの編集ウィンドウが開きます。
テンプレートの編集の詳細については:プロジェクトテンプレートの編集トピックを参照してください。
- 検索と置換ツールを設定するには:[プロジェクトテンプレートの編集] ウィンドウで [自動操作] をクリックします。
カスタムプログラムをテンプレート内に配置する必要があります。しかし検索と置換ツールはその外にあります:お使いのコンピュータまたはmemoQ serverコンピュータのフォルダにあります。
この時点で、ツールはどのようにテンプレートに組み込まれますか?
それにはコツがあります。検索と置換ツールを呼び出す小さなバッチファイルを作成する必要があります。ツールがmemoQ server上にある場合、バッチファイルは次のようになります。
"C:\ProgramData\MemoQ Server\Scripting\FindAndReplace\FindAndReplace.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9
ツールがコンピュータ上にある場合、バッチファイルは次のようになります:
"C:\Program Files (x86)\Kilgray\FindReplace Tool\FindAndReplace.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9
含めるファイルを作成するには、上記の行を選択してコピーします。Notepadを開いて、この行を貼り付けます。ドキュメントを独自の文書フォルダに保存し、StartScript.batという名前を付けます。
memoQ serverコンピュータでは、検索と置換ツールがScriptingフォルダ内のFindAndReplaceフォルダに設定されている場合、この行はシステムで機能します。それ以外の場合は、行のパスを変更する必要があります。
プロジェクトテンプレートの編集ウィンドウの自動操作で、このファイルを自動操作のスクリプトとして追加します。
詳細については:このトピックの他のセクションを参照してください。
特定の種類のドキュメントに対して検索と置換動作を実行するには、検索と置換操作を含む.xmlファイルがあることを確認します。.xmlファイルは、memoQ serverコンピュータの検索と置換ツールと同じフォルダにある必要があります。
ドキュメントをインポートする前に検索と置換動作を実行するには、.xmlファイルにPreImportセクションが含まれている必要があります。
検索と置換動作を使用して.xmlファイルを設定するには:このトピックの前半にあるmemoQ serverの準備:検索と置換スクリプトの設定の最後の展開セクションをお読みください。
- 編集するオンラインプロジェクトテンプレートを開きます。プロジェクトテンプレートの編集ウィンドウが開きます。
- プロジェクトテンプレートの編集ウィンドウで、自動操作を選択します。自動操作ペインで、インポート前のスクリプトタブをクリックします。
- ワイルドカード表現がフルパスと一致で、* 拡張子と入力します。拡張子は、インポートする前に処理するドキュメント名の末尾です。
- スクリプト名で、この動作のフレンドリ名を入力します。
- コードを実行するために必要なファイルを選択ボックスの横にあるファイルを追加をクリックします。開くウィンドウが表示されます。
- 前に保存したStartScript.batファイルを検索して選択します。(方法については、前のセクションを参照してください。)StartScript.batファイルがコードを実行するために必要なファイルを選択ボックスに表示されます。
- コマンドライン引数で、次のように入力ます:
ローカルテンプレート:
/m PreImport "C:\Program Files (x86)\MemoQ\FindReplace Tool\findandreplace-config.xml" {InputFilePath} {OutputFilePath}オンラインテンプレート:
/m PreImport "C:\ProgramData\MemoQ Server\Scripting\FindAndReplace\documenttype-config.xml" {InputFilePath} {OutputFilePath} - 設定を保存する前に、「documenttype-config.xml」という名前を、検索と置換動作を含む.xmlファイルの名前に置き換えます。検索と置換ルールが別のセクションに記述されている場合は、PreImportを別のセクション名に置き換える必要があります。設定は次のようになります:
- スクリプトとファイルの種類で、新しい項目として追加をクリックします。
- エクスポート後のスクリプトタブでリバーススクリプトを設定することを忘れないでください。方法については、次のセクションを参照してください。
ドキュメントをインポートする前に変換する場合は、エクスポートされたファイルも変換する必要があります。これにより、クライアントが期待する形式でエクスポートされたドキュメントを取得できます。ファイルをエクスポートしたら、ドキュメントをインポートする前に実行した操作とはまったく逆の検索と置換動作を実行する必要があります。
特定の種類のドキュメントに対して検索と置換動作を実行するには、検索と置換操作を含む.xmlファイルがあることを確認します。.xmlファイルは、memoQ serverコンピュータの検索と置換ツールと同じフォルダにある必要があります。
ドキュメントのエクスポート後に検索と置換動作を実行するには、.xmlファイルにPostExportセクションが含まれている必要があります。
検索と置換動作を使用して.xmlファイルを設定するには:このトピックの前半にあるmemoQ serverの準備:検索と置換スクリプトの設定の最後の展開セクションをお読みください。
- 編集するオンラインプロジェクトテンプレートを開きます。プロジェクトテンプレートの編集ウィンドウが開きます。
- プロジェクトテンプレートの編集ウィンドウで、自動操作を選択します。自動操作ペインで、エクスポート後のスクリプトタブをクリックします。
- ワイルドカード表現がフルパスと一致で、* 拡張子と入力します。拡張子は、インポートする前に処理するソースドキュメント名の末尾です。
- スクリプト名で、この動作のフレンドリ名を入力します。
- コードを実行するために必要なファイルを選択ボックスの横にあるファイルを追加をクリックします。開くウィンドウが表示されます。
- 前に保存したStartScript.batファイルを検索して選択します。(方法については、前のセクションを参照してください。)StartScript.batファイルがコードを実行するために必要なファイルを選択ボックスに表示されます。
- コマンドライン引数で、次のように入力ます:
ローカルテンプレート:
/m PostExport "C:\Program Files (x86)\MemoQ\FindReplace Tool\findandreplace-config.xml" {InputFilePath} {OutputFilePath}オンラインテンプレート:
/m PostExport "C:\ProgramData\MemoQ Server\Scripting\FindAndReplace\documenttype-config.xml" {InputFilePath} {OutputFilePath} - 設定を保存する前に、「documenttype-config.xml」という名前を、検索と置換動作を含む.xmlファイルの名前に置き換えます。検索と置換ルールが別のセクションに記述されている場合は、PostExportを別のセクション名に置き換える必要があります。設定は次のようになります:
- スクリプトとファイルの種類で、新しい項目として追加をクリックします。
- 必要に応じて、プロジェクトテンプレートをさらに変更します。終了したら、プロジェクトテンプレートの編集ウィンドウ内のOKをクリックします。
memoQプロジェクトの進行中にドキュメントに変更を加える必要がある場合があります。ドキュメントのインポート後 (またはプロジェクト内の任意の時点) に実行する自動操作を設定できます。プロジェクトの途中で実行するプログラムは、midscriptsとも呼ばれます。
memoQプロジェクトのドキュメントに対してカスタム動作を実行すると、次のようになります:
memoQ serverは、ドキュメントを非圧縮memoQ XLIFF (.mqxliff) ファイルにエクスポートします。
memoQカスタムコードサービスは、プレーンテキストであるかのように.mqxliffファイルを介してスクリプトを実行します。スクリプトは、有効な.mqxliffファイルを保存する必要があります。
memoQ serverは、スクリプトによって保存された.mqxliffファイルからドキュメントを更新します。
検索と置換ツールは、プロジェクトの途中でドキュメントを変換するmidscriptとして使用できます。
これらのドキュメントに対して検索と置換を実行するには、検索と置換動作を含む.xmlファイルがあることを確認します。.xmlファイルは、memoQ serverコンピュータの検索と置換ツールと同じフォルダにある必要があります。
プロジェクトの途中で検索と置換動作を実行するには、.xmlファイルにPostImportセクションが含まれている必要があります。
検索と置換動作を使用して.xmlファイルを設定するには:このトピックの前半にあるmemoQ serverの準備:検索と置換スクリプトの設定の最後の展開セクションをお読みください。
- 編集するオンラインプロジェクトテンプレートを開きます。プロジェクトテンプレートの編集ウィンドウが開きます。
- プロジェクトテンプレートの編集ウィンドウで、自動操作を選択します。自動操作ペインで、プロジェクトの自動化タブをクリックします。
- 使用可能なトリガ で、文書のインポート後をクリックします。プロジェクト内の別のポイントを選択することもできます。たとえば、ドキュメントが前翻訳された後にスクリプトを実行する場合などです。
- 選択済みトリガに動作を追加ボックスの横にある追加 アイコンをクリックします。「このトリガーに追加する動作を選択」ウィンドウが開きます。
- [このトリガに追加する動作を選択] ウィンドウで [カスタムコードを実行] をクリックします。追加をクリックします。カスタムコードの詳細を指定ウィンドウが開きます。
- コードを実行するために必要なファイルを選択ボックスの横にあるファイルを追加をクリックします。開くウィンドウが表示されます。
- 前に保存したStartScript.batファイルを検索して選択します。(方法については、前のセクションを参照してください。)StartScript.batファイルがコードを実行するために必要なファイルを選択ボックスに表示されます。
- コマンドライン引数で、次のように入力ます:
ローカルテンプレート:
/m PostImport "C:\Program Files (x86)\MemoQ\FindReplace Tool\findandreplace-config.xml" {InputFilePath} {OutputFilePath}オンラインテンプレート:
/m PostImport "C:\ProgramData\MemoQ Server\Scripting\FindAndReplace\documenttype-config.xml" {InputFilePath} {OutputFilePath} - スクリプト処理のため MQXLIFF で文書をエクスポートおよびスクリプト出力よりプロジェクト内の文書を更新チェックボックスをオンにします。
- 設定を保存する前に、「documenttype-config.xml」という名前を、検索と置換動作を含む.xmlファイルの名前に置き換えます。また、検索と置換ルールが別のセクションに記述されている場合は、PostImportを別のセクション名に置き換える必要があります。設定は次のようになります:
- OKをクリックします。
- 必要に応じて、プロジェクトテンプレートをさらに変更します。終了したら、プロジェクトテンプレートの編集ウィンドウ内でOKをクリックします。
完了したら
検索と置換スクリプトをテストするには:設定したテンプレートからオンラインプロジェクトを作成し、処理するドキュメントをインポートします。ドキュメントが正常にインポートされた場合は、プロジェクトをチェックアウトし、編集するドキュメントを開いて変換が正しいかどうかを確認します。
または、ローカルプロジェクトテンプレートを使用している場合は:設定したテンプレートからローカルプロジェクトを作成し、処理するドキュメントをインポートします。ドキュメントが正常にインポートされた場合は、編集するドキュメントを開いて変換が正しいかどうかを確認します。
検索と置換動作を変更するには:プロジェクトテンプレートで使用する.xmlファイルを編集します。(オンラインテンプレートを使用している場合は、Remote Desktopを介してmemoQ serverコンピュータにログインします。)必要に応じて検索と置換動作を追加または変更します。プロジェクトテンプレートを変更する必要はありません。さらに、このテンプレートを使用する既存のプロジェクトを開き、新しいファイルをインポートすることができます。その場合でも、memoQまたはmemoQ serverは更新された検索と置換動作を使用します。
検索と置換動作の詳細を表示するには:このトピックの変換の設定セクションを参照してください。