テンプレートの編集 - インポート前およびエクスポート後にドキュメントを変換するためのスクリプト
熟練者のみ:Windowsのスクリプト、プログラム、サービス、およびユーザーに精通していない場合は、この手順は行わないでください。こうした経験がない場合は、ITスペシャリストなどの熟練者に依頼する必要があります。
一部の文書は、memoQにインポートする前に変換する必要があります。これは、スクリプトを使ってプロジェクトテンプレートで行います。
テンプレートが必須です:これは、プロジェクトテンプレートから作成されたプロジェクトでのみ行うことができるものです。
プロジェクトテンプレートがすでにプロジェクトに存在する場合は、次のように機能します:
- 文書をプロジェクトにインポートします。
- memoQがプログラムを通じて文書を自動的に処理します。これにより変換された別の文書が生成されます。この手順は前処理と呼ばれます。
- 変換された文書がプロジェクトにインポートされます。
- 変換された文書で作業を行います。
- 文書をエクスポートすると、翻訳済みの変換された文書が生成されます。
- 続いて、memoQが別のプログラムを通じてエクスポートされた文書を処理し、元の形式に戻します。この手順は後処理と呼ばれます。
次に例を紹介します:
数年前まで、ヘルプドキュメントはXML形式でヘルプページを作成するプログラムで書かれていました。しかし、このXMLファイルを直接インポートした場合、セグメント (センテンス) がフラグメント化され、意味のある文にするためには2セグメントごとに次のセグメントと結合しなければなりませんでした。
このXMLファイルを少し異なるXMLファイルに変換するプログラムがあり、これを使った場合、フラグメントは最初から結合されました。この少し異なるXMLファイルをインポートし、翻訳しました。このファイルは、オーサリングプログラムが再び開けるよう、エクスポートされた後で元に戻さなければなりませんでした。このため、ファイルはセグメントを元どおりフラグメントに分割する別のプログラムで処理されました。(厳密には、同じプログラムが異なる引数で実行されましたが、まったく異なるプログラムが使われる場合もあります。)
これは、プロジェクトテンプレートで設定する必要があります。設定後は、そのプロジェクトテンプレートから作成したすべてのプロジェクトで変換が行われるようになります。
まずサーバーを設定します:オンラインプロジェクトでこれが必要な場合は、まずサーバーを設定します。これは、このトピックの後半の「できること」セクションで説明されています。
プログラムを作成または入手する必要があります:memoQには、文書またはプロジェクトに必要な変更を加えるためのプログラムは用意されていません。このため、プログラムは自分で作成するか、プログラマーから入手する必要があります。あるいは、memoQビジネスサービスに依頼すれば、有償でお手伝いします。
テキストドキュメントを準備または修正するには、ビルトイン検索と置換ツールを使用します:詳細については、検索と置換スクリプトに関するトピックを参照してください。
操作手順
- リソースコンソールを開きます。
- 左側でプロジェクトテンプレートをクリックします。
-
編集したいテンプレートを選択します。
オンラインプロジェクト用のテンプレートやリソースを設定するには:オンラインテンプレートを使用します。リソースコンソールの最上部でmemoQ TMSを選択します。選択 ボタンをクリックします。
- リストの下で編集をクリックします。
- 左側で自動操作をクリックします。文書がインポートされる前に実行する変換を設定するには:インポート前のスクリプトタブをクリックします。文書がエクスポートされた後に実行する変換を設定するには:エクスポート後のスクリプトタブをクリックします。おそらく両方が必要になるでしょう。
その他のオプション
プロジェクトで実行するスクリプトはプログラムです。サーバーでは、全員がプログラムの実行を許可されているわけではありません。通常、memoQ TMSはセキュリティ上の理由からプログラムの実行が許可されていません。
オンラインプロジェクトでスクリプトを実行する前に、memoQ TMSがスクリプトを実行することを許可する必要があります。
管理者かつ熟練者である必要があります:memoQ TMSコンピュータの管理者でない場合や、実行内容を熟知していない場合は、以下の手順を行わないでください。
これはmemoQで行うことではありません。手順を完了するまで、memoQウィンドウは脇に置いておいてください。
- Remote Desktopを使って、管理者としてmemoQ TMSコンピュータにサインインします。(つまり、memoQ TMSプログラムだけでなく、マシン全体の管理者でなければなりません。)
- Control Panelを開きます。Programs and Featuresを選択します。memoQ TMSを選択します。変更をクリックします。memoQ TMSデプロイメントツールが開きます。
- DeploymentプログラムのmemoQ TMSセクションで、詳細をクリックし、続いてConfigure custom code executionを選択します。Configure custom code executionウィンドウが表示されます。
- 原則として、ここでは仮想サービスアカウントを選択します。次へをクリックします。Administratorなどのビルトインアカウントは使用しないでください。このアカウントラジオボタンで特定のアカウントを使うことができます。しかし、その他のことに一切に使用しないよう、この設定は非常に気を付ける必要があります。特定のアカウントを使用するのは、場合、またはスクリプトがネットワーク上の別のコンピュータにアクセスする必要がある場合にのみ、特定のアカウントを使用します。
- デプロイメントツールが、設定が有効かどうかをチェックします。サーバーコンピュータの管理者である必要があります。また、選択したアカウントはサービスとしてログオンできる必要があります。ウィンドウに2つの緑のチェックマークが表示されている場合は、次へをクリックします。エラーがある場合は、戻るをクリックして設定を変更します。
- デプロイメントツールが、スクリプトとプログラムを実行するためにmemoQ TMSを設定します。これには少し時間がかかる場合があります。Settings have been saved successfullyメッセージが表示されたら、完了をクリックします。
- memoQ TMSの再起動を促すメッセージが表示されます。OK(O)をクリックします。
- デプロイメントツールでStop memoQ TMSをクリックします。Start memoQ TMSリンクが表示されたら、Start memoQ TMSをクリックします。
- デプロイメントツールが、memoQ TMSが再び実行中であることをレポートしたら、これを閉じます。
プログラムには、プロジェクトテンプレートに格納できないファイルが必要かもしれません。こうしたファイルはプロジェクトテンプレートに格納することもできますが、その場合、プロジェクトの進行中に変更したり修正することができません。それをするには、プロジェクトを丸ごと作り直す必要があります。
このため、一部(実際は大半)のプログラムファイルは、プロジェクトテンプレートの外に置く必要があります。
カスタムコード実行を設定すると、サービスユーザーはLog on locallyシステム権限とサーバー上のC:\ProgramData\memoQ Server\Scriptingフォルダの権限を取得します。このフォルダ下に、カスタムまたはScriptsという名前の別のフォルダを作成し、プログラムファイルを配置します。
このようにしておけば、バグ修正などのためにプログラムファイルを置換する必要が生じた場合、このフォルダで行うことができます。既存のプロジェクトは、すぐにその更新されたプログラムファイルを使います。
始める前に、少なくとも次の2つのファイルが必要です:
- 文書の実際の変換を行うメインプログラムファイル。他のファイルが必要な場合もあります。そのファイルをメインプログラムファイルでコピーする必要があります。
- メインプログラムファイルを開始するただ一つのコマンドが書き込まれたバッチファイル。これはプロジェクトテンプレートの中に置くファイルです。
このプログラムがエクスポートされた文書を元に戻さない場合、この役割を果たす別のプログラムが必要です。つまり、別のファイルが少なくとも2つ必要になります。
自分のコンピュータでスクリプトを実行する場合は、そのユーザーの名前で実行します。
- メインプログラムファイルを選択したフォルダにコピーします。そのフォルダからプログラムを実行できることを確認します。
- バッチファイルがコンピュータの正しいフォルダを指していることをチェックします。例えば、バッチファイルには次のコマンドを含めることができます:
c:\Users\yourname\Documents\Scripting\C_Converter.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
バッチファイルはC_Converter.exeというプログラムを開始し、最大で9個の引数をこれに渡します。プログラムはサーバー上のC:\Users\yourname\Documents\Scriptingフォルダーにあるはずです。これはコンピュータ上のフォルダではありません。
実は、このコマンドはバッチファイルで使うことも可能で、他のプログラムを呼び出している場合は、.exeファイルの名前を置換するだけです。
- memoQに戻り、それからプロジェクトテンプレートを編集します。
- 自動操作を選択し、インポート前のスクリプトタブをクリックします。
- 選択したスクリプトの設定で、ファイルを追加をクリックします。メインプログラムを開始するバッチファイルを見つけて開きます。
スクリプトファイルまたはバッチファイルを置換するには:選択したスクリプトの設定セクションでファイルを選択し、削除をクリックし、続いてファイルを追加をクリックして新しいファイルを追加します。
memoQは他のスクリプトを使って、他の文書タイプや他のフォルダの文書を前処理することができます。設定するには、ウィンドウのスクリプトとファイルの種類セクションを使います。
- ワイルドカード表現がフルパスと一致ボックスにファイルマスクを入力します。XMLヘルプファイルの例の場合、ここに*.xmlと入力します。スクリプト名に、このファイルタイプに対するわかりやすい名前を入力します。例:「セグメントがフラグメント化されたヘルプファイル」新しい項目として追加をクリックします。
- ファイルタイプとこの名前は、スクリプトおよび入力ファイルリストに表示されます。この項目をクリックします。
- 選択したスクリプトの設定セクションからバッチファイルを選択します。複数の文書タイプを複数のプログラムで処理するつもりで、バッチファイルを複数用意している場合は、このファイルタイプで使いたいものを選択します。コマンドとして設定をクリックします。
- 次にコマンドを設定します。コマンド名は、バッチファイルの名前と同じです。コマンドライン引数に、{入力ファイルパス}と{出力ファイルパス}を含める必要があります。これは、memoQが自動的に設定します。プログラム(スクリプト)は、入力ファイルを取得し、出力ファイルを生成する必要があります。入力ファイルはユーザーが受け取るソース文書で、出力ファイルはmemoQがインポートする変換された文書です。
プログラムには、他のコマンドライン引数が必要な場合があります。例えば、私たちのXML変換プログラム(XMLヘルプファイルのフラグメントを解消する)には、-hm2xml {InputFilePath} {OutputFilePath} transform.logが必要です。このとき、ファイル'transform.log'は、メインプログラムがあるフォルダに配置されます。
他のプレースホルダを使えば、プログラムがプロジェクトの識別子や、ソースとターゲット言語を処理することもできます。多くの場合、プログラムはこれらを使って、異なる目的の異なるファイルを分けておくためにフォルダを見つけたり作成したりします。
プレースホルダを挿入するには:プレースホルダの挿入をクリックし、メニューからプレースホルダを選択します。
- 入力ファイルパス:ソース文書の完全なパスと名前。このパスの正体を理解する必要はありません。memoQが自動的に生成するものです。
- 出力ファイルパス:プロジェクトでインポートされる変換された文書の完全なパスと名前。このパスの正体を理解する必要はありません。memoQが自動的に生成するものです。
- SrcLangIso2:プロジェクトのソース言語の2文字のコード。
- SrcLangIso3:プロジェクトのソース言語の3文字のコード。
- TrgLangListIso2:プロジェクトのターゲット言語の2文字コードのリスト。
- TrgLangListIso3:プロジェクトのターゲット言語の3文字コードのリスト。
- プロジェクトGUID:プロジェクトのグローバルに一意の識別子。これは長い数字で、同じものが二度使われることはありません。
- 最後に、スクリプトをテストできます。コマンドのテストを実行をクリックします。
- カスタムコードの実行 - テスト実行ウィンドウが表示されます。
- とにかく変換する必要がある文書を特定します。テキストボックスに文書のパスと名前を入力または貼り付けるか、または参照をクリックしてコンピュータ上で文書を特定します。OK(O)をクリックします。memoQは、スクリプトを実行しようとします。
- テストが終わったら、終了コードとともにテスト結果メッセージが表示されます。プログラムの実行が成功した場合、終了コードは0です。エラーが発生した場合のコードは通常-1ですが、異なる数字の場合もあります。
前処理の手順が終わったら、エクスポート後のスクリプトを設定する必要があります。これにより、エクスポートされた文書が、クライアントが期待する形式に戻ります。
- エクスポート後のスクリプトタブをクリックします。インポート前のスクリプトタブとまったく同じ設定にする必要があります。スクリプトおよび入力ファイルで同じファイルマスクと説明を使います。
- 違いは、実行するコマンドです。エクスポートされたファイルに対して実行するバッチファイルが異なるか、同じバッチファイルを使うけれどコマンドライン引数が異なるかのいずれかです。
- 使うバッチファイルが異なる場合:ファイルを追加を使ってこれを追加します。上部のリストからファイルタイプを選択します。新しいバッチファイルを選択し、続いてコマンドとして設定をクリックします。
- 使うバッチファイルが同じ場合:これが同じファイルタイプに対して選択されていることを確認してから、逆方向の変換を実行するようコマンドライン引数ボックスを変更します。例えば、XMLヘルプファイルをエクスポートする私たちのスクリプトの引数は、-xml2hm {InputFilePath} {OutputFilePath} backform.logです。
- コマンドのテストを実行ボタンでエクスポートスクリプトも試します。
- 完了したら、OK(O)をクリックします。
始める前に、少なくとも次の2つのファイルが必要です:
- 文書の実際の変換を行うメインプログラムファイル。他のファイルが必要な場合もあります。そのファイルをメインプログラムファイルでコピーする必要があります。
- メインプログラムファイルを開始するただ一つのコマンドが書き込まれたバッチファイル。これはプロジェクトテンプレートの中に置くファイルです。
このプログラムがエクスポートされた文書を元に戻さない場合、この役割を果たす別のプログラムが必要です。つまり、別のファイルが少なくとも2つ必要になります。
- メインプログラムファイルをサーバーのサービスユーザーの文書フォルダにコピーします。(例:c:\Users\_svc_mqsinternal\Documents\Scripting) memoQ TMSは、サービスユーザーの名の元でメインプログラムファイルを実行します。
- バッチファイルがサーバーの正しいフォルダを指していることをチェックします。例えば、バッチファイルには次のコマンドを含めることができます:
c:\Users\_svc_mqsinternal\Documents\Scripting\C_Converter.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
バッチファイルはC_Converter.exeというプログラムを開始し、最大で9個の引数をこれに渡します。このプログラムは、サーバーのC:\Users\_svc_mqsinternal\Documents\Scriptingフォルダにあるはずです。これはコンピュータ上のフォルダではありません。
実は、このコマンドはバッチファイル内にコピーすることが可能で、他のプログラムを呼び出している場合は、.exeファイルの名前を置換するだけです。このとき、当然フォルダをチェックします。
- memoQに戻り、同じサーバーに接続し、それからプロジェクトテンプレートを編集します。プロジェクトテンプレートは同じサーバーに存在する必要があります。
オンラインプロジェクト、オンラインテンプレート:オンラインプロジェクトを作成するときに、決してローカルプロジェクトを使わないでください。テンプレートが同じサーバーに存在することを確認してください。
- 自動操作を選択し、インポート前のスクリプトタブをクリックします。
- 選択したスクリプトの設定で、ファイルを追加をクリックします。メインプログラムを開始するバッチファイルを見つけて開きます。ここにはメインプログラムを追加しないでください。
スクリプトファイルまたはバッチファイルを置換するには:Settings for selected scriptsセクションでファイルを選択し、削除をクリックし、続いてファイルを追加をクリックして新しいファイルを追加します。
memoQは他のスクリプトを使って、他の文書タイプや他のフォルダの文書を前処理することができます。設定するには、ウィンドウのスクリプトとファイルの種類セクションを使います。
- ワイルドカード表現がフルパスと一致ボックスにファイルマスクを入力します。XMLヘルプファイルの例の場合、ここに*.xmlと入力します。スクリプト名に、このファイルタイプに対するわかりやすい名前を入力します。例:「セグメントがフラグメント化されたヘルプファイル」新しい項目として追加をクリックします。
- ファイルタイプとこの名前は、スクリプトおよび入力ファイルリストに表示されます。この項目をクリックします。
- 選択したスクリプトの設定セクションからバッチファイルを選択します。複数の文書タイプを複数のプログラムで処理するつもりで、バッチファイルを複数用意している場合は、このファイルタイプで使いたいものを選択します。コマンドとして設定をクリックします。
- 次にコマンドを設定します。コマンド名は、バッチファイルの名前と同じです。コマンドライン引数に、{入力ファイルパス}と{出力ファイルパス}を含める必要があります。これは、memoQが自動的に設定します。プログラム(スクリプト)は、入力ファイルを取得し、出力ファイルを生成する必要があります。入力ファイルはユーザーが受け取るソース文書で、出力ファイルはmemoQがインポートする変換された文書です。
プログラムには、他のコマンドライン引数も必要な場合があります。例えば、私たちのXML変換プログラム(XMLヘルプファイルのフラグメントを解消する)には、-hm2xml {InputFilePath} {OutputFilePath} transform.logが必要です。このとき、ファイル「transform.log」は、メインプログラムがあるフォルダに配置されます。
他のプレースホルダを使えば、プログラムがプロジェクトの識別子や、ソースとターゲット言語を処理することもできます。多くの場合、プログラムはこれらを使って、異なる目的の異なるファイルを分けておくためにフォルダを見つけたり作成したりします。
プレースホルダを挿入するには:プレースホルダの挿入をクリックし、メニューからプレースホルダを選択します。
- 入力ファイルパス:ソース文書の完全なパスと名前。このパスの正体を理解する必要はありません。memoQが自動的に生成するものです。
- 出力ファイルパス:プロジェクトでインポートされる変換された文書の完全なパスと名前。このパスの正体を理解する必要はありません。memoQが自動的に生成するものです。
- SrcLangIso2:プロジェクトのソース言語の2文字のコード。
- SrcLangIso3:プロジェクトのソース言語の3文字のコード。
- TrgLangListIso2:プロジェクトのターゲット言語の2文字コードのリスト。
- TrgLangListIso3:プロジェクトのターゲット言語の3文字コードのリスト。
- プロジェクトGUID:プロジェクトのグローバルに一意の識別子。これは長い数字で、同じものが二度使われることはありません。
- 最後に、スクリプトをテストできます。コマンドのテストを実行をクリックします。カスタムコードの実行 - テスト実行ウィンドウが表示されます。
- とにかく変換する必要がある文書を特定します。テキストボックスに文書のパスと名前を入力または貼り付けるか、または参照をクリックしてコンピュータ上で文書を特定します。OK(O)をクリックします。
memoQはスクリプトとサンプル文書をサーバーにアップロードしますが、外部プログラムはアップロードしません。memoQは、スクリプトをサーバー上で実行しようとします。
- テストが終わったら、終了コードとともにテスト結果メッセージが表示されます。プログラムの実行が成功した場合、終了コードは0です。エラーが発生した場合のコードは通常-1ですが、異なる数字の場合もあります。
前処理の手順が終わったら、エクスポート後のスクリプトを設定する必要があります。これにより、エクスポートされた文書が、クライアントが期待する形式に戻ります。
- エクスポート後のスクリプトタブをクリックします。インポート前のスクリプトタブとまったく同じ設定にする必要があります。スクリプトおよび入力ファイルで同じファイルマスクと説明を使います。
- 違いは、実行するコマンドです。エクスポートされたファイルに対して実行するバッチファイルが異なるか、同じバッチファイルを使うけれどコマンドライン引数が異なるかのいずれかです。
- 使うバッチファイルが異なる場合:ファイルを追加を使ってこれを追加します。上部のリストからファイルタイプを選択します。新しいバッチファイルを選択し、続いてコマンドとして設定をクリックします。
- 使うバッチファイルが同じ場合:これが同じファイルタイプに対して選択されていることを確認してから、逆方向の変換を実行するようコマンドライン引数ボックスを変更します。例えば、XMLヘルプファイルをエクスポートする私たちのスクリプトの引数は、-xml2hm {InputFilePath} {OutputFilePath} backform.logです。
- コマンドのテストを実行ボタンでエクスポートスクリプトも試します。
- 完了したら、OK(O)をクリックします。
インポートされた文書が設定したファイルタイプと一致した場合、memoQはインポートとエクスポートスクリプトを自動的に実行します。
例えば、XMLヘルプファイルを処理するスクリプトを使っている場合、拡張子が.xmlの文書をインポートしたときは必ずこのスクリプトが実行されます。
スクリプトを使うには、プロジェクトテンプレートからプロジェクトを作成し、スクリプトで設定した名前または拡張子を持つ文書をインポートします。インポートスクリプトはmemoQが文書をインポートする前に自動的に実行し、エクスポートスクリプトはmemoQが文書をエクスポートした後に自動的に実行します。
変換された文書の名前は表示されません:翻訳リストに表示されるのは、インポートされた文書の元の名前とタイプで、変換後の文書の名前とタイプではありません。結果として、翻訳エディタの書式とタグは、元のファイルから期待されるものとは若干異なる場合があります。
通常、スクリプト(プログラム全体)は、プロジェクトテンプレートに含めます。memoQはこれをフォルダに抽出して実行します。スクリプトに問題があることが見つかるまでは、このように機能します。
このため、問題はプロジェクトテンプレートで修正することができます。しかし、スクリプトを置換するなど、テンプレートの内容を変更した場合にその影響を受けるのは、新しいプロジェクトのみです。既存のプロジェクトに問題がある場合、テンプレートでスクリプトを置換してもそれは変わりません。プログラム全体がテンプレート内に存在する場合は、スクリプトを変更する必要がある場合はプロジェクトを作り直す必要があります。
ベストプラクティスは、メインプログラムのロジックをプロジェクトテンプレートに置かないことです。代わりに、プロジェクトの場所となるコンピュータ、つまりローカルプロジェクトの場合は自分のコンピュータ、オンラインプロジェクトの場合はmemoQ TMS、のフォルダにプログラムをコピーします。
それから、単純なバッチファイルをプロジェクトテンプレートに追加します。バッチファイルのタスクは1つだけです。それは、メインプログラムを実行し、実際のmemoQプロジェクトから引数(ファイル名など)を伝えることです。例として、このトピックの前半で紹介した「オンラインプロジェクトのスクリプトを設定する」を見てみましょう。
このプロジェクトテンプレートからプロジェクトを作成し、文書をインポートしたときに問題が発生した場合、次のことを行います:
- メインプログラムを修正するか、ともに作業する開発者に修正してもらいます。
- 独立したフォルダにプログラムを置換します。
- 文書を再インポートします。このとき、memoQが実行するバッチファイルは以前と同じですが、バッチファイルが呼び出すメインプログラムは修正されたため、文書の前処理は前回と異なるはずです。
プロジェクトテンプレートを変更する必要はありません。さらに重要な点は、プロジェクトを作り直す必要がないことです。文書を再インポートし、スクリプトが修正されたかどうかを確認するだけです。
完了したら
プロジェクトテンプレートを保存し、リソースコンソールに戻るには:OK(O)をクリックします。
次のステップ:テンプレートの作業が終わったら、リソースコンソールを閉じて、テンプレートからプロジェクトを作成します。
プロジェクトテンプレートの作業を続けるには:他のカテゴリを選択し、他の設定を調整します。
リソースコンソールに戻り、プロジェクトテンプレートを保存しない場合は:キャンセル(C)をクリックします。