From 0b05c726de914e52a9931fcba32c9a5da13f04ba Mon Sep 17 00:00:00 2001 From: Altair <27139654+A1Asriel@users.noreply.github.com> Date: Thu, 31 Jul 2025 20:01:41 +0300 Subject: [PATCH] Translate to Russian (#321) --- copyparty/web/browser.js | 628 ++++++++++++++++++++++++++++++++++++++- copyparty/web/splash.js | 42 +++ 2 files changed, 669 insertions(+), 1 deletion(-) diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 59b1ab5f..db9986f2 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -2510,9 +2510,635 @@ var Ls = { "lang_set": "Neuladen um Änderungen anzuwenden?", }, + "rus": { + "tt": "Русский", + + "cols": { + "c": "кнопки действий", + "dur": "длительность", + "q": "качество / битрейт", + "Ac": "аудио кодек", + "Vc": "видео кодек", + "Fmt": "формат / контейнер", + "Ahash": "контрольная сумма аудио", + "Vhash": "контрольная сумма видео", + "Res": "разрешение", + "T": "тип файла", + "aq": "качество аудио / битрейт", + "vq": "качество видео / битрейт", + "pixfmt": "сабсемплинг / пиксельный формат", + "resw": "горизонтальное разрешение", + "resh": "вертикальное разрешение", + "chs": "аудио каналы", + "hz": "частота дискретизации" + }, + + "hks": [ + [ + "разное", + ["ESC", "закрыть всякие штуки"], + + "файловый менеджер", + ["G", "переключиться между списком / плиткой"], + ["T", "переключиться между миниатюрами / иконками"], + ["⇧ A/D", "размер миниатюры"], + ["ctrl-K", "удалить выделенное"], + ["ctrl-X", "вырезать выделенное в буфер"], + ["ctrl-C", "копировать выделенное в буфер"], + ["ctrl-V", "вставить (переместить/копировать) сюда"], + ["Y", "скачать выделенное"], + ["F2", "переименовать выделенное"], + + "выделение файлов", + ["пробел", "выделить/снять выделение с текущего файла"], + ["↑/↓", "двигать курсор"], + ["ctrl ↑/↓", "двигать курсор и скроллить"], + ["⇧ ↑/↓", "выделить предыдущий/следующий файл"], + ["ctrl-A", "выделить все файлы и папки"], + ], [ + "навигация", + ["B", "показать/скрыть панель навигации"], + ["I/K", "предыдущая/следующая папка"], + ["M", "перейти на уровень выше (или свернуть текущую папку)"], + ["V", "переключиться между папками / текстовыми файлами в панели навигации"], + ["A/D", "уменьшить/увеличить панель навигации"], + ], [ + "аудиоплеер", + ["J/L", "предыдущий/следующий трек"], + ["U/O", "перемотать на 10 секунд назад/вперёд"], + ["0..9", "перемотать на 0%..90%"], + ["P", "играть/пауза (или подгрузить трек)"], + ["S", "выделить текущий трек"], + ["Y", "скачать трек"], + ], [ + "просмотрщик изображений", + ["J/L, ←/→", "предыдущее/следующее изображение"], + ["Home/End", "первое/последнее изображение"], + ["F", "развернуть на полный экран"], + ["R", "повернуть по часовой стрелке"], + ["⇧ R", "повернуть против часовой стрелки"], + ["S", "выделить изображение"], + ["Y", "скачать изображение"], + ], [ + "видеоплеер", + ["U/O", "перемотать на 10 секунд назад/вперёд"], + ["P/K/Space", "играть/пауза"], + ["C", "продолжить проигрывать следующее"], + ["V", "повтор"], + ["M", "выключить звук"], + ["[ and ]", "задать интервал повтора"], + ], [ + "просмотрщик текстовых файлов", + ["I/K", "предыдущий/следующий файл"], + ["M", "закрыть файл"], + ["E", "отредактировать файл"], + ["S", "выделить файл"], + ] + ], + + "m_ok": "OK", + "m_ng": "Отмена", + + "enable": "Включить", + "danger": "ВНИМАНИЕ", + "clipped": "скопировано в буфер обмена", + + "ht_s1": "секунда", + "ht_s2": "секунды", + "ht_m1": "минута", + "ht_m2": "минуты", + "ht_h1": "час", + "ht_h2": "часы", + "ht_d1": "день", + "ht_d2": "дни", + "ht_and": " и ", + + "goh": "панель управления", + "gop": 'предыдущая папка">пред', + "gou": 'родительская папка">вверх', + "gon": 'следующая папка">след', + "logout": "Выйти ", + "access": " доступ", + "ot_close": "закрыть подменю", + "ot_search": "искать файлы по атрибутам, пути / имени, музыкальным тегам или любой другой комбинации из следующих конструкций$N$N<code>foo bar</code> = обязано содержать «foo» И «bar»,$N<code>foo -bar</code> = обязано содержать «foo», но не «bar»,$N<code>^yana .opus$</code> = начинается с «yana» и имеет расширение «opus»$N<code>"try unite"</code> = содержит именно «try unite»$N$Nформат времени задаётся по стандарту iso-8601, например$N<code>2009-12-31</code> или <code>2020-09-12 23:30:00</code>", + "ot_unpost": "unpost: удалить ваши недавние загрузки и отменить незавершённые", + "ot_bup": "bup: легковесный загрузчик файлов, поддерживает даже netscape 4.0", + "ot_mkdir": "mkdir: создать новую папку", + "ot_md": "new-md: создать новый markdown-документ", + "ot_msg": "msg: отправить сообщение в лог сервера", + "ot_mp": "настройка медиаплеера", + "ot_cfg": "остальные настройки", + "ot_u2i": 'up2k: загрузить файлы (если имеется доступ к записи) или переключиться в режим поиска$N$Nзагрузки являются возобновляемыми и многопоточными, а даты изменения файлов сохраняются в процессе, но этот метод использует больше ресурсов процессора, чем [🎈]  (легковесный загрузчик)

во время загрузки эта иконка превращается в индикатор!', + "ot_u2w": 'up2k: загрузить файлы с поддержкой возобновления (закиньте те же файлы после перезапуска браузера)$N$Nподдерживается многопоточность, даты изменения файлов сохраняются в процессе, но этот метод использует больше ресурсов процессора, чем [🎈]  (легковесный загрузчик)

во время загрузки эта иконка превращается в индикатор!', + "ot_noie": 'Пожалуйста, используйте Chrome / Firefox / Edge', + + "ab_mkdir": "создать папку", + "ab_mkdoc": "создать markdown-документ", + "ab_msg": "отправить сообщение в лог сервера", + + "ay_path": "перейти к папкам", + "ay_files": "перейти к файлам", + + "wt_ren": "переименовать выделенные файлы$NГорячая клавиша: F2", + "wt_del": "удалить выделенные файлы$NГорячая клавиша: ctrl-K", + "wt_cut": "вырезать выделенные файлы <small>(затем вставить куда-то в другое место)</small>$NГорячая клавиша: ctrl-X", + "wt_cpy": "копировать выделенные файлы в буфер$N(чтобы вставить их куда-то ещё)$NГорячая клавиша: ctrl-C", + "wt_pst": "вставить ранее вырезанный / скопированный файл$NГорячая клавиша: ctrl-V", + "wt_selall": "выделить все файлы$NГорячая клавиша: ctrl-A (когда выделен хотя бы один файл)", + "wt_selinv": "инвертировать выделение", + "wt_zip1": "скачать эту папку как архив", + "wt_selzip": "скачать выделенные файлы как архив", + "wt_seldl": "скачать выделенные файлы по-отдельности$NГорячая клавиша: Y", + "wt_npirc": "копировать информацию о треке в формате irc", + "wt_nptxt": "копировать информацию о треке обычным текстом", + "wt_m3ua": "добавить в плейлист m3u (нажмите 📻коп. в конце)", + "wt_m3uc": "копировать плейлист m3u в буфер обмена", + "wt_grid": "переключить между сеткой / списком$NГорячая клавиша: G", + "wt_prev": "предыдущий трек$NГорячая клавиша: J", + "wt_play": "играть / пауза$NГорячая клавиша: P", + "wt_next": "следующий трек$NГорячая клавиша: L", + + "ul_par": "параллельные загрузки:", + "ut_rand": "случайные имена файлов", + "ut_u2ts": "копировать время последнего изменения$Nиз вашей файловой системы на сервер\">📅", + "ut_ow": "перезаписывать существующие файлы на сервере?$N🛡️: нет (для повторяющихся файлов будут создаваться новые имена)$N🕒: перезаписать файлы с датой изменения старее, чем у загружаемых$N♻️: всегда перезаписывать (если файлы различаются по содержанию)", + "ut_mt": "продолжать хешировать другие файлы во время загрузки$N$Nесть смысл отключить при медленном диске или процессоре", + "ut_ask": 'требовать подтверждения перед началом загрузки">💭', + "ut_pot": "улучшить скорость загрузки на слабых устройства$Nс помощью упрощения интерфейса", + "ut_srch": "не загружать, а проверять, существуют ли данные файлы $N на сервере (проверка всех доступных вам папок)", + "ut_par": "при 0 загрузка встанет на паузу$N$Nследует повысить, если ваше подключение медленное$N$Nоставьте 1, если используется локальная сеть или диск сервера медленный", + "ul_btn": "отпустите файлы / папки
здесь (или нажмите)", + "ul_btnu": "З А Г Р У З И Т Ь", + "ul_btns": "И С К А Т Ь", + + "ul_hash": "хеш", + "ul_send": "отправка", + "ul_done": "готово", + "ul_idle1": "нет загрузок в очереди", + "ut_etah": "средняя скорость <em>хеширования</em> и примерное время до завершения", + "ut_etau": "средняя скорость <em>загрузки</em> и примерное время до завершения", + "ut_etat": "средняя <em>общая</em> скорость и примерное время до завершения", + + "uct_ok": "успешно завершены", + "uct_ng": "ошибки / отказы / не найдены", + "uct_done": "готово (ok и ng вместе)", + "uct_bz": "хешируются или загружаются", + "uct_q": "в очереди", + + "utl_name": "имя файла", + "utl_ulist": "список", + "utl_ucopy": "копировать", + "utl_links": "ссылки", + "utl_stat": "статус", + "utl_prog": "прогресс", + + // keep short: + "utl_404": "404", + "utl_err": "ОШИБКА", + "utl_oserr": "ошибка ОС", + "utl_found": "найдено", + "utl_defer": "отложить", + "utl_yolo": "турбо", + "utl_done": "готово", + + "ul_flagblk": "файлы были добавлены в очередь,
однако в другой вкладке уже есть активная загрузка через up2k,
поэтому ожидаем её завершения", + "ul_btnlk": "настройки сервера запрещают изменение состояния этой опции", + + "udt_up": "Загрузить", + "udt_srch": "Поиск", + "udt_drop": "отпустите здесь", + + "u_nav_m": '
лады, что там у вас?
Enter = Файлы (один или больше)\nESC = Одна папка (с учётом подпапок)', + "u_nav_b": 'ФайлыОдна папка', + + "cl_opts": "переключатели", + "cl_themes": "тема", + "cl_langs": "язык", + "cl_ziptype": "архивация папок", + "cl_uopts": "опции up2k", + "cl_favico": "иконка", + "cl_bigdir": "бол. папки", + "cl_hsort": "#сорт.", + "cl_keytype": "схема горячих клавиш", + "cl_hiddenc": "скрытые столбцы", + "cl_hidec": "скрыть", + "cl_reset": "сбросить", + "cl_hpick": "нажмите на заголовки столбцов, чтобы скрыть их в таблице ниже", + "cl_hcancel": "скрытие столбца отменено", + + "ct_grid": '田 сетка', + "ct_ttips": '◔ ◡ ◔">ℹ️ подсказки', + "ct_thumb": 'переключение между иконками и миниатюрами в режиме сетки$NГорячая клавиша: T">🖼️ миниат.', + "ct_csel": 'держите CTRL или SHIFT для выделения файлов в режиме сетки">выбор', + "ct_ihop": 'показывать последний открытый файл после закрытия просмотрщика изображений">g⮯', + "ct_dots": 'показывать скрытые файлы (если есть доступ)">скрыт.', + "ct_qdel": 'спрашивать подтверждение только один раз перед удалением файлов">быстр. удал.', + "ct_dir1st": 'разместить папки над файлами">📁 сверху', + "ct_nsort": 'сортировка по числам$N(например, файл с 2 в начале названия идёт перед 11)">нат. сорт.', + "ct_readme": 'показывать содержимое README.md в описании папки">📜 ридми', + "ct_idxh": 'показывать страницу index.html в текущей папке вместо интерфейса">htm', + "ct_sbars": 'показывать полосы прокрутки">⟊', + + "cut_umod": "если файл уже существует на сервере, обновить время последнего изменения на сервере в соответствии с локальным файлом (требуются права write+delete)\">перенос 📅", + + "cut_turbo": "используйте эту функцию С ОСТОРОЖНОСТЬЮ:$N$Nпригодится в случае, если была прервана загрузка большого количества файлов, и вы хотите возобновить её как можно быстрее$N$Nпроверка файлов по хешу заменяется на простой алгоритм: "если размер файла отличается - тогда загрузить", но содержание файлов не сравнивается$N$Nследует отключить эту функцию после окончания загрузки, а затем "загрузить" те же файлы заново, чтобы валидировать их\">турбо", + + "cut_datechk": "работает только при включённой кнопке "турбо"$N$Nчуть-чуть повышает надёжность турбо-загрузок с помощью сверки дат изменений между файлами на сервере и вашими$N$Nв теории достаточно для проверки большинства незавершённых / повреждённых загрузок, но не является альтернативой валидации файлов после турбо-загрузки\">провер. дат", + + "cut_u2sz": "размер (в МиБ) каждой загружаемой части; большие значения показывают лучшие результаты для дальних соединений. Если подключение нестабильное, попробуйте значение пониже", + + "cut_flag": "разрешить одновременную загрузку только из одной вкладки за раз $N -- обязательно включить эту опцию в остальных вкладках $N -- работает только в пределах одного домена", + + "cut_az": "загружать файлы в алфавитном порядке вместо "от меньшего к большему"$N$Nэто позволит проще отследить проблемы во время загрузки, но скорость слегка ниже на очень быстрых соединениях (например, в локальной сети)", + + "cut_nag": "системное уведомление по завершении загрузки$N(только при неактивной вкладке браузера)", + "cut_sfx": "звуковое уведомление по завершении загрузки$N(только при неактивной вкладке браузера)", + + "cut_mt": "использовать многопоточность для ускорения хеширования$N$Nиспользует Web Worker'ы и требует больше памяти (до 512 МиБ)$N$Nускоряет https на 30%, http - в 4,5 раз\">мп", + + "cut_wasm": "использовать модуль WASM вместо встроенной в браузер функции хеширования; ускоряет процесс в браузерах на основе Chromium, но увеличивает нагрузку на процессор. Старые версии Chrome содержат баги, которые заполняют всю оперативную память и крашат браузер, когда включена эта опция\">wasm", + + "cft_text": "текст для иконки (очистите поле и перезагрузите страницу для применения)", + "cft_fg": "цвет текста", + "cft_bg": "цвет фона", + + "cdt_lim": "максимальное количество файлов для показа в папке", + "cdt_ask": "внизу страницы спрашивать о действии вместо автоматической загрузки следующих файлов", + "cdt_hsort": "сколько правил сортировки (<code>,sorthref</code>) включать в адрес страницы. Если значение равно 0, по нажатии на ссылки будут игнорироваться правила, включённые в них", + + "tt_entree": "показать панель навигации$NГорячая клавиша: B", + "tt_detree": "скрыть панель навигации$NГорячая клавиша: B", + "tt_visdir": "прокрутить до выделенной папки", + "tt_ftree": "переключить между иерархией и списком текстовых файлов$NГорячая клавиша: V", + "tt_pdock": "закрепить родительские папки сверху панели", + "tt_dynt": "автоматическое расширение панели", + "tt_wrap": "перенос слов", + "tt_hover": "раскрывать обрезанные строки при наведении$N( ломает скроллинг, если $N  курсор не в пустоте слева )", + + "ml_pmode": "в конце папки...", + "ml_btns": "команды", + "ml_tcode": "транскодировать", + "ml_tcode2": "транскод. в", + "ml_tint": "затемн.", + "ml_eq": "эквалайзер", + "ml_drc": "компрессор", + + "mt_loop": "повторять один трек\">🔁", + "mt_one": "остановить после этого трека\">1️⃣", + "mt_shuf": "перемешать треки во всех папках\">🔀", + "mt_aplay": "автоматически играть треки по нажатии на ссылки с их ID$N$Nпри отключении адрес сайта также перестанет обновляться в соответствии с текущим треком\">a▶", + "mt_preload": "подгружать следующий трек перед концом текущего для бесшовного переключения\">предзагр.", + "mt_prescan": "переходить в следующую папку перед окончанием последнего трека$Nне даёт браузеру прервать следующий плейлист\">нав.", + "mt_fullpre": "подгружать следующий трек целиком;$N✅ полезно при нестабильном подключении,$N❌ при медленной скорости лучше выключить\">цел.", + "mt_fau": "для телефонов: начинать следующий трек сразу, даже если он не успел подгрузиться целиком (может сломать отображение тегов)\">☕️", + "mt_waves": "визуализация:$Nпоказывать волну громкости на полосе воспроизведения\">~", + "mt_npclip": "показать кнопки копирования для текущего трека\">/np", + "mt_m3u_c": "показать кнопки копирования для выделенных треков$Nв формате плейлистов m3u8\">📻", + "mt_octl": "интеграция с ОС (поддержка медиа-клавиш и музыкальных виджетов)\">интегр.", + "mt_oseek": "позволить перематывать треки через системные виджеты$N$Nвнимание: на некоторых устройствах (iPhone)$Nэто заменит кнопку следующего трека\">перемотка", + "mt_oscv": "показывать картинки альбомов в виджетах\">арт", + "mt_follow": "держать фокус на играющем треке\">🎯", + "mt_compact": "компактный плеер\">⟎", + "mt_uncache": "очистить кеш  (если браузер кешировал повреждённый$Nтрек и отказывается его запускать)\">уд. кеш", + "mt_mloop": "повторять треки в папке\">🔁 цикл", + "mt_mnext": "загрузить следующую папку и продолжить в ней\">📂 след.", + "mt_mstop": "приостановить воспроизведение\">⏸ стоп", + "mt_cflac": "конвертировать flac / wav в opus\">flac", + "mt_caac": "конвертировать aac / m4a в opus\">aac", + "mt_coth": "конвертировать всё остальное (кроме mp3) в opus\">др.", + "mt_c2opus": "лучший вариант для компьютеров и устройств на Android\">opus", + "mt_c2owa": "opus-weba, для iOS 17.5 и выше\">owa", + "mt_c2caf": "opus-caf, для iOS 11-17\">caf", + "mt_c2mp3": "для очень старых устройств\">mp3", + "mt_c2ok": "хороший выбор", + "mt_c2nd": "это не рекомендованный вариант формата для вашего устройства, но сойдёт", + "mt_c2ng": "не похоже, что ваше устройство поддерживает этот формат, но давайте попробуем и узнаем наверняка", + "mt_xowa": "в iOS есть баги, препятствующие фоновому воспроизведению этого формата. Пожалуйста, используйте caf или mp3", + "mt_tint": "непрозрачность фона (0-100) на полосе воспроизведения$N$Nделает буферизацию менее отвлекающей", + "mt_eq": "включить эквалайзер$N$Nboost <code>0</code> = стандартная громкость$N$Nwidth <code>1  </code> = обычное стерео$Nwidth <code>0.5</code> = микширование левого и правого каналов на 50%$Nwidth <code>0  </code> = моно$N$Nboost <code>-0.8</code> и width <code>10</code> = удаление голоса :^)$N$Nвключённый эквалайзер полностью убирает задержку между треками, поэтому следует его включить со всеми значениями на 0 (кроме width = 1), если вам нужно бесшовное воспроизведение", + "mt_drc": "включить компрессор; также включит эквалайзер для баланса вселенной, так что выставьте всё на 0 кроме width, если он вам не нужен$N$Nпонижает громкость при волне выше значения dB в tresh; каждый dB в ratio равен одному dB на выходе, так что стандартные значения tresh = -24 и ratio = 12 сделают так, что звук никогда не будет громче -22 dB. При таком раскладе можно поставить boost в эквалайзере на 0.8 или даже 1.8 при значении atk = 0 и огромном rls вроде 90 (работает только в Firefox, rls не может быть выше 1 в других браузерах)$N$N(загляните в википедию, там всё объяснено подробнее)", + + "mb_play": "играть", + "mm_hashplay": "воспроизвести этот музыкальный файл?", + "mm_m3u": "нажмите Enter/OK, чтобы играть\nнажмите ESC/Отмена, чтобы редактировать", + "mp_breq": "требуется Firefox 82+, Chrome 73+ или iOS 15+", + "mm_bload": "загружаю...", + "mm_bconv": "конвертирую в {0}, подождите...", + "mm_opusen": "ваш браузер не может воспроизводить файлы aac / m4a;\nвключено транскодирование в opus", + "mm_playerr": "ошибка воспроизведения: ", + "mm_eabrt": "Попытка воспроизведения была отменена", + "mm_enet": "Ваше подключение нестабильно", + "mm_edec": "Этот файл, возможно, повреждён??", + "mm_esupp": "Ваш браузер не распознаёт этот аудио-формат", + "mm_eunk": "Неопознанная ошибка", + "mm_e404": "Не удалось воспроизвести аудио; ошибка 404: Файл не найден.", + "mm_e403": "Не удалось воспроизвести аудио; ошибка 403: Доступ запрещён.\n\nПопробуйте перезагрузить страницу, возможно, ваша сессия истекла", + "mm_e500": "Не удалось воспроизвести аудио; ошибка 500: Проверьте логи сервера.", + "mm_e5xx": "Не удалось воспроизвести аудио; ошибка сервера ", + "mm_nof": "больше аудио-файлов не найдено", + "mm_prescan": "Поиск музыки для воспроизведения дальше...", + "mm_scank": "Найден следующий трек:", + "mm_uncache": "кеш очищен; все треки будут загружены заново при воспроизведении", + "mm_hnf": "это трек больше не существует", + + "im_hnf": "это изображение больше не существует", + + "f_empty": 'эта папка пуста', + "f_chide": 'это скроет столбец «{0}»\n\nвы можете показать скрытые столбцы в настройках', + "f_bigtxt": "объём данного файла - {0} МиБ. точно открыть как текст?", + "f_bigtxt2": "просмотреть только конец файла? это также включит обновление в реальном времени, показывая новые строки сразу после их добавления", + "fbd_more": '
показано {0} из {1} файлов; показать {2} или показать всё
', + "fbd_all": '
показано {0} из {1} файлов; показать всё
', + "f_anota": "только {0} из {1} файлов было выделено;\nчтобы выделить всё папку, отмотайте до низа", + + "f_dls": 'ссылки на файлы в данной папке были\nзаменены ссылками на скачивание', + + "f_partial": "Чтобы безопасно скачать файл, который в текущий момент загружается, нажмите на файл с таким же названием, но без расширения .PARTIAL. Пожалуйста, нажмите Отмена или ESC, чтобы сделать это.\n\nПри нажатии OK / Enter, вы скачаете этот временный файл, который с огромной вероятностью содержит лишь неполные данные.", + + "ft_paste": "вставить {0} файлов$NГорячая клавиша: ctrl-V", + "fr_eperm": 'не удалось переименовать:\nу вас нет разрешения “move” в этой папке', + "fd_eperm": 'не удалось удалить:\nу вас нет разрешения “delete” в этой папке', + "fc_eperm": 'не удалось вырезать:\nу вас нет разрешения “move” в этой папке', + "fp_eperm": 'не удалось вставить:\nу вас нет разрешения “write” в этой папке', + "fr_emore": "выделите хотя бы один файл, чтобы переименовать", + "fd_emore": "выделите хотя бы один файл, чтобы удалить", + "fc_emore": "выделите хотя бы один файл, чтобы вырезать", + "fcp_emore": "выделите хотя бы один файл, чтобы скопировать в буфер", + + "fs_sc": "поделиться текущей папкой", + "fs_ss": "поделиться выделенными файлами", + "fs_just1d": "вы не можете выбрать больше одной папки\nили смешивать файлы с папками при выделении", + "fs_abrt": "❌ отменить", + "fs_rand": "🎲 случ. имя", + "fs_go": "✅ создать доступ", + "fs_name": "имя", + "fs_src": "путь", + "fs_pwd": "пароль", + "fs_exp": "срок", + "fs_tmin": "мин", + "fs_thrs": "часов", + "fs_tdays": "дней", + "fs_never": "вечно", + "fs_pname": "имя ссылки; генерируется случайно если не указано", + "fs_tsrc": "путь к файлу или папке, которыми нужно поделиться", + "fs_ppwd": "пароль (необязательно)", + "fs_w8": "создаю доступ...", + "fs_ok": "нажмите Enter/OK, чтобы скопировать\nнажмите ESC/Cancel, чтобы закрыть", + + "frt_dec": "может исправить некоторые случаи с некорректными именами файлов\">декодировать url", + "frt_rst": "сбросить изменённые имена обратно к оригинальным\">↺ сброс", + "frt_abrt": "отменить операцию и закрыть это окно\">❌ отмена", + "frb_apply": "ПЕРЕИМЕНОВАТЬ", + "fr_adv": "переименование массовое / метаданных / по шаблону\">эксперт", + "fr_case": "чувствительный к регистру regex\">РеГиСтР", + "fr_win": "совместимые с windows имена; заменяет <>:"\\|?* японскими полноширинными символами\">win", + "fr_slash": "заменяет / символом, который не создаёт новые папки\">без /", + "fr_re": "поиск по шаблону regex, применяемый к оригинальным именам; группы захвата могут применяться в поле форматирования с помощью <code>(1)</code> и <code>(2)</code> и так далее", + "fr_fmt": "вдохновлено foobar2000:$N<code>(title)</code> заменяется названием трека,$N<code>[(artist) - ](title)</code> пропускает [эту] часть, если композитор не указан$N<code>$lpad((tn),2,0)</code> добавляет ведущие нули до двух цифр", + "fr_pdel": "удалить", + "fr_pnew": "сохранить как", + "fr_pname": "предоставьте название для нового шаблона", + "fr_aborted": "прервано", + "fr_lold": "старое имя", + "fr_lnew": "новое имя", + "fr_tags": "теги для выделенных файлов (не редактируется, это для инструкции):", + "fr_busy": "переименовываю {0} файлов...\n\n{1}", + "fr_efail": "ошибка переименования:\n", + "fr_nchg": "{0} новых имён были модифицированы для соответствия опциям win и/или без /\n\nХотите использовать эти имена?", + + "fd_ok": "успешно удалено", + "fd_err": "ошибка удаления:\n", + "fd_none": "ничего не удалено; возможно, не позволяет конфигурация сервера (xbd)?", + "fd_busy": "удалено {0} файлов...\n\n{1}", + "fd_warn1": "УДАЛИТЬ эти {0} файлов?", + "fd_warn2": "Внимание! Это необратимый процесс. Удалить?", + + "fc_ok": "вырезано {0} файлов", + "fc_warn": 'вырезано {0} файлов\n\nно только эта вкладка браузера может их вставить\n(поскольку выделение оказалось настолько огромным)', + + "fcc_ok": "скопировано {0} файлов в буфер", + "fcc_warn": 'скопировано {0} файлов в буфер\n\nно только эта вкладка браузера может их вставить\n(поскольку выделение оказалось настолько огромным)', + + "fp_apply": "использовать эти имена", + "fp_ecut": "сначала вырезать или скопировать только некоторые файлы / папки\n\nучтите: вы можете вырезать / вставлять файлы между вкладками", + "fp_ename": "{0} файлов невозможно перенести сюда, потому что их имена уже заняты. Введите имена ниже, чтобы продолжить, или оставьте поля пустыми, чтобы пропустить:", + "fcp_ename": "{0} файлов невозможно скопировать сюда, потому что их имена уже заняты. Введите имена ниже, чтобы продолжить, или оставьте поля пустыми, чтобы пропустить:", + "fp_emore": "есть ещё коллизии имён, которые требуется исправить", + "fp_ok": "успешно перенесено", + "fcp_ok": "успешно скопировано", + "fp_busy": "перемещаю {0} файлов...\n\n{1}", + "fcp_busy": "копирую {0} файлов...\n\n{1}", + "fp_err": "ошибка перемещения:\n", + "fcp_err": "ошибка копирования:\n", + "fp_confirm": "переместить эти {0} файлов сюда?", + "fcp_confirm": "скопировать эти {0} файлов сюда?", + "fp_etab": 'ошибка чтения буфера обмена из другой вкладки браузера', + "fp_name": "загружаю файл с вашего устройства. Назовите его:", + "fp_both_m": '
выберите, что вставить
Enter = Перенести {0} файлов из «{1}»\nESC = Загрузить {2} файлов с вашего устройства', + "fcp_both_m": '
выберите, что вставить
Enter = Скопировать {0} файлов из «{1}»\nESC = Загрузить {2} файлов с вашего устройства', + "fp_both_b": 'ПереместитьЗагрузить', + "fcp_both_b": 'СкопироватьЗагрузить', + + "mk_noname": "введите имя в текстовое поле слева перед тем, как это делать :p", + + "tv_load": "Загружаю текстовый документ:\n\n{0}\n\n{1}% ({2} из {3} МиБ загружено)", + "tv_xe1": "не удалось загрузить текстовый файл:\n\nошибка ", + "tv_xe2": "404, файл не найден", + "tv_lst": "список текстовых файлов в", + "tvt_close": "вернуться в обзор папки$NГорячая клавиша: M (или Esc)\">❌ закрыть", + "tvt_dl": "скачать этот файл$NГорячая клавиша: Y\">💾 скачать", + "tvt_prev": "показать предыдущий документ$NГорячая клавиша: i\">⬆ пред", + "tvt_next": "показать следующий документ$NГорячая клавиша: K\">⬇ след", + "tvt_sel": "выбрать документ   ( для вырезания / копирования / удаления / ... )$NГорячая клавиша: S\">выд", + "tvt_edit": "открыть документ в текстовом редакторе$NГорячая клавиша: E\">✏️ изменить", + "tvt_tail": "проверять файл на изменения; показывать новые строки в реальном времени\">📡 обновлять", + "tvt_wrap": "перенос слов\">↵", + "tvt_atail": "прикрепить вид к низу страницы\">⚓", + "tvt_ctail": "декодировать цвета терминала (ansi escape codes)\">🌈", + "tvt_ntail": "лимит прокрутки (как много байт текста держать в памяти)", + + "m3u_add1": "трек добавлен в плейлист m3u", + "m3u_addn": "{0} треков добавлено в плейлист m3u", + "m3u_clip": "плейлист m3u скопирован в буфер\n\nсоздайте файл с расширением .m3u и вставьте текст туда, чтобы сделать из него плейлист", + + "gt_vau": "не показывать видео, только воспроизводить аудио\">🎧", + "gt_msel": "включить режим выделения; держите ctrl при нажатии для инвертации действия$N$N<em>когда активно: дважды кликните на файле / папке, чтобы открыть их</em>$N$NГорячая клавиша: S\">выделение", + "gt_crop": "обрезать миниатюры\">обрезка", + "gt_3x": "миниатюры высокого разрешения\">3x", + "gt_zoom": "размер", + "gt_chop": "длина имён", + "gt_sort": "сортировать по", + "gt_name": "имени", + "gt_sz": "размеру", + "gt_ts": "дате", + "gt_ext": "типу", + "gt_c1": "укоротить названия файлов", + "gt_c2": "удлинить названия файлов", + + "sm_w8": "ищем...", + "sm_prev": "результаты поиска ниже - из предыдущего запроса:\n ", + "sl_close": "закрыть результаты поиска", + "sl_hits": "показ {0} совпадений", + "sl_moar": "загрузить больше", + + "s_sz": "размер", + "s_dt": "дата", + "s_rd": "путь", + "s_fn": "имя", + "s_ta": "теги", + "s_ua": "дата⬆️", + "s_ad": "другое", + "s_s1": "минимум МиБ", + "s_s2": "максимум МиБ", + "s_d1": "мин. iso8601", + "s_d2": "макс. iso8601", + "s_u1": "загружено после", + "s_u2": "и/или до", + "s_r1": "путь содержит   (разделить пробелами)", + "s_f1": "имя содержит   (для исключения писать -nope)", + "s_t1": "теги содержат   (^=начало, конец=$)", + "s_a1": "свойства метаданных", + + "md_eshow": "не удалось показать ", + "md_off": "[📜ридми] отключён в [⚙️] -- документ скрыт", + + "badreply": "Ошибка обработки ответа сервера", + + "xhr403": "403: Доступ запрещён\n\nпопробуйте перезагрузить страницу, возможно, ваша сессия истекла", + "xhr0": "неизвестно (возможно, потеряно соединение с сервером, либо он отключён)", + "cf_ok": "просим прощения -- сработала защита от DD" + wah + "oS\n\nвсё должно вернуться в норму через 30 сек\n\nесли ничего не происходит - перезагрузите страницу", + "tl_xe1": "не удалось показать подпапки:\n\nошибка ", + "tl_xe2": "404: Папка не найдена", + "fl_xe1": "не удалось показать файлы:\n\nошибка ", + "fl_xe2": "404: Папка не найдена", + "fd_xe1": "не удалось создать подпапку:\n\nошибка ", + "fd_xe2": "404: Родительская папка не найдена", + "fsm_xe1": "не удалось отправить сообщение:\n\nошибка ", + "fsm_xe2": "404: Родительская папка не найдена", + "fu_xe1": "не удалось удалить список с сервера:\n\nошибка ", + "fu_xe2": "404: Файл не найден??", + + "fz_tar": "несжатый файл gnu-tar (linux / mac)", + "fz_pax": "несжатый pax-форматированный tar (медленнее)", + "fz_targz": "gnu-tar с 3 уровнем сжатия gzip$N$Nобычно это очень медленно,$Nлучше использовать несжатый tar", + "fz_tarxz": "gnu-tar с 1 уровнем сжатия xz$N$Nобычно это очень медленно,$Nлучше использовать несжатый tar", + "fz_zip8": "zip с именами по utf8 (может работать криво на windows 7 и ниже)", + "fz_zipd": "zip с именами по cp437, для очень старого софта", + "fz_zipc": "cp437 с предварительным вычислением crc32,$N для MS-DOS PKZIP v2.04g (октябрь 1993)$N(требует больше времени для обработки перед скачиванием)", + + "un_m1": "вы можете удалить ваши недавние загрузки (или отменить незавершённые) ниже", + "un_upd": "обновить", + "un_m4": "или поделиться файлами снизу:", + "un_ulist": "показать", + "un_ucopy": "копировать", + "un_flt": "опциональный фильтр:  адрес должен содержать", + "un_fclr": "очистить фильтр", + "un_derr": 'ошибка удаления:\n', + "un_f5": 'что-то сломалось, пожалуйста перезагрузите страницу', + "un_uf5": "извините, но вам нужно перезагрузить страницу (F5 или Ctrl+R) перед тем, как отменить эту загрузку", + "un_nou": 'внимание: сервер слишком нагружен, чтобы показать незавершённые загрузки; нажмите на ссылку "обновления" через пару секунд', + "un_noc": 'внимание: удаление уже загруженных файлов запрещено конфигурацией сервера', + "un_max": "показаны первые 2000 файлов (используйте фильтр)", + "un_avail": "{0} недавних загрузок может быть удалено
{1} незавершённых может быть отменено", + "un_m2": "отсортировано по времени загрузки; сначала самые последние:", + "un_no1": "ха, поверил! достаточно свежих загрузок ещё нет", + "un_no2": "ха, поверил! достаточно свежих загрузок, соответствующих фильтру, ещё нет", + "un_next": "удалить следующие {0} файлов ниже", + "un_abrt": "отменить", + "un_del": "удалить", + "un_m3": "загружаю ваши недавние загрузки...", + "un_busy": "удаляю {0} файлов...", + "un_clip": "{0} ссылок скопировано в буфер", + + "u_https1": "вам стоит", + "u_https2": "включить https", + "u_https3": "для лучшей производительности", + "u_ancient": 'у вас действительно антикварный браузер -- возможно, стоит использовать bup', + "u_nowork": "требуется firefox 53+, chrome 57+ или iOS 11+", + "tail_2old": "требуется firefox 105+, chrome 71+ или iOS 14.5+", + "u_nodrop": 'ваш браузер слишком старый для загрузки через перетаскивание', + "u_notdir": "это не папка!\n\nваш браузер слишком старый,\nиспользуйте перетаскивание", + "u_uri": "чтобы перетащить картинку из других окон браузера,\nотпустите её на большую кнопку загрузки", + "u_enpot": 'переключиться на простой интерфейс (может ускорить загрузку)', + "u_depot": 'переключиться на модный интерфейс (может замедлить загрузку)', + "u_gotpot": 'переключаюсь на простой интерфес для ускорения загрузки,\n\nможете переключиться обратно, если хотите!', + "u_pott": "

файлы:   {0} завершено,   {1} ошибок,   {2} загружаются,   {3} в очереди

", + "u_ever": "это упрощённый загрузчик; up2k требует хотя бы
chrome 21 // firefox 13 // edge 12 // opera 12 // safari 5.1", + "u_su2k": 'это упрощённый загрузчик; up2k лучше', + "u_uput": 'увеличить скорость (пропуск подсчёта контрольных сумм)', + "u_ewrite": 'у вас нет прав на запись в эту папку', + "u_eread": 'у вас нет прав на чтение из этой папки', + "u_enoi": 'поиск файлов выключен настройками сервера', + "u_enoow": "перезапись здесь не работает; требуются права на удаление", + "u_badf": 'Эти {0} из {1} файлов были пропущены, вероятно, из-за настроек доступа в файловой системе:\n\n', + "u_blankf": 'Эти {0} из {1} файлов пустые; всё равно загрузить?\n\n', + "u_applef": 'Эти {0} из {1} файлов, вероятно, нежелательны;\nНажмите OK/Enter, чтобы ПРОПУСТИТЬ их,\nНажмите Отмена/ESC, чтобы проигнорировать сообщение и ЗАГРУЗИТЬ их:\n\n', + "u_just1": '\nВозможно, будет лучше, если вы выберете только один файл', + "u_ff_many": "если вы используете Linux / MacOS / Android, тогда такое количество файлов может крашнуть Firefox!\nв таком случае попробуйте снова (или используйте Chrome).", + "u_up_life": "Эта загрузка будет удалена с сервера\nчерез {0} после её завершения", + "u_asku": 'загрузить эти {0} файлов в {1}', + "u_unpt": "вы можете отменить / удалить эту загрузку с помощью 🧯 сверху слева", + "u_bigtab": 'будет показано {0} файлов\n\nэто может крашнуть браузер, вы уверены?', + "u_scan": 'Сканирую файлы...', + "u_dirstuck": 'сканер папки завис при попытке получить доступ к следующим {0} файлам; будет пропущено:', + "u_etadone": 'Готово ({0}, {1} файлов)', + "u_etaprep": '(подготавливаю загрузку)', + "u_hashdone": 'хеширование выполнено', + "u_hashing": 'хеш', + "u_hs": 'подготовка к хешированию...', + "u_started": "файлы загружаются; подробнее в [🚀]", + "u_dupdefer": "дубликат; будет обработан после всех остальных файлов", + "u_actx": "нажмите на этот текст, чтобы предотвратить
падение производительности при просмотре других вкладок / окон", + "u_fixed": "Окей!  Исправлено 👍", + "u_cuerr": "не удалось загрузить фрагмент {0} из {1};\nвероятно, не критично - продолжаю\n\nфайл: {2}", + "u_cuerr2": "отказ в загрузке (фрагмент {0} из {1});\nпопытаюсь повторить позже\n\nфайл: {2}\n\nошибка ", + "u_ehstmp": "попытаюсь повторить позже; подробнее снизу справа", + "u_ehsfin": "отказ в запросе завершения загрузки; повторяю...", + "u_ehssrch": "отказ в запросе поиска; повторяю...", + "u_ehsinit": "отказ в запросе начала загрузки; повторяю...", + "u_eneths": "ошибка подключения во время подготовки загрузки; повторяю...", + "u_enethd": "ошибка подключения во время проверки существования целевого файла; повторяю...", + "u_cbusy": "ожидаю возвращения доступа к серверу после ошибки подключения...", + "u_ehsdf": "на сервере закончилось место!\n\nбуду пытаться повторить, на случай если\nместо будет освобождено", + "u_emtleak1": "кажется, у вашего браузера может быть утечка памяти;\nпожалуйста,", + "u_emtleak2": ' перейдите на https (рекомендовано) или ', + "u_emtleak3": ' ', + "u_emtleakc": 'попробуйте сделать так:\nОна будет чуть медленнее, но что поделать.\nИзвините за неудобства!\n\nPS: в chrome v107 это исправили', + "u_emtleakf": 'попробуйте сделать так:\n\nPS: firefox скоро должны починить в этом аспекте', + "u_s404": "не найдено на сервере", + "u_expl": "объяснить", + "u_maxconn": "в большинстве браузеров это нельзя поднять выше 6, но firefox позволяет увеличить лимит с помощью connections-per-server в about:config", + "u_tu": '

ВНИМАНИЕ: активен режим турбо,  клиент может игнорировать незавершённые загрузки; подробнее при наведении на кнопку турбо

', + "u_ts": '

ВНИМАНИЕ: активен режим турбо,  результаты поиска могут быть некорректными; подробнее при наведении на кнопку турбо

', + "u_turbo_c": "режим турбо отключён сервером", + "u_turbo_g": "отключаю турбо, поскольку у вас нет прав\nна просмотр папок в этом хранилище", + "u_life_cfg": 'автоудаление через мин (или часов)', + "u_life_est": 'загрузка будет удалена ---', + "u_life_max": 'эта папка требует\nавтоудаления файлов через {0}', + "u_unp_ok": 'удаление разрешено для {0}', + "u_unp_ng": 'удаление НЕ будет разрешено', + "ue_ro": 'ваш доступ к данной папке - только чтение\n\n', + "ue_nl": 'на данный момент вы не авторизованы', + "ue_la": 'вы авторизованы как "{0}"', + "ue_sr": 'сейчас вы в режиме поиска файлов\n\nперейдите в режим загрузки, нажав на лупу 🔎 (рядом с огромной кнопкой ИСКАТЬ), и попробуйте снова\n\nизвините', + "ue_ta": 'попробуйте загрузить снова, теперь должно сработать', + "ue_ab": "этот файл уже загружают в другую папку, та загрузка должна быть завершена перед тем, как загрузить этот же файл в другое место.\n\nВы можете отменить свою загрузку через 🧯 сверху слева", + "ur_1uo": "OK: Файл успешно загружен", + "ur_auo": "OK: Все {0} файлов успешно загружены", + "ur_1so": "OK: Файл найден на сервере", + "ur_aso": "OK: Все {0} файлов найдены на сервере", + "ur_1un": "Загрузка не удалась, извините", + "ur_aun": "Все {0} загрузок не удались, извините", + "ur_1sn": "Файл НЕ был найден на сервере", + "ur_asn": "Все {0} файлов НЕ было найдено на сервере", + "ur_um": "Завершено;\n{0} успешно,\n{1} ошибок, извините", + "ur_sm": "Завершено;\n{0} файлов найдено на сервере,\n{1} файлов НЕ найдено на сервере", + + "lang_set": "перезагрузить страницу, чтобы применить изменения?", + }, }; -var LANGS = ["eng", "nor", "chi", "deu"]; +var LANGS = ["eng", "nor", "chi", "deu", "rus"]; if (window.langmod) langmod(); diff --git a/copyparty/web/splash.js b/copyparty/web/splash.js index c2e60eb6..638c9ddc 100644 --- a/copyparty/web/splash.js +++ b/copyparty/web/splash.js @@ -135,6 +135,48 @@ var Ls = { "ae1": "Aktive Downloads:", "af1": "Zeige neue Uploads", }, + "eng": { + "a1": "обновить", + "b1": "приветик, незнакомец   (вы не авторизованы)", + "c1": "выйти", + "d1": "трассировка стека", // TLNote: "d2" is the tooltip for this button + "d2": "показывает состояние всех активных потоков", + "e1": "перезагрузить конфиг", + "e2": "перезагрузить файлы конфига (аккаунты/хранилища/флаги),$Nи пересканировать все хранилища с флагом e2ds$N$Nвнимание: изменения глобальных настроек$Nтребуют полного перезапуска сервера", + "f1": "вы можете видеть:", + "g1": "вы можете загружать файлы в:", + "cc1": "всякая всячина:", + "h1": "отключить k304", // TLNote: "j1" explains what k304 is + "i1": "включить k304", + "j1": "включённый k304 будет отключать вас при получении HTTP 304, что может помочь при работе с некоторыми глючными прокси (перестают загружаться страницы), но это также сделает работу клиента медленнее", + "k1": "сбросить локальные настройки", + "l1": "авторизуйтесь для других опций:", + "m1": "с возвращением,", // TLNote: "welcome back, USERNAME" + "n1": "404 не найдено  ┐( ´ -`)┌", + "o1": 'или у вас нет доступа -- попробуйте авторизоваться или вернуться на главную', + "p1": "403 доступ запрещён  ~┻━┻", + "q1": 'авторизуйтесь или вернитесь на главную', + "r1": "вернуться на главную", + ".s1": "пересканировать", + "t1": "действия", // TLNote: this is the header above the "rescan" buttons + "u2": "время с последней записи на сервер$N( загрузка / переименование / ... )$N$N17d = 17 дней$N1h23 = 1 час 23 минут$N4m56 = 4 минут 56 секунд", + "v1": "подключить", + "v2": "использовать сервер как локальный диск", + "w1": "перейти на https", + "x1": "поменять пароль", + "y1": "управление доступом", // TLNote: shows the list of folders that the user has decided to share + "z1": "разблокировать:", // TLNote: the password prompt to see a hidden share + "ta1": "сначала введите свой новый пароль", + "ta2": "повторите новый пароль:", + "ta3": "опечатка; попробуйте снова", + "aa1": "входящие файлы:", + "ab1": "отключить no304", + "ac1": "включить no304", + "ad1": "включённый no304 полностью отключит хеширование; используйте, если k304 не помог. Сильно увеличит объём трафика!", + "ae1": "активные скачивания:", + "af1": "показать недавние загрузки", + "ag1": "показать известных IdP-пользователей", + }, }; if (window.langmod)