diff --git a/src/locales/ru/common.ts b/src/locales/ru/common.ts index 519425f8..e58606d5 100644 --- a/src/locales/ru/common.ts +++ b/src/locales/ru/common.ts @@ -9,6 +9,7 @@ export const common = { downloadZip: 'Скачать (ZIP)', back: 'Назад', backToTop: 'Наверх', + close: 'Закрыть', cancel: 'Отмена', save: 'Сохранить', delete: 'Удалить', @@ -49,6 +50,15 @@ export const common = { updaterAurHint: 'Установить обновление через AUR:', updaterErrorMsg: 'Ошибка загрузки', updaterRetryBtn: 'Повторить', + updaterInstallNow: 'Установить сейчас', + updaterMacReadyTitle: 'Готово к установке', + updaterMacReady: 'Обновление загружается, проверяется и применяется автоматически — DMG не нужен. После завершения приложение перезапустится само.', + updaterTrustNotarized: 'Нотаризовано Apple', + updaterTrustSignature: 'Подпись проверена', + updaterMacDoneTitle: 'Обновление установлено', + updaterRestartingIn: 'Перезапуск через {{n}} с…', + updaterRestarting: 'Перезапуск…', + updaterRestartNow: 'Перезапустить сейчас', durationHoursMinutes: '{{hours}}ч {{minutes}}мин', durationMinutesOnly: '{{minutes}}мин', updaterOpenGitHub: 'Открыть на GitHub', diff --git a/src/locales/ru/deviceSync.ts b/src/locales/ru/deviceSync.ts index 12400ecb..df5104c1 100644 --- a/src/locales/ru/deviceSync.ts +++ b/src/locales/ru/deviceSync.ts @@ -9,8 +9,25 @@ export const deviceSync = { free: 'свободно', notMountedVolume: 'Цель не находится на смонтированном томе. Диск мог быть отключён.', chooseFolder: 'Выбрать…', - filenameTemplate: 'Шаблон имени файла', targetDevice: 'Целевое устройство', + schemaLabel: 'Схема именования', + schemaHint: 'Фиксированная схема для надёжной синхронизации между ОС. Плейлисты сохраняются как .m3u8 со ссылками на треки альбома — дубликатов на устройстве не будет.', + migrateButton: 'Реорганизовать существующие файлы…', + migrateTooltip: 'Переименовать существующие файлы на устройстве по новой схеме (со старого шаблона имён).', + migrateTitle: 'Реорганизация существующих файлов', + migrateLoading: 'Анализ существующих файлов…', + migrateNothingToDo: 'Все файлы уже соответствуют новой схеме — делать нечего.', + migrateNoTemplate: 'На устройстве не найден старый шаблон имён. Миграция применяется только если устройство синхронизировалось версией Psysonic с поддержкой пользовательских шаблонов.', + migrateFilesToRename: 'файлов будет переименовано', + migrateUnchanged: '{{n}} файлов уже находятся по правильному пути', + migrateCollisions: '{{n}} файлов невозможно переименовать автоматически (несколько треков ведут к одному пути). Они останутся нетронутыми — следующая синхронизация скачает их в нужное место.', + migratePreviewNote: 'Старый шаблон: {{tpl}}', + migrateExecuting: 'Переименование файлов…', + migrateSuccess: '{{n}} файлов успешно переименовано', + migrateFailed: '{{n}} переименований завершились ошибкой', + migrateShowErrors: 'Показать ошибки', + migrateStart: 'Начать переименование', + scanningDevice: 'Сканирование устройства…', templateHint: 'Переменные: {artist}, {album}, {title}, {track_number}, {disc_number}, {year}', cleanupButton: 'Удалить файлы вне выборки', cleanupNothingToDelete: 'Нечего удалять — устройство уже синхронизировано.', diff --git a/src/locales/ru/player.ts b/src/locales/ru/player.ts index 0a687317..8e4e118a 100644 --- a/src/locales/ru/player.ts +++ b/src/locales/ru/player.ts @@ -59,8 +59,11 @@ export const player = { lyricsLoading: 'Загрузка текста…', lyricsNotFound: 'Текст не найден', lyricsNoSources: 'Источники текста не выбраны — включите их в Настройки → Текст', + lyricsSourceServer: 'Источник: Сервер', + lyricsSourceLrclib: 'Источник: LRCLIB', lyricsSourceNetease: 'Источник: Netease', lyricsSourceLyricsplus: 'Источник: YouLyPlus', + fsLyricsToggle: 'Текст в полноэкранном режиме', showDuration: 'Показать длительность', showRemainingTime: 'Показать оставшееся время', }; diff --git a/src/locales/ru/statistics.ts b/src/locales/ru/statistics.ts index 266350d2..47a89185 100644 --- a/src/locales/ru/statistics.ts +++ b/src/locales/ru/statistics.ts @@ -84,4 +84,22 @@ export const statistics = { playerListenedMinDecimal: '{{minutes}} мин', completionFull: 'Прослушано', completionPartial: 'Частично', + exportShare: 'Поделиться', + exportTitle: 'Поделиться топ-альбомами', + exportSubtitle: 'Создайте изображение с вашими самыми прослушиваемыми альбомами.', + exportFormat: 'Формат', + exportFormatStory: 'История', + exportFormatSquare: 'Квадрат', + exportFormatTwitter: 'Twitter Card', + exportGrid: 'Сетка', + exportGridLabel: '{{n}}×{{n}}', + exportPreview: 'Предпросмотр', + exportGenerate: 'Создать', + exportSave: 'Сохранить изображение…', + exportCancel: 'Отмена', + exportFooterLabel: 'Топ альбомов', + exportNotEnough: 'Нужно не менее {{count}} альбомов в библиотеке для сетки {{n}}×{{n}}.', + exportSaving: 'Сохранение…', + exportSaved: 'Сохранено.', + exportSaveFailed: 'Не удалось сохранить изображение.', };