Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require("fs");
- const convert = require("xml-js");
- const getFile = name => {
- if (name === "en") {
- return `${process.cwd()}/app/src/main/res/values/strings.xml`;
- }
- return `${process.cwd()}/app/src/main/res/values-${name}/strings.xml`;
- };
- const be = fs.readFileSync(getFile("be"), "utf-8");
- const en = fs.readFileSync(getFile("en"), "utf-8");
- const beRAW = convert.xml2json(be, { compact: true, spaces: 4 });
- const enRAW = convert.xml2json(en, { compact: true, spaces: 4 });
- const beJSON = JSON.parse(beRAW).resources.string;
- const enJSON = JSON.parse(enRAW).resources.string;
- const difference = (be, en) => {
- const mapper = value => {
- return value._attributes.name;
- };
- const d1 = be.map(mapper);
- const d2 = en.map(mapper);
- const filter = d2.filter(value => {
- if (!d1.includes(value)) {
- return value;
- }
- });
- return filter;
- };
- const addFifferencesToFile = (fileName, differences) => {
- const filePath = getFile(fileName);
- const be = fs.readFileSync(filePath, "utf-8");
- const en = fs.readFileSync(getFile("en"), "utf-8");
- const enRAW = convert.xml2json(en, { spaces: 4 });
- const enJSON = JSON.parse(enRAW);
- const elements = enJSON.elements[0].elements
- .map((el, i) => {
- if (differences.includes(el.attributes.name)) {
- return el;
- }
- return;
- })
- .filter(el => el != null);
- const result = convert.json2xml({
- ...enJSON,
- elements
- });
- return result
- .replace('<?xml version="1.0" encoding="utf-8"?>', "")
- .replace("</string>", "</string>\n")
- .replace("<string>", "\xa0\xa0\xa0\xa0<string>");
- };
- const differences = difference(beJSON, enJSON);
- console.log(addFifferencesToFile("be", differences));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement