diff --git a/public/locales/ru-RU/translations.json b/public/locales/ru-RU/translations.json index a271c11d..ea472641 100644 --- a/public/locales/ru-RU/translations.json +++ b/public/locales/ru-RU/translations.json @@ -1,5 +1,31 @@ { "admin": { + "announcements": { + "title": "Управление объявлениями", + "action_create": "Создать", + "action_edit": "Редактировать", + "action_delete": "Удалить", + "create_title": "Создать объявление", + "edit_title": "Редактировать объявление", + "col_title": "Заголовок", + "col_level": "Уровень", + "col_status": "Статус", + "col_createtime": "Создано", + "col_actions": "Действия", + "field_title": "Заголовок", + "field_content": "Содержание", + "field_level": "Уровень", + "field_status": "Статус", + "level_normal": "Обычное", + "level_important": "Важное", + "status_enabled": "Включено", + "status_disabled": "Отключено", + "create_success": "Объявление успешно создано", + "update_success": "Объявление успешно обновлено", + "delete_success": "Объявление успешно удалено", + "delete_confirm": "Вы уверены, что хотите удалить это объявление?", + "at_least_one_language": "Укажите заголовок хотя бы на одном языке" + }, "audit_logs": { "actions": { "script_audit_approved": "Аудит одобрен", @@ -48,6 +74,7 @@ "title": "Управление отзывами" }, "navigation": { + "announcements": "Объявления", "advertise": "Управление рекламой", "feedbacks": "Управление отзывами", "oauth_apps": "Управление OAuth-приложениями", @@ -56,45 +83,46 @@ "scripts": "Управление скриптами", "system_config": "Настройки системы", "users": "Управление пользователями", - "similarity": "Similarity Detection", - "ai_review": "AI Review", - "ai_review_records": "Review Records", - "ai_review_fullscan": "Full Scan" + "similarity": "Обнаружение схожести", + "script_audits": "Аудит скриптов", + "ai_review": "ИИ-проверка", + "ai_review_records": "Записи проверок", + "ai_review_fullscan": "Полное сканирование" }, "advertise": { "title": "Управление рекламой", - "action_create": "New Ad", - "create_title": "New Ad", - "edit_title": "Edit Ad", - "col_slot": "Slot", - "col_title": "Title", - "col_enabled": "Status", - "col_stats": "Impressions/Clicks (CTR)", - "col_actions": "Actions", - "action_edit": "Edit", - "action_delete": "Delete", - "delete_confirm": "Confirm delete this ad?", - "delete_success": "Deleted successfully", - "create_success": "Created successfully", - "update_success": "Updated successfully", - "upload_success": "Uploaded successfully", - "light_required": "Please upload a light-mode image", - "enabled": "Enabled", - "disabled": "Disabled", - "field_slot": "Ad Slot", - "field_title": "Title", - "field_languages": "Target languages (leave empty = all)", - "field_light": "Light-mode image", - "field_dark": "Dark-mode image (optional)", - "field_link": "Destination URL", - "field_weight": "Weight", - "field_range": "Schedule", - "preset_week": "1 week", - "preset_month": "1 month", - "preset_quarter": "1 quarter", - "field_enabled": "Enabled", - "upload": "Upload image", - "image_url_placeholder": "Enter or paste an image URL, or click to upload", + "action_create": "Новое объявление", + "create_title": "Новое объявление", + "edit_title": "Редактировать объявление", + "col_slot": "Слот", + "col_title": "Заголовок", + "col_enabled": "Статус", + "col_stats": "Показы/клики (CTR)", + "col_actions": "Действия", + "action_edit": "Редактировать", + "action_delete": "Удалить", + "delete_confirm": "Удалить это рекламное объявление?", + "delete_success": "Успешно удалено", + "create_success": "Успешно создано", + "update_success": "Успешно обновлено", + "upload_success": "Успешно загружено", + "light_required": "Загрузите изображение для светлой темы", + "enabled": "Включено", + "disabled": "Отключено", + "field_slot": "Рекламный слот", + "field_title": "Заголовок", + "field_languages": "Целевые языки (пусто = все)", + "field_light": "Изображение для светлой темы", + "field_dark": "Изображение для тёмной темы (необязательно)", + "field_link": "URL перехода", + "field_weight": "Вес", + "field_range": "Период показа", + "preset_week": "1 неделя", + "preset_month": "1 месяц", + "preset_quarter": "1 квартал", + "field_enabled": "Включено", + "upload": "Загрузить изображение", + "image_url_placeholder": "Введите или вставьте URL изображения либо нажмите для загрузки", "recommended_size": "Рекомендуемый размер {size}", "col_weight": "Вес", "col_schedule": "Расписание", @@ -147,58 +175,93 @@ } }, "ai_review": { - "menu_title": "AI Review", - "menu_records": "Review Records", - "menu_fullscan": "Full Scan", - "title": "AI Review Records", - "filter_status": "Status", - "view_detail": "Detail", + "menu_title": "ИИ-проверка", + "menu_records": "Записи проверок", + "menu_fullscan": "Полное сканирование", + "title": "Записи ИИ-проверки", + "filter_status": "Статус", + "view_detail": "Подробнее", "col_id": "ID", - "col_script": "Script", - "col_status": "Status", - "col_model": "Model", - "col_tokens": "Tokens", - "col_latency": "Latency", - "col_reason": "Reason", - "col_time": "Time", - "col_action": "Action", - "status_0": "Processing", - "status_1": "Passed", - "status_2": "AI Rejected", - "status_3": "AI Uncertain", - "status_4": "Failed (Human Review)", - "status_5": "Skipped", - "tags_title": "Tags", - "risk_signals_title": "Risk Signals", - "noisy_lines_title": "Noisy Lines", - "detail_audit_id": "Linked Human Review ID", - "detail_last_error": "Last Error", - "detail_load_failed": "Failed to load detail", - "evidence_line": "Evidence line: {line}", - "evidence_line_none": "No evidence line", + "col_script": "Скрипт", + "col_status": "Статус", + "col_model": "Модель", + "col_tokens": "Токены", + "col_latency": "Задержка", + "col_reason": "Причина", + "col_time": "Время", + "col_action": "Действие", + "status_0": "Обработка", + "status_1": "Пройдено", + "status_2": "Отклонено ИИ", + "status_3": "ИИ не уверен", + "status_4": "Ошибка (ручная проверка)", + "status_5": "Пропущено", + "tags_title": "Теги", + "risk_signals_title": "Сигналы риска", + "noisy_lines_title": "Шумные строки", + "detail_audit_id": "ID связанной ручной проверки", + "detail_last_error": "Последняя ошибка", + "detail_load_failed": "Не удалось загрузить детали", + "evidence_line": "Строка доказательства: {line}", + "evidence_line_none": "Нет строки доказательства", "fullscan": { - "title": "Full-site AI Rescan", - "running": "Running", - "yes": "Yes", + "title": "Полное ИИ-пересканирование сайта", + "running": "Выполняется", + "yes": "Да", "no": "No", - "processed": "Processed", - "last_id": "Last cursor", - "scope": "Scan scope", - "scope_all": "All scripts", - "scope_value": "Start ID: {start}, End ID: {end}, Limit: {limit}", - "start_id": "Start script ID", - "end_id": "End script ID", - "limit": "Max scripts", - "started_at": "Started at", - "recent_errs": "Recent errors", - "only_missing": "Only scripts without terminal records", - "reset_cursor": "Reset cursor", - "trigger": "Start", - "cancel": "Cancel", - "triggered": "Triggered", - "cancelled": "Cancel signal sent" + "processed": "Обработано", + "last_id": "Последний курсор", + "scope": "Область сканирования", + "scope_all": "Все скрипты", + "scope_value": "Начальный ID: {start}, конечный ID: {end}, лимит: {limit}", + "start_id": "Начальный ID скрипта", + "end_id": "Конечный ID скрипта", + "limit": "Макс. скриптов", + "started_at": "Начато", + "recent_errs": "Недавние ошибки", + "only_missing": "Только скрипты без финальных записей", + "reset_cursor": "Сбросить курсор", + "trigger": "Запустить", + "cancel": "Отмена", + "triggered": "Запущено", + "cancelled": "Сигнал отмены отправлен" } }, + "script_audits": { + "title": "Аудит скриптов", + "col_script": "Скрипт", + "col_version": "Версия", + "col_submitter": "Отправитель", + "col_status": "Статус", + "col_createtime": "Отправлено", + "col_actions": "Действия", + "status_pending": "Ожидает", + "status_approved": "Одобрено", + "status_rejected": "Отклонено", + "filter_status": "Статус", + "filter_all": "Все", + "filter_script_name_placeholder": "Поиск по названию скрипта", + "refresh": "Обновить", + "action_review": "Проверить", + "action_approve": "Одобрить", + "action_reject": "Отклонить", + "approve_success": "Одобрено", + "reject_success": "Отклонено", + "drawer_title": "Детали аудита", + "detail_script": "Скрипт", + "detail_submitter": "Отправитель", + "detail_changelog": "Список изменений", + "detail_reason": "Причина / примечание аудита", + "detail_reject_reason": "Причина отклонения", + "detail_code": "Код", + "approve_modal_title": "Одобрить аудит", + "approve_reason_label": "Комментарий к одобрению (необязательно; для исправления ложного срабатывания ИИ или обоснования)", + "approve_reason_placeholder": "Если это ложное срабатывание ИИ, укажите основание ручной проверки; оставьте пустым для прямого одобрения", + "reject_modal_title": "Отклонить аудит", + "reject_reason_label": "Причина отклонения (отправится автору во внутреннем уведомлении)", + "reject_reason_required": "Укажите причину отклонения", + "reject_reason_placeholder": "Объясните, почему скрипт отклонён (например: вредоносный код, нарушение правил, авторские права)" + }, "no_permission": "У вас нет прав администратора для доступа к этой странице.", "oauth_apps": { "action_delete": "Удалить", @@ -222,9 +285,9 @@ "field_redirect_uri_invalid": "Каждая строка должна быть допустимым URL", "field_redirect_uri_required": "Введите URI перенаправления", "field_status": "Статус", - "reset_secret": "Reset Secret", - "reset_secret_confirm": "Are you sure you want to reset the Client Secret? The old secret will be invalidated immediately.", - "reset_secret_success": "Secret reset successfully", + "reset_secret": "Сбросить секрет", + "reset_secret_confirm": "Сбросить Client Secret? Старый секрет сразу станет недействительным.", + "reset_secret_success": "Секрет успешно сброшен", "save_button": "Сохранить", "secret_confirm": "Я сохранил", "secret_title": "Учётные данные приложения", @@ -239,22 +302,26 @@ "action_edit": "Редактировать", "col_actions": "Действия", "col_client_id": "ID клиента", + "col_icon": "Иконка", "col_issuer_url": "URL издателя", "col_name": "Название", "col_status": "Статус", - "col_type": "Type", + "col_type": "Тип", "create_button": "Создать провайдер", "create_success": "Успешно создано", "create_title": "Создать OIDC-провайдер", "delete_confirm": "Вы уверены, что хотите удалить этот провайдер?", "delete_success": "Успешно удалено", + "discover_button": "Автообнаружение", + "discover_failed": "Не удалось обнаружить OIDC. Проверьте URL.", + "discover_success": "Конфигурация OIDC успешно обнаружена", "edit_title": "Редактировать OIDC-провайдер", - "field_auth_url": "Auth URL", - "field_auth_url_required": "Please enter the auth URL", "field_client_id": "ID клиента", "field_client_id_required": "Введите ID клиента", "field_client_secret": "Секрет клиента", "field_client_secret_required": "Введите секрет клиента", + "field_auth_url": "URL авторизации", + "field_auth_url_required": "Please enter the auth URL", "field_display_order": "Порядок отображения", "field_icon": "Иконка", "field_icon_placeholder": "URL изображения или имя иконки Iconify, напр. mdi:github", @@ -265,12 +332,14 @@ "field_name_required": "Введите название провайдера", "field_scopes": "Области доступа", "field_status": "Статус", - "field_token_url": "Token URL", + "field_token_url": "URL токена", "field_token_url_required": "Please enter the token URL", - "field_type": "Type", - "field_url_invalid": "Please enter a valid URL", + "field_type": "Тип", + "field_url_invalid": "Введите корректный URL", "field_userinfo_url": "Userinfo URL", "field_userinfo_url_required": "Please enter the userinfo URL", + "icon_upload": "Загрузить иконку", + "icon_upload_success": "Иконка успешно загружена", "save_button": "Сохранить", "status_active": "Активно", "status_disabled": "Отключено", @@ -324,13 +393,15 @@ "col_name": "Название скрипта", "col_score_multiplier": "Множитель оценки", "col_status": "Статус", - "col_trending_score": "Trend Score", + "col_trending_score": "Оценка тренда", "col_type": "Тип", "col_visibility": "Видимость", "ai_review_confirm": "Отправить задачу AI-проверки для последней версии этого скрипта?", "ai_review_success": "Задача AI-проверки отправлена", "delete_confirm": "Вы уверены, что хотите удалить этот скрипт?", "delete_success": "Скрипт успешно удалён", + "delete_reason": "Причина (необязательно)", + "delete_reason_placeholder": "Запишите причину удаления (сохраняется в журнале аудита)", "field_public": "Статус публикации", "field_unwell": "Неприемлемый контент", "filter_status": "Фильтр по статусу", @@ -340,15 +411,18 @@ "restore_confirm": "Вы уверены, что хотите восстановить этот скрипт?", "restore_success": "Скрипт успешно восстановлен", "search_button": "Поиск", + "search_field_content": "Содержимое", + "search_field_description": "Описание", + "search_field_name": "Название", "search_placeholder": "Поиск по названию скрипта", "status_active": "Активный", "status_deleted": "Удалён", "title": "Управление скриптами", - "trending_score_hint": "Manual changes only affect the current trending_score; the next automatic or manual full recompute will overwrite this value.", - "trending_score_invalid": "Enter a valid trending_score", + "trending_score_hint": "Ручные изменения влияют только на текущий trending_score; следующий автоматический или ручной полный пересчёт перезапишет это значение.", + "trending_score_invalid": "Введите корректный trending_score", "trending_score_label": "trending_score", - "trending_score_success": "trending_score updated successfully", - "trending_score_title": "Edit trending_score", + "trending_score_success": "trending_score успешно обновлён", + "trending_score_title": "Изменить trending_score", "type_library": "Библиотека", "type_subscribe": "Подписка", "type_userscript": "Пользовательский скрипт", @@ -364,7 +438,7 @@ "ai_system_prompt": "Системный промпт", "ai_title": "Настройка ИИ", "github_title": "Настройки GitHub", - "github_pat": "GitHub Personal Access Token", + "github_pat": "Personal Access Token GitHub", "github_pat_hint": "Используется для аутентификации синхронизации скриптов с GitHub и повышения лимита запросов. Используйте fine-grained PAT с минимальными правами.", "save_button": "Сохранить", "save_success": "Успешно сохранено", @@ -376,6 +450,17 @@ "ucenter_appid": "ID приложения", "ucenter_key": "Ключ связи", "ucenter_title": "Настройка UCenter", + "migrate_avatar_title": "Миграция аватаров", + "migrate_avatar_button": "Начать миграцию", + "migrate_avatar_confirm": "Начать миграцию аватаров? Аватары пользователей будут загружены из UCenter и сохранены локально.", + "migrate_avatar_started": "Миграция аватаров запущена", + "migrate_avatar_progress": "Перенесено: {migrated} / Пропущено: {skipped} / Ошибок: {failed} / Всего: {total}", + "ranking_title": "Пересчёт рейтинга", + "recompute_trending_hint": "Ежедневная подборка (trending_score) автоматически пересчитывается каждый день в 03:10. После изменения параметров рейтинга запустите полный пересчёт здесь, чтобы сразу увидеть эффект.", + "recompute_trending_button": "Пересчитать trending_score", + "recompute_trending_confirm": "Пересчитать trending_score для всех скриптов сейчас? На больших базах это может занять от нескольких секунд до десятков секунд.", + "recompute_trending_started": "Пересчёт trending_score запущен", + "recompute_trending_running": "Пересчёт уже выполняется; повторный запуск не выполнен", "es_index_title": "Поисковый индекс ES", "es_index_hint": "Запускает полную перестройку поискового индекса скриптов в фоне. Ответ API означает только запуск задачи; прогресс смотрите в логах backend.", "es_index_button": "Перестроить индекс ES", @@ -394,6 +479,7 @@ "col_admin_level": "Уровень администратора", "col_createtime": "Дата создания", "col_email": "Электронная почта", + "col_register_ip": "IP регистрации", "col_status": "Статус", "col_username": "Имя пользователя", "level_admin": "Администратор", @@ -409,63 +495,63 @@ "unban_success": "Пользователь успешно разблокирован" }, "similarity": { - "tab_pairs": "Pairs", - "tab_suspects": "Suspects", - "tab_integrity_reviews": "Integrity Reviews", - "tab_pair_whitelist": "Pair Whitelist", - "tab_integrity_whitelist": "Integrity Exemptions", + "tab_pairs": "Пары", + "tab_suspects": "Подозрительные", + "tab_integrity_reviews": "Проверки целостности", + "tab_pair_whitelist": "Белый список пар", + "tab_integrity_whitelist": "Исключения целостности", "col_id": "ID", - "col_script_a": "Script A", - "col_script_b": "Script B", + "col_script_a": "Скрипт A", + "col_script_b": "Скрипт B", "col_jaccard": "Jaccard", - "col_common": "Common Fingerprints", - "col_earlier": "Earlier Side", - "col_status": "Status", - "col_integrity": "Integrity Score", - "col_actions": "Actions", - "col_script": "Script", - "col_max_jaccard": "Max Jaccard", - "col_coverage": "External Coverage", - "col_pair_count": "Pair Count", - "col_detected_at": "Detected At", - "col_score": "Score", - "col_createtime": "Created", - "col_reason": "Reason", - "col_added_by": "Added By", - "status_pending": "Pending", - "status_whitelisted": "Whitelisted", - "status_resolved": "Resolved", - "review_pending": "Pending", + "col_common": "Общие отпечатки", + "col_earlier": "Более ранняя сторона", + "col_status": "Статус", + "col_integrity": "Оценка целостности", + "col_actions": "Действия", + "col_script": "Скрипт", + "col_max_jaccard": "Макс. Jaccard", + "col_coverage": "Внешнее покрытие", + "col_pair_count": "Число пар", + "col_detected_at": "Обнаружено", + "col_score": "Оценка", + "col_createtime": "Создано", + "col_reason": "Причина", + "col_added_by": "Добавил", + "status_pending": "Ожидает", + "status_whitelisted": "В белом списке", + "status_resolved": "Закрыто", + "review_pending": "Ожидает", "review_ok": "OK", - "review_violated": "Violation", - "action_detail": "Details", - "action_resolve": "Resolve", - "action_whitelist": "Whitelist", - "action_remove": "Remove", - "confirm_remove_whitelist": "Remove this whitelist entry?", - "msg_removed": "Removed", - "modal_add_int_whitelist": "Add Integrity Exemption", - "label_script_id": "Script ID", - "label_reason": "Reason", - "btn_add": "Add", - "modal_resolve_title": "Mark Integrity Review", - "label_decision": "Decision", - "label_note": "Note", + "review_violated": "Нарушение", + "action_detail": "Подробности", + "action_resolve": "Закрыть", + "action_whitelist": "В белый список", + "action_remove": "Удалить", + "confirm_remove_whitelist": "Удалить эту запись белого списка?", + "msg_removed": "Удалено", + "modal_add_int_whitelist": "Добавить исключение целостности", + "label_script_id": "ID скрипта", + "label_reason": "Причина", + "btn_add": "Добавить", + "modal_resolve_title": "Отметить проверку целостности", + "label_decision": "Решение", + "label_note": "Примечание", "decision_ok": "OK", - "decision_violated": "Violation", - "msg_review_resolved": "Marked successfully", - "msg_whitelisted": "Added to whitelist", - "drawer_review_detail": "Integrity Review Details", - "label_score": "Total Score", - "label_sub_scores": "Category Scores", - "label_hit_signals": "Hit Signals", + "decision_violated": "Нарушение", + "msg_review_resolved": "Успешно отмечено", + "msg_whitelisted": "Добавлено в белый список", + "drawer_review_detail": "Детали проверки целостности", + "label_score": "Итоговая оценка", + "label_sub_scores": "Оценки по категориям", + "label_hit_signals": "Сработавшие сигналы", "label_jaccard": "Jaccard", - "label_common": "Common Fingerprints", - "label_earlier": "Earlier Side", - "label_detected_at": "Detected At", - "label_script_a": "Script A", - "label_script_b": "Script B", - "label_code_diff": "Code Diff", + "label_common": "Общие отпечатки", + "label_earlier": "Более ранняя сторона", + "label_detected_at": "Обнаружено", + "label_script_a": "Скрипт A", + "label_script_b": "Скрипт B", + "label_code_diff": "Различия кода", "script_deleted": "Удалён", "filter_exclude_deleted": "Скрыть пары с удалёнными скриптами", "tab_backfill": "Заполнение и повторное сканирование", @@ -665,6 +751,14 @@ "what_can_do": "Вы можете попробовать:", "what_happened": "Что произошло?" }, + "ads": { + "label": "Реклама", + "sponsored": "Реклама", + "learnMore": "Подробнее" + }, + "announcements": { + "title": "Объявления" + }, "home": { "browser_stores": { "add_to_chrome": "Добавить в браузер Chrome", @@ -803,13 +897,13 @@ "terms_of_service_link": "Условия использования", "privacy_policy_link": "Политику конфиденциальности", "disclaimer_link": "Отказ от ответственности", - "webauthn_title": "Passkey Verification", - "webauthn_description": "Please verify with your registered passkey to complete login", - "webauthn_retry": "Retry Verification", - "webauthn_back": "Back to Login", - "webauthn_verification_failed": "Passkey verification failed, please try again", - "passkey_login": "Sign in with Passkey", - "passkey_login_loading": "Verifying...", + "webauthn_title": "Проверка Passkey", + "webauthn_description": "Подтвердите вход зарегистрированным passkey", + "webauthn_retry": "Повторить проверку", + "webauthn_back": "Назад к входу", + "webauthn_verification_failed": "Проверка passkey не удалась, попробуйте снова", + "passkey_login": "Войти с Passkey", + "passkey_login_loading": "Проверка…", "passkey_login_failed": "Ошибка входа с помощью ключа доступа, попробуйте ещё раз", "error_no_binding": "Эта сторонняя учётная запись не привязана к аккаунту платформы. Сначала зарегистрируйтесь или войдите, затем привяжите её в настройках", "error_rate_limited": "Слишком много запросов, попробуйте позже", @@ -918,42 +1012,42 @@ "disclaimer_title": "Отказ от ответственности", "disclaimer_description": "Ознакомьтесь с отказом от ответственности ScriptCat в отношении содержимого скриптов и рисков использования.", "last_updated": "Последнее обновление: 6 марта 2026 г.", - "tos_section1_title": "1. General", + "tos_section1_title": "1. Общие положения", "tos_section1_content": "Welcome to ScriptCat Script Hub (hereinafter referred to as 'the Platform'). The Platform is a user script sharing community that provides services for publishing, searching, and installing scripts. Please carefully read and understand the entire content of this Terms of Service before using the Platform. By registering or using the Platform, you agree to be bound by this agreement.", - "tos_section2_title": "2. Account Registration and Usage", - "tos_section2_content": "You must provide accurate information when registering and keep your account credentials secure. Each user may register only one account and may not transfer or lend the account to others. Losses resulting from improper account management are the user's responsibility. The Platform reserves the right to restrict or ban accounts suspected of violations.", - "tos_section3_title": "3. Script Publishing Guidelines", - "tos_section3_content": "Scripts published on the Platform must comply with the following guidelines:\n\nCode Security: Scripts must not contain malicious code (including but not limited to data theft, cryptocurrency mining, backdoors, etc.); must not import private external executable code; public scripts must not be encrypted, obfuscated, or otherwise made unreadable.\n\nIntellectual Property: Referencing others' code must comply with the original author's license agreement, based on the @license at the time of reference; permissive licenses require source attribution via @original-author, @original-license, and @original-script; modifications to others' scripts must include meaningful improvements — merely adding monetization features is not considered a valid improvement.\n\nContent Standards: Scripts must have practical functionality or educational value; using scripts as a vehicle for advertising or meaningless content is prohibited; script descriptions must accurately reflect functionality, permissions, and potential impacts; adult or inappropriate content is prohibited.\n\n@antifeature Tags: Scripts containing the following features must be tagged with @antifeature: referral-link, ads, payment, miner, membership, tracking.\n\nViolations will be handled progressively based on severity and frequency: warning with a deadline for correction, script removal, temporary suspension, up to permanent ban. Matters not covered above will be determined by community discussion or administrator judgment.", - "tos_section4_title": "4. Intellectual Property", - "tos_section4_content": "The intellectual property of published scripts follows the license agreement declared in the script. If no license is declared, copyright belongs to the script author. The Platform respects intellectual property rights. If you discover infringing content, please report it through the reporting feature and we will handle it according to applicable laws.", - "tos_section5_title": "5. Violation Handling", - "tos_section5_content": "For violations of this agreement or applicable laws, the Platform reserves the right to take measures including but not limited to: removing offending scripts, restricting account features, suspending or permanently banning accounts. For serious violations, the Platform reserves the right to pursue legal remedies.", - "tos_section6_title": "6. Agreement Changes and Termination", - "tos_section6_content": "The Platform reserves the right to modify this agreement as needed. Modified agreements will be published on the Platform. Your continued use of the Platform constitutes acceptance of the modified agreement. The Platform may terminate or suspend services within the scope permitted by law, with advance notice provided when possible. The Platform reserves the right of final interpretation of this agreement.", - "pp_section1_title": "1. Information Collection", + "tos_section2_title": "2. Регистрация и использование аккаунта", + "tos_section2_content": "При регистрации указывайте точные данные и храните учётные данные в безопасности. Каждый пользователь может зарегистрировать только один аккаунт и не вправе передавать или одалживать его другим. Убытки из‑за ненадлежащего управления аккаунтом несёт пользователь. Платформа оставляет за собой право ограничивать или блокировать аккаунты при подозрении в нарушениях.", + "tos_section3_title": "3. Правила публикации скриптов", + "tos_section3_content": "Скрипты, публикуемые на Платформе, должны соответствовать следующим правилам:\n\nБезопасность кода: скрипты не должны содержать вредоносный код (включая, но не ограничиваясь кражей данных, майнингом криптовалют, бэкдорами и т.п.); не должны подключать закрытый внешний исполняемый код; публичные скрипты не должны быть зашифрованы, обфусцированы или иным образом сделаны нечитаемыми.\n\nИнтеллектуальная собственность: при использовании чужого кода соблюдайте лицензию исходного автора на момент использования (@license); при свободных лицензиях укажите источник через @original-author, @original-license и @original-script; изменения чужих скриптов должны содержать осмысленные улучшения — простое добавление монетизации не считается достаточным улучшением.\n\nСтандарты контента: скрипты должны иметь практическую пользу или образовательную ценность; запрещено использовать скрипты как носитель рекламы или бессмысленного контента; описание должно точно отражать функции, разрешения и возможные последствия; запрещён контент для взрослых и неприемлемый материал.\n\nТеги @antifeature: скрипты со следующими возможностями должны быть помечены @antifeature: referral-link, ads, payment, miner, membership, tracking.\n\nНарушения рассматриваются поэтапно в зависимости от серьёзности и частоты: предупреждение со сроком исправления, удаление скрипта, временная блокировка, вплоть до постоянной. Вопросы, не охваченные выше, решаются обсуждением сообщества или решением администраторов.", + "tos_section4_title": "4. Интеллектуальная собственность", + "tos_section4_content": "Интеллектуальная собственность опубликованных скриптов определяется лицензией, указанной в скрипте. Если лицензия не указана, авторские права принадлежат автору скрипта. Платформа уважает права интеллектуальной собственности. При обнаружении нарушающего контента сообщите через функцию жалобы — мы разберёмся в соответствии с применимым законодательством.", + "tos_section5_title": "5. Обработка нарушений", + "tos_section5_content": "При нарушении этого соглашения или применимого законодательства Платформа оставляет за собой право принимать меры, включая, но не ограничиваясь: удаление нарушающих скриптов, ограничение функций аккаунта, приостановку или постоянную блокировку аккаунта. При серьёзных нарушениях Платформа оставляет за собой право на судебную защиту.", + "tos_section6_title": "6. Изменения и прекращение соглашения", + "tos_section6_content": "Платформа оставляет за собой право изменять это соглашение по мере необходимости. Изменённые условия публикуются на Платформе. Продолжая использовать Платформу, вы принимаете изменённое соглашение. Платформа может прекратить или приостановить услуги в пределах, допускаемых законом, по возможности с предварительным уведомлением. Платформа оставляет за собой право окончательного толкования этого соглашения.", + "pp_section1_title": "1. Сбор информации", "pp_section1_content": "We collect the following types of user information: registration information (email address, username); device and network information (IP address, browser type); usage data (script browsing, installation, ratings, etc.); session information used to maintain your login status.", - "pp_section2_title": "2. Information Usage", + "pp_section2_title": "2. Использование информации", "pp_section2_content": "We use the collected information for: providing and improving platform services; data statistics such as script installation counts; security measures (preventing malicious registration, abuse, etc.); sending service notifications such as verification codes and password resets. We will not sell your personal information to third parties.", - "pp_section3_title": "3. Third-Party Services", - "pp_section3_content": "The Platform may use third-party services to provide certain features, such as third-party account login and human verification. When using third-party login, we only obtain the basic information you authorize (such as username, email, avatar). Data processing by third-party services is governed by their respective privacy policies.", - "pp_section4_title": "4. Cookies and Sessions", - "pp_section4_content": "The Platform uses cookies and session technology to maintain your login status and preference settings. You can manage cookies through your browser settings, but this may affect the normal use of the Platform.", - "pp_section5_title": "5. Data Security and Retention", - "pp_section5_content": "We take reasonable technical and administrative measures to protect user data security. User data will be retained during the existence of your account. After account deletion, your personal information will be deleted or anonymized within a reasonable period, except where required by law.", - "pp_section6_title": "6. User Rights", - "pp_section6_content": "You have the right to: view and modify your personal information; request deletion of your account and related data; understand how we process your personal information. To exercise these rights or if you have any questions, please contact us through the platform's feedback feature.", - "pp_section7_title": "7. Policy Updates", - "pp_section7_content": "We may update this Privacy Policy in response to changes in applicable laws or product features. The updated policy will be published on the Platform. We recommend that you review it periodically. Your continued use of the Platform constitutes acceptance of the updated policy. The Platform reserves the right of final interpretation of this policy.", - "dc_section1_title": "1. Script Disclaimer", - "dc_section1_content": "All user scripts published on the Platform are independently created and maintained by script authors and do not represent the position or views of the Platform. The Platform makes no express or implied warranties regarding the functionality, security, legality, or suitability of any user script. Users install and use scripts at their own discretion, and all risks and consequences are borne by the user.", - "dc_section2_title": "2. Usage Risks", - "dc_section2_content": "User scripts may modify web page content, send network requests, or access browser features. Before installing a script, please carefully read the script description and code to understand its functionality and required permissions. The Platform recommends that users only install scripts from trusted authors and regularly check the updates and security of installed scripts.", - "dc_section3_title": "3. Service Availability", - "dc_section3_content": "The Platform provides services on an 'as-is' basis and does not guarantee uninterrupted, error-free service or that it will meet your specific needs. The Platform is not liable for service interruptions caused by system maintenance, upgrades, network failures, or force majeure. The Platform reserves the right to modify, suspend, or terminate some or all services at any time.", - "dc_section4_title": "4. Limitation of Liability", + "pp_section3_title": "3. Сторонние сервисы", + "pp_section3_content": "Платформа может использовать сторонние сервисы для отдельных функций, например вход через сторонние аккаунты и проверку человека. При стороннем входе мы получаем только базовую информацию, которую вы разрешаете (имя пользователя, email, аватар). Обработка данных сторонними сервисами регулируется их политиками конфиденциальности.", + "pp_section4_title": "4. Cookies и сессии", + "pp_section4_content": "Платформа использует cookies и сессии для поддержания входа и настроек. Вы можете управлять cookies в настройках браузера, но это может повлиять на нормальную работу Платформы.", + "pp_section5_title": "5. Безопасность и хранение данных", + "pp_section5_content": "Мы применяем разумные технические и организационные меры для защиты данных пользователей. Данные хранятся в период существования аккаунта. После удаления аккаунта персональные данные удаляются или обезличиваются в разумный срок, за исключением случаев, требуемых законом.", + "pp_section6_title": "6. Права пользователя", + "pp_section6_content": "Вы имеете право: просматривать и изменять свои персональные данные; запрашивать удаление аккаунта и связанных данных; узнавать, как мы обрабатываем ваши персональные данные. Чтобы реализовать эти права или задать вопросы, свяжитесь с нами через функцию обратной связи на платформе.", + "pp_section7_title": "7. Обновления политики", + "pp_section7_content": "Мы можем обновлять эту Политику конфиденциальности в связи с изменениями применимого законодательства или функций продукта. Обновлённая политика публикуется на Платформе. Рекомендуем периодически её просматривать. Продолжая использовать Платформу, вы принимаете обновлённую политику. Платформа оставляет за собой право окончательного толкования этой политики.", + "dc_section1_title": "1. Отказ от ответственности за скрипты", + "dc_section1_content": "Все пользовательские скрипты, опубликованные на Платформе, создаются и поддерживаются авторами самостоятельно и не выражают позицию или взгляды Платформы. Платформа не даёт явных или подразумеваемых гарантий относительно функциональности, безопасности, законности или пригодности любого пользовательского скрипта. Установка и использование скриптов — на усмотрение пользователя; все риски и последствия несёт пользователь.", + "dc_section2_title": "2. Риски использования", + "dc_section2_content": "Пользовательские скрипты могут изменять содержимое веб-страниц, отправлять сетевые запросы или обращаться к возможностям браузера. Перед установкой внимательно прочитайте описание и код скрипта, чтобы понять его функции и требуемые разрешения. Платформа рекомендует устанавливать скрипты только от доверенных авторов и регулярно проверять обновления и безопасность установленных скриптов.", + "dc_section3_title": "3. Доступность сервиса", + "dc_section3_content": "Платформа предоставляет услуги «как есть» и не гарантирует бесперебойную, безошибочную работу или соответствие вашим конкретным потребностям. Платформа не несёт ответственности за перерывы в обслуживании, вызванные обслуживанием системы, обновлениями, сбоями сети или обстоятельствами непреодолимой силы. Платформа оставляет за собой право в любое время изменять, приостанавливать или прекращать часть или все услуги.", + "dc_section4_title": "4. Ограничение ответственности", "dc_section4_content": "To the maximum extent permitted by law, the Platform and its operators shall not be liable for any direct, indirect, incidental, special, or consequential damages arising from the use or inability to use the Platform services, including but not limited to data loss, loss of profits, or business interruption.", - "dc_section5_title": "5. Disclaimer Updates", - "dc_section5_content": "We may update this Disclaimer in response to changes in applicable laws or product features. The updated disclaimer will be published on the Platform. We recommend that you review it periodically. Your continued use of the Platform constitutes acceptance of the updated disclaimer. The Platform reserves the right of final interpretation of this disclaimer." + "dc_section5_title": "5. Обновления отказа от ответственности", + "dc_section5_content": "Мы можем обновлять этот отказ от ответственности в связи с изменениями применимого законодательства или функций продукта. Обновлённая версия публикуется на Платформе. Рекомендуем периодически её просматривать. Продолжая использовать Платформу, вы принимаете обновлённый отказ от ответственности. Платформа оставляет за собой право окончательного толкования этого документа." }, "script": { "alerts": { @@ -1088,7 +1182,7 @@ "license_no_derivative": "Без производных", "license_none": "Не указана", "license_none_warning": "Лицензия не указана — используйте с осторожностью", - "permissions_title": "Script Permissions", + "permissions_title": "Разрешения скрипта", "scheduled_script": "Запланированный скрипт", "scheduled_script_tooltip": "Этот скрипт поддерживает запланированное выполнение, будет автоматически работать по установленным интервалам времени: {cron}", "script_details": "Детали скрипта", @@ -1469,7 +1563,7 @@ "labels_title": "Метки", "no_issues": "Пока нет проблем", "no_issues_found": "Не найдено соответствующих проблем", - "pagination_total": "{start}-{end} / {total}", + "pagination_total": "{start}–{end} / {total}", "search_placeholder": "Поиск проблем...", "status_pending": "Ожидает решения", "status_resolved": "Решено", @@ -2197,25 +2291,25 @@ "unbind_success": "Успешно отвязано" }, "passkey": { - "title": "Passkey Management", - "description": "Manage your passkeys for two-factor authentication or passwordless login", - "add": "Add Passkey", - "add_success": "Passkey added successfully", - "add_failed": "Failed to add passkey", - "no_passkeys": "No passkeys registered", - "col_name": "Name", - "col_createtime": "Created", - "col_actions": "Actions", - "rename": "Rename", - "rename_title": "Rename Passkey", - "rename_placeholder": "Enter new name", + "title": "Управление Passkey", + "description": "Управляйте passkey для двухфакторной аутентификации или входа без пароля", + "add": "Добавить Passkey", + "add_success": "Passkey успешно добавлен", + "add_failed": "Не удалось добавить passkey", + "no_passkeys": "Passkey не зарегистрированы", + "col_name": "Название", + "col_createtime": "Создано", + "col_actions": "Действия", + "rename": "Переименовать", + "rename_title": "Переименовать Passkey", + "rename_placeholder": "Введите новое название", "rename_ok": "OK", - "rename_success": "Renamed successfully", - "rename_failed": "Failed to rename", - "delete": "Delete", - "delete_confirm": "Are you sure you want to delete this passkey? You won't be able to use it for authentication after deletion.", - "delete_success": "Deleted successfully", - "delete_failed": "Failed to delete" + "rename_success": "Успешно переименовано", + "rename_failed": "Не удалось переименовать", + "delete": "Удалить", + "delete_confirm": "Удалить этот passkey? После удаления вы не сможете использовать его для входа.", + "delete_success": "Успешно удалено", + "delete_failed": "Не удалось удалить" }, "profile": { "achievement_badges": "Значки достижений", @@ -2272,6 +2366,8 @@ "type_script": "Скрипт" }, "settings": { + "account_settings": "Управление аккаунтом", + "account_settings_description": "Управление паролями, ключами доступа, привязками сторонних сервисов и настройками безопасности аккаунта", "notification_settings": "Настройки уведомлений", "oauth_bind_settings": "Привязка OIDC", "password_settings": "Изменить пароль", @@ -2279,9 +2375,7 @@ "user_settings": "Настройки пользователя", "webhook_settings": "Настройки Webhook", "deactivate_settings": "Удалить аккаунт", - "passkey_settings": "Passkeys", - "account_settings": "Управление аккаунтом", - "account_settings_description": "Управление паролями, ключами доступа, привязками сторонних сервисов и настройками безопасности аккаунта" + "passkey_settings": "Passkey" }, "update_failed": "Обновление не удалось, попробуйте ещё раз", "update_success": "Информация пользователя успешно обновлена!", @@ -2371,18 +2465,13 @@ "effective_at": "Дата вступления в силу" } }, - "ads": { - "label": "Реклама", - "sponsored": "Реклама", - "learnMore": "Подробнее" - }, "utils": { "time_format": "DD.MM.YYYY" }, "similarity": { "evidence": { - "disclaimer_title": "Preliminary Finding, Not a Final Verdict", - "disclaimer_body": "This page shows automatically detected similar-code evidence. It is informational only. Please do not draw definitive conclusions about the author from this data." + "disclaimer_title": "Предварительный результат, не окончательный вердикт", + "disclaimer_body": "На этой странице показаны автоматически найденные признаки похожего кода. Данные носят информационный характер. Не делайте окончательных выводов об авторе только по ним." } }, "errors": { @@ -2390,8 +2479,8 @@ "access_not_found": "Разрешение не существует" }, "integrity_rejected": { - "title": "Code Failed Integrity Check", - "help": "If this is a false positive, please apply for an exemption via the admin contact listed in the site FAQ." + "title": "Код не прошёл проверку целостности", + "help": "Если это ложное срабатывание, запросите исключение через контакт администратора из FAQ сайта." } } }