# gt: General Translation CLI tool: SRT
URL: https://generaltranslation.com/zh/docs/cli/reference/formats/srt-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 使用 General Translation CLI 翻译 SubRip 字幕文件。SRT 文件格式的 API 参考。

CLI 会翻译 SubRip (`.srt`) 字幕文件中的字幕条目文本，同时保留字幕条目编号、时间戳、分隔符和标记。需要 `gt` 2.22.2 或更高版本才能支持此格式。

## 概览 [#overview]

| 主题                | 说明                        |
| ----------------- | ------------------------- |
| [配置](#config)     | 匹配源文件与译文文件的 `.srt` 路径。    |
| [翻译行为](#behavior) | 保留字幕条目编号、时间轴行、分隔符和字幕标记。     |
| [编码](#encoding)   | 解码并还原带字节顺序标记 (BOM) 的文本编码。 |
| [验证](#validation) | 跳过空文件，并拒绝不含任何有效字幕条目的文档。   |

## 配置 [#config]

在 `files` 下添加一个 `srt` 条目，并在其中设置 `include` 数组，数组元素为 glob 模式。使用 `[locale]` 占位符，以便 CLI 找到源文件，并将翻译保存到对应的区域设置路径下。

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "fr"],
  "files": {
    "srt": {
      "include": ["subtitles/[locale]/**/*.srt"]
    }
  }
}
```

使用此配置时，源字幕来自 `subtitles/en/`，翻译后的字幕保存在 `subtitles/es/` 和 `subtitles/fr/` 下。使用 [`transform`](/docs/cli/reference/config#files) 重命名 `output` 路径。

SRT 仅支持 `SRT` 输出格式，无法通过 `transformationFormat` 转换为其他文件格式。有关通用的文件键，请参阅[配置参考](/docs/cli/reference/config#files)。

## 翻译行为 [#behavior]

仅翻译字幕条目 (cue) 文本。流水线会保留源文档中的以下部分不变：

* 字幕条目编号
* 开始和结束时间戳，包括位置数据
* 空行分隔符以及有效字幕条目之外的内容
* 字幕标记，例如 `<i>`、`<b>`、`<u>`、`<font>`，以及开头的 `{\an1}`–`{\an9}` 位置标签

译文行沿用该字幕条目检测到的源换行符，未改动的分隔符则保持原样。对于未更改的字幕条目，其现有翻译可以复用，除非你选择强制重新翻译。

## 编码 [#encoding]

对于不带字节顺序标记的 SRT 文件，CLI 会按 UTF-8 读取。如果文件以字节顺序标记 (BOM) 开头，CLI 支持 UTF-8、UTF-16 (小端序或大端序) 以及 UTF-32 (小端序或大端序) 。下载的翻译文件会沿用源文件的编码和字节顺序标记。

不带字节顺序标记的 UTF-16 或 UTF-32 文件会被当作 UTF-8 处理。请在翻译前为其添加相应的字节顺序标记，或将其另存为 UTF-8。

## 验证 [#validation]

CLI 会跳过空的 SRT 文件，并在命令摘要中列出该文件。API 要求至少包含一个带有有效时间轴行的字幕条目。缺少有效时间轴行的块会保持原样，不会被翻译。

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
