codedge / trnsltr
A translation service with DeepL integration using (in-memory) caching to save translated texts.
Requires
- php: >=7.3.0
- ext-json: *
- awurth/slim-validation: ^3.1
- guzzlehttp/guzzle: ^6.3
- illuminate/database: ^5.8
- monolog/monolog: ^1.17
- predis/predis: ^1.1
- robmorgan/phinx: ^0.10.6
- slim/slim: ^3.1
- tightenco/collect: ^5.8
- tuupola/cors-middleware: ^0.9.4
- tuupola/slim-jwt-auth: ^3.3
- vlucas/phpdotenv: ^3.3
Requires (Dev)
- phpunit/phpunit: ^7.0
- slevomat/coding-standard: ^5.0
- dev-master
- v0.2
- v0.1
- dev-dependabot/npm_and_yarn/frontend/eslint-utils-1.4.2
- dev-dependabot/npm_and_yarn/frontend/lodash-4.17.14
- dev-dependabot/npm_and_yarn/frontend/lodash.defaultsdeep-4.6.1
- dev-dependabot/npm_and_yarn/frontend/js-yaml-3.13.1
- dev-dependabot/npm_and_yarn/frontend/webpack-bundle-analyzer-3.3.2
This package is auto-updated.
Last update: 2020-08-27 00:23:06 UTC
README
trnsltr - a translation caching service backed by DeepL
trnsltr is a translation caching service that stores already translated data in (currently) Redis. Words and texts that are not already in cache are going to be send to the DeepL API, will be translated, stored in cache and then being returned.
It brings a separate Vue.js frontend and a Slim Framework based backend.
Backend
Configuration
The backend configuration can be done via environment variables, easily to be changed in a .env
file. You can check
the .env.example
file for configuration vars.
Redis
REDIS_HOST
: default127.0.0.1
REDIS_PORT
: default6379
REDIS_DATABASE
: default0
If you are fine with the default you can remove all REDIS_* config keys from your .env
file.
DeepL
DEEPL_HOST
: defaulthttps://api.deepl.com
DEEPL_API_TOKEN
[provide your API token]
JWT (Json Web Tokens) For authentication JWT (Json Web Tokens) are used. Please specify a strong secret to encrypt the token.
APP_API_SECRET
: defaultsecret
A requirement for this to work is a working database connection to some users
table where all your users are saved.
When this is set up, you can use the /auth/token
route to get a valid token.
If you want to generate a new users table you can run
$ vendor/bin/phinx migrate
Example for getting a token:
$ curl -d "email=john.doe@example.com&password=test123" -X POST http://trnsltr.localhost:8081/auth/token
Response:
{ "status":"Success", "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZW1haWwiOiJobEBpbnF1ZW5jZS5jb20ifQ.qVLAR8MtHKxg38sCu7sWRZVjLdsd4eONHah4_HcrnHE" }
Frontend
You can run frontend and backend separately. To configure where your backend is reachable create a .env
file in your frontend/
folder
or copy the .env.example
file.
The variable VUE_APP_API_URL
is the url to the backend API. Under which URL you run the frontend is totally up to you.
For authentication against the backend please generate a valid token
VUE_APP_API_URL=localhost VUE_APP_API_TOKEN=abc123