269 lines
8.2 KiB
JavaScript
269 lines
8.2 KiB
JavaScript
const fs = require('fs')
|
||
const definitionFile = process.cwd() + '/definitions/en_CA.js'
|
||
const newDefinitionFile = process.cwd() + '/tools/en_CA.js'
|
||
const languagesFile = process.cwd() + '/languages/en_CA.json'
|
||
const newLanguagesFile = process.cwd() + '/tools/en_CA.json'
|
||
const languagesData = require(languagesFile)
|
||
var definitonsRawData = fs.readFileSync(definitionFile).toString()
|
||
const definitionData = require(definitionFile)({
|
||
gid: () => {return 'randomId'},
|
||
listOfStorage: [],
|
||
},
|
||
{
|
||
timeZones: [
|
||
{
|
||
"text": "UTC−12:00, Y",
|
||
"value": -720
|
||
},
|
||
{
|
||
"text": "UTC−11:00, X",
|
||
"value": -660
|
||
},
|
||
{
|
||
"text": "UTC−10:00, W",
|
||
"value": -600
|
||
},
|
||
{
|
||
"text": "UTC−09:30, V†",
|
||
"value": -570
|
||
},
|
||
{
|
||
"text": "UTC−09:00, V",
|
||
"value": -540
|
||
},
|
||
{
|
||
"text": "UTC−08:00, U",
|
||
"value": -480
|
||
},
|
||
{
|
||
"text": "UTC−07:00, T",
|
||
"value": -420
|
||
},
|
||
{
|
||
"text": "UTC−06:00, S",
|
||
"value": -360
|
||
},
|
||
{
|
||
"text": "UTC−05:00, R",
|
||
"value": -300
|
||
},
|
||
{
|
||
"text": "UTC−04:00, Q",
|
||
"value": -240
|
||
},
|
||
{
|
||
"text": "UTC−03:30, P†",
|
||
"value": -210
|
||
},
|
||
{
|
||
"text": "UTC−03:00, P",
|
||
"value": -180
|
||
},
|
||
{
|
||
"text": "UTC−02:00, O",
|
||
"value": -120
|
||
},
|
||
{
|
||
"text": "UTC−01:00, N",
|
||
"value": -60
|
||
},
|
||
{
|
||
"text": "UTC±00:00, Z",
|
||
"value": 0,
|
||
"selected": true
|
||
},
|
||
{
|
||
"text": "UTC+01:00, A",
|
||
"value": 60
|
||
},
|
||
{
|
||
"text": "UTC+02:00, B",
|
||
"value": 120
|
||
},
|
||
{
|
||
"text": "UTC+03:00, C",
|
||
"value": 180
|
||
},
|
||
{
|
||
"text": "UTC+03:30, C†",
|
||
"value": 210
|
||
},
|
||
{
|
||
"text": "UTC+04:00, D",
|
||
"value": 240
|
||
},
|
||
{
|
||
"text": "UTC+04:30, D†",
|
||
"value": 270
|
||
},
|
||
{
|
||
"text": "UTC+05:00, E",
|
||
"value": 300
|
||
},
|
||
{
|
||
"text": "UTC+05:30, E†",
|
||
"value": 330
|
||
},
|
||
{
|
||
"text": "UTC+05:45, E*",
|
||
"value": 345
|
||
},
|
||
{
|
||
"text": "UTC+06:00, F",
|
||
"value": 360
|
||
},
|
||
{
|
||
"text": "UTC+06:30, F†",
|
||
"value": 390
|
||
},
|
||
{
|
||
"text": "UTC+07:00, G",
|
||
"value": 420
|
||
},
|
||
{
|
||
"text": "UTC+08:00, H",
|
||
"value": 480
|
||
},
|
||
{
|
||
"text": "UTC+08:45, H*",
|
||
"value": 525
|
||
},
|
||
{
|
||
"text": "UTC+09:00, I",
|
||
"value": 540
|
||
},
|
||
{
|
||
"text": "UTC+09:30, I†",
|
||
"value": 570
|
||
},
|
||
{
|
||
"text": "UTC+10:00, K",
|
||
"value": 600
|
||
},
|
||
{
|
||
"text": "UTC+10:30, K†",
|
||
"value": 630
|
||
},
|
||
{
|
||
"text": "UTC+11:00, L",
|
||
"value": 660
|
||
},
|
||
{
|
||
"text": "UTC+12:00, M",
|
||
"value": 720
|
||
},
|
||
{
|
||
"text": "UTC+12:45, M*",
|
||
"value": 765
|
||
},
|
||
{
|
||
"text": "UTC+13:00, M†",
|
||
"value": 780
|
||
},
|
||
{
|
||
"text": "UTC+14:00, M†",
|
||
"value": 840
|
||
}
|
||
]
|
||
},
|
||
languagesData
|
||
);
|
||
|
||
const capitalize = (s) => {
|
||
if (typeof s !== 'string') return ''
|
||
return (s.charAt(0).toUpperCase() + s.slice(1))
|
||
}
|
||
const capitalizeAllWords = (string) => {
|
||
let firstPart = ``
|
||
let secondPart = ``
|
||
let thirdPart = ``
|
||
let newString = ``
|
||
string
|
||
.replace(/"/g,'')
|
||
.split(' ').forEach((part) => {
|
||
firstPart += capitalize(part)
|
||
})
|
||
firstPart.split('_').forEach((part) => {
|
||
secondPart += capitalize(part)
|
||
})
|
||
secondPart.split('-').forEach((part) => {
|
||
thirdPart += capitalize(part)
|
||
})
|
||
thirdPart.split('=').forEach((part) => {
|
||
newString += capitalize(part)
|
||
})
|
||
return newString
|
||
}
|
||
function replaceTextWithLandParam(langText,langParam){
|
||
if(definitonsRawData.indexOf(`"${langText}"`) > -1){
|
||
definitonsRawData = definitonsRawData.replace(`"${langText}"`,`lang["${langParam}"]`)
|
||
console.log('Replacing : ',definitonsRawData.indexOf(`"${langText}"`),`"${langText}"`,langParam)
|
||
}else if(definitonsRawData.indexOf(`'${langText}'`) > -1){
|
||
definitonsRawData = definitonsRawData.replace(`'${langText}'`,`lang["${langParam}"]`)
|
||
console.log('Replacing : ',definitonsRawData.indexOf(`'${langText}'`),`'${langText}'`,langParam)
|
||
}
|
||
}
|
||
const processSection = (section) => {
|
||
try{
|
||
if(section.info){
|
||
section.info.forEach((field) => {
|
||
if(field.isSection){
|
||
processSection(field)
|
||
}else{
|
||
if(field.name){
|
||
const cleanName = field.name.replace('detail=','')
|
||
if(field.description){
|
||
const langParam = `fieldText` + capitalizeAllWords(cleanName)
|
||
const langText = field.description
|
||
newLangParams[langParam] = langText
|
||
replaceTextWithLandParam(langText,langParam)
|
||
}
|
||
if(field.possible instanceof Array){
|
||
field.possible.forEach((possibility) => {
|
||
if(possibility.info){
|
||
const langParam = `fieldText` + capitalizeAllWords(cleanName) + capitalizeAllWords(possibility.name)
|
||
const langText = possibility.info
|
||
newLangParams[langParam] = langText
|
||
replaceTextWithLandParam(langText,langParam)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}catch(err){
|
||
console.log(err)
|
||
console.error(section)
|
||
console.error(err)
|
||
}
|
||
}
|
||
|
||
const newLangParams = {}
|
||
const pageKeys = Object.keys(definitionData)
|
||
pageKeys.forEach((pageKey) => {
|
||
const page = definitionData[pageKey]
|
||
if(page.blocks){
|
||
const pageData = Object.keys(page.blocks)
|
||
pageData.forEach((sectionKey) => {
|
||
const section = page.blocks[sectionKey]
|
||
processSection(section)
|
||
})
|
||
}else{
|
||
// console.log(page)
|
||
}
|
||
})
|
||
const newLanguageFile = Object.assign(languagesData,newLangParams)
|
||
// console.log(definitonsRawData)
|
||
console.log(newLanguageFile)
|
||
setTimeout(() => {
|
||
try{
|
||
console.log('Writing New Definitions File, en_CA.js')
|
||
fs.writeFileSync(newDefinitionFile,definitonsRawData)
|
||
console.log('Writing New Language File, en_CA.json')
|
||
fs.writeFileSync(newLanguagesFile,JSON.stringify(newLanguageFile,null,3))
|
||
}catch(err){
|
||
console.log(err)
|
||
}
|
||
},2000)
|