Flamingo 的 TTML 翻译与音译:itunes key 对应字幕切换
TTML 的翻译不是重复时间戳,而是用 itunes:key / for 对应机制把翻译、音译挂在主歌词上。这是 Apple Music 同款的做法,也是 Flamingo 翻译开关的理论基础。
翻译(translations)的写法
<p begin="7.372" end="10.915" itunes:key="L1">Main lyric line</p>
<translations>
<translation type="subtitle" xml:lang="zh-CN">
<text for="L1">主歌词行的中文翻译</text>
</translation>
</translations>
- 主歌词
<p>带itunes:key="L1"。 - 翻译块里的
<text for="L1">与之对应。 xml:lang标注翻译语言。
音译(transliterations)的写法
<p begin="7.372" end="10.915" itunes:key="L1">가사 내용</p>
<transliterations>
<transliteration xml:lang="ko-Latn">
<text for="L1">gasa naeyong</text>
</transliteration>
</transliterations>
音译用于韩文拉丁化、日文罗马字这类"发音标注"。
翻译开关的显示逻辑
歌词页上的翻译开关控制 TTML 次级文本的显示:
| 开关状态 | 显示内容 |
|---|---|
| 关 | 音译(transliteration) |
| 开 | 字幕/翻译(translation) |
| 都没有 | 开关禁用或隐藏 |
所以一首韩文歌可以在"原文+罗马音"和"原文+中文翻译"之间切换——这是 LRC 做不到的体验。
与 LRC 翻译的对比
| 维度 | LRC | TTML |
|---|---|---|
| 翻译写法 | 重复相同时间戳 | itunes key/for 对应 |
| 音译 | 不支持 | 支持 |
| 开关切换 | 无 | 支持翻译/音译切换 |