aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/i18n
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/i18n')
-rwxr-xr-xscripts/i18n/create-custom-files.ts20
-rwxr-xr-xscripts/i18n/xliff2json.ts34
2 files changed, 45 insertions, 9 deletions
diff --git a/scripts/i18n/create-custom-files.ts b/scripts/i18n/create-custom-files.ts
index 3519afd47..7d994a710 100755
--- a/scripts/i18n/create-custom-files.ts
+++ b/scripts/i18n/create-custom-files.ts
@@ -34,10 +34,6 @@ values(VIDEO_CATEGORIES)
34 .concat(values(VIDEO_PRIVACIES)) 34 .concat(values(VIDEO_PRIVACIES))
35 .forEach(v => serverKeys[v] = v) 35 .forEach(v => serverKeys[v] = v)
36 36
37// ISO 639 keys
38const languages = buildLanguages()
39Object.keys(languages).forEach(k => serverKeys[languages[k]] = languages[k])
40
41// More keys 37// More keys
42Object.assign(serverKeys, { 38Object.assign(serverKeys, {
43 'Misc': 'Misc', 39 'Misc': 'Misc',
@@ -49,13 +45,27 @@ const serverTranslations = {
49 data: serverKeys 45 data: serverKeys
50} 46}
51 47
48// ISO 639 keys
49const languageKeys: any = {}
50const languages = buildLanguages()
51Object.keys(languages).forEach(k => languageKeys[languages[k]] = languages[k])
52
53const iso639Translations = {
54 target: join(__dirname, '../../../client/src/locale/source/iso639_en_US.xml'),
55 data: languageKeys
56}
57
52saveToXliffFile(playerTranslations, err => { 58saveToXliffFile(playerTranslations, err => {
53 if (err) return handleError(err) 59 if (err) return handleError(err)
54 60
55 saveToXliffFile(serverTranslations, err => { 61 saveToXliffFile(serverTranslations, err => {
56 if (err) return handleError(err) 62 if (err) return handleError(err)
57 63
58 process.exit(0) 64 saveToXliffFile(iso639Translations, err => {
65 if (err) return handleError(err)
66
67 process.exit(0)
68 })
59 }) 69 })
60}) 70})
61 71
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 @@
1import * as xliff12ToJs from 'xliff/xliff12ToJs' 1import * as xliff12ToJs from 'xliff/xliff12ToJs'
2import { unlink, readFileSync, writeFile } from 'fs' 2import { readFile, readFileSync, unlink, writeFile } from 'fs'
3import { join } from 'path' 3import { join } from 'path'
4import { buildFileLocale, I18N_LOCALES, isDefaultLocale, LOCALE_FILES } from '../../shared/models/i18n/i18n' 4import { buildFileLocale, I18N_LOCALES, isDefaultLocale } from '../../shared/models/i18n/i18n'
5import { eachSeries } from 'async' 5import { eachSeries } from 'async'
6 6
7const sources: string[] = [] 7const 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
12for (const file of LOCALE_FILES) { 12for (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
26function handleError (err: any) { 30function handleError (err: any) {
@@ -48,6 +52,28 @@ function xliffFile2JSON (filePath: string, cb) {
48 }) 52 })
49} 53}
50 54
55function 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
51function removeFirstLine (str: string) { 77function removeFirstLine (str: string) {
52 return str.substring(str.indexOf('\n') + 1) 78 return str.substring(str.indexOf('\n') + 1)
53} 79}