Sample code for 30+ languages & platforms
Lianja

Amazon Translate Text

See more AWS Translate Examples

Demonstrates how to use the AWS Translate service to translate text from one language to another.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loRest = createobject("CkRest")

loAuthAws = createobject("CkAuthAws")
loAuthAws.AccessKey = "AWS_ACCESS_KEY"
loAuthAws.SecretKey = "AWS_SECRET_KEY"
loAuthAws.Region = "us-west-2"
loAuthAws.ServiceName = "translate"
loRest.SetAuthAws(loAuthAws)

// URL: https://translate.us-west-2.amazonaws.com/
llBTls = .T.
lnPort = 443
llBAutoReconnect = .T.
llSuccess = loRest.Connect("translate.us-west-2.amazonaws.com",lnPort,llBTls,llBAutoReconnect)
if (llSuccess <> .T.) then
    ? "ConnectFailReason: " + str(loRest.ConnectFailReason)
    ? loRest.LastErrorText
    release loRest
    release loAuthAws
    return
endif

// Translate text from English to German
loJson = createobject("CkJsonObject")
loJson.UpdateString("SourceLanguageCode","en")
loJson.UpdateString("TargetLanguageCode","de")
loJson.UpdateString("Text","This is the text to be translated")

loRest.AddHeader("Content-Type","application/x-amz-json-1.1")
loRest.AddHeader("X-Amz-Target","AWSShineFrontendService_20170701.TranslateText")

loSbRequestBody = createobject("CkStringBuilder")
loJson.EmitSb(loSbRequestBody)
loSbResponseBody = createobject("CkStringBuilder")
llSuccess = loRest.FullRequestSb("POST","/",loSbRequestBody,loSbResponseBody)
if (llSuccess <> .T.) then
    ? loRest.LastErrorText
    release loRest
    release loAuthAws
    release loJson
    release loSbRequestBody
    release loSbResponseBody
    return
endif

lnRespStatusCode = loRest.ResponseStatusCode
if (lnRespStatusCode >= 400) then
    ? "Response Status Code = " + str(lnRespStatusCode)
    ? "Response Header:"
    ? loRest.ResponseHeader
    ? "Response Body:"
    ? loSbResponseBody.GetAsString()
    release loRest
    release loAuthAws
    release loJson
    release loSbRequestBody
    release loSbResponseBody
    return
endif

loJsonResponse = createobject("CkJsonObject")
loJsonResponse.LoadSb(loSbResponseBody)
loJsonResponse.EmitCompact = .F.

? loJsonResponse.Emit()

// {
//   "SourceLanguageCode": "en",
//   "TargetLanguageCode": "de",
//   "TranslatedText": "Dies ist der zu �bersetzende Text"
// }

? loJsonResponse.StringOf("TranslatedText")


release loRest
release loAuthAws
release loJson
release loSbRequestBody
release loSbResponseBody
release loJsonResponse