From 9b3ebe90c56509b69b208a85bfd5ac51af5886c0 Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 1 Jul 2025 00:56:04 +0600 Subject: [PATCH] api/language-codes: remove region part of the language code and convert language codes if they're not 3 characters long --- api/src/misc/language-codes.js | 1 + api/src/processing/match-action.js | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/api/src/misc/language-codes.js b/api/src/misc/language-codes.js index c18006b5..804e3e55 100644 --- a/api/src/misc/language-codes.js +++ b/api/src/misc/language-codes.js @@ -49,5 +49,6 @@ const maps = { } export const convertLanguageCode = (code) => { + code = code.split("-")[0].split("_")[0]; return maps[code.length]?.[code.toLowerCase()] || null; } diff --git a/api/src/processing/match-action.js b/api/src/processing/match-action.js index 555705e8..6d1b0254 100644 --- a/api/src/processing/match-action.js +++ b/api/src/processing/match-action.js @@ -263,8 +263,9 @@ export default function({ // extractors usually return ISO 639-1 language codes, // but video players expect ISO 639-2, so we convert them here - if (defaultParams.fileMetadata?.sublanguage?.length === 2) { - const code = convertLanguageCode(defaultParams.fileMetadata.sublanguage); + const sublanguage = defaultParams.fileMetadata?.sublanguage; + if (sublanguage && sublanguage.length !== 3) { + const code = convertLanguageCode(sublanguage); if (code) { defaultParams.fileMetadata.sublanguage = code; } else {