target.loc = function()

in make.js [60:126]


target.loc = function () {
    // create a key->value map of the default strings
    var defaultStrings = {};
    var lib = JSON.parse(fs.readFileSync(path.join(__dirname, 'lib.json')));
    if (lib.messages) {
        for (var key of Object.keys(lib.messages)) {
            // skip resjson-style comments for localizers
            if (!key || key.match(/^_.+\.comment$/)) {
                continue;
            }

            defaultStrings[`loc.messages.${key}`] = lib.messages[key];
        }
    }

    // create the culture-specific resjson files
    for (var culture of cultures) {
        // initialize the culture-specific strings from the default strings
        var cultureStrings = {};
        for (var key of Object.keys(defaultStrings)) {
            cultureStrings[key] = defaultStrings[key];
        }

        // load the culture-specific xliff file
        var xliffPath = path.join(__dirname, 'xliff', `${culture}.xlf`);
        var stats;
        try {
            stats = fs.statSync(xliffPath);
        }
        catch (err) {
            if (err.code != 'ENOENT') {
                throw err;
            }
        }

        if (stats) {
            // parse the culture-specific xliff contents
            var parser = new xml2js.Parser();
            var xliff;
            parser.parseString(
                fs.readFileSync(xliffPath),
                function (err, result) {
                    if (err) {
                        throw err;
                    }

                    xliff = result;
                });

            // overlay the translated strings
            for (var unit of xliff.xliff.file[0].body[0]['trans-unit']) {
                if (unit.target[0].$.state == 'translated' &&
                    defaultStrings.hasOwnProperty(unit.$.id) &&
                    defaultStrings[unit.$.id] == unit.source[0]) {

                    cultureStrings[unit.$.id] = unit.target[0]._;
                }
            }
        }

        // write the culture-specific resjson file
        var resjsonPath = path.join(__dirname, 'Strings', 'resources.resjson', culture, 'resources.resjson');
        var resjsonContents = JSON.stringify(cultureStrings, null, 2);
        tl.mkdirP(path.dirname(resjsonPath));
        fs.writeFileSync(resjsonPath, resjsonContents);
    }
}