diff --git a/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties b/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
index 7a0aedeb5..f10ca72aa 100644
--- a/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
+++ b/jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
@@ -12,7 +12,7 @@ menu.heapUsageBar=显示内存使用栏
menu.navigation=导航
menu.text_search=搜索文本
menu.class_search=搜索类
-#menu.comment_search=Comment search
+menu.comment_search=搜索注释
menu.tools=工具
menu.deobfuscation=反混淆
menu.log=日志查看器
@@ -21,7 +21,7 @@ menu.about=关于
menu.update_label=发现新版本 %s!
file.open_action=打开文件...
-#file.add_files_action=Add files ...
+file.add_files_action=添加文件...
file.open_title=打开文件
file.new_project=新建项目
file.save_project=保存项目
@@ -33,10 +33,10 @@ file.exit=退出
tree.sources_title=源代码
tree.resources_title=资源文件
-tree.loading=稍等...
+tree.loading=加载中...
-progress.load=稍等
-progress.decompile=Decompiling
+progress.load=正在加载
+progress.decompile=反编译中
#progress.index=Indexing
error_dialog.title=错误
@@ -59,25 +59,25 @@ tabs.code=代码
nav.back=后退
nav.forward=前进
-#message.taskTimeout=Task exceeded time limit of %d ms.
-#message.userCancelTask=Task was canceled by user.
-#message.memoryLow=Jadx is running low on memory. Please restart with increased maximum heap size.
-#message.taskError=Task failed with error (check log for details).
-#message.errorTitle=Error
-#message.load_errors=Load failed.\nErrors count: %d\nClick OK to open log viewer"
-#message.no_classes=No classes loaded, nothing to decompile!
+message.taskTimeout=任务超过了 %d 毫秒时间限制.
+message.userCancelTask=任务被用户取消
+message.memoryLow=JADX内存不足,请增加maximum heap size后重新启动
+message.taskError=任务失败,出现错误(详情请查看日志)
+message.errorTitle=错误
+message.load_errors=加载失败.\n错误数: %d\n点击查看日志"
+message.no_classes=没有类被加载, 没什么能反编译的!
-#message.saveIncomplete=Save incomplete.
%s
%d classes or resources were not saved!
-#message.indexIncomplete=Index of some classes skipped.
%s
%d classes were not indexed and will not appear in search results!
+message.saveIncomplete=保存未完成.
%s
%d 类或资源未被保存!
+message.indexIncomplete=已跳过某些类索引.
%s
%d 类未被索引,不会出现在搜索结果中!
message.indexingClassesSkipped=Jadx 的内存不足。因此,%d 类没有编入索引。
如果要将所有类编入索引,请使用增加的最大堆大小重新启动 Jadx。
heapUsage.text=JADX 内存使用率:%.2f GB 共 %.2f GB
-#common_dialog.ok=Ok
-#common_dialog.cancel=Cancel
-#common_dialog.add=Add
-#common_dialog.update=Update
-#common_dialog.remove=Remove
+common_dialog.ok=确定
+common_dialog.cancel=取消
+common_dialog.add=添加
+common_dialog.update=更新
+common_dialog.remove=移除
search_dialog.open=转到
search_dialog.cancel=取消
@@ -95,19 +95,19 @@ search_dialog.info_label=显示了 %3$d 个结果中的第 %1$d 至第 %2$d 个
search_dialog.col_node=节点
search_dialog.col_code=代码
search_dialog.regex=正则表达式
-#search_dialog.active_tab=Active tab only
-#search_dialog.comments=Comments
-#search_dialog.resource=
-#search_dialog.keep_open=
-#search_dialog.tip_searching=
+search_dialog.active_tab=只在当前页搜索
+search_dialog.comments=注释
+search_dialog.resource=资源
+search_dialog.keep_open=保持窗口
+search_dialog.tip_searching=搜索中
usage_dialog.title=查找
usage_dialog.label=查找用例:
-#comment_dialog.title.add=Add code comment
-#comment_dialog.title.update=Update code comment
-#comment_dialog.label=Comment:
-#comment_dialog.usage=
+comment_dialog.title.add=添加代码注释
+comment_dialog.title.update=更新代码注释
+comment_dialog.label=注释:
+comment_dialog.usage=使用Shift + Enter键换行
log_viewer.title=日志查看器
log_viewer.log_level=日志等级:
@@ -116,12 +116,12 @@ about_dialog.title=关于 JADX
preferences.title=首选项
preferences.deobfuscation=反混淆
-#preferences.appearance=Appearance
+preferences.appearance=界面
preferences.decompile=反编译
preferences.project=项目
preferences.other=其他
preferences.language=语言
-#preferences.lineNumbersMode=Editor line numbers mode
+preferences.lineNumbersMode=编辑器行号模式
preferences.check_for_updates=启动时检查更新
preferences.fallback=输出中间代码
preferences.showInconsistentCode=显示不一致的代码
@@ -130,10 +130,10 @@ preferences.replaceConsts=替换常量
preferences.respectBytecodeAccessModifiers=遵守字节码访问修饰符
preferences.useImports=使用 import 语句
preferences.inlineAnonymous=内联匿名类
-#preferences.inlineMethods=Inline methods
+preferences.inlineMethods=内联方法
preferences.fsCaseSensitive=文件系统区分大小写
preferences.skipResourcesDecode=不反编译资源文件
-#preferences.commentsLevel=Code comments level
+preferences.commentsLevel=代码注释等级
preferences.autoSave=自动保存
preferences.threads=并行线程数
preferences.excludedPackages=排除的包
@@ -143,12 +143,12 @@ preferences.excludedPackages.editDialog=将不被解压或索引的以空
preferences.cfg=生成方法的 CFG 图(以 .dot 格式保存)
preferences.raw_cfg=生成原始的 CFG 图
preferences.font=编辑器字体
-#preferences.smali_font=
-#preferences.laf_theme=Theme
+preferences.smali_font=smali编辑器字体
+preferences.laf_theme=主题
preferences.theme=编辑器主题
preferences.start_jobs=自动进行后台反编译
-preferences.select_font=更改
-#preferences.select_smali_font=
+preferences.select_font=修改
+preferences.select_smali_font=修改
preferences.deobfuscation_on=启用反混淆
preferences.deobfuscation_force=强制覆盖反混淆映射文件
preferences.deobfuscation_min_len=最小命名长度
@@ -160,15 +160,15 @@ preferences.cancel=取消
preferences.reset=重置
preferences.reset_message=要恢复默认设置吗?
preferences.reset_title=重置设置
-#preferences.copy=Copy to clipboard
-#preferences.copy_message=All settings values has been copied to clipboard
+preferences.copy=复制到剪切板
+preferences.copy_message=所有设置都已复制
preferences.rename=重命名
preferences.rename_case=系统区分大小写
preferences.rename_valid=是有效的标识符
preferences.rename_printable=是可打印
-#preferences.search_res_title=
-#preferences.res_file_ext=
-#preferences.res_skip_file=
+preferences.search_res_title=搜索资源
+preferences.res_file_ext=文件扩展名 (e.g. .xml|.html), * 表示所有
+preferences.res_skip_file=跳过文件大小(MB)
msg.open_file=请打开文件
msg.saving_sources=正在导出源代码
@@ -178,12 +178,12 @@ msg.index_not_initialized=索引尚未初始化,无法进行搜索!
msg.project_error_title=错误
msg.project_error=项目无法加载
msg.cmd_select_class_error=无法选择类\n%s\n该类不存在。
-#msg.rename_node_disabled=
-#msg.rename_node_failed=
-#msg.cant_add_comment=Can't add comment here
+msg.rename_node_disabled=无法重命名此节点
+msg.rename_node_failed=无法重命名 %s
+msg.cant_add_comment=无法在此添加注释
-#popup.bytecode_col=
-#popup.line_wrap=
+popup.bytecode_col=显示Dalvik字节码
+popup.line_wrap=自动换行
popup.undo=撤销
popup.redo=重做
popup.cut=剪切
@@ -193,19 +193,19 @@ popup.delete=删除
popup.select_all=全选
popup.find_usage=查找用例
popup.go_to_declaration=跳到声明
-popup.exclude=排除
-#popup.exclude_packages=Exclude packages
-#popup.add_comment=Comment
-#popup.search_comment=Search comments
-popup.rename=改名
-#popup.search=
-#popup.search_global=
+popup.exclude=排除此包
+popup.exclude_packages=排除包
+popup.add_comment=注释
+popup.search_comment=搜索注释
+popup.rename=重命名
+popup.search=搜索 "%s"
+popup.search_global=全局搜索 "%s"
-#exclude_dialog.title=Package Selector
-#exclude_dialog.ok=OK
-#exclude_dialog.select_all=Select all
-#exclude_dialog.deselect=Deselect
-#exclude_dialog.invert=Invert
+exclude_dialog.title=选择要排除的包
+exclude_dialog.ok=确定
+exclude_dialog.select_all=全选
+exclude_dialog.deselect=取消选择
+exclude_dialog.invert=反选
confirm.save_as_title=确认另存为
confirm.save_as_message=%s 已存在。\n你想替换它吗?
@@ -239,56 +239,56 @@ apkSignature.warnings=警告
apkSignature.exception=APK 验证失败
apkSignature.unprotectedEntry=不受签名保护的文件。不会检测对此 JAR 条目的未经授权的修改。
-#issues_panel.label=Issues:
-#issues_panel.errors=%d errors
-#issues_panel.warnings=%d warnings
-#issues_panel.tooltip=Open in log viewer
+issues_panel.label=问题:
+issues_panel.errors=%d 错误
+issues_panel.warnings=%d 警告
+issues_panel.tooltip=点击查看日志
-#debugger.process_selector=Select a process to debug
-#debugger.step_into=Step Into (F7)
-#debugger.step_over=Step Over (F8)
-#debugger.step_out=Step Out (Shift + F8)
-#debugger.run=Run (F9)
-#debugger.stop=Stop debugger and kill app
-#debugger.pause=Pause
-#debugger.rerun=Rerun
-#debugger.cfm_dialog_title=Exit while debugging
-#debugger.cfm_dialog_msg=Are you sure to terminate debugger?
+debugger.process_selector=选择要调试的进程
+debugger.step_into=步入 (F7)
+debugger.step_over=步过 (F8)
+debugger.step_out=强制步过 (Shift + F8)
+debugger.run=运行 (F9)
+debugger.stop=停止调试并终止APP
+debugger.pause=暂停
+debugger.rerun=重新运行
+debugger.cfm_dialog_title=在调试时退出
+debugger.cfm_dialog_msg=您确定要终止调试器吗?
-#debugger.popup_set_value=Set Value
+debugger.popup_set_value=修改值
#debugger.popup_change_to_zero=Change to 0
#debugger.popup_change_to_one=Change to 1
-#debugger.popup_copy_value=Copy Value
+debugger.popup_copy_value=复制值
-#set_value_dialog.label_value=Value
-#set_value_dialog.btn_set=Set Value
-#set_value_dialog.title=Set Value
-#set_value_dialog.neg_msg=Failed to set value.
-#set_value_dialog.sel_type=Select a type to set value.
+set_value_dialog.label_value=值
+set_value_dialog.btn_set=修改
+set_value_dialog.title=修改值
+set_value_dialog.neg_msg=修改值失败.
+set_value_dialog.sel_type=选择要修改值的类型.
-#adb_dialog.addr=ADB Addr
-#adb_dialog.port=ADB Port
-#adb_dialog.path=ADB Path
-#adb_dialog.launch_app=Launch App
-#adb_dialog.start_server=Start ADB Server
-#adb_dialog.refresh=Refresh
-#adb_dialog.tip_devices=%d devices
-#adb_dialog.device_node=Device
-#adb_dialog.missing_path=Must provide the ADB path to start an ADB server.
-#adb_dialog.waiting=Waiting to connect to ADB server...
-#adb_dialog.connecting=Connecting to ADB server, addr: %s:%s...
-#adb_dialog.connect_okay=ADB server connected, addr: %s:%s
-#adb_dialog.connect_fail=Failed to connect to ADB server.
-#adb_dialog.disconnected=ADB server disconnected.
-#adb_dialog.start_okay=ADB server started on port: %s.
-#adb_dialog.start_fail=Failed to start ADB server on port: %s!
+adb_dialog.addr=ADB IP
+adb_dialog.port=ADB 端口
+adb_dialog.path=ADB 路径
+adb_dialog.launch_app=运行APP
+adb_dialog.start_server=启动ADB服务
+adb_dialog.refresh=刷新
+adb_dialog.tip_devices=%d 设备
+adb_dialog.device_node=设备
+adb_dialog.missing_path=必须提供ADB路径才能启动ADB服务
+adb_dialog.waiting=正在等待连接到ADB服务...
+adb_dialog.connecting=正在连接ADB服务, 地址: %s:%s...
+adb_dialog.connect_okay=已连接ADB服务, 地址: %s:%s
+adb_dialog.connect_fail=连接ADB服务失败
+adb_dialog.disconnected=ADB服务已断开连接.
+adb_dialog.start_okay=ADB服务启动成功 端口: %s.
+adb_dialog.start_fail=ADB服务启动失败 端口: %s!
#adb_dialog.forward_fail=Failed to forward for some reasons.
-#adb_dialog.being_debugged_msg=This process seems like it's being debugged, should we proceed?"
-#adb_dialog.unknown_android_ver=Failed to get Android release version, use Android 8 as default?
-#adb_dialog.being_debugged_title=It's Debugging by other.
-#adb_dialog.init_dbg_fail=Failed to init debugger.
-#adb_dialog.msg_read_mani_fail=Failed to decode AndroidManifest.xml
-#adb_dialog.no_devices=Can't found any device to start app.
-#adb_dialog.restart_while_debugging_title=Restart while debugging
-#adb_dialog.restart_while_debugging_msg=You're debugging an app, are you sure to restart a session?
-#adb_dialog.starting_debugger=Starting debugger...
+adb_dialog.being_debugged_msg=这个进程似乎正在调试,是否继续?
+adb_dialog.unknown_android_ver=获取安卓版本失败,是否默认使用安卓8
+adb_dialog.being_debugged_title=它正在由其他人调试。
+adb_dialog.init_dbg_fail=初始化调试器失败。
+adb_dialog.msg_read_mani_fail=解码AndroidManifest.xml失败
+adb_dialog.no_devices=找不到任何设备用来启动APP
+adb_dialog.restart_while_debugging_title=调试时重新启动
+adb_dialog.restart_while_debugging_msg=你正在调试一个APP,确定要重新启动一个会话吗?
+adb_dialog.starting_debugger=正在启动调试器...