From b065e7192d390eb5ed4f90744c9723c02c15a68c Mon Sep 17 00:00:00 2001 From: M_Kececi Date: Thu, 16 Apr 2026 16:00:24 +0300 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- svc/routes/translations.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/svc/routes/translations.go b/svc/routes/translations.go index 701ac2b..76e3ffd 100644 --- a/svc/routes/translations.go +++ b/svc/routes/translations.go @@ -1375,18 +1375,26 @@ func callAzureTranslate(sourceText, targetLang string) (string, error) { } endpoint = strings.TrimRight(endpoint, "/") - baseURL, err := url.Parse(endpoint + "/translate") + normalizedEndpoint := strings.ToLower(endpoint) + translatePath := "/translate" + // Azure custom endpoint requires the translator path with version in URL. + if strings.Contains(normalizedEndpoint, ".cognitiveservices.azure.com") { + translatePath = "/translator/text/v3.0/translate" + } + baseURL, err := url.Parse(endpoint + translatePath) if err != nil { return "", fmt.Errorf("invalid AZURE_TRANSLATOR_ENDPOINT: %w", err) } q := baseURL.Query() - q.Set("api-version", "3.0") + if translatePath == "/translate" { + q.Set("api-version", "3.0") + } q.Set("from", sourceLang) q.Set("to", targetLang) baseURL.RawQuery = q.Encode() payload := []map[string]string{ - {"Text": sourceText}, + {"text": sourceText}, } body, _ := json.Marshal(payload) req, err := http.NewRequest(http.MethodPost, baseURL.String(), bytes.NewReader(body))