expect-digital / translate

Translation for distributed systems
0 stars 0 forks source link

Preliminary design #44

Open janishorsts opened 1 year ago

janishorsts commented 1 year ago

Introduction

The translate system provides a simple and frictionless translation flow for distributed systems and automates many tasks. Developers (or CI/CD tools) send extracted texts for translation to translate system which then can be translated by ML or real translators.

Translation source (origin)

Source code

Dynamic data

Compile time translation

CI/CD

sequenceDiagram
    actor Developer
    actor Translator

    Developer->>VCS: Create PR
    VCS->>CI: Trigger build
    CI->>+Translate: Send extracted messages
    CI->>Translate: Request translated messages
    Translate-->>-CI: Send translated messages
    Translate->>+Translator: Translate messages
    Translator--)-Translate: Publish messages

Local development workflow

sequenceDiagram
    actor Developer
    actor Translator

    Developer->>+Translate: Send extracted messages
    Developer->>Translate: Request translated messages
    Translate-->>-Developer: Send translated messages
    Translate->>+Translator: Translate messages
    Translator--)-Translate: Publish messages

Runtime translation

CI/CD

sequenceDiagram
    actor Developer
    actor Translator

    Developer->>VCS: Create PR
    VCS->>CI: Trigger build
    CI->>+Translate: Send extracted messages
    Translate->>+Translator: Translate messages
    Translator--)Translate: Publish messages
    CI->>+Deployment env: Deploy
    Deployment env->>+Translate: Request translated messages
    Translate-->>-Deployment env: Send translated messages

Local development workflow

sequenceDiagram
    actor Developer
    actor Translator

    Developer->>+Translate: Send extracted messages
    Translate->>+Translator: Translate messages
    Translator--)Translate: Publish messages
    Developer->>VCS: Create PR
    VCS->>CI: Trigger build
    CI->>+Deployment env: Deploy
    Deployment env->>+Translate: Request translated messages
    Translate-->>-Deployment env: Send translated messages

Project Structure

TBC

Backend (golang)

Frontend (Angular)

Translation Methods

Translation by translators

Translation by different APIs (ML)

Coding languages and libraries

In general, we build distributed systems with golang, Angular and Flutter. We aim to support these before adding support for other languages and libraries.

Website (Documentation)

TBC

Licence

TBC