Language Construction Tool

A Tool for managing the vocabulary of constructed languages (and natural ones I suppose).

When I started working on my first constructed language in 2019 I soon began to realize that I was not feeling comfortable creating something so complex and organic in the digital environment I had at hand at the time. I started out with Onenote, switched to Excel, tried out Airtable but was ultimatively not satisfied with any of them. (Later I would discover that Excel was the best option)

So I had to make my own tool. Programming was not my trade back then. I was barely able to cook up a functioning script in Processing, let alone designing and building a complete architecture for something like this. It was an experiment, that should change my life forever.

Here is a short excerpt from the Github Repo:

Release Notes

Welcome to the Language Construction Tool (LCT)! As you will probably have guessed, this tool is designed to help you keep track of your work with languages. This could mean several things like:

  • Designing/constructing a language (conlanging)
  • Learning a language
  • Keeping track of a professional Vocabulary (Terms)

Of course you can configure this tool to fit your needs however you like. For example, with some small adjustments you could use it as database-manager for recipes and so on.


  • Adding, Editing and deleting Words from and to a database
  • Batch importing and exporting from and to csv/xls/txt
  • Adding Images to all words
  • Generating Words and exporting them
  • Compare words with multiple undockable treeviews
  • Analyse texts and import their essential vocabulary
  • Import essential words from the web

I don’t maintain this repo any more for a few reasons:

  • This is clearly the wrong tech-stack for what I needed it for. And I don’t mean that you can’t manage a language in Python, but I needed it to be versatile and mobile friendly – which is not the case with tkinter and a locally run python environment.
  • I did a big spagetthi and I can’t even look at it no more. After gaining experience over the years I would do everything very different and there are best practices for a reason. For example I solemnly introduced a MVC-Structure back then, only to then send the whole controller-Object back and forth, so everybody had access to everything. Great party.
  • After looking at what other people did in the field I realized that I ignored a big part of linguistic properties when it comes to maintaining a language. This topic is very complex when it comes to morphology. Are you building an agglutinative language or something fusional? On what morphosyntactics are you founding your wordformation? How do you properly store such informations and derive your vocabulary from? And we are not even talking about generation here, simply storing it properly.
  • I did not know what I wanted at the time, which was a either vocabulary management or vocabulary generation. It was before all that AI-hokuspous and I played around with generating words by a set of rules and with given vowels, consonants and „special vowels“, as I called them. But in the end this took ressources away from the thing I really needed: vocabulary management.
zusaetzliche_links Github Repo (not maintained)