Translation System
SECTION 18 — TRANSLATION SYSTEM
18.1 Overview
The translation system uses Google Translate API to produce parallel multilingual versions of any document. The original document is always preserved — translation never overwrites the source.18.2 Initiating Translation
- Teacher clicks “Translate” from the canvas action menu.
- A language selection modal opens showing available target languages.
- Teacher selects one or more target languages.
- Each selected language triggers a separate backend API call to Google Translate.
18.3 Translation Output
- For each target language: a new parallel document version is created in the database.
- The parallel document is linked to the original via
doc-idreference. - Each translated document carries its own
doc-status,locale, and full version history. - Translation metadata in the original document’s
metadata.translationsarray is updated:\{ language-code, language-name, doc-id (of the linked translated document) \}.
18.4 Language Switcher
- A language switcher component appears in the document canvas header once any translation exists.
- Teacher can toggle between the original and any translated versions in real-time.
- The switcher shows: language name, language code, a flag icon (optional).
18.5 Multilingual PPTX
- When exporting to PPTX, Teacher has the option to include translated version(s).
- The backend merges original and selected translated JSON into a single unified
.pptxfile where translated slides are appended after the original slides (or interleaved — to be determined by product owner upon implementation review).
18.6 Multilingual PDF (Editor Pipeline)
During the Editor’s PDF pipeline, the following options are available per document:
These options are configured by the Teacher or Editor on a per-document basis.
18.7 Per-Type Translation Toggle
- Translation can be disabled per document type in Teacher settings.
- Configurable toggles: Newsletter (default ON), Compilation (default ON), Magazine (default ON), Mindmap (default OFF — Mindmap translation is disabled by default as it may distort visual node layout).
- The
metadata.translation-disabled-forarray reflects the current toggles. - Before calling Google Translate API for any document, the backend must check this array and skip if the document type is listed.