Lugha Desk
Lugha Desk is free, open-source Windows software developed by Ruth Shallom for offline text translation involving African languages. It currently offers 19 experimental language options; accuracy is still being evaluated.
Original application and launcher code by Ruth Shallom. Translation uses a third-party model and inference engine.
Known meaning errors remain.
Release notes and files · Checksum file · App and launcher source archive
- GitHub preview
- 0.3.4 preview
4 November 2026 - Platform
- Windows 10 or 11
x64 - Cost
- Free
No paid API
Lugha Desk provides English translation routes for 19 model-listed African language options. Lugha Desk is now available in the Microsoft Store. The Store package includes the translation model and runs offline after installation. The GitHub preview installer downloads the model during setup. Both translate text locally.
Known meaning errors remain. A working download or fluent output does not establish translation accuracy.
Press coverage
GitHub preview setup
- Close Lugha Desk and any setup window, then open the new Windows launcher. Existing users can reuse their complete, verified model.
- Choose Download model. The one-time download is 1.08 GB. Allow at least 1.3 GB free disk space. Pause and Resume setup are available.
- If prompted, use the Microsoft button to obtain the free official Visual C++ x64 runtime. Complete Microsoft’s setup yourself, then return to Lugha Desk.
- Choose Open Lugha Desk. Afterwards, use its desktop or Start Menu shortcut. The saved model works offline.
No Python, R, Rust installation or account is needed to use the app. The GitHub preview executable is unsigned. Windows may show an unknown-publisher warning. Keep Windows security protections enabled. See the code signing policy. The previous 0.3.2 phrase release, 0.3.1 greeting release, 0.3.0 launcher release and 0.2.0 ZIP release remain available separately.
Greeting dictionary
The earlier greeting corrections remain: “Good morning.” and “Mwaramutse.” for English and Kinyarwanda, “Good morning.” and “እንደምን አደሩ?” for English and Amharic, and “How are you?” and “Manao ahoana?” for English and Malagasy. Each pair works in both directions. The Amharic entry is a respectful morning greeting.
This release adds four greeting pairs for Wolof, Luganda and Yoruba: “Good morning.” / “Jamm nga fanaan.”; “How are you?” / “Nanga def?” (also accepting “Na nga def?”); “Good morning.” / “Wasuze otya?”; and “Good morning.” / “Ẹ káàárọ̀.” Each pair works in both directions. The Yoruba form is respectful, the Luganda form is a singular morning greeting, and the Wolof morning form follows Peace Corps Mauritania teaching material. Fluent-speaker review remains pending.
Only complete standalone greetings use the built-in, reference-checked dictionary. Matching allows capitalization differences, surrounding spaces, repeated spaces or tabs and final punctuation. Longer sentences and other text continue through the existing offline model. Lingala dictionary entries are excluded pending review.
This is an application-level correction, not model retraining or evidence of general translation accuracy. See the exact entries, references, matching rules and limitations. Fluent-speaker validation across varieties remains pending.
Borrowing and lending dictionary
This preview retains three user-reviewed English–Swahili sentence pairs, six directional entries: “I borrowed a ladder from Rehema.” / “Niliazima ngazi kutoka kwa Rehema.”; “I lent a ladder to Rehema.” / “Nilimwazimisha Rehema ngazi.”; and “Rehema has returned the ladder.” / “Rehema amerudisha ngazi.”
Only whole-message matches use this dictionary. Case is preserved; whitespace and one optional final full stop are normalized. Different names, negation, questions, quantities and longer sentences continue through the existing offline model, where meaning errors can remain. This is a limited application correction, not model retraining or general translation validation.
Tested operation
The 0.3.3 Windows build passed 33 Rust tests, four packaging tests, 100 session checks and 30 desktop/native entry-point checks on 3 November 2026. All 52 embedded launcher files were verified against the tested app, pinned runtime and notices. Three model/network integration tests were skipped; a fresh full-model clean-install test was not repeated. Build and test record. The historical checks below were performed on earlier previews on a Windows laptop; they are not new 0.3.3 results.
| Check | Observed result |
|---|---|
| Saved model | The model matched its pinned checksum. A complete saved setup reopened without downloading again. |
| Close and reopen | The native app reopened and translated “Good morning.” to “Habari za asubuhi.” using the saved local model. |
| Loading and Cancel | The model loaded once per open session. Stage messages and elapsed time were visible. Cancel returned control to the app. |
| Rust checks | 18 app tests passed; one model-dependent test was skipped. Ten launcher core tests passed. Final resource extraction and a separate completed-model reopen check also passed. |
| R execution checks | The phrase-corrected packaged app passed 56 R phrase and guard checks and six GUI-dispatch checks. The same app binary had also passed 43 greeting integration checks. A greeting, a longer model-translated sentence and another greeting completed in one session, with the model loaded once. These checks verify behavior, not general meaning accuracy. |
Measured timings and test scope
Earlier 0.3.0 measurements: for the same short English greeting, first translations in two fresh sessions took 11.814 and 10.634 seconds. Repeats took 6.498 and 4.997 seconds. Two reverse-direction greetings took 4.420 and 4.671 seconds. Other hardware, text lengths and routes may differ.
Offline operation used the saved model and an authenticated local connection at 127.0.0.1. The runtime used offline mode with no cloud fallback. A physical Wi-Fi-disconnection test was not performed.
App regression tests are in the public Rust source. The matching source archive includes launcher tests and the R startup test script.
Known limitations
The 19 installed language options are experimental. The goal of 120 African languages is not implemented. Many local languages are not included, and broad translation quality has not been independently validated.
Known model errors include incorrect Swahili borrowing meanings, questionable Luganda output and French output in an English to Wolof example. Earlier execution results are recorded in the test results file. The loading improvements and small greeting dictionary do not correct these general model meaning errors.
Input is limited to 600 characters. An internet connection is needed for the initial installation or model download. Short greetings do not establish reliability for longer text or other subjects. Do not rely on unreviewed translations for medical, legal, safety or other high-stakes decisions.
Components and privacy
For the Microsoft Store version, see the Lugha Desk Store package privacy information, including local processing and voluntary support reports. The GitHub setup and historical checks above describe the separately distributed preview.
Original application and launcher source is licensed under MIT. The underlying QVAC TranslatePsy-AfriSLM model is publisher-declared Apache 2.0. The llama.cpp inference engine and other components retain their own notices. See the component licensing information.
Lugha Desk translates text on your computer after the model has been downloaded. The reviewed v0.3.2 app code sends translation requests to a local model server on the same computer, with no online translation fallback. We found no analytics, account registration or automatic translation-history saving in that code.
The GitHub preview setup needs internet access to download the model from Hugging Face. Download providers can receive normal connection information, such as your IP address. Opening download or support websites also uses your browser and those websites’ services.
During a translation test on 2 November 2026, the connection-monitor screenshots showed only local connections for the monitored app processes. This was a limited TCP check, not a complete security audit: brief connections, other network protocols and third-party component behaviour were not fully ruled out. The earlier packet capture was inconclusive. Translation text exists temporarily in memory, and Windows may manage memory or crash data separately.
These findings apply to the reviewed v0.3.2 preview and do not guarantee every future version or certify the app as malware-free.
Launcher file verification
The current Windows launcher has the following SHA256 value. Compare it with the downloaded file:
141536faab90ff56456a8c625ec15187744259bff7215b705992e5b6fde7ae54