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>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<h1>🔍 Search Agent</h1>
|
||||
<h1>🔍 Such-Agent</h1>
|
||||
</div>
|
||||
|
||||
<div class="search-section">
|
||||
@@ -558,45 +558,45 @@
|
||||
id="questionInput"
|
||||
autocomplete="off"
|
||||
>
|
||||
<button class="search-btn" id="searchBtn">Suche</button>
|
||||
<button class="search-btn" id="searchBtn">Suchen</button>
|
||||
</div>
|
||||
|
||||
<div class="loading" id="loading">
|
||||
<div class="spinner"></div>
|
||||
<p>Searching and analyzing results...</p>
|
||||
<p>Suche und analysiere Ergebnisse...</p>
|
||||
</div>
|
||||
|
||||
<div class="error" id="error"></div>
|
||||
|
||||
<div class="results" id="results">
|
||||
<div class="result-section">
|
||||
<h2>📝 Answer</h2>
|
||||
<h2>📝 Antwort</h2>
|
||||
<div class="answer" id="answer"></div>
|
||||
</div>
|
||||
|
||||
<div class="result-section">
|
||||
<h2>🔗 Most Relevant Sources</h2>
|
||||
<h2>🔗 Relevanteste Quellen</h2>
|
||||
<ul class="sources" id="sources"></ul>
|
||||
</div>
|
||||
|
||||
<div class="result-section">
|
||||
<h2>💡 Suggested Follow-up Searches</h2>
|
||||
<h2>💡 Vorgeschlagene Folgesuchen</h2>
|
||||
<div class="suggested-searches" id="suggestedSearches"></div>
|
||||
</div>
|
||||
|
||||
<!-- Cost Breakdown Section -->
|
||||
<div class="result-section">
|
||||
<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">
|
||||
<table class="cost-table" id="costTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Type</th>
|
||||
<th>Input</th>
|
||||
<th>Output</th>
|
||||
<th>Cost (USD)</th>
|
||||
<th>Typ</th>
|
||||
<th>Eingabe</th>
|
||||
<th>Ausgabe</th>
|
||||
<th>Kosten (USD)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="costTableBody">
|
||||
@@ -614,9 +614,9 @@
|
||||
<div style="display: flex; align-items: center; gap: 15px;">
|
||||
<div class="connection-status">
|
||||
<span class="status-dot" id="statusDot"></span>
|
||||
<span id="statusText">Connecting...</span>
|
||||
<span id="statusText">Verbinde...</span>
|
||||
</div>
|
||||
<button class="clear-logs-btn" id="clearLogsBtn">Clear</button>
|
||||
<button class="clear-logs-btn" id="clearLogsBtn">Löschen</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="log-container" id="logContainer">
|
||||
@@ -655,8 +655,8 @@
|
||||
|
||||
eventSource.onopen = function() {
|
||||
statusDot.className = 'status-dot connected';
|
||||
statusText.textContent = 'Connected';
|
||||
addLogEntry('Connected to log stream', 'info');
|
||||
statusText.textContent = 'Verbunden';
|
||||
addLogEntry('Mit Log-Stream verbunden', 'info');
|
||||
};
|
||||
|
||||
eventSource.onmessage = function(event) {
|
||||
@@ -690,7 +690,7 @@
|
||||
|
||||
eventSource.onerror = function(err) {
|
||||
statusDot.className = 'status-dot disconnected';
|
||||
statusText.textContent = 'Disconnected';
|
||||
statusText.textContent = 'Getrennt';
|
||||
console.error('SSE Error:', err);
|
||||
|
||||
// Attempt to reconnect after 3 seconds
|
||||
@@ -764,7 +764,7 @@
|
||||
async function performSearch() {
|
||||
const question = questionInput.value.trim();
|
||||
if (!question) {
|
||||
showError('Please enter a question');
|
||||
showError('Bitte geben Sie eine Frage ein');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -800,7 +800,7 @@
|
||||
|
||||
async function performSearchWithClarification(clarificationText) {
|
||||
if (!clarificationData || !clarificationData.originalQuestion) {
|
||||
showError('Clarification data not available');
|
||||
showError('Klärungsdaten nicht verfügbar');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -859,13 +859,13 @@
|
||||
id="clarificationSubmitBtn"
|
||||
style="padding: 10px 20px; font-size: 1rem;"
|
||||
>
|
||||
Submit Clarification
|
||||
Klärung einreichen
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
// 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
|
||||
setTimeout(() => {
|
||||
@@ -901,7 +901,7 @@
|
||||
clarificationData = null;
|
||||
|
||||
// Display answer as HTML
|
||||
answerEl.innerHTML = data.fullAnswerHTMLSnippet || '<p>No answer generated</p>';
|
||||
answerEl.innerHTML = data.fullAnswerHTMLSnippet || '<p>Keine Antwort generiert</p>';
|
||||
|
||||
// Display sources
|
||||
sourcesEl.innerHTML = '';
|
||||
@@ -918,7 +918,7 @@
|
||||
});
|
||||
} else {
|
||||
const li = document.createElement('li');
|
||||
li.textContent = 'No sources available';
|
||||
li.textContent = 'Keine Quellen verfügbar';
|
||||
sourcesEl.appendChild(li);
|
||||
}
|
||||
|
||||
@@ -936,7 +936,7 @@
|
||||
suggestedSearchesEl.appendChild(btn);
|
||||
});
|
||||
} 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
|
||||
@@ -956,7 +956,7 @@
|
||||
});
|
||||
} else {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user