Route translations INTO English, not just out of it

FixTranslateService
Ya
12 Agosti 2026, 04:05 UTC
Mwandishi
Kamo
Ahadi ya
92f4b7a

Both providers gated supports() on "en".equals(sourceLang), so every inbound pair was decoderd before a provider was ever asked. ProviderRouter treats "no provider supports this" as a legitimate passthrough and returns the input verbatim, so a Romanian message shown to an English reader came back untranslated with no exception and no log line anywhere — the failure was invisible in the service logs. - LibreTranslateProvider now caches the full source->targets matrix from /languages instead of only English's row. Argos ships each direction as a separate package, so en->ro tells you nothing about ro->en. - Locale aliasing (zh -> zh-Hans) now applies to the source side too, and translate() posts the same resolved code that supports() matched on. - BergamotProvider keys off an explicit pair map. It still only ships en->X models, but the direction is now data rather than a hardcoded assumption. - ProviderRouter warns when no provider supports a pair rather than silently returning the source, and short-circuits blank text (an empty q earns a permanent, non-retryable HTTP 400 that requeued forever). Also repairs BergamotProviderTest, which was already failing on main: it asserted en->ru/pt/it/uk/tr/ro/id/vi/ar after the supported set had been narrowed to the four confirmed models (ende, enes, enfr, enpl).

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei