Skip to content

A VSCode extension that is used for assisting translation work.

License

Notifications You must be signed in to change notification settings

nextgal/translation-assistant

 
 

Repository files navigation

DLTXT:双行文本翻译解决方案

文字游戏汉化时通常会采用一种叫“双行文本”的格式。这种格式没有固定的语法,但是大多数符合以下特征

<原文标签1>原文1
<译文标签1>译文1

<原文标签2>原文2
<译文标签2>译文2

本插件为以上格式的双行文本的翻译校对提供全套解决方案,提高工作效率,减少错误,减少不必要的重复劳动

功能列表

格式支持

默认支持的格式

DLTXT默认支持以下格式(用横线隔开)

★00000002★ 原文
☆00000002☆ 译文
-------------------
○000000○ 原文
●000000● 译文
-------------------
★scn00000★ 原文(标题)
☆scn00000☆ 译文(标题)

★nme00001★ 原文(人名)
☆nme00001☆ 译文(人名)

★txt00002★ 原文(文本)
☆txt00002☆ 译文(文本)
-------------------
[0x00000000] 原文
;[0x00000000] 译文
-------------------
@2
//Name:原文(人名)
译文(人名)
//ReplaceName:原文(实际显示人名)
译文(实际显示人名)
//Text:原文
译文
(注:此格式在“提取译文”时不能默认支持,需要手动输入正则表达式:“[^/]”)
-------------------
<0>//Name: 原文(人名)
<0>Name:译文(人名)
<1>//原文
<1>译文

非默认支持的格式

如果你的文本不是默认支持的格式,则需要进行以下设置。设置后除语法高亮外的其他功能均可正常使用。

  1. 左下角打开设置(Settings),搜索dltxt
  2. 填写原文开头标签的正则表达式Original Text Prefix Regex和译文开头标签的正则表达式Translated Text Prefix Regex
  3. 如果有除了原文和译文以外的文本(比如控制语句等),填写Other Prefix Regex
  4. 关闭语法高亮:Ctrl + Shift + P, 输入color theme, 选择一个不属于dltxt的theme(因为无法支持语法高亮)

语法高亮

区分人名栏,原文,译文。 img1

错误检测

检测被不小心删除的标签 img2

键盘快捷键

在翻译文本时可使用键盘快捷键代替鼠标操作(注:可以在vscode设置中更改默认快捷键绑定)

  • Alt + EnterCtrl + Enter移动到下一个译文行标签之后(例如这里的|的位置:☆00000002☆「|
  • Alt + \Ctrl + \移动到上一个译文行标签之后
  • Ctrl + Alt + Space 将当前句的第一个字重复一遍并加一个逗号(例。是吗|,->。是、是吗|,
  • Ctrl + Alt + Enter 将光标后的译文移动到下一行译文开头
  • Ctrl + Alt + \ 将光标前的译文移动到上一行译文结尾
  • Alt + Delete 删除光标后的译文直至特定字符(一般用于删除整句话但保留句尾引号)
  • Alt + ] 相当于右箭头,当遇到省略号时移动两次
  • Alt + [ 相当于左箭头,当遇到省略号时移动两次

demo

批量修改

文本格式化

右键菜单中选择Format document可以对译文进行格式化(不影响原文与标签),可根据设置完成以下任意功能:

  • 统一使译文开头的缩进以及对话首尾的括号(「」)与原文一致
  • 统一省略号("....", "。。。" -> "……")(注1)
  • 统一波浪号(~∼〜 -> ~)(注1)
  • 统一破折号("ーーー", "---", "---"->"————")(注1)
  • 统一写反的、或半角的单引号、双引号  ("英双" “中双” '英单' ‘中单’ ”反的“ -> “英双” “中双” ‘英单’ ‘中单’ “反的”
  • 将常用标点符号统一为中文全角标点(,.:;!?()『』<半角空格><tab> -> ,。:;!?()“”<全角空格><全角空格>
  • 将英文与数字统一为全角(默认关闭) (123ABCdef -> 123ABCdef
  • 去除对话句末的句号 (。」-> 」
  • 自定义翻译表(例如自动翻译人名)

demo-format

注1: 可自定义想要统一成的符号

提取、回注译文

将双行文本中的译文单独提取,用户进行修改(如批量替换)后,再将改变的文本应用回去

  1. 打开双行文本,右键,选择提取译文
  2. 此时会提示输入译文行首的正则表达式,如果直接回车会使用设置中填写的正则表达式。(本插件默认支持的格式大多数不需要填写,直接回车就行)  (例:如果使用的格式是译文开头没有标签,但原文开头都以/标注的话,则可以输入[^/])
  3. 在右半窗口会显示提取的译文。完成修改之后,在右键菜单中选择 应用译文至双行文本,完成
  4. 注:上一步操作可使用Ctrl + Z撤销

demo-extract

复制原文到未翻译的译文行

在右键菜单或命令框中选择“复制原文到未翻译的译文行”即可

专有名词翻译同步

简介

这个功能主要用于专有名词的翻译统一,能把组内所有人打开的文本中的专有名词高亮,并显示对应释义,来减少专有名词翻译不统一的情况。

  • 选中文本中一个词语,可右键定义为该词为专有名词
  • 对专有名词的翻译会同步到云端,全组共享
  • 该游戏所有出现的专有名词都会显示高亮
  • 把鼠标放到高亮的专有名词上可以查看其对应翻译

SimpleTM

具体使用方法

  1. 访问SimpleTM服务器simpletm.jscrosoft.com并注册账号
  2. 在你的主页下方创建一个项目,项目名称不能和别人已经创建的项目重复
  • 如果你的组里还有其他组员需要加入当前项目,请在主页中点击项目名称,输入该组员的用户id,并给予其相应权限,点击设置权限即可。设置成功后,组员的主页中会显示该项目。
  1. 在主页找到你的APIToken,并复制
  2. 用vscode打开需要翻译的文本所在的文件夹
  3. 在vscode中左下角打开设置(Settings),搜索dltxt,在SimpleTM:User Name处填写SimpleTM的用户名
  4. SimpleTM:Api Token处填入刚才复制的APIToken
  5. 左上角搜索栏下面选择Workspace,在SimpleTM:Project处输入第2步创建的项目的名称。这一步会让vscode认为当前文件夹里的所有文本都是这个项目的文本
  6. 选中你想同步的词(原文),在右键菜单中,选择DLTXT: 添加词条,输入译文翻译并回车,词条就被同步到云端了,并且项目内所有人的文本中这个词条都会被高亮,把鼠标移动到高亮原文上能看到对应释义。
  7. 如果想更改释义,选中文本,在右键菜单中,选择DLTXT: 更新词条,输入译文并回车即可。如果想删除词条,则什么都不输入直接回车。
  8. 插件每隔30秒回自动同步云端词条

(注:SimpleTM是开源的:Github,如有需要可以自己搭服务器)

有关SimpleTM项目权限

  • 无:用户无权访问该项目
  • 只读:用户只能查寻词条,但不能对词条进行更新
  • 读写:用户可以读取词条、更新词条、增加新词条
  • 管理员:在读写权限的基础上,用户还能改变当前项目中其他用户的权限,并可以删除该项目

其他

如何设置插件

  1. 点击左下角设置按钮,点Settings
  2. 在Settings的搜索栏中搜索dltxt
  3. 搜索栏下方有一个User和Workspace选项,User是当前用户的设置,Workspace是当前文件夹(工作区)的设置,如果两个都填写了则会优先使用Workspace设置。所以建议与游戏有关的设置填写在Workspace中,与用户自己使用习惯等有关的设置填写在User中。

使用建议

为了更好的体验,建议对vscode进行如下设置:

  • 右下角打开设置Settings,
    1. 搜索 editor.wordSeparators
    2. 改成 ~`!@#$%^&*()-=+[{]}\|;:'",.<>/?★☆○●「」『』“”,、。!?…… — (这样就可以用 ctrl+Left ctrl+right 了.)

开发

npm run compile && npm run esbuild
vsce login <username of dev.azure.com>
vsce package
vsce publish

Release Notes

2.17

  • 重写README
  • 删除联网查词功能

2.16

  • 支持多个文件的错误检测
  • 智能识别双行文本的文件,不是双行文本不检测错误
  • 更改设置后不需要reload
  • 修复prevLine bug
  • 修复关键词和错误高亮不能关闭的bug

2.15

  • 把SimpleTM项目名放到了设置中

2.14

  • 添加支持高亮的格式
  • 添加错误检测

2.13

  • 自定义翻译表
  • 使用esbuild打包,提高加载速度
  • 优化关键词显示样式

2.12

  • 自定义skipchars前缀和deleteAllAfter后缀

2.11

  • deleteAfterAll(删除光标后的翻译直到特定字符)

2.10

  • 自定义省略号,破折号,波浪号

2.9

  • 删除moji查词
  • 优化部分算法

2.8

  • 添加快捷键
  • 修复moji

2.7

  • 增加调整格式的快捷键

2.6

  • Moji辞書支持登录账号

2.5

  • Moji辞書

2.4

  • 大幅提高文本格式化算法可靠性,解决了添括号时对『双层直角括号』处理不正确的问题
  • 优化运行速度

2.3

  • 快捷键:重复当前句子的第一个字
  • 增加浅色主题

2.2

  • 联网查词

2.1

  • 命令整合至右键菜单,增加易用性
  • 应用单行译文时不再需要选中双行文本

2.0

  • 格式化文本:功能增至8种
  • 更新设置格式(与之前版本不兼容,需要重新填写设置)

1.2

  • 格式化文本;自动添加空格、括号

1.1

  • 提取译文
  • 将修改后的译文再应用到双行文本中

1.0

  • 项目管理
    • 添加、删除项目
    • 将其他用户添加到自己的项目
    • 更改自己管理的项目中的其他用户的权限
  • 用户只能访问有权访问的项目
  • 用户需要使用用户名和APIToken才能使用云端同步功能
  • 因为数据库更新,服务器停止了对1.0之前版本的支持

0.9

  • keyword defining/highlighting/syncing (beta)
  • Ctrl + Enter and Ctrl + \ gives the same effect as Alt + ...

0.2

  • syntax highlights for common formats
    • auto name tag inferring
  • hotkey support for common formats
    • the format is customizable if your format is not in common formats

0.1

  • syntax highlights for certain double-line-txt-files-for-translation
  • hotkey to nagivate
    • Alt + Enter go to next line to edit
    • Alt + \ go to previous line to edit

About

A VSCode extension that is used for assisting translation work.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%