@sabaki/i18n
Version:
Home of Sabaki's translation efforts
46 lines (35 loc) • 1.2 kB
JavaScript
const {spawnSync} = require('child_process')
const {writeFileSync} = require('fs')
const path = require('path')
const globby = require('globby')
const index = require('../index.json')
const package = require('../package.json')
// Sync Sabaki version
let sabakiPackage = require('../.tmp/Sabaki/package.json')
if (!package.version.startsWith(sabakiPackage.version)) {
package.version = `${sabakiPackage.version}-0`
}
writeFileSync(
path.resolve(__dirname, '../package.json'),
JSON.stringify(package, null, ' ')
)
// Sync stats
for (let filename of globby.sync(['src/*.i18n.js', '!src/template.i18n.js'])) {
let result = spawnSync(
'npx',
['dolm', 'stats', path.resolve(__dirname, '..', filename)],
{
cwd: path.resolve(__dirname, '../.tmp/Sabaki')
}
)
let match = path.basename(filename).match(/^([^.]+)\.i18n\.js$/)
if (match == null || match[1] == null) continue
let locale = match[1]
let stats = JSON.parse(result.stdout.toString())
if (index[locale] == null) continue
index[locale].stats = stats
}
writeFileSync(
path.resolve(__dirname, '../index.json'),
JSON.stringify(index, null, ' ')
)