2022-02-06 15:44:00 +01:00
|
|
|
import path from 'path'
|
|
|
|
import fs from 'fs'
|
2022-02-13 13:00:03 +01:00
|
|
|
import { en, de, es, fr, nl, languages } from '../../i18n/src/next.mjs'
|
2022-02-06 15:44:00 +01:00
|
|
|
|
|
|
|
const locales = { en, de, es, fr, nl }
|
|
|
|
|
|
|
|
const writeJson = (site, locale, namespace, content) => fs.writeFileSync(
|
|
|
|
path.resolve(
|
|
|
|
'..',
|
|
|
|
`freesewing.${site}`,
|
|
|
|
'public',
|
|
|
|
'locales',
|
|
|
|
locale,
|
|
|
|
`${namespace}.json`
|
|
|
|
),
|
2022-02-06 19:16:49 +01:00
|
|
|
JSON.stringify(content)
|
2022-02-06 15:44:00 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Main method that does what needs doing
|
|
|
|
*/
|
|
|
|
export const prebuildI18n = async (site) => {
|
|
|
|
// Iterate over locales
|
|
|
|
for (const locale in locales) {
|
2022-02-13 16:00:00 +01:00
|
|
|
// Only English for dev site
|
|
|
|
if (site !== 'dev' || locale === 'en') {
|
|
|
|
console.log('Generating translation files for', locale)
|
|
|
|
const loc = locales[locale]
|
|
|
|
// Fan out into namespaces
|
|
|
|
for (const namespace in loc) {
|
|
|
|
writeJson(
|
|
|
|
site, locale, namespace,
|
|
|
|
loc[namespace]
|
|
|
|
)
|
|
|
|
}
|
|
|
|
writeJson(site, locale, 'locales', languages)
|
2022-02-06 15:44:00 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|