辉鸭蛋
|
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 |
|
辉鸭蛋
|
42ef97b1cd
|
Revert "feat: 为多个窗口启用自动翻译拦截器"
This reverts commit fc942bd8cd.
|
2026-01-28 01:24:04 +08:00 |
|
辉鸭蛋
|
fc942bd8cd
|
feat: 为多个窗口启用自动翻译拦截器
为 MapLabelSearchWindow、ArtifactOcrDialog、PromptDialog 等十三个 WPF 窗口添加了 AutoTranslateInterceptor 行为,以启用自动翻译功能。这确保了应用程序界面的文本内容在需要时可以被正确拦截并处理,提升国际化支持。
|
2026-01-28 01:22:09 +08:00 |
|
ShadowLemoon
|
e659fec281
|
fix: 修复独立窗口的样式 (#2465)
|
2025-11-15 12:08:55 +08:00 |
|
辉鸭蛋
|
25f6763e48
|
移动相关资源文件
|
2025-07-01 22:49:53 +08:00 |
|
辉鸭蛋
|
d24404dc2a
|
录制编辑器修改地图的时候,同步修改开发者工具内的地图选择
|
2025-05-05 21:08:36 +08:00 |
|
辉鸭蛋
|
9e41808326
|
独立与分层地图支持 (#1503)
* 抽象基础类
* 修改定义
* 抽象出Feature2D相关能力
* 新增地图基类实现
* 临时提交
* 迁移坐标计算
* 加载分层特征数据
* 新增独立地图 层岩巨渊,渊下宫,旧日之海
* 支持不切分特征点匹配
* 添加远古圣山,修改地图参数
* 提瓦特大陆的大地图匹配
* 提瓦特大陆地图大地图位置获取使用256级别的地图
* 替换大地图匹配类 BigMap.cs
* 替换小地图匹配类 EntireMap
* 修改tp的入参方式,删除无用类
* 兼容新提交的内容
* 修复类方法覆盖不生效的问题
* 修复定位问题,迁移部分 MapCoordinate 的代码。MapCoordinate 标记为废弃
* 更多坐标方法的迁移
* 修复不正确的坐标转换
* 是用正确的特征匹配
* 体积较小的地图动态生成特征
* 路径追踪窗体支持多地图
* 传送时切换独立地图地区
* 更新传送点信息
* 修改独立地图相关命名,使用 Scene(场景) 命名,和原神内部命名保持一致
* 录制支持多独立地图
* 修复地区切换失败的问题
|
2025-05-03 21:59:37 +08:00 |
|