Amazon Translate リアルタイム翻訳APIの簡易モックです。
- TranslateText
- TranslateDocument (text/htmlのみ)
- ゼロコンフィグですぐに使い始められる
- 固定応答ではなく、en <-> ja のローマ字変換を行う
- 外部サービスに依存せずスタンドアローンで動作する
Source | Target | 挙動 | Example |
---|---|---|---|
ja (auto) | en | 日本語をローマ字に変換する | 明日は晴れです -> ashita ha hare desu |
en (auto) | ja | ローマ字をひらがなに変換する | ashita ha hare desu -> あした は はれ です |
全て | en・ja以外 | 指定したパラメータをJSONで出力する | (パラメータに指定した値) |
翻訳対象の本文に以下のコマンドを入れると、そのコマンドに応じた応答を返します。
注意: エラー応答の再現度は高くありません。エラー応答の文字列を完全一致で比較するような実装は避け、 必要に応じてAmazonの本来のエラー応答を確認してください。 Amazon から得られるエラー情報に近づけるための Pull Request は常に歓迎しています。
コマンド文字列 | 挙動 |
---|---|
@return RequestedBody | リクエストした内容のJSONをそのまま翻訳結果の本文として返す |
@sleep {SECONDS} | 指定した秒数だけ待機して応答を返す。他のコマンドと併用可 |
@raise ThrottlingException | ThrottlingException (status code: 429) を返却する |
@raise InternalServerException | InternalServerException (status code: 500) を返却する |
@raise LimitExceededException | LimitExceededException (status code: 400) を返却する |
@raise ServiceUnavailableException | ServiceUnavailableException (status code: 500) を返却する |
@raise TooManyRequestsException | TooManyRequestsException (status code: 400) を返却する |
@raise UnsupportedLanguagePairException | UnsupportedLanguagePairException (status code: 400) を返却する |
@return SourceLanguageCode {code} | SourceLanguageCodeフィールドに指定したコードを入れて返却する。@raiseとは併用不可 |
$ docker pull dash14/amazon-translate-simple-mock:latest
$ docker run -it dash14/amazon-translate-simple-mock
$ git clone https://github.com/dash14/amazon-translate-simple-mock.git
$ cd amazon-translate-simple-mock/
$ docker compose up -d app
$ aws translate translate-text \
--endpoint-url http://localhost:8080 \
--source-language-code ja \
--target-language-code en \
--settings Formality=FORMAL \
--text "明日は晴れです。" \
--terminology-names "custom"
レスポンス:
{
"TranslatedText": "ashita ha hare desu.",
"SourceLanguageCode": "ja",
"TargetLanguageCode": "en",
"AppliedTerminologies": [
{
"Name": "custom",
"Terms": []
}
],
"AppliedSettings": {
"Formality": "FORMAL"
}
}
$ echo "<p>明日は晴れです。</p>" > source.txt
$ aws translate translate-document \
--endpoint-url http://localhost:8080 \
--document '{"ContentType":"text/html"}' \
--source-language-code ja \
--target-language-code en \
--settings Formality=FORMAL \
--document-content fileb://source.txt \
--terminology-names "custom"
レスポンス:
{
"TranslatedDocument": {
"Content": "PHA+YXNoaXRhIGhhIGhhcmUgZGVzdS48L3A+"
},
"SourceLanguageCode": "ja",
"TargetLanguageCode": "en",
"AppliedTerminologies": [
{
"Name": "custom",
"Terms": []
}
],
"AppliedSettings": {
"Formality": "FORMAL"
}
}
$ docker compose down
MIT license です。
詳細はLICENSEファイルを参照してください。
対応APIの追加やエラー差異の改善、バグやドキュメント誤記などありましたら、 ぜひ気軽に Issue や Pull Request をお送りください!