修复外部输入文件language code丢失问题

This commit is contained in:
nilaoda 2022-12-09 23:45:17 +08:00
parent ef94ab0adf
commit 6cc466f8a3
1 changed files with 17 additions and 19 deletions

View File

@ -514,30 +514,28 @@ sr;srp
/// <param name="outputFile"></param> /// <param name="outputFile"></param>
public static void ConvertLangCodeAndDisplayName(OutputFile outputFile) public static void ConvertLangCodeAndDisplayName(OutputFile outputFile)
{ {
if (string.IsNullOrEmpty(outputFile.LangCode) || outputFile.MediaType == null) return; if (string.IsNullOrEmpty(outputFile.LangCode)) return;
var originalLangCode = outputFile.LangCode; var originalLangCode = outputFile.LangCode;
if (string.IsNullOrEmpty(outputFile.Description)) //先直接查找
var lang = ALL_LANGS.FirstOrDefault(a => a.ExtendCode.Equals(outputFile.LangCode, StringComparison.OrdinalIgnoreCase) || a.Code.Equals(outputFile.LangCode, StringComparison.OrdinalIgnoreCase));
//处理特殊的扩展语言标记
if (lang == null)
{ {
//先直接查找 //2位转3位
var lang = ALL_LANGS.FirstOrDefault(a => a.ExtendCode.Equals(outputFile.LangCode, StringComparison.OrdinalIgnoreCase) || a.Code.Equals(outputFile.LangCode, StringComparison.OrdinalIgnoreCase)); var l = ConvertTwoToThree(outputFile.LangCode.Split('-').First());
//处理特殊的扩展语言标记 lang = ALL_LANGS.FirstOrDefault(a => a.ExtendCode.Equals(l, StringComparison.OrdinalIgnoreCase) || a.Code.Equals(l, StringComparison.OrdinalIgnoreCase));
if (lang == null) }
{
//2位转3位
var l = ConvertTwoToThree(outputFile.LangCode.Split('-').First());
lang = ALL_LANGS.FirstOrDefault(a => a.ExtendCode.Equals(l, StringComparison.OrdinalIgnoreCase) || a.Code.Equals(l, StringComparison.OrdinalIgnoreCase));
}
if (lang != null) if (lang != null)
{ {
outputFile.LangCode = lang.Code; outputFile.LangCode = lang.Code;
if (string.IsNullOrEmpty(outputFile.Description))
outputFile.Description = outputFile.MediaType == Common.Enum.MediaType.SUBTITLES ? lang.Description : lang.DescriptionAudio; outputFile.Description = outputFile.MediaType == Common.Enum.MediaType.SUBTITLES ? lang.Description : lang.DescriptionAudio;
} }
else else if (outputFile.LangCode == null)
{ {
outputFile.LangCode = "und"; //无法识别直接置为und outputFile.LangCode = "und"; //无法识别直接置为und
}
} }
//无描述则把LangCode当作描述 //无描述则把LangCode当作描述