ao3-chinese

AO3 Translator

An extension designed to enhance the Chinese reading experience on Archive of Our Own.

简体中文 · English · Docs · Changelog · QQ Channel

GitHub release badge GitHub stars badge GitHub contributors badge GitHub last commit badge

📖 Brief Introduction

Provides full-site UI localization, real-time multi-engine content translation, smart content blocking, immersive reading typography, glossary management, translation cache acceleration, and full-format work exporting—delivering an unprecedentedly smooth reading experience for Chinese users on AO3.

✨ Core Features

🌐 Real-Time Multi-Engine Translation System

Supports traditional translation engines (Google Translate, Bing Translator) and over 10 Large Language Model (LLM) services, covering all mainstream AI translation capabilities:

Category Supported Services
Traditional Engines Google Translate, Bing Translator
Global AI OpenAI, Anthropic (Claude), Google AI (Gemini), Groq AI, Together AI, Cerebras
Chinese AI DeepSeek, Zhipu AI (GLM), SiliconFlow, ModelScope
Custom Any third-party service compatible with the OpenAI API, supporting automatic model list fetching via /models

Enterprise-Grade Translation Dispatch Architecture:

🎨 Deep AO3 UI Localization

More than just text translation—the script performs deep, native-level localization on AO3’s highly complex page structures, covering:

🛡️ Powerful Content Blocker

A comprehensive work list filtering system to help you say goodbye to unwanted content:

Blocking Dimension Description
Tag Blacklist Supports exact match, wildcards (*), and chained condition combinations ('TagA'+'TagB'-'TagC')
Tag Whitelist Tags in the whitelist mark the work as safe, bypassing all other blocking rules
Content Filtering Exact blocking by author name, title keywords, summary keywords, or Work ID
Stats Filtering Word count range, chapter range, auto-block WIPs unupdated for N months, crossover limit
Advanced Filtering Exact filtering by the first N relationship tags, first N character tags, or specific languages only

Supports Alt + Click Quick Blocking—hold Alt and click any tag/author/work link to instantly add it to the blacklist. Blocked work cards will be collapsed, displaying the reason for blocking, with an option to temporarily expand and view.

📖 Immersive Reading & Typography

📚 Local & Online Glossaries

⚡ High-Performance Cache System

A translation cache database built on native IndexedDB:

📦 Full-Format Export Engine

One-click export of translated works into eBooks, featuring built-in JSZip and a custom CSS template system:

Format Description
HTML Standalone webpage with custom CSS templates (title page, TOC, body, bilingual display, mobile adaptation)
EPUB Standard eBook format, supporting TOC navigation (NCX) and metadata
PDF Generated via the browser’s “Save as PDF” print feature, with CSS pagination control

🎛️ Modern UI & Interaction

🤖 Supported Translation Engines

Built-in Engines

Engine API Key Notes
Google Translate Not required Traditional MT, fastest speed, handles large text volumes
Bing Translator Not required Traditional MT, auto-fetches Token
OpenAI Required GPT series models, supports reasoning_effort
Anthropic (Claude) Required Claude series models, supports extended thinking
Google AI (Gemini) Required Gemini series models, supports thinking budget
DeepSeek Required DeepSeek series models, highly cost-effective
Zhipu AI (GLM) Required GLM series models
SiliconFlow Required Chinese model aggregator, extremely rich model selection
Groq AI Required Ultra-low latency inference (LPU accelerated)
Together AI Required Model aggregator platform
Cerebras Required Ultra-fast inference speed
ModelScope Required ModelScope community model service
Custom Service Optional Any service compatible with OpenAI API, supports auto-fetching models via /models

AI Translation Configuration

📦 Installation & Usage

Installation Guide

Basic Usage

⚙️ Configuration & Advanced Usage

Setting up API Keys

  1. Open the settings panel → Select a translation service (e.g., DeepSeek).
  2. Enter your Key in the “Set API Key” input box and click Save.
  3. Supports entering multiple Keys (separated by ,). The script will automatically handle polling and blacklist management. For instructions on obtaining API Keys, please refer to the: API Key Guide.

Configuring Glossaries

  1. Settings Panel → More Features → Set Local Glossary.
  2. Case-sensitive input format: Original:Translation, Character Name:角色名.
  3. Case-insensitive input format is the same as above.
  4. Do-Not-Translate glossary only requires listing the original text (separated by commas).
  5. Multi-part terms use an equals sign: Wakaba Mutsumi = 若叶 睦.

Online Glossaries: More Features → Manage Online Glossaries → Enter a GitHub Raw / jsDelivr link to import. You can also browse community-shared glossaries in the “Online Glossary Library” and import them with one click.

Setting up Blocking Rules

  1. Settings Panel → More Features → Work Blocker Configuration.
  2. Select the blocking dimension (Tag Filtering / Content Filtering / Stats Filtering / Advanced Filtering).
  3. Enter the rules and save. The page will automatically refresh the blocking status.
  4. Quick Action: Hold Alt and click any tag/author/work link to instantly add it to the blacklist.

Exporting Works

  1. Settings Panel → More Features → Work Export & Generation.
  2. Select the file format (HTML / EPUB / PDF). You can customize the CSS template styles.
  3. Click “Format Selection” to check the formats you want to export.
  4. Click “Export File”.

🛡️ Privacy & Security

📖 Documentation

🤝 Contributing & Feedback

If you find any translation errors, script bugs, or have feature suggestions, feel free to submit feedback via the Issues page!

📄 License

This project is open-sourced under the GPL-3.0 License.

🙏 Acknowledgements