diff options
Diffstat (limited to 'scripts/i18n/xliff2json.ts')
-rwxr-xr-x | scripts/i18n/xliff2json.ts | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/scripts/i18n/xliff2json.ts b/scripts/i18n/xliff2json.ts index c60739561..17c73181b 100755 --- a/scripts/i18n/xliff2json.ts +++ b/scripts/i18n/xliff2json.ts | |||
@@ -1,7 +1,7 @@ | |||
1 | import * as xliff12ToJs from 'xliff/xliff12ToJs' | 1 | import * as xliff12ToJs from 'xliff/xliff12ToJs' |
2 | import { unlink, readFileSync, writeFile } from 'fs' | 2 | import { readFile, readFileSync, unlink, writeFile } from 'fs' |
3 | import { join } from 'path' | 3 | import { join } from 'path' |
4 | import { buildFileLocale, I18N_LOCALES, isDefaultLocale, LOCALE_FILES } from '../../shared/models/i18n/i18n' | 4 | import { buildFileLocale, I18N_LOCALES, isDefaultLocale } from '../../shared/models/i18n/i18n' |
5 | import { eachSeries } from 'async' | 5 | import { eachSeries } from 'async' |
6 | 6 | ||
7 | const sources: string[] = [] | 7 | const sources: string[] = [] |
@@ -9,7 +9,7 @@ const availableLocales = Object.keys(I18N_LOCALES) | |||
9 | .filter(l => isDefaultLocale(l) === false) | 9 | .filter(l => isDefaultLocale(l) === false) |
10 | .map(l => buildFileLocale(l)) | 10 | .map(l => buildFileLocale(l)) |
11 | 11 | ||
12 | for (const file of LOCALE_FILES) { | 12 | for (const file of [ 'player', 'server', 'iso639' ]) { |
13 | for (const locale of availableLocales) { | 13 | for (const locale of availableLocales) { |
14 | sources.push(join(__dirname, '../../../client/src/locale/target/', `${file}_${locale}.xml`)) | 14 | sources.push(join(__dirname, '../../../client/src/locale/target/', `${file}_${locale}.xml`)) |
15 | } | 15 | } |
@@ -20,7 +20,11 @@ eachSeries(sources, (source, cb) => { | |||
20 | }, err => { | 20 | }, err => { |
21 | if (err) return handleError(err) | 21 | if (err) return handleError(err) |
22 | 22 | ||
23 | process.exit(0) | 23 | mergeISO639InServer(err => { |
24 | if (err) return handleError(err) | ||
25 | |||
26 | process.exit(0) | ||
27 | }) | ||
24 | }) | 28 | }) |
25 | 29 | ||
26 | function handleError (err: any) { | 30 | function handleError (err: any) { |
@@ -48,6 +52,28 @@ function xliffFile2JSON (filePath: string, cb) { | |||
48 | }) | 52 | }) |
49 | } | 53 | } |
50 | 54 | ||
55 | function mergeISO639InServer (cb) { | ||
56 | eachSeries(availableLocales, (locale, eachCallback) => { | ||
57 | const serverPath = join(__dirname, '../../../client/src/locale/target/', `server_${locale}.json`) | ||
58 | const iso639Path = join(__dirname, '../../../client/src/locale/target/', `iso639_${locale}.json`) | ||
59 | |||
60 | const resServer = readFileSync(serverPath).toString() | ||
61 | const resISO639 = readFileSync(iso639Path).toString() | ||
62 | |||
63 | const jsonServer = JSON.parse(resServer) | ||
64 | const jsonISO639 = JSON.parse(resISO639) | ||
65 | |||
66 | Object.assign(jsonServer, jsonISO639) | ||
67 | const serverString = JSON.stringify(jsonServer) | ||
68 | |||
69 | writeFile(serverPath, serverString, err => { | ||
70 | if (err) return eachCallback(err) | ||
71 | |||
72 | return unlink(iso639Path, eachCallback) | ||
73 | }) | ||
74 | }, cb) | ||
75 | } | ||
76 | |||
51 | function removeFirstLine (str: string) { | 77 | function removeFirstLine (str: string) { |
52 | return str.substring(str.indexOf('\n') + 1) | 78 | return str.substring(str.indexOf('\n') + 1) |
53 | } | 79 | } |