What changed in each version of BelliedMonkey Translator, newest first. The same text goes to the App Store, Chrome Web Store and Firefox Add-ons; the source of every release is on GitHub Releases.
1.18.0
Browser extension · Fixed: When a YouTube transcript can't be fetched, the extension no longer retries the same request over and over — repeated requests are exactly what triggers YouTube's transcript blocking, which takes down even the native captions that still worked. At most 3 requests per video now, with a clear "subtitles unavailable" instead of a broken pipeline.
App & browser extension · Fixed: When the network keeps timing out, translation stops by itself after 5 consecutive timeouts instead of retrying forever — tap "Retry" to resume. No more endless spinning.
App (iPhone / iPad / Mac) · New: The first screen asks what you came for — "read web pages", "listen", or "both" — and picks the path to match; if you only want listening, it no longer pushes you toward the extension.
App (iPhone / iPad) · Fixed: The "open the extension in Safari" banner no longer keeps coming back — one tap counts as asked; and an extension you already set up is no longer treated as missing just because it hasn't captured sentences yet.
App & browser extension · Improved: Review opens without signing in; finishing a session ends more clearly (one graded card completes it); the hardly-used "check page" link is gone.
App & browser extension · Internal: The entire UI layer now runs on React — same behavior, same look — so future interface work moves faster.
App & browser extension · Improved: The line under translations no longer asks for a store rating. It now reads "Review the sentences you read today →" and takes you straight back to review — and it only appears after you have really used it a few days running, at most once a day.
App (iPhone / iPad / Mac) · Improved: Rating requests now happen at moments you actually got something — a review group finished, a live-translation or live-subtitle session that captured sentences, quick translations that came in handy, new sentences in the system-translation inbox — asked by the system's own prompt, never a custom popup.
App (iPhone / iPad / Mac) · Fixed: After you set the interface language, the home screen — product name, sign-in card, section headings — stayed in the old language. It now follows your choice from launch, and changing it takes effect right away.
App (Mac) · Fixed: The Quick Translate panel follows the interface language too. It used to show Chinese no matter what you picked.
App (iPhone / iPad / Mac) · Improved: “Set this up later” on the onboarding screen is a text link again rather than something that looks like a primary button; the review streak moved to a new storage key and your existing days are merged in, so no day is lost.
App (iPhone / iPad / Mac) & browser extension · New: Review now counts showing up — five cards make a group, finishing one is a real stopping point, and days with nothing due still count. You can see how many days in a row you have come back.
App (iPhone / iPad / Mac) · Improved: The first screen says one thing — you pick the model that translates. If you only want web page translation, there is a direct path right there.
App (iPhone / iPad / Mac) · Improved: “Sentence notes” in Settings is now “Translation & sentence notes” — it is the engine every translation in the app uses, and the wording finally says so.
App & browser extension · New: One-key setup has a “Custom” option — your own OpenAI-compatible endpoint can be set up from that card too.
App (Mac) · Fixed: When live subtitles hear nothing, they now tell apart “really no sound” from “cannot get system audio (the permission may be off)”, with a way to open System Settings — and you no longer wait 30 seconds to find out.
App (iPhone / iPad / Mac) · New: A shorter first-run guide — sign-in moves up to the second screen, signing in sets up free credit automatically, then you translate and hear a sentence right there; turning on the browser extension comes last.
App (iPhone / iPad / Mac) · New: “Set this up later” now means later, not never — next time, a “Finish setting up” card on the home screen picks up where you left off.
App (iPhone / iPad / Mac) · New: Tapped “I've turned it on” but the extension isn’t actually on? Bring the home-screen tip back from Settings › Features › Safari extension.
App & browser extension · Improved: An endpoint with only a host name, or a missing key for a built-in provider, is pointed out as soon as you leave the field or tap Test — instead of sending a request and showing a cryptic error.
Browser extension · Improved: First-run setup is down from 4 screens to 3 — the separate “Capture” screen is gone (capture is on by default).
iPhone / iPad · New: System translation — select text in any app, tap “Translate,” and it goes to the engine you configured, never through our servers. First choose BelliedMonkey in Settings › Apps › Translate › Default Translate App. Requires iOS 18.4 or later.
iPhone / iPad · New: A card on the home screen walks you through making BelliedMonkey your default translate app.
App (iPhone / iPad / Mac) · New: After you set up an engine, it is tested right there and the result is shown — it only says “Ready” once the test passes, and names the item that failed if one does. Previously setup gave no receipt at all, and claiming free credit said “configured” without running a single check.
App (iPhone / iPad / Mac) · Fixed: Conversation · Live interpreting no longer goes silent after switching between headphones and speaker (requires iOS 26 / macOS 26).
Browser extension · New: Discord community link — “Discuss” in Settings now opens our Discord.
Fixed: turning on subtitle translation before a YouTube video starts playing no longer gets stuck on “Subtitles unavailable”; subtitles appear normally once playback begins.
New: Quick Translate (Mac) — select text in any app and press ⌃⌥T, use the right-click Services menu, or type; for text you can’t select, drag a box on screen (⌃⌥S). The translation appears in a small panel by the pointer without taking focus. On-screen text is recognised on your Mac and the screenshot is not saved. Shortcuts are configurable; it lives in the menu bar and can be turned off.
New: “Translate into” setting — choose the target language in the app; document translation and other features use it. It follows the interface language by default.
Fixed: YouTube pre-roll ads no longer use up the subtitle attempts, so subtitles appear normally once the ad ends.
On-device speech: the offline model's download address is now served by our server, with a backup address used automatically when the default is unreachable.
Conversation · live interpreter: the first words of English sentences are no longer dropped; starting again right after ending no longer occasionally stalls.
Wording: hints now point to the renamed “Read-aloud” settings section; when the browser has no voices at all, it says so plainly.
Settings reorganized into four sections by purpose: Engines & keys · Features · Account & data · About. Each feature now shows which engines it depends on and whether they are set up, with a one-tap jump to fix it.
Conversation · live interpreter and Live Subtitles now always use on-device recognition, so audio never leaves your device. These two need iOS 26 / macOS 26.
The offline voice model for on-device speech has a visible download button with progress; conversation languages list only what this device supports and show whether the recognition language pack is installed.
Live Subtitles: bilingual subtitles for whatever your device is playing. On Mac, a floating subtitle bar over any app and full-screen video (macOS 14.4 or later); on iPhone, a picture-in-picture window over any app.
Conversation · live interpreter: on iOS 26 and macOS 26 you can choose on-device transcription and speech, so the audio stays on your device.
The app now requires iOS 16.4 or macOS 13.3.
Fixes: podcast pages no longer get stuck on "Loading subtitles…"; the "AI transcript subtitles" button no longer flickers while subtitles load; review cards with an unknown language now get one.
New "Document translation": upload a PDF, Word (.docx), plain text, or an image and read it page by page, original and translation side by side. Only the page you open is translated, with bounded concurrency — never the whole document at once, never the whole budget at once.
Scans and images are recognized by the multimodal engine you configured, then translated.
Any translated line can go into review as language-learning material; the source manager groups them by document and lets you delete a whole file.
The popup now has a "Live transcription + translation" row that starts with one tap whenever the page has a video or audio element (players inside web components included); when the player lives in an embedded frame it says so and offers a way in. The in-overlay entry no longer waits 15 seconds.
On Safari, starting from the popup shows a "Tap to start" button on the page — one more tap and capture begins (Safari only captures audio after a tap on the page itself).
One-key setup gains "Live transcription (optional)": when the platform has no live interface, add one key from a provider that does; engines with a live interface are marked "· live" in the transcription list.
When a provider rejects your API key (401/403), translation now stops right away and tells you on the page to check that key in Settings — no more failing paragraph by paragraph.
The app's home screen now guides you to turn on the Safari extension: three illustrated steps, a one-tap jump to the check page, and an “I've turned it on” button to dismiss.
After you've translated a few pages, a single line at the end of the translation asks whether you'd like to rate the app; dismiss it and it stays away for 90 days.
Fix: after claiming the free allowance, the card wrongly said you were using your own key, and “Switch back to free credit” did nothing.
中文
API key 被服务商拒绝(401/403)时,翻译会立刻停下,并在页面上告诉你去设置里检查这把 key,不再逐段反复失败。
New free allowance: sign in to claim a small allowance we provide — enough to translate a few hundred pages, usable for translation, read-aloud, and transcription. When it runs out, add your own API key or join the community. Prefer not to sign in? Nothing changes — bring your own key or use the free Google engine.
Fix: on the setup screen, tapping “Continue” right after pasting a key could drop the key in some cases; it now saves it before moving on.
Secondary text in light mode is a touch more legible.
中文
新增免费额度:登录后领一份我们提供的额度,够翻几百页,翻译、朗读、转写都能用。用完可以填自己的 API key 继续,或加入社群。不想登录也照旧——填自己的 key 或用免费的 Google 引擎。
Podcasts and videos with no subtitles can now get bilingual subtitles. Tap "AI transcript subtitles" where it says subtitles are unavailable, and the audio goes to the transcription engine you configured (live streams show word-by-word on the video, with a full-sentence history beside it).
New in the app: "Conversation · live interpreter". They speak, you read Chinese; hold "I'll talk" to speak Chinese and show the translation — read aloud too. Keeps listening while locked; finished sentences go into review.
The app's home screen is redesigned around one card: what's due today.
Privacy: audio goes only to the transcription endpoint you configured — our servers never touch it. No recording is kept, only text.
In the app, once you set up a speech engine, Podcast Mode and the card's "Listen" button now appear right away — no relaunch needed.
The app's review screen no longer shows a "Continue in the app" button (that one belongs to the browser extension).
Links and light grey text that were hard to read in Dark Mode (for example "Get a key" in Settings) are now legible; light-mode buttons and secondary text are a shade darker too.
The 1.7.17 fix is still here: your API key no longer disappears after one-tap setup.
Podcast mode can now be taken offline. Tap Preload before you set out and the speech,
sentence notes and translations for today's deck are downloaded to your device, so a
whole session plays with no network at all.
The first tap only prices it — it shows how many cards and how many billed calls, and
spends nothing. You decide, then tap again.
Cards start faster. Everything a card needs is now requested at once instead of one
piece at a time, so the silence between sentences is gone.
Cards captured without a translation can be given one, using the engine you already
configured.
When the speech engine cannot be reached, it now says so and stops — instead of
skipping through the whole deck in silence and reporting that the round is finished.
Stop now takes effect promptly during a preload.
中文
播客模式可以离线用了。出发前点一下「预载离线资源」,今天要听的语音、句子解析和译文
就全部下到本机,路上完全没网也能整轮播完。
第一下只算账——告诉你有多少张卡、要花多少次付费调用,不花一分钱。你看清楚了再点
第二下。
开卡更快。一张卡需要的东西现在一次性同时请求,不再一段一段地取,句与句之间的空档
没有了。
采集时没有译文的卡,现在可以用你已经配好的引擎补上译文。
连不上语音引擎时会明确说出来并停下——而不是一声不响地把整副牌跳完,再告诉你
「本轮听完了」。
预载过程中按「停止」现在会立刻生效。
1.6.4
Reasoning models now translate long passages reliably. Some of them used to return a
successful response with no text in it — the paragraph just stayed blank, with no error
to explain why. Requests now carry only the fields each endpoint is known to accept,
which fixed that and cut a long paragraph from about 15 seconds to 3.
Advanced settings accept your own request parameters, so a private or corporate
endpoint can be tuned without waiting for us to add it.
More engines to choose from — each one measured against its real endpoint rather
than its documentation.
An engine whose default model had been retired no longer fails the moment you pick it.
Fixed a few interface strings that showed their formatting marks verbatim.
中文
推理型模型现在能稳定翻完长段落。此前它们有时会返回一个「成功」的响应、里面却一个字
都没有——那一段就那样空着,也没有任何报错说明原因。现在请求只携带各端点确实接受的
字段,这个问题解决了,一个长段落也从约 15 秒降到 3 秒。
高级设置可以自己填请求参数,私有或企业端点不必等我们适配。
可选引擎更多——每一个都是拿真实端点测出来的,不是照着文档写的。
某个引擎的默认模型已被下架,导致一选就报错,现已修复。
修正了几处界面文案里原样显示出来的格式符号。
1.5.3
Custom endpoints are now used exactly as you type them, with no exceptions. Failed
requests quote the server's own explanation instead of a generic message, and the
request body concedes any optional field the server says it will not accept. The
translation cache is keyed by endpoint and model, so changing either takes effect
immediately, and 「Test connection」 always makes a real request.
中文
自定义接口地址现在逐字使用,没有例外。请求被拒时会附上服务端原话,而不是一句笼统的
「服务端拒绝了这次请求」;请求体会让掉服务端点名不接受的可选字段再试一次。翻译缓存的
键包含端点与模型,改地址或模型立刻生效;「测试连接」一定真发一次请求。
--
1.5.1
1.5.1 — Meet the BelliedMonkey
A full visual redesign:
New mascot icon and in-page floating button — a pot-bellied monkey carrying the translation
Warm terracotta & sage palette across every surface (popup, settings, review, app)
Translations default to a calmer sage green; your custom color is untouched, old defaults migrate once automatically
Translation, learning and privacy model unchanged
中文
1.5.1 —— 大肚猴新形象
整套视觉改版:
新吉祥物图标与页内悬浮按钮——大肚猴,肚子里装着译文
全部界面换上暖陶土与鼠尾草配色(弹窗、设置、复习页、App)
译文默认色改为更柔和的鼠尾草绿;你自定义过的颜色不受影响,旧默认色一次性自动迁移
翻译与学习功能不变,隐私模型不变
1.5.0
1.5.0 — Listen, speak, read, write: every sentence, every skill
The learning module now trains all four skills:
New exercises: translation multiple-choice, blind-listen word picking, read-aloud scoring, AI comprehension questions
Each review automatically rotates to your least-recently-verified skill — a sentence counts as learned only while all four stay fresh
Read-aloud scoring: your recording goes only to the transcription endpoint you configure, and is discarded once the transcript returns — it never touches a server of ours. No endpoint configured, no speaking exercise.
Optional AI-generated questions use your own API key — one call per card, cached forever
Every new exercise has a zero-cost local variant — fully usable with no API configured at all