Инструмент перевода японского перевода для файлов SWF (Adobe Flash)
Этот инструмент Python может использоваться для извлечения строк из активов SWF для перевода, сделать сам перевод (облачный или офлайн) и записать переведенные строки обратно в активы. Вам также понадобится декомпилятор 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% текстов, в частности, тексты, сохраненные как растровая/векторная графика, и любые струнные литералы в 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 Text и Import Scripts в ленте выше, чтобы загрузить модифицированные активы из рабочего каталога.Save As... в ленте» и генерируйте свой переведенный файл SWF. В настоящее время существует две доступные бэкэнды для машинного перевода: перевод Microsoft Azure Cognitive Services (облачный, «правильный» машинный перевод) и пользовательское офлайн-решение (на основе словаря, незначительно полезных). По возможности, рекомендуется использовать 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 для получения дополнительной информации.