@criticalmanufacturing/dev-i18n-transform
Version:
i18n <--> gettext transform
45 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const validator_interface_1 = require("./validator.interface");
const util_1 = require("../util");
class DuplicatedTranslationsValidator {
constructor(pack) {
this._pack = pack;
}
/**
* Run the validator
*
* @returns A list of validation results.
*/
validate() {
let knownTranslations = new Map();
let validationResults = [];
this._pack.files.forEach((file) => {
file.messages.forEach((message) => {
let translatedMessage = message.getTranslation(util_1.default.defaultLanguage);
// skip null translations
if (!translatedMessage)
return;
// skip literal translations - they don't need to be validated
if (translatedMessage.isLiteral)
return;
if (knownTranslations.has(translatedMessage.text)) {
validationResults.push({
file: file,
type: validator_interface_1.ValidationResultType.Error,
message: `Duplicated resource '${translatedMessage.text}' for ${util_1.default.defaultLanguage}`,
col: translatedMessage.column,
line: translatedMessage.line
});
knownTranslations.set(translatedMessage.text, knownTranslations.get(translatedMessage.text) + 1);
}
else {
knownTranslations.set(translatedMessage.text, 1);
}
});
});
return validationResults;
}
}
exports.DuplicatedTranslationsValidator = DuplicatedTranslationsValidator;
//# sourceMappingURL=duplicatedTranslations.validator.js.map