1
0
Fork 0
freesewing/sites/shared/prebuild/i18n.mjs
2022-08-04 20:20:53 +02:00

39 lines
1.1 KiB
JavaScript

import {build} from '../../../packages/i18n/src/prebuild.mjs'
import {denyList} from '../../../packages/i18n/scripts/prebuilder.mjs'
import fs from 'fs'
import path from 'path'
export const prebuildI18n = async(site, only=false) => {
const writeJson = async (locale, namespace, content) => fs.writeFileSync(
path.resolve(
'..',
site,
'public',
'locales',
locale,
`${namespace}.json`
),
JSON.stringify(content)
)
const filter = site === 'dev' ? (loc => loc === '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)
}
}