Show HN: Nuenki - Learn a language while you browse the web

nuenki.app

14 points by Alex-Programs 3 days ago

Hello! I finished school recently, and I've spent my time working on Nuenki (https://nuenki.app). It's a browser extension that translates sentences at your difficulty level into your target language and lets you quickly compare to the original by hovering.

You naturally pick up the language as you browse, checking the original when needed.

Translations are handled by DeepL, which is 3-6x more accurate than Google Translate[0].

You can use it for free for 24h, no card details required. I'd really appreciate feedback!

[0] https://www.deepl.com/en/whydeepl

amadeuspagel a day ago

If I wanted to learn a language, I would want to read original content in that language. So I'd try the reverse. If I see a website in the language that I want to learn, it translates everything but the simplest.

blackbrokkoli 2 days ago

Very neat, thanks for making this. Tested it with Italian and it's very good :)

One minor feedback: I would like a larger, much more prominent toggle to turn the translation on and off — not that the setting is hard to find, but I found myself wanting to quickly toggle the add-on (e.g. off for serious work) and the small checkbox feels a bit fiddly.

More technical question since I'm interested in language learning software: How do you implement sentence difficulty, and how do you track user progress, aka when do you show harder sentences?

  • Alex-Programs 2 days ago

    I'll try to make the checkbox more prominent - it could perhaps be toggled by clicking anywhere in the privacy box, or replaced with a larger button. I'll experiment with it a bit.

    Sentence difficulty is all calculated on the English side, because it would be prohibitively expensive to translate before doing the calculation. It uses the vocabulary difficulty (via bloom filters - I'm planning to write a blog post with more detail on how I made it performant) and some grammar heuristics (punctuation, case/tense, etc).

    Users don't automatically progress - perhaps I should have made that clearer. You choose your difficulty using the slider in the extension popup, deciding yourself when it's a good time to increase it.

    • blackbrokkoli a day ago

      Thank you for the answer.

      If you want some inspiration for the toggle: have you ever seen the Firefox uBlock Origin plugin UI? They basically have a giant on/off button, which I think is a rather good solution.

      Interesting approach for the difficulty evaluation, and rather pragmatic. If you happen to have some write-up for the grammar heuristics or more detailed sources, I'd be interested :)

      Definitely didn't realize I had to set difficulty manually (but maybe I'm just blind). Would be interesting to see if there's any smart way of auto-evaluating progress...maybe something like occasionally asking how difficult a sentence that the user hovers was or even just passive signals such as whether sentences are hovered. Just because if difficulty would be evaluated by the software, you'd both have a non-subjective measurement of your progress and you truly just could have this on in the background, never thinking about it, and still always learn.

      Just some random thoughts; in any case good luck with this!

aterp 2 days ago

This is very very cool! I'm stoked about the idea but 18 AUD/month is a lot, subscriptions add up. I'm more willing to pay something below 10 AUD, plus a longer trial.

I understand if that cost range is just not feasible, though.

In any case, best of luck with this!

  • Alex-Programs 2 days ago

    Thanks!

    I'd love to decrease the price, but DeepL is really quite expensive. I'm hoping I can decrease it in the long run as users build the cache, but there's a bit of a chicken and egg problem because I need users first.

    • klakierr 2 days ago

      Have you tried Llms for translation? Much, much cheaper, and in my experience as good as deepl

      • Alex-Programs 2 days ago

        I've spoken to natively multilingual friends and they weren't very positive about LLMs, particularly with French. That was GPT-3.5 though, so it might have improved. Certainly worth looking into.

        The other issue is latency, which DeepL is pretty good at.

    • Trung0246 2 days ago

      Interesting. Is it possible to provide own API key from deepl?

      • Alex-Programs 2 days ago

        That's a good suggestion, I hadn't considered that. I could charge a fixed fee for access to the relay server, and then if it weren't in the relay's cache it'd use your API key so you'd be dynamically billed without losing access to the cache. It'd be a fairly large change for a small audience though (how many people are willing to setup API keys etc?). You'd find that it'd be more expensive if you used it a lot and less expensive if you didn't - right now I'm giving people access to ~1.8x more credit than they're charged for (please don't abuse it! I'll notice with how few users I have, anyway).

        Right now my focus is on why not a single user has converted from the demo, and yet I got four from posting it on producthunt without a demo. I think I might not make it clear enough when it's ended - it stops translating and tells you if you open the popup, but maybe people aren't noticing?

aghilmort 15 hours ago

like the sentence approach as compared to toucan's word-only extension iric

flippyhead 3 days ago

This is a great idea. I use it for Japanese and definitely need it to include the furigana somehow.

  • Alex-Programs 3 days ago

    I wasn't aware of furigana. I should be able to add that as an option if I can find a suitably-licensed dataset.

    There seem to be some browser extensions that specialise in adding furigana to existing text, so you might be able to layer that on top as a temporary solution. https://chromewebstore.google.com/detail/furiganator/ijfcmmk... works for me, but you have to click the extension icon first.

cdaringe 3 days ago

Really interesting and creative idea! Maybe one day soon I will actually learn esperanto