-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathios.js
72 lines (61 loc) · 1.78 KB
/
ios.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env node
var fs = require("fs");
var path = require("path");
var common = require("./common.js");
var iosParser = require("./iosParser");
function getFiles(dir, lang) {
var files = common.getFiles(dir, []);
files = files.filter(function(item) {
if (lang === "") {
lang = "Base";
}
return path.extname(item) === ".strings" && item.indexOf("/" + lang + ".lproj/") > -1;
});
return files;
}
function removeFormat(value) {
value = common.replaceAll(value, "\\n", "\n");
return value;
}
function addFormat(value) {
value = common.replaceAll(value, "\n", "\\n");
return value;
}
function getData(dir, lang) {
var files = getFiles(dir, lang);
var obj = {};
files.map(function(name) {
var data = iosParser.getData(name);
for (var key in data) {
if (data.hasOwnProperty(key)) {
if (data[key]) {
obj[key] = removeFormat(data[key]);
}
}
}
});
return obj;
}
function setData(newdata, dir, fromLang, toLang) {
var files = getFiles(dir, fromLang);
files.map(function(name) {
var olddata = iosParser.getData(name);
var newname = name.replace("/" + fromLang + ".lproj/", "/" + toLang + ".lproj/");
common.createParentFolder(newname);
var data = [];
for (var key in olddata) {
if (olddata.hasOwnProperty(key)) {
var oldvalue = olddata[key];
var newvalue = newdata[removeFormat(oldvalue)];
if (newvalue && isNaN(newvalue)) {
data[key] = addFormat(newvalue);
}
}
}
iosParser.setData(newname, data);
});
}
module.exports = {
getData,
setData
};