lol英雄名字替换

自动将中文英雄名、称号、昵称转换为英文,支持160+英雄别名(如“盲僧”→“Lee Sin”)

目前為 2025-06-14 提交的版本,檢視 最新版本

// ==UserScript==
// @name         lol英雄名字替换
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  自动将中文英雄名、称号、昵称转换为英文,支持160+英雄别名(如“盲僧”→“Lee Sin”)
// @author       zq
// @match        https://runeforge.dev/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=runeforge.dev
// @grant        none
// @license      MIT
// ==/UserScript==/// ==UserScript==
// @name         lol英雄名字替换
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  自动将中文英雄名、称号、昵称转换为英文,支持160+英雄别名(如“盲僧”→“Lee Sin”)
// @author       You
// @match        https://runeforge.dev/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=runeforge.dev
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // 中文到英文的映射表(这里以英雄联盟英雄名为例,可根据需要扩展)
    const translationMap = {
    // Aatrox
    '亚托克斯': 'Aatrox',
    '暗裔剑魔': 'Aatrox',

    // Ahri
    '阿狸': 'Ahri',
    '九尾妖狐': 'Ahri',

    // Akali
    '阿卡丽': 'Akali',
    '暗影之拳': 'Akali',

    // Alistar
    '阿利斯塔': 'Alistar',
    '牛头酋长': 'Alistar',

    // Amumu
    '阿木木': 'Amumu',
    '殇之木乃伊': 'Amumu',

    // Anivia
    '艾尼维亚': 'Anivia',
    '冰晶凤凰': 'Anivia',

    // Annie
    '安妮': 'Annie',
    '黑暗之女': 'Annie',

    // Ashe
    '艾希': 'Ashe',
    '寒冰射手': 'Ashe',

    // Aurelion Sol
    '奥瑞利安·索尔': 'Aurelion Sol',
    '铸星龙王': 'Aurelion Sol',

    // Azir
    '阿兹尔': 'Azir',
    '沙漠皇帝': 'Azir',

    // Bard
    '巴德': 'Bard',
    '星界游神': 'Bard',

    // Blitzcrank
    '布里茨': 'Blitzcrank',
    '蒸汽机器人': 'Blitzcrank',

    // Brand
    '布兰德': 'Brand',
    '复仇焰魂': 'Brand',

    // Braum
    '布隆': 'Braum',
    '弗雷尔卓德之心': 'Braum',

    // Camille
    '卡蜜尔': 'Camille',
    '青钢影': 'Camille',

    // Caitlyn
    '凯特琳': 'Caitlyn',
    '皮城女警': 'Caitlyn',

    // Cassiopeia
    '卡西奥佩娅': 'Cassiopeia',
    '魔蛇之拥': 'Cassiopeia',

    // Chogath
    '科加斯': 'Chogath',
    '虚空恐惧': 'Chogath',

    // Corki
    '库奇': 'Corki',
    '英勇投弹手': 'Corki',

    // Darius
    '德莱厄斯': 'Darius',
    '诺克萨斯之手': 'Darius',

    // Diana
    '戴安娜': 'Diana',
    '皎月女神': 'Diana',

    // Draven
    '德莱文': 'Draven',
    '荣耀行刑官': 'Draven',

    // Dr. Mundo
    '蒙多医生': 'Dr. Mundo',
    '祖安狂人': 'Dr. Mundo',

    // Ekko
    '艾克': 'Ekko',
    '时间刺客': 'Ekko',

    // Elise
    '伊莉丝': 'Elise',
    '蜘蛛女皇': 'Elise',

    // Evelynn
    '伊芙琳': 'Evelynn',
    '痛苦之拥': 'Evelynn',

    // Ezreal
    '伊泽瑞尔': 'Ezreal',
    '探险家': 'Ezreal',

    // Fiddlesticks
    '费德提克': 'Fiddlesticks',
    '末日使者': 'Fiddlesticks',

    // Fiora
    '菲奥娜': 'Fiora',
    '无双剑姬': 'Fiora',

    // Fizz
    '菲兹': 'Fizz',
    '潮汐海灵': 'Fizz',

    // Galio
    '加里奥': 'Galio',
    '正义巨像': 'Galio',

    // Gangplank
    '普朗克': 'Gangplank',
    '海洋之灾': 'Gangplank',

    // Garen
    '盖伦': 'Garen',
    '德玛西亚之力': 'Garen',

    // Gnar
    '纳尔': 'Gnar',
    '迷失之牙': 'Gnar',

    // Gragas
    '古拉加斯': 'Gragas',
    '酒桶': 'Gragas',

    // Graves
    '格雷福斯': 'Graves',
    '法外狂徒': 'Graves',

    // Hecarim
    '赫卡里姆': 'Hecarim',
    '战争之影': 'Hecarim',

    // Heimerdinger
    '黑默丁格': 'Heimerdinger',
    '大发明家': 'Heimerdinger',

    // Illaoi
    '俄洛伊': 'Illaoi',
    '海兽祭司': 'Illaoi',

    // Irelia
    '艾瑞莉娅': 'Irelia',
    '刀锋舞者': 'Irelia',

    // Ivern
    '艾翁': 'Ivern',
    '翠神': 'Ivern',

    // Janna
    '迦娜': 'Janna',
    '风暴之怒': 'Janna',

    // Jarvan IV
    '嘉文四世': 'Jarvan IV',
    '德玛西亚皇子': 'Jarvan IV',

    // Jax
    '贾克斯': 'Jax',
    '武器大师': 'Jax',

    // Jayce
    '杰斯': 'Jayce',
    '未来守护者': 'Jayce',

    // Jhin
    '烬': 'Jhin',
    '戏命师': 'Jhin',

    // Jinx
    '金克丝': 'Jinx',
    '暴走萝莉': 'Jinx',

    // Kaisa
    '卡莎': 'Kaisa',
    '虚空之女': 'Kaisa',

    // Kalista
    '卡莉丝塔': 'Kalista',
    '复仇之矛': 'Kalista',

    // Karma
    '卡尔玛': 'Karma',
    '天启者': 'Karma',

    // Kayle
    '凯尔': 'Kayle',
    '审判天使': 'Kayle',

    // Kayn
    '凯隐': 'Kayn',
    '影流之镰': 'Kayn',

    // Kennen
    '凯南': 'Kennen',
    '狂暴之心': 'Kennen',

    // Karthus
    '卡尔萨斯': 'Karthus',
    '死亡歌颂者': 'Karthus',

    // Kassadin
    '卡萨丁': 'Kassadin',
    '虚空行者': 'Kassadin',

    // Katarina
    '卡特琳娜': 'Katarina',
    '不祥之刃': 'Katarina',

    // Khazix
    '卡兹克': 'Khazix',
    '虚空掠夺者': 'Khazix',

    // Kindred
    '千珏': 'Kindred',
    '永猎双子': 'Kindred',

    // Kled
    '克烈': 'Kled',
    '暴怒骑士': 'Kled',

    // Kog'Maw
    '克格莫': 'KogMaw',
    '深渊巨口': 'KogMaw',
    '大嘴': 'KogMaw',


    // Leblanc
    '乐芙兰': 'Leblanc',
    '诡术妖姬': 'Leblanc',
    '妖姬': 'Leblanc',
    // Lee Sin
    '李青': 'Lee Sin',
    '盲僧': 'Lee Sin',
    '瞎子': 'Lee Sin',

    // Leona
    '蕾欧娜': 'Leona',
    '曙光女神': 'Leona',
    '日女': 'Leona',

    // Lissandra
    '丽桑卓': 'Lissandra',
    '冰霜女巫': 'Lissandra',
    '冰女': 'Lissandra',

    // Lucian
    '卢锡安': 'Lucian',
    '圣枪游侠': 'Lucian',

    // Lulu
    '璐璐': 'Lulu',
    '仙灵女巫': 'Lulu',

    // Lux
    '拉克丝': 'Lux',
    '光辉女郎': 'Lux',
    '光辉': 'Lux',

    // Malphite
    '墨菲特': 'Malphite',
    '熔岩巨兽': 'Malphite',
    '石头人': 'Malphite',

    // Malzahar
    '马尔扎哈': 'Malzahar',
    '虚空先知': 'Malzahar',
    '蚂蚱': 'Malzahar',

    // Maokai
    '茂凯': 'Maokai',
    '扭曲树精': 'Maokai',
    '大树': 'Maokai',

    // Master Yi
    '易': 'Master Yi',
    '易大师': 'Master Yi',
    '无极剑圣': 'Master Yi',
    '剑圣': 'Master Yi',

    // Miss Fortune
    '厄运小姐': 'Miss Fortune',
    '赏金猎人': 'Miss Fortune',
    '女枪': 'Miss Fortune',

    // Monkey King
    '孙悟空': 'Monkey King',
    '齐天大圣': 'Monkey King',
    '猴子': 'Monkey King',

    // Mordekaiser
    '莫德凯撒': 'Mordekaiser',
    '铁铠冥魂': 'Mordekaiser',
    '铁男': 'Mordekaiser',

    // Morgana
    '莫甘娜': 'Morgana',
    '堕落天使': 'Morgana',

    // Nami
    '娜美': 'Nami',
    '唤潮鲛姬': 'Nami',

    // Nasus
    '内瑟斯': 'Nasus',
    '沙漠死神': 'Nasus',
    '狗头': 'Nasus',

    // Nocturne
    '魔腾': 'Nocturne',
    '永恒梦魇': 'Nocturne',
    '梦魇': 'Nocturne',

    // Nautilus
    '诺提勒斯': 'Nautilus',
    '深海泰坦': 'Nautilus',
    '泰坦': 'Nautilus',

    // Nidalee
    '奈德丽': 'Nidalee',
    '狂野女猎手': 'Nidalee',
    '豹女': 'Nidalee',

    // Nunu
    '努努': 'Nunu',
    '雪人骑士': 'Nunu',

    // Olaf
    '奥拉夫': 'Olaf',
    '狂战士': 'Olaf',

    // Orianna
    '奥莉安娜': 'Orianna',
    '发条魔灵': 'Orianna',
    '发条': 'Orianna',

    // Ornn
    '奥恩': 'Ornn',
    '山隐之焰': 'Ornn',
    '山羊': 'Ornn',

    // Pantheon
    '潘森': 'Pantheon',
    '战争之王': 'Pantheon',

    // Poppy
    '波比': 'Poppy',
    '圣锤之毅': 'Poppy',

    // Pyke
    '派克': 'Pyke',
    '血港鬼影': 'Pyke',

    // Quinn
    '奎因': 'Quinn',
    '德玛西亚之翼': 'Quinn',

    // Rakan
    '洛': 'Rakan',
    '幻翎': 'Rakan',

    // Rammus
    '拉莫斯': 'Rammus',
    '披甲龙龟': 'Rammus',
    '龙龟': 'Rammus',

    // Rek'Sai
    '雷克赛': 'RekSai',
    '虚空遁地兽': 'RekSai',
    '挖掘机': 'RekSai',

    // Renekton
    '雷克顿': 'Renekton',
    '荒漠屠夫': 'Renekton',
    '鳄鱼': 'Renekton',

    // Rengar
    '雷恩加尔': 'Rengar',
    '傲之追猎者': 'Rengar',
    '狮子狗': 'Rengar',

    // Riven
    '锐雯': 'Riven',
    '放逐之刃': 'Riven',

    // Rumble
    '兰博': 'Rumble',
    '机械公敌': 'Rumble',

    // Ryze
    '瑞兹': 'Ryze',
    '符文法师': 'Ryze',

    // Sejuani
    '瑟庄妮': 'Sejuani',
    '北地之怒': 'Sejuani',
    '猪女': 'Sejuani',

    // Shaco
    '萨科': 'Shaco',
    '恶魔小丑': 'Shaco',
    '小丑': 'Shaco',

    // Shen
    '慎': 'Shen',
    '暮光之眼': 'Shen',

    // Shyvana
    '希瓦娜': 'Shyvana',
    '龙血武姬': 'Shyvana',
    '龙女': 'Shyvana',

    // Singed
    '辛吉德': 'Singed',
    '炼金术士': 'Singed',
    '炼金': 'Singed',

    // Sion
    '赛恩': 'Sion',
    '亡灵战神': 'Sion',

    // Sivir
    '希维尔': 'Sivir',
    '战争女神': 'Sivir',
    '轮子妈': 'Sivir',

    // Skarner
    '斯卡纳': 'Skarner',
    '水晶先锋': 'Skarner',
    '蝎子': 'Skarner',

    // Sona
    '索娜': 'Sona',
    '琴瑟仙女': 'Sona',
    '琴女': 'Sona',

    // Soraka
    '索拉卡': 'Soraka',
    '众星之子': 'Soraka',
    '奶妈': 'Soraka',

    // Swain
    '斯维因': 'Swain',
    '诺克萨斯统领': 'Swain',
    '乌鸦': 'Swain',

    // Syndra
    '辛德拉': 'Syndra',
    '暗黑元首': 'Syndra',
    '球女': 'Syndra',

    // Tahm Kench
    '塔姆': 'Tahm Kench',
    '河流之王': 'Tahm Kench',

    // Taliyah
    '塔莉垭': 'Taliyah',
    '岩雀': 'Taliyah',

    // Talon
    '泰隆': 'Talon',
    '刀锋之影': 'Talon',
    '男刀': 'Talon',

    // Taric
    '塔里克': 'Taric',
    '瓦罗兰之盾': 'Taric',

    // Teemo
    '提莫': 'Teemo',
    '迅捷斥候': 'Teemo',

    // Trundle
    '特朗德尔': 'Trundle',
    '巨魔之王': 'Trundle',
    '巨魔': 'Trundle',

    // Tryndamere
    '泰达米尔': 'Tryndamere',
    '蛮族之王': 'Tryndamere',
    '蛮王': 'Tryndamere',

    // Twisted Fate
    '崔斯特': 'Twisted Fate',
    '卡牌大师': 'Twisted Fate',
    '卡牌': 'Twisted Fate',

    // Tristana
    '崔丝塔娜': 'Tristana',
    '麦林炮手': 'Tristana',
    '小炮': 'Tristana',

    // Twitch
    '图奇': 'Twitch',
    '瘟疫之源': 'Twitch',
    '老鼠': 'Twitch',

    // Thresh
    '锤石': 'Thresh',
    '魂锁典狱长': 'Thresh',

    // Udyr
    '乌迪尔': 'Udyr',
    '兽灵行者': 'Udyr',

    // Urgot
    '厄加特': 'Urgot',
    '无畏战车': 'Urgot',

    // Varus
    '维鲁斯': 'Varus',
    '惩戒之箭': 'Varus',

    // Vayne
    '薇恩': 'Vayne',
    '暗夜猎手': 'Vayne',
    'vn': 'Vayne',

    // Vi
    '蔚': 'Vi',
    '皮城执法官': 'Vi',

    // Viktor
    '维克托': 'Viktor',
    '机械先驱': 'Viktor',

    // Veigar
    '维迦': 'Veigar',
    '邪恶小法师': 'Veigar',
    '小法': 'Veigar',

    // Velkoz
    '维克兹': 'Velkoz',
    '虚空之眼': 'Velkoz',
    '大眼': 'Velkoz',

    // Vladimir
    '弗拉基米尔': 'Vladimir',
    '猩红收割者': 'Vladimir',
    '吸血鬼': 'Vladimir',

    // Volibear
    '沃利贝尔': 'Volibear',
    '雷霆咆哮': 'Volibear',
    '狗熊': 'Volibear',

    // Warwick
    '沃里克': 'Warwick',
    '祖安怒兽': 'Warwick',
    '狼人': 'Warwick',

    // Xayah
    '霞': 'Xayah',
    '逆羽': 'Xayah',

    // Xerath
    '泽拉斯': 'Xerath',
    '远古巫灵': 'Xerath',

    // Xin Zhao
    '赵信': 'Xin Zhao',
    '德邦总管': 'Xin Zhao',

    // Yasuo
    '亚索': 'Yasuo',
    '疾风剑豪': 'Yasuo',

    // Yorick
    '约里克': 'Yorick',
    '牧魂人': 'Yorick',
    '掘墓': 'Yorick',

    // Zac
    '扎克': 'Zac',
    '生化魔人': 'Zac',

    // Zed
    '劫': 'Zed',
    '影流之主': 'Zed',

    // Ziggs
    '吉格斯': 'Ziggs',
    '爆破鬼才': 'Ziggs',
    '炸弹人': 'Ziggs',

    // Zilean
    '基兰': 'Zilean',
    '时光守护者': 'Zilean',
    '时光老人': 'Zilean',

    // Zoe
    '佐伊': 'Zoe',
    '暮光星灵': 'Zoe',

    // Zyra
    '婕拉': 'Zyra',
    '荆棘之兴': 'Zyra'
};

    // 获取搜索输入框
    const searchInput = document.getElementsByName('search')[0];
    if (!searchInput) return;

    // 存储原始的input事件处理函数(如果有的话)
    const originalInputHandler = searchInput.oninput;

    // 阻止原始的input事件处理
    searchInput.oninput = null;

    // 记录上次的输入值,用于判断是否需要触发搜索
    let lastInputValue = '';

    // 防抖函数,避免频繁触发搜索
    function debounce(func, delay) {
        let timer = null;
        return function() {
            const context = this;
            const args = arguments;
            clearTimeout(timer);
            timer = setTimeout(() => func.apply(context, args), delay);
        };
    }

    // 处理用户输入的函数
    const handleUserInput = debounce(function(e) {
        let inputValue = e.target.value;

        // 如果输入包含中文,尝试替换为英文
        if (/[\u4e00-\u9fa5]/.test(inputValue)) {
            let translatedValue = inputValue;

            // 遍历翻译映射表,替换所有匹配的中文
            Object.keys(translationMap).forEach(chinese => {
                const regex = new RegExp(chinese, 'g');
                translatedValue = translatedValue.replace(regex, translationMap[chinese]);
            });

            // 如果有替换,更新输入框的值
            if (translatedValue !== inputValue) {
                searchInput.value = translatedValue;
                inputValue = translatedValue;
            }
        }

        // 只有当值确实发生变化时才触发搜索
        if (inputValue !== lastInputValue) {
            lastInputValue = inputValue;

            // 创建并触发新的input事件
            const newInputEvent = new Event('input', { bubbles: true });
            searchInput.dispatchEvent(newInputEvent);
        }
    }, 300); // 300ms防抖延迟

    // 监听用户输入事件
    searchInput.addEventListener('input', handleUserInput);

    // 如果需要保留原始的input事件处理函数,可以在自定义处理后调用它
    if (originalInputHandler) {
        searchInput.addEventListener('input', originalInputHandler);
    }
})();