Commit Graph

191 Commits

Author SHA1 Message Date
辉鸭蛋
a0584f6fdc feat(script): 向脚本引擎添加新的Bv视觉类
添加BvPage、BvLocator和BvImage类型到脚本引擎的宿主对象中,扩展脚本的视觉识别能力。
2026-02-18 13:03:02 +08:00
辉鸭蛋
9f67726781 I18n v2 (#2709)
* feat(i18n): 添加界面与日志的国际化支持

- 新增 ITranslationService 接口及 JsonTranslationService 实现,提供基于 JSON 的翻译服务
- 添加 TrConverter 转换器,支持通过绑定动态翻译界面文本
- 引入 AutoTranslateInterceptor 行为,自动扫描并翻译界面中的静态文本
- 集成 TranslatingSerilogLoggerProvider,实现日志输出的实时翻译
- 在 App.xaml 中注册全局样式,为 Window、UserControl 和 Page 启用自动翻译

* refactor(AutoTranslateInterceptor): 优化自动翻译拦截器的加载与应用机制

- 移除 HomePage 中冗余的 EnableAutoTranslate 属性设置,改为继承属性
- 通过类构造函数注册全局 Loaded 事件处理器,替代在每个元素上单独添加
- 引入请求队列机制,批量处理待应用翻译的元素,避免重复调度
- 扩展属性类型检查,支持 object 类型以处理更多动态内容场景

* fix: 移除全局自动翻译拦截器以避免冲突

移除在 App.xaml 中为 Window、UserControl 和 Page 全局设置的 AutoTranslateInterceptor,
改为仅在 PickerWindow 中显式启用。这解决了全局样式可能导致的意外行为或冲突。

* feat(ui): 为多个窗口启用自动翻译拦截器

为 MapLabelSearchWindow、ArtifactOcrDialog、PromptDialog 等 14 个窗口添加了 AutoTranslateInterceptor.EnableAutoTranslate 属性,以启用自动翻译拦截功能。

* feat(i18n): 添加国际化目录支持并优化异常处理

* feat(ui): 添加软件UI语言设置并改进翻译服务

- 在通用设置页面新增UI语言选择控件,支持动态切换界面语言
- 修改游戏语言标签为“原神游戏语言”以明确区分
- 改进JsonTranslationService,支持UI语言切换时的实时翻译更新
- 优化AutoTranslateInterceptor,缓存原始文本值并在语言切换时恢复
- 添加属性变更监听机制,确保UI元素在语言切换后正确刷新

* feat(自动翻译): 添加排除自动翻译的依赖属性

在 AutoTranslateInterceptor 中新增 ExcludeAutoTranslate 附加属性,允许对特定依赖对象禁用自动翻译功能。当遍历元素进行翻译时,会检查此属性并跳过已标记排除的元素。

* feat(translation): 为缺失文本翻译添加详细上下文信息

扩展翻译服务以收集缺失文本的详细上下文,包括视图路径、元素类型、属性名等。
重构 `ITranslationService` 接口,引入 `TranslationSourceInfo` 类封装上下文信息。
修改 `AutoTranslateInterceptor` 自动收集 UI 元素信息,`JsonTranslationService` 合并多来源上下文。

* Revert "feat(自动翻译): 添加排除自动翻译的依赖属性"

This reverts commit a1c2334951.

* fix: 跳过 GridViewRowPresenter 中的文本翻译

添加 IsInGridViewRowPresenter 检查,避免在 GridViewRowPresenter 控件内进行自动翻译,防止潜在的界面显示问题。

* fix: 修复自动翻译拦截器在组合框上下文中的误触发

在自动翻译拦截器中添加了 IsInComboBoxContext 方法,用于检测依赖对象是否处于 ComboBox 或其相关弹出菜单的上下文中。当检测到对象位于组合框上下文时,跳过自动翻译逻辑,避免对下拉选项等界面元素进行不必要的翻译操作,从而解决潜在的界面干扰问题。

* feat(translation): 添加缺失翻译上报至 Supabase 的功能

- 新增 IMissingTranslationReporter 接口及 SupabaseMissingTranslationReporter 实现
- 在 JsonTranslationService 中集成缺失翻译上报逻辑
- 添加缺失翻译收集的配置设置(MissingTranslationCollectionSettings)
- 优化缺失翻译文件的序列化格式,将 Source 字段改为紧凑的数字表示
- 移除 ScriptRepoUpdater 中未使用的 using 语句
- 在 App.xaml.cs 中注册 SupabaseMissingTranslationReporter 服务

* fix: 修复自动翻译功能中原始值恢复和重复报告问题

- 移除未使用的法语翻译支持以简化语言选项
- 修复 Supabase 报告序列化时移除冗余字段
- 添加已缺失翻译键的缓存以避免重复报告
- 重构自动翻译拦截器,将原始值存储移至依赖属性
- 修复原始值恢复逻辑,确保正确遍历所有子元素

* feat(ui): 添加更新UI语言文件功能

- 在 ITranslationService 接口中添加 Reload 方法
- 在 JsonTranslationService 中实现 Reload 方法,支持重新加载语言文件并发送变更通知
- 在通用设置页面添加“更新”按钮,点击后从远程仓库下载最新语言文件
- 实现 OnUpdateUiLanguageAsync 命令,支持从 GitHub 和镜像源下载语言文件
- 下载后自动替换本地文件并重新加载翻译服务
2026-02-15 19:03:33 +08:00
躁动的氨气
2f3ca34704 fix: 键鼠回调改为异步事件分发 (#2741)
* fix: 键鼠回调改为异步事件分发

* 添加队列限制与并行锁

* Update BetterGenshinImpact/Core/Script/Dependence/KeyMouseHook.cs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* 只允许外部dispose

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-07 16:58:07 +08:00
躁动的氨气
6b2f2543c4 feat: 支持仓库使用公共资源 (#2716) 2026-02-05 01:48:06 +08:00
bling-yshs
2ced2862b3 fix: 修复 JS 脚本 multi-checkbox 配置项删除后仍能读取到旧值的问题 (#2725) 2026-02-05 01:36:08 +08:00
躁动的氨气
b612e70592 feat: 添加bgi版本获取 (#2692) 2026-01-26 02:40:24 +08:00
躁动的氨气
de79d8a61c feat: 添加进出千星以刷新CD (#2677) 2026-01-24 00:45:05 +08:00
Jamis
cbef23b7ba Use nullable types for genshin-map coordinates (#2650) 2026-01-18 21:56:50 +08:00
辉鸭蛋
9372c007f8 一键更新失败的时候不抛出错误 2026-01-16 22:37:36 +08:00
ShadowLemoon
cd3ace0b62 perf: 减少一次拉取,提升100% (#2619) 2026-01-12 21:44:08 +08:00
辉鸭蛋
16a8142faa feat: add progress reporting for repository fetch and clone operations 2026-01-11 01:15:45 +08:00
辉鸭蛋
6db5926dce fix: reset repository reference after update failure 2026-01-10 23:55:44 +08:00
ShadowLemoon
24c134fb11 fix: 始终重新克隆脚本仓库 (#2614) 2026-01-10 23:45:13 +08:00
躁动的小氨气
26d8499419 新手引导标志迁移至本体 (#2612) 2026-01-10 21:53:33 +08:00
辉鸭蛋
7229bf1c05 fix get 2026-01-05 00:29:59 +08:00
ShadowLemoon
d830dea328 perf: 极大加快脚本仓库的拉取速度 (#2359)
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2026-01-04 22:19:32 +08:00
DarkFlameMaster
cd5b22548c feat:JS添加自动剧情的实时任务时,支持传入参数 (#2591) 2026-01-03 16:24:53 +08:00
Bread Grocery
d46d594f31 fix(js): 修复使用ESM时,仅使用同步代码报错 (#2592) 2025-12-30 17:44:58 +08:00
DarkFlameMaster
bda91816d4 fix: KeyMouseHook相关 (#2588) 2025-12-30 17:43:33 +08:00
DarkFlameMaster
88bcf9b151 暴露键鼠回调给js层 (#2571)
Co-authored-by: Eavina <147073068+Eavina@users.noreply.github.com>
2025-12-23 00:25:49 +08:00
躁动的氨气
a40643e828 添加虚拟域名情况下README内图片获取支持 (#2552) 2025-12-15 01:32:10 +08:00
躁动的氨气
918aaf3b99 webview2改用虚拟域名 (#2543) 2025-12-14 00:27:21 +08:00
Bread Grocery
08f9312fb3 fix: 清除模块加载缓存导致library中的文件变动后无法生效 (#2525) 2025-12-07 23:38:35 +08:00
DarkFlameMaster
f19a16e1d3 增加模块导入的支持 (#2494) 2025-12-01 00:40:04 +08:00
躁动的氨气
be2918ef56 记录仓库页面位置和大小,提供默认值 (#2458) 2025-11-14 21:49:43 +08:00
ShadowLemoon
300656761d refactor: 给没有跟随主题的弹窗加上跟随主题的功能 (#2461) 2025-11-14 16:29:49 +08:00
Bread Grocery
ee12703d1a feat(js): 脚本读取图片时支持调整到指定尺寸 (#2446) 2025-11-07 19:29:10 +08:00
躁动的氨气
227f429c0b 暴露设置时间方法(跳过动画实测未生效) (#2426) 2025-11-01 14:12:07 +08:00
躁动的氨气
4e479496f8 JS文件添加路径校验,补回仓库地址边框 (#2412) 2025-10-29 14:17:21 +08:00
Bread Grocery
d9f6a01fab feat(js): 全局方法暴露 getGameMetrics 方法 (#2403) 2025-10-28 10:24:59 +08:00
ShadowLemoon
a58e93976c feat: 支持私有脚本仓库鉴权 (#2361) 2025-10-19 21:14:16 +08:00
NyaMisty
4d6d337631 fix: 修复http缺失的默认参数 (#2340) 2025-10-14 02:04:14 +08:00
NyaMisty
81ab66acfa feat: 改进http,返回header和status_code,并实现url级别细粒度控制和ui提示 (#2332) 2025-10-13 20:26:56 +08:00
NyaMisty
910b005461 feat: 支持在脚本中进行http请求 (#2331) 2025-10-13 00:42:20 +08:00
辉鸭蛋
3100862c04 传入地图匹配方式 (#2273) 2025-10-08 16:14:39 +08:00
DarkFlameMaster
92c6556316 提供自定义参数的 自动秘境 与 自动战斗 方法 (#2299) 2025-10-05 20:02:48 +08:00
FishmanTheMurloc
8a7440dbbe ScriptObjectConverter.GetValue()新增支持一层集合泛型参数解析;CountInventoryItem新增支持复数物品的计数,并在Dispatcher中向JavaScript暴露此种使用方式 (#2267) 2025-09-26 23:15:18 +08:00
bhbghghbgb
94e50307a5 重构服务器重置时间处理 (#2160) 2025-09-23 00:59:07 +08:00
bling-yshs
cd69a255dc feat: 通知->全局通知设置->添加新选项“手动停止时不通知”,允许用户选择手动停止时是否发送通知 (#2195) 2025-09-16 10:25:40 +08:00
辉鸭蛋
bfe55061f4 git 更新提升速度 2025-09-12 02:04:25 +08:00
辉鸭蛋
5e8e078d8d 修复删除仓库时,仓库被占用的问题。修复历次更新 Fetch 过慢的问题 2025-09-10 01:25:22 +08:00
躁动的氨气
9a6a11295e 优化节点更新标记逻辑 (#2162) 2025-09-09 23:43:08 +08:00
FishmanTheMurloc
b731a8770d 更正Dispatcher.RunTask内CountInventoryItem的入参名称 (#2158) 2025-09-07 20:28:11 +08:00
辉鸭蛋
2f55dd0502 使用release分支更新脚本仓库 2025-09-06 01:13:23 +08:00
辉鸭蛋
4662b71c91 Merge remote-tracking branch 'origin/main' 2025-09-04 00:31:29 +08:00
辉鸭蛋
53349e8b4e JS 开放 OpenCvSharp 的完整包 2025-09-03 22:52:31 +08:00
FishmanTheMurloc
5d843c9c8f 给JS调用的背包数数独立任务 (#2133) 2025-09-02 01:18:37 +08:00
FishmanTheMurloc
8c85cb90c7 圣遗物分解的bugfix和优化 (#2114) 2025-08-29 14:50:35 +08:00
躁动的氨气
d1b1c32528 JS添加保存图片方法,仓库json支持积累更新提示 (#2078) 2025-08-17 01:15:30 +08:00
辉鸭蛋
a77d1fbc45 JS脚本中 KeyPress 语法针对功能键也采取直接触发的方式 #2071 2025-08-17 00:20:28 +08:00