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。