Skip to main content
KAnki supports any language through a simple configuration file. You can customize the language name, proficiency levels, and vocabulary to match your learning goals.

Configuration overview

All language settings are stored in kanki/js/kanki_config.js. This file contains two main sections:
  • KANKI_CONFIG: Language name and proficiency levels
  • VOCABULARY: Flashcard data organized by level

Basic configuration

1

Open the configuration file

Navigate to kanki/js/kanki_config.js on your Kindle filesystem.
2

Set your language

Update the KANKI_CONFIG object with your target language and proficiency levels:
kanki_config.js
var KANKI_CONFIG = {
  language: "Spanish",  // Change this to your language name
  levels: ["A1", "A2", "B1"]   // These should match the keys in your VOCABULARY object
};
3

Add your vocabulary

Define your flashcard data in the VOCABULARY object. Each level should contain an array of card objects.

Language examples

kanki_config.js
var KANKI_CONFIG = {
  language: "Japanese",
  levels: ["N5", "N4"]
};

var VOCABULARY = {
  "N5": [
    {"front": "こんにちは", "back": "Hello", "notes": "Greeting"},
    {"front": "ありがとう", "back": "Thank you", "notes": "Gratitude"},
    {"front": "水", "reading": "みず", "back": "Water", "notes": "Noun"},
    {"front": "本", "reading": "ほん", "back": "Book", "notes": "Noun"}
  ],
  "N4": [
    {"front": "急ぐ", "reading": "いそぐ", "back": "To hurry", "notes": "Verb"},
    {"front": "必要", "reading": "ひつよう", "back": "Necessary", "notes": "Na-Adjective"}
  ]
};

Card properties

Each flashcard supports the following properties:

Required properties

PropertyTypeDescription
frontstringThe word or phrase in the target language
backstringThe translation or definition

Optional properties

PropertyTypeDescription
readingstringPronunciation guide (e.g., romanization for Japanese/Chinese)
notesstringAdditional context (word type, usage notes, etc.)
The reading property is especially useful for languages with non-alphabetic writing systems like Japanese, Chinese, Korean, or Arabic.

Using the reading property

For languages with complex writing systems, add a reading field to help with pronunciation:
{"front": "食べる", "reading": "たべる", "back": "To eat", "notes": "Verb"}

Proficiency level systems

Choose a proficiency level system that matches your learning materials:
SystemLevelsBest for
JLPTN5, N4, N3, N2, N1Japanese
CEFRA1, A2, B1, B2, C1, C2European languages
HSKHSK1, HSK2, HSK3, HSK4, HSK5, HSK6Chinese
CustomAny labelsAny language
The level names in KANKI_CONFIG.levels must exactly match the keys in your VOCABULARY object. Mismatched names will cause cards not to appear.

Validation checklist

Before transferring your configuration to Kindle:
  • Language name is set in KANKI_CONFIG.language
  • All level names in KANKI_CONFIG.levels match keys in VOCABULARY
  • Each card has both front and back properties
  • Cards for non-alphabetic languages include reading property
  • JavaScript syntax is valid (check commas, brackets, quotes)

Next steps

Deck management

Learn how to organize and structure your vocabulary decks

Custom fonts

Install fonts that support your target language characters

Build docs developers (and LLMs) love