Skip to content

Translation only works one-way: PL→others works, but EN/DE→PL does not work #635

@gmus-dev

Description

@gmus-dev

Environment

  • Jitsi Meet: 2.0.10888-1
  • Jigasi: 1.1.407-g1e3a7ac
  • Jicofo: 1.0-1174-1
  • Prosody: 13.0.4
  • Transcription: Google Cloud Speech-to-Text (latest_long model)
  • Translation: Google Cloud Translation API

Expected behavior

In a multilingual meeting:

  • Polish speaker talks → other participants see subtitles translated to THEIR language ✅
  • English speaker talks → Polish participant sees subtitles translated to Polish ❌
  • German speaker talks → Polish participant sees subtitles translated to Polish ❌

Translation should work in ALL directions for ALL participants.

Actual behavior

Translation only works ONE WAY:

  • Polish speaker → English participant sees English subtitles ✅
  • English speaker → Polish participant sees RAW ENGLISH TEXT (no translation) ❌

When Polish participant selects "Polish" as their subtitle language and the
English speaker talks, Jigasi throws:

UnsupportedOperationException: pl is not a language supported
by the Google Cloud speech-to-text API

This means Jigasi is incorrectly passing translation_language=pl
(the TARGET language for translation) into the STT language validator
validateLanguageTag() instead of passing it only to TranslationManager.

Root cause (suspected)

In GoogleCloudTranscriptionService.java, the validateLanguageTag()
function is called with the value of translation_language presence
property (e.g. "pl", "en") which are short 2-letter codes.

These short codes are NOT in SUPPORTED_LANGUAGE_TAGS (which requires
full BCP-47 codes like "pl-PL", "en-US"), so the exception is thrown.

translation_language should only be passed to TranslationManager
as the TARGET language for translation — it should NEVER be used
as a STT language code.

Config

config.js:
transcription: {
enabled: true,
translationLanguages: ['pl', 'en', 'de', 'uk'],
translationLanguagesHead: ['pl'],
useAppLanguage: false,
preferredLanguage: 'pl-PL',
},

sip-communicator.properties:
org.jitsi.jigasi.ENABLE_TRANSCRIPTION=true
org.jitsi.jigasi.transcription.customService=...GoogleCloudTranscriptionService
org.jitsi.jigasi.transcription.ENABLE_TRANSLATION=true
org.jitsi.jigasi.transcription.translationService=...GoogleCloudTranslationService

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions