[HN Gopher] Show HN: Zenodot - Find if a book has been translate...
___________________________________________________________________
Show HN: Zenodot - Find if a book has been translated into your
language
I'm a multilingual reader (Catalan/Spanish/English/Italian), and I
kept hitting the same wall: I'd hear about a book and have no way
to know if it existed in my language. Turns out this is a genuinely
unsolved problem. There's no single database that tracks which
books have been translated into which languages. ISBN registries
are fragmented by country. Open Library has great English coverage
but gaps elsewhere. Wikidata has surprisingly rich translation data
but it's locked behind SPARQL. Google Books is inconsistent across
regions. So I built Zenodot to cross all four and piece the
picture together. What I found building it: -The ISBN system is
far more broken than I expected. ISBNdb has millions of English
records but almost nothing for languages like Basque, Icelandic, or
Bengali. Books exist in these languages, they just don't exist in
the databases. -Wikidata was the biggest surprise. It has
structured translation data for thousands of works, but extracting
it requires SPARQL queries, title resolution across scripts (try
matching a book title in Chinese to its English original), and
author alias caching. Hard to build, but the results fill gaps that
no other source covers. -The most interesting output isn't what
the tool finds; it's what it doesn't find. When someone searches
for a book in a language and there's no result, that's a demand
signal. "Someone in the world wanted this translation and it
doesn't exist." That data could be genuinely useful to publishers.
The tool prioritizes your selected languages, so it shows you
editions relevant to you first. The philosophy is "documentary
infrastructure": no recommendations, no social features, no
accounts. You search, you find (or don't), you go buy the book
wherever you want. Stack: Next.js 15 (App Router), Supabase,
Vercel, TypeScript. Solo project, no funding, about 4 months of
work. If you're multilingual or learning a language, I'd
especially love your feedback. Try searching for a book you love
and switching between languages, that's where the tool shows its
value.
Author : AusiasTsel
Score : 9 points
Date : 2026-03-09 15:54 UTC (7 hours ago)
(HTM) web link (www.zenodot.app)
(TXT) w3m dump (www.zenodot.app)
| MonkeyIsNull wrote:
| wow, ok. I definitely need this! This is my life now with French,
| Russian, German and whatever language of the moment I am messing
| around with.
|
| However, it stills looks like it's tied to localhost? I get a web
| socket error (to localhost:8081) and when I type the name of the
| title into the search title. Nothing happens and the button
| doesn't look like I can click it (no highlighting)
| AusiasTsel wrote:
| Thanks for trying it! The localhost:8081 websocket isn't from
| Zenodot, that's likely a browser extension (React DevTools, a
| proxy tool, or similar). Could you try in an incognito/private
| window with extensions disabled? The search button activates
| once you've selected at least one language from the selector
| below the search bar. If you haven't picked any languages yet,
| it stays inactive... that might be what you're seeing. Let me
| know if that helps!
| MonkeyIsNull wrote:
| ahh right, wrong error. This is the one I get: Uncaught
| Error: Minified React error #418; visit
| https://react.dev/errors/418?args[]=HTML&args[]= for the full
| message or use the non-minified dev environment for full
| errors and additional helpful warnings.
|
| That's from an incognito window on Chrome
| AusiasTsel wrote:
| That's a React hydration mismatch. I'm aware of it but
| hadn't seen it block functionality before. Thanks for
| flagging that it does for you. Can I ask: when you load the
| page, do you see the language selector (a dropdown/search
| where you pick languages like English, French, etc.)? The
| search button only activates after selecting at least one
| language -- if the hydration error is breaking the
| selector, that would explain why the button seems
| unclickable. I'm looking into it right now. What Chrome
| version are you on?
| MonkeyIsNull wrote:
| > Version 145.0.7632.160 (Build officiel) (arm64)
|
| Yeah, I've tried switching the languages, not ALL the
| text on the page changes from the default language and
| I've tried not changing the lang. Same thing.
| AusiasTsel wrote:
| Thanks for the details -- that's very helpful. Chrome 145
| on Mac, got it. The fact that text doesn't fully change
| when switching languages confirms the hydration error is
| breaking React's event handling. I'm actively debugging
| this right now. I'll reply here when I have a fix
| deployed. shouldn't be long. Really appreciate your
| patience.
| AusiasTsel wrote:
| _Update_ : The hydration bug has been fixed and deployed.
| The search should now work correctly. Thanks for the
| report, it helped us catch a real issue. Would love to
| hear if it works for you now!
| zufallsheld wrote:
| Do you know https://annas-archive.gl/isbn-visualization/? And
| https://search.worldcat.org/? They could probably help you with
| your dataset.
| AusiasTsel wrote:
| Yes! Both are excellent resources.
|
| Anna's Archive ISBN visualization is fascinating; it really
| shows how fragmented and incomplete the ISBN landscape is. We
| don't use their data directly (licensing concerns), but it
| confirmed what we were seeing: massive gaps in non-English
| coverage.
|
| WorldCat is great for library holdings but harder to use for
| translation discovery specifically, it tells you "this library
| has this edition" but doesn't easily answer "has this book been
| translated into Basque?" across its whole catalog. We'd love to
| integrate it eventually, though.
|
| Right now Wikidata turned out to be the secret weapon: it has
| structured translation relationships that none of the others
| provide.
___________________________________________________________________
(page generated 2026-03-09 23:01 UTC)