chore(i18n): Add prebuild run script
This commit is contained in:
parent
3915c0d0fb
commit
2944bb69a2
4 changed files with 32 additions and 8 deletions
|
@ -46,6 +46,7 @@ i18n:
|
|||
modulebuild: '!'
|
||||
test: 'BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register'
|
||||
testci: 'BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register'
|
||||
prebuild: 'node src/prebuild.mjs'
|
||||
pattern-info:
|
||||
cibuild_step1: '!'
|
||||
cibuild_step2: 'node src/prebuild.js && rollup -c'
|
||||
|
|
|
@ -31,7 +31,8 @@
|
|||
"pubforce": "npm publish",
|
||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||
"start": "rollup -c -w",
|
||||
"testci": "BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register"
|
||||
"testci": "BABEL_ENV=production ../../node_modules/.bin/_mocha tests/*.test.js --require @babel/register",
|
||||
"prebuild": "node src/prebuild.mjs"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@freesewing/pattern-info": "^2.20.4"
|
||||
|
|
|
@ -13,3 +13,11 @@ export const en = enNamespaces
|
|||
export const es = esNamespaces
|
||||
export const fr = frNamespaces
|
||||
export const nl = nlNamespaces
|
||||
|
||||
export const languages = {
|
||||
de: "Deutsch",
|
||||
en: "English",
|
||||
es: "Español",
|
||||
fr: "Français",
|
||||
nl: "Nederlands"
|
||||
}
|
||||
|
|
|
@ -2,6 +2,12 @@ import yaml from 'js-yaml'
|
|||
import path from 'path'
|
||||
import rdir from 'recursive-readdir'
|
||||
import { readdir, readFile, writeFile } from 'fs/promises'
|
||||
import { fileURLToPath } from 'url'
|
||||
import { dirname } from 'path'
|
||||
|
||||
// No __dirname in Node 14
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
const __dirname = dirname(__filename)
|
||||
|
||||
/*
|
||||
* Helper method to get a list of yaml/yml files.
|
||||
|
@ -10,7 +16,7 @@ import { readdir, readFile, writeFile } from 'fs/promises'
|
|||
const getTranslationFileList = async () => {
|
||||
let allFiles
|
||||
try {
|
||||
allFiles = await rdir(path.resolve('.', 'locales'))
|
||||
allFiles = await rdir(path.resolve(__dirname, 'locales'))
|
||||
}
|
||||
catch (err) {
|
||||
console.log(err)
|
||||
|
@ -137,7 +143,7 @@ const allNamespaces = {
|
|||
|
||||
export default allNamespaces
|
||||
`
|
||||
const indexFile = (locales) => `${header}
|
||||
const indexFile = (locales, data) => `${header}
|
||||
${locales
|
||||
.map(l => 'import '+l+'Namespaces from "./next/'+l+'/index.mjs"')
|
||||
.join("\n")
|
||||
|
@ -145,7 +151,15 @@ ${locales
|
|||
|
||||
${locales
|
||||
.map(l => 'export const '+l+' = '+l+'Namespaces')
|
||||
.join("\n")}
|
||||
.join("\n")
|
||||
}
|
||||
|
||||
export const languages = {
|
||||
${locales
|
||||
.map(l => ' '+l+': "'+ data[l].i18n[l]+'"')
|
||||
.join(",\n")
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
/*
|
||||
|
@ -157,7 +171,7 @@ const writeFiles = async allNamespaces => {
|
|||
for (const [namespace, data] of Object.entries(namespaces)) {
|
||||
promises.push(
|
||||
writeFile(
|
||||
path.resolve('.', 'next', locale, namespace+'.mjs', ),
|
||||
path.resolve(__dirname, 'next', locale, namespace+'.mjs', ),
|
||||
namespaceFile(namespace, data)
|
||||
)
|
||||
)
|
||||
|
@ -165,7 +179,7 @@ const writeFiles = async allNamespaces => {
|
|||
// Locale index files
|
||||
promises.push(
|
||||
writeFile(
|
||||
path.resolve('.', 'next', locale, 'index.mjs', ),
|
||||
path.resolve(__dirname, 'next', locale, 'index.mjs', ),
|
||||
localeFile(locale, Object.keys(namespaces))
|
||||
)
|
||||
)
|
||||
|
@ -173,8 +187,8 @@ const writeFiles = async allNamespaces => {
|
|||
// Locale index files
|
||||
promises.push(
|
||||
writeFile(
|
||||
path.resolve('.', 'next.mjs', ),
|
||||
indexFile(Object.keys(allNamespaces))
|
||||
path.resolve(__dirname, 'next.mjs', ),
|
||||
indexFile(Object.keys(allNamespaces), allNamespaces)
|
||||
)
|
||||
)
|
||||
await Promise.all(promises)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue