From 7b2abfbe15587bbf12ba7b5037bd1198cfce8105 Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Wed, 12 Nov 2025 15:48:14 -0500 Subject: [PATCH] fix: Show correct translation for Netease Cloud Muic lyrics source --- .../Package.appxmanifest | 2 +- .../BetterLyrics.WinUI3/Models/LyricsData.cs | 5 ++--- .../Services/TranslateService/TranslateService.cs | 12 ++++++++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest index a8aea92..038fb22 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest @@ -12,7 +12,7 @@ + Version="1.0.115.0" /> diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsData.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsData.cs index c150aa4..8b86bce 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsData.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsData.cs @@ -18,11 +18,10 @@ namespace BetterLyrics.WinUI3.Models private static readonly IResourceService _resourceService = Ioc.Default.GetRequiredService(); public List LyricsLines { get; set; } - private string? _languageCode; public string? LanguageCode { - get => _languageCode ?? LanguageHelper.DetectLanguageCode(WrappedOriginalText); - set => _languageCode = value; + get => field ?? LanguageHelper.DetectLanguageCode(WrappedOriginalText); + set => field = value; } public string WrappedOriginalText => string.Join(StringHelper.NewLine, LyricsLines.Select(line => line.OriginalText)); diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/TranslateService/TranslateService.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/TranslateService/TranslateService.cs index f124308..7d0bf2e 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/TranslateService/TranslateService.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/TranslateService/TranslateService.cs @@ -60,17 +60,25 @@ namespace BetterLyrics.WinUI3.Services.TranslateService public int SearchTranslatedLyricsItself(List lyricsDataArr, string targetLangCode) { + int ret = -1; + float maxTranslatinRate = 0.0f; + if (lyricsDataArr.Count > 1) { for (int i = 1; i < lyricsDataArr.Count; i++) { if (lyricsDataArr[i].LanguageCode == targetLangCode) { - return i; // Translation lyrics data found + float translationRate = lyricsDataArr[i].LyricsLines.Count / lyricsDataArr[0].LyricsLines.Count; + if (translationRate > maxTranslatinRate) + { + maxTranslatinRate = translationRate; + ret = i; + } } } } - return -1; // No translation lyrics data found + return ret; } } }