Skip to content

Releases: planegenes/c-ttml-trans-tool

v1.23.22.1006

Choose a tag to compare

@planegenes planegenes released this 26 Apr 18:34

CHANGELOG (created by TRAE)

1.23.22.1006

Important

提交记录 (History)

  • 48ae786 feat(ui): Add AMLL copy to clipboard functionality
  • 05e8e96 feat(ui): Add status bar feedback for TTML copy operation
  • 24c4a51 dependence
  • e460bb2 gitignore
  • b1b06a1 format

Note

功能增强 (Features)

  • 添加 AMLL 复制到剪贴板功能
  • 实现 on_copyAMLL_triggered() 槽函数用于复制 AMLL 到剪贴板
  • 添加 copyAMLL 操作到主窗口 UI 复制菜单
  • 为 TTML 复制操作添加状态栏反馈
  • 复制 TTML 到剪贴板后显示"导出成功"消息

v1.22.21.1003

Choose a tag to compare

@planegenes planegenes released this 21 Apr 12:17

CHANGELOG (created by TRAE)

1.22.21.1003

Important

提交记录 (History)

  • 8f76e88 feat(ui): Add AMLL export functionality and bump version
  • 5e93bba refactor(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

Choose a tag to compare

@planegenes planegenes released this 19 Apr 07:24

CHANGELOG (created by TRAE)

1.20.21.1000

Important

提交记录 (History)

  • eafb6d2 build(cmake): Update CMake configuration for submodule integration
  • 7a1ada8 feat(submodule): Add ttml-cpp-qt-parser as git submodule
  • b3a313e refactor(lyric): Remove embedded lyric module for git submodule migration
  • c7b20dd feat(ttml): Expand songwriter detection with more keyword variants
  • e241d9c feat(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

Choose a tag to compare

@planegenes planegenes released this 12 Apr 15:24

CHANGELOG (created by TRAE)

1.16.21

Important

提交记录 (History)

  • 1f82f34 fix(ui): Correct variable name in translation file export
  • 62d2f9a refactor(lyric): Unify key sorting across LRC, QRC and TTML formats
  • 5418035 refactor(spl): Redesign SPL output with structured time data
  • 08ed295 feat(ttml): Improve agent handling and duet detection logic
  • db311f4 feat(utils): Add key comparison function for sorting
  • c94b597 feat(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

Choose a tag to compare

@planegenes planegenes released this 08 Apr 11:57

CHANGELOG (created by TRAE)

1.15.19

Important

提交记录 (History)

  • 7005c50 fix(lyric): Improve lyric matching algorithm with secondary pass

Note

功能增强 (Features)

  • 改进歌词匹配算法,添加二次遍历检查未匹配音节
  • 增强匹配覆盖率,处理歌词对齐中的边界情况
  • 添加对已绑定音节的检查,避免重复绑定

Caution

错误修复 (Bug Fixes)

  • 修复 isSymbol 正则表达式,排除和号 (& 和 &) 字符
  • 确保包含 & 的文本不被错误识别为纯符号

Tip

代码重构 (Refactoring)

  • 重构 match 函数,使用作用域块提高代码组织性
  • 将主匹配逻辑封装在独立作用域中
  • 添加二次遍历逻辑处理未匹配音节
  • 改进代码结构和可读性

v1.14.19

Choose a tag to compare

@planegenes planegenes released this 06 Apr 10:21

CHANGELOG (created by TRAE)

1.14.19

Important

提交记录 (History)

  • df7490b feat(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

Choose a tag to compare

@planegenes planegenes released this 31 Mar 16:28
402d35f

CHANGELOG (created by TRAE)

1.13.19

Important

提交记录 (History)

  • 7a22f3f fix(lyric): Add safety bounds check in match function
  • 31d6753 fix(ass): Correct timing calculations and interlude detection

Caution

错误修复 (Bug Fixes)

  • 修复 ASS 时间计算:在减法之前先除以时间值
  • 修正间奏检测条件,从 > 改为 != 以实现精确时间检测
  • 确保 ASS 生成中时间单位(厘秒)的一致性处理
  • 在 match 函数中添加安全范围检查,防止越界访问
  • 在过滤循环后添加索引检查,防止超出音节列表大小
  • 防止处理不匹配歌词行时的潜在崩溃

Tip

代码重构 (Refactoring)

  • 在 LyricLineASS 中添加 interlude 变量以提高可读性
  • 添加中文注释解释过滤逻辑和安全检查

v1.13.17

Choose a tag to compare

@planegenes planegenes released this 23 Mar 13:03

CHANGELOG (created by TRAE)

1.13.17

Important

提交记录 (History)

  • dd8cf1c fix(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

Choose a tag to compare

@planegenes planegenes released this 22 Mar 13:17

CHANGELOG (created by TRAE)

1.13.16

Important

提交记录 (History)

  • b0f2daa feat(lyric): Add time difference filtering in lyric matching
  • f98e38c refactor(spl): Optimize SPL output structure and ordering

Note

功能增强 (Features)

  • 添加歌词匹配中的时间差过滤功能
  • 添加 LyricTime::abs() 方法用于绝对值计算
  • 增强 match() 方法,按时间差阈值 (>100ms) 过滤音节
  • 添加中文注释解释匹配函数中的过滤逻辑
  • 通过基于时间的约束提高歌词对齐精度
  • 过滤掉开始/结束时间差异显著的音节

Tip

代码重构 (Refactoring)

  • 优化 SPL 输出结构和顺序
  • 调整 SPL 输出顺序:主行(含背景行)、词翻译、行翻译
  • 将背景行追加移到词翻译之前以确保正确的层次结构
  • 使用 QStringList 连接简化文本收集
  • 移除冗余的文本列表,简化输出生成
  • 改进代码清晰度,使用更合理的变量命名
  • 使用直接列表连接优化返回语句

v1.13.14

Choose a tag to compare

@planegenes planegenes released this 20 Mar 13:48

CHANGELOG (created by TRAE)

1.13.14

Important

提交记录 (History)

  • 96c4f97 feat(spl): Refactor SPL output generation with offset support
  • 3802c01 feat(LyricLineSPL): enhance SPL output generation and timing accuracy
  • a586c1a feat(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 用于标点符号模式匹配