overleaf/services/web/scripts/translations/transformLocales.js

50 lines
932 B
JavaScript
Raw Normal View History

const fs = require('fs')
const LANGUAGES = [
'cs',
'da',
'de',
'en',
'es',
'fi',
'fr',
'it',
'ja',
'ko',
'nl',
'no',
'pl',
'pt',
'ru',
'sv',
'tr',
'zh-CN',
]
const LOCALES = {}
LANGUAGES.forEach(loadLocales)
function loadLocales(language) {
LOCALES[language] = require(`../../locales/${language}.json`)
}
function transformLocales(mapping, transformLocale) {
Object.entries(LOCALES).forEach(([language, translatedLocales]) => {
Object.entries(mapping).forEach(([localeKey, spec]) => {
const locale = translatedLocales[localeKey]
if (!locale) {
// This locale is not translated yet.
return
}
translatedLocales[localeKey] = transformLocale(locale, spec)
})
fs.writeFileSync(
`${__dirname}/../../locales/${language}.json`,
JSON.stringify(translatedLocales, null, 2) + '\n'
)
})
}
module.exports = {
transformLocales,
}