mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-27 02:05:59 +00:00
feat: throw when found the same translation key with different default values
This commit is contained in:
@@ -37,13 +37,33 @@ async function extractAllTranslations(directories, extensions) {
|
|||||||
try {
|
try {
|
||||||
/** @type {Record<string, string>} */
|
/** @type {Record<string, string>} */
|
||||||
const allTranslations = {};
|
const allTranslations = {};
|
||||||
|
/** @type {Record<string, string[]>} */
|
||||||
|
const translationKeyToFiles = {};
|
||||||
|
|
||||||
for (const dir of directories) {
|
for (const dir of directories) {
|
||||||
const files = await getFiles(dir, extensions);
|
const files = await getFiles(dir, extensions);
|
||||||
|
|
||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
const fileTranslations = await extractTranslationsFromFile(file);
|
const fileTranslations = await extractTranslationsFromFile(file);
|
||||||
Object.assign(allTranslations, fileTranslations);
|
|
||||||
|
for (const key in fileTranslations) {
|
||||||
|
if (!translationKeyToFiles[key]) {
|
||||||
|
translationKeyToFiles[key] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
translationKeyToFiles[key].push(file);
|
||||||
|
|
||||||
|
if (allTranslations[key] && allTranslations[key] !== fileTranslations[key]) {
|
||||||
|
console.error(
|
||||||
|
`Different translations for the same key [${key}] found. ${file}: ${
|
||||||
|
fileTranslations[key]
|
||||||
|
}. Previous value: ${allTranslations[key]} was found in ${translationKeyToFiles[key].join(', ')}`
|
||||||
|
);
|
||||||
|
throw new Error(`Duplicate translation key found: ${key}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
allTranslations[key] = fileTranslations[key];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user