Journaly Development Tidbits: Exonyms
English

Journaly Development Tidbits: Exonyms

by

linguistics

Hi all, I probably seem like a new face around here (perhaps for lack of a successful YouTube channel) but I work with Robin as a developer on Journaly (and I read most the posts in the feed, at least the ones I can read!). While I've made quite a few lorem ipsum posts in my time on the project I realized the other day that I've never actually published a post on Journaly so I thought sharing some of the less boring details of creating a language learning tool would be a good place to start.

A lot of what goes into building Journaly is pretty standard stuff from the software development perspective, but dealing with multiple languages, particularly in a product aimed at language learners, presents some unique challenges. Internationalization (or "i18n", as lazy programmers like me usually call it) is very important to us since getting a variety of native speakers on the platform is a key to getting folks really high quality feedback. Right now if you want to come here and post you have to be able to read enough English to navigate the UI, but we don't want this to be a limitation forever, people who can't read English or are in the early stages of language learning are a huge important demographic!

One interesting aspect of i18n is the names of languages themselves. I haven't given it much thought before this project, but the names we use to refer to languages in English are often significantly different than the names that native speakers would use to refer to their language. As an example, the language English speakers refer to as "German" is called "Deutsch" by native speakers of that language. Even names of languages have to be translated! Words like "German", where the name for something in a language outside of the language it originated in differs from the name for it in the language it describes or originated in is called a "exonym" or "xenonym". The opposite of this would be an "endonym", which would describe internal names for languages such as " Deutsch" or "日本語".

For a bit of technical nitty gritty on the Journaly internals: right now languages that you can write posts in or add as learning/native languages are represented as rows in a languages table, they carry a "name" field which is the English word for a languages and currently there is no mechanism for translating them as this was one of the first tables the project ever had. However for post topics, we decided to tackle the translation issue and the approach ended up being to create a "Topics" table that represents a language-agnostic topic. This table has a "devName" field that carries the English name for a language, just to help us poor English developers know what's going on, but translated topic names live in a separate table. Translated names are identified by a unique combination of the language agnostic topic they relate to and the language the translation is in. When the code that runs in a browser asks for a topic, it provides a "ui language", that is the language that a user is viewing the site in, and joins to the topic translation table to select a translated name for the topic. In this way we can present localized names of topics to users using the site in a language other than English. Because of the exonym situation this same approach is going to have to be applied to the languages table as well.

Right now we haven't translated the UI to any other languages, but it's up there on the todo list! We haven't fully decided what the first language(s) we're going to attempt to translate the UI to yet, but some we're considering are Spanish, German, and French are strong contenders since these are the number 2, 3, and 5 most common native languages on the platform at the moment after English. Mandarin and Japanese are also in consideration to help flush out bugs related to the UI being in languages with idiographic writing systems.

One parting thought: the word "exonym" itself, while clearly from Greek roots, seems to have been coined in English. Google translate wasn't able to offer me a translation into any other language I tried. So a question to native speakers of languages other than English: is there a word in your language for exonyms, other than using "exonym" as a loanword? If so, would that word be autological (fancy word of the day for a word that describes itself)?

Happy journaling y'all!

4