fix: from lang bug
This commit is contained in:
@@ -2577,6 +2577,13 @@ export const I18N = {
|
|||||||
ja: `原字幕を表示`,
|
ja: `原字幕を表示`,
|
||||||
ko: `원본 자막 표시`,
|
ko: `원본 자막 표시`,
|
||||||
},
|
},
|
||||||
|
subtitle_same_lang: {
|
||||||
|
zh: `原语言与目标语言相同,字幕不予显示`,
|
||||||
|
en: `The source language is the same as the target language, the subtitles will not be displayed`,
|
||||||
|
zh_TW: `原语言与目标语言相同,字幕不予显示`,
|
||||||
|
ja: `原言語と目標言語が同じ場合、字幕は表示されません`,
|
||||||
|
ko: `원본 언어와 대상 언어가 동일한 경우, 자막은 표시되지 않습니다`,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export const newI18n = (lang) => (key) => I18N[key]?.[lang] || "";
|
export const newI18n = (lang) => (key) => I18N[key]?.[lang] || "";
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
OPT_TRANS_MICROSOFT,
|
OPT_TRANS_MICROSOFT,
|
||||||
MSG_MENUS_PROGRESSED,
|
MSG_MENUS_PROGRESSED,
|
||||||
MSG_MENUS_UPDATEFORM,
|
MSG_MENUS_UPDATEFORM,
|
||||||
|
OPT_LANGS_SPEC_DEFAULT,
|
||||||
} from "../config";
|
} from "../config";
|
||||||
import { sleep, genEventName, downloadBlobFile } from "../libs/utils.js";
|
import { sleep, genEventName, downloadBlobFile } from "../libs/utils.js";
|
||||||
import { createLogoSVG } from "../libs/svg.js";
|
import { createLogoSVG } from "../libs/svg.js";
|
||||||
@@ -414,6 +415,20 @@ class YouTubeCaptionProvider {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#getFromLang(lang) {
|
||||||
|
if (lang === "zh") {
|
||||||
|
return "zh-CN";
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
OPT_LANGS_SPEC_DEFAULT.get(lang) ||
|
||||||
|
OPT_LANGS_SPEC_DEFAULT.get(lang.slice(0, 2)) ||
|
||||||
|
OPT_LANGS_TO_CODE[OPT_TRANS_MICROSOFT].get(lang) ||
|
||||||
|
OPT_LANGS_TO_CODE[OPT_TRANS_MICROSOFT].get(lang.slice(0, 2)) ||
|
||||||
|
"auto"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
async #handleInterceptedRequest(url, responseText) {
|
async #handleInterceptedRequest(url, responseText) {
|
||||||
const videoId = this.#videoId;
|
const videoId = this.#videoId;
|
||||||
if (!videoId) {
|
if (!videoId) {
|
||||||
@@ -462,16 +477,14 @@ class YouTubeCaptionProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const lang = potUrl.searchParams.get("lang");
|
const lang = potUrl.searchParams.get("lang");
|
||||||
const fromLang =
|
const fromLang = this.#getFromLang(lang);
|
||||||
OPT_LANGS_TO_CODE[OPT_TRANS_MICROSOFT].get(lang) ||
|
|
||||||
OPT_LANGS_TO_CODE[OPT_TRANS_MICROSOFT].get(lang.slice(0, 2)) ||
|
|
||||||
"auto";
|
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
`Youtube Provider: fromLang: ${fromLang}, toLang: ${toLang}`
|
`Youtube Provider: lang: ${lang}, fromLang: ${fromLang}, toLang: ${toLang}`
|
||||||
);
|
);
|
||||||
if (this.#isSameLang(fromLang, toLang)) {
|
if (this.#isSameLang(fromLang, toLang)) {
|
||||||
logger.debug("Youtube Provider: skip same lang", fromLang, toLang);
|
logger.debug("Youtube Provider: skip same lang", fromLang, toLang);
|
||||||
|
this.#showNotification(this.#i18n("subtitle_same_lang"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -673,6 +686,11 @@ class YouTubeCaptionProvider {
|
|||||||
|
|
||||||
if (noSpaceLanguages.some((l) => lang?.startsWith(l))) {
|
if (noSpaceLanguages.some((l) => lang?.startsWith(l))) {
|
||||||
const subtitles = [];
|
const subtitles = [];
|
||||||
|
|
||||||
|
if (this.#isQualityPoor(flatEvents, 5, 0.5)) {
|
||||||
|
return flatEvents;
|
||||||
|
}
|
||||||
|
|
||||||
let currentLine = null;
|
let currentLine = null;
|
||||||
const MAX_LENGTH = 100;
|
const MAX_LENGTH = 100;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user