Compartilhar via


Biblioteca de clientes REST do Azure TextTranslation para JavaScript – versão 1.0.0-beta.1

A Tradução de Texto é um recurso da API REST baseada em nuvem do serviço Tradutor que usa a tecnologia de tradução automática neural para permitir tradução rápida e precisa de texto de origem para destino em tempo real em todos os idiomas compatíveis.

Os seguintes métodos são compatíveis com o recurso de Tradução de Texto:

Idiomas. Retorna uma lista de idiomas compatíveis com as operações de Traduzir, Transliterar e Pesquisar no Dicionário.

Traduzir. Renderiza um texto de idioma de origem para vários textos de idioma de destino com apenas uma solicitação.

Transliterar. Converte caracteres ou letras de um idioma de origem nos caracteres ou letras correspondentes de um idioma de destino.

Detectar. Retorna o código do idioma do código-fonte e uma variável booliana que determina se o idioma detectado é compatível com a tradução de texto e a transliteração.

Pesquisa no dicionário. Retorna palavras equivalentes para o termo de origem no idioma de destino.

Exemplo de dicionário Retorna exemplos de contexto e estrutura gramatical para o termo de origem e o par de termos de destino.

Confie fortemente em nossos documentos de cliente REST para usar esta biblioteca

Links principais:

Introdução

Ambientes com suporte no momento

  • Versões LTS do Node.js
  • Versões mais recentes do Edge, Chrome, Safar e Firefox

Pré-requisitos

  • Um serviço tradutor existente ou um recurso dos Serviços Cognitivos.

Instalar o pacote @azure-rest/ai-translation-text

Instale a biblioteca de clientes REST de Tradução de Texto do Azure para JavaScript com npm:

npm install @azure-rest/ai-translation-text

Criar um recurso de serviço tradutor

Você pode criar um recurso de Tradutor após Criar um recurso de Tradutor.

Suporte ao navegador

Pacote JavaScript

Para usar essa biblioteca de clientes no navegador, primeiro você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento.

Autenticar o cliente

A interação com o serviço que usa a biblioteca de clientes começa com a criação de uma instância da classe TextTranslationClient . Você precisará de uma chave de API ou TokenCredential de instanciar um objeto cliente. Para obter mais informações sobre como autenticar com serviços cognitivos, consulte Autenticar solicitações para o Serviço de Tradução.

Obter uma chave de API

Você pode obter as endpointinformações do recurso e API keyRegion dos Serviços Cognitivos ou do recurso de serviço tradutor no Portal do Azure.

Como alternativa, use o snippet da CLI do Azure abaixo para obter a chave de API do recurso de serviço tradutor.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Criar um TextTranslationClient usando uma chave de API e uma credencial de região

Depois de ter o valor da chave de API e região, crie um TranslatorCredential.

Com o valor do TranslatorCredential , você pode criar o TextTranslationClient:

const translateCedential = new TranslatorCredential(apiKey, region);
const translationClient = TextTranslationClient(endpoint, translateCedential);

Exemplos

A seção a seguir fornece vários snippets de código usando o clientcriado acima e aborda os main recursos presentes nesta biblioteca de clientes.

Obter idiomas com suporte

Obtém o conjunto de idiomas atualmente compatíveis com outras operações do Tradutor.

const langResponse = await translationClient.path("/languages").get();

if (isUnexpected(langResponse)) {
  throw langResponse.body;
}

const languages = langResponse.body;

if (languages.translation) {
  console.log("Translated languages:");
  for (const key in languages.translation) {
    const translationLanguage = languages.translation[key];
    console.log(`${key} -- name: ${translationLanguage.name} (${translationLanguage.nativeName})`);
  }
}

if (languages.transliteration) {
  console.log("Transliteration languages:");
  for (const key in languages.transliteration) {
    const transliterationLanguage = languages.transliteration[key];
    console.log(
      `${key} -- name: ${transliterationLanguage.name} (${transliterationLanguage.nativeName})`
    );
  }
}

if (languages.dictionary) {
  console.log("Dictionary languages:");
  for (const key in languages.dictionary) {
    const dictionaryLanguage = languages.dictionary[key];
    console.log(
      `${key} -- name: ${dictionaryLanguage.name} (${dictionaryLanguage.nativeName}), supported target languages count: ${dictionaryLanguage.translations.length}`
    );
  }
}

Consulte a documentação do serviço para obter uma discussão conceitual sobre idiomas.

Translate

Renderiza um texto de idioma de origem para vários textos de idioma de destino com apenas uma solicitação.

const inputText = [{ text: "This is a test." }];
const parameters = {
  to: "cs",
  from: "en",
};
const translateResponse = await translationClient.path("/translate").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(translateResponse)) {
  throw translateResponse.body;
}

const translations = translateResponse.body;
for (const translation of translations) {
  console.log(
    `Text was translated to: '${translation?.translations[0]?.to}' and the result is: '${translation?.translations[0]?.text}'.`
  );
}

Consulte a documentação do serviço para obter uma discussão conceitual sobre tradução.

Transliterate

Converte caracteres ou letras de um idioma de origem nos caracteres ou letras correspondentes de um idioma de destino.

const inputText = [{ text: "这是个测试。" }];
const parameters = {
  language: "zh-Hans",
  fromScript: "Hans",
  toScript: "Latn",
};
const transliterateResponse = await translationClient.path("/transliterate").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(transliterateResponse)) {
  throw transliterateResponse.body;
}

const translations = transliterateResponse.body;
for (const transliteration of translations) {
  console.log(
    `Input text was transliterated to '${transliteration?.script}' script. Transliterated text: '${transliteration?.text}'.`
  );
}

Consulte a documentação do serviço para obter uma discussão conceitual sobre transliteração.

Interromper a frase

Identifica o posicionamento dos limites de frase em uma parte do texto.

const inputText = [{ text: "zhè shì gè cè shì。" }];
const parameters = {
  language: "zh-Hans",
  script: "Latn",
};
const breakSentenceResponse = await translationClient.path("/breaksentence").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(breakSentenceResponse)) {
  throw breakSentenceResponse.body;
}

const breakSentences = breakSentenceResponse.body;
for (const breakSentence of breakSentences) {
  console.log(`The detected sentece boundaries: '${breakSentence?.sentLen.join(", ")}'.`);
}

Consulte a documentação do serviço para obter uma discussão conceitual sobre a frase de interrupção.

Pesquisa no dicionário

Retorna palavras equivalentes para o termo de origem no idioma de destino.

const inputText = [{ text: "fly" }];
const parameters = {
  to: "es",
  from: "en",
};
const dictionaryResponse = await translationClient.path("/dictionary/lookup").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(dictionaryResponse)) {
  throw dictionaryResponse.body;
}

const dictionaryEntries = dictionaryResponse.body;
for (const dictionaryEntry of dictionaryEntries) {
  console.log(
    `For the given input ${dictionaryEntry?.translations?.length} entries were found in the dictionary.`
  );
  console.log(
    `First entry: '${dictionaryEntry?.translations[0]?.displayTarget}', confidence: ${dictionaryEntry?.translations[0]?.confidence}.`
  );
}

Consulte a documentação do serviço para obter uma discussão conceitual sobre a pesquisa de dicionário.

Exemplos de dicionário

Retorna exemplos de contexto e estrutura gramatical para o termo de origem e o par de termos de destino.

const inputText = [{ text: "fly", translation: "volar" }];
const parameters = {
  to: "es",
  from: "en",
};
const dictionaryResponse = await translationClient.path("/dictionary/examples").post({
  body: inputText,
  queryParameters: parameters,
});

if (isUnexpected(dictionaryResponse)) {
  throw dictionaryResponse.body;
}

const dictionaryExamples = dictionaryResponse.body;
for (const dictionaryExample of dictionaryExamples) {
  console.log(
    `For the given input ${dictionaryExample?.examples?.length} examples were found in the dictionary.`
  );
  const firstExample = dictionaryExample?.examples[0];
  console.log(
    `Example: '${firstExample.targetPrefix + firstExample.targetTerm + firstExample.targetSuffix}'.`
  );
}

Consulte a documentação do serviço para obter uma discussão conceitual sobre exemplos de dicionário.

Solução de problemas

Quando você interage com o Serviço de Tradução usando a biblioteca de clientes TextTranslator, os erros retornados pelo serviço Tradutor correspondem aos mesmos códigos http status retornados para solicitações de API REST.

Por exemplo, se você enviar uma solicitação de tradução sem um idioma de tradução de destino, um 400 erro será retornado, indicando "Solicitação Incorreta".

Você pode encontrar os diferentes códigos de erro retornados pelo serviço na Documentação do Serviço.

Registro em log

A habilitação do log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o log pode ser habilitado no runtime chamando setLogLevel em @azure/logger:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Para obter instruções mais detalhadas sobre como habilitar logs, veja os documentos do pacote @azure/logger.