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;
}
}
}