diff --git a/index.html b/index.html
index 59ed0c6..f06d9e2 100644
--- a/index.html
+++ b/index.html
@@ -144,18 +144,23 @@
-
-
-
→
-
+
+
+
+ →
+
+
+
@@ -175,6 +180,13 @@
Здесь появится перевод...
+
+
+
📋 Журнал действий
+
+ История пуста...
+
+
@@ -329,6 +341,65 @@ function saveData(input, source, target, result) {
localStorage.setItem('translatorSourceLang', source);
localStorage.setItem('translatorTargetLang', target);
localStorage.setItem('translatorResult', result);
+
+ // Запись в журнал
+ addToLog('Перевод', source + ' → ' + target, input.substring(0, 50) + (input.length > 50 ? '...' : ''));
+}
+
+// Добавление записи в журнал
+function addToLog(action, details, data) {
+ const logs = JSON.parse(localStorage.getItem('translatorLog') || '[]');
+ logs.unshift({
+ action: action,
+ details: details,
+ data: data,
+ timestamp: new Date().toISOString()
+ });
+ // Храним последние 20 записей
+ if (logs.length > 20) logs.pop();
+ localStorage.setItem('translatorLog', JSON.stringify(logs));
+ renderLog();
+}
+
+// Отображение журнала
+function renderLog() {
+ const logBox = document.getElementById('logBox');
+ const logs = JSON.parse(localStorage.getItem('translatorLog') || '[]');
+
+ if (logs.length === 0) {
+ logBox.innerHTML = 'История пуста...';
+ return;
+ }
+
+ const langNames = { ru: 'Русский', kk: 'Қазақша', en: 'English' };
+ logBox.innerHTML = logs.map(function(log) {
+ var date = new Date(log.timestamp);
+ var time = date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' });
+ return '' +
+ '
' +
+ '' + log.action + '' +
+ '' + time + '' +
+ '
' +
+ '
' + log.details + ': ' + log.data + '
' +
+ '
';
+ }).join('');
+}
+
+// Очистка истории
+function clearHistory() {
+ if (confirm('Вы уверены, что хотите очистить всю историю переводов? Это действие нельзя отменить.')) {
+ localStorage.removeItem('translatorInput');
+ localStorage.removeItem('translatorSourceLang');
+ localStorage.removeItem('translatorTargetLang');
+ localStorage.removeItem('translatorResult');
+ localStorage.removeItem('translatorLog');
+
+ document.getElementById('inputText').value = '';
+ document.getElementById('resultBox').innerHTML = 'Здесь появится перевод...';
+ document.getElementById('logBox').innerHTML = 'История пуста...';
+
+ addToLog('Очистка', 'История', 'Все данные удалены');
+ }
}
// Функция перевода
@@ -413,6 +484,9 @@ document.getElementById('contactForm').addEventListener('submit', function(e) {
});
localStorage.setItem('contactLeads', JSON.stringify(leads));
+ // Запись в журнал
+ addToLog('Заявка', name, phone + (company ? ' | ' + company : ''));
+
// Показ сообщения об успехе
document.getElementById('contactForm').style.display = 'none';
document.getElementById('successMessage').classList.add('show');
@@ -426,8 +500,10 @@ document.getElementById('contactForm').addEventListener('submit', function(e) {
// Инициализация
document.addEventListener('DOMContentLoaded', function() {
loadSavedData();
+ renderLog();
document.getElementById('translateBtn').addEventListener('click', translate);
+ document.getElementById('clearHistoryBtn').addEventListener('click', clearHistory);
// Перевод по Enter в textarea
document.getElementById('inputText').addEventListener('keydown', function(e) {