]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - scripts/i18n/xliff2json.ts
Rename messages locale to angular
[github/Chocobozzz/PeerTube.git] / scripts / i18n / xliff2json.ts
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 }