second commit
This commit is contained in:
65
node_modules/flowbite-datepicker/scripts/convert-bsdp-locales.js
generated
vendored
Normal file
65
node_modules/flowbite-datepicker/scripts/convert-bsdp-locales.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const usage = `USAGE:
|
||||
|
||||
node ${path.basename(process.argv[1])} [options] source_dir
|
||||
|
||||
source_dir: path to the locale directory of bootstrap-datepicker's source
|
||||
|
||||
Options:
|
||||
-h|--help print this help
|
||||
`;
|
||||
|
||||
const src = process.argv[2];
|
||||
if (!src || src === '-h' || src === '--help') {
|
||||
console.log(usage);
|
||||
process.exit();
|
||||
}
|
||||
if (!fs.existsSync(src) || !fs.statSync(src).isDirectory()) {
|
||||
console.error(`${src} is not a directory.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const reFilename = /^bootstrap-datepicker\.([a-z]+(-[A-Za-z]+)?)\.js$/;
|
||||
const files = fs.readdirSync(src);
|
||||
|
||||
if (files.length < 2 || !reFilename.test(files[1])) {
|
||||
console.error(`${src} is not a bootstrap-datepicker's locale directory.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const destDir = path.resolve(__dirname, '../js/i18n/locales');
|
||||
if (!fs.existsSync(destDir)) {
|
||||
fs.mkdirSync(destDir, {recursive: true});
|
||||
}
|
||||
|
||||
files.forEach(file => {
|
||||
const matched = file.match(reFilename);
|
||||
if (!matched) {
|
||||
return;
|
||||
}
|
||||
const lang = matched[1].replace('latin', 'latn');
|
||||
if (lang === 'en-US') {
|
||||
return;
|
||||
}
|
||||
const langKey = lang.indexOf('-') > -1 ? `'${lang}'` : lang;
|
||||
|
||||
let contents = fs.readFileSync(path.resolve(src, file), 'utf8');
|
||||
if (contents.indexOf('DEPRECATED') > -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
contents = contents
|
||||
.replace(/\t/g, ' ')
|
||||
.replace(/; *\( *function *\( *\$ *\) *\{/, 'export default {')
|
||||
.replace(/ *\$\.fn\.datepicker\.dates\[.+?\] =/, ` ${langKey}:`)
|
||||
.replace(/ *};/, ' }')
|
||||
.replace(/ *\} *\( *jQuery *\) *\);\s*/, '};\n')
|
||||
.replace(/ {5,}/g, ' ')
|
||||
.replace(/: *(\S)/g, ': $1')
|
||||
.replace(/ +\n/g, '\n')
|
||||
.replace(/(titleFormat:.+)yyyy/, '$1y');
|
||||
|
||||
fs.writeFileSync(path.resolve(destDir, `${lang}.js`), contents);
|
||||
});
|
Reference in New Issue
Block a user