/YUKI

YUKI Galgame Translator

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

YUKI
YUKI Galgame 翻译器

JavaScript Style Guide GPL 3.0 LICENSE Build status

中文English

它看起来的样子

紧急公告

2020.5.30 晚间,大量用户使用 YUKI 时遇到错误为ERR: TypeError: Cannot read property 'target' of undefined的报错窗口。经排查,该报错由彩云 API 目前严重的不稳定状态导致。现已紧急推送 v0.14.3,修复上述问题,但彩云 API 目前仍无法使用,因此请目前所有版本的 YUKI 用户关闭彩云 API(具体方法:打开 YUKI 根目录下的 config\config.json 文件,将 onlineApis 数组中 name = "彩云" 的对象的 enable 属性改为 false)。关闭后,即使不升级至 v0.14.3 也可解决报错问题。

下载

  1. 点击这里
  2. 点开最新版本介绍下面的 " > Assets ",第一个 ZIP 文件就是编译后的 YUKI :)

文档

挖坑的动力

我们已经有 Visual Novel Reader (VNR)了,为什么还要再开发一个 Galgame 翻译器?

嗯...有以下三个原因:

  1. VNR 用 Python(甚至是 Python 2)来渲染 UI,这导致了极端的卡顿,并且完全没有必要;
  2. sakuradite.com(VNR 官网)挂了,似乎现在并没有针对 VNR 的官方维护,只剩下贴吧零零散散的 BUG 修复与改进;
  3. VNR 的功能(也可以说脚本)太多了,想添加/修改一个功能要读很久的源码,十分费劲。

但是,如果要用 Qt5 重写的话,手动管理内存、配置、国际化什么的又显得太麻烦了。

因此,用 Electron 作为用户交互的前端,而用原始的 Windows API 作为后端(比如文本提取),不失为一种比较好的选择。

功能

  • 从正在运行的 Galgame 里即时提取文本
  • 从离线字典中获取翻译,如 J 北京等
  • 从在线翻译 API 中获取翻译,如谷歌、百度、有道等
  • 可编程外部翻译 API (参考 config\ 目录下的 JavaScript 文件)
  • 在游戏窗口上方浮动显示原文+翻译(就像 VNR 一样)
  • 自定义在线 API 翻译获取方式: URL、请求方法、请求报头格式、响应的解析方式等
  • 支持扩展

计划

尝个鲜?

安装好 Node.js 和 yarn 后,随便找个文件夹,运行以下代码:

git clone https://github.com/project-yuki/YUKI.git
cd YUKI
yarn
yarn dev

许可证

YUKI 使用 GPLv3 许可证开源。

我本来是想用 MIT 的,但是由于上游依赖(如文本提取器)用的是 GPL,所以我也很为难啊。