提供对 Kimochi Gaming 的界面汉化、搜索标签汉化辅助以及一些功能
// ==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();
});
})();