|
|
@ -5,7 +5,7 @@ const JSON5 = require("json5"); |
|
|
|
|
|
|
|
// Extract translations from $t() functions in the source code and add the missing translations to all language files in src/languages/*.js
|
|
|
|
async function extractTranslations() { |
|
|
|
// Load all es6 module translation files into a commonJS process
|
|
|
|
// Load all ES6 module translation files into a commonJS process
|
|
|
|
const languageList = {}; |
|
|
|
const filesNames = await fs.readdir("src/languages"); |
|
|
|
for (let fileName of filesNames) { |
|
|
@ -18,17 +18,17 @@ async function extractTranslations() { |
|
|
|
|
|
|
|
const en = languageList.en; |
|
|
|
|
|
|
|
// Search the source code for usages of $t()
|
|
|
|
const results = await findInFiles.find({ |
|
|
|
const englishExtracted = []; |
|
|
|
|
|
|
|
// Search the source code for usages of $t(...)
|
|
|
|
const tFuncResults = await findInFiles.find({ |
|
|
|
term: "\\$t\\(([^)]+?)\\)", |
|
|
|
flags: "g", |
|
|
|
}, "./src", "\\.(vue|js)"); |
|
|
|
|
|
|
|
const englishExtracted = []; |
|
|
|
|
|
|
|
// Make a list of all the found strings
|
|
|
|
// Add the found strings to the englishExtracted list
|
|
|
|
const warnings = []; |
|
|
|
Object.values(results).map(result => { |
|
|
|
Object.values(tFuncResults).map(result => { |
|
|
|
result.matches.map(match => { |
|
|
|
const functionParams = match.substring(3, match.length - 1).trim(); |
|
|
|
const firstChar = functionParams[0]; |
|
|
@ -43,6 +43,20 @@ async function extractTranslations() { |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
// Search the source code for usages of <i18n-t tag="..." keypath="...">
|
|
|
|
const i18nTTagResults = await findInFiles.find({ |
|
|
|
term: "<i18n-t[^>]+keypath=\"([^\"]+)\"[^>]*>", |
|
|
|
flags: "g", |
|
|
|
}, "./src", "\\.vue"); |
|
|
|
|
|
|
|
// Add the found strings to the englishExtracted list
|
|
|
|
Object.values(i18nTTagResults).map(result => { |
|
|
|
result.matches.map(match => { |
|
|
|
const content = _.trim(match.split("keypath")[1].split("\"")[1], "\"' "); |
|
|
|
englishExtracted.push(content); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
// Update all languages with the missing strings
|
|
|
|
for (let extractedTranslation of englishExtracted) { |
|
|
|
for (let langDict of Object.values(languageList)) { |
|
|
|