A reader trying the free Romanian shareware build reported that the Translate button did nothing — no translation, no error, just silence. He was right. This is what broke, why it shipped that way, and how we confirmed the fix actually works instead of assuming it did.
The full app and the free shareware build use different, smaller corpora — the shareware version ships a sample bundle named differently from the one used internally. Translations are looked up by a compound key combining the corpus name and the audio file name. The shareware corpus name didn't match the key prefix baked into the bundled translation files, so every single lookup against the shareware corpus returned nothing.
null,
and the UI rendered that as an empty Translate button. On our own dev machines
this was masked entirely — local installs have a Google Cloud Translation API
key configured, so when the bundled lookup failed, it silently fell back to a
live network call and still produced a translation. The shareware build users
actually run has no such fallback, so for them it just failed.
The translation provider now also builds a lookup index keyed on the audio file name alone, so a corpus-name mismatch between the build that bundled the translations and the build that ships to a given tier no longer breaks the lookup. We added unit tests that reproduce the exact mismatch (different corpus name, same file name) so this specific failure mode can't silently regress again.
Because the bug only showed up when the network fallback was unavailable, a
quick local click-through wasn't enough to prove anything either way. We built
two genuinely separate copies of the shareware app from two different commits
— the one before the fix and the one after — ran them side by side with the
Google Cloud fallback removed, and watched the old build fail with the exact
same silent null result while the new build resolved every
translation from the bundled files. Then we re-ran the same check against the
full 300-clip shareware corpus and the real translation bundle: 300 out of
300 resolved correctly.
Only after seeing that — not before — did we rebuild and re-upload the shareware binaries for macOS, Windows, and Linux, bumped as version 1.0.1.