Mozhi is an alternative-frontend for many translation engines.
Go to file
Arya K 7d23e2f01e
Some checks failed
mozhi pipeline / Push Docker image to Codeberg docker registry (push) Failing after 24m14s
mozhi pipeline / Build and publish artifacts (push) Successful in 53m3s
Merge pull request 'docs: new instance' (#53) from GitGitro/mozhi:new-instance into master
Reviewed-on: https://codeberg.org/aryak/mozhi/pulls/53
2024-10-05 15:30:47 +00:00
.gitea/workflows install-docker should be b4 qemu 2023-09-21 22:05:59 +05:30
cmd add selectable engines support to web (closes #20) 2024-08-27 22:36:11 +05:30
docs how did i forget to comment my testing stuff 2024-07-20 15:38:23 +05:30
pages update libmozhi; fix API language regex 2024-09-11 13:44:22 +05:30
public Merge pull request '[accessibility] Open the custom select when it gains focus' (#44) from banaanihillo/mozhi:accessibility/custom-select-keyboard into master 2024-08-23 13:14:48 +00:00
serve add selectable engines support to web (closes #20) 2024-08-27 22:36:11 +05:30
utils add selectable engines support to web (closes #20) 2024-08-27 22:36:11 +05:30
views add selectable engines support to web (closes #20) 2024-08-27 22:36:11 +05:30
.gitignore guess i have to add docs to the repo itself 2023-08-27 21:53:49 +05:30
compose.yml fix healthcheck endpoint path 2024-04-14 18:45:01 +05:30
Dockerfile trying to fix CI 2024-07-19 20:25:58 +05:30
go.mod update libmozhi; fix API language regex 2024-09-11 13:44:22 +05:30
go.sum update libmozhi; fix API language regex 2024-09-11 13:44:22 +05:30
instances2json.py instances: add non-clearnet to json, add retries 2024-09-05 13:33:04 +05:00
instances.json docs: new instance 2024-10-04 18:00:53 +02:00
LICENSE init 2023-06-25 00:10:57 +05:30
main.go SimplyTranslate -> Mozhi + Refactor README 2023-08-27 17:22:32 +05:30
README.md docs: new instance 2024-10-04 18:00:53 +02:00
TODO.md update deps 2023-11-29 18:27:08 +05:30

Mozhi logo

Mozhi

License: AGPLv3 Matrix

Mozhi (spelt moḻi) is an alternative-frontend for many translation engines.

It was initially made as a maintained fork/rewrite of simplytranslate, but has grown to have a lot more features as well!

I'm initially focusing on the api and engines, but eventually Mozhi will have a functioning CLI and webapp.

Supported Engines:

  • Google
  • Reverso
  • DeepL
  • LibreTranslate
  • Yandex
  • MyMemory
  • DuckDuckGo ( 1-1 with Bing Translate )

Projects that use Mozhi

  • select2translate - Translate text from your selection clipboard using Mozhi
  • Crow Translate - KDE Project written in C++ / Qt that allows you to translate and speak text using Mozhi

Where is the engine code?

The engine code has recently been split from the main codebase. Please check aryak/libmozhi for it.

Installing

You can either use docker or the build artifacts from CI jobs on git.projectsegfau.lt.

Building

GOPRIVATE=codeberg.org/aryak/libmozhi # Get latest commit since proxy server is a bit slow
go mod download
go run github.com/swaggo/swag/cmd/swag@latest init --parseDependency
go build -o mozhi

API Docs

Mozhi makes use of swagger (using the fiber middleware) to manage the documentation of the API.

You can find it in /api/swagger of any instance (example).

Why does Reverso not work?

Reverso sometimes blocks IPs of servers hosting mozhi, and since it doesn't have IPv6, an IP Rotator won't be viable. For more information, check out #27

Configuration

Features of Mozhi can be customized and toggled on/off using Environment Variables.

  • MOZHI_PORT: Port the webserver listens on (if hosting API)
  • MOZHI_LIBRETRANSLATE_URL: URL of Libretranslate instance (Example: MOZHI_LIBRETRANSLATE_URL=https://lt.psf.lt)
  • MOZHI_DEFAULT_SOURCE_LANG: Language to default to if no source language is set by user. Defaults to Auto-Detect (or first available language in engines which dont support it)
  • MOZHI_DEFAULT_PREFER_AUTODETECT: Prefer autodetect if available instead of specified/default source language. Defaults to false
  • MOZHI_DEFAULT_TARGET_LANG: Language to default to if no target language is set by user. Defaults to English

These envvars turn off/on engines. By default all of them are enabled.

  • MOZHI_GOOGLE_ENABLED
  • MOZHI_REVERSO_ENABLED
  • MOZHI_DEEPL_ENABLED
  • MOZHI_LIBRETRANSLATE_ENABLED
  • MOZHI_YANDEX_ENABLED
  • MOZHI_MYMEMORY_ENABLED
  • MOZHI_DUCKDUCKGO_ENABLED

Instances

Link Cloudflare Country ISP
mozhi.aryak.me No India Airtel
translate.bus-hit.me No Canada Oracle
nyc1.mz.ggtyler.dev No USA Royale Hosting
translate.projectsegfau.lt No Germany / USA / India Avoro / Racknerd / Airtel
translate.nerdvpn.de No Ukraine vsys.host
mozhi.ducks.party No Germany Datalix
mozhi.frontendfriendly.xyz No USA Hetzner
mozhi.pussthecat.org No Germany Hetzner
mo.zorby.top No Germany pawhost.de
mozhi.adminforge.de No Germany Hetzner
translate.privacyredirect.com No Finland Private WebHost
mozhi.canine.tools No USA RoyaleHosting
mozhi.gitro.xyz Yes Germany Hetzner
mozhi.frontendfriendly.xyz (Tor) No USA Hetzner
mozhi.ducks.party (Tor) No Germany Datalix
mo.zorby.top (Tor) No Germany pawhost.de
mo.zorby.top (I2P) No Germany pawhost.de

Features

  • An all mode where the responses of all supported engines will be shown.
  • Autodetect which will show the language that was detected
  • Text-To-Speech for multiple engines
  • A good API (subjective :P)
  • All the stuff you expect from a translation utility :)

Etymology

Mozhi is the word in Tamil for language. Simple as that :P

Credits

  • Arya: creator
  • Midou36o: made the logo
  • py_: Design files
  • Missuo: creating gDeepLX that does the hard part of making DeepL work
  • translatepy: giving me the format of request for yandex engine
  • SimplyTranslate: Inspiration and base code for the webui
  • Rimgo: Code for embedding html in binary
  • Bnyro: Parallelization of all engines