ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

MarLant

retif ST4

用于处理SubRip/SRT字幕的Sublime Text插件

详细信息

  • 0.7.0
  • github.​com
  • github.​com
  • 11个月前
  • 2小时前
  • 2年前

安装

  • 总计 72
  • Win 39
  • Mac 23
  • Linux 10
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

读取文件

源代码
raw.​githubusercontent.​com

MarLant

关于

用于处理SubRip/SRT字幕的Sublime Text插件。

Sublime Text plugin MarLant

以下截图和演示视频中使用的UI主题和颜色方案:One Dark

特性

  • SubRip / SRT语法高亮显示
  • 各种处理字幕的功能
    • SubRip格式验证和额外检查
      • 文本行长度
      • 标题持续时间
      • 未闭合HTML标签
      • 等等
    • 标题管理
      • 重编号标题序数
      • 插入新的标题
      • 将标题分成两部分
      • 将两个标题合并为一个
      • 移动所有时间
    • 翻译
      • 在分割视图中打开翻译文件
      • 生成空翻译文件
      • 项目字典

可以从以下位置调用命令:

  • 命令面板(CTRL/COMMAND + SHIFT + P) (所有命令)
  • 标签页上下文菜单(创建/打开翻译文件)
  • 文本区域上下文菜单(插入、分割和合并标题)

演示

验证文件

https://user-images.githubusercontent.com/6904927/168665456-589fd743-86a5-4c4d-97b2-56a6ca40435a.mp4

合并和分割标题

https://user-images.githubusercontent.com/6904927/168662707-c775db65-b73e-4347-b8fa-209741ea85b9.mp4

创建和打开翻译文件

https://user-images.githubusercontent.com/6904927/168663924-b1236762-3207-480e-895e-aa7754f62cf5.mp4

安装

  • 通过Package Control
    • CTRL/COMMAND + SHIFT + PPackage Control: Install PackageMarLant
  • 手动
    • 克隆仓库并将它的文件夹(marlant)复制到/path/to/Sublime Text/Packages/
      • 可以通过CTRL/COMMAND + SHIFT + PPreferences: Browse Packages打开包的确切路径
      • 您可能想要跳过复制.gitattributes文件中列出的资源

要求

  • Sublime Text v4099或更高版本
    • Python插件宿主v3.8或更高版本

颜色方案中的代码高亮显示

如果您没有为text.srt作用域添加语法高亮规则,您可以通过以下规则在其基础上添加这些规则(这些是为暗色主题设计的)通过SettingsCustomize Color Scheme

{
    "variables":
    {
    },
    "globals":
    {
    },
    "rules":
    [
        {
            "name": "SRT title ordinal",
            "scope": "text.srt variable.function markup.bold",
            "font_style": "bold",
            "foreground": "#efc778"
        },
        {
            "name": "SRT title timecode",
            "scope": "text.srt variable.function markup.italic",
            "font_style": "italic",
            "foreground": "#c56ddf"
        },
        {
            "name": "SRT title timecode divider",
            "scope": "text.srt variable.function",
            "foreground": "#c56ddf"
        },
        {
            "name": "SRT title HTML tags",
            "scope": "text.srt comment.srt markup.bold.srt",
            "foreground": "#5f697a"
        },
        {
            "name": "SRT title text in HTML tags",
            "scope": "text.srt markup.italic.srt",
            "font_style": "italic",
            "foreground": "#abb2bf"
        }
    ]
}

要获取特定元素的scope值,请将光标放在该元素上,然后打开ToolsDeveloperShow Scope Name

使用项目

如您所知,Sublime Text有项目,该插件可以使用项目文件来存储某些设置。

以下是一个项目示例

{
    "folders":
    [
        {
            "path": ".",
            "folder_exclude_patterns":
            [
                ".git"
            ]
        }
    ],
    "settings":
    {
        "marlant":
        {
            "dictionary":
            {
                "Sverre": "Сварре",
                "Thorvald": "Турвальд"
            },
            "validation":
            {
                "excluded-titles":
                {
                    "gutta-paa-skauen-s01e01-den-femte-mann.srt":
                    [
                        3,
                        5,
                        38
                    ],
                    "gutta-paa-skauen-s01e02-koppen.srt":
                    [
                        12,
                        25
                    ]
                }
            }
        }
    }
}

如您所见,翻译/编辑人员已将一些标题编号添加到排除标题列表中(按文件),因此现在这些将不会包含在大多数验证检查中。

另一个示例是项目字典。它可以帮助维护对某些事物(如字符名称)的翻译/拼写一致性,因此翻译者不必回去查找他们之前的方式。

常见问题解答

没有可用插件命令

请确保活动文件/视图具有SubRip/SRT语法/作用域,因为插件功能仅在那里启用。

有按键绑定吗

虽然不是直接支持,但您当然可以为任何插件命令创建自己的快捷键。要在控制台中获取命令名称及其参数,请启用命令记录(sublime.log_commands(True))。

例如,以下添加了两个快捷键:在当前标题之前和之后插入新标题

{
    "keys": ["super+alt+i", "super+alt+b"],
    "command": "marlant_insert_new_title",
    "args": {"after_current_title": false }
},
{
    "keys": ["super+alt+i", "super+alt+a"],
    "command": "marlant_insert_new_title",
    "args": {"after_current_title": true }
}

为什么需要Sublime Text 4以及最低版本为v4099

版本4一般是因为那时添加了Python插件宿主v3.8。v4099具体则是作为最小的版本,因为这个版本有最新的插件宿主v3.8.8。但当然,该插件也可能与非常早期的v4050一起良好工作。

为什么需要Python 3.8插件主机要求

这主要是因为添加了Python 3.6才有的f-string,因此在插件宿主v3.3中不可用。

该插件根据GPLv3授权,会不会将它传播给所有其他GPLv3

目的是如果您使用此插件源创建其他东西,并且/或者将其重新分发(原样或修改),那么确实会被 GPLv3感染。但出于仅在Sublime Text中使用插件的目的,GPLv3条款不应有任何限制/要求。

谁杀了劳拉·帕尔默

总有一天,我的日志会有些话要说。

致谢