当前位置:网站首页>星界边境文本自动翻译机(高级版)使用说明

星界边境文本自动翻译机(高级版)使用说明

2022-04-23 14:05:00 森之千手

前言

高级版的文本自动翻译机终于开发完成了,之前采用的是纯html的图形界面进行开发,但是还不够全自动,需要手动定位文件拷贝覆盖。理论像这种东西可以使用python进行开发,但本人只会前端和安卓。于是乎找到了一个折衷的办法,用nodeJS开发。

工具特色

跨平台

支持多种操作系统,包括WindowsLinuxMac

百度翻译API

使用免费(标准版)。支持术语库(高级版)。高级版一个月有200万免费字符使用权限。标准版无限使用。由于屎大棒里面尤其是FU里面有很多新造的词汇,采用术语库,可以极大降低翻译不准确的问题。

全自动翻译

只需一个简单指令,就能自动翻译指定目录下的所有文件

使用教程

一、注册百度翻译账号,获取key和appid

可以参照之前的半自动翻译教程

二、安装配置node

1、下载安装包

进入node官网,选择你的系统对应的平台版本,以windows为例,分32位版本和64位版本,不清除的就选32位,因为64位兼容32位的程序,不过现在的系统一般都是64位的。下载完后双击安装,无脑下一步点击就行了。
node下载

2、检测是否安装成功

win+R调出’运行‘,输入cmd
终端
确定,打开终端,键入

node -v

如果能看到node的版本信息,证明安装成功了
cmd

需要注意的是,如果你的登录账户不是Administrator账户,这一步乃至后面的步骤可能会出现失败。那么就需要调用管理员权限的PowerShell。打开方式是,按住shift键同时右键win的徽标:
powershell

3、下载配置工具文件

下载地址:github传送门
进入到源码根目录,最好不要有中文路径,在空白区域shift+右键,调出此处打开powershell
此处
键入下面命令进行依赖安装。

npm install

在这里插入图片描述
上述图片就是成功截图。安装依赖途中可能会有杀毒软件报警,允许。另外前面说了,不是Adminstrtor账户的话,运行指令可能会失败,就只有打开管理员的powershell然后cd进源码目录进行安装。

接下来找到根目录的project.config.js文件
project.cfg

/** * 百度翻译api的key * @type {string} */
const BD_TRANSLATE_KEY = ''
/** * 百度翻译的api的appid * @type {string} */
const BD_TRANSLATE_APP_ID = ''
/** * 翻译的文件与文件之间的延迟,过于频繁会导致api调用失败 * @type {number} 毫秒 */
const TRANSLATE_DELAY = 5000
/** * 是否覆盖翻译 * @type {boolean} true--之前翻译过的会覆盖翻译 false--过滤掉之前翻译过的 */
const TRANSLATE_COVER = false
/** * 翻译的目标源目录 * @type {string} */
const TARGET_PATH='G:\\workspace\\StarBound\\FrackinUniverse-sChinese-Project\\translations\\texts\\objects\\mantizi'

相关配置如上所述,前两项是百度翻译的key和appid,需要注意的是TARGET_PATH这个目标源目录,windows下的文件分隔符是\,并且填入的时候,要加入转义字符,也就是两根反斜杠。

至此,项目配置就算完毕,接下来就是进行翻译指令了。

三、执行翻译

我们需要执行的是src文件夹下面的exe.js文件,所以可以先cd进src目录,再运行node指令

PS G:\workspace\StarBound\starbound_auto_transalator_advanced> cd .\src\
PS G:\workspace\StarBound\starbound_auto_transalator_advanced\src> node .\exe.js

以上面的TARGET_PATH的文件为例,执行这个指令后会出现

[G:\workspace\StarBound\FrackinUniverse-sChinese-Project\translations\texts\objects\mantizi\imperialbanner1\imperialbanner1.object.json
]
文件打开成功:3 准备读取:
翻译结果
当前文件已经翻译完全,跳过该文件
------------------------------------------------------------------
当前处理文件第2个文件:
[G:\workspace\StarBound\FrackinUniverse-sChinese-Project\translations\texts\objects\mantizi\imperialbanner2\imperialbanner2.object.json
]
文件打开成功:4 准备读取:
发现待翻译文本:
{
    
  '0': 'A beautifully woven banner.',
  '1': 'A bright woven banner. I wonder what the jewel in the middle means.',
  '2': 'A sun? Or some kind of creature?',
  '3': 'A thick woven banner depicting the imperial crest.',
  '4': 'Floran usually avoid this sssymbol.',
  '5': 'I enjoy the golden accents woven into the fabric.',
  '6': 'Is the Empire nearby?',
  '7': 'Mantizi Imperial Banner',
  '8': 'Servire Imperium.',
  '9': 'This banner looks like it has a beetle woven on it.'
}
请求参数合成结果:
A beautifully woven banner.
A bright woven banner. I wonder what the jewel in the middle means.
A sun? Or some kind of creature?
A thick woven banner depicting the imperial crest.
Floran usually avoid this sssymbol.
I enjoy the golden accents woven into the fabric.
Is the Empire nearby?
Mantizi Imperial Banner
Servire Imperium.
This banner looks like it has a beetle woven on it.
翻译结果
[
  {
     src: 'A beautifully woven banner.', dst: '编织精美的旗帜。' },
  {
    
    src: 'A bright woven banner. I wonder what the jewel in the middle means.',
    dst: '鲜艳的编织横幅。我想知道中间的珠宝是什么意思。'
  },
  {
     src: 'A sun? Or some kind of creature?', dst: '太阳?或者某种生物?' },
  {
    
    src: 'A thick woven banner depicting the imperial crest.',
    dst: '描绘皇冠的粗织旗帜。'
  },
  {
     src: 'Floran usually avoid this sssymbol.', dst: '弗洛兰通常避免使用这个符号。' },
  {
    
    src: 'I enjoy the golden accents woven into the fabric.',
    dst: '我喜欢织入织物的金色口音。'
  },
  {
     src: 'Is the Empire nearby?', dst: '帝国在附近吗?' },
  {
     src: 'Mantizi Imperial Banner', dst: '曼提兹帝国旗' },
  {
     src: 'Servire Imperium.', dst: '帝国服务。' },
  {
    
    src: 'This banner looks like it has a beetle woven on it.',
    dst: '这面横幅上好像织着一只甲虫。'
  }
]
------------------------------------------------------------------
重组结果
[
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
     Eng: 'A beautifully woven banner.', Chs: '编织精美的旗帜。' }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
    
      Eng: 'A bright woven banner. I wonder what the jewel in the middle means.',
      Chs: '鲜艳的编织横幅。我想知道中间的珠宝是什么意思。'
    }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
     Eng: 'A sun? Or some kind of creature?', Chs: '太阳?或者某种生物?' }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
    
      Eng: 'A thick woven banner depicting the imperial crest.',
      Chs: '描绘皇冠的粗织旗帜。'
    }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
    
      Eng: 'Floran usually avoid this sssymbol.',
      Chs: '弗洛兰通常避免使用这个符号。'
    }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
    
      Eng: 'I enjoy the golden accents woven into the fabric.',
      Chs: '我喜欢织入织物的金色口音。'
    }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
     Eng: 'Is the Empire nearby?', Chs: '帝国在附近吗?' }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
     Chs: 'Mantizi帝国横幅', Eng: 'Mantizi Imperial Banner' }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
     Chs: '服侍帝国。', Eng: 'Servire Imperium.' }
  },
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialbanner2/imperialbanner2.object': [Array]
    },
    Texts: {
    
      Eng: 'This banner looks like it has a beetle woven on it.',
      Chs: '这面横幅上好像织着一只甲虫。'
    }
  }
]

从控制台的信息可以看见当前翻译文件的信息,当配置不覆盖翻译时,会自动跳过翻译完成的文件,增加翻译效率。
翻译成功后也会有相应提示:

当前处理文件第35个文件:
[G:\workspace\StarBound\FrackinUniverse-sChinese-Project\translations\texts\objects\mantizi\shared_imperialvaselarge\shared_imperialvas
elarge.json]
文件打开成功:4 准备读取:
发现待翻译文本:
{
     '0': 'A large decorative glazed vase.' }
请求参数合成结果:
A large decorative glazed vase.
翻译结果
[ {
     src: 'A large decorative glazed vase.', dst: '一个装饰性的大玻璃花瓶。' } ]
------------------------------------------------------------------
重组结果
[
  {
    
    DeniedAlternatives: [],
    Files: {
    
      'objects/mantizi/imperialvaselarge1/imperialvaselarge1.object': [Array],
      'objects/mantizi/imperialvaselarge2/imperialvaselarge2.object': [Array]
    },
    Texts: {
     Eng: 'A large decorative glazed vase.', Chs: '一个装饰性的大玻璃花瓶。' }
  }
]
***********全部文件翻译完成**********

四、设置术语库

这一步不是必须,但是设置术语库可以增加翻译准确性,目前我搜集了一些关于矿石、液体和NPC名称的相关术语,文件在doc目录下面:
术语库
百度翻译平台可以配置
配置术语库

版权声明
本文为[森之千手]所创,转载请带上原文链接,感谢
https://blog.csdn.net/cjs1534717040/article/details/122088868