mozhi/README.md

102 lines
4.9 KiB
Markdown
Raw Normal View History

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>
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 ( 1-1 with Bing Translate )
## 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.
## 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
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 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
## 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`)
- `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
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 |
| [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.frontendfriendly.xyz](https://mozhi.frontendfriendly.xyz) | No | USA | Hetzner |
2024-04-27 18:46:12 +05:30
| [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 |
| [mozhi.frontendfriendly.xyz (Tor)](http://mozhi.wsuno6lnjdcsiok5mrxvl6e2bdex7nhsqqav6ux7tkwrqiqnulejfbyd.onion) | No | USA | Hetzner |
2023-08-30 16:13:06 +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