From f72e6deb31e2dde89dbdd6b16c0d70f848ca3ae5 Mon Sep 17 00:00:00 2001 From: Jiarui Guo Date: Fri, 17 Apr 2026 17:05:07 -0700 Subject: [PATCH 1/5] Regenerate azure-ai-translation-text from latest TypeSpec --- .../azure-ai-translation-text/pom.xml | 2 +- .../text/TextTranslationAsyncClient.java | 5 +- .../text/TextTranslationClient.java | 5 +- .../text/TextTranslationClientBuilder.java | 13 ++- .../text/TextTranslationServiceVersion.java | 6 +- .../TextTranslationClientImpl.java | 10 +- .../implementation/models/package-info.java | 17 +-- .../text/models/TranslationGender.java | 63 ++++++++++ .../text/models/TranslationTarget.java | 109 ++++++------------ .../text/models/TranslationTone.java | 63 ++++++++++ .../translation/text/models/package-info.java | 17 +-- .../azure-ai-translation-text_metadata.json | 2 +- .../ai/translation/text/TranslateLlm.java | 6 +- .../text/TextTranslationClientBase.java | 4 +- .../tsp-location.yaml | 2 +- 15 files changed, 200 insertions(+), 124 deletions(-) create mode 100644 sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java create mode 100644 sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTone.java diff --git a/sdk/translation/azure-ai-translation-text/pom.xml b/sdk/translation/azure-ai-translation-text/pom.xml index 7ff6d3a9a70d..99239fd0440e 100644 --- a/sdk/translation/azure-ai-translation-text/pom.xml +++ b/sdk/translation/azure-ai-translation-text/pom.xml @@ -11,7 +11,7 @@ com.azure azure-ai-translation-text - 2.0.0-beta.2 + 2.0.0 Microsoft Azure client library for Text Translation This package contains Microsoft Azure Text Translation client library. diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationAsyncClient.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationAsyncClient.java index e191d3be48b3..c86788d67fc8 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationAsyncClient.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationAsyncClient.java @@ -459,9 +459,8 @@ public Mono transliterate(String language, String fromScript * profanityMarker: String(Asterisk/Tag) (Optional) * deploymentName: String (Optional) * allowFallback: Boolean (Optional) - * grade: String (Optional) - * tone: String (Optional) - * gender: String (Optional) + * tone: String(neutral/formal/informal) (Optional) + * gender: String(neutral/male/female) (Optional) * adaptiveDatasetId: String (Optional) * referenceTextPairs (Optional): [ * (Optional){ diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClient.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClient.java index 113088463ba7..639eb02ae8d5 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClient.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClient.java @@ -447,9 +447,8 @@ public TransliteratedText transliterate(String language, String fromScript, Stri * profanityMarker: String(Asterisk/Tag) (Optional) * deploymentName: String (Optional) * allowFallback: Boolean (Optional) - * grade: String (Optional) - * tone: String (Optional) - * gender: String (Optional) + * tone: String(neutral/formal/informal) (Optional) + * gender: String(neutral/male/female) (Optional) * adaptiveDatasetId: String (Optional) * referenceTextPairs (Optional): [ * (Optional){ diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClientBuilder.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClientBuilder.java index f35204d41db1..5dea2d2ad1ea 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClientBuilder.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationClientBuilder.java @@ -51,8 +51,8 @@ */ @ServiceClientBuilder(serviceClients = { TextTranslationClient.class, TextTranslationAsyncClient.class }) public final class TextTranslationClientBuilder implements HttpTrait, - ConfigurationTrait, EndpointTrait, - KeyCredentialTrait, TokenCredentialTrait { + ConfigurationTrait, TokenCredentialTrait, + KeyCredentialTrait, EndpointTrait { @Generated private static final String SDK_NAME = "name"; @@ -449,4 +449,13 @@ private void validateClient() { // Developer can customize this method, to validate that the necessary conditions are met for the new client. Objects.requireNonNull(endpoint, "'endpoint' cannot be null."); } + + @Generated + private static final String[] DEFAULT_SCOPES = new String[] { "https://cognitiveservices.azure.com/.default" }; + + /* + * The KeyCredential used for authentication. + */ + @Generated + private KeyCredential keyCredential; } diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationServiceVersion.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationServiceVersion.java index fd4bdc66a026..c32c8980deca 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationServiceVersion.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/TextTranslationServiceVersion.java @@ -11,9 +11,9 @@ public enum TextTranslationServiceVersion implements ServiceVersion { /** - * Enum value 2025-10-01-preview. + * Enum value 2026-06-06. */ - V2025_10_01_PREVIEW("2025-10-01-preview"); + V2026_06_06("2026-06-06"); private final String version; @@ -35,6 +35,6 @@ public String getVersion() { * @return The latest {@link TextTranslationServiceVersion}. */ public static TextTranslationServiceVersion getLatest() { - return V2025_10_01_PREVIEW; + return V2026_06_06; } } diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/TextTranslationClientImpl.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/TextTranslationClientImpl.java index 19d878ece4fb..8e0247f06621 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/TextTranslationClientImpl.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/TextTranslationClientImpl.java @@ -435,9 +435,8 @@ public Response getSupportedLanguagesWithResponse(RequestOptions req * profanityMarker: String(Asterisk/Tag) (Optional) * deploymentName: String (Optional) * allowFallback: Boolean (Optional) - * grade: String (Optional) - * tone: String (Optional) - * gender: String (Optional) + * tone: String(neutral/formal/informal) (Optional) + * gender: String(neutral/male/female) (Optional) * adaptiveDatasetId: String (Optional) * referenceTextPairs (Optional): [ * (Optional){ @@ -527,9 +526,8 @@ public Mono> translateWithResponseAsync(BinaryData translat * profanityMarker: String(Asterisk/Tag) (Optional) * deploymentName: String (Optional) * allowFallback: Boolean (Optional) - * grade: String (Optional) - * tone: String (Optional) - * gender: String (Optional) + * tone: String(neutral/formal/informal) (Optional) + * gender: String(neutral/male/female) (Optional) * adaptiveDatasetId: String (Optional) * referenceTextPairs (Optional): [ * (Optional){ diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/models/package-info.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/models/package-info.java index f891bada5f9d..391bda25df86 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/models/package-info.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/implementation/models/package-info.java @@ -4,21 +4,8 @@ /** * * Package containing the data models for TextTranslation. - * Text translation is a cloud-based REST API feature of the Translator service that uses neural - * machine translation technology to enable quick and accurate source-to-target text translation - * in real time across all supported languages. - * - * The following methods are supported by the Text Translation feature: - * - * Languages. Returns a list of languages supported by Translate, Transliterate, and Dictionary Lookup operations. - * - * Translate. Renders single source-language text to multiple target-language texts with a single request. - * - * Transliterate. Converts characters or letters of a source language to the corresponding characters or letters of a - * target language. - * - * Detect. Returns the source code language code and a boolean variable denoting whether the detected language is - * supported for text translation and transliteration. + * Azure Translator is a cloud-based, multilingual, neural machine translation service. The Text Translation API enables + * robust and scalable translation capabilities suitable for diverse applications. * */ package com.azure.ai.translation.text.implementation.models; diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java new file mode 100644 index 000000000000..5680b4877bae --- /dev/null +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.translation.text.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Desired gender for the translated text. + */ +public final class TranslationGender extends ExpandableStringEnum { + /** + * Neutral gender. + */ + @Generated + public static final TranslationGender NEUTRAL = fromString("neutral"); + + /** + * Male gender. + */ + @Generated + public static final TranslationGender MALE = fromString("male"); + + /** + * Female gender. + */ + @Generated + public static final TranslationGender FEMALE = fromString("female"); + + /** + * Creates a new instance of TranslationGender value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TranslationGender() { + } + + /** + * Creates or finds a TranslationGender from its string representation. + * + * @param name a name to look for. + * @return the corresponding TranslationGender. + */ + @Generated + public static TranslationGender fromString(String name) { + return fromString(name, TranslationGender.class); + } + + /** + * Gets known TranslationGender values. + * + * @return known TranslationGender values. + */ + @Generated + public static Collection values() { + return values(TranslationGender.class); + } +} diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTarget.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTarget.java index c36b55157a5b..03843a3272c0 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTarget.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTarget.java @@ -75,22 +75,16 @@ public final class TranslationTarget implements JsonSerializable writer.writeJson(element)); @@ -429,9 +376,8 @@ public static TranslationTarget fromJson(JsonReader jsonReader) throws IOExcepti ProfanityMarker profanityMarker = null; String deploymentName = null; Boolean allowFallback = null; - String grade = null; - String tone = null; - String gender = null; + TranslationTone tone = null; + TranslationGender gender = null; String adaptiveDatasetId = null; List referenceTextPairs = null; while (reader.nextToken() != JsonToken.END_OBJECT) { @@ -449,12 +395,10 @@ public static TranslationTarget fromJson(JsonReader jsonReader) throws IOExcepti deploymentName = reader.getString(); } else if ("allowFallback".equals(fieldName)) { allowFallback = reader.getNullable(JsonReader::getBoolean); - } else if ("grade".equals(fieldName)) { - grade = reader.getString(); } else if ("tone".equals(fieldName)) { - tone = reader.getString(); + tone = TranslationTone.fromString(reader.getString()); } else if ("gender".equals(fieldName)) { - gender = reader.getString(); + gender = TranslationGender.fromString(reader.getString()); } else if ("adaptiveDatasetId".equals(fieldName)) { adaptiveDatasetId = reader.getString(); } else if ("referenceTextPairs".equals(fieldName)) { @@ -469,7 +413,6 @@ public static TranslationTarget fromJson(JsonReader jsonReader) throws IOExcepti deserializedTranslationTarget.profanityMarker = profanityMarker; deserializedTranslationTarget.deploymentName = deploymentName; deserializedTranslationTarget.allowFallback = allowFallback; - deserializedTranslationTarget.grade = grade; deserializedTranslationTarget.tone = tone; deserializedTranslationTarget.gender = gender; deserializedTranslationTarget.adaptiveDatasetId = adaptiveDatasetId; @@ -477,4 +420,28 @@ public static TranslationTarget fromJson(JsonReader jsonReader) throws IOExcepti return deserializedTranslationTarget; }); } + + /** + * Set the tone property: Desired tone of target translation. Accepted values are formal, informal, or neutral. + * + * @param tone the tone value to set. + * @return the TranslationTarget object itself. + */ + @Generated + public TranslationTarget setTone(TranslationTone tone) { + this.tone = tone; + return this; + } + + /** + * Set the gender property: Desired gender of target translation. Accepted values are female, male, or neutral. + * + * @param gender the gender value to set. + * @return the TranslationTarget object itself. + */ + @Generated + public TranslationTarget setGender(TranslationGender gender) { + this.gender = gender; + return this; + } } diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTone.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTone.java new file mode 100644 index 000000000000..117e1dfc2f3c --- /dev/null +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationTone.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.translation.text.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Desired tone for the translated text. + */ +public final class TranslationTone extends ExpandableStringEnum { + /** + * Neutral tone. + */ + @Generated + public static final TranslationTone NEUTRAL = fromString("neutral"); + + /** + * Formal tone. + */ + @Generated + public static final TranslationTone FORMAL = fromString("formal"); + + /** + * Informal tone. + */ + @Generated + public static final TranslationTone INFORMAL = fromString("informal"); + + /** + * Creates a new instance of TranslationTone value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TranslationTone() { + } + + /** + * Creates or finds a TranslationTone from its string representation. + * + * @param name a name to look for. + * @return the corresponding TranslationTone. + */ + @Generated + public static TranslationTone fromString(String name) { + return fromString(name, TranslationTone.class); + } + + /** + * Gets known TranslationTone values. + * + * @return known TranslationTone values. + */ + @Generated + public static Collection values() { + return values(TranslationTone.class); + } +} diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/package-info.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/package-info.java index 7cd6ccf90652..47341f624565 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/package-info.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/package-info.java @@ -4,21 +4,8 @@ /** * * Package containing the data models for TextTranslation. - * Text translation is a cloud-based REST API feature of the Translator service that uses neural - * machine translation technology to enable quick and accurate source-to-target text translation - * in real time across all supported languages. - * - * The following methods are supported by the Text Translation feature: - * - * Languages. Returns a list of languages supported by Translate, Transliterate, and Dictionary Lookup operations. - * - * Translate. Renders single source-language text to multiple target-language texts with a single request. - * - * Transliterate. Converts characters or letters of a source language to the corresponding characters or letters of a - * target language. - * - * Detect. Returns the source code language code and a boolean variable denoting whether the detected language is - * supported for text translation and transliteration. + * Azure Translator is a cloud-based, multilingual, neural machine translation service. The Text Translation API enables + * robust and scalable translation capabilities suitable for diverse applications. * */ package com.azure.ai.translation.text.models; diff --git a/sdk/translation/azure-ai-translation-text/src/main/resources/META-INF/azure-ai-translation-text_metadata.json b/sdk/translation/azure-ai-translation-text/src/main/resources/META-INF/azure-ai-translation-text_metadata.json index e3fe47349594..754f1f14f4ee 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/resources/META-INF/azure-ai-translation-text_metadata.json +++ b/sdk/translation/azure-ai-translation-text/src/main/resources/META-INF/azure-ai-translation-text_metadata.json @@ -1 +1 @@ -{"flavor":"azure","apiVersions":{"TextTranslation":"2025-10-01-preview"},"crossLanguageDefinitions":{"com.azure.ai.translation.text.TextTranslationAsyncClient":"TextTranslation","com.azure.ai.translation.text.TextTranslationAsyncClient.getSupportedLanguages":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationAsyncClient.getSupportedLanguagesWithResponse":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationAsyncClient.translate":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationAsyncClient.translateWithResponse":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationAsyncClient.transliterate":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationAsyncClient.transliterateWithResponse":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationClient":"TextTranslation","com.azure.ai.translation.text.TextTranslationClient.getSupportedLanguages":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationClient.getSupportedLanguagesWithResponse":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationClient.translate":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationClient.translateWithResponse":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationClient.transliterate":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationClient.transliterateWithResponse":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationClientBuilder":"TextTranslation","com.azure.ai.translation.text.implementation.models.InputTextItem":"TextTranslation.InputTextItem","com.azure.ai.translation.text.implementation.models.TranslateBody":"TextTranslation.TranslateBody","com.azure.ai.translation.text.implementation.models.TranslationResult":"TextTranslation.TranslationResult","com.azure.ai.translation.text.implementation.models.TransliterateBody":"TextTranslation.TransliterateBody","com.azure.ai.translation.text.implementation.models.TransliterateResult":"TextTranslation.TransliterateResult","com.azure.ai.translation.text.models.DetectedLanguage":"TextTranslation.DetectedLanguage","com.azure.ai.translation.text.models.GetSupportedLanguagesResult":"TextTranslation.GetSupportedLanguagesResult","com.azure.ai.translation.text.models.LanguageDirectionality":"TextTranslation.LanguageDirectionality","com.azure.ai.translation.text.models.LanguageScript":"TextTranslation.LanguageScript","com.azure.ai.translation.text.models.ProfanityAction":"TextTranslation.ProfanityAction","com.azure.ai.translation.text.models.ProfanityMarker":"TextTranslation.ProfanityMarker","com.azure.ai.translation.text.models.ReferenceTextPair":"TextTranslation.ReferenceTextPair","com.azure.ai.translation.text.models.TextType":"TextTranslation.TextType","com.azure.ai.translation.text.models.TranslateInputItem":"TextTranslation.TranslateInputItem","com.azure.ai.translation.text.models.TranslatedTextItem":"TextTranslation.TranslatedTextItem","com.azure.ai.translation.text.models.TranslationLanguage":"TextTranslation.TranslationLanguage","com.azure.ai.translation.text.models.TranslationTarget":"TextTranslation.TranslationTarget","com.azure.ai.translation.text.models.TranslationText":"TextTranslation.TranslationText","com.azure.ai.translation.text.models.TransliterableScript":"TextTranslation.TransliterableScript","com.azure.ai.translation.text.models.TransliteratedText":"TextTranslation.TransliteratedText","com.azure.ai.translation.text.models.TransliterationLanguage":"TextTranslation.TransliterationLanguage"},"generatedFiles":["src/main/java/com/azure/ai/translation/text/TextTranslationAsyncClient.java","src/main/java/com/azure/ai/translation/text/TextTranslationClient.java","src/main/java/com/azure/ai/translation/text/TextTranslationClientBuilder.java","src/main/java/com/azure/ai/translation/text/TextTranslationServiceVersion.java","src/main/java/com/azure/ai/translation/text/implementation/TextTranslationClientImpl.java","src/main/java/com/azure/ai/translation/text/implementation/models/InputTextItem.java","src/main/java/com/azure/ai/translation/text/implementation/models/TranslateBody.java","src/main/java/com/azure/ai/translation/text/implementation/models/TranslationResult.java","src/main/java/com/azure/ai/translation/text/implementation/models/TransliterateBody.java","src/main/java/com/azure/ai/translation/text/implementation/models/TransliterateResult.java","src/main/java/com/azure/ai/translation/text/implementation/models/package-info.java","src/main/java/com/azure/ai/translation/text/implementation/package-info.java","src/main/java/com/azure/ai/translation/text/models/DetectedLanguage.java","src/main/java/com/azure/ai/translation/text/models/GetSupportedLanguagesResult.java","src/main/java/com/azure/ai/translation/text/models/LanguageDirectionality.java","src/main/java/com/azure/ai/translation/text/models/LanguageScript.java","src/main/java/com/azure/ai/translation/text/models/ProfanityAction.java","src/main/java/com/azure/ai/translation/text/models/ProfanityMarker.java","src/main/java/com/azure/ai/translation/text/models/ReferenceTextPair.java","src/main/java/com/azure/ai/translation/text/models/TextType.java","src/main/java/com/azure/ai/translation/text/models/TranslateInputItem.java","src/main/java/com/azure/ai/translation/text/models/TranslatedTextItem.java","src/main/java/com/azure/ai/translation/text/models/TranslationLanguage.java","src/main/java/com/azure/ai/translation/text/models/TranslationTarget.java","src/main/java/com/azure/ai/translation/text/models/TranslationText.java","src/main/java/com/azure/ai/translation/text/models/TransliterableScript.java","src/main/java/com/azure/ai/translation/text/models/TransliteratedText.java","src/main/java/com/azure/ai/translation/text/models/TransliterationLanguage.java","src/main/java/com/azure/ai/translation/text/models/package-info.java","src/main/java/com/azure/ai/translation/text/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file +{"flavor":"azure","apiVersions":{"TextTranslation":"2026-06-06"},"crossLanguageDefinitions":{"com.azure.ai.translation.text.TextTranslationAsyncClient":"TextTranslation","com.azure.ai.translation.text.TextTranslationAsyncClient.getSupportedLanguages":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationAsyncClient.getSupportedLanguagesWithResponse":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationAsyncClient.translate":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationAsyncClient.translateWithResponse":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationAsyncClient.transliterate":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationAsyncClient.transliterateWithResponse":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationClient":"TextTranslation","com.azure.ai.translation.text.TextTranslationClient.getSupportedLanguages":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationClient.getSupportedLanguagesWithResponse":"TextTranslation.getSupportedLanguages","com.azure.ai.translation.text.TextTranslationClient.translate":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationClient.translateWithResponse":"TextTranslation.translate","com.azure.ai.translation.text.TextTranslationClient.transliterate":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationClient.transliterateWithResponse":"TextTranslation.transliterate","com.azure.ai.translation.text.TextTranslationClientBuilder":"TextTranslation","com.azure.ai.translation.text.implementation.models.InputTextItem":"TextTranslation.InputTextItem","com.azure.ai.translation.text.implementation.models.TranslateBody":"TextTranslation.TranslateBody","com.azure.ai.translation.text.implementation.models.TranslationResult":"TextTranslation.TranslationResult","com.azure.ai.translation.text.implementation.models.TransliterateBody":"TextTranslation.TransliterateBody","com.azure.ai.translation.text.implementation.models.TransliterateResult":"TextTranslation.TransliterateResult","com.azure.ai.translation.text.models.DetectedLanguage":"TextTranslation.DetectedLanguage","com.azure.ai.translation.text.models.GetSupportedLanguagesResult":"TextTranslation.GetSupportedLanguagesResult","com.azure.ai.translation.text.models.LanguageDirectionality":"TextTranslation.LanguageDirectionality","com.azure.ai.translation.text.models.LanguageScript":"TextTranslation.LanguageScript","com.azure.ai.translation.text.models.ProfanityAction":"TextTranslation.ProfanityAction","com.azure.ai.translation.text.models.ProfanityMarker":"TextTranslation.ProfanityMarker","com.azure.ai.translation.text.models.ReferenceTextPair":"TextTranslation.ReferenceTextPair","com.azure.ai.translation.text.models.TextType":"TextTranslation.TextType","com.azure.ai.translation.text.models.TranslateInputItem":"TextTranslation.TranslateInputItem","com.azure.ai.translation.text.models.TranslatedTextItem":"TextTranslation.TranslatedTextItem","com.azure.ai.translation.text.models.TranslationGender":"TextTranslation.TranslationGender","com.azure.ai.translation.text.models.TranslationLanguage":"TextTranslation.TranslationLanguage","com.azure.ai.translation.text.models.TranslationTarget":"TextTranslation.TranslationTarget","com.azure.ai.translation.text.models.TranslationText":"TextTranslation.TranslationText","com.azure.ai.translation.text.models.TranslationTone":"TextTranslation.TranslationTone","com.azure.ai.translation.text.models.TransliterableScript":"TextTranslation.TransliterableScript","com.azure.ai.translation.text.models.TransliteratedText":"TextTranslation.TransliteratedText","com.azure.ai.translation.text.models.TransliterationLanguage":"TextTranslation.TransliterationLanguage"},"generatedFiles":["src/main/java/com/azure/ai/translation/text/TextTranslationAsyncClient.java","src/main/java/com/azure/ai/translation/text/TextTranslationClient.java","src/main/java/com/azure/ai/translation/text/TextTranslationClientBuilder.java","src/main/java/com/azure/ai/translation/text/TextTranslationServiceVersion.java","src/main/java/com/azure/ai/translation/text/implementation/TextTranslationClientImpl.java","src/main/java/com/azure/ai/translation/text/implementation/models/InputTextItem.java","src/main/java/com/azure/ai/translation/text/implementation/models/TranslateBody.java","src/main/java/com/azure/ai/translation/text/implementation/models/TranslationResult.java","src/main/java/com/azure/ai/translation/text/implementation/models/TransliterateBody.java","src/main/java/com/azure/ai/translation/text/implementation/models/TransliterateResult.java","src/main/java/com/azure/ai/translation/text/implementation/models/package-info.java","src/main/java/com/azure/ai/translation/text/implementation/package-info.java","src/main/java/com/azure/ai/translation/text/models/DetectedLanguage.java","src/main/java/com/azure/ai/translation/text/models/GetSupportedLanguagesResult.java","src/main/java/com/azure/ai/translation/text/models/LanguageDirectionality.java","src/main/java/com/azure/ai/translation/text/models/LanguageScript.java","src/main/java/com/azure/ai/translation/text/models/ProfanityAction.java","src/main/java/com/azure/ai/translation/text/models/ProfanityMarker.java","src/main/java/com/azure/ai/translation/text/models/ReferenceTextPair.java","src/main/java/com/azure/ai/translation/text/models/TextType.java","src/main/java/com/azure/ai/translation/text/models/TranslateInputItem.java","src/main/java/com/azure/ai/translation/text/models/TranslatedTextItem.java","src/main/java/com/azure/ai/translation/text/models/TranslationGender.java","src/main/java/com/azure/ai/translation/text/models/TranslationLanguage.java","src/main/java/com/azure/ai/translation/text/models/TranslationTarget.java","src/main/java/com/azure/ai/translation/text/models/TranslationText.java","src/main/java/com/azure/ai/translation/text/models/TranslationTone.java","src/main/java/com/azure/ai/translation/text/models/TransliterableScript.java","src/main/java/com/azure/ai/translation/text/models/TransliteratedText.java","src/main/java/com/azure/ai/translation/text/models/TransliterationLanguage.java","src/main/java/com/azure/ai/translation/text/models/package-info.java","src/main/java/com/azure/ai/translation/text/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file diff --git a/sdk/translation/azure-ai-translation-text/src/samples/java/com/azure/ai/translation/text/TranslateLlm.java b/sdk/translation/azure-ai-translation-text/src/samples/java/com/azure/ai/translation/text/TranslateLlm.java index 5d68a8e9ba12..5b8d9ca2676a 100644 --- a/sdk/translation/azure-ai-translation-text/src/samples/java/com/azure/ai/translation/text/TranslateLlm.java +++ b/sdk/translation/azure-ai-translation-text/src/samples/java/com/azure/ai/translation/text/TranslateLlm.java @@ -7,8 +7,10 @@ import com.azure.ai.translation.text.models.TranslateInputItem; import com.azure.ai.translation.text.models.TranslatedTextItem; +import com.azure.ai.translation.text.models.TranslationGender; import com.azure.ai.translation.text.models.TranslationTarget; import com.azure.ai.translation.text.models.TranslationText; +import com.azure.ai.translation.text.models.TranslationTone; import com.azure.core.credential.AzureKeyCredential; /** @@ -44,8 +46,8 @@ public static void main(final String[] args) { TranslationTarget target = new TranslationTarget("es") .setDeploymentName("gpt-4o-mini") - .setTone("formal") - .setGender("female"); + .setTone(TranslationTone.FORMAL) + .setGender(TranslationGender.FEMALE); TranslateInputItem input = new TranslateInputItem( "Doctor is available next Monday. Do you want to schedule an appointment?", Arrays.asList(target)); diff --git a/sdk/translation/azure-ai-translation-text/src/test/java/com/azure/ai/translation/text/TextTranslationClientBase.java b/sdk/translation/azure-ai-translation-text/src/test/java/com/azure/ai/translation/text/TextTranslationClientBase.java index 6e2759550d6d..d9d601c1b848 100644 --- a/sdk/translation/azure-ai-translation-text/src/test/java/com/azure/ai/translation/text/TextTranslationClientBase.java +++ b/sdk/translation/azure-ai-translation-text/src/test/java/com/azure/ai/translation/text/TextTranslationClientBase.java @@ -36,7 +36,9 @@ public class TextTranslationClientBase extends TestProxyTestBase { public void beforeTest() { if (getTestMode() != TestMode.LIVE) { interceptorManager.addMatchers(Collections.singletonList(new CustomMatcher() - .setHeadersKeyOnlyMatch(Arrays.asList("Ocp-Apim-Subscription-Region", "Ocp-Apim-ResourceId")))); + .setHeadersKeyOnlyMatch(Arrays.asList("Ocp-Apim-Subscription-Region", "Ocp-Apim-ResourceId")) + // Ignore api-version so recordings made with 2025-10-01-preview match requests using 2026-06-06. + .setIgnoredQueryParameters(Arrays.asList("api-version")))); } } diff --git a/sdk/translation/azure-ai-translation-text/tsp-location.yaml b/sdk/translation/azure-ai-translation-text/tsp-location.yaml index 3f1727870ec7..5d79fdfee6c5 100644 --- a/sdk/translation/azure-ai-translation-text/tsp-location.yaml +++ b/sdk/translation/azure-ai-translation-text/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/translation/data-plane/TextTranslation -commit: 90d45385f572aaf6354fa8b18b0125e7b99d6785 +commit: 8e36108754d91c2f4046902510bdcf6fdebedc0f repo: Azure/azure-rest-api-specs additionalDirectories: From 236500d0122879ee412f918ed1ff4a79fd6ebb8e Mon Sep 17 00:00:00 2001 From: Jiarui Guo Date: Mon, 20 Apr 2026 13:41:27 -0700 Subject: [PATCH 2/5] Update CHANGELOG for 2.0.0 GA release --- sdk/translation/azure-ai-translation-text/CHANGELOG.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sdk/translation/azure-ai-translation-text/CHANGELOG.md b/sdk/translation/azure-ai-translation-text/CHANGELOG.md index 2875e06bf36d..b19f98852891 100644 --- a/sdk/translation/azure-ai-translation-text/CHANGELOG.md +++ b/sdk/translation/azure-ai-translation-text/CHANGELOG.md @@ -1,14 +1,16 @@ # Release History -## 2.0.0-beta.2 (Unreleased) +## 2.0.0 (2026-06-06) ### Features Added -### Breaking Changes +- GA release of the Azure AI Translator API 2026-06-06, including translations using LLM models, adaptive custom translation, tone variant translations, and gender-specific translations. +- Added `TranslationTone` and `TranslationGender` enum types for strongly-typed tone and gender options on `TranslationTarget`. -### Bugs Fixed +### Breaking Changes -### Other Changes +- `TranslationTarget.setTone` and `TranslationTarget.setGender` now accept `TranslationTone` and `TranslationGender` enums instead of `String`. +- Removed `grade` property from `TranslationTarget`. ## 1.1.8 (2026-01-29) From 2af73aee7c8a427373706f57cda22f0b3ca04210 Mon Sep 17 00:00:00 2001 From: Jiarui Guo Date: Mon, 20 Apr 2026 13:47:49 -0700 Subject: [PATCH 3/5] Update version_client.txt for azure-ai-translation-text 2.0.0 --- eng/versioning/version_client.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index 9c47ec179fc1..83303574ffe7 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -57,7 +57,7 @@ com.azure:azure-ai-projects;2.0.0;2.0.1 com.azure:azure-ai-speech-transcription;1.0.0-beta.2;1.0.0-beta.3 com.azure:azure-ai-textanalytics;5.5.12;5.6.0-beta.1 com.azure:azure-ai-textanalytics-perf;1.0.0-beta.1;1.0.0-beta.1 -com.azure:azure-ai-translation-text;1.1.8;2.0.0-beta.2 +com.azure:azure-ai-translation-text;1.1.8;2.0.0 com.azure:azure-ai-translation-document;1.0.7;1.1.0-beta.1 com.azure:azure-ai-vision-face;1.0.0-beta.2;1.0.0-beta.3 com.azure:azure-ai-voicelive;1.0.0-beta.5;1.0.0-beta.6 From 8fb629a2aacc527fc489d04583b68e1f1bb495f7 Mon Sep 17 00:00:00 2001 From: Jiarui Guo Date: Mon, 20 Apr 2026 14:01:38 -0700 Subject: [PATCH 4/5] Fix CHANGELOG: use (Unreleased) instead of future date --- sdk/translation/azure-ai-translation-text/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sdk/translation/azure-ai-translation-text/CHANGELOG.md b/sdk/translation/azure-ai-translation-text/CHANGELOG.md index b19f98852891..ecfbc9c12378 100644 --- a/sdk/translation/azure-ai-translation-text/CHANGELOG.md +++ b/sdk/translation/azure-ai-translation-text/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 2.0.0 (2026-06-06) +## 2.0.0 (Unreleased) ### Features Added @@ -12,6 +12,10 @@ - `TranslationTarget.setTone` and `TranslationTarget.setGender` now accept `TranslationTone` and `TranslationGender` enums instead of `String`. - Removed `grade` property from `TranslationTarget`. +### Bugs Fixed + +### Other Changes + ## 1.1.8 (2026-01-29) ### Other Changes From 5d3bf62d3205c5acadce28e0ea6cfa34c74966b6 Mon Sep 17 00:00:00 2001 From: Jiarui Guo Date: Mon, 20 Apr 2026 14:15:36 -0700 Subject: [PATCH 5/5] Fix codegen whitespace formatting in TranslationGender and TranslationTone --- .../ai/translation/text/models/TranslationGender.java | 8 ++++---- .../azure/ai/translation/text/models/TranslationTone.java | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java index 5680b4877bae..1ca50894ce21 100644 --- a/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java +++ b/sdk/translation/azure-ai-translation-text/src/main/java/com/azure/ai/translation/text/models/TranslationGender.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.translation.text.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * Desired gender for the translated text. */ public final class TranslationGender extends ExpandableStringEnum { + /** * Neutral gender. */ @@ -32,7 +32,7 @@ public final class TranslationGender extends ExpandableStringEnum { + /** * Neutral tone. */ @@ -32,7 +32,7 @@ public final class TranslationTone extends ExpandableStringEnum /** * Creates a new instance of TranslationTone value. - * + * * @deprecated Use the {@link #fromString(String)} factory method. */ @Generated @@ -42,7 +42,7 @@ public TranslationTone() { /** * Creates or finds a TranslationTone from its string representation. - * + * * @param name a name to look for. * @return the corresponding TranslationTone. */ @@ -53,7 +53,7 @@ public static TranslationTone fromString(String name) { /** * Gets known TranslationTone values. - * + * * @return known TranslationTone values. */ @Generated