assemblee-virtuelle / assemblee-virtuelle/semapps

TranslatorService

Open
#1,235 0 comments 1 reaction 0 assignees View on GitHub
chantier feature
Dominant language
TypeScript
Stars
103
Forks
14
Avg merge
1m
Merged PRs (30d)
2

Description

Service which looks for new string-type literals which are added to the triple store (listening to Moleculer events), and automatically translate them to chosen languages, using [DeepL API](https://www.deepl.com/pro-api) or [Google Cloud Translation](https://cloud.google.com/translate/)

Settings:
- `baseLocale`: locale to translate from
- `translatedLocale`: locales to translate to
- `exclude`: predicates or classes to exclude from translation

Actions:
- `addBaseLocale`: Add the baseLocale to all string-type literals
- `translateAll`: Look for all string-type literals and translate them

## Other tasks

- Adapt whole SemApps code to adapt to locale (:warning: big task ?!)
- Adapt data provider to filter by locale (could be passed as a `meta`, supported since React-Admin 4)
- Adapt Archipelago to display data by language (don't activate edit function in non-base locale ?)
- If a translation is incorrect, it could be fixed. But if the string in the base locale is updated, changes will be overwritten.

## Idea

In the futur, we could provide a tool which could be notified, through ActivityPub, when an automatic translation has been added, and allow to correct it. Ideally, we should use RDF-star in order to mark if a translation has been approved or not... but this is another task altogether.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by narrowing the proposed TranslatorService scope around Moleculer events, string-type literals, locale settings, exclusions, and the addBaseLocale and translateAll actions. Review how the project represents triple-store literals and services, then determine whether DeepL API or Google Cloud Translation is the initial provider. Done should include an agreed service boundary and acceptance criteria for translation behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
backend, internationalization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.