JPEXS Free Flash Decompiler国际化支持:多语言界面切换教程
引言
你是否曾因软件界面语言与母语不符而感到困扰?JPEXS Free Flash Decompiler(以下简称FFDec)作为一款功能强大的Flash反编译工具,提供了全面的国际化支持,让用户能够轻松切换到熟悉的语言环境。本文将详细介绍FFDec的国际化架构、支持的语言种类以及具体的界面切换方法,帮助你快速上手多语言功能。
读完本文后,你将能够:
- 了解FFDec国际化实现的底层原理
- 掌握通过图形界面切换语言的详细步骤
- 学会使用命令行参数指定界面语言
- 解决语言切换过程中可能遇到的常见问题
- 了解如何参与FFDec的翻译贡献
FFDec国际化架构解析
国际化核心组件
FFDec的国际化支持主要依赖于AppStrings类和资源文件系统。AppStrings类作为国际化核心,提供了以下关键方法:
public class AppStrings {
// 设置资源类,用于定位语言文件
public static void setResourceClass(Class cls);
// 获取指定键的翻译文本
public static String translate(String key);
// 从指定类的资源文件中获取翻译
public static String translate(Class bundleClass, String key);
// 更新语言设置,重新加载资源文件
public static void updateLanguage();
}
语言资源文件结构
FFDec采用标准Java资源束(ResourceBundle)机制存储翻译文本,所有语言文件集中存放在以下目录:
src/com/jpexs/decompiler/flash/gui/locales/
每个语言文件遵循基础名称_语言代码.properties的命名规范,例如:
MainFrame.properties(默认英语)MainFrame_zh.properties(简体中文)MainFrame_fr.properties(法语)
国际化实现流程
FFDec的语言切换流程如下:
支持的语言种类
FFDec目前支持多种语言,覆盖全球主要地区。通过分析语言文件,我们整理出以下支持的语言(按语言代码排序):
| 语言代码 | 语言名称 | 资源文件示例 |
|---|---|---|
| ca | 加泰罗尼亚语 | MainFrame_ca.properties |
| cs | 捷克语 | MainFrame_cs.properties |
| de | 德语 | MainFrame_de.properties |
| es | 西班牙语 | MainFrame_es.properties |
| fr | 法语 | MainFrame_fr.properties |
| hu | 匈牙利语 | MainFrame_hu.properties |
| it | 意大利语 | MainFrame_it.properties |
| ja | 日语 | MainFrame_ja.properties |
| nl | 荷兰语 | MainFrame_nl.properties |
| pl | 波兰语 | MainFrame_pl.properties |
| pt | 葡萄牙语 | MainFrame_pt.properties |
| pt_BR | 巴西葡萄牙语 | MainFrame_pt_BR.properties |
| ru | 俄语 | MainFrame_ru.properties |
| sv | 瑞典语 | MainFrame_sv.properties |
| tr | 土耳其语 | MainFrame_tr.properties |
| zh | 简体中文 | MainFrame_zh.properties |
注意:部分语言可能仅完成部分翻译,完整度因贡献者活跃度而异。
图形界面语言切换方法
步骤一:打开语言设置对话框
- 启动FFDec应用程序
- 在菜单栏中选择 编辑(Edit) -> 设置(Settings)
- 在设置对话框中,选择 界面(Interface) 选项卡
- 点击 语言(Language) 下拉菜单
或者,你也可以通过快捷键 Ctrl+Shift+L 直接打开语言选择对话框。
步骤二:选择目标语言
在语言选择对话框中,你可以看到所有可用的语言列表:
选择你需要的语言,例如"简体中文",然后点击"确定"按钮。
步骤三:应用语言设置
- 选择语言后,系统会提示需要重启应用才能生效
- 点击"重启(Restart)"按钮,FFDec将自动关闭并重新启动
- 重启后,界面将以你选择的语言显示
提示:如果你不想立即重启,可以点击"稍后(Later)"按钮,语言设置将在下次启动时生效。
命令行语言切换方法
对于高级用户或自动化场景,FFDec提供了命令行参数来指定界面语言。
基本语法
java -jar ffdec.jar -language <语言代码>
常用语言代码示例
| 语言 | 命令行参数 |
|---|---|
| 简体中文 | -language zh |
| 日语 | -language ja |
| 德语 | -language de |
| 法语 | -language fr |
| 俄语 | -language ru |
批量处理时的语言设置
在进行批量反编译时,可以通过以下命令指定输出文本的语言:
java -jar ffdec.jar -export script "input.swf" "output/" -language zh
这将确保反编译过程中生成的所有文本(如变量名、注释等)都使用指定的语言。
常见问题解决
语言设置不生效
如果切换语言后界面没有变化,请尝试以下解决方案:
-
检查语言文件完整性
- 确认对应语言的资源文件存在于
locales目录中 - 检查文件名格式是否正确(如
MainFrame_zh.properties)
- 确认对应语言的资源文件存在于
-
清除配置缓存 FFDec的配置文件通常位于以下位置:
- Windows:
C:\Users\<用户名>\.ffdec\config.xml - Linux:
~/.ffdec/config.xml - macOS:
~/Library/Application Support/ffdec/config.xml删除或编辑此文件,查找并修改语言设置:
<language>zh</language> - Windows:
-
手动指定语言文件路径 如果语言文件位置异常,可以通过命令行参数指定:
java -jar ffdec.jar -resourcepath com/jpexs/decompiler/flash/gui/locales/ -language zh
界面文本混合显示
当部分文本仍然显示为英语时,通常是因为:
- 翻译不完整:该文本尚未被翻译成目标语言
- 缓存问题:旧的语言资源仍被缓存
解决方案:
- 更新到FFDec最新版本,获取最新的翻译
- 手动编辑对应语言文件,添加缺失的翻译
- 清除Java缓存:
java -jar ffdec.jar -clearcache
自定义语言文件
如果你需要使用自定义的翻译,可以:
- 创建自定义语言文件,如
MainFrame_my.properties - 使用
-language my参数启动FFDec - 将自定义文件放置在
locales目录中
翻译贡献指南
如果你希望帮助FFDec支持更多语言或改进现有翻译,可以按照以下步骤贡献:
获取翻译模板
-
从FFDec仓库获取最新的默认语言文件(英语):
git clone https://gitcode.com/gh_mirrors/jp/jpexs-decompiler.git cd jpexs-decompiler/src/com/jpexs/decompiler/flash/gui/locales/ -
选择一个基础文件作为模板,如
MainFrame.properties
翻译文件格式
语言文件采用键值对格式,示例:
# 菜单标签
menu.file=文件
menu.edit=编辑
menu.view=视图
# 按钮文本
button.open=打开
button.save=保存
button.exit=退出
注意:等号(=)后面的文本为翻译内容,井号(#)开头的行为注释
提交翻译
- 将完成的翻译文件命名为
文件名_语言代码.properties - 通过GitHub或GitCode的Pull Request功能提交
- 详细描述你的翻译语言和翻译范围
- 等待项目维护者审核和合并
总结
JPEXS Free Flash Decompiler通过灵活的国际化架构,为全球用户提供了友好的多语言界面支持。无论是通过图形界面还是命令行,用户都可以轻松切换到熟悉的语言环境。本文详细介绍了FFDec国际化的实现原理、支持的语言种类、具体的切换方法以及常见问题的解决方案,帮助用户充分利用FFDec的多语言功能。
如果你在使用过程中发现翻译错误或有改进建议,欢迎参与FFDec的翻译贡献,共同提升工具的国际化水平。FFDec的开源社区始终欢迎来自世界各地的贡献者,你的每一个翻译都将帮助更多用户更好地使用这款优秀的Flash反编译工具。
参考资料
- JPEXS Free Flash Decompiler官方文档: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler
- Java国际化编程指南: https://docs.oracle.com/javase/tutorial/i18n/
- Java ResourceBundle类文档: https://docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html
- FFDec翻译贡献指南: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler/blob/master/CONTRIBUTING.md
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



