Releases: planegenes/c-ttml-trans-tool
Releases · planegenes/c-ttml-trans-tool
Release list
v1.23.22.1006
CHANGELOG (created by TRAE)
1.23.22.1006
Important
提交记录 (History)
48ae786feat(ui): Add AMLL copy to clipboard functionality05e8e96feat(ui): Add status bar feedback for TTML copy operation24c4a51dependencee460bb2gitignoreb1b06a1format
Note
功能增强 (Features)
- 添加 AMLL 复制到剪贴板功能
- 实现 on_copyAMLL_triggered() 槽函数用于复制 AMLL 到剪贴板
- 添加 copyAMLL 操作到主窗口 UI 复制菜单
- 为 TTML 复制操作添加状态栏反馈
- 复制 TTML 到剪贴板后显示"导出成功"消息
v1.22.21.1003
CHANGELOG (created by TRAE)
1.22.21.1003
Important
提交记录 (History)
8f76e88feat(ui): Add AMLL export functionality and bump version5e93bbarefactor(ui): Migrate TTML compression to lyric submodule
Note
功能增强 (Features)
- 添加 AMLL 格式导出功能
- 实现 on_toAMLL_triggered() 槽函数用于 AMLL 格式导出
- 添加 AMLL 导出操作到主窗口 UI 菜单
- 实现 AMLL 文件保存对话框,支持 TTML 过滤器
- 添加状态栏反馈显示 AMLL 生成过程
Tip
代码重构 (Refactoring)
- 将 TTML 压缩功能迁移到 lyric 子模块
- 移除本地的 compressTtml 实现(V1、V2 和主函数)
- 使用 lyric::utils::compressTtml 替代本地实现
- 更新 parse() 方法处理压缩状态并显示错误对话框
- 更新 on_compressButton_clicked() 使用新 API 并检查状态
- 移除 on_compressButton_clicked() 槽函数的 const 限定符
- 在 switch 语句中添加 default 分支用于错误处理
v1.20.21.1000
CHANGELOG (created by TRAE)
1.20.21.1000
Important
提交记录 (History)
eafb6d2build(cmake): Update CMake configuration for submodule integration7a1ada8feat(submodule): Add ttml-cpp-qt-parser as git submoduleb3a313erefactor(lyric): Remove embedded lyric module for git submodule migrationc7b20ddfeat(ttml): Expand songwriter detection with more keyword variantse241d9cfeat(ui): Add remarks section to preset clipboard output
Note
功能增强 (Features)
- 添加备注区域到预设剪贴板输出
- 扩展词曲作者检测,支持更多关键词变体
- 添加 LYRICIST、LYRICSAUTHOR、LYRICSBY、WORDS、WORDSBY、TEXTBY、POEMBY、COMPOSER 等英文键
- 添加 ttml-cpp-qt-parser 作为 git 子模块
- 集成外部歌词解析模块
Tip
代码重构 (Refactoring)
- 移除嵌入式歌词模块,迁移到 git 子模块
- 删除 src/lyric 目录下的所有源代码文件
- 清理不再需要的工具类和歌词处理代码
Caution
构建系统 (Build System)
- 更新 CMake 配置以支持子模块集成
- 在主项目之前添加 lyric 子目录以获取版本号
- 使用 LYRIC_VERSION_COMBINED 作为第四位版本号组件
- 添加版本状态消息用于构建诊断
- 从 dialogs/CMakeLists.txt 中移除冗余的 lyric 子目录引用
- 实现主项目与 lyric 模块之间的版本同步
v1.16.21
CHANGELOG (created by TRAE)
1.16.21
Important
提交记录 (History)
1f82f34fix(ui): Correct variable name in translation file export62d2f9arefactor(lyric): Unify key sorting across LRC, QRC and TTML formats5418035refactor(spl): Redesign SPL output with structured time data08ed295feat(ttml): Improve agent handling and duet detection logicdb311f4feat(utils): Add key comparison function for sortingc94b597feat(lyric_time): Add compound assignment operators for LyricTime
Note
功能增强 (Features)
- 为 LyricTime 添加复合赋值运算符 (operator+= 和 operator-=)
- 支持模板类型,使用 std::constructible_from 约束
- 添加 compareKeysByLengthThenDefault 函数用于自定义键排序
- 改进 agent 处理和对唱检测逻辑
- 分别处理 person 和 group 类型的 agent
- 添加独立的 main_person_agent_id 和 main_group_agent_id 跟踪
Caution
错误修复 (Bug Fixes)
- 修复翻译文件导出中的变量名错误:将 trans_lang 更正为 trans_text
- 确保正确的翻译内容写入输出文件
- 防止语言代码被写入而非实际文本
Tip
代码重构 (Refactoring)
- 统一 LRC、QRC 和 TTML 格式的键排序逻辑
- 使用 compareKeysByLengthThenDefault 替代 compareKeysByNumber
- 移除 extractNumberFromKey 辅助函数
- 重新设计 SPL 输出,使用结构化时间数据
- 将 toSingleSPL 改为返回 pair<LyricTime, QString>
- 将 toSPL 改为返回 QList 元组列表
- 移除静态 _spl_offset,使用真实时间信息
- 添加重复时间检测和偏移调整
- 使用作用域块组织 agent 初始化逻辑
- 改进对唱检测,分别处理 person 和 group 类型
- 添加 region 注释组织元数据部分
v1.15.19
CHANGELOG (created by TRAE)
1.15.19
Important
提交记录 (History)
7005c50fix(lyric): Improve lyric matching algorithm with secondary pass
Note
功能增强 (Features)
- 改进歌词匹配算法,添加二次遍历检查未匹配音节
- 增强匹配覆盖率,处理歌词对齐中的边界情况
- 添加对已绑定音节的检查,避免重复绑定
Caution
错误修复 (Bug Fixes)
- 修复 isSymbol 正则表达式,排除和号 (& 和 &) 字符
- 确保包含 & 的文本不被错误识别为纯符号
Tip
代码重构 (Refactoring)
- 重构 match 函数,使用作用域块提高代码组织性
- 将主匹配逻辑封装在独立作用域中
- 添加二次遍历逻辑处理未匹配音节
- 改进代码结构和可读性
v1.14.19
CHANGELOG (created by TRAE)
1.14.19
Important
提交记录 (History)
df7490bfeat(agent): Add Agent class for TTML metadata support
Note
功能增强 (Features)
- 添加 Agent 类用于 TTML 元数据支持
- 支持解析和生成 TTML 中的 ttm:agent 元素
- 实现 AgentType 枚举(Person, Group, Other)
- 支持 agent 名称列表(ttm:name)的解析和生成
- 添加 Agent 的 fromTTML 和 toTTML 方法
- 在 LyricObject 中集成 Agent 列表管理
- 支持多 agent 场景的 TTML 生成
Tip
代码重构 (Refactoring)
- 重构 LyricObject 的 toTTML 方法,使用 agent 数据替代硬编码的 agent 元素
- 添加 Agent.cpp 和 Agent.hpp 新文件
- 使用 std::map 管理 AgentType 与字符串的映射
- 改进 TTML 元数据结构,支持更灵活的 agent 配置
v1.13.19
CHANGELOG (created by TRAE)
1.13.19
Important
提交记录 (History)
7a22f3ffix(lyric): Add safety bounds check in match function31d6753fix(ass): Correct timing calculations and interlude detection
Caution
错误修复 (Bug Fixes)
- 修复 ASS 时间计算:在减法之前先除以时间值
- 修正间奏检测条件,从 > 改为 != 以实现精确时间检测
- 确保 ASS 生成中时间单位(厘秒)的一致性处理
- 在 match 函数中添加安全范围检查,防止越界访问
- 在过滤循环后添加索引检查,防止超出音节列表大小
- 防止处理不匹配歌词行时的潜在崩溃
Tip
代码重构 (Refactoring)
- 在 LyricLineASS 中添加 interlude 变量以提高可读性
- 添加中文注释解释过滤逻辑和安全检查
v1.13.17
CHANGELOG (created by TRAE)
1.13.17
Important
提交记录 (History)
dd8cf1cfix(ttml): Correct element access and refactor metadata processing
Caution
错误修复 (Bug Fixes)
- 修复 fromTTML 中错误的元素访问:将 text_s 更正为 el_s
- 确保元数据键和值的一致 HTML 转义
Tip
代码重构 (Refactoring)
- 重构 toTTML 元数据生成,从 ranges 改为显式循环
- 使用传统 for 循环提高元数据处理的代码清晰度
v1.13.16
CHANGELOG (created by TRAE)
1.13.16
Important
提交记录 (History)
b0f2daafeat(lyric): Add time difference filtering in lyric matchingf98e38crefactor(spl): Optimize SPL output structure and ordering
Note
功能增强 (Features)
- 添加歌词匹配中的时间差过滤功能
- 添加 LyricTime::abs() 方法用于绝对值计算
- 增强 match() 方法,按时间差阈值 (>100ms) 过滤音节
- 添加中文注释解释匹配函数中的过滤逻辑
- 通过基于时间的约束提高歌词对齐精度
- 过滤掉开始/结束时间差异显著的音节
Tip
代码重构 (Refactoring)
- 优化 SPL 输出结构和顺序
- 调整 SPL 输出顺序:主行(含背景行)、词翻译、行翻译
- 将背景行追加移到词翻译之前以确保正确的层次结构
- 使用 QStringList 连接简化文本收集
- 移除冗余的文本列表,简化输出生成
- 改进代码清晰度,使用更合理的变量命名
- 使用直接列表连接优化返回语句
v1.13.14
CHANGELOG (created by TRAE)
1.13.14
Important
提交记录 (History)
96c4f97feat(spl): Refactor SPL output generation with offset support3802c01feat(LyricLineSPL): enhance SPL output generation and timing accuracya586c1afeat(utils): Add symbol detection and improve lyric matching logic
Note
功能增强 (Features)
- 重构 SPL 输出生成,添加时间偏移支持
- 添加 toSingleSPL 方法用于生成单个 SPL 行
- 添加静态 _spl_offset 成员用于顺序时间偏移
- 分离词级和行级翻译在 SPL 输出中的顺序
- 改进 SPL 格式顺序:主行、词翻译、行翻译
- 使用 getInnerBegin() 和 getInnerEnd() 实现更准确的时间计算
- 将零宽连接符 (\u200D) 替换为零宽空格 (\u200B)
- 改进背景行格式,添加适当的括号处理
- 增强翻译和音译处理,支持多种数据类型
- 添加 isSymbol 函数用于检测纯标点符号文本
- 改进 LyricLine::match 方法,在对齐时跳过符号
- 增强匹配算法以更好地处理特殊字符
- 防止纯符号音节干扰歌词对齐
Tip
代码重构 (Refactoring)
- 重构 toSPL 方法使用 toSingleSPL 以提高模块化
- 在 toSPL 开始时重置偏移量以确保一致的时间
- 重构行文本处理以提高可维护性
- 更新 SPL 结构以匹配改进的时间计算逻辑
- 改进匹配循环条件以提高可读性
- 添加 QRegularExpression 用于标点符号模式匹配