Kimochi Gaming Tools

提供对 Kimochi Gaming 的界面汉化、搜索标签汉化辅助以及一些功能

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği yüklemek için Tampermonkey gibi bir uzantı yüklemeniz gerekir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name         Kimochi Gaming Tools
// @namespace    http://tampermonkey.net/
// @version      1.6
// @license      MIT
// @icon         https://www.google.com/s2/favicons?sz=64&domain=kimochi.info
// @description  提供对 Kimochi Gaming 的界面汉化、搜索标签汉化辅助以及一些功能
// @author       RONUKUIGO
// @match        https://kimochi.info/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    // ================== 1. 字典配置 ==================

    // 界面汉化字典
    const translationDict = {
        //主页
        "Newest Uploads": "最新上传",
        "Fresh drops from the developer ecosystem": "开发者们最近的更新",
        "Hottest Games": "热门游戏",
        "View All Games": "查看全部游戏",
        "View All Developers": "查看全部开发者",
        "View All Collections": "查看全部合集",
        "View All New Games": "查看全部新游戏",
        "View All Trending": "查看全部趋势",
        "View All": "查看全部",
        "Latest picks": "最新精选",
        "Daily Top 10": "每日人气前十",
        "Top Android Hits": "安卓游戏排行",
        "Explore game series and franchises": "探索游戏系列和特许经营",

        //子页
        "Games for Android": "安卓游戏",
        "Browse Games": "浏览游戏",
        "Browse": "浏览",
        "Games for Windows": "Windows 游戏",
        "Your curated gateway to the best games, developers, and collections.": "为您精心挑选的最佳游戏、开发者和合集。",
        "Most Popular": "最受欢迎",
        "Most popular games right now": "当前最受欢迎的游戏",
        "New Arrivals": "最新上架",
        "Freshly uploaded games": "最新上传的游戏",
        "Top Developers": "顶级开发者",
        "Discover games by your favorite creators": "发现您喜欢的开发者的游戏",
        "Popular Collections": "热门合集",
        "Browse by Category": "按类别浏览",
        "Find games by genre and theme": "按类型和主题查找游戏",
        "Discover More": "发现更多",
        "Discover": "发现",
        "Explore the most popular games based on views and engagement.": "根据浏览量和参与度探索最受欢迎的游戏。",
        "Today's Hot": "今日热门",

        //下载页
        "File Ready For Download": "准备下载文件",
        "Google Drive Server": "Google Drive Server",
        "Your link will be ready in": "您的链接将在以下时间后准备就绪",
        "Download File": "下载文件",
        "Go Back": "返回",
        "Ready to download! Click the button below.": "准备下载!点击下方按钮。",
        "Target Server: Google Drive": "目标服务器: Google Drive",
        "Verified Secure Link": "已验证的安全链接",
        "Redirecting to your download...": "正在重定向...",
        "Please wait while we transfer you to the target server. This should only take a moment.": "请稍候...",


        //侧边栏&顶部导航&页脚
        "Guest": "游客",
        "Home": "主页",
        "Explore": "探索",
        "Trending": "趋势",
        "PC Games": "PC 游戏",
        "Android Games": "安卓游戏",
        "Developers": "开发者",
        "Publishers": "发行商",
        "Feedback": "反馈",
        "FAQs": "常见问题",
        "Free Download 2D|3D Adult Porn, ゲーム エロゲ. Hentai Games, Visual Novel, Eroge Games": "免费下载 2D|3D 成人色情游戏,Hentai 游戏,视觉小说,Eroge 游戏。",
        "Quick Links": "快捷链接",
        "Legal & policies": "法律与政策",
        "Privacy Policy": "隐私政策",
        "Terms of Service": "服务条款",
        "Partners": "合作伙伴",
        "Connect With Us": "联系我们",
        "Join our community or get in touch with us through our official channels.": "加入我们的官方社区或通过邮件与我们联系。",
        "Kimochi Gaming. All rights reserved.": "Kimochi Gaming. 版权所有",

        //搜索页
        "All Games": "全部游戏",
        "games found": "个结果",
        "Search & filters": "搜索与筛选",
        "label filter": "个标签筛选",
        "Search": "搜索",
        "Censorship": "审查制度",
        "Game title...": "游戏标题...",
        "All": "全部",
        "Censored": "审查",
        "Uncensored": "无修正",
        "Sort by": "排序方式",
        "Newest first": "最新优先",
        "Oldest first": "最旧优先",
        "Title A–Z": "标题 A–Z",
        "Title Z–A": "标题 Z–A",
        "Advanced — labels & taxonomies": "高级筛选 - 类别与标签",
        "“Require” narrows results; “Hide” excludes games with that label. You can select up to 8 labels in total across Require and Hide. Too many labels can slow search.": "“包含”会缩小结果范围;“排除”会屏蔽带有该标签的游戏。您最多可以在“包含”和“排除”中选择8个标签。过多的标签可能会降低搜索速度。",
        "OVERVIEW": "简介",
        "Taps": "标签",
        "Filter list…": "过滤列表...",
        "Category": "类别",
        "Req": "包含",
        "Hide": "排除",
        "Clear": "重置",
        "Apply": "应用",

        //类别
        "Categories": "类别",
        "Action": "动作",
        "Adventure": "冒险",
        "AI-Generated": "部分使用AI",
        "Android": "安卓",
        "Animated": "动画",
        "COMPLETED": "已完成",
        "Fighting": "格斗",
        "Games": "游戏",
        "Korean": "韩语",
        "Pixel": "像素",
        "Puzzle": "解谜",
        "RPG": "角色扮演",
        "Shooting": "射击",
        "Simulation": "模拟",
        "Uncen": "无修正",
        "Videos": "视频",
        "Visual Novel": "视觉小说",
        "VR": "VR",
        "Final": "最终版",

        //标签
        "Tags": "标签",
        "horror": "恐怖",
        "Fantasy": "奇幻",
        "Sports": "运动/体育",
        "Comedy": "喜剧",
        "Slice of Life / Daily Living": "日常/生活",
        "Gag / Joke": "搞笑",
        "Serious": "严肃/沉重",
        "Depression / Depressing": "致郁",
        "Emotional / Touching": "感动",
        "Epic / Historical": "历史/古风",
        "Anime": "动画",
        "3D Works": "3D作品",
        "Dot / Pixel": "像素",
        "RPG Maker": "RPG制作大师",
        "Pure Love": "纯爱",
        "Lovey Dovey / Sweet Love": "亲热/甜蜜",
        "Lovey Dovey/Sweet Love": "亲热/甜蜜",
        "Femdom": "女性主导",
        "Woman's Viewpoint": "女性视角",
        "Female Protagonist": "女主人公",
        "Male Protagonist": "男主人公",
        "Bisexual": "双性恋",
        "Lesbian": "蕾丝/女同",
        "Yuri / Girls Love": "百合",
        "Gay": "GAY/男同",
        "Boys Love": "BL",
        "Ephebophilia / Shonen-ai": "耽美",
        "Younger Sister": "妹妹",
        "Oneesan / Older Girl / Older Sister": "姐姐",
        "Elder Girl x Younger Boy": "姐姐×正太",
        "Relative Matter": "骨科",
        "Daughter": "女儿",
        "Father": "父亲",
        "Childhood Friend": "青梅竹马",
        "Classmate / Colleague": "同学/同事",
        "Student": "学生",
        "Boss": "上司",
        "Office / Workplace": "办公室/职场",
        "Company President": "社长",
        "Married Woman": "人妻",
        "Shrine Maiden": "巫女",
        "Sister / Nun": "修女",
        "Doctor": "医生",
        "Butler": "管家/执事",
        "Entertainer / Idol / Model": "艺人/偶像/模特",
        "Delinquent / Hoodlum": "不良/混混",
        "Crime/Gangster": "黑社会/黑手党",
        "Master and Servant": "主从/主仆",
        "Servant": "奴隶",
        "Slave": "奴仆",
        "Age Disparity": "年龄差",
        "Body Size Disparity": "体型差",
        "Girl": "少女",
        "Petite": "萝",
        "L*li": "萝莉",
        "Petite Baba": "萝老太婆",
        "Virgin Female": "处女",
        "Virgin Male": "童贞/处男",
        "Bitch / Slut": "婊子",
        "Naughty / Lewd": "淫乱",
        "Mesugaki": "雌小鬼",
        "msgk": "雌小鬼",
        "Boyish Girl": "男性自称少女/仆娘",
        "Otoko no ko": "伪娘",
        "Futanari/Hermaphrodite": "扶她",
        "Queen / Princess": "女王/公主",
        "Gal": "辣妹",
        "Submissive Man": "男性受",
        "Younger (Dominant)": "年下攻",
        "Cool Attitude (Dominant)": "高冷攻",
        "Cool Attitude (Submissive)": "高冷受",
        "Diligent (Submissive)": "健气受",
        "Mischievous (Submissive)": "调皮受",
        "Plain / Nonpersisting": "平淡/冷淡",
        "Expressionless / Deadpan": "无表情",
        "Apron": "围裙",
        "Army Uniform": "军服",
        "Sailor-style Uniform": "水手服",
        "School Swimwear": "死库水/校园泳装",
        "Swimwear": "泳装",
        "Bloomers / Buruma": "校园体操服",
        "Bunny Girl": "兔女郎",
        "Knee Socks": "过膝袜",
        "Clothes Changing / Dress up": "换装",
        "Cosplay": "角色扮演",
        "Clothed": "着衣/穿衣",
        "Cross-dressing": "异装癖",
        "Cross-dressing as a Woman": "女装",
        "Black hair": "黑发",
        "Long Hair": "长发",
        "Blonde Hair": "金发",
        "Twin Tail": "双马尾",
        "Animal Ears": "兽耳",
        "Tiny Breasts": "贫乳/微乳",
        "Breasts": "胸部/奶子",
        "Big Breasts": "巨乳/爆乳",
        "Voluptuous / Plump": "丰满",
        "Buttocks": "臀部/屁股",
        "No Pubic Hair": "白虎/无阴毛",
        "Pubic Hair / Armpit Hair": "阴毛/腋毛",
        "Angel / Demon": "天使/恶魔",
        "Succubus / Incubus": "魅魔/淫魔",
        "Nonhuman / Monster Girl": "人外娘/魔物娘",
        "Youkai": "妖怪",
        "Elf / Fairy": "精灵/妖精",
        "Robot / Android": "机器人/仿生人",
        "Tentacle": "触手",
        "Post-apocalyptic": "后末日",
        "Pregnancy / Impregnation": "怀孕",
        "Pregnant Woman": "西瓜肚/孕妇",
        "Childbirth": "分娩",
        "Sex Change / Transsexual": "性转换(TS)",
        "Feminization": "女性化",
        "Fem-corruption": "雌堕",
        "Body Modification": "人体改造",
        "Womb Tattoo / Lust Crest": "淫纹",
        "Madness": "疯狂",
        "Ryona / Brutal": "虐待/Ryona",
        "Bizarre / Eccentric": "猎奇",
        "Blood / Bleeding": "血液/流血",
        "Abnormal / Perverted": "特殊癖好/变态",
        "Vore": "丸吞",
        "Gut Punch": "腹击",
        "spanking": "打屁股",
        "Cuckoldry (Netorare)": " 被NTR(苦主视角)",
        "Cuckoldry (Netori)": " NTR(黄毛视角)",
        "Cuckoldry (Netorase)": "故意被NTR/绿奴",
        "BSS/Thwarted Love": "BSS/暗恋被抢",
        "Cheating / Adultery": "出轨",
        "Pleasure Corruption": "沉迷快乐/快乐堕落",
        "Corrupted Morals": "恶堕",
        "Decadent / Immoral": "颓废/背德",
        "Ordered / Compelled": "命令/强迫",
        "Dub-con": "强奸",
        "Violation": "羞辱",
        "Shame / Humiliation": "羞耻/耻辱",
        "Captured": "限制自由",
        "Restraint": "拘束",
        "Bondage": "拘束服",
        "Sexual Bondage": "捆绑/紧缚",
        "Collar / Chain / Restraints": "项圈/锁链/拘束道具",
        "Discipline": "教育",
        "Drugs": "药物",
        "Trance / Suggestion": "催眠/暗示",
        "Sleep Sex": " 睡奸/迷奸",
        "Sensory Deprivation": "感官屏蔽",
        "Harem": "后宫",
        "Cohabitation": "婚前同居",
        "Living Together": "同居",
        "School / Academy": "学校/学园",
        "Office / Workplace": "办公室/职场",
        "Sex Industry / Soapland": "风俗/泡泡浴",
        "Outdoor Exposure": "露出",
        "Chirarism (Peeping)": "走光",
        "Upskirt / Spy Photo": "偷拍/盗摄",
        "Tease": "挑逗/调情",
        "Coquettish / Seduction": "色诱",
        "Touch / Feel": "触摸/抚摸",
        "Ear Licking": "舔耳",
        "Ear Cleaning": "掏耳",
        "Cross-section View": "断面图",
        "VISUAL FEED": "画面预览",
        "Ahegao / Gapeface": " 高潮脸/阿黑颜",
        "Vulgar Moans": "淫叫",
        "Dirty Talk": "淫语",
        "No Penetrative Sex": "无插入/无正戏",
        "Consensual Sex": "通奸/和奸",
        "No Reverse": "无逆转",
        "Reverse R": "反向奸",
        "Battle Fuck": "战斗H",
        "Interspecies Sex": "异种X",
        "Beast Buddies": " 兽X",
        "Orgy Sex": "多P/乱交",
        "Anal": "肛交",
        "Blowjob / Fellatio": "口交",
        "irrumatio": "深喉口交(男主导)",
        "Breast Sex": "乳交",
        "Foot Job": "足交",
        "Masturbation": "自慰",
        "Nipple Teasing": "乳头刺激",
        "Clit Teasing": "阴蒂刺激",
        "Toys": "玩具",
        "Machine Sex": "机械奸",
        "Erotic Sexual Denial": "放置Play",
        "Enema": "灌肠",
        "Egg laying": "产卵",
        "Squirting / Gushing": "内射/中出",
        "Internal Cumshot": "潮吹",
        "Bukkake": "外射",
        "Facial Cumshot": "颜射",
        "Oral Cumshot": "口内射精/口爆",
        "Cum Swallowing": "吞精/食精",
        "Large Cock": "巨根",
        "Lots of White Cream / Juices": "大量汁/液",
        "Breast Milk": "母乳",
        "Urination / Peeing": "放尿/小便",
        "Peeing Oneself": "失禁",
        "Successive Orgasms": "连续高潮",
        "Fighting / Martial Arts": "格斗",
        "Cat Fight": "女子搏斗",
        "Wrestler / Fighter": "摔角手/格斗家",
        "Very Mean": "造孽",
        "Healing": "治愈",
        "Totally Happy": "皆大欢喜",
        "Compilation": "总集篇",
        "Fetish": "癖好/性趣",
        "Softcore Eroticism": "软色情",
        "Female Homosexuality": "女同",
        "Female Teacher": "女教师",
        "BL": "BL",
        "First Experience": "初体验",
        "Fisting / Fist Sex": "拳交",
        "Forced Oral / Irrumatio": "强制口交(男主导)",
        "Foreign Objects": "道具/异物",
        "Foreigner": "外国人",
        "Garter": "吊带袜",
        "Futanari / Hermaphrodite": "扶她",
        "Ghost": "幽灵",
        "Glasses": "眼镜",
        "Gothic Lolita": "哥特萝莉",
        "Guided Masturbation": "自慰辅助",
        "Guro / Scat": "虐待/肠内",
        "Hand Job": "手交",
        "Heartwarming": "温馨",
        "Hot / Burning": "燃",
        "Intellectual": "知识分子",
        "Jock / Athlete / Sports": "体育系/运动员",
        "Junior / Senior High School": "初高中",
        "Kemo/Animalization/ Transfur": "野兽/兽化",
        "Leggings": "紧身裤",
        "Kimono / Japanese Clothes": "浴衣/和服",
        "Kunoichi (Ninja Girl)": "女忍者",
        "Legs": "腿/足",
        "Leotard": "紧身衣/舞蹈服",
        "Magic": "魔法",
        "Magical Girl": "魔法少女",
        "Magician / Witch": "魔法师/魔女",
        "Maid": "女仆",
        "Male Homosexuality": "男同",
        "Married Person": "已婚者",
        "Mature Woman / MILF": "熟女",
        "Middle Aged (Submissive)": "大叔受",
        "Chubby": "肉感",
        "Lotion": "润滑液",
        "Lordly Manner (Dominant)": "帝王攻",
        "Lovers": "情侣",
        "Junior / Senior": "初中生/高中生",
        "Love Comedy / Romcom": "恋爱喜剧",
        "Military": "军事",
        "Milking": "挤奶",
        "Moe": "萌",
        "Mother": "母亲",
        "Multi/Monster/Mega Breasts": "复乳/怪乳/超乳",
        "muscular": "肌肉",
        "Mystery": "推理",
        "Natural Airhead": "天然呆",
        "Nekomimi (Cat Ears)": "猫耳",
        "Nipple Penetration": "乳头交",
        "Nipples / Areola": "乳头/乳晕",
        "Nurse": "护士",
        "Nurse Uniform": "护士服",
        "Occult": "超自然现象",
        "office lady": "OL",
        "Older Brother": "哥哥",
        "Older Stepsister": "义姐",
        "Outdoor": "室外",
        "Outdoor Sex": "野外/野战",
        "Panties": "内裤",
        "PE Uniform": "体操服",
        "Personification": "拟人化",
        "Phimosis": "包茎",
        "Piercings / Accessories": "耳环/装饰品",
        "Playboy": "海王/花花公子",
        "Police / Detective": "警察/刑警",
        "Ponytail": "单马尾",
        "Possession": "附身",
        "Puni": "娃娃脸/婴儿肥",
        "Prostitution / Paid Dating": "卖春/援交",
        "Rape": "强奸",
        "Real Elder Sister": "亲姐姐",
        "Reverse Anal": "逆肛交",
        "Reverse Cuckoldry": "逆NTR",
        "Rubber": "胶衣",
        "Salaried Worker": "白领/上班族",
        "Scatology": "粪便/排泄物",
        "School Nurse": "保健医生/校医",
        "Seductive (Submissive)": "诱受",
        "Shemale": "人妖",
        "Short hair": "短发",
        "Short Skirt": "迷你裙",
        "Shota": "正太",
        "Sisters": "姐妹",
        "Slender": "苗条",
        "SM": "SM",
        "Socks": "袜子",
        "Stepmother": "义母",
        "Stockings": "丝袜",
        "Stretch / Expansion": "扩张",
        "Strong Willed (Submissive)": "强气受",
        "Suit": "西装",
        "Boy": "正太",
        "Zombie": "僵尸/丧尸",
        "Younger Stepsister": "义妹",
        "Younger Brother": "弟弟",
        "Younger Boy x Elder Girl": "姐姐×正太",
        "Widow": "寡妇",
        "Violence": "暴力",
        "VTuber": "VTuber",
        "Verbal Humiliation": "语言刺激",
        "Whip / Rope / Candle": "鞭子/绳子/蜡烛",
        "Warrior": "战士",
        "War / Battlefield": "战场",
        "Waitress": "侍女",
        "Whispering": "低语",
        "Vanilla Sex": "正常玩法",
        "Urethra": "尿道",
        "Upper-class Girl": "大小姐",
        "Uniform": "制服",
        "Train": "电车",
        "Secret Fondling": "偷偷摸摸",
        "Uncle / Stepfather": "叔父/义父",
        "Twins": "双胞胎",
        "Tsurupeta": "平胸/飞机场",
        "Tsundere": "傲娇",
        "Transforming Girl": "变身女主",
        "Touhou Project": "东方Project",
        "Tomboy": "假小子",
        "Time Stopping": "时间停止",
        "Underwear": "内衣",
        "Teacher": "教师",
        "Tanned Skin / Suntan": "褐皮/晒痕",
        "Teens Love": "TL",
        "Tall Person": "高挑",
        "Suspense": "悬疑",
        "Supersize": "巨大化",
        "Tickling": "挠痒痒",

        //详情页
        "Download Game": "下载游戏",
        "Official Store": "官方商店",
        "Released": "发行日期",
        "Language": "语言",
        "Uploaded by": "上传者",
        "TRAILER": "视频预览",
        "Metadata Hub": "元数据中心",
        "Developer": "开发者",
        "Support the Developers": "支持开发者",
        "Share with Friends": "分享给朋友",
        "More by": "更多来自",
        "Similar Games": "相似游戏",
        "DOWNLOAD": "下载",
        "Base Game": "基础游戏",
        "Archive password": "解压密码",
        "Use this password when extracting RAR / 7z archives from our downloads.": "从Kimochi Gaming下载的文件需要使用此密码进行解压",
        "GUIDES": "指南",
        "Download, extract and play": "下载、解压并游玩",
        "System Requirements": "最低配置要求",
        "OS:": "操作系统: ",
        "Processor:": "处理器: ",
        "Memory:": "内存: ",
        "Graphics:": "显卡: ",
        "DirectX:": "DirectX: ",
        "Storage:": "存储: ",

        //盘类型
        "Google Drive": "Google Drive",
        "Mega": "Mega",
        "MediaFire": "MediaFire",
        "OneDrive": "OneDrive",
        "Dropbox": "Dropbox",
        "Zippyshare": "Zippyshare",
        "Yandex Disk": "Yandex Disk",
        "WeTransfer": "WeTransfer",
        "SendSpace": "SendSpace",
        "FileFactory": "FileFactory",
        "Solidfiles": "Solidfiles",
        "AnonFiles": "AnonFiles",
        "GoFile": "GoFile",
        "Uptobox": "Uptobox",
        "TusFiles": "TusFiles",
        "BayFiles": "BayFiles",
        "Pixeldrain": "Pixeldrain",

        //语言
        "English": "英语",
        "Japanese": "日语",
        "Chinese": "中文",
        "Korean": "韩语",
        "Spanish": "西班牙语",
        "French": "法语",
        "German": "德语",
        "Russian": "俄语",
        "Portuguese": "葡萄牙语",
        "Italian": "意大利语",
        "Dutch": "荷兰语",
        "Polish": "波兰语",
        "Turkish": "土耳其语",
        "Vietnamese": "越南语",
        "Indonesian": "印尼语",
        "Thai": "泰语",
        "Arabic": "阿拉伯语",
        "Hebrew": "希伯来语",
        // ... 可以继续添加其他语言
    };

    // 标签汉化字典
    const tagDict = {
        "horror": "恐怖",
        "Fantasy": "奇幻",
        "Sports": "运动/体育",
        "Comedy": "喜剧",
        "Slice of Life / Daily Living": "日常/生活",
        "Gag / Joke": "搞笑",
        "Serious": "严肃/沉重",
        "Depression / Depressing": "致郁",
        "Emotional / Touching": "感动",
        "Epic / Historical": "历史/古风",
        "Anime": "动画",
        "3D Works": "3D作品",
        "Dot / Pixel": "像素",
        "RPG Maker": "RPG制作大师",
        "Pure Love": "纯爱",
        "Lovey Dovey / Sweet Love": "亲热/甜蜜",
        "Lovey Dovey/Sweet Love": "亲热/甜蜜",
        "Femdom": "女性主导",
        "Woman's Viewpoint": "女性视角",
        "Female Protagonist": "女主人公",
        "Male Protagonist": "男主人公",
        "Bisexual": "双性恋",
        "Lesbian": "蕾丝/女同",
        "Yuri / Girls Love": "百合",
        "Gay": "GAY/男同",
        "Boys Love": "BL",
        "Ephebophilia / Shonen-ai": "耽美",
        "Younger Sister": "妹妹",
        "Oneesan / Older Girl / Older Sister": "姐姐",
        "Elder Girl x Younger Boy": "姐姐×正太",
        "Relative Matter": "骨科",
        "Daughter": "女儿",
        "Father": "父亲",
        "Childhood Friend": "青梅竹马",
        "Classmate / Colleague": "同学/同事",
        "Student": "学生",
        "Boss": "上司",
        "Office / Workplace": "办公室/职场",
        "Company President": "社长",
        "Married Woman": "人妻",
        "Shrine Maiden": "巫女",
        "Sister / Nun": "修女",
        "Doctor": "医生",
        "Butler": "管家/执事",
        "Entertainer / Idol / Model": "艺人/偶像/模特",
        "Delinquent / Hoodlum": "不良/混混",
        "Crime/Gangster": "黑社会/黑手党",
        "Master and Servant": "主从/主仆",
        "Servant": "奴隶",
        "Slave": "奴仆",
        "Age Disparity": "年龄差",
        "Body Size Disparity": "体型差",
        "Girl": "少女",
        "Petite": "萝",
        "L*li": "萝莉",
        "Petite Baba": "萝老太婆",
        "Virgin Female": "处女",
        "Virgin Male": "童贞/处男",
        "Bitch / Slut": "婊子",
        "Naughty / Lewd": "淫乱",
        "Mesugaki": "雌小鬼",
        "msgk": "雌小鬼",
        "Boyish Girl": "男性自称少女/仆娘",
        "Otoko no ko": "伪娘",
        "Futanari/Hermaphrodite": "扶她",
        "Queen / Princess": "女王/公主",
        "Gal": "辣妹",
        "Submissive Man": "男性受",
        "Younger (Dominant)": "年下攻",
        "Cool Attitude (Dominant)": "高冷攻",
        "Cool Attitude (Submissive)": "高冷受",
        "Diligent (Submissive)": "健气受",
        "Mischievous (Submissive)": "调皮受",
        "Plain / Nonpersisting": "平淡/冷淡",
        "Expressionless / Deadpan": "无表情",
        "Apron": "围裙",
        "Army Uniform": "军服",
        "Sailor-style Uniform": "水手服",
        "School Swimwear": "死库水/校园泳装",
        "Swimwear": "泳装",
        "Bloomers / Buruma": "校园体操服",
        "Bunny Girl": "兔女郎",
        "Knee Socks": "过膝袜",
        "Clothes Changing / Dress up": "换装",
        "Cosplay": "角色扮演",
        "Clothed": "着衣/穿衣",
        "Cross-dressing": "异装癖",
        "Cross-dressing as a Woman": "女装",
        "Black hair": "黑发",
        "Long Hair": "长发",
        "Blonde Hair": "金发",
        "Twin Tail": "双马尾",
        "Animal Ears": "兽耳",
        "Tiny Breasts": "贫乳/微乳",
        "Breasts": "胸部/奶子",
        "Big Breasts": "巨乳/爆乳",
        "Voluptuous / Plump": "丰满",
        "Buttocks": "臀部/屁股",
        "No Pubic Hair": "白虎/无阴毛",
        "Pubic Hair / Armpit Hair": "阴毛/腋毛",
        "Angel / Demon": "天使/恶魔",
        "Succubus / Incubus": "魅魔/淫魔",
        "Nonhuman / Monster Girl": "人外娘/魔物娘",
        "Youkai": "妖怪",
        "Elf / Fairy": "精灵/妖精",
        "Robot / Android": "机器人/仿生人",
        "Tentacle": "触手",
        "Post-apocalyptic": "后末日",
        "Pregnancy / Impregnation": "怀孕",
        "Pregnant Woman": "西瓜肚/孕妇",
        "Childbirth": "分娩",
        "Sex Change / Transsexual": "性转换(TS)",
        "Feminization": "女性化",
        "Fem-corruption": "雌堕",
        "Body Modification": "人体改造",
        "Womb Tattoo / Lust Crest": "淫纹",
        "Madness": "疯狂",
        "Ryona / Brutal": "虐待/Ryona",
        "Bizarre / Eccentric": "猎奇",
        "Blood / Bleeding": "血液/流血",
        "Abnormal / Perverted": "特殊癖好/变态",
        "Vore": "丸吞",
        "Gut Punch": "腹击",
        "spanking": "打屁股",
        "Cuckoldry (Netorare)": " 被NTR(苦主视角)",
        "Cuckoldry (Netori)": " NTR(黄毛视角)",
        "Cuckoldry (Netorase)": "故意被NTR/绿奴",
        "BSS/Thwarted Love": "BSS/暗恋被抢",
        "Cheating / Adultery": "出轨",
        "Pleasure Corruption": "沉迷快乐/快乐堕落",
        "Corrupted Morals": "恶堕",
        "Decadent / Immoral": "颓废/背德",
        "Ordered / Compelled": "命令/强迫",
        "Dub-con": "强奸",
        "Violation": "羞辱",
        "Shame / Humiliation": "羞耻/耻辱",
        "Captured": "限制自由",
        "Restraint": "拘束",
        "Bondage": "拘束服",
        "Sexual Bondage": "捆绑/紧缚",
        "Collar / Chain / Restraints": "项圈/锁链/拘束道具",
        "Discipline": "教育",
        "Drugs": "药物",
        "Trance / Suggestion": "催眠/暗示",
        "Sleep Sex": " 睡奸/迷奸",
        "Sensory Deprivation": "感官屏蔽",
        "Harem": "后宫",
        "Cohabitation": "婚前同居",
        "Living Together": "同居",
        "School / Academy": "学校/学园",
        "Office / Workplace": "办公室/职场",
        "Sex Industry / Soapland": "风俗/泡泡浴",
        "Outdoor Exposure": "露出",
        "Chirarism (Peeping)": "走光",
        "Upskirt / Spy Photo": "偷拍/盗摄",
        "Tease": "挑逗/调情",
        "Coquettish / Seduction": "色诱",
        "Touch / Feel": "触摸/抚摸",
        "Ear Licking": "舔耳",
        "Ear Cleaning": "掏耳",
        "Cross-section View": "断面图",
        "VISUAL FEED": "画面预览",
        "Ahegao / Gapeface": " 高潮脸/阿黑颜",
        "Vulgar Moans": "淫叫",
        "Dirty Talk": "淫语",
        "No Penetrative Sex": "无插入/无正戏",
        "Consensual Sex": "通奸/和奸",
        "No Reverse": "无逆转",
        "Reverse R": "反向奸",
        "Battle Fuck": "战斗H",
        "Interspecies Sex": "异种X",
        "Beast Buddies": " 兽X",
        "Orgy Sex": "多P/乱交",
        "Anal": "肛交",
        "Blowjob / Fellatio": "口交",
        "irrumatio": "深喉口交(男主导)",
        "Breast Sex": "乳交",
        "Foot Job": "足交",
        "Masturbation": "自慰",
        "Nipple Teasing": "乳头刺激",
        "Clit Teasing": "阴蒂刺激",
        "Toys": "玩具",
        "Machine Sex": "机械奸",
        "Erotic Sexual Denial": "放置Play",
        "Enema": "灌肠",
        "Egg laying": "产卵",
        "Squirting / Gushing": "内射/中出",
        "Internal Cumshot": "潮吹",
        "Bukkake": "外射",
        "Facial Cumshot": "颜射",
        "Oral Cumshot": "口内射精/口爆",
        "Cum Swallowing": "吞精/食精",
        "Large Cock": "巨根",
        "Lots of White Cream / Juices": "大量汁/液",
        "Breast Milk": "母乳",
        "Urination / Peeing": "放尿/小便",
        "Peeing Oneself": "失禁",
        "Successive Orgasms": "连续高潮",
        "Fighting / Martial Arts": "格斗",
        "Cat Fight": "女子搏斗",
        "Wrestler / Fighter": "摔角手/格斗家",
        "Very Mean": "造孽",
        "Healing": "治愈",
        "Totally Happy": "皆大欢喜",
        "Compilation": "总集篇",
        "Fetish": "癖好/性趣",
        "Softcore Eroticism": "软色情",
        "Female Homosexuality": "女同",
        "Female Teacher": "女教师",
        "BL": "BL",
        "First Experience": "初体验",
        "Fisting / Fist Sex": "拳交",
        "Forced Oral / Irrumatio": "强制口交(男主导)",
        "Foreign Objects": "道具/异物",
        "Foreigner": "外国人",
        "Garter": "吊带袜",
        "Futanari / Hermaphrodite": "扶她",
        "Ghost": "幽灵",
        "Glasses": "眼镜",
        "Gothic Lolita": "哥特萝莉",
        "Guided Masturbation": "自慰辅助",
        "Guro / Scat": "虐待/肠内",
        "Hand Job": "手交",
        "Heartwarming": "温馨",
        "Hot / Burning": "燃",
        "Intellectual": "知识分子",
        "Jock / Athlete / Sports": "体育系/运动员",
        "Junior / Senior High School": "初高中",
        "Kemo/Animalization/ Transfur": "野兽/兽化",
        "Leggings": "紧身裤",
        "Kimono / Japanese Clothes": "浴衣/和服",
        "Kunoichi (Ninja Girl)": "女忍者",
        "Legs": "腿/足",
        "Leotard": "紧身衣/舞蹈服",
        "Magic": "魔法",
        "Magical Girl": "魔法少女",
        "Magician / Witch": "魔法师/魔女",
        "Maid": "女仆",
        "Male Homosexuality": "男同",
        "Married Person": "已婚者",
        "Mature Woman / MILF": "熟女",
        "Middle Aged (Submissive)": "大叔受",
        "Chubby": "肉感",
        "Lotion": "润滑液",
        "Lordly Manner (Dominant)": "帝王攻",
        "Lovers": "情侣",
        "Junior / Senior": "初中生/高中生",
        "Love Comedy / Romcom": "恋爱喜剧",
        "Military": "军事",
        "Milking": "挤奶",
        "Moe": "萌",
        "Mother": "母亲",
        "Multi/Monster/Mega Breasts": "复乳/怪乳/超乳",
        "muscular": "肌肉",
        "Mystery": "推理",
        "Natural Airhead": "天然呆",
        "Nekomimi (Cat Ears)": "猫耳",
        "Nipple Penetration": "乳头交",
        "Nipples / Areola": "乳头/乳晕",
        "Nurse": "护士",
        "Nurse Uniform": "护士服",
        "Occult": "超自然现象",
        "office lady": "OL",
        "Older Brother": "哥哥",
        "Older Stepsister": "义姐",
        "Outdoor": "室外",
        "Outdoor Sex": "野外/野战",
        "Panties": "内裤",
        "PE Uniform": "体操服",
        "Personification": "拟人化",
        "Phimosis": "包茎",
        "Piercings / Accessories": "耳环/装饰品",
        "Playboy": "海王/花花公子",
        "Police / Detective": "警察/刑警",
        "Ponytail": "单马尾",
        "Possession": "附身",
        "Puni": "娃娃脸/婴儿肥",
        "Prostitution / Paid Dating": "卖春/援交",
        "Rape": "强奸",
        "Real Elder Sister": "亲姐姐",
        "Reverse Anal": "逆肛交",
        "Reverse Cuckoldry": "逆NTR",
        "Rubber": "胶衣",
        "Salaried Worker": "白领/上班族",
        "Scatology": "粪便/排泄物",
        "School Nurse": "保健医生/校医",
        "Seductive (Submissive)": "诱受",
        "Shemale": "人妖",
        "Short hair": "短发",
        "Short Skirt": "迷你裙",
        "Shota": "正太",
        "Sisters": "姐妹",
        "Slender": "苗条",
        "SM": "SM",
        "Socks": "袜子",
        "Stepmother": "义母",
        "Stockings": "丝袜",
        "Stretch / Expansion": "扩张",
        "Strong Willed (Submissive)": "强气受",
        "Suit": "西装",
        "Boy": "正太",
        "Zombie": "僵尸/丧尸",
        "Younger Stepsister": "义妹",
        "Younger Brother": "弟弟",
        "Younger Boy x Elder Girl": "姐姐×正太",
        "Widow": "寡妇",
        "Violence": "暴力",
        "VTuber": "VTuber",
        "Verbal Humiliation": "语言刺激",
        "Whip / Rope / Candle": "鞭子/绳子/蜡烛",
        "Warrior": "战士",
        "War / Battlefield": "战场",
        "Waitress": "侍女",
        "Whispering": "低语",
        "Vanilla Sex": "正常玩法",
        "Urethra": "尿道",
        "Upper-class Girl": "大小姐",
        "Uniform": "制服",
        "Train": "电车",
        "Secret Fondling": "偷偷摸摸",
        "Uncle / Stepfather": "叔父/义父",
        "Twins": "双胞胎",
        "Tsurupeta": "平胸/飞机场",
        "Tsundere": "傲娇",
        "Transforming Girl": "变身女主",
        "Touhou Project": "东方Project",
        "Tomboy": "假小子",
        "Time Stopping": "时间停止",
        "Underwear": "内衣",
        "Teacher": "教师",
        "Tanned Skin / Suntan": "褐皮/晒痕",
        "Teens Love": "TL",
        "Tall Person": "高挑",
        "Suspense": "悬疑",
        "Supersize": "巨大化",
        "Tickling": "挠痒痒",
    };


    // ================== 2. 界面汉化功能 ==================

    // 动态匹配替换规则
    function dynamicTranslate(text) {
        const monthsMap = {
            jan: '1月', janua: '1月', feb: '2月', febru: '2月',
            mar: '3月', march: '3月', apr: '4月', april: '4月',
            may: '5月', jun: '6月', june: '6月', jul: '7月', july: '7月',
            aug: '8月', augus: '8月', sep: '9月', sept: '9月', septe: '9月',
            oct: '10月', octob: '10月', nov: '11月', novem: '11月', dec: '12月', decem: '12月'
        };

        const monthsRegexStr = "\\b(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\\b";

        function getMonthChinese(monthStr) {
            let key = monthStr.toLowerCase().replace('.', '').substring(0, 4);
            if (monthsMap[key]) return monthsMap[key];
            key = key.substring(0, 3);
            return monthsMap[key] || (monthStr + '月');
        }

        // 处理带有年份的日期
        let dateWithYearRegex = new RegExp(monthsRegexStr + '(?:\\.)?\\s+(\\d{1,2}),?\\s+(\\d{4})', 'i');
        if (dateWithYearRegex.test(text)) {
            text = text.replace(dateWithYearRegex, (match, m, d, y) => {
                return `${y}年${getMonthChinese(m)}${parseInt(d)}日`;
            });
        }

        // 处理不带年份的日期
        let dateRegex = new RegExp('(?:[A-Za-z]{3,10},\\s+)?' + monthsRegexStr + '(?:\\.)?\\s+(\\d{1,2})\\b', 'i');
        if (dateRegex.test(text)) {
            text = text.replace(dateRegex, (match, m, d) => {
                if (match.toLowerCase().includes('view') || match.toLowerCase().includes('game')) return match;
                return `${getMonthChinese(m)}${parseInt(d)}日`;
            });
        }

        // 浏览量、游戏数量转换
        text = text.replace(/(•\s*)([\d.]+K?)\s+VIEWS?\s+TODAY/i, '$1今日 $2 浏览量');
        text = text.replace(/(\d+)\s+games?/i, '$1 个游戏');

        // 累计浏览量转换
        let viewsRegex = /(\d+(?:\.\d+)?K?)\s+views?/i;
        if (viewsRegex.test(text) && !text.includes('今日')) {
            text = text.replace(viewsRegex, '$1 次浏览');
        }

        return text;
    }

    // 部分包含替换逻辑
    function matchAndTranslate(text) {
        for (let key in translationDict) {
            if (text.includes(key) && key.length > 3) {
                return text.replace(key, translationDict[key]);
            }
        }
        return null;
    }

    // 获取并缓存页面中需要排除的黑名单文本(H1和H3)
    function getHeaderTexts() {
        const selector = [
            'h1.text-4xl.md\\:text-5xl.lg\\:text-6xl.font-headline.font-black.tracking-tighter.uppercase.leading-\\[0\\.95\\].text-on-surface',
            'h3.font-headline.font-bold.text-sm.md\\:text-base.leading-snug.line-clamp-2.text-on-surface.group-hover\\:text-primary.transition-colors'
        ].join(',');

        return new Set(
            Array.from(document.querySelectorAll(selector))
                .map(el => el.textContent.trim())
                .filter(text => text.length > 0)
        );
    }

    // 替换节点文本的核心函数
    function translateNode(node, blacklistedTexts) {
        if (!node) return;

        // 核心过滤逻辑 (包含新增的 searctags)
        const skipSelector = [
            'h1.text-4xl.md\\:text-5xl.lg\\:text-6xl.font-headline.font-black.tracking-tighter.uppercase.leading-\\[0\\.95\\].text-on-surface',
            'h3.font-headline.font-bold.text-sm.md\\:text-base.leading-snug.line-clamp-2.text-on-surface.group-hover\\:text-primary.transition-colors',
            '.searctags',            // 跳过标签候选词的英文部分
            '.search-suggest-panel'  // 跳过整个标签面板
        ].join(',');

        const currentElement = node.nodeType === Node.ELEMENT_NODE ? node : node.parentElement;

        if (currentElement) {
            // 规则 1:匹配跳过列表自身或父级
            if (currentElement.matches(skipSelector) || (currentElement.parentElement && currentElement.parentElement.matches(skipSelector))) {
                return;
            }

            // 规则 2:P 标签内容去重跳过
            const pElement = currentElement.closest('p');
            if (pElement && blacklistedTexts.has(pElement.textContent.trim())) {
                return;
            }
        }

        // 1. 处理纯文本节点
        if (node.nodeType === Node.TEXT_NODE) {
            let text = node.nodeValue.trim();
            if (!text) return;

            if (translationDict[text]) {
                node.nodeValue = translationDict[text];
            } else {
                let translated = matchAndTranslate(text);
                if (translated) {
                    node.nodeValue = translated;
                } else {
                    let dynamicText = dynamicTranslate(node.nodeValue);
                    if (dynamicText !== node.nodeValue) {
                        node.nodeValue = dynamicText;
                    }
                }
            }
        }
        // 2. 处理带有文本属性的元素节点
        else if (node.nodeType === Node.ELEMENT_NODE) {
            if (node.placeholder && translationDict[node.placeholder.trim()]) {
                node.placeholder = translationDict[node.placeholder.trim()];
            }
            for (let child of node.childNodes) {
                translateNode(child, blacklistedTexts);
            }
        }
    }

    // 全局扫描翻译入口
    function translatePage() {
        const blacklistedTexts = getHeaderTexts(); // 每次大范围翻译前获取一次,节省算力
        translateNode(document.body, blacklistedTexts);
    }


    // ================== 3. 标签搜索建议功能 ==================
    // 注意:以下为专属标签搜索建议模块

    // 核心样式更新
    const style = document.createElement('style');
    style.innerHTML = `
        .custom-target-p {
            display: inline-flex !important;
            align-items: center !important;
            flex-wrap: nowrap !important;
            width: 100% !important;
        }

        .search-suggest-panel {
            display: inline-flex;
            flex-direction: row;
            align-items: center;
            background-color: #252020;
            border-left: 1px solid #4a3b3a;
            border-right: 1px solid #4a3b3a;
            border-top: none;
            border-bottom: none;
            height: 100%;
            box-sizing: border-box;
            margin-left: 12px;
            width: max-content;
            flex-shrink: 1;
            min-width: 0;
            overflow-x: auto;
            overflow-y: hidden;
            z-index: 99999;
            padding: 0 4px;
            box-shadow: 0px 2px 6px rgba(0,0,0,0.4);
            color: #e0d0cc;
            font-family: sans-serif;
            -ms-overflow-style: none;
            scrollbar-width: none;
        }
        .search-suggest-panel::-webkit-scrollbar {
            display: none;
        }
        .search-suggest-item {
            padding: 0 8px;
            height: 100%;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 5px;
            white-space: nowrap;
            border-radius: 4px;
            font-size: 13px;
            transition: background 0.2s;
        }
        .search-suggest-item:hover {
            background-color: #3d302f;
            color: #ffb4ab;
        }
        /* 独立的 searctags 英文标签容器样式 */
        .search-suggest-item .searctags {
            font-size: 0.8em;
            color: #a08c8a;
            background: #1e1b1b;
            padding: 1px 4px;
            border-radius: 3px;
        }
    `;
    document.head.appendChild(style);

    function initDropdownLogic(inputEl, targetContainer) {
        if (inputEl.dataset.suggestBound) return;
        inputEl.dataset.suggestBound = "true";

        const targetP = targetContainer.querySelector('div > div:nth-of-type(2) > p');
        if (!targetP) return;

        targetP.classList.add('custom-target-p');

        const suggestPanel = document.createElement('span');
        suggestPanel.className = 'search-suggest-panel';
        suggestPanel.style.display = 'none';
        targetP.appendChild(suggestPanel);

        inputEl.addEventListener('input', function() {
            const query = this.value.trim().toLowerCase();

            if (!query) {
                suggestPanel.style.display = 'none';
                return;
            }

            // 使用专用的 tagDict 进行搜索
            const matches = Object.entries(tagDict).filter(([eng, chn]) => {
                return chn.toLowerCase().includes(query) || eng.toLowerCase().includes(query);
            });

            if (matches.length > 0) {
                suggestPanel.style.display = 'inline-flex';
                suggestPanel.innerHTML = '';

                matches.forEach(([eng, chn]) => {
                    const item = document.createElement('div');
                    item.className = 'search-suggest-item';
                    // 英文部分包裹在 searctags 容器中
                    item.innerHTML = `<span>${chn}</span><span class="searctags">${eng}</span>`;

                    item.addEventListener('mousedown', function(e) {
                        e.preventDefault();
                        e.stopPropagation();

                        inputEl.value = eng;
                        suggestPanel.style.display = 'none';
                        inputEl.focus();

                        inputEl.dispatchEvent(new Event('input', { bubbles: true }));
                        inputEl.dispatchEvent(new Event('change', { bubbles: true }));
                    });
                    suggestPanel.appendChild(item);
                });
            } else {
                suggestPanel.style.display = 'none';
            }
        });

        document.addEventListener('click', function(e) {
            if (e.target !== inputEl && !suggestPanel.contains(e.target)) {
                suggestPanel.style.display = 'none';
            }
        });
    }

    function findAndBindInput() {
        const targetContainers = document.querySelectorAll('div[data-tax="post_tag"]');
        targetContainers.forEach(container => {
            const input = container.querySelector('input[type="text"], input[type="search"], input:not([type])');
            if (input) {
                initDropdownLogic(input, container);
            }
        });
    }


    // ================== 4. 自动下载与全局初始化 ==================

    // 跳过下载页等待
    function checkDownload() {
        const downloadBtn = document.getElementById('downloadBtn');
        if (downloadBtn && downloadBtn.href) {
            const targetUrl = downloadBtn.href;
            if (targetUrl.startsWith('http')) {
                console.log('已找到下载链接,正在跳转...', targetUrl);
                window.location.href = targetUrl;
            }
        }
    }

    // 统一使用一个 MutationObserver 处理动态元素(优化性能)
    const observer = new MutationObserver((mutations) => {
        let hasNewNodes = false;

        for (let mutation of mutations) {
            if (mutation.addedNodes.length > 0) {
                hasNewNodes = true;
                break;
            }
        }

        // 只有在真的添加了新节点时才执行遍历和翻译
        if (hasNewNodes) {
            const blacklistedTexts = getHeaderTexts();
            for (let mutation of mutations) {
                for (let node of mutation.addedNodes) {
                    translateNode(node, blacklistedTexts);
                }
            }
            findAndBindInput(); // 重新检查并绑定输入框
        }
    });

    // 页面初始化加载
    document.addEventListener('DOMContentLoaded', () => {
        translatePage();
        findAndBindInput();
        checkDownload();

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    });

    // 针对高级异步渲染的兜底定时器
    window.addEventListener('load', () => {
        translatePage();
        findAndBindInput();
    });

})();