Welcome to the Reader.
Paste a Chinese text into the sidebar to annotate and read it aloud, or pick a saved reading.
Welcome to the Reader.
Paste a Chinese text into the sidebar to annotate and read it aloud, or pick a saved reading.
Give the reading a title, paste the Chinese text into the textarea, and tap Save & Read. The Reader splits the text into lines, adds inline pinyin, and renders it in the main pane.
Use the mic button to dictate instead of typing — your browser's speech recognition fills the textarea as you speak.
The Pinyin switch in the top bar shows or hides ruby pinyin above every annotated word. The English switch hides or shows the per-line offline translations (once you've used Translate all on a reading). Both settings persist.
Pick a voice and rate in the sidebar, then tap the button next to any line. Voices come from your operating system's installed text-to-speech engines — Google's Mandarin voices typically sound best.
Once the reading is loaded, tap or click any Chinese word to open the offline dictionary popover with pinyin, every CC-CEDICT reading, and two quick actions: Add to review deck (appends to a shared Review deck visible in Writer + Flashcards) and Open in Writer (jumps to the writer with that word loaded for stroke practice).
The Translate all button at the top of the dialog runs every line through an offline Bergamot translation engine (the same one Firefox ships) and renders an English line beneath each Chinese line. First click downloads a one-time ~50 MB model bundle directly from Mozilla's Firefox Translations bucket — we don't host it. After that the engine is fully offline.
Translations are cached per reading in your browser, so reloading the page or switching back to a translated reading shows them instantly without re-running the engine. The header English switch hides or shows them without dropping the cache. For longer text or different phrasings, open the full Translator tool.
Everything you save is stored in your browser. Tap a saved reading to load it, or use the trash icon to delete it. Copy grabs the original text; Share generates a link that re-creates the reading on someone else's device.
Export downloads every saved reading as a single reader-readings.json file. Cached offline translations are bundled in too, so a restore round-trip doesn't have to re-run the engine. Import accepts that JSON (merges in, same-name readings are replaced) or a plain .txt file as a single new reading (you'll be prompted to name it).
Once you've loaded this page online, the Reader and your saved readings are available offline. Nothing is ever sent to a server — everything lives only in your browser.
Drop into the Mandarin Stack Discord — share tips, request features, get help.