|
@@ -29,39 +29,45 @@ module.exports = async () => {
|
|
|
})
|
|
|
const locales = _.sortBy(_.get(respList, 'data.localization.locales', []), 'name').map(lc => ({...lc, isInstalled: (lc.code === 'en')}))
|
|
|
WIKI.cache.set('locales', locales)
|
|
|
- const currentLocale = _.find(locales, ['code', WIKI.config.lang.code])
|
|
|
|
|
|
// -> Download locale strings
|
|
|
|
|
|
if (WIKI.config.lang.autoUpdate) {
|
|
|
- const respStrings = await apollo({
|
|
|
- query: `query ($code: String!) {
|
|
|
- localization {
|
|
|
- strings(code: $code) {
|
|
|
- key
|
|
|
- value
|
|
|
+ const activeLocales = WIKI.config.lang.namespacing ? WIKI.config.lang.namespaces : [WIKI.config.lang.code]
|
|
|
+ for (const currentLocale of activeLocales) {
|
|
|
+ const localeInfo = _.find(locales, ['code', currentLocale])
|
|
|
+
|
|
|
+ const respStrings = await apollo({
|
|
|
+ query: `query ($code: String!) {
|
|
|
+ localization {
|
|
|
+ strings(code: $code) {
|
|
|
+ key
|
|
|
+ value
|
|
|
+ }
|
|
|
}
|
|
|
+ }`,
|
|
|
+ variables: {
|
|
|
+ code: currentLocale
|
|
|
}
|
|
|
- }`,
|
|
|
- variables: {
|
|
|
- code: WIKI.config.lang.code
|
|
|
- }
|
|
|
- })
|
|
|
- const strings = _.get(respStrings, 'data.localization.strings', [])
|
|
|
- let lcObj = {}
|
|
|
- _.forEach(strings, row => {
|
|
|
- if (_.includes(row.key, '::')) { return }
|
|
|
- if (_.isEmpty(row.value)) { row.value = row.key }
|
|
|
- _.set(lcObj, row.key.replace(':', '.'), row.value)
|
|
|
- })
|
|
|
+ })
|
|
|
+ const strings = _.get(respStrings, 'data.localization.strings', [])
|
|
|
+ let lcObj = {}
|
|
|
+ _.forEach(strings, row => {
|
|
|
+ if (_.includes(row.key, '::')) { return }
|
|
|
+ if (_.isEmpty(row.value)) { row.value = row.key }
|
|
|
+ _.set(lcObj, row.key.replace(':', '.'), row.value)
|
|
|
+ })
|
|
|
+
|
|
|
+ await WIKI.models.locales.query().update({
|
|
|
+ code: currentLocale,
|
|
|
+ strings: lcObj,
|
|
|
+ isRTL: localeInfo.isRTL,
|
|
|
+ name: localeInfo.name,
|
|
|
+ nativeName: localeInfo.nativeName
|
|
|
+ }).where('code', currentLocale)
|
|
|
|
|
|
- await WIKI.models.locales.query().update({
|
|
|
- code: WIKI.config.lang.code,
|
|
|
- strings: lcObj,
|
|
|
- isRTL: currentLocale.isRTL,
|
|
|
- name: currentLocale.name,
|
|
|
- nativeName: currentLocale.nativeName
|
|
|
- }).where('code', WIKI.config.lang.code)
|
|
|
+ WIKI.logger.info(`Pulled latest locale updates for ${localeInfo.name} from Graph endpoint: [ COMPLETED ]`)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
await WIKI.lang.refreshNamespaces()
|