chore: Lokalisierung der UI-Texte ins Deutsche
- Übersetzung aller statischen Texte in der Benutzeroberfläche von Englisch nach Deutsch - Inklusive Schaltflächen, Überschriften, Fehlermeldungen, Statusmeldungen und Tabellenüberschriften
This commit is contained in:
@@ -538,7 +538,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1>🔍 Search Agent</h1>
|
<h1>🔍 Such-Agent</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-section">
|
<div class="search-section">
|
||||||
@@ -558,45 +558,45 @@
|
|||||||
id="questionInput"
|
id="questionInput"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
>
|
>
|
||||||
<button class="search-btn" id="searchBtn">Suche</button>
|
<button class="search-btn" id="searchBtn">Suchen</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="loading" id="loading">
|
<div class="loading" id="loading">
|
||||||
<div class="spinner"></div>
|
<div class="spinner"></div>
|
||||||
<p>Searching and analyzing results...</p>
|
<p>Suche und analysiere Ergebnisse...</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="error" id="error"></div>
|
<div class="error" id="error"></div>
|
||||||
|
|
||||||
<div class="results" id="results">
|
<div class="results" id="results">
|
||||||
<div class="result-section">
|
<div class="result-section">
|
||||||
<h2>📝 Answer</h2>
|
<h2>📝 Antwort</h2>
|
||||||
<div class="answer" id="answer"></div>
|
<div class="answer" id="answer"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="result-section">
|
<div class="result-section">
|
||||||
<h2>🔗 Most Relevant Sources</h2>
|
<h2>🔗 Relevanteste Quellen</h2>
|
||||||
<ul class="sources" id="sources"></ul>
|
<ul class="sources" id="sources"></ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="result-section">
|
<div class="result-section">
|
||||||
<h2>💡 Suggested Follow-up Searches</h2>
|
<h2>💡 Vorgeschlagene Folgesuchen</h2>
|
||||||
<div class="suggested-searches" id="suggestedSearches"></div>
|
<div class="suggested-searches" id="suggestedSearches"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Cost Breakdown Section -->
|
<!-- Cost Breakdown Section -->
|
||||||
<div class="result-section">
|
<div class="result-section">
|
||||||
<details class="cost-breakdown-details" id="costBreakdownDetails">
|
<details class="cost-breakdown-details" id="costBreakdownDetails">
|
||||||
<summary class="cost-breakdown-summary">💰 Cost Breakdown</summary>
|
<summary class="cost-breakdown-summary">💰 Kostenaufschlüsselung</summary>
|
||||||
<div class="cost-breakdown-content">
|
<div class="cost-breakdown-content">
|
||||||
<table class="cost-table" id="costTable">
|
<table class="cost-table" id="costTable">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Type</th>
|
<th>Typ</th>
|
||||||
<th>Input</th>
|
<th>Eingabe</th>
|
||||||
<th>Output</th>
|
<th>Ausgabe</th>
|
||||||
<th>Cost (USD)</th>
|
<th>Kosten (USD)</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="costTableBody">
|
<tbody id="costTableBody">
|
||||||
@@ -614,9 +614,9 @@
|
|||||||
<div style="display: flex; align-items: center; gap: 15px;">
|
<div style="display: flex; align-items: center; gap: 15px;">
|
||||||
<div class="connection-status">
|
<div class="connection-status">
|
||||||
<span class="status-dot" id="statusDot"></span>
|
<span class="status-dot" id="statusDot"></span>
|
||||||
<span id="statusText">Connecting...</span>
|
<span id="statusText">Verbinde...</span>
|
||||||
</div>
|
</div>
|
||||||
<button class="clear-logs-btn" id="clearLogsBtn">Clear</button>
|
<button class="clear-logs-btn" id="clearLogsBtn">Löschen</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="log-container" id="logContainer">
|
<div class="log-container" id="logContainer">
|
||||||
@@ -655,8 +655,8 @@
|
|||||||
|
|
||||||
eventSource.onopen = function() {
|
eventSource.onopen = function() {
|
||||||
statusDot.className = 'status-dot connected';
|
statusDot.className = 'status-dot connected';
|
||||||
statusText.textContent = 'Connected';
|
statusText.textContent = 'Verbunden';
|
||||||
addLogEntry('Connected to log stream', 'info');
|
addLogEntry('Mit Log-Stream verbunden', 'info');
|
||||||
};
|
};
|
||||||
|
|
||||||
eventSource.onmessage = function(event) {
|
eventSource.onmessage = function(event) {
|
||||||
@@ -690,7 +690,7 @@
|
|||||||
|
|
||||||
eventSource.onerror = function(err) {
|
eventSource.onerror = function(err) {
|
||||||
statusDot.className = 'status-dot disconnected';
|
statusDot.className = 'status-dot disconnected';
|
||||||
statusText.textContent = 'Disconnected';
|
statusText.textContent = 'Getrennt';
|
||||||
console.error('SSE Error:', err);
|
console.error('SSE Error:', err);
|
||||||
|
|
||||||
// Attempt to reconnect after 3 seconds
|
// Attempt to reconnect after 3 seconds
|
||||||
@@ -764,7 +764,7 @@
|
|||||||
async function performSearch() {
|
async function performSearch() {
|
||||||
const question = questionInput.value.trim();
|
const question = questionInput.value.trim();
|
||||||
if (!question) {
|
if (!question) {
|
||||||
showError('Please enter a question');
|
showError('Bitte geben Sie eine Frage ein');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@
|
|||||||
|
|
||||||
async function performSearchWithClarification(clarificationText) {
|
async function performSearchWithClarification(clarificationText) {
|
||||||
if (!clarificationData || !clarificationData.originalQuestion) {
|
if (!clarificationData || !clarificationData.originalQuestion) {
|
||||||
showError('Clarification data not available');
|
showError('Klärungsdaten nicht verfügbar');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -859,13 +859,13 @@
|
|||||||
id="clarificationSubmitBtn"
|
id="clarificationSubmitBtn"
|
||||||
style="padding: 10px 20px; font-size: 1rem;"
|
style="padding: 10px 20px; font-size: 1rem;"
|
||||||
>
|
>
|
||||||
Submit Clarification
|
Klärung einreichen
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// Clear sources since we're waiting for clarification
|
// Clear sources since we're waiting for clarification
|
||||||
sourcesEl.innerHTML = '<li>Waiting for clarification...</li>';
|
sourcesEl.innerHTML = '<li>Warte auf Klärung...</li>';
|
||||||
|
|
||||||
// Add event listener for clarification submission
|
// Add event listener for clarification submission
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -901,7 +901,7 @@
|
|||||||
clarificationData = null;
|
clarificationData = null;
|
||||||
|
|
||||||
// Display answer as HTML
|
// Display answer as HTML
|
||||||
answerEl.innerHTML = data.fullAnswerHTMLSnippet || '<p>No answer generated</p>';
|
answerEl.innerHTML = data.fullAnswerHTMLSnippet || '<p>Keine Antwort generiert</p>';
|
||||||
|
|
||||||
// Display sources
|
// Display sources
|
||||||
sourcesEl.innerHTML = '';
|
sourcesEl.innerHTML = '';
|
||||||
@@ -918,7 +918,7 @@
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const li = document.createElement('li');
|
const li = document.createElement('li');
|
||||||
li.textContent = 'No sources available';
|
li.textContent = 'Keine Quellen verfügbar';
|
||||||
sourcesEl.appendChild(li);
|
sourcesEl.appendChild(li);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -936,7 +936,7 @@
|
|||||||
suggestedSearchesEl.appendChild(btn);
|
suggestedSearchesEl.appendChild(btn);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
suggestedSearchesEl.innerHTML = '<p style="color: #999;">No suggested searches available</p>';
|
suggestedSearchesEl.innerHTML = '<p style="color: #999;">Keine vorgeschlagenen Suchen verfügbar</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Display cost breakdown
|
// Display cost breakdown
|
||||||
@@ -956,7 +956,7 @@
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const tr = document.createElement('tr');
|
const tr = document.createElement('tr');
|
||||||
tr.innerHTML = '<td colspan="5">No cost data available</td>';
|
tr.innerHTML = '<td colspan="5">Keine Kostendaten verfügbar</td>';
|
||||||
costTableBody.appendChild(tr);
|
costTableBody.appendChild(tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user