Skip to content

aquanjsw/flash_translation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Utils for translating Flash games

一些有助于翻译 Flash 游戏的脚本。

其实直接在 FFDec 中修改文本也可以,但我只是想在一个地方集中所有的文本,比较方便;另外,可以借助类似于Copilot的工具辅助翻译。

翻译流程

  1. 收集*.swf文件。 如果游戏被打包为*.exe文件,可以使用本项目下的swf_extractor 提取出*.swf文件。
  2. 提取文本标签。 利用FFDec打开*.swf文件(建议用英文界面),选中包含待翻译文本的标签(例如texts节点下的DefineEditText),右键导出为formated text,这样就会在以节点命名的目录下输出一系列*.txt文件(由于缺乏实验,不确定是否所有的文本都在同一节点下。如有不同,则接下来的操作可能需要一些小变通)
  3. 收集待翻译文本。 各个文本都分散在不同的*.txt文件中,不利于翻译。可以使用gather.py脚本收集某个目录下的所有*.txt文件中的文本,输出到一个*.json文件中。
  4. 翻译*.json中的文本。
  5. 将翻译结果写回到*.txt文件中。 可以使用translate.py脚本将翻译结果写回到*.txt文件中。脚本运行后还会打印出用到的所有字符,先复制到剪切板。
  6. 嵌入字符。 查看FFDec中的各个文本标签用的font face是什么,然后在fonts节点下找到这个font face,右下角Source Font选中一个将要显示翻译文本的字体,然后粘贴剪切板中的字符到右下角的Add characters中,然后OK。
  7. *.txt文件嵌入*.swf中。 在FFDec中的Import标签下,用Import Texts选项导入*.txt文件(注意要打开的是节点所在的目录),随后检查一下节点下的各个标签是否替换成功。
  8. 测试与保存。 可以在FFDec的设置中设置一个sa flash文件路径,这样就可以在FFDec中直接测试 修改后的*.swf文件了。如无问题,可以Save或Save as保存修改后的*.swf文件。

About

Utils for translating Flash games

Resources

Stars

Watchers

Forks

Packages

No packages published