freon

module
v0.0.0-...-b26f218 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2022 License: GPL-3.0

README

Freon Service Build Status

The project is a ready-made box solution for comfortable work with multilingual applications.

You can generate translations for different platforms (web services, mobile applications, third-party grpc microservices) in the same style inside the admin panel of this service, and also control the work of your translators.

This service is an embedded solution into your infrastructure to increase flexibility and reliability. Thanks to the docker build, you can easily add this service to your infrastructure. The service consists of two parts - a backend written in Golang and a frontend written in ReactJS.

This service will allow content managers to conveniently make changes to localization files, monitor support for various languages, and seamlessly pull them up for applications without the need to update in the application store (App Store, Google Play, etc.) or instant update in web app.

First Launch Configuration

Configurations of storage type and main language chosen due

Build Status

Development, beta-release

Building

The Freon service consists of two parts - backend (Golang) and frontend (ReactJS). The Web Interface is compiled as a ready-made bundle with the assembled JS code, which is launched through the proxy server built into the backend for quick and easy access to the admin panel.

All information is stored in Postgres database, static documents (generated translations) are stored in local (docker volume) or S3 storages and can be easily requested as static files through URL.

Communication interface with Freon service:

  • Rest API. Used to interact with mobile applications, services and the admin panel.
  • GRPC. Used to interact with microservices inside your application.

The following ports are specified by default:

  • 4000 - Rest API
  • 4001 - GRPC
  • 4002 - Proxy server for working with the admin panel.

When you start the Freon service for the first time, a default administrator will be created, in the future you can delete it or change its username and password.

ATTENTION! Don't use this credential in production mode. Your data could be stolen.

Docker quick start

One of the quickest ways to get Freon up and running on your machine is by using Docker:

docker run -d --name freon -v freon-docs:/docs \
           --env DB_HOST=localhost --env DB_PORT=5432 \
           --env DB_USER=root --env DB_PASS=password \
           --env DB_NAME=freon --env JWT_SECRET_KEY=freon-secret-key \
           -p 4000:4000 -p 4001:4001 -p 4002:4002 \
           freonservice/freonservice

Volume freon-docs:/docs use as default place for storing generated translations for web, android and ios applications.

For quick launch and deployment you can use docker-compose.prod.yml file with already configured parameters for this service.

Command for launch service from docker

docker-compose -f docker-compose.prod.yml up -d

Example of interface

Translation page

Architecture

Architecture

Future features

  • Connection google-translation api for quick semi-automation translations
  • Connection libretranslate api for quick semi-automation translations
  • Generation i18n files for web (.json)
  • Generation android translations (.xml)
  • Generation ios translations (.strings, .stringsdict)
  • UI improvements
  • Add API and business logic for checking actual version of translations
  • Fix supporting pluralization
  • Add S3 compatibility storages for static files
  • Full backend test coverage

Contribution

Thank you for considering to help out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes!

If you liked this project, we will be happy to welcome you to our team. To maintain a consistent style code, we ask you to use our linter and tests before each pull requests.

You can install git hooks for convenient work:

./scripts/install-hooks.bash

We try to keep the project clean, so we write tests and use the linter.

Requirements for development

License

This project is licensed under the GPLv3 License - see the LICENSE file for details

Directories

Path Synopsis
api
openapi/frontend/restapi
Package restapi Freon Frontend Frontend Server for rest api Schemes: http Host: localhost BasePath: /api/internal Version: 0.0.3 Consumes: - application/json Produces: - application/json swagger:meta
Package restapi Freon Frontend Frontend Server for rest api Schemes: http Host: localhost BasePath: /api/internal Version: 0.0.3 Consumes: - application/json Produces: - application/json swagger:meta
cmd
internal
app
Package app is a generated GoMock package.
Package app is a generated GoMock package.
dal
dao
pkg
def

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL