]>
Commit | Line | Data |
---|---|---|
e945b184 C |
1 | import * as xliff12ToJs from 'xliff/xliff12ToJs' |
2 | import { readFileSync, writeFile } from 'fs' | |
3 | import { join } from 'path' | |
4 | ||
5 | // First, the player | |
6 | const playerSource = join(__dirname, '../../../client/src/locale/target/player_fr.xml') | |
7 | const playerTarget = join(__dirname, '../../../client/src/locale/target/player_fr.json') | |
8 | ||
9 | // Remove the two first lines our xliff module does not like | |
10 | let playerFile = readFileSync(playerSource).toString() | |
11 | playerFile = removeFirstLine(playerFile) | |
12 | playerFile = removeFirstLine(playerFile) | |
13 | ||
14 | xliff12ToJs(playerFile, (err, res) => { | |
15 | if (err) { | |
16 | console.error(err) | |
17 | process.exit(-1) | |
18 | } | |
19 | ||
20 | const json = createJSONString(res) | |
21 | writeFile(playerTarget, json, err => { | |
22 | if (err) { | |
23 | console.error(err) | |
24 | process.exit(-1) | |
25 | } | |
26 | ||
27 | process.exit(0) | |
28 | }) | |
29 | }) | |
30 | ||
31 | function removeFirstLine (str: string) { | |
32 | return str.substring(str.indexOf('\n') + 1) | |
33 | } | |
34 | ||
35 | function createJSONString (obj: any) { | |
36 | const res: any = {} | |
37 | const strings = obj.resources[''] | |
38 | ||
39 | Object.keys(strings).forEach(k => res[k] = strings[k].target) | |
40 | ||
41 | return JSON.stringify(res) | |
42 | } |