1
0
mirror of https://github.com/one-among-us/data.git synced 2024-12-29 13:12:40 +08:00
one-among-us-data/scripts/translate.ts
2024-11-29 10:32:08 +08:00

38 lines
1003 B
TypeScript

import url from "url";
import path from "path";
import fs from "fs-extra";
import Parse from 'args-parser'
import translate from "google-translate-api-x";
const PEOPLE_DIR = 'people'
const projectRoot = path.dirname(path.dirname(url.fileURLToPath(import.meta.url)));
const peopleDir = path.join(projectRoot, PEOPLE_DIR);
type lang = 'zh-CN' | 'en' | 'zh-TW'
const m = {
'zh-CN': '',
'en': '.en',
'zh-TW': '.zh_hant'
}
const args = Parse(process.argv)
console.log(args)
async function translateFile(id: string, from: lang, to: lang) {
const md = fs.readFileSync(path.join(peopleDir, id, `page${m[from]}.md`)).toString()
const td = await translate(md, {
from: from,
to: to,
autoCorrect: true
})
fs.writeFileSync(path.join(peopleDir, id, `page${m[to]}.md`), td.text)
}
if (!(args['from'] && args['to'] && args['id'])) {
throw new Error('args should be --from=from --to=to --id=id')
}
await translateFile(args['id'], args['from'], args['to'])