I have been writing, and rewriting a very simple "translator" for around 30 years. It started many years ago after getting my first copy of the Klingon Dictionary and I started experimenting with very simple programs. Not true machine translation, I just made what I called a "Universal Translator Assistant" that relexifies a language (like English) into the alien words it has matched to them. Since starting, It has kind of become my personal "hello world" program and I've written versions of this program in C, Perl, Python, BASIC, VisualBasic, CBMBasic, Javascript, Java and Scratch. And now CircuitPython
As noted, it's linguistically more than a little suspect - but it's been a fun project all the same. The languages here are Klingon, Vulcan, Mando'a and Romulan.
The github repository is here
Language sources:
- Mando'a vocab originated in Karen Traviss's Star Wars novels. For more info, see https://mandoa.org/
- tlhIingan (Klingon) vocab is a custom one I created - more official Klingon from: https://kli.org and https://hol.kag.org
- Vulcan vocab from: https://tinyurl.com/VulcanArchive - archive.org of Marketa Zvelbil's original Vulcan work.
- Romulan is from Diane Duane's Rihannsu novels, but I generated more words for use here. See also http://www.rihannsu.org/arch/www.rihan.org/drupal/lessons/introduction.html
The files should be put in apps/UTA, with the .lng files all put in a subdirectory langs.
Enter text and UTA will match English words with the Alien languages. This is not true translation, but provides vocabulary you can use to translate into the target language. It will also match Alien words back to English. Because more than one English word may map to an Alien word, the back translation may look odd.
_ _ _____ _
| | | |_ _|/ \
| | | | | | / _ \
| |_| | | |/ ___ \
\___/ |_/_/ \_\
Universal _...
Translator ,' `.
Assistant / \
| -._ |
\ \ `._
\ \ `...
`-..-`. `-._
`. _,--
`. -'
'. |
'.|
'
loading tlhingan
text: hello what is your name
nuqneH nuq ghaH lIj pong
text: *lang vulcan
loading vulcan
text: live long and prosper
tich tor ang tesmur
text: *help
_ _ _____ _
| | | |_ _|/ \
| | | | | | / _ \
| |_| | | |/ ___ \
\___/ |_/_/ \_\
Universal Translator Assistant
Help commands:
*help - this file
*pItlh - quit program
*lang [filename] - loads langs/filename.lng
Languages: vulcan, tlhingan, mandoa, romulan
text: tich tor ang tesmur
live long and prosper
text: *lang mandoa
loading mandoa
text: I love you
ni riduurok gar
text: ni riduurok gar
me love your
text:
You can create your own language files as NAME.lng in the langs/ directory. The format should be:
"English word", "Alien word"
"English word", "Alien word"
"English word", "Alien word"
"English word", "Alien word"
...
You would load that language with the command "*lang NAME"
This page (Talking to Aliens with my Fruit Jam) was last updated on November 05, 2025.