2022-02-06 15:44:00 +01:00
|
|
|
import path from 'path'
|
|
|
|
import fs from 'fs'
|
2022-06-17 12:02:09 +02:00
|
|
|
import { en, de, es, fr, nl, languages } from '../../../packages/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(
|
|
|
|
'..',
|
2022-06-17 12:02:09 +02:00
|
|
|
site,
|
2022-02-06 15:44:00 +01:00
|
|
|
'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
|
|
|
|
*/
|
2022-06-20 18:31:22 +02:00
|
|
|
export const prebuildI18n = async (site, only=false) => {
|
2022-02-06 15:44:00 +01:00
|
|
|
// 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) {
|
2022-06-20 18:31:22 +02:00
|
|
|
if (!only || only.indexOf(namespace) !== -1) {
|
|
|
|
writeJson(
|
|
|
|
site, locale, namespace,
|
|
|
|
loc[namespace]
|
|
|
|
)
|
|
|
|
}
|
2022-02-13 16:00:00 +01:00
|
|
|
}
|
|
|
|
writeJson(site, locale, 'locales', languages)
|
2022-02-06 15:44:00 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|