warning on empty lang. see #247 #716

This commit is contained in:
mic 2026-03-29 22:52:47 +02:00
parent 4ce2a0fc6e
commit f1b42f8714
2 changed files with 36 additions and 2 deletions

View file

@ -2165,6 +2165,10 @@
"message": "Translation failed.", "message": "Translation failed.",
"description": "" "description": ""
}, },
"translate_no_language_configured": {
"message": "Translation language is not configured. Please set a language in the Translation settings or set a default language in the General settings.",
"description": ""
},
"antispam_by": { "antispam_by": {
"message": "Antispam by", "message": "Antispam by",
"description": "" "description": ""

View file

@ -377,6 +377,17 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
case 'triggerTranslationGeneration': case 'triggerTranslationGeneration':
async function _triggerTranslationGeneration(message) { async function _triggerTranslationGeneration(message) {
let tabId = sender.tab.id; let tabId = sender.tab.id;
let prefs_tl = await browser.storage.sync.get({
translate_lang: prefs_default.translate_lang,
default_chatgpt_lang: prefs_default.default_chatgpt_lang
});
const lang_tl = prefs_tl.translate_lang || prefs_tl.default_chatgpt_lang || '';
if (!lang_tl) {
let tabs = await browser.tabs.query({ active: true, currentWindow: true });
browser.tabs.sendMessage(tabId, { command: "sendAlert", curr_tab_type: tabs[0].type, message: browser.i18n.getMessage('translate_no_language_configured') });
browser.tabs.sendMessage(tabId, { command: "showTranslationButton", headerMessageId: message.headerMessageId });
return;
}
await _generateTranslationForMessage(message.headerMessageId, tabId); await _generateTranslationForMessage(message.headerMessageId, tabId);
} }
_triggerTranslationGeneration(message); _triggerTranslationGeneration(message);
@ -384,6 +395,17 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
case 'triggerTranslationWebchat': case 'triggerTranslationWebchat':
async function _triggerTranslationWebchat(message) { async function _triggerTranslationWebchat(message) {
let tabId = sender.tab.id; let tabId = sender.tab.id;
let prefs_tw = await browser.storage.sync.get({
translate_lang: prefs_default.translate_lang,
default_chatgpt_lang: prefs_default.default_chatgpt_lang
});
const lang_tw = prefs_tw.translate_lang || prefs_tw.default_chatgpt_lang || '';
if (!lang_tw) {
let tabs = await browser.tabs.query({ active: true, currentWindow: true });
browser.tabs.sendMessage(tabId, { command: "sendAlert", curr_tab_type: tabs[0].type, message: browser.i18n.getMessage('translate_no_language_configured') });
browser.tabs.sendMessage(tabId, { command: "showTranslationButton", headerMessageId: message.headerMessageId, webchat: true });
return;
}
await _openTranslationWebchat(message.headerMessageId, tabId); await _openTranslationWebchat(message.headerMessageId, tabId);
} }
_triggerTranslationWebchat(message); _triggerTranslationWebchat(message);
@ -716,6 +738,12 @@ async function _generateTranslationForMessage(headerMessageId, tabId = null, opt
return; return;
} }
const lang = prefs.translate_lang || prefs.default_chatgpt_lang || '';
if (!lang) {
taLog.warn("Translation skipped: no language configured (translate_lang and default_chatgpt_lang are both empty).");
return;
}
if (await translationStore.isProcessing(headerMessageId)) { if (await translationStore.isProcessing(headerMessageId)) {
if (tabId) browser.tabs.sendMessage(tabId, { command: "showTranslationGenerating" }); if (tabId) browser.tabs.sendMessage(tabId, { command: "showTranslationGenerating" });
return; return;
@ -748,8 +776,6 @@ async function _generateTranslationForMessage(headerMessageId, tabId = null, opt
taWorkingStatus.stopWorking(); taWorkingStatus.stopWorking();
return; return;
} }
const lang = prefs.translate_lang || prefs.default_chatgpt_lang || '';
const { promptText } = await taPromptUtils.buildTranslationPrompt(fullMessage, lang); const { promptText } = await taPromptUtils.buildTranslationPrompt(fullMessage, lang);
const cmd = new mzta_specialCommand({ const cmd = new mzta_specialCommand({
@ -951,6 +977,10 @@ async function _openTranslationWebchat(headerMessageId, tabId) {
} }
const lang = prefs.translate_lang || prefs.default_chatgpt_lang || ''; const lang = prefs.translate_lang || prefs.default_chatgpt_lang || '';
if (!lang) {
taLog.warn("Translation skipped: no language configured (translate_lang and default_chatgpt_lang are both empty).");
return;
}
const { promptText, promptInfo } = await taPromptUtils.buildTranslationPrompt(curr_message_full, lang); const { promptText, promptInfo } = await taPromptUtils.buildTranslationPrompt(curr_message_full, lang);
promptInfo.headerMessageId = headerMessageId; promptInfo.headerMessageId = headerMessageId;
promptInfo.translationTabId = tabId; promptInfo.translationTabId = tabId;