From e11489349bf9ea935d68c4682f271e0c91cf30e8 Mon Sep 17 00:00:00 2001 From: Enoch Riese Date: Sat, 23 Jul 2022 23:16:25 -0500 Subject: [PATCH 1/2] copy locale files to the sites in prebuild --- packages/i18n/scripts/prebuilder.mjs | 5 +++- packages/i18n/src/prebuild.mjs | 1 + sites/shared/prebuild/i18n.mjs | 37 +++++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/packages/i18n/scripts/prebuilder.mjs b/packages/i18n/scripts/prebuilder.mjs index 65dd971a48a..292e0a69cce 100644 --- a/packages/i18n/scripts/prebuilder.mjs +++ b/packages/i18n/scripts/prebuilder.mjs @@ -1,4 +1,7 @@ import {build} from '../src/prebuild.mjs' +// use a deny-list to keep locales that aren't ready out of the build +export const denyList = ['uk'] + // call this here instead of in the src/prebuild.mjs so that build isn't called by other files importing that build function -build() +build((loc) => denyList.indexOf(loc) === -1) diff --git a/packages/i18n/src/prebuild.mjs b/packages/i18n/src/prebuild.mjs index db65b36def9..65224923ae9 100644 --- a/packages/i18n/src/prebuild.mjs +++ b/packages/i18n/src/prebuild.mjs @@ -220,6 +220,7 @@ export const build = async (localeFilter = () => true, only=false) => { const namespaces = await getNamespacesFromFileList(files, locales, only) await writeFiles(namespaces) + return namespaces } //export default strings diff --git a/sites/shared/prebuild/i18n.mjs b/sites/shared/prebuild/i18n.mjs index 240a290fb5d..7546f9b73cb 100644 --- a/sites/shared/prebuild/i18n.mjs +++ b/sites/shared/prebuild/i18n.mjs @@ -1,5 +1,40 @@ import {build} from '../../../packages/i18n/src/prebuild.mjs' +import {denyList} from '../../../packages/i18n/scripts/prebuilder.mjs' +import fs from 'fs' +import path from 'path' +import {mkdir} from 'fs/promises' export const prebuildI18n = async(site, only=false) => { - build((loc) => site !== 'dev' || loc === 'en', only) + const writeJson = async (locale, namespace, content) => fs.writeFileSync( + path.resolve( + '..', + site, + 'public', + 'locales', + locale, + `${namespace}.json` + ), + JSON.stringify(content) + ) + + const filter = site === 'dev' ? (loc => lock === 'en') : (loc => denyList.indexOf(loc) === -1) + const locales = await build(filter, only) + + console.log (`copying them to ${site}`, Object.keys(locales)) + + const languages = {} + Object.keys(locales).forEach(l => languages[l] = locales[l].i18n[l]) + for (const locale in locales) { + // Only English for dev site + const loc = locales[locale] + // Fan out into namespaces + for (const namespace in loc) { + writeJson( + locale, namespace, + loc[namespace] + ) + } + + writeJson(locale, 'locales', languages) + } } From 04eae1f5fa5417bae0cb11cf9d1eb0c714ef4ef4 Mon Sep 17 00:00:00 2001 From: Enoch Riese Date: Sat, 23 Jul 2022 23:23:46 -0500 Subject: [PATCH 2/2] deepscan fixes --- sites/shared/prebuild/i18n.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/sites/shared/prebuild/i18n.mjs b/sites/shared/prebuild/i18n.mjs index 7546f9b73cb..5cbd48b9b33 100644 --- a/sites/shared/prebuild/i18n.mjs +++ b/sites/shared/prebuild/i18n.mjs @@ -2,7 +2,6 @@ import {build} from '../../../packages/i18n/src/prebuild.mjs' import {denyList} from '../../../packages/i18n/scripts/prebuilder.mjs' import fs from 'fs' import path from 'path' -import {mkdir} from 'fs/promises' export const prebuildI18n = async(site, only=false) => { const writeJson = async (locale, namespace, content) => fs.writeFileSync(