Google翻译API如何翻译多个文件?

How to translate multi files by Google translation API?

我想翻译多个 .pptx 文件。我正在尝试使用 Google translate API

我的请求json文件如下。

{
    "source_language_code": "ja",
    "target_language_codes": ["en"],
    "input_configs": {
        "gcsSource": {
            "inputUri": "gs://project_name/1.pptx"
        },
        "gcsSource": {
            "inputUri": "gs://project_name/2.pptx"
        }
    },
    "output_config": {
        "gcsDestination": {
            "outputUriPrefix": "gs://project_name/ja-en/"
        }
    }
}

我在请求翻译时遇到此错误 API。

"description": "Invalid value at 'input_configs' (oneof), oneof field 'source' is already set. Cannot set 'gcsSource'"

然后我把第二个gcsSource改成了gcsSource1

{
    "source_language_code": "ja",
    "target_language_codes": ["en"],
    "input_configs": {
        "gcsSource": {
            "inputUri": "gs://project_name/1.pptx"
        },
        "gcsSource1": {
            "inputUri": "gs://project_name/2.pptx"
        }
    },
    "output_config": {
        "gcsDestination": {
            "outputUriPrefix": "gs://project_name/ja-en/"
        }
    }
}

结果如下。

"description": "Invalid JSON payload received. Unknown name \"gcsSource1\" at 'input_configs': Cannot find field."

gcsSource1the document

中使用了 2 次

我应该如何更改请求 json 文件,以便通过翻译翻译多个文件 API?

端点是这个。 "https://translation.googleapis.com/v3/projects/project_name/locations/us-central1:batchTranslateDocument"


单个文件翻译工作正常。

{
    "source_language_code": "ja",
    "target_language_codes": ["en"],
    "input_configs": {
        "gcsSource": {
            "inputUri": "gs://project_name/1.pptx"
        },
    },
    "output_config": {
        "gcsDestination": {
            "outputUriPrefix": "gs://project_name/ja-en/"
        }
    }
}

问题出在 input_configs 中使用的花括号。由于要使用多个元素,因此 input_configs 应该是一个数组。所以你应该把花括号换成方括号如下:

"input_configs": [
    {
      "gcsSource": {
        "inputUri": "gs://bucket_name/1.pptx"
      }
    },
    {
      "gcsSource": {
        "inputUri": "gs://bucket_name/2.pptx"
      }
    }
  ]

此外,您不能更改 json 键的名称,因为将传递给端点的 request.json 的结构应该如文档中所述。这就是当您将密钥更改为 “gcsSource1” 时,它会提示您“找不到字段”的错误。