SWF(Adobe Flash)文件的日语到英语翻译工具
该Python工具可用于从SWF资产中提取字符串以进行翻译,进行翻译本身(基于云或离线),然后将翻译字符串写回资产。您还需要开源JPEXS FLASH分解器才能将资产移入SWF文件中。
PytranslateSWF已获得MIT许可证(请参阅LICENSE.txt )。
您将需要Python 3.6+和以下库:
...如果您想使用Microsoft Azure翻译服务(建议):
pip install regex uuid requests...如果您想使用提供的离线翻译器:
pip install regex jamdict stanza我们将使用JPEXS Flash分解器,然后translateSfw.py脚本与库进行交互。您可以使用-h获得帮助: translateSfw.py -h或translateSfw.py translate -h 。
texts和scripts文件夹,然后单击上面的功能区中的Export Selection按钮。确保将文本作为“纯文本”和脚本导出为“ ActionScript”。texts和scripts子目录)。在您的工作目录中,运行以下内容:
translateSfw.py gather这将生成一个带有所有(唯一)提取的字符串的JSON文件,可以进行翻译。请注意,这不太可能提取100%的文本,特别是将文本保存为bitmap/vector图形以及启发式启发式词语中的任何字符串文字。
如果您使用的是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 Text和Import Scripts按钮,以从工作目录中加载修改的资产。Save As...并生成翻译的SWF文件。 当前,有两个可用的后端用于机器翻译:Microsoft Azure认知服务转换器(基于云的“适当”机器翻译)和自定义离线解决方案(基于字典,略有可用)。如果可能的话,建议使用Microsoft Azure-您需要订阅键来执行此操作。
| 输入文本 | 翻译(Microsoft Azure) | 翻译(离线翻译器) |
|---|---|---|
| こんにちは世界 | 你好世界 | Konnichi HA世界 |
此外,您可以跳过机器翻译步骤,然后自己翻译提取的字符串。他们被存储为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。