attranslate
Version:
Semi-automated Text Translator for Websites and Apps
38 lines (37 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeiOSFile = void 0;
const ios_read_1 = require("./ios-read");
const managed_utf8_1 = require("../common/managed-utf8");
function writeiOSFile(args, cache) {
const outLines = [];
args.tSet.forEach((value, key) => {
const oldChunk = cache.lookup({ path: args.path, key });
let newChunk;
if (oldChunk) {
newChunk = convertOldChunkIntoNewChunk(oldChunk, value);
}
else {
newChunk = createNewChunk(key, value);
}
outLines.push(...newChunk.lines);
});
outLines.push("\n");
const output = outLines.join("\n");
(0, managed_utf8_1.writeManagedUtf8)({ path: args.path, utf8: output });
}
exports.writeiOSFile = writeiOSFile;
function createNewChunk(key, newValue) {
return {
value: newValue,
lines: ["", "", `"${key}" = "${newValue}";`],
};
}
function convertOldChunkIntoNewChunk(oldChunk, newValue) {
oldChunk.value = newValue;
const valueLine = oldChunk.lines[oldChunk.lines.length - 1];
const token = valueLine.split('"');
token[ios_read_1.VALUE_INDEX] = newValue !== null && newValue !== void 0 ? newValue : "";
oldChunk.lines[oldChunk.lines.length - 1] = token.join('"');
return oldChunk;
}