Skip to main content

Toisto is a command-line terminal app to practice languages.

Project description

Toisto

Command-line app to practice languages. Toisto is Finnish and means reiteration, playback, repetition, reproduction.

Toisto is beta software at the moment. It comes with a limited set of words and phrases in Dutch, English, and Finnish.

User guide

Prerequisites

Make sure you have these prequisities installed:

If you want to use a different mp3 player, you can configure Toisto to do so, see How to configure a different mp3 player below.

For some features, Toisto needs a more modern terminal than the default one that MacOS offers. We test with iTerm2. But this is optional, Toisto should work fine with the default MacOS terminal app.

How to install

Install Toisto as follows:

$ pipx install Toisto

If you have already installed Toisto and a newer version is available, upgrade Toisto as follows:

$ pipx upgrade Toisto

How to use

Start Toisto as follows, giving the language you want to practice (the target language) and your language (the source language) as arguments:

$ toisto practice --target fi --source en

To practice a specific topic, pass it as follows:

$ toisto practice --target fi -source en --topic colors

Add --help or -h to get more information about the command-line options and arguments:

$ toisto --help

How to configure Toisto

How to configure your language

To prevent having to pass your target and source language as command-line arguments each time you run Toisto, put them in Toisto's configuration file. Create a file .toisto.cfg in your home directory if it doesn't exist, add the languages section if it doesn't exist, and add the target and source language:

[languages]
target = nl
source = en

How to configure your language level

To prevent having to pass your language level as command-line argument each time you run Toisto, put the language levels you want to practice in Toisto's configuration file. Create a file .toisto.cfg in your home directory if it doesn't exist, add the languages section if it doesn't exist, and add the levels:

[languages]
levels = A1 A2 B1

Note that not all words and phrases have a language level associated with them. This means that specifying levels = A1 A2 B1 B2 C1 C2 will cause Toisto to load only words and phrases with a language level.

How to configure a different mp3 player

By default, Toisto uses afplay on MacOS, mpg123 on Linux, and the PlaySound function on Windows to play mp3 files. You can configure Toisto to use a different mp3 player. Create a file .toisto.cfg in your home directory if it doesn't exist, add the commands section if it doesn't exist, and add the mp3 player:

[commands]
mp3player = name_of_mp3_player

Make sure the mp3 player is on the PATH or put the complete filepath in the config file.

Example sessions

gif

$ toisto practice --target fi --source nl
 Welcome to Toisto v0.8.0!

Practice as many words and phrases as you like, for as long as you like.

Toisto quizzes you on words and phrases repeatedly. Each time you answer
a quiz correctly, Toisto will wait longer before repeating it. If you
answer incorrectly, you get one additional attempt to give the correct
answer. If the second attempt is not correct either, Toisto will reset
the quiz interval.

How does it work?
● To answer a quiz: type the answer, followed by Enter.
● To repeat the spoken text: type Enter without answer.
● To skip to the answer immediately: type ?, followed by Enter.
● To read more about an underlined word: keep ⌘ (the command key) pressed
  while clicking the word. Not all terminals may support this.
● To quit: type Ctrl-C or Ctrl-D.

Translate into Finnish:
Zij komt uit het Noorden
> hän tuluu pohjoisesta
⚠️  Incorrect. Please try again.
> hän kuluu pohjoisesta
❌ Incorrect. The correct answer is "Hän tulee pohjoisesta".

Translate into Dutch:
Pohjoisessa on kylmä
> het is koud in het noorden
✅ Correct.

Translate into Finnish:
Zij komt uit het Noorden
> hän tulee pohjoisesta
✅ Correct.
Another correct answer is "Hän on kotoisin pohjoisesta".

Translate into Dutch:
Hyvää yötä
> Goedenavond
⚠️  Incorrect. Please try again.
> Goedenacht
✅ Correct.
Another correct answer is "Welterusten".

How it works

Toisto quizzes you repeatably on words and phrases in the language you want to practice, your target language. For each quiz, Toisto keeps track of how long you answer it correctly. When you answer a quiz correctly multiple times, Toisto will silence the quiz for a while. The longer the time you have answered the quiz correctly, the longer a quiz is silenced. This starts at a few minutes, but then increases rapidly when you keep answering correctly.

At the moment, Toisto has the following types of quizzes:

  • Translate a word or phrase from your target language to your source language or the other way around. For example, if your native language is English and you're practicing Dutch, Toisto can ask you to give the English version of "Maandag" (which is, you guessed it, "Monday") or ask you to give the Dutch version of "Friday" (which is "Vrijdag").
  • Listen to a word or phrase from your target language and type what you hear. For example, if your target language is Finnish, Toisto may say "Tänään on maanantai" (Today is Monday) and that's then what you have to type.
  • Give a singular version of a plural, or a plural version of a singular. For example, what is the plural of "Talo" (meaning house in Finnish, and the answer is "Talot") or what is the singular of "Huizen" (meaning houses in Dutch, and the answer is "Huis").
  • Change the grammatical person from and to first person, second person, and third person. For example, when asked what the second person of "Ik eet" (meaning "I eat") is, the correct answer would be "Jij eet" ("You eat").
  • Change the tense of verbs from present to past tense or the other way around. For example, what is the past tense of "She walks" or what is the present tense version of "He painted".
  • Change the comparative degree of an adjective. For example, what is the superlative degree of "Aardig" (which means "Nice", and the answer would be "Aardigst").
  • Change the sentence type of declarative sentences into interrogative sentences and vice versa. For example, what is the interrogative form of "The car is black"? The answer would be "Is the car black?"

When you stop the program (hit Ctrl-C or Ctrl-D), progress is saved in a file named .toisto-progress.json in your home folder.

Further documentation

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Toisto-0.8.2.tar.gz (156.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Toisto-0.8.2-py3-none-any.whl (176.6 kB view details)

Uploaded Python 3

File details

Details for the file Toisto-0.8.2.tar.gz.

File metadata

  • Download URL: Toisto-0.8.2.tar.gz
  • Upload date:
  • Size: 156.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for Toisto-0.8.2.tar.gz
Algorithm Hash digest
SHA256 8a15cf9548a2c3bf0b6bb095bb9c3233cae3d4ffe9db87bb5b17c564ce6d6cec
MD5 8eecec43fcfa6b8f94208071982e97f3
BLAKE2b-256 98785a993242d700f23c0e967d95076a31ddb9fa171e51c6b21095b796d40543

See more details on using hashes here.

File details

Details for the file Toisto-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: Toisto-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 176.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for Toisto-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dc4257f11f759dc59749b1861c8aa52aa10b3862b544fff9307f0dac1cb78db5
MD5 714944d42019f471f6b061f4f3bf9d74
BLAKE2b-256 5941ddd0116e034a5c4a873082c89dea38a4b8aa8e68c2f9d1f460ec2f9066f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page