mirror of https://github.com/Requarks/wiki.git
Nick
5 years ago
12 changed files with 151 additions and 23 deletions
Unified View
Diff Options
-
30client/components/common/nav-header.vue
-
8config.sample.yml
-
2dev/templates/master.pug
-
4server/app/data.yml
-
1server/core/kernel.js
-
6server/core/scheduler.js
-
76server/core/sideloader.js
-
2server/core/telemetry.js
-
2server/graph/resolvers/localization.js
-
16server/master.js
-
25server/models/locales.js
-
2server/views/master.pug
@ -0,0 +1,76 @@ |
|||||
|
const fs = require('fs-extra') |
||||
|
const path = require('path') |
||||
|
const _ = require('lodash') |
||||
|
|
||||
|
/* global WIKI */ |
||||
|
|
||||
|
module.exports = { |
||||
|
async init () { |
||||
|
if (!WIKI.config.offline) { |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
const sideloadExists = await fs.pathExists(path.join(WIKI.ROOTPATH, 'data/sideload')) |
||||
|
|
||||
|
if (!sideloadExists) { |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
WIKI.logger.info('Sideload directory detected. Looking for packages...') |
||||
|
|
||||
|
try { |
||||
|
await this.importLocales() |
||||
|
} catch (err) { |
||||
|
WIKI.logger.warn(err) |
||||
|
} |
||||
|
}, |
||||
|
async importLocales() { |
||||
|
const localeExists = await fs.pathExists(path.join(WIKI.ROOTPATH, 'data/sideload/locales.json')) |
||||
|
if (localeExists) { |
||||
|
WIKI.logger.info('Found locales master file. Importing locale packages...') |
||||
|
let importedLocales = 0 |
||||
|
|
||||
|
const locales = await fs.readJson(path.join(WIKI.ROOTPATH, 'data/sideload/locales.json')) |
||||
|
if (locales && _.has(locales, 'data.localization.locales')) { |
||||
|
for (const locale of locales.data.localization.locales) { |
||||
|
try { |
||||
|
const localeData = await fs.readJson(path.join(WIKI.ROOTPATH, `data/sideload/${locale.code}.json`)) |
||||
|
if (localeData) { |
||||
|
WIKI.logger.info(`Importing ${locale.name} locale package...`) |
||||
|
|
||||
|
let lcObj = {} |
||||
|
_.forOwn(localeData, (value, key) => { |
||||
|
if (_.includes(key, '::')) { return } |
||||
|
if (_.isEmpty(value)) { value = key } |
||||
|
_.set(lcObj, key.replace(':', '.'), value) |
||||
|
}) |
||||
|
|
||||
|
const localeExists = await WIKI.models.locales.query().select('code').where('code', locale.code).first() |
||||
|
if (localeExists) { |
||||
|
await WIKI.models.locales.query().update({ |
||||
|
code: locale.code, |
||||
|
strings: lcObj, |
||||
|
isRTL: locale.isRTL, |
||||
|
name: locale.name, |
||||
|
nativeName: locale.nativeName |
||||
|
}).where('code', locale.code) |
||||
|
} else { |
||||
|
await WIKI.models.locales.query().insert({ |
||||
|
code: locale.code, |
||||
|
strings: lcObj, |
||||
|
isRTL: locale.isRTL, |
||||
|
name: locale.name, |
||||
|
nativeName: locale.nativeName |
||||
|
}) |
||||
|
} |
||||
|
importedLocales++ |
||||
|
} |
||||
|
} catch (err) { |
||||
|
// skip
|
||||
|
} |
||||
|
} |
||||
|
WIKI.logger.info(`Imported ${importedLocales} locale packages: [COMPLETED]`) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save