Midou36O
e63ae7e8a7
Please squash the commit when merging. (In order to avoid the extra 2 commits that have no extra value.) Reviewed-on: https://codeberg.org/aryak/mozhi/pulls/32 Co-authored-by: Midou36O <midou@midou.dev> Co-committed-by: Midou36O <midou@midou.dev> |
||
---|---|---|
.gitea/workflows | ||
cmd | ||
docs | ||
pages | ||
public | ||
serve | ||
utils | ||
views | ||
.gitignore | ||
compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
instances2json.py | ||
instances.json | ||
LICENSE | ||
main.go | ||
README.md | ||
TODO.md |
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:
- Reverso
- DeepL
- LibreTranslate
- Yandex
- IBM Watson
- MyMemory
- DuckDuckGo (almost 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 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).
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_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_WATSON_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 |
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