Skip to content

Separate lyric roles and translation languages #2191

Description

@Bludbeth

在反馈此问题前请注意 Please note before reporting this issue

  • 已经查看相关帮助内容 Read more about the Salt Player help content
  • 已经在本仓库搜索相关内容(避免重复反馈)Already searched for related content in this repository (to avoid duplicate feedback)
  • 确认仅将提交一个问题(多个问题或者备注提及另外的问题请重新提交新的,如建议 1、2、3 请分开提交。即便是针对某个功能的不太相关的点也应该分开提交,如歌词建议支持大小和颜色调节,应该分开提交大小、颜色的建议)Confirm to submit only one issue (if multiple issues or notes mention other issues, please submit a new one separately)

平台 Platform

  • Android
  • Windows
  • HarmonyOS

描述 Describe

Thanks for providing very useful support for synchronized lyrics.

I would like to suggest extending this system to distinguish between different lyric roles and translations

FOR EXAMPLE:

  • Original lyrics
  • Romanization
  • Translation (capable of choosing language)

For the translations, they could have a language identifier, allowing the user to select which translation language should be displayed.

This would be especially useful for Asian songs where romanized lyrics are commonly used.

Currently, multiple lines sharing the same timestamp can be treated as the original lyric and its translation. The problem is that the application cannot necessarily know whether an additional line is a translation or a romanization.

...

PROPOSED LYRIC ROLES
I suggest supporting an optional semantic role for each lyric layer.

For example:
ORIGINAL = [or]
ROMANIZATION = [ro]
TRANSLATION = [tr]

(The exact syntax is not important; the important part is that Salt Player can distinguish these roles)

Conceptually:

[00:12.00][Original]:  我喜欢你
[00:12.00][Romanization]:  Wǒ xǐhuān nǐ
[00:12.00][Translation]: I like you

This would allow the existing "translation" functionality to evolve into a more general multi-layer lyric system.

...

FOR THE LANGUAGE IDENTIFICATION

it would be useful to optionally identify the language.

For example:
-Original:
role = original
language = zh

-Romanization:
role = romanization
language = zh-Latn

-Spanish translation:
role = translation
language = es

-English translation:
role = translation
language = en

BCP 47 could be used for the language identifiers where appropriate.

This is useful because "translation" alone does not tell the application which language the translation is written in.

For example, a song could have:

Translation → Spanish
Translation → English
Translation → French

while all three remain synchronized to the same timestamps.

...

UI Structure

The existing translation toggle could potentially be expanded to something like:

Lyrics:
☑ Original
☐ Romanization
☐ Translation

And when Translation is enabled:

Translation language:
● Spanish
○ English
○ French

This would allow combinations such as:

Original + Romanization
Original + Translation
Original + Romanization + Translation
Only Romanization/Translation

This semantic information would only be used when explicitly available.

I think this could be a natural extension of Salt Player's existing lyric system rather than a completely separate feature.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions