diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml
index 2f79a4a..89a9e84 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml
@@ -50,6 +50,7 @@
+
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml
index 50e41a8..ba421f8 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml
@@ -105,14 +105,6 @@
-
-
-
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml.cs
index e02b720..56a9e0e 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsSearchControl.xaml.cs
@@ -25,25 +25,5 @@ namespace BetterLyrics.WinUI3.Controls
ViewModel.SelectedLyricsLine = e.OriginalSource as LyricsLine;
}
- private void ArtistsSplitHintRichTextBlock_Loaded(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
- {
- if (sender is RichTextBlock richTextBlock)
- {
- TextHighlighter highlighter = new()
- {
- Background = App.Current.Resources["AccentTextFillColorPrimaryBrush"] as SolidColorBrush,
- Ranges =
- {
- new() { StartIndex = 0, Length = 1 },
- new() { StartIndex = 5, Length = 1 },
- new() { StartIndex = 10, Length = 1 },
- new() { StartIndex = 15, Length = 1 },
- new() { StartIndex = 20, Length = 1 },
- new() { StartIndex = 25, Length = 1 },
- }
- };
- richTextBlock.TextHighlighters.Add(highlighter);
- }
- }
}
}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/PlaybackSettingsControl.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/PlaybackSettingsControl.xaml
index 41aae05..60cccfa 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/PlaybackSettingsControl.xaml
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/PlaybackSettingsControl.xaml
@@ -353,7 +353,8 @@
Link="{x:Bind ViewModel.MediaSessionsService.CurrentLyricsSearchResult.Reference, Mode=OneWay}"
ToolTipService.ToolTip="{x:Bind ViewModel.MediaSessionsService.CurrentLyricsSearchResult.Reference, TargetNullValue=N/A, Mode=OneWay}"
Value="{x:Bind ViewModel.MediaSessionsService.CurrentLyricsSearchResult.ProviderIfFound, Mode=OneWay, Converter={StaticResource LyricsSearchProviderToDisplayNameConverter}}" />
-
+
+
();
+
+ public object Convert(object value, Type targetType, object parameter, string language)
+ {
+ if (value is TransliterationSearchProvider provider)
+ {
+ return provider switch
+ {
+ TransliterationSearchProvider.LrcLib => "LrcLib",
+ TransliterationSearchProvider.QQ => "QQ 音乐",
+ TransliterationSearchProvider.Netease => "网易云音乐",
+ TransliterationSearchProvider.Kugou => "酷狗音乐",
+ TransliterationSearchProvider.AmllTtmlDb => "amll-ttml-db",
+ TransliterationSearchProvider.AppleMusic => "Apple Music",
+ TransliterationSearchProvider.LocalLrcFile => _resourceService.GetLocalizedString("LyricsSearchProviderLocalLrcFile"),
+ TransliterationSearchProvider.LocalMusicFile => _resourceService.GetLocalizedString("LyricsSearchProviderLocalMusicFile"),
+ TransliterationSearchProvider.LocalEslrcFile => _resourceService.GetLocalizedString("LyricsSearchProviderEslrcFile"),
+ TransliterationSearchProvider.LocalTtmlFile => _resourceService.GetLocalizedString("LyricsSearchProviderTtmlFile"),
+ TransliterationSearchProvider.BetterLyrics => "BetterLyrics",
+ _ => "N/A",
+ };
+ }
+ return "N/A";
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, string language)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Enums/TransliterationSearchProvider.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Enums/TransliterationSearchProvider.cs
new file mode 100644
index 0000000..a9f1a30
--- /dev/null
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Enums/TransliterationSearchProvider.cs
@@ -0,0 +1,17 @@
+namespace BetterLyrics.WinUI3.Enums
+{
+ public enum TransliterationSearchProvider
+ {
+ QQ,
+ Kugou,
+ Netease,
+ LrcLib,
+ AmllTtmlDb,
+ AppleMusic,
+ LocalMusicFile,
+ LocalLrcFile,
+ LocalEslrcFile,
+ LocalTtmlFile,
+ BetterLyrics
+ }
+}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Extensions/LyricsSearchProviderExtensions.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Extensions/LyricsSearchProviderExtensions.cs
index e8a8e52..f248fb4 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Extensions/LyricsSearchProviderExtensions.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Extensions/LyricsSearchProviderExtensions.cs
@@ -59,6 +59,21 @@ namespace BetterLyrics.WinUI3.Extensions
LyricsSearchProvider.LocalTtmlFile => TranslationSearchProvider.LocalTtmlFile,
_ => null,
};
+
+ public TransliterationSearchProvider? ToTransliterationSearchProvider() => provider switch
+ {
+ LyricsSearchProvider.LrcLib => TransliterationSearchProvider.LrcLib,
+ LyricsSearchProvider.QQ => TransliterationSearchProvider.QQ,
+ LyricsSearchProvider.Kugou => TransliterationSearchProvider.Kugou,
+ LyricsSearchProvider.Netease => TransliterationSearchProvider.Netease,
+ LyricsSearchProvider.AmllTtmlDb => TransliterationSearchProvider.AmllTtmlDb,
+ LyricsSearchProvider.AppleMusic => TransliterationSearchProvider.AppleMusic,
+ LyricsSearchProvider.LocalMusicFile => TransliterationSearchProvider.LocalMusicFile,
+ LyricsSearchProvider.LocalLrcFile => TransliterationSearchProvider.LocalLrcFile,
+ LyricsSearchProvider.LocalEslrcFile => TransliterationSearchProvider.LocalEslrcFile,
+ LyricsSearchProvider.LocalTtmlFile => TransliterationSearchProvider.LocalTtmlFile,
+ _ => null,
+ };
}
}
}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsSearchResult.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsSearchResult.cs
index 8420e9e..2f247bd 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsSearchResult.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsSearchResult.cs
@@ -9,6 +9,8 @@ namespace BetterLyrics.WinUI3.Models
public partial class LyricsSearchResult : ObservableObject, ICloneable
{
public LyricsSearchProvider Provider { get; set; }
+ public TranslationSearchProvider? TranslationProvider { get; set; }
+ public TransliterationSearchProvider? TransliterationProvider { get; set; }
public string? Raw { get; set; }
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Parsers/LyricsParser/LyricsParser.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Parsers/LyricsParser/LyricsParser.cs
index a62f708..97ea535 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Parsers/LyricsParser/LyricsParser.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Parsers/LyricsParser/LyricsParser.cs
@@ -89,6 +89,14 @@ namespace BetterLyrics.WinUI3.Parsers.LyricsParser
if (found != null)
{
main.SetPhoneticText(found);
+ if (found.AutoGenerated)
+ {
+ lyricsSearchResult?.TransliterationProvider = TransliterationSearchProvider.BetterLyrics;
+ }
+ else
+ {
+ lyricsSearchResult?.TransliterationProvider = lyricsSearchResult?.Provider.ToTransliterationSearchProvider();
+ }
}
}
@@ -99,6 +107,7 @@ namespace BetterLyrics.WinUI3.Parsers.LyricsParser
if (found != null)
{
main.SetTranslatedText(found);
+ lyricsSearchResult?.TranslationProvider = lyricsSearchResult?.Provider.ToTranslationSearchProvider();
}
else if (settings.IsLibreTranslateEnabled)
{
@@ -107,7 +116,7 @@ namespace BetterLyrics.WinUI3.Parsers.LyricsParser
{
translated = await translateService.TranslateTextAsync(main.WrappedOriginalText, settings.SelectedTargetLanguageCode, token);
_lyricsDataArr.FirstOrDefault()?.SetTranslation(translated);
- //lyricsSearchResult = Enums.TranslationSearchProvider.LibreTranslate;
+ lyricsSearchResult?.TranslationProvider = TranslationSearchProvider.LibreTranslate;
}
catch (TaskCanceledException) { }
catch (Exception)
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/IMediaSessionsService.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/IMediaSessionsService.cs
index 7bfc39e..9cef74d 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/IMediaSessionsService.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/IMediaSessionsService.cs
@@ -37,7 +37,6 @@ namespace BetterLyrics.WinUI3.Services.MediaSessionsService
Task CalculateAlbumArtThemeColorsAsync(LyricsWindowStatus lyricsWindowStatus, Color backdropAccentColor);
- TranslationSearchProvider? TranslationSearchProvider { get; }
LyricsSearchResult? CurrentLyricsSearchResult { get; }
}
}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/MediaSessionsService.LyricsUpdater.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/MediaSessionsService.LyricsUpdater.cs
index c285128..f5a83e7 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/MediaSessionsService.LyricsUpdater.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/MediaSessionsService/MediaSessionsService.LyricsUpdater.cs
@@ -27,10 +27,6 @@ namespace BetterLyrics.WinUI3.Services.MediaSessionsService
[ObservableProperty] public partial LyricsSearchResult? CurrentLyricsSearchResult { get; private set; }
- [ObservableProperty][NotifyPropertyChangedRecipients] public partial TranslationSearchProvider? TranslationSearchProvider { get; private set; }
-
- [ObservableProperty] public partial bool IsTranslating { get; set; } = false;
-
private async Task RefreshLyricsAsync(CancellationToken token)
{
_logger.LogInformation("RefreshLyricsAsync");
@@ -42,7 +38,7 @@ namespace BetterLyrics.WinUI3.Services.MediaSessionsService
{
CurrentLyricsSearchResult = await Task.Run(async () => await _lyrcsSearchService.SearchSmartlyAsync(
CurrentSongInfo,
- !_settingsService.AppSettings.GeneralSettings.IgnoreCacheWhenSearching,
+ true,
CurrentMediaSourceProviderInfo?.LyricsSearchType,
token),
token);
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/en-US/Resources.resw b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/en-US/Resources.resw
index a3c48e1..eb94ff5 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/en-US/Resources.resw
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/en-US/Resources.resw
@@ -279,6 +279,9 @@
Translation provider
+
+ Transliteration source
+
Lyrics parsing failed
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ja-JP/Resources.resw b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ja-JP/Resources.resw
index 5a7a68c..b707267 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ja-JP/Resources.resw
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ja-JP/Resources.resw
@@ -279,6 +279,9 @@
翻訳プロバイダー
+
+ 文字起こしソース
+
歌詞の解析に失敗しました
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ko-KR/Resources.resw b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ko-KR/Resources.resw
index e2028e0..6fa3913 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ko-KR/Resources.resw
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/ko-KR/Resources.resw
@@ -279,6 +279,9 @@
번역 제공자
+
+ 음역 소스
+
가사 구문 분석에 실패했습니다
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-CN/Resources.resw b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-CN/Resources.resw
index 5df41ec..3b3bebe 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-CN/Resources.resw
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-CN/Resources.resw
@@ -279,6 +279,9 @@
翻译来源
+
+ 音译来源
+
歌词解析失败
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-TW/Resources.resw b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-TW/Resources.resw
index f38cd84..440b741 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-TW/Resources.resw
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Strings/zh-TW/Resources.resw
@@ -279,6 +279,9 @@
翻譯來源
+
+ 音譯來源
+
歌詞解析失敗