| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- 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]`)
 
-       }
 
-     }
 
-   }
 
- }
 
 
  |