// ==UserScript== // @name AO3 汉化插件 // @namespace https://github.com/V-Lipset/ao3-chinese // @description 中文化 AO3 界面,可调用 AI 实现简介、注释、评论以及全文翻译。 // @version 1.3.1-2025-08-06 // @author V-Lipset // @license GPL-3.0 // @match https://archiveofourown.org/* // @icon https://raw.githubusercontent.com/V-Lipset/ao3-chinese/main/assets/icon.png // @supportURL https://github.com/V-Lipset/ao3-chinese/issues // @connect raw.githubusercontent.com // @connect api.together.xyz // @connect www.codegeneration.ai // @connect open.bigmodel.cn // @connect api.deepseek.com // @connect generativelanguage.googleapis.com // @run-at document-start // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_notification // @downloadURL none // ==/UserScript== (function (window, document, undefined) { 'use strict'; /****************** 全局配置区 ******************/ const FeatureSet = { enable_RegExp: GM_getValue('enable_RegExp', true), enable_transDesc: GM_getValue('enable_transDesc', false), }; // 翻译指令 const sharedSystemPrompt = `You are a professional translator fluent in Simplified Chinese (简体中文), with particular expertise in translating web novels and online fanfiction. Your task is to translate a numbered list of text segments provided by the user. These segments can be anything from full paragraphs to single phrases or words. For each numbered item, you will follow an internal three-stage strategy to produce the final, polished translation. ### Internal Translation Strategy (for each item): 1. **Stage 1 (Internal Thought Process):** Produce a literal, word-for-word translation of the English content. 2. **Stage 2 (Internal Thought Process):** Based on the literal translation, identify any phrasing that is unnatural or does not flow well in Chinese. 3. **Stage 3 (Final Output):** Produce a polished, idiomatic translation that fully preserves the original meaning, tone, cultural nuances, and any specialized fandom terminology. The final translation must be natural-sounding, readable, and conform to standard Chinese usage. ### CRITICAL OUTPUT INSTRUCTIONS: - Your entire response MUST consist of *only* the polished Chinese translation from Stage 3, formatted as a numbered list that exactly matches the input's numbering. - Do NOT include any stage numbers, headers (e.g., "Polished Translation"), notes, or explanations in your final output. - **HTML Tag Preservation:** If an item contains HTML tags (e.g., \`\`, \`\`), you MUST preserve these tags exactly as they are in the original, including their positions around the translated text. - **Untranslatable Content:** If an item is a separator, a meaningless symbol, or otherwise untranslatable, you MUST return the original item exactly as it is, preserving its number. ### Example Input: 1. This is the first sentence. 2. --- 3. This is the third sentence. ### Example Output: 1. 这是第一个句子。 2. --- 3. 这是第三个句子。 `; const deepseekReasonerSystemPrompt = `You are a professional translator fluent in Simplified Chinese (简体中文). Your task is to translate a numbered list of text segments. ### CRITICAL OUTPUT FORMATTING: - Your response MUST ONLY contain the final Chinese translations. - The output MUST be a numbered list that exactly matches the input's numbering. - DO NOT include the original English text, notes, headers, or any other explanations. - **HTML Tag Preservation:** If an item contains HTML tags (e.g., \`\`, \`\`), you MUST preserve these tags exactly as they are in the original, including their positions around the translated text. - If a numbered item is a separator, you MUST return it unchanged. ### Example Input: 1. This is the first sentence. 2. --- 3. This is the third sentence. ### Example Output: 1. 这是第一个句子。 2. --- 3. 这是第三个句子。`; const createRequestData = (model, systemPrompt, paragraphs) => { const numberedText = paragraphs .map((p, i) => `${i + 1}. ${p.innerHTML}`) .join('\n\n'); return { model: model, messages: [ { "role": "system", "content": systemPrompt }, { "role": "user", "content": `Translate the following numbered list to Simplified Chinese(简体中文):\n\n${numberedText}` } ], stream: false, temperature: 0, }; }; const CONFIG = { LANG: 'zh-CN', PAGE_MAP: { 'archiveofourown.org': 'ao3' }, SPECIAL_SITES: [], OBSERVER_CONFIG: { childList: true, subtree: true, characterData: true, attributeFilter: ['value', 'placeholder', 'aria-label', 'data-confirm', 'title'] }, // 文本分块与请求限流的默认配置 CHUNK_SIZE: 1200, PARAGRAPH_LIMIT: 5, REQUEST_DELAY: 200, // 特定模型专属请求限流配置 MODEL_SPECIFIC_LIMITS: { 'gemini-2.5-pro': { CHUNK_SIZE: 3000, PARAGRAPH_LIMIT: 10, }, 'deepseek-reasoner': { CHUNK_SIZE: 3000, PARAGRAPH_LIMIT: 10, } }, // 段落分隔 PARAGRAPH_SEPARATOR: '\n\n[|||]\n\n', ACTIVATION_URLS: [ 'https://www.codegeneration.ai/activate-v2', 'https://web.chatbox.ai/api/config' ], transEngine: GM_getValue('transEngine', 'together_ai'), TRANS_ENGINES: { together_ai: { name: 'Together AI', url_api: 'https://api.together.xyz/v1/chat/completions', method: 'POST', headers: { 'Content-Type': 'application/json', }, getRequestData: (paragraphs, glossary) => { const model = GM_getValue('together_ai_model', 'meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8'); return createRequestData( model, sharedSystemPrompt, paragraphs, glossary ); }, responseIdentifier: 'choices[0].message.content', }, chatglm_official: { name: 'ChatGLM', url_api: 'https://open.bigmodel.cn/api/paas/v4/chat/completions', method: 'POST', headers: { 'Content-Type': 'application/json' }, getRequestData: (paragraphs, glossary) => createRequestData( 'glm-4-flash-250414', sharedSystemPrompt, paragraphs, glossary ), responseIdentifier: 'choices[0].message.content', }, deepseek_ai: { name: 'DeepSeek', url_api: 'https://api.deepseek.com/chat/completions', method: 'POST', headers: { 'Content-Type': 'application/json' }, getRequestData: (paragraphs, glossary) => { const model = GM_getValue('deepseek_model', 'deepseek-chat'); const systemPrompt = (model === 'deepseek-reasoner') ? deepseekReasonerSystemPrompt : sharedSystemPrompt; return createRequestData( model, systemPrompt, paragraphs, glossary ); }, responseIdentifier: 'choices[0].message.content', }, google_ai: { name: 'Google AI', url_api: 'https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent', method: 'POST', headers: { 'Content-Type': 'application/json' }, getRequestData: (paragraphs) => { const numberedText = paragraphs .map((p, i) => `${i + 1}. ${p.innerHTML}`) .join('\n\n'); const userPrompt = `Translate the following numbered list to Simplified Chinese(简体中文):\n\n${numberedText}`; return { systemInstruction: { role: "user", parts: [{ text: sharedSystemPrompt }] }, contents: [{ role: "user", parts: [{ text: userPrompt }] }], generationConfig: { temperature: 0, candidateCount: 1, thinkingConfig: { thinkingBudget: -1 } } }; }, responseIdentifier: 'candidates[0].content.parts[0].text', }, } }; /****************** 词库区 (I18N) ******************/ const monthMap = { 'Jan': '1', 'Feb': '2', 'Mar': '3', 'Apr': '4', 'May': '5', 'Jun': '6', 'Jul': '7', 'Aug': '8', 'Sep': '9', 'Oct': '10', 'Nov': '11', 'Dec': '12' }; const I18N = { 'conf': { ignoreMutationSelectorPage: { '*': ['.userstuff .revised.at', '.kudos_count', '.bookmark_count', '.comment_count', '.hit_count', '.view_count'], 'works_show': ['.stats .hits', '.stats .kudos'], }, ignoreSelectorPage: { '*': ['script', 'style', 'noscript', 'iframe', 'canvas', 'video', 'audio', 'img', 'svg', 'pre', 'code', '.userstuff.workskin', '.workskin', 'div.autocomplete.dropdown ul', '.freeforms', '[data-translated-by-custom-function]'], 'works_show': ['.dropdown.actions-menu ul', '.userstuff'], 'admin_posts_show': ['.userstuff'], 'tag_sets_index': ['h2.heading', 'dl.stats'], 'tag_sets_new': ['h4.heading > label[for*="freeform"]'], 'faq_page': ['.userstuff'], 'wrangling_guidelines_page': ['.userstuff'], 'tos_page': ['#tos.userstuff'], 'content_policy_page': ['#content.userstuff'], 'privacy_policy_page': ['#privacy.userstuff'], 'dmca_policy_page': ['#DMCA.userstuff'], 'tos_faq_page': ['.admin.userstuff'], 'abuse_reports_new': ['.userstuff'], 'support_page': ['.userstuff'], 'known_issues_page': ['.admin.userstuff'], 'report_and_support_page': ['.userstuff'], }, characterDataPage: ['common', 'works_show', 'users_dashboard'], rePagePath: /^\/([a-zA-Z0-9_-]+)(?:\/([a-zA-Z0-9_-]+))?/ }, 'zh-CN': { 'title': { 'static': {}, 'regexp': [] }, 'public': { 'static': { // 基本 'Archive of Our Own': 'AO3 作品库', 'Fandoms': '同人圈', 'All Fandoms': '所有同人圈', 'Browse': '浏览', 'Works': '作品', 'Bookmarks': '书签', 'Tags': '标签', 'Collections': '合集', 'Search': '搜索', 'People': '用户', 'About': '关于', 'About Us': '关于我们', 'News': '新的动态', 'FAQ': '常见问题', 'Wrangling Guidelines': '整理指南', 'Donate or Volunteer': '捐赠/成为志愿者', 'Recent Works': '最近作品', 'Recent Bookmarks': '最近书签','Collections:': '合集:', 'Bookmarker\'s Tags:': '书签创建者的标签:', 'Bookmarker\'s Collections:': '书签创建者的合集:','Completed': '已完结', 'Bookmark Tags:': '书签标签:', 'Complete Work': '已完结', 'Work in Progress': '连载中', 'Public Bookmark': '公开书签', 'Most Popular': '最常用','Tag Sets': '标签集', 'Warnings': '预警', 'Find your favorites': '寻找喜欢的内容', // 登录 'Log In': '登录', 'Log in': '登录', 'Sign Up': '注册', 'User': '用户', 'Username or email:': '用户名或电子邮箱:', 'Password:': '密码:', 'Remember Me': '记住我', 'Remember me': '记住我', 'Forgot password?': '忘记密码?', 'Get an Invitation': '获取邀请', // 忘记密码 'Forgotten your password?': '忘记您的密码了吗?', 'If you\'ve forgotten your password, we can send instructions that will allow you to reset it. Please tell us the username or email address you used when you signed up for your Archive account.': '如果您忘记了密码,我们可以发送允许您重置密码的邮件说明。请输入您注册 AO3 帐户时使用的用户名或电子邮箱地址。', 'Reset Password': '重置密码', // 星期 'Mon': '周一', 'Tue': '周二', 'Wed': '周三', 'Thu': '周四', 'Fri': '周五', 'Sat': '周六', 'Sun': '周日', 'Monday': '星期一', 'Tuesday': '星期二', 'Wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六', 'Sunday': '星期日', // 月份 'Jan': '1月', 'Feb': '2月', 'Mar': '3月', 'Apr': '4月', 'May': '5月', 'Jun': '6月', 'Jul': '7月', 'Aug': '8月', 'Sep': '9月', 'Oct': '10月', 'Nov': '11月', 'Dec': '12月', 'January': '1月', 'February': '2月', 'March': '3月', 'April': '4月', 'May': '5月', 'June': '6月', 'July': '7月', 'August': '8月', 'September': '9月', 'October': '10月', 'November': '11月', 'December': '12月', // 页脚 'Footer': '页脚', 'Customize': '自定义', 'Default': '默认界面', 'Low Vision Default': '低视力默认界面', 'Reversi': 'Reversi 界面', 'Snow Blue': 'Snow Blue 界面', 'About the Archive': '关于作品库', 'Site Map': '站点地图', 'Diversity Statement': '多元化声明', 'Terms of Service': '服务条款', 'Content Policy': '内容政策', 'Privacy Policy': '隐私政策', 'DMCA Policy': 'DMCA 政策', 'TOS FAQ': '服务条款常见问题', '↑ Top': '↑ 回到顶部', 'Frequently Asked Questions': '常见问题', 'Contact Us': '联系我们', 'Policy Questions & Abuse Reports': '政策咨询与滥用举报', 'Technical Support & Feedback': '技术支持与反馈', 'Development': '开发', 'Known Issues': '已知问题', 'View License': '查看许可证', 'OTW': 'OTW', 'Organization for Transformative Works': '再创作组织', // 反馈 'Support and Feedback': '支持与反馈', 'FAQs & Tutorials': '常见问题与教程', 'Release Notes': '更新日志', // 动态 'News': '最新动态', 'All News': '全部动态', 'Published': '发布于', 'Comments': '评论', 'Read more...': '更多', 'Tag:': '标签:', 'Go': '确定', 'RSS Feed': 'RSS 订阅', 'Follow us': '关注我们', 'What\'s New': '新增内容', 'Enter Comment': '输入评论', 'Last Edited': '最后编辑', // 同人圈 'Anime & Manga': '动漫及漫画', 'Books & Literature': '书籍及文学', 'Cartoons & Comics & Graphic Novels': '卡通,漫画及图像小说', 'Celebrities & Real People': '明星及真人', 'Movies': '电影', 'Music & Bands': '音乐及乐队', 'Other Media': '其她媒体', 'Theater': '戏剧', 'TV Shows': '电视剧', 'Video Games': '电子游戏', 'Uncategorized Fandoms': '未分类的同人圈', '> Anime & Manga': ' > 动漫及漫画', '> Books & Literature': ' > 书籍及文学', '> Cartoons & Comics & Graphic Novels': ' > 卡通,漫画及图像小说', '> Celebrities & Real People': ' > 明星及真人', '> Movies': ' > 电影', '> Music & Bands': ' > 音乐及乐队', '> Other Media': ' > 其她媒体', '> Theater': ' > 戏剧', '> TV Shows': ' > 电视剧', '> Video Games': ' > 电子游戏', '> Uncategorized Fandoms': ' > 未分类的同人圈', // 个人中心 'My Dashboard': '个人中心', 'My Subscriptions': '订阅列表', 'My History': '历史记录', 'My Preferences': '偏好设置', 'Dashboard': '仪表盘', 'Preferences': '偏好设置', 'Skins': '界面', 'Works in Collections': '合集中的作品', 'Drafts': '草稿', 'Please note:': '注意:', 'Unposted drafts are only saved for a month from the day they are first created, and then deleted from the Archive.': '未发布的草稿自创建日起仅保留一个月,之后将被从 Archive 中删除。', 'Series': '系列', 'Bookmark External Work': '为外部作品创建书签', 'Sorry, there were no collections found.': '抱歉,未找到任何合集。', 'Manage Collection Items': '管理合集', 'New Collection': '新建合集', 'Works in Challenges/Collections': '参与挑战/合集的作品', 'Awaiting Collection Approval': '等待合集方审核', 'Awaiting User Approval': '等待用户确认', 'Rejected by Collection': '合集方已拒绝', 'Rejected by User': '用户已拒绝', 'Approved': '已通过', 'Nothing to review here!': '当前无待审内容!', 'Inbox': '消息中心', 'Filter by read': '按阅读状态筛选', 'Show all': '显示全部', 'Show unread': '显示未读', 'Show read': '显示已读', 'Filter by replied to': '按回复状态筛选', 'Show all': '显示全部', 'Show without replies': '显示未回复', 'Show replied to': '显示已回复', 'Sort by date': '按日期排序', 'Newest first': '最新优先', 'Oldest first': '最早优先', 'Filter': '筛选', 'Statistics': '数据统计', 'History': '历史记录', 'Full History': '全部历史记录', 'Marked for Later': '稍后阅读', 'Is it later already?': '到“稍后”了吗?', 'Some works you\'ve marked for later.': '这里是您标记为稍后阅读的作品。', 'Clear History': '清空历史记录', 'Delete from History': '从历史记录中删除', 'Subscriptions': '订阅列表', 'All Subscriptions': '全部订阅', 'Series Subscriptions': '系列订阅', 'User Subscriptions': '用户订阅', 'Work Subscriptions': '作品订阅', 'Delete All Subscriptions': '删除所有订阅', 'Sign-ups': '报名挑战', 'Assignments': '任务中心', 'My Assignments': '任务中心', 'Looking for prompts you claimed in a prompt meme? Try': '想查看您在“接梗挑战”中认领的同人梗?请前往', 'My Claims': '我的认领', 'Unfulfilled Claims': '未完成的认领', 'Fulfilled Claims': '已完成的认领', 'Looking for assignments you were given for a gift exchange? Try': '想查看您在赠文交换活动中被分配的任务?请前往', 'Claims': '我的认领', 'Related Works': '相关作品', 'Gifts': '赠文', 'Accepted Gifts': '已接受的赠文', 'Refused Gifts': '已拒绝的赠文', 'Choices': '用户选项', 'Pitch': '创作与发布', 'Catch': '互动与追踪', 'Switch': '活动与交换', 'My Works': '我的作品', 'My Series': '我的系列', 'My Bookmarks': '我的书签', 'My Collections': '我的合集', 'History': '历史记录', 'Log Out': '登出', 'Post New': '发布新作', 'Edit Works': '编辑作品', 'Subscribe': '订阅', 'Invitations': '邀请好友', 'My pseuds:': '笔名:', 'Pseuds': '笔名', 'I joined on:': '加入于:', 'My user ID is:': '用户ID:', 'Edit My Works': '编辑作品', 'Edit My Profile': '编辑资料', 'Set My Preferences': '设置偏好', 'Manage My Pseuds': '管理笔名', 'Delete My Account': '删除账号', 'Blocked Users': '已屏蔽用户', 'Muted Users': '已静音用户', 'Change Username': '修改用户名', 'Change Password': '修改密码', 'Change Email': '修改邮箱', 'Privacy': '隐私设置', 'Show my email address to other people.': '向其她人显示我的邮箱地址', 'Show my date of birth to other people.': '向其她人显示我的出生日期', 'Hide my work from search engines when possible.': '尽可能地对搜索引擎隐藏我的作品', 'Hide the share buttons on my work.': '隐藏我作品中的分享按钮', 'Allow others to invite me to be a co-creator.': '允许其她人邀请我成为共同创作者', 'Display': '显示设置', 'Show me adult content without checking.': '无需确认即可显示成人内容', 'Show the whole work by default.': '默认显示全文', 'Hide warnings (you can still choose to show them).': '隐藏内容预警(仍可手动显示)', 'Hide additional tags (you can still choose to show them).': '隐藏附加标签(仍可手动显示)', 'Hide work skins (you can still choose to show them).': '隐藏作品界面(仍可手动显示)', 'Your site skin': '您的站点界面', 'Public Site Skins': '公开站点界面', 'Your time zone': '您所在的时区', 'Browser page title format': '浏览页面标题格式', 'Turn off emails about comments.': '关闭评论邮件通知', 'Turn off messages to your inbox about comments.': '关闭评论消息通知', 'Turn off copies of your own comments.': '关闭自己评论的副本通知', 'Turn off emails about kudos.': '关闭点赞邮件通知', 'Do not allow guests to reply to my comments on news posts or other users\' works (you can still control the comment settings for your works separately).': '不允许游客回复我在动态帖或其她用户作品中的评论(仍可单独调整自己作品的评论权限)', 'Collections, Challenges and Gifts': '合集、挑战与赠文设置', 'Allow others to invite my works to collections.': '允许其她人将我的作品加入合集', 'Allow anyone to gift me works.': '允许任何人向我赠送作品', 'Turn off emails from collections.': '关闭来自合集的邮件通知', 'Turn off inbox messages from collections.': '关闭来自合集的消息通知', 'Turn off emails about gift works.': '关闭有关赠文的邮件通知', 'Misc': '其她偏好设置', 'Turn on History.': '启用历史记录', 'Turn the new user help banner back on.': '重新显示新用户帮助横幅', 'Turn off the banner showing on every page.': '关闭每个页面的提示横幅', 'Update': '确定', 'My Site Skins': '我的站点界面', 'Create Site Skin': '创建站点界面', 'A site skin lets you change the way the Archive is presented when you are logged in to your account. You can use work skins to customize the way your own works are shown to others.': '站点界面可让您在登录账户后更改 Archive 的呈现方式。您也可以使用作品皮肤来自定义其她人查看您作品时的展示样式。', 'My Site Skins': '我的站点界面', 'My Work Skins': '我的作品界面', 'Public Work Skins': '公开作品界面', 'Create Work Skin': '创建作品界面', 'No site skins here yet!': '还没有站点界面!', 'No work skins here yet!': '还没有作品界面!', 'Why not try making one?': '为什么不试着去创建一个呢?', 'Inbox': '收件箱', 'Subscribed Works': '已订阅作品', 'Subscribed Series': '已订阅系列', // 作品搜索页 'Work Info': '作品信息', 'Date Posted': '发布日期', 'Date Updated': '更新日期', 'Completion status': '完成状态', 'All works': '所有作品', 'Complete works only': '仅完结作品', 'Works in progress only': '仅连载作品', 'Include crossovers': '包含跨圈作品', 'Exclude crossovers': '排除跨圈作品', 'Only crossovers': '仅限跨圈作品', 'Single Chapter': '单个章节', 'Rating': '分级', 'Categories': '分类', 'Other': '其她', 'Work Stats': '作品统计', 'Hits': '点击', 'Kudos': '点赞', 'Sort by': '排序方式', 'Best Match': '最佳匹配', 'Sort direction': '排序方向', 'Descending': '降序', 'Ascending': '升序', 'Work Search': '作品搜索', 'Any Field': '任意字段', 'Date': '日期', 'Crossovers': '跨圈作品', 'Language': '语言', 'Characters': '角色', 'Relationships': '关系', 'Additional Tags': '附加标签', // 用户搜索页 'Search all fields': '搜索所有字段', 'Name': '名称', 'Fandom': '同人圈', 'Search People': '搜索用户', // 标签搜索页 'Tag name': '标签名称', 'Find tags wrangled to specific canonical fandoms.': '查找已整理至特定规范同人圈的标签。', 'Type': '类型', 'Fandom': '同人圈', 'Character': '角色', 'Relationship': '关系', 'Freeform': '自由标签', 'Any type': '任意类型', 'Wrangling status': '整理状态', 'Canonical': '规范', 'Non-canonical': '非规范', 'Synonymous': '同义', 'Canonical or synonymous': '规范或同义', 'Non-canonical and non-synonymous': '非规范且非同义', 'Any status': '任意状态', 'Name': '名称', 'Date Created': '创建日期', 'Uses': '使用次数', 'Search Tags': '搜索标签', 'Title': '标题', 'Author': '作者', 'Artist': '画师', 'Author/Artist': '作者/画师', 'People Search': '用户搜索', 'Tag Search': '标签搜索', 'Work Tags': '作品标签', // 浏览 'Expand Fandoms List': '展开同人圈列表', 'Collapse Fandoms List': '收起同人圈列表', 'Recent works': '最近作品', 'Recent bookmarks': '最近书签', 'Expand Works List': '展开作品列表', 'Collapse Works List': '收起作品列表', 'Expand Bookmarks List': '展开书签列表', 'Collapse Booksmarks List': '收起书签列表', // 作品 'Series': '系列', 'Language:': '语言:', 'Words:': '字数:', 'Chapters:': '章节:', 'Comments:': '评论:', 'Kudos:': '点赞:', 'Bookmarks:': '书签:', 'Hits:': '点击:', 'Post': '发布', 'New Work': '新作品', 'Import Work': '导入作品', 'Edit': '编辑', 'Update': '更新', 'Delete': '删除', 'Cancel': '取消', 'Save': '保存', 'Saved': '已保存', 'Submit': '提交', 'Filters': '筛选器', 'Sort By': '排序方式', 'Random': '随机', 'Creator': '创作者', 'Date Updated': '更新日期', 'Word Count': '字数统计', 'Summary': '简介', 'Notes': '注释', 'Work Text': '作品正文', 'Chapter Index': '章节索引', 'Full-page index': '整页索引', 'Entire Work': '完整作品', 'Next Chapter': '下一章', 'Previous Chapter': '上一章', 'kudos': ' 个赞', 'bookmark': ' 条书签', 'comment': ' 条评论', 'Published:': '发布于:', 'Completed:': '完结于:', 'Updated:': '更新于:', '← Previous': '← 上一页', 'Next →': '下一页 →', 'All fields are required. Your email address will not be published.': '所有字段均为必填。您的电子邮箱地址不会被公开。', 'Guest name': '访客名称', 'Guest email': '访客邮箱', 'Please enter your name.': '请输入您的名称', 'Please enter your email address.': '请输入您的电子邮箱地址', 'Hide Creator\'s Style': '隐藏创作者样式', 'Show Creator\'s Style': '显示创作者样式', 'top level comment': '主评论', 'Share Work': '分享作品', // 合集 'Collections in the Archive of Our Own': ' AO3 中的合集', 'Profile': '简介', 'Join': '加入', 'Leave': '退出', 'Open Challenges': '开放中的挑战', 'Open Collections': '开放中的合集', 'Closed Collections': '已截止的合集', 'Moderated Collections': '审核制合集', 'Unmoderated Collections': '非审核制合集', 'Unrevealed Collections': '未公开合集', 'Anonymous Collections': '匿名合集', 'Sort and Filter': '排序及筛选', 'Filter collections:': '筛选合集:', 'Filter by title or name': '按标题或名称筛选', 'Filter by fandom': '按同人圈筛选', 'Closed': '已截止', 'Yes': '是', 'No': '否', 'Either': '皆可', 'Collection Type': '合集类型', 'No Challenge': '无挑战', 'Any': '任意', 'Clear Filters': '清除筛选', // 书签 'Bookmark Search': '书签搜索', 'Edit Bookmark': '编辑书签', 'Start typing for suggestions!': '开始输入以获取建议', 'Searching...': '搜索中…', '(No suggestions found)': '未找到建议', 'Any field on work': '作品任意字段', 'Work tags': '作品标签', 'Type': '类型', 'Work': '作品', 'Work language': '作品语言', 'External Work': '外部作品', 'Date updated': '更新日期', 'Bookmark': '书签', 'Any field on bookmark': '书签任意字段', 'Bookmarker\'s tags': '书签创建者的标签', 'Bookmarker': '书签创建者', 'Bookmark type': '书签类型', 'Rec': '推荐', 'With notes': '含注释', 'Date Bookmarked': '书签创建日期', 'Date bookmarked': '书签创建日期', 'Search Bookmarks': '搜索书签', 'Search Results': '搜索结果', 'Edit Your Search': '修改搜索设置', 'Ratings': '分级', 'Include': '包括', 'Include Ratings': '包括分级', 'Other tags to include': '要包括的其她标签', 'Exclude': '排除', 'Other tags to exclude': '要排除的其她标签', 'More Options': '更多选项', 'Show only crossovers': '仅显示跨圈作品', 'Completion Status': '完成状态', 'Search within results': '在结果中搜索', 'Bookmarker\'s Tags': '书签创建者标签', 'Other work tags to include': '要包括的其她作品标签', 'Other bookmarker\'s tags to include': '要包括的其她书签创建者标签', 'Search bookmarker\'s tags and notes': '搜索书签创建者标签和注释', 'Other work tags to exclude': '要排除的其她作品标签', 'Other bookmarker\'s tags to exclude': '要排除的其她书签创建者标签', 'Bookmark types': '书签类型', 'Recs only': '仅推荐', 'Only bookmarks with notes': '仅含注释', 'All Bookmarks': '所有书签', 'Add To Collection': '添加到合集', 'Share': '分享', 'Private Bookmark': '私人书签', 'Your tags': '您的标签', 'The creator\'s tags are added automatically.': '创建者的标签会自动添加', 'Comma separated, 150 characters per tag': '以逗号分隔,每个标签最多 150 字符', 'Add to collections': '添加到合集', 'Private bookmark': '私人书签', 'Create': '创建', 'Bookmark was successfully deleted.': '书签已成功删除', 'Add Bookmark to collections': '将书签添加到合集', 'Collection name(s):': '合集名称:', 'collection name': '合集名称', 'Add': '添加', 'Back': '返回', 'Bookmark was successfully updated.': '书签已成功更新。', 'Share Bookmark': '分享书签', 'Close': '关闭', 'Bookmark Collections:': '书签合集:', // 系列 'Creators:': '创建者:', 'Creator:': '创建者:', 'Series Begun:': '系列开始于:', 'Series Updated:': '系列更新于:', 'Description:': '描述:', 'Notes:': '注释:', 'Stats:': '统计:', 'Works:': '作品:', 'Complete:': '完结:', // 语言 'Work Languages': '作品语言', 'Suggest a Language': '建议语言', // 界面 'You are now using the default Archive skin again!': '您已重新切换至 Archive 默认界面!', 'Revert to Default Skin': '恢复默认界面', 'Role:': '功能:', 'user': '用户', 'Media:': '媒体:', 'all': '全部', 'Condition:': '状态:', 'Normal': '正常', '(No Description Provided)': '(未提供描述)', 'Parent Skins': '母级界面', 'Use': '使用', 'Preview': '预览', 'Set For Session': '为当前会话设置', 'override': '覆盖', // 屏蔽与静音 'Block': '屏蔽', 'Unblock': '取消屏蔽', 'Mute': '静音', 'Unmute': '取消静音', 'Yes, Unmute User': '是的,取消静音', 'Yes, Mute User': '是的,静音用户', 'Yes, Unblock User': '是的,取消屏蔽', 'Yes, Block User': '是的,屏蔽用户', // 提示信息 'Follow the Archive on Twitter or Tumblr for status updates, and don\'t forget to check out the': '在 Twitter 或 Tumblr 上关注 Archive 以获取最新动态;同时别忘了查看', 'Organization for Transformative Works\' news outlets': ' 再创作组织 的动态发布渠道', 'for updates on our other projects!': ',了解我们其她项目的进展!', 'Your profile has been successfully updated': '您的个人资料已成功更新', 'We\'re sorry! Something went wrong.': '非常抱歉!操作未完成,请稍后重试。', 'Your preferences were successfully updated.': '您的偏好设置已成功更新。', 'Works and bookmarks listed here have been added to a collection but need approval from a collection moderator before they are listed in the collection.': '此处列出的作品和书签已添加至合集中,但需经合集管理员批准后才会在合集内显示。', 'Successfully logged out.': '已成功登出。', 'Successfully logged in.': '已成功登录。', 'Bookmark was successfully created. It should appear in bookmark listings within the next few minutes.': '书签已创建成功。它将在接下来的几分钟内出现在书签列表中。', 'Browse fandoms by media or favorite up to 20 tags to have them listed here!': '可按“媒介”浏览同人圈,或收藏最多 20 个标签,以便在这里显示!', 'You can search this page by pressing': '按', 'ctrl F': ' Ctrl + F ', 'cmd F': ' Cmd + F ,','': '', 'and typing in what you are looking for.': '输入关键词即可在本页搜索。', 'Sorry! We couldn\'t save this bookmark because:': '抱歉!我们无法保存此书签,因为', 'Pseud can\'t be blank': '笔名不能为空', 'The following challenges are currently open for sign-ups! Those closing soonest are at the top.': '以下挑战现已开放报名!即将截止的挑战排在最前面。', 'You currently have no works posted to the Archive. If you add some, you\'ll find information on this page about hits, kudos, comments, and bookmarks of your works.': '您当前没有任何已发布的作品。添加作品后,您可以在此页面查看作品的访问量、点赞、评论和书签情况。', 'Users can also see how many subscribers they have, but not the names of their subscribers or identifying information about other users who have viewed or downloaded their works.': '用户还可以查看自己的订阅者数量,但无法看到订阅者的姓名,也无法获取浏览或下载其作品的其她用户的任何身份信息。', 'This work could have adult content. If you continue, you have agreed that you are willing to see such content.': '此作品可能含有成人内容。若您选择“继续”,即表示您同意查看此类内容。', 'Yes, Continue': '是,继续', 'No, Go Back': '否,返回', 'Set your preferences now': '立即设置您的偏好', 'Work successfully deleted from your history.': '该作品已成功从您的历史记录中删除。', 'Your history is now cleared.': '您的历史记录已清除。', 'You are already signed in.': '您已登录。', 'There are no works or bookmarks under this name yet.': '此名称下尚无作品或书签。', 'Sorry, you don\'t have permission to access the page you were trying to reach. Please log in.': '抱歉,您无权访问目标页面。请先登录。', }, 'innerHTML_regexp': [ // 浏览 [ 'p', /^\s*These are some of the latest works posted to the Archive\. To find more works, choose a fandom<\/a> or try our advanced search<\/a>\.\s*(?:)?\s*$/s, '这里展示了一些最新发布的作品。要查看更多,请 选择一个同人圈尝试高级搜索 。' ], [ 'p', /^\s*These are some of the latest bookmarks created on the Archive\. To find more bookmarks,\s*choose a fandom<\/a>\s*or\s*try our advanced search<\/a>\.\s*(?:)?\s*$/s, '这里展示了一些最新创建的书签。要查看更多,请 选择一个同人圈尝试高级搜索 。' ], [ 'p', /^\s*These are some of the most popular tags used on the Archive\. To find more tags,\s*try our tag search<\/a>\.\s*$/s, '这里展示了一些最常用的标签。要查看更多,请 尝试标签搜索 。' ], [ 'h2.heading', /^\s*Chapter Index for\s+(.+?<\/a>)\s+by\s+()/s, '创建者:$1'], ['li', /^\s*Part (\d+<\/strong>) of ()/, '$2 第 $1 部分'], ['h2.heading', /^New bookmark for (.*?<\/a>)/, '为 $1 创建新书签'], ['h5.heading a', /^(\d+)\s+works?$/s, '$1 篇作品'], ['h5.heading a', /^(\d+)\s+recs?$/s, '$1 条推荐'], ['h2.heading', /^\s*Items\s+by\s+(.+?)\s+in\s+Collections\s*$/s, '$1 在合集中的作品'], ['dd a', /^([\d,]+)\s+works?$/s, '$1 篇作品'], ['h2.heading', /^\s*([\d,]+)\s+Works?\s*$/s, '$1 篇作品'], ['h2.heading', /^\s*([\d,]+)\s+Collections?\s*$/s, '$1 个合集'], [ 'dt', /(<\/a>)\s*\(Work\)\s+by\s*()\s*\(Series\)\s+by\s*(]*>/g, '(访问受限)' ], ['li.pseud ul a[href$="/pseuds"], li.pseud ul span.current', /^\s*All Pseuds\s*\((\d+)\)\s*$/s, '所有笔名 ($1)'], // 书签 ['h4.heading', /(\s*
  • hide their works, series, bookmarks, and comments from anyone else<\/li>[\s\S]*?

    \s*To prevent a user from commenting on your works or replying to your comments elsewhere on the site, visit your Blocked Users page<\/a>\.\s*<\/p>[\s\S]*?

    [\s\S]*?instructions for reverting to the default site skin<\/a>\.\s*<\/p>\s*$/s, `

    您确定要静音 $1 吗?静音用户后:

    • 她们的作品、系列、书签和评论将完全对您隐藏;不会留下空白空间、占位文本或其她任何提示

    静音用户不会:

    • 阻止您接收来自该用户的评论或订阅邮件
    • 将她们的内容隐藏给其她任何人

    如需阻止某用户在您的作品上发表评论或在站点其她地方回复您的评论,请访问 已屏蔽用户页面

    请注意,如果您未使用默认站点界面,静音功能可能无法正常工作。要了解有关 如何恢复默认站点界面 的说明,请参阅 界面与 Archive 界面常见问题 。

    ` ], ['div.flash.notice', /^You have muted the user ([^<]+)\.$/s, '您已静音用户 $1 。' ], ['h2.heading', /^Block (.*)$/s, '屏蔽 $1' ], ['div.caution.notice', /^\s*

    \s*Are you sure you want to block<\/strong> ([^<]+)\?\s*Blocking a user prevents them from:\s*<\/p>[\s\S]*?