@esgettext/tools 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +126 -0
- package/bin/esgettext-install.js +5 -0
- package/bin/esgettext-mo2json.js +5 -0
- package/bin/esgettext-msgfmt-all.js +5 -0
- package/bin/esgettext-msgmerge-all.js +5 -0
- package/bin/esgettext-xgettext.js +5 -0
- package/dist/cli/getopt.d.ts +34 -0
- package/dist/cli/getopt.js +150 -0
- package/dist/cli/getopt.js.map +1 -0
- package/dist/cli/getopt.spec.d.ts +1 -0
- package/dist/cli/getopt.spec.js +164 -0
- package/dist/cli/getopt.spec.js.map +1 -0
- package/dist/cli/install.d.ts +1 -0
- package/dist/cli/install.js +91 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/mo2json-cli.d.ts +1 -0
- package/dist/cli/mo2json-cli.js +48 -0
- package/dist/cli/mo2json-cli.js.map +1 -0
- package/dist/cli/msgfmt-all.d.ts +1 -0
- package/dist/cli/msgfmt-all.js +99 -0
- package/dist/cli/msgfmt-all.js.map +1 -0
- package/dist/cli/msgmerge-all.d.ts +1 -0
- package/dist/cli/msgmerge-all.js +85 -0
- package/dist/cli/msgmerge-all.js.map +1 -0
- package/dist/cli/xgettext-cli.d.ts +1 -0
- package/dist/cli/xgettext-cli.js +303 -0
- package/dist/cli/xgettext-cli.js.map +1 -0
- package/dist/install/install.d.ts +10 -0
- package/dist/install/install.js +157 -0
- package/dist/install/install.js.map +1 -0
- package/dist/msgfmt-all/msgfmt-all.d.ts +8 -0
- package/dist/msgfmt-all/msgfmt-all.js +142 -0
- package/dist/msgfmt-all/msgfmt-all.js.map +1 -0
- package/dist/msgmerge-all/msgmerge-all.d.ts +9 -0
- package/dist/msgmerge-all/msgmerge-all.js +157 -0
- package/dist/msgmerge-all/msgmerge-all.js.map +1 -0
- package/dist/package.d.ts +4 -0
- package/dist/package.js +17 -0
- package/dist/package.js.map +1 -0
- package/dist/parser/__snapshots__/javascript.spec.js.snap +56 -0
- package/dist/parser/__snapshots__/po.spec.js.snap +176 -0
- package/dist/parser/javascript.d.ts +4 -0
- package/dist/parser/javascript.js +47 -0
- package/dist/parser/javascript.js.map +1 -0
- package/dist/parser/javascript.spec.d.ts +1 -0
- package/dist/parser/javascript.spec.js +436 -0
- package/dist/parser/javascript.spec.js.map +1 -0
- package/dist/parser/parser.d.ts +45 -0
- package/dist/parser/parser.js +582 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/po.d.ts +22 -0
- package/dist/parser/po.js +394 -0
- package/dist/parser/po.js.map +1 -0
- package/dist/parser/po.spec.d.ts +1 -0
- package/dist/parser/po.spec.js +296 -0
- package/dist/parser/po.spec.js.map +1 -0
- package/dist/parser/typescript.d.ts +4 -0
- package/dist/parser/typescript.js +47 -0
- package/dist/parser/typescript.js.map +1 -0
- package/dist/parser/typescript.spec.d.ts +1 -0
- package/dist/parser/typescript.spec.js +106 -0
- package/dist/parser/typescript.spec.js.map +1 -0
- package/dist/pot/__snapshots__/catalog.spec.js.snap +591 -0
- package/dist/pot/catalog.d.ts +26 -0
- package/dist/pot/catalog.js +210 -0
- package/dist/pot/catalog.js.map +1 -0
- package/dist/pot/catalog.spec.d.ts +1 -0
- package/dist/pot/catalog.spec.js +240 -0
- package/dist/pot/catalog.spec.js.map +1 -0
- package/dist/pot/entry.d.ts +35 -0
- package/dist/pot/entry.js +322 -0
- package/dist/pot/entry.js.map +1 -0
- package/dist/pot/entry.spec.d.ts +1 -0
- package/dist/pot/entry.spec.js +317 -0
- package/dist/pot/entry.spec.js.map +1 -0
- package/dist/pot/keyword.d.ts +17 -0
- package/dist/pot/keyword.js +181 -0
- package/dist/pot/keyword.js.map +1 -0
- package/dist/pot/keyword.spec.d.ts +1 -0
- package/dist/pot/keyword.spec.js +54 -0
- package/dist/pot/keyword.spec.js.map +1 -0
- package/dist/xgettext/__snapshots__/xgettext.spec.js.snap +462 -0
- package/dist/xgettext/file-resolver.d.ts +5 -0
- package/dist/xgettext/file-resolver.js +23 -0
- package/dist/xgettext/file-resolver.js.map +1 -0
- package/dist/xgettext/file-resolver.spec.d.ts +1 -0
- package/dist/xgettext/file-resolver.spec.js +22 -0
- package/dist/xgettext/file-resolver.spec.js.map +1 -0
- package/dist/xgettext/files-collector.d.ts +5 -0
- package/dist/xgettext/files-collector.js +41 -0
- package/dist/xgettext/files-collector.js.map +1 -0
- package/dist/xgettext/files-collector.spec.d.ts +1 -0
- package/dist/xgettext/files-collector.spec.js +78 -0
- package/dist/xgettext/files-collector.spec.js.map +1 -0
- package/dist/xgettext/xgettext.d.ts +16 -0
- package/dist/xgettext/xgettext.js +335 -0
- package/dist/xgettext/xgettext.js.map +1 -0
- package/dist/xgettext/xgettext.spec.d.ts +1 -0
- package/dist/xgettext/xgettext.spec.js +743 -0
- package/dist/xgettext/xgettext.spec.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Catalog = void 0;
|
|
4
|
+
var entry_1 = require("./entry");
|
|
5
|
+
var Catalog = (function () {
|
|
6
|
+
function Catalog(properties) {
|
|
7
|
+
if (properties === void 0) { properties = {}; }
|
|
8
|
+
this.properties = properties;
|
|
9
|
+
this.cache = {};
|
|
10
|
+
this.entries = new Array();
|
|
11
|
+
var barePkg;
|
|
12
|
+
if (typeof properties.package === 'undefined') {
|
|
13
|
+
barePkg = 'PACKAGE';
|
|
14
|
+
properties.package = 'PACKAGE VERSION';
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
barePkg = properties.package.replace(/\n/g, '\\n');
|
|
18
|
+
;
|
|
19
|
+
if (typeof properties.version !== 'undefined') {
|
|
20
|
+
properties.package += ' ' + properties.version;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (typeof properties.copyrightHolder === 'undefined') {
|
|
24
|
+
properties.copyrightHolder = "THE PACKAGE'S COPYRIGHT HOLDER";
|
|
25
|
+
}
|
|
26
|
+
if (typeof properties.msgidBugsAddress === 'undefined') {
|
|
27
|
+
properties.msgidBugsAddress = 'MSGID_BUGS_ADDRESS';
|
|
28
|
+
}
|
|
29
|
+
if (typeof properties.date === 'undefined') {
|
|
30
|
+
var now = new Date();
|
|
31
|
+
var year = now.getFullYear().toString();
|
|
32
|
+
year = '0'.repeat(4 - year.length) + year;
|
|
33
|
+
var month = (1 + now.getMonth()).toString();
|
|
34
|
+
month = '0'.repeat(2 - month.length) + month;
|
|
35
|
+
var mday = now.getDate().toString();
|
|
36
|
+
mday = '0'.repeat(2 - mday.length) + mday;
|
|
37
|
+
var hour = now.getHours().toString();
|
|
38
|
+
hour = '0'.repeat(2 - hour.length) + hour;
|
|
39
|
+
var minutes = now.getMinutes().toString();
|
|
40
|
+
minutes = '0'.repeat(2 - minutes.length) + minutes;
|
|
41
|
+
var offset = now.getTimezoneOffset();
|
|
42
|
+
var sign = ['+', '-'][Math.sign(offset) + 1];
|
|
43
|
+
offset = Math.abs(offset);
|
|
44
|
+
var offsetHours = Math.floor(offset / 60).toString();
|
|
45
|
+
offsetHours = '0'.repeat(2 - offsetHours.length) + offsetHours;
|
|
46
|
+
var offsetMinutes = (offset % 60).toString();
|
|
47
|
+
offsetMinutes = '0'.repeat(2 - offsetMinutes.length) + offsetMinutes;
|
|
48
|
+
properties.date =
|
|
49
|
+
[year, month, mday].join('-') +
|
|
50
|
+
" ".concat(hour, ":").concat(minutes) +
|
|
51
|
+
"".concat(sign).concat(offsetHours).concat(offsetMinutes);
|
|
52
|
+
}
|
|
53
|
+
var pkg = properties.package.replace(/\n/g, '\\n');
|
|
54
|
+
var msgidBugsAddress = properties.msgidBugsAddress.replace(/\n/g, '\\n');
|
|
55
|
+
var copyrightHolder = properties.copyrightHolder.replace(/\n/g, '\\n');
|
|
56
|
+
var header = "Project-Id-Version: ".concat(pkg, "\nReport-Msgid-Bugs-To: ").concat(msgidBugsAddress, "\nPOT-Creation-Date: ").concat(properties.date, "\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME <EMAIL@ADDRESS>\nLanguage-Team: LANGUAGE <LL@li.org>\nLanguage: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=CHARSET\nContent-Transfer-Encoding: 8bit\n");
|
|
57
|
+
var comment;
|
|
58
|
+
if (properties.foreignUser) {
|
|
59
|
+
comment = "SOME DESCRIPTIVE TITLE\nThis file is put in the public domain.\nFIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n";
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
comment = "SOME DESCRIPTIVE TITLE\nCopyright (C) YEAR ".concat(copyrightHolder, "\nThis file is distributed under the same license as the ").concat(barePkg, " package.\nFIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n");
|
|
63
|
+
}
|
|
64
|
+
var headerEntry = new entry_1.POTEntry({
|
|
65
|
+
msgid: '',
|
|
66
|
+
msgstr: header,
|
|
67
|
+
flags: ['fuzzy'],
|
|
68
|
+
translatorComments: [comment],
|
|
69
|
+
noWarnings: true,
|
|
70
|
+
});
|
|
71
|
+
this.addEntry(headerEntry);
|
|
72
|
+
}
|
|
73
|
+
Catalog.prototype.toString = function (options) {
|
|
74
|
+
if (options === void 0) { options = {}; }
|
|
75
|
+
var width = options && typeof options.width !== 'undefined' ? options.width : 76;
|
|
76
|
+
var isNotHeader = function (entry) {
|
|
77
|
+
return !(entry.properties.msgid === '' &&
|
|
78
|
+
typeof entry.properties.msgctxt === 'undefined');
|
|
79
|
+
};
|
|
80
|
+
var isHeader = function (entry) {
|
|
81
|
+
return !isNotHeader(entry);
|
|
82
|
+
};
|
|
83
|
+
var header = options.omitHeader
|
|
84
|
+
? undefined
|
|
85
|
+
: this.entries
|
|
86
|
+
.filter(isHeader)
|
|
87
|
+
.map(function (entry) { return entry.toString(width); })
|
|
88
|
+
.join('\n');
|
|
89
|
+
var body = '';
|
|
90
|
+
if (options.sortOutput) {
|
|
91
|
+
body = this.entries
|
|
92
|
+
.filter(isNotHeader)
|
|
93
|
+
.sort(function (a, b) {
|
|
94
|
+
var cmp = a.properties.msgid.localeCompare(b.properties.msgid);
|
|
95
|
+
if (cmp) {
|
|
96
|
+
return cmp;
|
|
97
|
+
}
|
|
98
|
+
var actx = a.properties.msgctxt;
|
|
99
|
+
var bctx = b.properties.msgctxt;
|
|
100
|
+
if (typeof bctx === 'undefined') {
|
|
101
|
+
return +1;
|
|
102
|
+
}
|
|
103
|
+
else if (typeof actx === 'undefined') {
|
|
104
|
+
return -1;
|
|
105
|
+
}
|
|
106
|
+
return actx.localeCompare(bctx);
|
|
107
|
+
})
|
|
108
|
+
.map(function (entry) { return entry.toString(width); })
|
|
109
|
+
.join('\n');
|
|
110
|
+
}
|
|
111
|
+
else if (options.sortByFile) {
|
|
112
|
+
var copy = this.copy(this.properties);
|
|
113
|
+
var splitRef_1 = function (ref) {
|
|
114
|
+
var parts = ref.split(':');
|
|
115
|
+
var lineno = Number.parseInt(parts.pop(), 10);
|
|
116
|
+
var filename = parts.join(':');
|
|
117
|
+
return { filename: filename, lineno: lineno };
|
|
118
|
+
};
|
|
119
|
+
copy.entries.forEach(function (entry) {
|
|
120
|
+
if (entry.properties.references) {
|
|
121
|
+
entry.properties.references = entry.properties.references
|
|
122
|
+
.map(splitRef_1)
|
|
123
|
+
.sort(function (a, b) {
|
|
124
|
+
return (a.filename.localeCompare(b.filename) ||
|
|
125
|
+
Math.sign(a.lineno - b.lineno));
|
|
126
|
+
})
|
|
127
|
+
.map(function (ref) { return "".concat(ref.filename, ":").concat(ref.lineno); });
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
var compareSplitRefs = function (a, b) {
|
|
131
|
+
var arefs = a.refs;
|
|
132
|
+
var brefs = b.refs;
|
|
133
|
+
var min = Math.min(arefs.length, brefs.length);
|
|
134
|
+
for (var i = 0; i < min; ++i) {
|
|
135
|
+
var cmp = arefs[i].filename.localeCompare(brefs[i].filename) ||
|
|
136
|
+
Math.sign(arefs[i].lineno - brefs[i].lineno);
|
|
137
|
+
if (cmp) {
|
|
138
|
+
return cmp;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return Math.sign(arefs.length - brefs.length);
|
|
142
|
+
};
|
|
143
|
+
var splitRefs_1 = function (refs) {
|
|
144
|
+
return refs ? refs.map(splitRef_1) : [];
|
|
145
|
+
};
|
|
146
|
+
body = copy.entries
|
|
147
|
+
.filter(isNotHeader)
|
|
148
|
+
.map(function (entry) {
|
|
149
|
+
return { refs: splitRefs_1(entry.properties.references), entry: entry };
|
|
150
|
+
})
|
|
151
|
+
.sort(compareSplitRefs)
|
|
152
|
+
.map(function (split) { return split.entry; })
|
|
153
|
+
.map(function (entry) { return entry.toString(width); })
|
|
154
|
+
.join('\n');
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
body = this.entries
|
|
158
|
+
.filter(isNotHeader)
|
|
159
|
+
.map(function (entry) { return entry.toString(width); })
|
|
160
|
+
.join('\n');
|
|
161
|
+
}
|
|
162
|
+
if (body && header) {
|
|
163
|
+
return "".concat(header, "\n").concat(body);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
return header || body || '';
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
Catalog.prototype.addEntry = function (entry) {
|
|
170
|
+
var msgid = entry.properties.msgid;
|
|
171
|
+
var msgctxt = entry.properties.msgctxt;
|
|
172
|
+
if (!Object.prototype.hasOwnProperty.call(this.cache, msgid)) {
|
|
173
|
+
this.cache[msgid] = {};
|
|
174
|
+
}
|
|
175
|
+
if (!Object.prototype.hasOwnProperty.call(this.cache[msgid], msgctxt)) {
|
|
176
|
+
this.cache[msgid][msgctxt] = entry;
|
|
177
|
+
this.entries.push(entry);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
this.cache[msgid][msgctxt].merge(entry);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
Catalog.prototype.deleteEntry = function (msgid, msgctxt) {
|
|
184
|
+
if (!this.cache[msgid]) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
var entry = this.cache[msgid][msgctxt];
|
|
188
|
+
if (!entry) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
delete this.cache[msgid][msgctxt];
|
|
192
|
+
this.entries = this.entries.filter(function (other) { return other !== entry; });
|
|
193
|
+
};
|
|
194
|
+
Catalog.prototype.copy = function (properties) {
|
|
195
|
+
var other = new Catalog(properties);
|
|
196
|
+
this.entries.forEach(function (entry) { return other.addEntry(entry); });
|
|
197
|
+
return other;
|
|
198
|
+
};
|
|
199
|
+
Catalog.prototype.makePOT = function () {
|
|
200
|
+
this.entries.forEach(function (entry) {
|
|
201
|
+
if (!(entry.properties.msgid === '' &&
|
|
202
|
+
typeof entry.properties.msgctxt === 'undefined')) {
|
|
203
|
+
delete entry.properties.msgstr;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
return Catalog;
|
|
208
|
+
}());
|
|
209
|
+
exports.Catalog = Catalog;
|
|
210
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/pot/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var catalog_1 = require("./catalog");
|
|
4
|
+
var entry_1 = require("./entry");
|
|
5
|
+
var date = '2020-04-23 08:50+0300';
|
|
6
|
+
describe('translation catalog', function () {
|
|
7
|
+
describe('initialization', function () {
|
|
8
|
+
it('should be initialized with zero configuration', function () {
|
|
9
|
+
var catalog = new catalog_1.Catalog();
|
|
10
|
+
expect(catalog.toString({ width: 76 })).toMatch(/Content-Type/);
|
|
11
|
+
});
|
|
12
|
+
it('should be initialized with default values', function () {
|
|
13
|
+
var catalog = new catalog_1.Catalog({ date: date });
|
|
14
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
it('should honor the foreign-user option', function () {
|
|
17
|
+
var catalog = new catalog_1.Catalog({ date: date, foreignUser: true });
|
|
18
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
19
|
+
});
|
|
20
|
+
it('should honor the package option', function () {
|
|
21
|
+
var catalog = new catalog_1.Catalog({ date: date, package: 'foobar 23.4' });
|
|
22
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
23
|
+
});
|
|
24
|
+
it('should ignore a lone version option', function () {
|
|
25
|
+
var catalog = new catalog_1.Catalog({ date: date, version: '23.4' });
|
|
26
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
27
|
+
});
|
|
28
|
+
it('should honor the version option', function () {
|
|
29
|
+
var catalog = new catalog_1.Catalog({ date: date, package: 'foobar', version: '23.4.89' });
|
|
30
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
31
|
+
});
|
|
32
|
+
it('should honor the msgid-bugs-address option', function () {
|
|
33
|
+
var catalog = new catalog_1.Catalog({
|
|
34
|
+
date: date,
|
|
35
|
+
msgidBugsAddress: 'me@example.com',
|
|
36
|
+
});
|
|
37
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('conflicting flags', function () {
|
|
41
|
+
var warner;
|
|
42
|
+
beforeEach(function () {
|
|
43
|
+
warner = jest.spyOn(global.console, 'warn').mockImplementation(function () {
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
afterEach(function () { return jest.restoreAllMocks(); });
|
|
47
|
+
it('should warn about conflicting flags', function () {
|
|
48
|
+
var catalog = new catalog_1.Catalog();
|
|
49
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
50
|
+
msgid: 'hello',
|
|
51
|
+
flags: ['no-mercy', 'perl-brace-format'],
|
|
52
|
+
references: ['first.js:10'],
|
|
53
|
+
}));
|
|
54
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
55
|
+
msgid: 'hello',
|
|
56
|
+
flags: ['no-mercy'],
|
|
57
|
+
references: ['second.js:10'],
|
|
58
|
+
}));
|
|
59
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
60
|
+
msgid: 'hello',
|
|
61
|
+
flags: ['mercy'],
|
|
62
|
+
references: ['third.js:10'],
|
|
63
|
+
}));
|
|
64
|
+
expect(warner).toHaveBeenCalledTimes(4);
|
|
65
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
66
|
+
msgid: 'hello',
|
|
67
|
+
flags: ['no-perl-brace-format'],
|
|
68
|
+
references: ['third.js:10'],
|
|
69
|
+
}));
|
|
70
|
+
expect(warner).toHaveBeenCalledTimes(9);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe('continuous filling', function () {
|
|
74
|
+
var catalog = new catalog_1.Catalog({ date: date });
|
|
75
|
+
it('should add an entry', function () {
|
|
76
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
77
|
+
msgid: 'Mike',
|
|
78
|
+
references: ['src/zulu.ts:2304'],
|
|
79
|
+
}));
|
|
80
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
81
|
+
});
|
|
82
|
+
it('should add a second entry', function () {
|
|
83
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
84
|
+
msgid: 'November',
|
|
85
|
+
references: ['src/yankee.ts:42'],
|
|
86
|
+
}));
|
|
87
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
88
|
+
});
|
|
89
|
+
it('should merge the third entry', function () {
|
|
90
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
91
|
+
msgid: 'Mike',
|
|
92
|
+
references: ['src/xray.ts:1303'],
|
|
93
|
+
}));
|
|
94
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
95
|
+
});
|
|
96
|
+
it('should support a string at many locations', function () {
|
|
97
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
98
|
+
msgid: 'Lima',
|
|
99
|
+
references: ['whiskey.ts:2'],
|
|
100
|
+
}));
|
|
101
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
102
|
+
msgid: 'Oscar',
|
|
103
|
+
references: ['whiskey.ts:2'],
|
|
104
|
+
}));
|
|
105
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
106
|
+
msgid: 'Lima',
|
|
107
|
+
references: ['victor.ts:3'],
|
|
108
|
+
}));
|
|
109
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
110
|
+
msgid: 'Oscar',
|
|
111
|
+
references: ['victor.ts:3'],
|
|
112
|
+
}));
|
|
113
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
114
|
+
msgid: 'Lima',
|
|
115
|
+
references: ['uniform.ts:4'],
|
|
116
|
+
}));
|
|
117
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
118
|
+
msgid: 'Oscar',
|
|
119
|
+
references: ['uniform.ts:3'],
|
|
120
|
+
}));
|
|
121
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
122
|
+
msgid: 'Lima',
|
|
123
|
+
references: ['tango.ts:25'],
|
|
124
|
+
}));
|
|
125
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
126
|
+
msgid: 'Oscar',
|
|
127
|
+
references: ['tango.ts:25'],
|
|
128
|
+
}));
|
|
129
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
130
|
+
});
|
|
131
|
+
it('should also merge flags and comments', function () {
|
|
132
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
133
|
+
msgid: 'Mike',
|
|
134
|
+
translatorComments: ['This is difficult.'],
|
|
135
|
+
automatic: ['TRANSLATORS: Buy me a milk shake!'],
|
|
136
|
+
flags: ['no-c-format'],
|
|
137
|
+
references: ['sierra.ts:27'],
|
|
138
|
+
}));
|
|
139
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
140
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
141
|
+
msgid: 'Mike',
|
|
142
|
+
translatorComments: ['Not really.'],
|
|
143
|
+
automatic: ['TRANSLATORS: Drop me a line!'],
|
|
144
|
+
flags: ['perl-brace-format'],
|
|
145
|
+
references: ['romeo.ts:85'],
|
|
146
|
+
}));
|
|
147
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
148
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
149
|
+
msgid: 'Mike',
|
|
150
|
+
msgctxt: 'phonetic alphabet',
|
|
151
|
+
references: ['juliet.ts:85'],
|
|
152
|
+
}));
|
|
153
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
154
|
+
msgid: 'Mike',
|
|
155
|
+
msgctxt: 'audio',
|
|
156
|
+
references: ['golf.ts:85'],
|
|
157
|
+
}));
|
|
158
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
159
|
+
msgid: 'Foxtrot',
|
|
160
|
+
references: ['src/yankee.ts:42', 'src/zulu.ts:2304'],
|
|
161
|
+
}));
|
|
162
|
+
});
|
|
163
|
+
it('should sort output on demand', function () {
|
|
164
|
+
expect(catalog.toString({ sortOutput: true })).toMatchSnapshot();
|
|
165
|
+
});
|
|
166
|
+
it('should sort by file on demand', function () {
|
|
167
|
+
expect(catalog.toString({ sortByFile: true })).toMatchSnapshot();
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('deleting', function () {
|
|
171
|
+
var catalog = new catalog_1.Catalog({ date: date });
|
|
172
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
173
|
+
msgid: 'Hello, world!',
|
|
174
|
+
}));
|
|
175
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
176
|
+
catalog.deleteEntry('Hello, world!');
|
|
177
|
+
catalog.deleteEntry('Goodbye, world!');
|
|
178
|
+
catalog.deleteEntry('Hello, world!', 'La-la-land');
|
|
179
|
+
expect(catalog.toString()).toMatchSnapshot();
|
|
180
|
+
catalog.deleteEntry('');
|
|
181
|
+
expect(catalog.toString()).toEqual('');
|
|
182
|
+
});
|
|
183
|
+
describe('sorting', function () {
|
|
184
|
+
it('should sort by msgctxt', function () {
|
|
185
|
+
var catalog = new catalog_1.Catalog({ date: date });
|
|
186
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
187
|
+
msgid: 'sort',
|
|
188
|
+
msgctxt: 'delta',
|
|
189
|
+
}));
|
|
190
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
191
|
+
msgid: 'sort',
|
|
192
|
+
msgctxt: 'charlie',
|
|
193
|
+
}));
|
|
194
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
195
|
+
msgid: 'sort',
|
|
196
|
+
msgctxt: 'bravo',
|
|
197
|
+
}));
|
|
198
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
199
|
+
msgid: 'sort',
|
|
200
|
+
msgctxt: 'alpha',
|
|
201
|
+
}));
|
|
202
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
203
|
+
msgid: 'sort',
|
|
204
|
+
}));
|
|
205
|
+
expect(catalog.toString({ sortOutput: true })).toMatchSnapshot();
|
|
206
|
+
});
|
|
207
|
+
it('should sort by line number', function () {
|
|
208
|
+
var catalog = new catalog_1.Catalog({ date: date });
|
|
209
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
210
|
+
msgid: 'alpha',
|
|
211
|
+
references: ['source.ts:42'],
|
|
212
|
+
}));
|
|
213
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
214
|
+
msgid: 'bravo',
|
|
215
|
+
references: ['source.ts:3'],
|
|
216
|
+
}));
|
|
217
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
218
|
+
msgid: 'charlie',
|
|
219
|
+
references: ['source.ts:31'],
|
|
220
|
+
}));
|
|
221
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
222
|
+
msgid: 'delta',
|
|
223
|
+
references: ['source.ts:1'],
|
|
224
|
+
}));
|
|
225
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
226
|
+
msgid: 'echo',
|
|
227
|
+
references: ['source.ts:11', 'source.ts:13'],
|
|
228
|
+
}));
|
|
229
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
230
|
+
msgid: 'foxtrot',
|
|
231
|
+
references: ['source.ts:11', 'source.ts:12'],
|
|
232
|
+
}));
|
|
233
|
+
catalog.addEntry(new entry_1.POTEntry({
|
|
234
|
+
msgid: 'golf',
|
|
235
|
+
}));
|
|
236
|
+
expect(catalog.toString({ sortByFile: true })).toMatchSnapshot();
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
//# sourceMappingURL=catalog.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.spec.js","sourceRoot":"","sources":["../../src/pot/catalog.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface POTEntryProperties {
|
|
2
|
+
msgid: string;
|
|
3
|
+
msgidPlural?: string;
|
|
4
|
+
msgctxt?: string;
|
|
5
|
+
msgstr?: string;
|
|
6
|
+
translatorComments?: Array<string>;
|
|
7
|
+
extractedComments?: Array<string>;
|
|
8
|
+
flags?: Array<string>;
|
|
9
|
+
automatic?: Array<string>;
|
|
10
|
+
references?: Array<string>;
|
|
11
|
+
noWarnings?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class POTEntry {
|
|
14
|
+
readonly properties: POTEntryProperties;
|
|
15
|
+
constructor(properties: POTEntryProperties);
|
|
16
|
+
static build(): POTEntry;
|
|
17
|
+
toString(width?: number): string;
|
|
18
|
+
merge(other: POTEntry): void;
|
|
19
|
+
addExtractedCommentLine(line: string): void;
|
|
20
|
+
addTranslatorCommentLine(line: string): void;
|
|
21
|
+
addFlag(flag: string): void;
|
|
22
|
+
addReference(reference: string): void;
|
|
23
|
+
addToMsgid(chunk: string): void;
|
|
24
|
+
addToMsgidPlural(chunk: string): void;
|
|
25
|
+
addToMsgstr(chunk: string): void;
|
|
26
|
+
addToMsgctxt(chunk: string): void;
|
|
27
|
+
private serializeMsgId;
|
|
28
|
+
private wrap;
|
|
29
|
+
private escape;
|
|
30
|
+
private checkDeprecatedControls;
|
|
31
|
+
private checkReferences;
|
|
32
|
+
private checkFlags;
|
|
33
|
+
private error;
|
|
34
|
+
private warning;
|
|
35
|
+
}
|