mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-02-25 18:55:32 -06:00
Update server and player
This commit is contained in:
@@ -2,14 +2,55 @@ import { registerTSPaths } from '../../server/helpers/register-ts-paths'
|
||||
registerTSPaths()
|
||||
|
||||
import * as xliff12ToJs from 'xliff/xliff12ToJs'
|
||||
import { readFileSync, unlink, writeFile } from 'fs-extra'
|
||||
import { readFileSync, readJSON, unlink, writeFile, writeJSON, existsSync, exists, pathExists } from 'fs-extra'
|
||||
import { join } from 'path'
|
||||
import { buildFileLocale, I18N_LOCALES, isDefaultLocale } from '../../shared/models/i18n/i18n'
|
||||
import { eachSeries } from 'async'
|
||||
|
||||
const sources: string[] = []
|
||||
const availableLocales = Object.keys(I18N_LOCALES)
|
||||
.filter(l => isDefaultLocale(l) === false)
|
||||
const l = [
|
||||
'ar-001',
|
||||
'ca-ES',
|
||||
'cs-CZ',
|
||||
'da-DK',
|
||||
'de-DE',
|
||||
'el-GR',
|
||||
'en-GB',
|
||||
'en-US',
|
||||
'eo',
|
||||
'es-ES',
|
||||
'eu-ES',
|
||||
'fa-IR',
|
||||
'fi-FI',
|
||||
'fr-FR',
|
||||
'gd',
|
||||
'gl-ES',
|
||||
'hu-HU',
|
||||
'it-IT',
|
||||
'ja-JP',
|
||||
'jbo',
|
||||
'ko-KR',
|
||||
'lt-LT',
|
||||
'nb-NO',
|
||||
'nl-NL',
|
||||
'oc',
|
||||
'pl-PL',
|
||||
'pt-BR',
|
||||
'pt-PT',
|
||||
'ru-RU',
|
||||
'sk-SK',
|
||||
'sl-SI',
|
||||
'sv-SE',
|
||||
'ta',
|
||||
'th-TH',
|
||||
'tr-TR',
|
||||
'uk-UA',
|
||||
'vi-VN',
|
||||
'zh-Hans-CN',
|
||||
'zh-Hant-TW'
|
||||
]
|
||||
|
||||
const availableLocales = l.filter(l => isDefaultLocale(l) === false)
|
||||
.map(l => buildFileLocale(l))
|
||||
|
||||
for (const file of [ 'player', 'server', 'iso639' ]) {
|
||||
@@ -26,7 +67,7 @@ eachSeries(sources, (source, cb) => {
|
||||
mergeISO639InServer(err => {
|
||||
if (err) return handleError(err)
|
||||
|
||||
process.exit(0)
|
||||
injectMissingTranslations().then(() => process.exit(0))
|
||||
})
|
||||
})
|
||||
|
||||
@@ -38,6 +79,11 @@ function handleError (err: any) {
|
||||
function xliffFile2JSON (filePath: string, cb) {
|
||||
const fileTarget = filePath.replace('.xml', '.json')
|
||||
|
||||
if (!existsSync(filePath)) {
|
||||
console.log('No file %s exists.', filePath)
|
||||
return cb()
|
||||
}
|
||||
|
||||
// Remove the two first lines our xliff module does not like
|
||||
let fileContent = readFileSync(filePath).toString()
|
||||
fileContent = removeFirstLine(fileContent)
|
||||
@@ -60,6 +106,15 @@ function mergeISO639InServer (cb) {
|
||||
const serverPath = join(__dirname, '../../../client/src/locale/target/', `server_${locale}.json`)
|
||||
const iso639Path = join(__dirname, '../../../client/src/locale/target/', `iso639_${locale}.json`)
|
||||
|
||||
if (!existsSync(serverPath)) {
|
||||
console.log('No file %s exists.', serverPath)
|
||||
return cb()
|
||||
}
|
||||
if (!existsSync(iso639Path)) {
|
||||
console.log('No file %s exists.', iso639Path)
|
||||
return cb()
|
||||
}
|
||||
|
||||
const resServer = readFileSync(serverPath).toString()
|
||||
const resISO639 = readFileSync(iso639Path).toString()
|
||||
|
||||
@@ -89,3 +144,36 @@ function createJSONString (obj: any) {
|
||||
|
||||
return JSON.stringify(res)
|
||||
}
|
||||
|
||||
async function injectMissingTranslations () {
|
||||
const baseServer = await readJSON(join(__dirname, '../../../client/src/locale/server.en-US.json'))
|
||||
Object.keys(baseServer).forEach(k => baseServer[k] = '')
|
||||
|
||||
for (const locale of availableLocales) {
|
||||
const serverPath = join(__dirname, '../../../client/src/locale/target/', `server_${locale}.json`)
|
||||
if (!await pathExists(serverPath)) {
|
||||
console.log('No file exists to inject missing translations: %s.', serverPath)
|
||||
continue
|
||||
}
|
||||
|
||||
let serverJSON = await readJSON(serverPath)
|
||||
|
||||
serverJSON = Object.assign({}, baseServer, serverJSON)
|
||||
await writeJSON(serverPath, serverJSON)
|
||||
}
|
||||
|
||||
const basePlayer = await readJSON(join(__dirname, '../../../client/src/locale/player.en-US.json'))
|
||||
Object.keys(basePlayer).forEach(k => basePlayer[k] = '')
|
||||
for (const locale of availableLocales) {
|
||||
const serverPath = join(__dirname, '../../../client/src/locale/target/', `player_${locale}.json`)
|
||||
if (!await pathExists(serverPath)) {
|
||||
console.log('No file exists to inject missing translations: %s.', serverPath)
|
||||
continue
|
||||
}
|
||||
|
||||
let serverJSON = await readJSON(serverPath)
|
||||
|
||||
serverJSON = Object.assign({}, basePlayer, serverJSON)
|
||||
await writeJSON(serverPath, serverJSON)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user