使用术语表翻译输入的文本。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
Go
试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Go 设置说明进行操作。如需了解详情,请参阅 Cloud Translation Go API 参考文档。
如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
import (
"context"
"fmt"
"io"
translate "cloud.google.com/go/translate/apiv3"
"cloud.google.com/go/translate/apiv3/translatepb"
)
// translateTextWithGlossary translates input text and returns translated text.
func translateTextWithGlossary(w io.Writer, projectID string, location string, sourceLang string, targetLang string, text string, glossaryID string) error {
// projectID := "my-project-id"
// location := "us-central1"
// sourceLang := "en"
// targetLang := "ja"
// text := "Hello world"
// glossaryID := "your-glossary-id"
ctx := context.Background()
client, err := translate.NewTranslationClient(ctx)
if err != nil {
return fmt.Errorf("NewTranslationClient: %w", err)
}
defer client.Close()
req := &translatepb.TranslateTextRequest{
Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
SourceLanguageCode: sourceLang,
TargetLanguageCode: targetLang,
MimeType: "text/plain", // Mime types: "text/plain", "text/html"
Contents: []string{text},
GlossaryConfig: &translatepb.TranslateTextGlossaryConfig{
Glossary: fmt.Sprintf("projects/%s/locations/%s/glossaries/%s", projectID, location, glossaryID),
},
}
resp, err := client.TranslateText(ctx, req)
if err != nil {
return fmt.Errorf("TranslateText: %w", err)
}
// Display the translation for each input text provided
for _, translation := range resp.GetGlossaryTranslations() {
fmt.Fprintf(w, "Translated text: %v\n", translation.GetTranslatedText())
}
return nil
}
Java
试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Java 设置说明进行操作。如需了解详情,请参阅 Cloud Translation Java API 参考文档。
如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
import com.google.cloud.translate.v3.GlossaryName;
import com.google.cloud.translate.v3.LocationName;
import com.google.cloud.translate.v3.TranslateTextGlossaryConfig;
import com.google.cloud.translate.v3.TranslateTextRequest;
import com.google.cloud.translate.v3.TranslateTextResponse;
import com.google.cloud.translate.v3.Translation;
import com.google.cloud.translate.v3.TranslationServiceClient;
import java.io.IOException;
public class TranslateTextWithGlossary {
public static void translateTextWithGlossary() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "YOUR-PROJECT-ID";
// Supported Languages: https://cloud.google.com/translate/docs/languages
String sourceLanguage = "your-source-language";
String targetLanguage = "your-target-language";
String text = "your-text";
String glossaryId = "your-glossary-display-name";
translateTextWithGlossary(projectId, sourceLanguage, targetLanguage, text, glossaryId);
}
// Translates a given text using a glossary.
public static void translateTextWithGlossary(
String projectId,
String sourceLanguage,
String targetLanguage,
String text,
String glossaryId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (TranslationServiceClient client = TranslationServiceClient.create()) {
// Supported Locations: `global`, [glossary location], or [model location]
// Glossaries must be hosted in `us-central1`
// Custom Models must use the same location as your model. (us-central1)
String location = "us-central1";
LocationName parent = LocationName.of(projectId, location);
GlossaryName glossaryName = GlossaryName.of(projectId, location, glossaryId);
TranslateTextGlossaryConfig glossaryConfig =
TranslateTextGlossaryConfig.newBuilder().setGlossary(glossaryName.toString()).build();
// Supported Mime Types: https://cloud.google.com/translate/docs/supported-formats
TranslateTextRequest request =
TranslateTextRequest.newBuilder()
.setParent(parent.toString())
.setMimeType("text/plain")
.setSourceLanguageCode(sourceLanguage)
.setTargetLanguageCode(targetLanguage)
.addContents(text)
.setGlossaryConfig(glossaryConfig)
.build();
TranslateTextResponse response = client.translateText(request);
// Display the translation for each input text provided
for (Translation translation : response.getGlossaryTranslationsList()) {
System.out.printf("Translated text: %s\n", translation.getTranslatedText());
}
}
}
}
Node.js
试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Node.js 设置说明进行操作。如需了解详情,请参阅 Cloud Translation Node.js API 参考文档。
如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'global';
// const glossaryId = 'YOUR_GLOSSARY_ID';
// const text = 'text to translate';
// Imports the Google Cloud Translation library
const {TranslationServiceClient} = require('@google-cloud/translate');
// Instantiates a client
const translationClient = new TranslationServiceClient();
async function translateTextWithGlossary() {
const glossaryConfig = {
glossary: `projects/${projectId}/locations/${location}/glossaries/${glossaryId}`,
};
// Construct request
const request = {
parent: `projects/${projectId}/locations/${location}`,
contents: [text],
mimeType: 'text/plain', // mime types: text/plain, text/html
sourceLanguageCode: 'en',
targetLanguageCode: 'es',
glossaryConfig: glossaryConfig,
};
// Run request
const [response] = await translationClient.translateText(request);
for (const translation of response.glossaryTranslations) {
console.log(`Translation: ${translation.translatedText}`);
}
}
translateTextWithGlossary();
PHP
试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 PHP 设置说明进行操作。如需了解详情,请参阅 Cloud Translation PHP API 参考文档。
如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
use Google\Cloud\Translate\V3\Client\TranslationServiceClient;
use Google\Cloud\Translate\V3\TranslateTextGlossaryConfig;
use Google\Cloud\Translate\V3\TranslateTextRequest;
/**
* @param string $text The text to translate.
* @param string $targetLanguage Language to translate to.
* @param string $sourceLanguage Language of the source.
* @param string $projectId Your Google Cloud project ID.
* @param string $glossaryId Your glossary ID.
*/
function v3_translate_text_with_glossary(
string $text,
string $targetLanguage,
string $sourceLanguage,
string $projectId,
string $glossaryId
): void {
$translationServiceClient = new TranslationServiceClient();
$glossaryPath = $translationServiceClient->glossaryName(
$projectId,
'us-central1',
$glossaryId
);
$contents = [$text];
$formattedParent = $translationServiceClient->locationName(
$projectId,
'us-central1'
);
$glossaryConfig = new TranslateTextGlossaryConfig();
$glossaryConfig->setGlossary($glossaryPath);
// Optional. Can be "text/plain" or "text/html".
$mimeType = 'text/plain';
try {
$request = (new TranslateTextRequest())
->setContents($contents)
->setTargetLanguageCode($targetLanguage)
->setParent($formattedParent)
->setSourceLanguageCode($sourceLanguage)
->setGlossaryConfig($glossaryConfig)
->setMimeType($mimeType);
$response = $translationServiceClient->translateText($request);
// Display the translation for each input text provided
foreach ($response->getGlossaryTranslations() as $translation) {
printf('Translated text: %s' . PHP_EOL, $translation->getTranslatedText());
}
} finally {
$translationServiceClient->close();
}
}
Python
试用此示例之前,请按照 Cloud Translation 快速入门:使用客户端库中的 Python 设置说明进行操作。如需了解详情,请参阅 Cloud Translation Python API 参考文档。
如需向 Cloud Translation 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
from google.cloud import translate
def translate_text_with_glossary(
text: str = "YOUR_TEXT_TO_TRANSLATE",
project_id: str = "YOUR_PROJECT_ID",
glossary_id: str = "YOUR_GLOSSARY_ID",
) -> translate.TranslateTextResponse:
"""Translates a given text using a glossary.
Args:
text: The text to translate.
project_id: The ID of the GCP project that owns the glossary.
glossary_id: The ID of the glossary to use.
Returns:
The translated text."""
client = translate.TranslationServiceClient()
location = "us-central1"
parent = f"projects/{project_id}/locations/{location}"
glossary = client.glossary_path(
project_id, "us-central1", glossary_id # The location of the glossary
)
glossary_config = translate.TranslateTextGlossaryConfig(glossary=glossary)
# Supported language codes: https://cloud.google.com/translate/docs/languages
response = client.translate_text(
request={
"contents": [text],
"target_language_code": "ja",
"source_language_code": "en",
"parent": parent,
"glossary_config": glossary_config,
}
)
print("Translated text: \n")
for translation in response.glossary_translations:
print(f"\t {translation.translated_text}")
return response
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。