mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
fix(analysis): persist failed tracks and reconcile progress counts (#867)
* fix(analysis): persist failed-track suppression and reduce aggressive polling Persist unsupported/broken analysis tracks as failed entries and expose them in Settings with track metadata, export, and targeted rescan actions. Also make aggressive-mode completion checks cheap by gating re-entry on live track-count changes with a startup seed and 5-minute recheck cadence. * fix(analysis): mark unsupported decode tracks as failed in cpu-seed When full-seed falls back to waveform-only (no EBU loudness) or enrichment decode fails, persist analysis_track status as failed so aggressive backfill does not requeue the same unsupported tracks indefinitely. * fix(analysis): reconcile legacy ready tracks without loudness Auto-mark legacy ready tracks that only miss loudness as failed during needs-work checks so analysis progress converges instead of staying permanently pending. * docs(changelog): add failed-analysis recovery notes for PR 867 Document persistent failed-track handling, analytics strategy controls, and low-cost aggressive-mode recheck behavior in the 1.47.0 changelog. * fix(i18n): align settings locale coverage across all languages Sync missing Settings keys for all shipped locales and replace recent English fallbacks with localized strings so analytics and backup UI text stays consistent outside en/ru.
This commit is contained in:
@@ -315,6 +315,20 @@ export const settings = {
|
||||
analyticsStrategyClearConfirm: 'Очистить анализ',
|
||||
analyticsStrategyClearSuccess: 'Анализ удалён для удалённого сервера.',
|
||||
analyticsStrategyClearError: 'Не удалось очистить анализ для удалённого сервера.',
|
||||
analyticsStrategyProgressEmptyAfterFailed: '100% (0/0, треки помечены как проблемные)',
|
||||
analyticsFailedTracksOpenTitle: 'Проблемных треков: {{count}}',
|
||||
analyticsFailedTracksTitle: 'Проблемные треки анализа — {{server}}',
|
||||
analyticsFailedTracksDesc: 'Эти треки многократно падали на decode/enrichment и исключены из фонового автоанализа.',
|
||||
analyticsFailedTracksLoading: 'Загрузка списка проблемных треков…',
|
||||
analyticsFailedTracksEmpty: 'Для этого сервера проблемных треков нет.',
|
||||
analyticsFailedTracksClose: 'Закрыть',
|
||||
analyticsFailedTracksExport: 'Экспорт списка',
|
||||
analyticsFailedTracksExportSuccess: 'Список проблемных треков экспортирован ({{count}}).',
|
||||
analyticsFailedTracksExportError: 'Не удалось экспортировать список проблемных треков.',
|
||||
analyticsFailedTracksRescan: 'Рескан проблемных треков',
|
||||
analyticsFailedTracksRescanSuccess: 'Рескан запланирован для {{count}} проблемных треков.',
|
||||
analyticsFailedTracksRescanError: 'Не удалось запустить рескан проблемных треков.',
|
||||
analyticsFailedTracksLoadError: 'Не удалось загрузить список проблемных треков.',
|
||||
randomMixTitle: 'Чёрный список случайного микса',
|
||||
luckyMixMenuTitle: 'Показывать «Мне повезёт» в меню',
|
||||
luckyMixMenuDesc:
|
||||
@@ -590,4 +604,5 @@ export const settings = {
|
||||
floatingPlayerBarSub: 'Держать панель плеера плавающей над содержимым',
|
||||
uiScaleTitle: 'Масштаб интерфейса',
|
||||
uiScaleLabel: 'Масштаб',
|
||||
confirmDeleteServerLibrary: 'Также удалить локальный индекс библиотеки этого сервера? Нажмите «Отмена», чтобы сохранить кэш-копию для офлайн-использования.',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user