I recently started attempting to learn Russian. I knew that there were websites that offered parallel books, (books that allow you to read translations as you're learning a new language) and I wanted the same for practicing typing. When I originally tried searching for this online, I couldn't find what I wanted so I created my own website.

Here is an example of one of the books with parallel typing tests: https://btype.io/game/1931/1

I ended up doing more than the minimum though, and the website actually works for anyone wanting to just practice typing with books in any language.

Here is a list of books that are just for practicing typing: https://btype.io/l/en/en

Other features of the website:

My Proof: https://btype.io/reddit/ama.txt

Ask me anything!

Comments: 31 • Responses: 8  • Date: 

SamOnatoR11 karma

How long did it take to finish all of this?

World17723 karma

I started posting it about a month ago. I haven't really worked on it very much since then, but in the last month I've added:

  • Book importing for users
  • Dark mode
  • The stats pages
  • Whitelists for books added (and an easy to use replacement UI for letters that are detected as not type-able when a user imports a book)
  • Created a guide for users to follow when formatting books.
  • Rewrote how parsing of books was done
  • Changed how the data is provided for users to download

When I first started, I wrote the actual game part of it in a day or so. I then just improved on that adding more features and adding quality of life changes to it. It was probably a month or two of on and off progress. There's also a lot of stuff that isn't seen very obviously to users.

  • CI/CD automation for the entire website (just automatic deploy/testing)
  • Automatic backups
  • Email support that works with UTF-8 correctly. (when using so many languages, characters start showing up incorrectly sometimes for some email clients) They're just used if someone "donates" a translation.
  • Payment integration with Stripe
  • Pricing for translations is handled to find out if words later in the book were found earlier within the book so that it's exactly the price that the translation provider will charge.
  • Easily create-able development environments for the project
  • Discord integration - sends messages to the Discord server when someone adds a book or "donates" a translation.
  • Translations for all of the web pages and writing the text
  • Finding and formatting the books for import.
  • A basic admin control panel for managing the website
  • And all of the time determining how pages should look and deciding how to manage the more obvious stuff.

I didn't have to actually create the models to get the translations, as I use Google's for that. That's where the only cost comes from in creating translations. (Though, luckily, I received credits so I didn't have to pay for that so far for the books that have translations)

When I think about the amount of time taken to complete it, I feel like I should have been able to add more, I just didn't dedicate enough time to it all at once.

immunitea4 karma

I love this idea for language learning. Will you be adding more books or languages? Like an option for Brazilian Portuguese?

World1772 karma

It just depends on what the companies that create these language models do. Google seems to be adding more models, so maybe one for Brazilian Portuguese will be an option in the future.

The website does currently support Portuguese right now though. (And if you create an account you’re able to add books for it if you want)

iamnotnotacat3 karma

have you given thought to implementing different highlighting code so that it shows the actual word you're typing highlight in accordance to that words translation rather than what im assuming is percentage of character count?

also super interesting and i really love what you've got here. i'm going to be learning serbian soon, it would be cool to have some books on there for that.

World1775 karma

It doesn’t exactly match up in the sentence below. I run a translation of the full sentence, and a translation of the individual word.

The word is usually one of multiple options and isn’t always correct. Sometimes languages exclude words too. The sentence translations are usually better because the machine learning model has more to work with to determine a translation, but it’s not always perfect either.

In the future, I might add the ability for users to give feedback on translations. I might also create better dictionaries for the words, so that if one is obviously wrong, it’ll give the user the option to see the others.

HHS20193 karma

What coding language(s) do you know/did you use to make this?

World1778 karma

This is written mostly in JavaScript and Php. There’s also shell scripts for creating the development environments, but that’s a really small part of it.

I’ve written programs in Java, C#, C++/C, and python. I like Java very much, but that’s mostly because when I was younger I tried to develop stuff related to game servers with it.

Skioyors2 karma

Are your books open source?

World1773 karma

All of the books and translations that are added can be downloaded here. Though, they’re really not in a format that is going to provide the best reading experience. (you can open one of the books with a text editor to see what I mean)

I haven’t really checked what the standard format is for bilingual books. Though, I could probably quickly write something to just be able to read them using that data offline if there was interest.

Anyone is able to add books/texts to the website. All books added are supposed to be public domain books.

MahdeenSky1 karma

Are you planning to collect ad revenue, anytime soon?

World1772 karma

I don't have any plans. I don't like ads either. The costs for this website are also very minimal at the moment, so it has not been a concern for me.

travisdeahl724-1 karma

Have you met any famous people?

World1770 karma

No, I have not.

travisdeahl724-1 karma

Do you like to travel?

World1773 karma

Yes. Though, I haven't really traveled anywhere lately. I also haven't been outside of the United States since I was really young.