// ==UserScript== // @name Yandex界面汉化 // @namespace http://bcoi.page.gd/ // @version 1.2 // @description 汉化 Yandex Alice 所有固定界面文本,包括订单页全部内容 // @author A86562U&Deepseek // @match https://alice.yandex.ru/* // @match https://yandex.ru/* // @match https://ya.ru/* // @match https://yandex.com/* // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; // ---------- 翻译映射表(含订单页新增) ---------- const translations = { "Яндекс": "Yandex", "Search with Yandex AI": "用Yandex AI搜索", //"Settings": "设置", "Account management": "账户管理", "General": "通用", "Interface language": "界面语言", "External appearance": "外观", "Always light": "亮色", "Always dark": "暗色", "System settings": "系统设置", "System": "系统", "Location": "定位", "Detect automatically": "自动检测", "We'll detect your city during the trip to show relevant information for that location.": "我们将在旅途中检测您的城市,以显示该地点的相关信息。", "Home page": "主页", "Ad banner": "广告横幅", "We try to display ads that you'll find useful": "我们会尽力展示你会觉得有用的广告", "Search": "搜索", "Filter search results": "搜索筛选结果", "No filter": "不筛选", "Moderate search": "中等", "Family mode": "家庭模式", "Advertising": "广告", "Ad personalization": "广告个性化", "Thanks to personalization, you don't have to see irrelevant and uninteresting ads.": "多亏了个性化,你不必看到无关且无趣的广告。", "Use my location": "使用我的定位", "Take my interests into account": "考虑我的利益", "All": "全部", "Images": "图片", "Videos": "视频", "News": "新闻", "Maps": "地图", "Disk": "移动硬盘", "Mail": "邮箱", "Email": "电子邮箱", "Appearance": "外观", "Change account": "切换账户", "Help": "帮助", "Feedback": "反馈", "Technologies": "技术", "Market": "商城", "Translate": "翻译", "Weather": "天气", "Browser": "浏览器", "About": "关于", "Terms of Service": "服务条款", "Privacy Policy": "隐私政策", "Report a violation": "举报违规政策", "Log in to another account": "登入另一个账户", "Sign in": "登录", "Sign out": "登出", "Add an account": "添加一个账户", "Log in": "登录", "Register": "注册", "Profile": "个人资料", "History": "浏览历史", "Bookmarks": "收藏夹", "More": "更多", "Clear": "清空", "Cancel": "取消", "Save": "保存", "Apply": "应用", "Got it": "明白", "Dark theme": "深色模式", "Light theme": "浅色模式", "Search suggestions": "搜索建议", "Popular queries": "热门搜索", "Все": "全部", "Изображения": "图片", "Видео": "视频", "Новости": "新闻", "Карты": "地图", "Диск": "移动硬盘", "Почта": "邮箱", "Добавить":"添加", "Email": "电子邮箱", "Внешний вид": "外观", "Change account": "切换账户", "Help": "帮助", "Добавьте день рождения":"添加生日", "Подготовим для вас сюрпризы":"我们会为你准备惊喜", "Мои отзывы": "我的反馈", "Технологии": "技术", "Рынок": "商城", "Переведи": "翻译", "Справка":"证明", "Погода": "天气", "Browser": "浏览器", "О своём": "关于", "Условия использования": "服务条款", "Рекомендуйте Поиск":"推荐搜索", "И получите до 4000₽":"并获得高达4000₽", "Политика конфиденциальности": "隐私政策", "Сообщить о нарушении": "举报违规政策", "Сменить аккаунт": "登入另一个账户", "Войти": "登录", "Выйти": "登出", "Add an account": "添加一个账户", "Войти": "登录", "Register": "注册", "Profile": "个人资料", "История": "浏览历史", "Закладки": "收藏夹", "Больше": "更多", "Clear": "清空", "Отменить": "取消", "Сохранить": "保存", "Apply": "应用", "Понял": "明白", "Тёмная тема": "深色模式", "Светлая тема": "浅色模式", "Поисковые предложения": "搜索建议", "Популярные запросы": "热门搜索", "Try again": "重新尝试", "No results found": "未找到结果", "Related searches": "相关搜索", "Open in new tab": "新标签页打开", "Report an error": "报告错误", "next": "下一页", "Jobs": "岗位", "Обратная связь":"反馈", "Лицензия на использование":"使用许可", "License": "条约", "Commercial offers": "商业报价", "Finds everything": "寻找所有事", "Алиса AI": "Alice AI", "Управление аккаунтом":"账户管理", "Подтверждённый профиль":"已验证的个人资料", "Люди ищут":"人们还在搜", // === 通用 === "Нейросеть Алиса AI - бесплатный ии-чат Яндекса с генерацией текстов и изображений": "神经网络 Alice AI - 免费的 Yandex AI 聊天,可生成文本和图像", // 侧边栏 & 头部 "Алиса AI": "Alice AI", "Новый чат": "新对话", "Мои заказы": "我的订单", "Заказы": "订单", "Заказ": "订单", "Нет заказов": "暂无订单", "Оформление заказа": "订单处理", "Записи и брони": "预约与预订", "Промптхаб": "提示词工坊", "Персонажи": "角色", "новое": "新", "Настройки": "设置", "Свернуть боковую панель": "收起侧边栏", "Развернуть боковую панель": "展开侧边栏", "Скачать приложение": "下载 App", "Опция Алиса Плюс": "Alice Plus 套餐", "Профиль": "个人资料", "Управление организацией": "组织管理", "Готовлю ответ, подождите немного...":"正在准备回复,请稍等...", "Alice старается, но может ошибаться — проверяйте важное":"爱丽丝在努力,但可能会出错——重要的事情请核对一下。", // 用户 & 登录 "Войти": "登录", "Выйти": "退出", "Регистрация": "注册", // 输入区 "Спросите о чём угодно": "问任何事", "Добавить файл": "添加文件", "Меню": "菜单", "Кнопка Распознать речь": "语音识别按钮", "Алиса, начни слушать": "Alice,开始聆听", "Алиса, стоп": "Alice,停止", "Отправить": "发送", "Выключить звук": "静音", "Прокрутить вниз": "向下滚动", // 首页 doodle 卡片 "Что нового в Алисе AI": "Alice AI 更新内容", "Узнайте, какие обновления теперь доступны": "了解可用的新功能", "Подробнее": "了解更多", // 按钮 / 操作 "Закрыть": "关闭", "Отмена": "取消", "Сохранить": "保存", "Копировать": "复制", "Удалить": "删除", "Редактировать": "编辑", "Развернуть": "展开", "Свернуть": "收起", "Поделиться": "分享", "Повторить": "重试", "Обновить": "刷新", "Назад": "返回", "Далее": "下一步", "Готово": "完成", "Понятно": "知道了", "Разрешить": "允许", "Запретить": "禁止", "Подключить": "连接", "Включить": "启用", "Выключить": "禁用", // 提示 & 状态 "Загрузка...": "加载中...", "Ошибка": "错误", "Не удалось загрузить файл": "文件加载失败", "Формат файла не поддерживается": "文件格式不支持", "Файл превышает {maxFileSize} (его размер {fileSize})": "文件超出 {maxFileSize}(当前大小 {fileSize})", "Максимальное количество файлов — {maxFiles}": "最大文件数 {maxFiles}", "Здесь файлы не поддерживаются": "此处不支持文件", // 常用词 "Поиск": "搜索", "Найти": "查找", "Яндекс": "Yandex", "Алиса": "Alice", "Голосовой помощник": "语音助手", "Погода": "天气", "Новости": "新闻", "Карты": "地图", "Музыка": "音乐", "Видео": "视频", "Перевести": "翻译", "Ещё": "更多", // 日期 "Сегодня": "今天", "Вчера": "昨天", "Завтра": "明天", // 聊天 "Источники": "来源", "Ответ сгенерирован": "已生成回答", "На основе {count} источника:": "基于 {count} 个来源:", "На основе {count} источников:": "基于 {count} 个来源:", "Сообщение скопировано": "消息已复制", "Ссылка скопирована": "链接已复制", "Поделиться ответом": "分享回答", "Пожаловаться": "举报", "Спасибо за оценку": "感谢评价", "Хороший ответ": "好回答", "Плохой ответ": "差回答", "Чат удалён": "对话已删除", "Не удалось удалить чат": "删除对话失败", // 模式 "Рассуждать": "推理模式", "Рассуждения": "推理过程", "Live-режим": "实时模式", "Режим инкогнито": "无痕模式", "Детский режим": "儿童模式", "Семейный режим": "家庭模式", "Фильтрация контента": "内容过滤", "Язык интерфейса": "界面语言", "Русский": "俄语", "Английский": "英语", "Казахский": "哈萨克语", "Татарский": "鞑靼语", "Белорусский": "白俄罗斯语", // 其他 "бета": "测试版", "скоро": "即将推出", "черновик": "草稿", "Новая модель": "新模型", "Моя память": "我的记忆", "Дела": "待办", "Заметки": "笔记", "Все заметки": "全部笔记", "Выполненные": "已完成", "Удалено": "已删除", "Сбросить выбор": "取消选择", "Выбрать все": "全选", "Удалить выбранные": "删除选中", "Подтвердить черновик": "确认草稿", "Создайте задачу": "创建任务", "Напомни": "提醒我", "Записать в мою память": "记入我的记忆", "История": "历史记录", "Галерея": "图库", "Студия": "工作室", "Оживить фото": "让照片动起来", "Нарисовать картинку": "绘制图片", "Найти дешевле": "寻找更低价", "Забронировать столик": "预订餐桌", "Забронировать": "预订", "Записаться в салон": "预约沙龙", "Записаться": "预约", "Репетитор":"家教模式", "Помочь с математикой": "数学辅导", "Выбрать кино": "选电影", "Позвонить": "打电话", // ===== 🆕 订单页新增翻译 ===== "Активные": "进行中", "Завершённые": "已完成", "Пока ничего нет": "暂无内容", "Здесь будут заказы, которые едут или ждут получения.": "这里将显示正在配送或待领取的订单。", "Оформляйте заказы в Версии": "在 Версия 商城下单", "и в партнёрских магазинах Яндекса.": "以及 Yandex 的合作伙伴商店。", "Выбирайте товары с кнопками «Купить» или «Купить в 1 клик»": "选择带有“购买”或“一键购买”按钮的商品", "Отслеживайте статусы заказов и все детали по ним здесь": "在这里跟踪订单状态和所有详细信息", "Вдохновиться": "去发现" }; // ---------- 替换函数 ---------- function replaceText(node) { if (node.nodeType === Node.TEXT_NODE) { let text = node.textContent; let trimmed = text.trim(); if (translations[trimmed]) { node.textContent = text.replace(trimmed, translations[trimmed]); return; } for (let [key, value] of Object.entries(translations)) { if (text.includes(key)) { node.textContent = text.replaceAll(key, value); return; } } } else if (node.nodeType === Node.ELEMENT_NODE && !['SCRIPT', 'STYLE'].includes(node.tagName)) { if (node.hasAttribute('title')) { let title = node.getAttribute('title'); if (translations[title]) node.setAttribute('title', translations[title]); } if (node.hasAttribute('aria-label')) { let label = node.getAttribute('aria-label'); if (translations[label]) node.setAttribute('aria-label', translations[label]); } for (let child of node.childNodes) { replaceText(child); } } } // 初次执行 replaceText(document.body); // 监听动态变化 const observer = new MutationObserver((mutations) => { for (let mutation of mutations) { for (let addedNode of mutation.addedNodes) { if (addedNode.nodeType === Node.ELEMENT_NODE) { replaceText(addedNode); } else if (addedNode.nodeType === Node.TEXT_NODE) { replaceText(addedNode.parentNode); } } } }); observer.observe(document.body, { childList: true, subtree: true }); })();