in src/main.ts [399:429]
public addFile(original: string, keys: KeyInfo[], messages: MessageInfo[]) {
if (keys.length === 0) {
return;
}
if (keys.length !== messages.length) {
throw new Error(`Un-matching keys(${keys.length}) and messages(${messages.length}).`);
}
this.files[original] = [];
const existingKeys: Set<string> = new Set();
for (let i = 0; i < keys.length; i++) {
const keyInfo = keys[i];
const key = KeyInfo.key(keyInfo);
if (existingKeys.has(key)) {
continue;
}
existingKeys.add(key);
const messageInfo = messages[i];
const message = encodeEntities(MessageInfo.message(messageInfo));
const comment: string | undefined = function(comments: string[] | undefined) {
if (comments === undefined) {
return undefined;
}
return comments.map(comment => encodeEntities(comment)).join(`\r\n`);
}(KeyInfo.comment(keyInfo) ?? MessageInfo.comment(messageInfo));
this.files[original].push(comment !== undefined ? { id: key, message: message, comment: comment } : { id: key, message: message });
}
}