SWF(Adobe Flash)ファイル用の日本から英語から英語への翻訳ツール
このPythonツールは、翻訳のためにSWFアセットから文字列を抽出し、翻訳自体(クラウドベースまたはオフライン)を実行し、翻訳された文字列を資産に書き戻すために使用できます。また、SWFファイルの内外でアセットを移動するには、オープンソースJPEXS Flash Decompilerが必要です。
pytranslateswfは、MITライセンスの下でライセンスされています( LICENSE.txtを参照)。
Python 3.6+と次のライブラリが必要です。
... Microsoft Azure Translation Service(推奨)を使用する場合:
pip install regex uuid requests...提供されたオフライン翻訳者を使用する場合:
pip install regex jamdict stanzaJPEXS Flash Decompilerを使用して、fw.pyスクリプトtranslateSfw.pyてライブラリと対話します。 -hを使用してヘルプを取得できます: translateSfw.py -hまたはtranslateSfw.py translate -h 。
textsとscriptsフォルダーを選択し、上のリボンのExport Selectionボタンをクリックします。 「プレーンテキスト」としてテキストをエクスポートし、スクリプトを「ActionScript」としてエクスポートしてください。textsとscriptsサブディレクトリが必要になります)。作業ディレクトリで、次のことを実行します。
translateSfw.py gatherこれにより、すべての(一意の)抽出された文字列を備えたJSONファイルが生成され、翻訳の準備が整います。これは、テキストの100%を抽出する可能性は低いことに注意してください。特に、ビットマップ/ベクトルグラフィックスおよびHeuristicが見逃したActionScriptの文字列リテラルとして保存されたテキスト。
Microsoft Azure(推奨)を使用している場合は、以下を実行してください。
translateSfw.py translate azure --azure-subscription-key < YOUR-KEY > --azure-subscription-region < YOUR-REGION >また、オフライン翻訳バックエンド(はるかに低品質のテキストが生成されます)を使用することもできます。
translateSfw.py translate offline作業ディレクトリで、次のことを実行します。
translateSfw.py exportこれにより、新しい文字列で資産が変更されます。スクリプトは資産の新しい文字列に混乱するため、これを行うと再度gatherたりexportしないでください。別の方法で何かをしたい場合は、資産を削除し、それらをエクスポートして再び開始します(ステップ1を参照)。
Import ScriptsボタンをImport Textし、ワーキングディレクトリから修正された資産をロードします。Save As...翻訳されたSWFファイルを生成します。 現在、機械翻訳用の2つの利用可能なバックエンドがあります。MicrosoftAzureCognitive Services Translator(クラウドベース、「適切な」機械翻訳)とカスタムオフラインソリューション(辞書ベース、わずかに使用可能)です。可能であれば、Microsoft Azureを使用することをお勧めします - それを行うにはサブスクリプションキーが必要です。
| 入力テキスト | 翻訳(Microsoft Azure) | 翻訳(オフライン翻訳者) |
|---|---|---|
| こんにちは世界 | こんにちは世界 | Konnichi ha the World |
さらに、機械の翻訳ステップをスキップして、抽出された文字列を自分で翻訳することができます。それらはJSONとして保存されます。
Translatorサブクラスは次のように使用されます。
from pyTranslateSwf import OfflineTranslator , MicrosoftAzureTranslator
translator = OfflineTranslator ()
input_strings = [ "こんにちは世界" ]
output_strings = translator . translate_all ( input_strings )
print ( output_strings [ 0 ]) Parserサブクラスは次のように使用されます。
from pyTranslateSwf import JPEXSActionScriptParser , JPEXSPlainTextParser
parser = JPEXSActionScriptParser ( "./scripts/test.as" )
input_strings = parser . get_extracted_strings ()
output_strings = [ my_translate_function ( s ) for s in input_strings ]
parser . replace_strings ( output_strings )
parser . save ()詳細については、モジュールとクラスのDocstringsを参照してください。