Skip to content

add latin#1053

Open
beackers wants to merge 3 commits intosspanak:masterfrom
beackers:latin
Open

add latin#1053
beackers wants to merge 3 commits intosspanak:masterfrom
beackers:latin

Conversation

@beackers
Copy link

I saw TT9 has Greek in it, so since I'm a Latin nerd, I was like "hmm, let me see". I use TT9 enough for typing Latin assignments as well, so... :)

I did get Codex by OpenAI to write this, and its notes are in laWordlistReadme.txt. Let me know if something needs to get changed.

@sspanak
Copy link
Owner

sspanak commented Feb 28, 2026

Thanks for contributing!

Just to clarify, the Greek dictionary is not Ancient Greek. It is modern Greek used nowadays in Greece.

Either way, I am OK with adding dead or fictional languages, just for fun. But, if possible for these languages, I would like to add big dicitionaries that permit typing a lot of words in different contexts. For Latin, this should be easy - a lot of dictionaries exists today, and they can be easily incorporated in TT9. Unfortunately, I am quite busy now, so I can not spend time on this myself. On the other hand, you seem to have a lot of free time, and if you are willing to make some more effort, I will include Latin in the app. 🙂

I suggest that we use this wordlist. It contains more than 1 million words, so it should produce very nice typing experience. It may require some cleaning, e.g. remove the single letters, remove any words with corrupted or non-Latin letters, but it should mostly be fine.

As for the macrons, the word list from Winedt doesn't contain any. I would recommend actually installing and using the latin-macronizer tool you have found to make the dictionary nicer.

After that, I can build an APK for you to do some real-world testing, and if it feels alright, I'll merge it an publish it.

Go for it!

@sspanak sspanak self-requested a review February 28, 2026 11:11
@@ -0,0 +1,15 @@
locale: la
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TT9 does not support 2-letter locales, except for English.

Suggested change
locale: la
locale: la-VA

Comment on lines +51 to +52
// Keep Latin as a downloadable add-on language; do not bundle it in the full APK.
exclude 'la-utf8.zip'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't do this. The full version is intended to come with all languages. It does not have the Internet permission and it can not download anything.

Suggested change
// Keep Latin as a downloadable add-on language; do not bundle it in the full APK.
exclude 'la-utf8.zip'

- GPL-3.0 (repository license file)

Conversion notes for TT9:
- Parsed the macronized inflected-form column (4th TAB-separated field), which includes full forms
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, don't parse the files. You may miss some edge cases and produce wrong results. Instead install and use the latin-macronizer as I mentioned in my first comment.

Alternatively, use the online version of the same tool with the appropriate settings, and convert the word list from Winedt in portions of 50000 chars (or less). Just be careful not to send too many requests and bring down their website. Give it a couple of seconds between each try.

@@ -0,0 +1,15 @@
locale: la
dictionaryFile: la-utf8.txt
name: Lingua Latina
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Java should be able to generate a proper name. Let's specify it manually only if it is unclear, or if it fails.

Suggested change
name: Lingua Latina

locale: la
dictionaryFile: la-utf8.txt
name: Lingua Latina
iconABC: ic_lang_latin
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iconT9 is mandatory. Please add a new entry to scripts/iconz/generate-all.sh, generate the icons and put them in the res directory.

StatusIcon.java also needs to be updated, but it will happen automatically, when you build the project with Android Studio, gradle, or whatever you are using. Just don't forget to include it in the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants