feat(lyrics,replaygain): add LyricsPlus provider and ReplayGain batch scanning

LyricsPlus (KPOE): word-by-word synced lyrics with multi-server failover, converted to enhanced LRC. ReplayGain: standalone EBU R128 (re)scan writing REPLAYGAIN_TRACK_* tags via native writers or FFmpeg, with batch action in queue/album screens and SAF support.
This commit is contained in:
zarzet committed 2026-06-12 01:59:26 +07:00
1 parent adea3de737
commit 2a2e2924eb
27 files changed
+1816 -165

No files matched your search

+66
View File
@@ -458,6 +458,66 @@ abstract class AppLocalizations {
/// **'Disabled: no loudness normalization tags'**
String get optionsReplayGainSubtitleOff;
/// Three-dot menu option to scan loudness and write ReplayGain tags
///
/// In en, this message translates to:
/// **'Rescan ReplayGain'**
String get trackReplayGain;
/// Subtitle for the rescan ReplayGain menu option
///
/// In en, this message translates to:
/// **'Analyze loudness and write ReplayGain tags'**
String get trackReplayGainSubtitle;
/// Snackbar/progress message while scanning ReplayGain for a single track
///
/// In en, this message translates to:
/// **'Analyzing loudness...'**
String get trackReplayGainScanning;
/// Snackbar message after ReplayGain tags written for a single track
///
/// In en, this message translates to:
/// **'ReplayGain tags added'**
String get trackReplayGainSuccess;
/// Snackbar message when ReplayGain scan/write fails
///
/// In en, this message translates to:
/// **'Failed to add ReplayGain tags'**
String get trackReplayGainFailed;
/// Batch selection action button label for ReplayGain
///
/// In en, this message translates to:
/// **'ReplayGain ({count})'**
String selectionReplayGainCount(int count);
/// Title of the batch ReplayGain confirmation dialog
///
/// In en, this message translates to:
/// **'Add ReplayGain'**
String get replayGainBatchConfirmTitle;
/// Message of the batch ReplayGain confirmation dialog
///
/// In en, this message translates to:
/// **'Analyze loudness and write ReplayGain tags to {count} track(s)?'**
String replayGainBatchConfirmMessage(int count);
/// Progress dialog title while batch scanning ReplayGain
///
/// In en, this message translates to:
/// **'Analyzing ReplayGain...'**
String get replayGainBatchAnalyzing;
/// Snackbar after batch ReplayGain completes
///
/// In en, this message translates to:
/// **'ReplayGain added to {success} of {total} tracks'**
String replayGainBatchSuccess(int success, int total);
/// Setting title for how artist metadata is written into files
///
/// In en, this message translates to:
@@ -4885,6 +4945,12 @@ abstract class AppLocalizations {
/// **'QQ Music (good for Chinese songs, via proxy)'**
String get lyricsProviderQqMusicDesc;
/// Description for LyricsPlus provider
///
/// In en, this message translates to:
/// **'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)'**
String get lyricsProviderLyricsPlusDesc;
/// Generic description for extension-based lyrics providers
///
/// In en, this message translates to:
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsAr extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsAr extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -190,6 +190,43 @@ class AppLocalizationsDe extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Deaktiviert: keine Lautstärke-Normalisierungs-Tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Künstler Tag-Modus';
@@ -2857,6 +2894,10 @@ class AppLocalizationsDe extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (gut für chinesische Lieder, via Proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Erweiterungsanbieter';
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsEn extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsEs extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsEs extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -191,6 +191,43 @@ class AppLocalizationsFr extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Désactivé : aucune balise de normalisation du volume';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Mode « Artiste »';
@@ -2897,6 +2934,10 @@ class AppLocalizationsFr extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (idéal pour écouter des titres chinois, via un proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Fournisseur d\'extensions';
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsHi extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsHi extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -188,6 +188,43 @@ class AppLocalizationsId extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Dinonaktifkan: tidak ada tag normalisasi kenyaringan';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Mode Tag Artis';
@@ -2828,6 +2865,10 @@ class AppLocalizationsId extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -186,6 +186,43 @@ class AppLocalizationsJa extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2809,6 +2846,10 @@ class AppLocalizationsJa extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -184,6 +184,43 @@ class AppLocalizationsKo extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2806,6 +2843,10 @@ class AppLocalizationsKo extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsNl extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsNl extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsPt extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsPt extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -190,6 +190,43 @@ class AppLocalizationsRu extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2876,6 +2913,10 @@ class AppLocalizationsRu extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Музыка (хорошо подходит для китайских песен, через прокси)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Поставщик расширений';
+41
View File
@@ -190,6 +190,43 @@ class AppLocalizationsTr extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Devre dışı: Ses normalleştirme etiketi yok';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Sanatçı Etiketi Modu';
@@ -2850,6 +2887,10 @@ class AppLocalizationsTr extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+41
View File
@@ -191,6 +191,43 @@ class AppLocalizationsUk extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Вимкнено: немає тегів нормалізації гучності';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Режим тегу виконавця';
@@ -2865,6 +2902,10 @@ class AppLocalizationsUk extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (добре для китайських пісень, через проксі)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Постачальник розширень';
+41
View File
@@ -187,6 +187,43 @@ class AppLocalizationsZh extends AppLocalizations {
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@@ -2821,6 +2858,10 @@ class AppLocalizationsZh extends AppLocalizations {
String get lyricsProviderQqMusicDesc =>
'QQ Music (good for Chinese songs, via proxy)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Extension provider';
+62
View File
@@ -226,6 +226,64 @@
"@optionsReplayGainSubtitleOff": {
"description": "Subtitle when ReplayGain is disabled"
},
"trackReplayGain": "Rescan ReplayGain",
"@trackReplayGain": {
"description": "Three-dot menu option to scan loudness and write ReplayGain tags"
},
"trackReplayGainSubtitle": "Analyze loudness and write ReplayGain tags",
"@trackReplayGainSubtitle": {
"description": "Subtitle for the rescan ReplayGain menu option"
},
"trackReplayGainScanning": "Analyzing loudness...",
"@trackReplayGainScanning": {
"description": "Snackbar/progress message while scanning ReplayGain for a single track"
},
"trackReplayGainSuccess": "ReplayGain tags added",
"@trackReplayGainSuccess": {
"description": "Snackbar message after ReplayGain tags written for a single track"
},
"trackReplayGainFailed": "Failed to add ReplayGain tags",
"@trackReplayGainFailed": {
"description": "Snackbar message when ReplayGain scan/write fails"
},
"selectionReplayGainCount": "ReplayGain ({count})",
"@selectionReplayGainCount": {
"description": "Batch selection action button label for ReplayGain",
"placeholders": {
"count": {
"type": "int"
}
}
},
"replayGainBatchConfirmTitle": "Add ReplayGain",
"@replayGainBatchConfirmTitle": {
"description": "Title of the batch ReplayGain confirmation dialog"
},
"replayGainBatchConfirmMessage": "Analyze loudness and write ReplayGain tags to {count} track(s)?",
"@replayGainBatchConfirmMessage": {
"description": "Message of the batch ReplayGain confirmation dialog",
"placeholders": {
"count": {
"type": "int"
}
}
},
"replayGainBatchAnalyzing": "Analyzing ReplayGain...",
"@replayGainBatchAnalyzing": {
"description": "Progress dialog title while batch scanning ReplayGain"
},
"replayGainBatchSuccess": "ReplayGain added to {success} of {total} tracks",
"@replayGainBatchSuccess": {
"description": "Snackbar after batch ReplayGain completes",
"placeholders": {
"success": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"optionsArtistTagMode": "Artist Tag Mode",
"@optionsArtistTagMode": {
"description": "Setting title for how artist metadata is written into files"
@@ -3737,6 +3795,10 @@
"@lyricsProviderQqMusicDesc": {
"description": "Description for QQ Music provider"
},
"lyricsProviderLyricsPlusDesc": "Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)",
"@lyricsProviderLyricsPlusDesc": {
"description": "Description for LyricsPlus provider"
},
"lyricsProviderExtensionDesc": "Extension provider",
"@lyricsProviderExtensionDesc": {
"description": "Generic description for extension-based lyrics providers"