はじめに
今回は Amazon Translateを利用して翻訳機能を試します。
今回作成したAmazon Translate の翻訳機能を試すページ
準備
[Lambda , API Gatewayの準備をします。]
(https://qiita.com/tanaka_takurou/items/3f93295de6cff060ec09)
[Amazon Translateの資料]
Amazon Translate
WEBページ・API作成
GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLやJSONを返す処理を作成します。
また、Translate を使用するため aws-sdk-go を利用します。
[参考資料]
AWS SDK for Go API Reference
aws translateコマンドをシェルのエイリアスに設定すると便利
Amazon Translateを使ってみた&自動翻訳付きチャットを作ってみた
翻訳するには Text を使う。
main.go
func translateText(message string, sourceLanguageCode string, targetLanguageCode string)(string, error) {
svc := translate.New(session.New(), &aws.Config{
Region: aws.String("ap-northeast-1"),
})
params := &translate.TextInput{
Text: aws.String(message),
SourceLanguageCode: aws.String(sourceLanguageCode),
TargetLanguageCode: aws.String(targetLanguageCode),
}
res, err := svc.Text(params)
if err != nil {
log.Print(err)
return "", err
}
return aws.StringValue(res.TranslatedText), nil
}
※ 入力された文字列が日本語か英語か判断するため、今回は簡易的にアルファベットを含むかどうかで判定しました。
main.go
func sendMessage(message string)(string, error) {
if regexp.MustCompile(`[a-zA-Z]`).Match([]byte(message)) {
return translateText(message, languageCodeEn, languageCodeJa)
}
return translateText(message, languageCodeJa, languageCodeEn)
}
終わりに
今回はAmazon Translateを試しました。