next-translate-scanner
Version:
Scan next-translate code for translations and update json files.
42 lines (41 loc) • 1.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = __importDefault(require("./logger"));
const isDifferent = (value, checkValue) => {
return !!value && value !== checkValue;
};
const translationsToNamespaceMap = (entries, config) => {
const namespaces = {};
for (const entry of entries) {
if (!namespaces[entry.ns]) {
namespaces[entry.ns] = {};
}
const value = entry.default || config.defaultValue?.(entry) || '';
if (entry.isPlural) {
if (isDifferent(namespaces[entry.ns][`${entry.key}_one`], value)) {
if (!!value) {
logger_1.default.warning(`Same key with different default value found: ${entry.ns}:${entry.key}`);
}
}
else {
namespaces[entry.ns][`${entry.key}_one`] = value;
namespaces[entry.ns][`${entry.key}_other`] = value;
}
}
else {
if (isDifferent(namespaces[entry.ns][entry.key], value)) {
if (!!value) {
logger_1.default.warning(`Same key with different default value found: ${entry.ns}:${entry.key}`);
}
}
else {
namespaces[entry.ns][entry.key] = value;
}
}
}
return namespaces;
};
exports.default = translationsToNamespaceMap;