diff --git a/src/public/js/app.js b/src/public/js/app.js index b6e2874..bb87da8 100644 --- a/src/public/js/app.js +++ b/src/public/js/app.js @@ -180,7 +180,7 @@ async function startRecording() { recordHint.textContent = 'Tippen zum Stoppen'; // Show listening indicator — not editable, no interim text - transcriptBox.textContent = 'Слушаю…'; + transcriptBox.textContent = 'Ich höre zu…'; transcriptBox.classList.remove('empty'); clearTimeout(recordingTimer); diff --git a/src/server.js b/src/server.js index e9021e0..1969855 100644 --- a/src/server.js +++ b/src/server.js @@ -10,9 +10,9 @@ app.use(express.json()); app.use(express.static(path.join(__dirname, "public"))); const LEVEL_DESCRIPTIONS = { - A2: "базовый (A2): хвали за попытку, кратко комментируй смысл и предлагай простые альтернативные формулировки", - B1: "средний (B1): анализируй смысл ответа, порядок слов, предлагай более естественные обороты речи", - B2: "выше среднего (B2): детально анализируй смысл, структуру предложений, стиль и естественность речи, предлагай альтернативные формулировки", + A2: "Grundstufe (A2): Lobe den Versuch kurz, kommentiere den Sinn und schlage einfache Alternativen vor", + B1: "Mittelstufe (B1): Analysiere den Sinn, die Wortstellung und schlage natürlichere Formulierungen vor", + B2: "Obere Mittelstufe (B2): Analysiere Sinn, Satzstruktur und Stil detailliert und schlage Alternativen vor", }; // Audio is sent as raw binary body (Content-Type: audio/*) @@ -64,18 +64,18 @@ app.post("/api/check", async (req, res) => { const levelDesc = LEVEL_DESCRIPTIONS[level] || LEVEL_DESCRIPTIONS["B1"]; - const systemPrompt = `Ты помощник для практики разговорного немецкого языка. Уровень пользователя: ${levelDesc}. + const systemPrompt = `Du bist ein Assistent zum Üben des gesprochenen Deutschen. Niveau des Nutzers: ${levelDesc}. -ВАЖНО: текст получен через автоматическое распознавание речи. Орфография, пунктуация, слитное написание слов, заглавные буквы — всё это артефакты распознавания. Полностью игнорируй любые подобные особенности. Никогда не упоминай и не комментируй правописание, пунктуацию или неразборчивые слова. +WICHTIG: Der Text wurde durch automatische Spracherkennung erfasst. Rechtschreibung, Zeichensetzung, Zusammenschreibungen und Großschreibung sind Erkennungsartefakte. Ignoriere diese vollständig. Kommentiere niemals Rechtschreibung, Zeichensetzung oder unklare Wörter. -Тебе дают вопрос на немецком и ответ пользователя на немецком. Дай ровно два пункта: +Du bekommst eine Frage auf Deutsch und die Antwort des Nutzers auf Deutsch. Gib genau zwei Punkte: -1. **Правка** — только самая грубая ошибка в смысле или порядке слов (если ошибок нет — скажи коротко) -2. **Альтернативный оборот** — один другой способ выразить ту же мысль по-немецки +1. **Korrektur** — nur der gröbste Fehler im Sinn oder in der Wortstellung (wenn kein Fehler — kurz bestätigen) +2. **Alternative Formulierung** — eine andere Möglichkeit, denselben Gedanken auf Deutsch auszudrücken -Больше ничего не добавляй. Отвечай на русском языке. Используй markdown для форматирования.`; +Füge nichts weiter hinzu. Antworte auf Deutsch. Verwende Markdown zur Formatierung.`; - const userMessage = `Вопрос: ${question}\n\nОтвет пользователя: ${answer}`; + const userMessage = `Frage: ${question}\n\nAntwort des Nutzers: ${answer}`; try { const response = await fetch("https://api.anthropic.com/v1/messages", {