Files
pipu-music/packages/i18n/locales/ru/admin.json
T
mrleo1nid c34272d508
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m6s
ci / ts / ts (packages + web) (push) Successful in 2m59s
ci / api / api (push) Successful in 49s
ci / db / db (push) Successful in 1m17s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m25s
fix(auth): allow admins to change any username including their own
2026-10-21 17:33:19 +03:00

367 lines
23 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"users": {
"change_username": "Изменить логин",
"title": "Пользователи",
"subtitle": "Создание пользователей и модераторов, роли, аудит загрузок, сброс пароля, блокировка",
"create": "Создать пользователя",
"search": "Имя или логин",
"all": "Все",
"col_user": "Пользователь",
"col_role": "Роль",
"col_status": "Статус",
"col_last_login": "Был в сети",
"status_active": "Активен",
"status_blocked": "Заблокирован",
"status_must_change": "Ждёт смены пароля",
"never": "Ещё не входил",
"empty": "Никого не нашли",
"more": "Показать ещё",
"actions": "Действия с {{username}}",
"reset_password": "Сбросить пароль",
"block": "Заблокировать",
"unblock": "Разблокировать",
"make_role": "Сделать: {{role}}",
"review_uploads": "Аудит загрузок",
"grant_review": "Дать аудит загрузок",
"revoke_review": "Забрать аудит загрузок",
"delete": "Удалить",
"delete_confirm": "Удалить {{username}}? Его история и лайки пропадут.",
"block_confirm": "Заблокировать {{username}}? Все его сессии завершатся.",
"reset_confirm": "Сбросить пароль {{username}}? Все его сессии завершатся.",
"reset_recommendations": "Сбросить рекомендации",
"recs_confirm": "Сбросить рекомендации {{username}}? Волна начнёт подбирать музыку с нуля и снова спросит любимых исполнителей. Лайки и история останутся.",
"recs_done": "Рекомендации {{username}} сброшены",
"confirm": "Подтвердить",
"you": "вы"
},
"create": {
"title": "Новый пользователь",
"username": "Логин",
"username_hint": "Латинские буквы, цифры, «.», «_», «-»",
"display_name": "Имя",
"role": "Роль",
"review_uploads": "Аудит загрузок",
"review_uploads_hint": "Сможет рассматривать очередь. Это не роль: можно выдать нескольким людям, у админа её может не быть.",
"password_note": "Пароль сгенерирует сервер и покажет один раз.",
"submit": "Создать"
},
"temp_password": {
"title": "Временный пароль",
"text": "Передайте пароль пользователю {{username}}. Он виден только сейчас; при входе его попросят сменить.",
"done": "Готово"
},
"audit": {
"title": "Журнал",
"subtitle": "Действия администраторов и модераторов",
"col_when": "Когда",
"col_who": "Кто",
"col_action": "Действие",
"col_details": "Подробности",
"system": "Система",
"empty": "Записей пока нет",
"more": "Показать ещё",
"actions": {
"user.username_change": "Изменён логин",
"user.bootstrap_create": "Создан стартовый администратор",
"user.bootstrap_credentials": "Заданы учётные данные администратора",
"user.create": "Создан пользователь",
"user.rename": "Изменено имя",
"user.role_change": "Изменена роль",
"user.block": "Пользователь заблокирован",
"user.unblock": "Пользователь разблокирован",
"user.password_reset": "Сброшен пароль",
"user.recommendations_reset": "Сброшены рекомендации",
"user.delete": "Пользователь удалён"
}
},
"sources": {
"title": "Хранилища",
"subtitle": "Откуда сервер берёт музыку: папка на диске сервера или NFS",
"add": "Подключить хранилище",
"empty": "Хранилищ пока нет. Подключите папку с музыкой, чтобы начать.",
"type_local": "Папка на сервере",
"type_nfs": "NFS",
"status_pending": "Подключается",
"status_mounted": "Подключено",
"status_error": "Ошибка",
"status_disabled": "Отключено",
"last_scan": "Последний скан: {{date}}",
"never_scanned": "Ещё не сканировалось",
"scan": "Сканировать",
"full_scan": "Полный скан",
"test": "Проверить",
"patterns": "Шаблоны путей",
"edit": "Изменить",
"delete": "Удалить",
"disable": "Отключить",
"enable": "Подключить",
"delete_confirm": "Удалить «{{name}}»? Треки, которые есть только в этом хранилище, пропадут из библиотеки вместе с лайками.",
"scanning": "Сканирование: {{processed}} из {{total}}",
"scan_walking": "Обход папок…",
"scan_done": "Найдено {{found}} · новых {{added}} · обновлено {{updated}} · перемещено {{moved}} · пропало {{missing}} · ошибок {{errors}}",
"scan_failed": "Скан прервался: {{error}}",
"test_ok": "Доступно, найдено аудиофайлов: {{count}}",
"test_fail": "Нет доступа: {{message}}",
"form_title_new": "Новое хранилище",
"form_title_edit": "Хранилище",
"name": "Название",
"type": "Тип",
"folder": "Папка",
"folder_root": "Весь каталог",
"folder_hint": "Подпапка каталога LIBRARY_HOST на сервере",
"up": "Вверх",
"nfs_server": "Сервер",
"nfs_server_hint": "Имя или IP, например nas.lan",
"nfs_export": "Экспорт",
"nfs_export_hint": "Путь на сервере, например /export/music",
"nfs_options": "Опции монтирования",
"nfs_options_hint": "Только чтение добавляется автоматически",
"tag_priority": "Что важнее",
"tags_first": "Теги файлов",
"path_first": "Шаблоны путей",
"interval": "Автоскан",
"interval_off": "Вручную",
"interval_hours": "Каждые {{count}} ч",
"save": "Сохранить"
},
"patterns": {
"title": "Шаблоны путей: {{name}}",
"intro": "Регулярные выражения RE2 с именованными группами применяются к пути файла относительно корня хранилища. Побеждает первое совпавшее.",
"groups": "Группы: artist, albumartist, album, year, disc, track, title, genre; skip — игнорировать файл.",
"add": "Добавить шаблон",
"regex": "Шаблон {{n}}",
"enabled": "Включён",
"up": "Выше",
"down": "Ниже",
"remove": "Удалить",
"preview": "Предпросмотр",
"save": "Сохранить",
"saved": "Сохранено. Запустите полный скан, чтобы применить к уже найденным файлам.",
"col_path": "Путь",
"col_pattern": "Шаблон",
"col_result": "Результат",
"no_match": "не совпал",
"skipped": "пропускается",
"unmatched": "Не совпал ни один шаблон: {{count}} из {{total}}",
"from_tags": "из тегов",
"error_at": "Ошибка в шаблоне {{n}}: {{reason}}",
"examples": "Примеры"
},
"library": {
"title": "Библиотека",
"subtitle": "Состояние каталога и сканирования",
"artists": "Исполнителей",
"albums": "Альбомов",
"tracks": "Треков",
"files": "Файлов",
"missing": "Пропавших файлов",
"errors": "Не прочитано",
"sources": "Хранилища",
"error_files": "Файлы с ошибками",
"reindex": "Переиндексировать поиск",
"reindex_started": "Переиндексация запущена",
"analysis": "Аудиоанализ",
"analysis_progress": "Проанализировано {{done}} из {{total}}",
"analysis_failed": "Не удалось проанализировать: {{count}}",
"analyzer": "Версия анализатора: {{ver}}",
"wave": "Моя волна за 7 дней",
"wave_served": "Выдано треков",
"wave_sessions": "Сессий",
"wave_listen": "Дослушано ≥ 50%",
"wave_early_skip": "Ранние скипы",
"wave_likes": "Лайков на 100",
"wave_model": "Версия модели",
"wave_by_model": "Сравнение версий модели волны",
"analysis_retry": "Повторить"
},
"write_template": {
"title": "Приём загрузок и шаблон пути",
"intro": "Сюда раскладываются одобренные треки из очереди на добавление — по шаблону, который повторяет структуру папок этого хранилища.",
"accepts": "Принимать загрузки в это хранилище",
"nfs_rw_hint": "Хранилище будет переподключено: агент смонтирует его ещё и на запись (видно только ему). На NFS-сервере нужны права записи для PIPU_FILE_UID.",
"template": "Шаблон пути",
"hint": "Например {albumartist}/{year} - {album}/{disc:1-}{track:02} - {title}.{ext}; [ … ] — необязательная часть",
"suggest": "Подобрать по структуре",
"check": "Проверить",
"save": "Сохранить",
"saved": "Сохранено",
"required": "Чтобы принимать загрузки, задайте шаблон пути.",
"no_tracks": "В хранилище пока нет треков — проверить шаблон не на чем.",
"check_ok": "Шаблон обратим: {{round_trip}} из {{total}} путей разобраны без изменений, {{same_path}} совпали с реальными.",
"check_warn": "Есть расхождения: разобрано без изменений {{round_trip}} из {{total}}, совпало с реальными {{same_path}} (нужно ≥ 90%). Новые файлы могут лечь не так, как старые.",
"col_real": "Реальный путь",
"col_rendered": "По шаблону",
"col_problem": "Расхождение",
"no_pattern": "не разобрал ни один регэксп",
"other_path": "другой путь",
"badge": "принимает загрузки",
"write_ok": "Запись: ок",
"write_fail": "Запись не удалась: {{message}}"
},
"uploads": {
"suggest_title": "Предложить треки",
"suggest_subtitle": "Файлы попадут в очередь на добавление; администратор проверит и разложит их в хранилище",
"drop_title": "Перетащите сюда файлы или папки с музыкой",
"drop_hint": "Нужны FLAC, WAV или AIFF. MP3 — только в крайнем случае: качество хуже, и в очереди такой файл помечается «обратить внимание».",
"drop_folders": "Структура папок поможет угадать исполнителя и альбом.",
"format_attention": "Не lossless (FLAC, WAV, AIFF). MP3 присылайте, только если lossless нет.",
"pick_files": "Выбрать файлы",
"pick_folder": "Выбрать папку",
"files": "Файлы для отправки",
"skipped_one": "Пропущен {{count}} файл — не аудио",
"skipped_few": "Пропущено {{count}} файла — не аудио",
"skipped_many": "Пропущено {{count}} файлов — не аудио",
"skipped_other": "Пропущено {{count}} файла — не аудио",
"resume_hint_one": "Не докачан {{count}} файл. Выберите его снова — загрузка продолжится.",
"resume_hint_few": "Не докачано {{count}} файла. Выберите их снова — загрузка продолжится.",
"resume_hint_many": "Не докачано {{count}} файлов. Выберите их снова — загрузка продолжится.",
"resume_hint_other": "Не докачано {{count}} файла. Выберите их снова — загрузка продолжится.",
"resume_pick": "Выбрать файлы и продолжить",
"comment": "Комментарий для администратора",
"comment_hint": "Например: «ремастер 2011», «замена битых файлов»",
"not_enough_space": "В очереди не хватает места: нужно {{need}}, свободно {{free}} — часть файлов не примут.",
"clear": "Очистить список",
"hashing_wait": "Проверяю файлы…",
"send_one": "Отправить {{count}} файл · {{size}}",
"send_few": "Отправить {{count}} файла · {{size}}",
"send_many": "Отправить {{count}} файлов · {{size}}",
"send_other": "Отправить {{count}} файла · {{size}}",
"sent_one": "Готово: {{count}} файл загружен и обрабатывается. Статусы — в «Моих предложениях».",
"sent_few": "Готово: {{count}} файла загружены и обрабатываются. Статусы — в «Моих предложениях».",
"sent_many": "Готово: {{count}} файлов загружены и обрабатываются. Статусы — в «Моих предложениях».",
"sent_other": "Готово: {{count}} файла загружены и обрабатываются. Статусы — в «Моих предложениях».",
"failed_some_one": "Не загрузился {{count}} файл — место за ним зарезервировано, можно продолжить.",
"failed_some_few": "Не загрузились {{count}} файла — место за ними зарезервировано, можно продолжить.",
"failed_some_many": "Не загрузились {{count}} файлов — место за ними зарезервировано, можно продолжить.",
"failed_some_other": "Не загрузились {{count}} файла — место за ними зарезервировано, можно продолжить.",
"retry_failed": "Продолжить загрузку",
"uploading_now": "Загружаю…",
"go_mine": "Мои предложения →",
"more": "Загрузить ещё",
"dup_found": "Такой трек уже есть в библиотеке или в очереди — загружать не нужно",
"possible_dup": "Похожий трек уже есть (совпали исполнитель, название и длительность) — решит администратор",
"file_error": "Ошибка: {{message}}",
"remove": "Убрать {{name}}",
"quota": "Очередь: {{used}} из {{limit}}",
"quota_mine": "ваши: {{used}} из {{limit}}",
"mine_title": "Мои предложения",
"mine_subtitle": "Что вы загрузили и что решил администратор",
"mine_empty": "Вы ещё ничего не предлагали",
"filter": "Фильтр",
"filter_all": "Все",
"filter_pending": "В работе",
"filter_imported": "Добавлены",
"filter_declined": "Не приняты",
"col_file": "Трек",
"col_status": "Статус",
"col_size": "Размер",
"col_date": "Загружен",
"received": "принято {{pct}}% — откройте «Предложить треки» в той же вкладке, чтобы продолжить",
"withdraw": "Отозвать",
"load_more": "Показать ещё",
"queue_title": "Очередь на добавление",
"queue_subtitle": "Проверьте метаданные и путь в хранилище, затем одобрите или отклоните",
"queue_empty": "Здесь пусто",
"tab_review": "На рассмотрении",
"tab_failed": "Ошибки импорта",
"tab_progress": "В работе",
"tab_imported": "Добавлены",
"tab_declined": "Не приняты",
"only_possible": "Только возможные дубли",
"review_failed_one": "Не удалось применить решение к {{count}} файлу: {{reason}}",
"review_failed_few": "Не удалось применить решение к {{count}} файлам: {{reason}}",
"review_failed_many": "Не удалось применить решение к {{count}} файлам: {{reason}}",
"review_failed_other": "Не удалось применить решение к {{count}} файлам: {{reason}}",
"bulk": "Действия с выбранными",
"selected_one": "Выбран {{count}} файл",
"selected_few": "Выбрано {{count}} файла",
"selected_many": "Выбрано {{count}} файлов",
"selected_other": "Выбрано {{count}} файла",
"approve": "Одобрить",
"reject": "Отклонить",
"batch_of": "Пачка от {{author}}",
"batch_size_one": "{{count}} файл · {{size}}",
"batch_size_few": "{{count}} файла · {{size}}",
"batch_size_many": "{{count}} файлов · {{size}}",
"batch_size_other": "{{count}} файла · {{size}}",
"select_batch": "Выбрать всю пачку",
"select_file": "Выбрать {{name}}",
"disc": "диск {{n}}",
"edited": "правлено",
"flag_possible": "возможный дубль",
"flag_quality": "лучше по качеству",
"flag_attention": "обратить внимание",
"listen": "Слушать {{name}}",
"edit_batch": "На всю пачку",
"batch_edit_title": "Правка пачки",
"batch_edit_hint": "Пустые поля не меняются. Обложка запишется в файлы при импорте.",
"batch_cover": "Обложка пачки",
"batch_cover_clear": "Убрать обложку",
"set_upgrade": "Принимать тот же трек в лучшем качестве",
"flag_existing_album": "в существующий альбом",
"flag_new_album": "новый альбом",
"dup_level_sha256": "точная копия файла",
"dup_level_fingerprint": "тот же трек по акустическому отпечатку",
"dup_level_metadata": "совпали метаданные",
"edit": "Править {{name}}",
"retry": "Повторить",
"edit_title": "Метаданные трека",
"meta_artist": "Исполнитель",
"meta_albumartist": "Исполнитель альбома",
"meta_album": "Альбом",
"meta_title": "Название",
"meta_genre": "Жанр",
"meta_year": "Год",
"meta_track": "Номер трека",
"meta_disc": "Диск",
"target_source": "Хранилище",
"target_default": "По умолчанию",
"tags_note": "Правленые поля запишутся в теги файла при импорте — путь и теги не разойдутся.",
"save": "Сохранить",
"saved": "Сохранено",
"reject_title_one": "Отклонить {{count}} файл",
"reject_title_few": "Отклонить {{count}} файла",
"reject_title_many": "Отклонить {{count}} файлов",
"reject_title_other": "Отклонить {{count}} файла",
"reject_reason": "Причина (её увидит автор)",
"settings_title": "Настройки очереди",
"set_queue": "Лимит очереди, ГБ",
"set_per_user": "Лимит на одного модератора, ГБ",
"set_per_user_hint": "Пусто — без лимита",
"set_max_file": "Максимальный размер файла, ГБ",
"set_source": "Хранилище по умолчанию",
"set_source_auto": "Единственное, принимающее загрузки",
"set_note": "Уменьшение лимита ниже занятого ничего не удаляет: новые загрузки подождут, пока очередь освободится.",
"status": {
"uploading": "Загружается",
"processing": "Обработка",
"pending_review": "На рассмотрении",
"approved": "Одобрен",
"importing": "Импорт",
"imported": "Добавлен",
"import_failed": "Ошибка импорта",
"duplicate": "Дубль",
"invalid": "Не аудио",
"rejected": "Отклонён",
"withdrawn": "Отозван",
"expired": "Не докачан"
},
"stage": {
"hashing": "Считаю контрольную сумму",
"checking": "Проверяю на дубли",
"ready": "Готов к отправке",
"duplicate": "Уже есть",
"too_large": "Слишком большой",
"uploading": "Загружается",
"done": "Загружен, обрабатывается",
"rejected": "Не принят",
"error": "Ошибка",
"resume": "Ждёт файл, чтобы продолжить"
}
},
"server_settings": {
"title": "Настройки сервера",
"subtitle": "Параметры, которые действуют для всех пользователей"
}
}