タイトルの通りですが、公式ドキュメントにサンプルが含まれていなかったので記事にしました。
サンプルソースはGithubにも置いてあります。
https://github.com/yuukimiyo/go-aws-translate-sample
簡単なコードですが、73言語(2021年1月現在)の双方向翻訳が可能な簡易ツールとして使えます。
Public Domainですので、コピペなどご自由に。
package main
import (
"flag"
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/translate"
)
func main() {
sourceText := flag.String("text", "これは翻訳のテストです", "source text")
sourceLC := flag.String("slc", "ja", "source language code [en|ja|fr]...")
targetLC := flag.String("tlc", "en", "target language code [en|ja|fr]...")
flag.Parse()
sess := session.Must(session.NewSession())
trs := translate.New(sess)
result, err := trs.Text(&translate.TextInput{
SourceLanguageCode: aws.String(*sourceLC),
TargetLanguageCode: aws.String(*targetLC),
Text: aws.String(*sourceText),
})
if err != nil {
panic(err)
}
fmt.Printf(*result.TranslatedText)
}
上記ドキュメントを読み、Text()関数で翻訳を実施するんだ、という事さえわかれば難しいことは何もないです。
手元で試したい人向け
前提
AWSアカウントと、次のポリシーをアタッチしたユーザが必要です。
- TranslateFullAccess
無料期間もありますがAWS Translateは有料サービスです、公式サイトの料金表は必ず確認してください。
AWS Translate
Go言語の実行環境が必要です。
厳密にどのバージョンからかは把握していませんが、開発/確認には次の環境を利用しています。
Ubuntu20.04(WSL2)
go1.15.7.linux-amd64
環境変数の設定
他言語のAWS SDKでも同じですが、次の環境変数をセットしておきます。
- AWS_REGION
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
bashの場合
export AWS_REGION=ap-northeast-1
export AWS_ACCESS_KEY_ID=<access key id>
export AWS_SECRET_ACCESS_KEY=<Secret access key>
fish shellの場合
set -x AWS_REGION ap-northeast-1
set -x AWS_ACCESS_KEY_ID <access key id>
set -x AWS_SECRET_ACCESS_KEY <Secret access key>
Download
git clone git@github.com:yuukimiyo/go-aws-translate-example.git
動かしてみる
デフォルトでは、日本語ー>英語の翻訳を行います。
go run main.go --text="翻訳のテストです"
> Testing the translation
言語を指定したい場合は次のように言語コードを指定します。
(例えば英語ー>日本語の場合)
go run main.go --text="This is test of AWS Translate" --slc="en" --tlc="ja"
> これは AWS 翻訳のテストです
利用可能な言語コードの一覧は次のURLにあります。
Supported Languages and Language Codes