This commit is contained in:
NAME
2026-05-21 05:27:30 +00:00
parent fe22461a07
commit e107464716
2 changed files with 13 additions and 2 deletions
+1 -1
View File
@@ -113,7 +113,7 @@ async function handleTranslate({ text, target_lang }, tabId) {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Authorization': `Bearer ${key}` 'Authorization': `Bearer ${key}`
}, },
body: JSON.stringify({ text, target_lang }) body: JSON.stringify({ text, target_lang, target_model })
}); });
const data = await res.json(); const data = await res.json();
if (!res.ok) throw new Error(`HTTP ${res.status}`); if (!res.ok) throw new Error(`HTTP ${res.status}`);
+12 -1
View File
@@ -15,6 +15,12 @@
{ value: 'cn', label: 'TQ' } { value: 'cn', label: 'TQ' }
]; ];
const ModelAI = [
{ value: 'openai', label: 'Chat GPT' },
{ value: 'google', label: 'Gemini' },
{ value: 'deepseek', label: 'Deep Seek' },
]
const TONE_BASE = [ const TONE_BASE = [
{ value: 'PROFESSIONAL', text: 'chuyên nghiệp, rõ ràng, đáng tin cậy' }, { value: 'PROFESSIONAL', text: 'chuyên nghiệp, rõ ràng, đáng tin cậy' },
{ value: 'CASUAL', text: 'Giản dị, thân thiện' }, { value: 'CASUAL', text: 'Giản dị, thân thiện' },
@@ -316,6 +322,9 @@
<label>Ngôn ngữ đích</label> <label>Ngôn ngữ đích</label>
<select id="trans-target">${LANGS.map(l => `<option value="${l.value}" ${l.value === 'ja' ?'selected': ''}>${l.label}</option>`).join('')}</select> <select id="trans-target">${LANGS.map(l => `<option value="${l.value}" ${l.value === 'ja' ?'selected': ''}>${l.label}</option>`).join('')}</select>
<label>Model</label>
<select id="trans-model">${ModelAI.map(l => `<option value="${l.value}" ${l.value === 'openai' ?'selected': ''}>${l.label}</option>`).join('')}</select>
<button class="primary" id="trans-run">🌐 Dịch</button> <button class="primary" id="trans-run">🌐 Dịch</button>
<div class="status" id="trans-status"></div> <div class="status" id="trans-status"></div>
@@ -480,6 +489,7 @@
// ===== TRANSLATE TAB ===== // ===== TRANSLATE TAB =====
const transInput = drawer.querySelector('#trans-input'); const transInput = drawer.querySelector('#trans-input');
const transTarget= drawer.querySelector('#trans-target'); const transTarget= drawer.querySelector('#trans-target');
const transModel= drawer.querySelector('#trans-model');
const transRun = drawer.querySelector('#trans-run'); const transRun = drawer.querySelector('#trans-run');
const transStatus= drawer.querySelector('#trans-status'); const transStatus= drawer.querySelector('#trans-status');
const transHint = drawer.querySelector('#trans-hint'); const transHint = drawer.querySelector('#trans-hint');
@@ -489,6 +499,7 @@
transRun.addEventListener('click', () => { transRun.addEventListener('click', () => {
const text = transInput.value.trim(); const text = transInput.value.trim();
const target = transTarget.value; const target = transTarget.value;
const targetModel = transModel.value;
if (!text) { flashBtn(transRun, '⚠️ Nhập văn bản!'); return; } if (!text) { flashBtn(transRun, '⚠️ Nhập văn bản!'); return; }
transRun.disabled = true; transRun.disabled = true;
transStatus.style.display = 'block'; transStatus.className = 'status ok'; transStatus.style.display = 'block'; transStatus.className = 'status ok';
@@ -496,7 +507,7 @@
transHint.style.display = 'none'; transHint.style.display = 'none';
chrome.runtime.sendMessage( chrome.runtime.sendMessage(
{ action: 'TRANSLATE_TEXT', data: { text, target_lang: target } }, { action: 'TRANSLATE_TEXT', data: { text, target_lang: target, target_model: targetModel } },
() => { () => {
if (chrome.runtime.lastError) { if (chrome.runtime.lastError) {
transStatus.className = 'status err'; transStatus.className = 'status err';