2
2
mirror of https://github.com/Thream/website.git synced 2024-07-21 09:28:32 +02:00
website/generators/language/index.js
2021-10-24 05:48:06 +02:00

49 lines
1.2 KiB
JavaScript

const fs = require('node:fs')
const prettier = require('prettier')
/**
* @param {import('plop').NodePlopAPI} plop
* @returns {import('node-plop').PlopGeneratorConfig}
*/
exports.languageGenerator = (plop) => {
return {
description: 'Add a new language for translations',
prompts: [
{
type: 'input',
name: 'locale',
message: 'locale'
}
],
actions: [
{
type: 'addMany',
base: 'locales/en',
destination: 'locales/{{locale}}',
templateFiles: 'locales/en/**'
},
async (answers) => {
process.chdir(plop.getPlopfilePath())
const data = JSON.parse(
await fs.promises.readFile('i18n.json', { encoding: 'utf-8' })
)
data.locales.push(answers.locale)
const formatted = prettier.format(JSON.stringify(data, null, 2), {
filepath: 'i18n.json'
})
await fs.promises.writeFile('i18n.json', formatted, {
encoding: 'utf-8'
})
return plop.renderString(
`
Added '{{locale}}' to the 'locales' array inside 'i18n.json'
Don't forget to add the flag at 'public/images/svg/languages/{{locale}}.svg'
`,
answers
)
}
]
}
}