overleaf/services/web/scripts/translations/checkSanitizeOptions.js
Timothée Alby 58cf92620a Merge pull request #6523 from overleaf/jpa-translations-check-sanitize
[web] scripts/translations: add script for checking html sanitization

GitOrigin-RevId: d4b9c9a7eb1ed0ca9202b0cb6e4c33f3e73bd0e4
2022-02-03 09:03:58 +00:00

42 lines
1.1 KiB
JavaScript

const Path = require('path')
const fs = require('fs')
const { sanitize } = require('./sanitize')
async function main() {
let ok = true
const base = Path.join(__dirname, '/../../locales')
for (const name of await fs.promises.readdir(base)) {
if (name === 'README.md') continue
const blob = await fs.promises.readFile(
Path.join(__dirname, '/../../locales', name),
'utf-8'
)
const locales = JSON.parse(blob)
for (const key of Object.keys(locales)) {
const want = locales[key]
const got = sanitize(locales[key])
if (got !== want) {
if (want === 'Editor & PDF' && got === 'Editor & PDF') {
// Ignore this mismatch. React cannot handle escaped labels.
continue
}
ok = false
console.warn(`${name}: ${key}: want: ${want}`)
console.warn(`${name}: ${key}: got: ${got}`)
}
}
}
if (!ok) {
throw new Error('Check the logs, some values changed.')
}
}
main()
.then(() => {
process.exit(0)
})
.catch(error => {
console.error(error)
process.exit(1)
})