diff --git a/lib/po.js b/lib/po.js index 6e1e2cd..6407079 100644 --- a/lib/po.js +++ b/lib/po.js @@ -64,10 +64,15 @@ PO.parse = function (data) { data = data.replace(/\r\n/g, '\n'); var po = new PO(); var sections = data.split(/\n\n/); - var headers = [sections.shift()]; + var headers = []; //everything until the first 'msgid ""' is considered header - while (headers[headers.length - 1].indexOf('msgid ""') < 0) { - headers.push(sections.shift()); + while (sections[0] && (headers.length === 0 || headers[headers.length - 1].indexOf('msgid ""') < 0)) { + if (sections[0].match(/msgid "[^"]/)) { + //found first real string, adding a dummy header item + headers.push('msgid ""'); + } else { + headers.push(sections.shift()); + } } headers = headers.join('\n'); var lines = sections.join('\n').split(/\n/);