Text and video translations

Written languages and sign languages are separate catalogs, so equivalent text and video can coexist without assuming a direct country-language relationship.

Written translations

Written languages are stored in languages. Translatable records use a translations JSON column keyed by language code.

{
  "en": { "title": "Resource title", "about": "Description" },
  "pt": { "title": "Título do recurso", "about": "Descrição" }
}

Each record defines its translatable fields. The administration panel tracks missing content, editing and history; interfaces may fall back to the default language.

Registered written languages

CodeLanguageDefault
enEnglishYes
etEstonianNo
frFrenchNo
deGermanNo
huHungarianNo
ptPortugueseNo
esSpanishNo

Sign-language video translations

Sign languages are stored separately in sign_languages. sign_translations contains document IDs for videos processed by the document module.

{
  "libras": { "about_video_id": "01H-LIBRAS-VIDEO" },
  "dgs": { "about_video_id": "01H-DGS-VIDEO" }
}

PlayerWithTranslations lists available sign languages, ignores entries without video and loads the document selected by the user.

Important: translations stores written content; sign_translations stores media references. They complement rather than replace each other.

Publishing flow

  1. The author enters the default written content and main video.
  2. Written versions are added to translations.
  3. Other sign-language videos are associated in sign_translations.
  4. The backend stores documents and metadata.
  5. The frontend independently selects the appropriate text and video.