2022-08-25 10:06:00 +02:00
|
|
|
import { build } from '../../../packages/i18n/src/prebuild.mjs'
|
|
|
|
import { denyList } from '../../../packages/i18n/scripts/prebuilder.mjs'
|
2022-07-23 23:16:25 -05:00
|
|
|
import fs from 'fs'
|
|
|
|
import path from 'path'
|
2022-02-06 15:44:00 +01:00
|
|
|
|
2022-08-25 10:06:00 +02:00
|
|
|
const writeJson = async (site, locale, namespace, content) => fs.writeFileSync(
|
|
|
|
path.resolve(
|
|
|
|
'..',
|
|
|
|
site,
|
|
|
|
'public',
|
|
|
|
'locales',
|
|
|
|
locale,
|
|
|
|
`${namespace}.json`
|
|
|
|
),
|
|
|
|
JSON.stringify(content)
|
|
|
|
)
|
|
|
|
|
|
|
|
export const prebuildI18n = async (site, only=false) => {
|
2022-07-23 23:16:25 -05:00
|
|
|
|
2022-08-04 20:20:53 +02:00
|
|
|
const filter = site === 'dev' ? (loc => loc === 'en') : (loc => denyList.indexOf(loc) === -1)
|
2022-07-23 23:16:25 -05:00
|
|
|
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
|
2022-08-25 10:06:00 +02:00
|
|
|
for (const namespace in loc) writeJson(site, locale, namespace, loc[namespace])
|
|
|
|
writeJson(site, locale, 'locales', languages)
|
2022-07-23 23:16:25 -05:00
|
|
|
}
|
2022-02-06 15:44:00 +01:00
|
|
|
}
|