diff --git a/frontend/src/lib/i18n/locales/en/translate.json b/frontend/src/lib/i18n/locales/en/translate.json index edf8a178..b1d84461 100644 --- a/frontend/src/lib/i18n/locales/en/translate.json +++ b/frontend/src/lib/i18n/locales/en/translate.json @@ -106,7 +106,7 @@ "run_incremental": "Incremental Run", "run_incremental_desc": "Translate only new or changed rows. Fast, uses fewer LLM tokens.", "run_full": "Full Re-Run", - "run_full_desc": "Re-translate ALL rows from the datasource. Use for a complete refresh.", + "run_full_desc": "Re-translate ALL rows from the datasource (no key filter). Cache is still used for rows with matching source text and config.", "run_started": "Translation run started", "running": "Running...", "run_failed": "Translation run failed", @@ -159,12 +159,12 @@ "help_target_source_column": "Column for saving the original source text before translation. Required if 'Include source text' is enabled.", "help_target_source_language_column": "Column for the automatically detected source language code (BCP-47). Filled by the LLM during translation.", "help_incremental": "Translates only rows with new key values (new keys). Previously translated rows are not re-fetched from the LLM — results come from cache. Faster and cheaper. Recommended for regular updates. For scheduled runs, baseline expiry is checked: if the last successful run was >90 days ago, a full translation is automatically triggered.", - "help_full": "Re-translates ALL rows from the datasource from scratch, ignoring the cache from previous runs. Useful when settings, dictionaries, or provider change. Takes more time and tokens. Language auto-detection (detected_lang) runs for every row on each full run.", + "help_full": "Translates ALL rows from the datasource (no new-key filter). Cache is still checked — rows with unchanged source text and configuration will reuse cached translations. If settings, dictionaries, or provider changed, the config hash differs and previous cache entries won't match, triggering a real re-translation. Takes more time and tokens than incremental mode. Language auto-detection (detected_lang) runs for every row on each full run.", "target_table_tab": "Target Table", "confirm_run_title": "Run translation?", "confirm_run_body": "Are you sure you want to start the incremental translation?", "confirm_full_run_title": "Run full translation?", - "confirm_full_run_body": "This will re-translate ALL rows from the source, ignoring the cache. This action may take a long time and consume many LLM tokens.", + "confirm_full_run_body": "This will translate ALL rows from the source (no new-key filtering). Cache is used where source text and config haven't changed. This may take longer and consume more LLM tokens than incremental mode.", "confirm": "Confirm", "unsaved_changes_title": "Unsaved changes", "unsaved_changes_body": "You have unsaved changes. Save before leaving?", diff --git a/frontend/src/lib/i18n/locales/ru/translate.json b/frontend/src/lib/i18n/locales/ru/translate.json index 84451c21..f94f8377 100644 --- a/frontend/src/lib/i18n/locales/ru/translate.json +++ b/frontend/src/lib/i18n/locales/ru/translate.json @@ -106,7 +106,7 @@ "run_incremental": "Инкрементальный запуск", "run_incremental_desc": "Перевести только новые или изменённые строки. Быстро, меньше токенов LLM.", "run_full": "Полный перезапуск", - "run_full_desc": "Перевести ВСЕ строки из источника. Используйте для полного обновления.", + "run_full_desc": "Перевести ВСЕ строки из источника (без фильтрации ключей). Кэш используется для строк с неизменённым текстом и конфигурацией.", "run_started": "Запуск перевода начат", "running": "Выполняется...", "run_failed": "Ошибка запуска перевода", @@ -159,12 +159,12 @@ "help_target_source_column": "Колонка для сохранения оригинального исходного текста перед переводом. Требуется, если включена опция 'Сохранять исходный текст'.", "help_target_source_language_column": "Колонка для кода автоматически определённого языка источника (BCP-47). Заполняется LLM при переводе.", "help_incremental": "Переводит только строки с новыми значениями ключей (новые ключи). Ранее переведённые строки не перезапрашиваются у LLM — результат берётся из кэша. Быстрее и дешевле. Рекомендуется для регулярных обновлений. Для расписаний также проверяется 'baseline expiry': если последний успешный запуск был >90 дней назад — автоматически выполняется полный перевод.", - "help_full": "Переводит ВСЕ строки из источника заново, игнорируя кэш предыдущих запусков. Полезно при изменении настроек, словарей или провайдера. Занимает больше времени и токенов. При каждом запуске выполняется автоматическое определение языка (detected_lang) для каждой строки.", + "help_full": "Переводит ВСЕ строки из источника (без фильтрации новых ключей). Кэш проверяется — строки с неизменённым исходным текстом и конфигурацией возьмут перевод из кэша. Если настройки, словари или провайдер изменились — хэш конфигурации не совпадёт, и старые кэш-записи будут проигнорированы, запустив реальный перевод. Занимает больше времени и токенов, чем инкрементальный режим. При каждом запуске выполняется автоматическое определение языка (detected_lang) для каждой строки.", "target_table_tab": "Целевая таблица", "confirm_run_title": "Запустить перевод?", "confirm_run_body": "Вы уверены, что хотите запустить инкрементальный перевод?", "confirm_full_run_title": "Запустить полный перевод?", - "confirm_full_run_body": "Это переведёт ВСЕ строки из источника заново, игнорируя кэш. Действие может занять много времени и потребить много токенов LLM.", + "confirm_full_run_body": "Будут переведены ВСЕ строки из источника (без фильтрации новых ключей). Для строк с неизменённым текстом и конфигурацией используется кэш. Это может занять больше времени и потребить больше токенов LLM, чем инкрементальный режим.", "confirm": "Подтвердить", "unsaved_changes_title": "Несохранённые изменения", "unsaved_changes_body": "У вас есть несохранённые изменения. Сохранить перед уходом?",