@@ -542,41 +540,16 @@
// Load/Save config
const loadConfig = () => {
const config = JSON.parse(localStorage.getItem('confluentConfig') || '{}');
- if (config.provider) document.getElementById('provider').value = config.provider;
- if (config.model) document.getElementById('model').value = config.model;
if (config.target) document.getElementById('target').value = config.target;
};
const saveConfig = () => {
const config = {
- provider: document.getElementById('provider').value,
- model: document.getElementById('model').value,
target: document.getElementById('target').value,
};
localStorage.setItem('confluentConfig', JSON.stringify(config));
};
- // Update model options
- document.getElementById('provider').addEventListener('change', (e) => {
- const modelSelect = document.getElementById('model');
- modelSelect.innerHTML = '';
-
- if (e.target.value === 'anthropic') {
- modelSelect.innerHTML = `
-
-
- `;
- } else if (e.target.value === 'openai') {
- modelSelect.innerHTML = `
-
-
-
- `;
- }
- saveConfig();
- });
-
- document.getElementById('model').addEventListener('change', saveConfig);
document.getElementById('target').addEventListener('change', saveConfig);
// Translation with 3 layers
@@ -600,8 +573,6 @@
const config = {
text,
target: document.getElementById('target').value,
- provider: document.getElementById('provider').value,
- model: document.getElementById('model').value,
};
try {
@@ -681,6 +652,45 @@
}
});
+ // Confluent → Français translation
+ document.getElementById('translate-cf2fr').addEventListener('click', async () => {
+ const button = document.getElementById('translate-cf2fr');
+ const text = document.getElementById('cf-input').value.trim();
+ const resultContainer = document.getElementById('cf2fr-result-container');
+
+ if (!text) {
+ alert('Veuillez entrer un texte en Confluent.');
+ return;
+ }
+
+ button.disabled = true;
+ resultContainer.style.display = 'none';
+
+ // Show loading
+ resultContainer.style.display = 'block';
+ document.getElementById('cf2fr-layer1-content').textContent = 'Traduction en cours...';
+
+ try {
+ const response = await fetch('/api/translate/conf2fr', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ text }),
+ });
+
+ const data = await response.json();
+
+ if (response.ok) {
+ document.getElementById('cf2fr-layer1-content').textContent = data.translation || data.result || 'Traduction effectuée';
+ } else {
+ document.getElementById('cf2fr-layer1-content').innerHTML = `Erreur: ${data.error}`;
+ }
+ } catch (error) {
+ document.getElementById('cf2fr-layer1-content').innerHTML = `Erreur: ${error.message}`;
+ } finally {
+ button.disabled = false;
+ }
+ });
+
// Initialize
loadConfig();
loadLexique();