Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9060221403 | ||
|
|
63c4209cd5 | ||
|
|
104d114d5d | ||
|
|
db5e540824 | ||
|
|
cfc9b2ae82 |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pofile",
|
"name": "pofile",
|
||||||
"version": "0.2.12",
|
"version": "0.3.0",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Ruben Vermeersch <ruben@rocketeer.be>"
|
"Ruben Vermeersch <ruben@rocketeer.be>"
|
||||||
],
|
],
|
||||||
|
|||||||
4
dist/pofile.js
vendored
4
dist/pofile.js
vendored
@@ -290,7 +290,9 @@ PO.Item.prototype.toString = function () {
|
|||||||
lines.push('#: ' + ref);
|
lines.push('#: ' + ref);
|
||||||
});
|
});
|
||||||
|
|
||||||
var flags = Object.keys(this.flags);
|
var flags = Object.keys(this.flags).filter(function (flag) {
|
||||||
|
return !!this.flags[flag];
|
||||||
|
}, this);
|
||||||
if (flags.length > 0) {
|
if (flags.length > 0) {
|
||||||
lines.push('#, ' + flags.join(','));
|
lines.push('#, ' + flags.join(','));
|
||||||
}
|
}
|
||||||
|
|||||||
2
dist/pofile.min.js
vendored
2
dist/pofile.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -289,7 +289,9 @@ PO.Item.prototype.toString = function () {
|
|||||||
lines.push('#: ' + ref);
|
lines.push('#: ' + ref);
|
||||||
});
|
});
|
||||||
|
|
||||||
var flags = Object.keys(this.flags);
|
var flags = Object.keys(this.flags).filter(function (flag) {
|
||||||
|
return !!this.flags[flag];
|
||||||
|
}, this);
|
||||||
if (flags.length > 0) {
|
if (flags.length > 0) {
|
||||||
lines.push('#, ' + flags.join(','));
|
lines.push('#, ' + flags.join(','));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "pofile",
|
"name": "pofile",
|
||||||
"description": "Parse and serialize Gettext PO files.",
|
"description": "Parse and serialize Gettext PO files.",
|
||||||
"version": "0.2.12",
|
"version": "0.3.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Ruben Vermeersch",
|
"name": "Ruben Vermeersch",
|
||||||
"email": "ruben@savanne.be",
|
"email": "ruben@savanne.be",
|
||||||
|
|||||||
4
test/fixtures/reference.po
vendored
4
test/fixtures/reference.po
vendored
@@ -24,3 +24,7 @@ msgstr "Attribut title, en tant que texte brut"
|
|||||||
#: b
|
#: b
|
||||||
msgid "X"
|
msgid "X"
|
||||||
msgstr "Y"
|
msgstr "Y"
|
||||||
|
|
||||||
|
#: standard input:12 standard input:17
|
||||||
|
msgid "Z"
|
||||||
|
msgstr "ZZ"
|
||||||
|
|||||||
@@ -67,21 +67,32 @@ describe('Parse', function () {
|
|||||||
assert.deepEqual(item.extractedComments, ['Extracted comment']);
|
assert.deepEqual(item.extractedComments, ['Extracted comment']);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Handles string references', function () {
|
describe('Handles string references', function () {
|
||||||
var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/reference.po', 'utf8'));
|
var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/reference.po', 'utf8'));
|
||||||
assert.notEqual(po, null);
|
assert.notEqual(po, null);
|
||||||
assert.equal(po.items.length, 2);
|
assert.equal(po.items.length, 3);
|
||||||
|
|
||||||
var item = po.items[0];
|
it('in simple cases', function () {
|
||||||
assert.equal(item.msgid, 'Title, as plain text');
|
var item = po.items[0];
|
||||||
assert.equal(item.msgstr, 'Attribut title, en tant que texte brut');
|
assert.equal(item.msgid, 'Title, as plain text');
|
||||||
assert.deepEqual(item.comments, ['Comment']);
|
assert.equal(item.msgstr, 'Attribut title, en tant que texte brut');
|
||||||
assert.deepEqual(item.references, ['.tmp/crm/controllers/map.js']);
|
assert.deepEqual(item.comments, ['Comment']);
|
||||||
|
assert.deepEqual(item.references, ['.tmp/crm/controllers/map.js']);
|
||||||
|
});
|
||||||
|
|
||||||
item = po.items[1];
|
it('with two different references', function () {
|
||||||
assert.equal(item.msgid, 'X');
|
var item = po.items[1];
|
||||||
assert.equal(item.msgstr, 'Y');
|
assert.equal(item.msgid, 'X');
|
||||||
assert.deepEqual(item.references, ['a', 'b']);
|
assert.equal(item.msgstr, 'Y');
|
||||||
|
assert.deepEqual(item.references, ['a', 'b']);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('and does not process reference items', function () {
|
||||||
|
var item = po.items[2];
|
||||||
|
assert.equal(item.msgid, 'Z');
|
||||||
|
assert.equal(item.msgstr, 'ZZ');
|
||||||
|
assert.deepEqual(item.references, ['standard input:12 standard input:17']);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Parses flags', function () {
|
it('Parses flags', function () {
|
||||||
@@ -145,12 +156,12 @@ describe('Parse', function () {
|
|||||||
assert.equal(items[0].msgid, 'The name field must not contain characters like " or \\');
|
assert.equal(items[0].msgid, 'The name field must not contain characters like " or \\');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should handle \n characters', function () {
|
it('should handle \\n characters', function () {
|
||||||
var item = po.items[1];
|
var item = po.items[1];
|
||||||
assert.equal(item.msgid, '%1$s\n%2$s %3$s\n%4$s\n%5$s');
|
assert.equal(item.msgid, '%1$s\n%2$s %3$s\n%4$s\n%5$s');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should handle \t characters', function () {
|
it('should handle \\t characters', function () {
|
||||||
var item = po.items[2];
|
var item = po.items[2];
|
||||||
assert.equal(item.msgid, 'define(\'some/test/module\', function () {\n' +
|
assert.equal(item.msgid, 'define(\'some/test/module\', function () {\n' +
|
||||||
'\t\'use strict\';\n' +
|
'\t\'use strict\';\n' +
|
||||||
|
|||||||
@@ -16,6 +16,20 @@ function assertHasLine(str, line) {
|
|||||||
assert(found, 'Could not find line: ' + line);
|
assert(found, 'Could not find line: ' + line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function assertDoesntHaveLine(str, line) {
|
||||||
|
var lines = str.split('\n');
|
||||||
|
var found = false;
|
||||||
|
|
||||||
|
for (var i = 0; i < lines.length; i++) {
|
||||||
|
if (lines[i].trim() === line) {
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(!found, 'Shouldn\'t have line: ' + line);
|
||||||
|
}
|
||||||
|
|
||||||
describe('Write', function () {
|
describe('Write', function () {
|
||||||
it('write flags', function () {
|
it('write flags', function () {
|
||||||
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
||||||
@@ -24,6 +38,17 @@ describe('Write', function () {
|
|||||||
assertHasLine(str, '#, fuzzy');
|
assertHasLine(str, '#, fuzzy');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('write flags only when true', function () {
|
||||||
|
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
||||||
|
var po = PO.parse(input);
|
||||||
|
|
||||||
|
// Flip flag
|
||||||
|
po.items[0].flags.fuzzy = false;
|
||||||
|
|
||||||
|
var str = po.toString();
|
||||||
|
assertDoesntHaveLine(str, '#, fuzzy');
|
||||||
|
});
|
||||||
|
|
||||||
it('write msgid', function () {
|
it('write msgid', function () {
|
||||||
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
||||||
var po = PO.parse(input);
|
var po = PO.parse(input);
|
||||||
|
|||||||
Reference in New Issue
Block a user