2023-09-02 11:29:43 +05:30
< div align = "center" >
2023-11-03 21:47:36 +05:30
< img src = "public/assets/mozhi.png" width = "192" height = "192" alt = "Mozhi logo" >
2023-09-02 11:29:43 +05:30
< h1 > Mozhi< / h1 >
< a href = "https://www.gnu.org/licenses/agpl-3.0.en.html" >
< img alt = "License: AGPLv3" src = "https://shields.io/badge/License-AGPL%20v3-blue.svg" >
< / a >
2023-10-05 21:34:23 +05:30
< a href = "https://matrix.to/#/#mozhi:frei.chat" >
2023-09-02 11:29:43 +05:30
< img alt = "Matrix" src = "https://img.shields.io/badge/matrix-000000?style=for-the-badge&logo=Matrix&logoColor=white" >
< / a >
< h3 > Mozhi (spelt moḻi) is an alternative-frontend for many translation engines.< / h3 >
< / div >
2023-08-27 17:22:32 +05:30
It was initially made as a maintained fork/rewrite of [simplytranslate ](https://codeberg.org/SimpleWeb/SimplyTranslate-Web ), 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 (almost 1-1 with Bing Translate)
2023-09-09 20:03:14 +05:30
## Where is the engine code?
The engine code has recently been split from the main codebase. Please check [aryak/libmozhi ](https://codeberg.org/aryak/libmozhi ) for it.
2023-08-30 20:11:23 +05:30
## Installing
You can either use [docker ](https://codeberg.org/aryak/mozhi/src/branch/master/compose.yml ) or the build artifacts from [CI jobs on git.projectsegfau.lt ](https://git.projectsegfau.lt/arya/mozhi/actions ).
2023-08-27 21:55:16 +05:30
## Building
```
2023-09-11 14:15:27 +05:30
GOPRIVATE=codeberg.org/aryak/libmozhi # Get latest commit since proxy server is a bit slow
2023-08-27 21:55:16 +05:30
go mod download
2023-09-09 20:03:14 +05:30
go run github.com/swaggo/swag/cmd/swag@latest init --parseDependency
2023-08-27 21:55:16 +05:30
go build -o mozhi
```
2023-08-27 17:22:32 +05:30
2023-08-27 21:27:46 +05:30
## API Docs
2023-08-30 16:13:06 +05:30
Mozhi makes use of swagger (using the fiber middleware) to manage the documentation of the API.
2023-08-27 21:27:46 +05:30
2023-08-30 16:13:06 +05:30
You can find it in /api/swagger of any instance ([example](https://mozhi.aryak.me/api/swagger/index.html)).
2023-08-27 21:27:46 +05:30
2024-04-05 23:02:00 +05:30
## 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 ](https://codeberg.org/aryak/mozhi/issues/27 )
2023-08-30 16:05:16 +05:30
## 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` )
2023-10-20 15:49:51 +05:30
- `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)
2024-05-27 19:37:58 +05:30
- `MOZHI_DEFAULT_PREFER_AUTODETECT` : Prefer autodetect if available instead of specified/default source language. Defaults to false
2023-10-20 15:49:51 +05:30
- `MOZHI_DEFAULT_TARGET_LANG` : Language to default to if no target language is set by user. Defaults to English
2023-08-30 16:05:16 +05:30
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`
2023-08-30 16:13:06 +05:30
## Instances
| Link | Cloudflare | Country | ISP |
| -------- | ---------- | ----------- | ----- |
| [mozhi.aryak.me ](https://mozhi.aryak.me ) | No | India | Airtel |
2023-09-21 23:40:09 +05:30
| [translate.bus-hit.me ](https://translate.bus-hit.me ) | No | Canada | Oracle |
2023-11-12 12:06:51 +05:30
| [nyc1.mz.ggtyler.dev ](https://nyc1.mz.ggtyler.dev ) | No | USA | Royale Hosting |
2024-03-16 22:29:52 +05:30
| [translate.projectsegfau.lt ](https://translate.projectsegfau.lt ) | No | Germany / USA / India | Avoro / Racknerd / Airtel |
2024-04-21 14:34:13 +05:30
| [translate.nerdvpn.de ](https://translate.nerdvpn.de ) | No | Ukraine | vsys.host |
2024-04-27 18:46:12 +05:30
| [mozhi.ducks.party ](https://mozhi.ducks.party ) | No | Germany | Datalix |
| [mozhi.ducks.party (Tor) ](http://42i2bzogwkph3dvoo2bm6srskf7vvabsphw7uzftymbjjlzgfluhnmid.onion ) | No | Germany | Datalix |
2024-05-27 19:57:29 +05:30
| [mozhi.pussthecat.org ](https://mozhi.pussthecat.org ) | No | Germany | Hetzner |
2023-08-30 16:13:06 +05:30
2023-08-27 17:22:32 +05:30
## 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
2023-09-10 17:27:22 +05:30
## Credits
- [Arya ](https://aryak.me ): creator
- [Midou36o ](https://midou.dev ): made the logo
2023-09-10 18:20:32 +05:30
- [py_ ](https://github.com/supercolbat ): Design files
2023-09-21 15:53:28 +05:30
- [Missuo ](https://github.com/missuo ): creating gDeepLX that does the hard part of making DeepL work
- [translatepy ](https://github.com/Animenosekai/translate ): giving me the format of request for yandex engine
2023-09-10 17:27:22 +05:30
- [SimplyTranslate ](https://codeberg.org/simpleweb/simplytranslate ): Inspiration and base code for the webui
2023-09-10 18:15:46 +05:30
- [Rimgo ](https://codeberg.org/rimgo/rimgo ): Code for embedding html in binary
2023-10-04 20:32:56 +05:30
- [Bnyro ](https://me.chatoyer.de ): Parallelization of all engines