Add JSCS, fix style.
This commit is contained in:
		
							
								
								
									
										99
									
								
								lib/po.js
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								lib/po.js
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| var fs = require('fs'), | ||||
|     isArray = require('lodash.isarray'); | ||||
| var fs = require('fs'); | ||||
| var isArray = require('lodash.isarray'); | ||||
|  | ||||
| function trim(string) { | ||||
|     return string.replace(/^\s+|\s+$/g, ''); | ||||
| @@ -16,8 +16,7 @@ PO.prototype.save = function (filename, callback) { | ||||
| }; | ||||
|  | ||||
| PO.prototype.toString = function () { | ||||
|     var lines = [], | ||||
|         that = this; | ||||
|     var lines = []; | ||||
|  | ||||
|     if (this.comments) { | ||||
|         this.comments.forEach(function (comment) { | ||||
| @@ -29,8 +28,9 @@ PO.prototype.toString = function () { | ||||
|     lines.push('msgstr ""'); | ||||
|  | ||||
|     var keys = Object.keys(this.headers); | ||||
|     var self = this; | ||||
|     keys.forEach(function (key) { | ||||
|         lines.push('"' + key + ': ' + that.headers[key] + '\\n"'); | ||||
|         lines.push('"' + key + ': ' + self.headers[key] + '\\n"'); | ||||
|     }); | ||||
|  | ||||
|     lines.push(''); | ||||
| @@ -40,7 +40,7 @@ PO.prototype.toString = function () { | ||||
|         lines.push(''); | ||||
|     }); | ||||
|  | ||||
|     return lines.join("\n"); | ||||
|     return lines.join('\n'); | ||||
| }; | ||||
|  | ||||
| PO.load = function (filename, callback) { | ||||
| @@ -56,10 +56,10 @@ PO.load = function (filename, callback) { | ||||
| PO.parse = function (data) { | ||||
|     //support both unix and windows newline formats. | ||||
|     data = data.replace(/\r\n/g, '\n'); | ||||
|     var po = new PO(), | ||||
|         sections = data.split(/\n\n/), | ||||
|         headers = sections.shift(), | ||||
|         lines = sections.join("\n").split(/\n/); | ||||
|     var po = new PO(); | ||||
|     var sections = data.split(/\n\n/); | ||||
|     var headers = sections.shift(); | ||||
|     var lines = sections.join('\n').split(/\n/); | ||||
|  | ||||
|     po.headers = { | ||||
|         'Project-Id-Version': '', | ||||
| @@ -91,18 +91,18 @@ PO.parse = function (data) { | ||||
|         } | ||||
|         if (header.match(/^"/)) { | ||||
|             header = header.trim().replace(/^"/, '').replace(/\\n"$/, ''); | ||||
|             var p = header.split(/:/), | ||||
|                 name = p.shift().trim(), | ||||
|                 value = p.join(':').trim(); | ||||
|             var p = header.split(/:/); | ||||
|             var name = p.shift().trim(); | ||||
|             var value = p.join(':').trim(); | ||||
|             po.headers[name] = value; | ||||
|         } | ||||
|     }); | ||||
|  | ||||
|     var item = new PO.Item(), | ||||
|         context = null, | ||||
|         plural = 0, | ||||
|         obsoleteCount = 0, | ||||
|         noCommentLineCount = 0; | ||||
|     var item = new PO.Item(); | ||||
|     var context = null; | ||||
|     var plural = 0; | ||||
|     var obsoleteCount = 0; | ||||
|     var noCommentLineCount = 0; | ||||
|  | ||||
|     function finish() { | ||||
|         if (item.msgid.length > 0) { | ||||
| @@ -125,9 +125,9 @@ PO.parse = function (data) { | ||||
|     } | ||||
|  | ||||
|     while (lines.length > 0) { | ||||
|         var line = trim(lines.shift()), | ||||
|             lineObsolete = false, | ||||
|             add = false; | ||||
|         var line = trim(lines.shift()); | ||||
|         var lineObsolete = false; | ||||
|         var add = false; | ||||
|  | ||||
|         if (line.match(/^#\~/)) { // Obsolete item | ||||
|             //only remove the obsolte comment mark, here | ||||
| @@ -140,61 +140,52 @@ PO.parse = function (data) { | ||||
|         if (line.match(/^#:/)) { // Reference | ||||
|             finish(); | ||||
|             item.references.push(trim(line.replace(/^#:/, ''))); | ||||
|         } | ||||
|         else if (line.match(/^#,/)) { // Flags | ||||
|         } else if (line.match(/^#,/)) { // Flags | ||||
|             finish(); | ||||
|             var flags = trim(line.replace(/^#,/, '')).split(","); | ||||
|             var flags = trim(line.replace(/^#,/, '')).split(','); | ||||
|             for (var i = 0; i < flags.length; i++) { | ||||
|                 item.flags[flags[i]] = true; | ||||
|             } | ||||
|         } | ||||
|         else if (line.match(/^#\s+/)) { // Translator comment | ||||
|         } else if (line.match(/^#\s+/)) { // Translator comment | ||||
|             finish(); | ||||
|             item.comments.push(trim(line.replace(/^#\s+/, ''))); | ||||
|         } | ||||
|         else if (line.match(/^#\./)) { // Extracted comment | ||||
|         } else if (line.match(/^#\./)) { // Extracted comment | ||||
|             finish(); | ||||
|             item.extractedComments.push(trim(line.replace(/^#\./, ''))); | ||||
|         } | ||||
|         else if (line.match(/^msgid_plural/)) { // Plural form | ||||
|         } else if (line.match(/^msgid_plural/)) { // Plural form | ||||
|             item.msgid_plural = extract(line); | ||||
|             context = 'msgid_plural'; | ||||
|             noCommentLineCount++; | ||||
|         } | ||||
|         else if (line.match(/^msgid/)) { // Original | ||||
|         } else if (line.match(/^msgid/)) { // Original | ||||
|             finish(); | ||||
|             item.msgid = extract(line); | ||||
|             context = 'msgid'; | ||||
|             noCommentLineCount++; | ||||
|         } | ||||
|         else if (line.match(/^msgstr/)) { // Translation | ||||
|         } else if (line.match(/^msgstr/)) { // Translation | ||||
|             var m = line.match(/^msgstr\[(\d+)\]/); | ||||
|             plural = m && m[1] ? parseInt(m[1]) : 0; | ||||
|             item.msgstr[plural] = extract(line); | ||||
|             context = 'msgstr'; | ||||
|             noCommentLineCount++; | ||||
|         } | ||||
|         else if (line.match(/^msgctxt/)) { // Context | ||||
|         } else if (line.match(/^msgctxt/)) { // Context | ||||
|             finish(); | ||||
|             item.msgctxt = extract(line); | ||||
|             noCommentLineCount++; | ||||
|         } | ||||
|         else { // Probably multiline string or blank | ||||
|         } else { // Probably multiline string or blank | ||||
|             if (line.length > 0) { | ||||
|                 noCommentLineCount++; | ||||
|                 if (context === 'msgstr') { | ||||
|                     item.msgstr[plural] += extract(line); | ||||
|                 } | ||||
|                 else if (context === 'msgid') { | ||||
|                 } else if (context === 'msgid') { | ||||
|                     item.msgid += extract(line); | ||||
|                 } | ||||
|                 else if (context === 'msgid_plural') { | ||||
|                 } else if (context === 'msgid_plural') { | ||||
|                     item.msgid_plural += extract(line); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (lineObsolete) { | ||||
|             //count obsolete lines for this item | ||||
|             // Count obsolete lines for this item | ||||
|             obsoleteCount++; | ||||
|         } | ||||
|     } | ||||
| @@ -216,8 +207,8 @@ PO.Item = function () { | ||||
| }; | ||||
|  | ||||
| PO.Item.prototype.toString = function () { | ||||
|     var lines = [], | ||||
|         that = this; | ||||
|     var lines = []; | ||||
|     var self = this; | ||||
|  | ||||
|     // reverse what extract(string) method during PO.parse does | ||||
|     var _escape = function (string) { | ||||
| @@ -226,16 +217,15 @@ PO.Item.prototype.toString = function () { | ||||
|     }; | ||||
|  | ||||
|     var _process = function (keyword, text, i) { | ||||
|         var lines = [], | ||||
|             parts = text.split(/\n/), | ||||
|             index = typeof i !== 'undefined' ? '[' + i + ']' : ''; | ||||
|         var lines = []; | ||||
|         var parts = text.split(/\n/); | ||||
|         var index = typeof i !== 'undefined' ? '[' + i + ']' : ''; | ||||
|         if (parts.length > 1) { | ||||
|             lines.push(keyword + index + ' ""'); | ||||
|             parts.forEach(function (part) { | ||||
|                 lines.push('"' + _escape(part) + '"'); | ||||
|             }); | ||||
|         } | ||||
|         else { | ||||
|         } else { | ||||
|             lines.push(keyword + index + ' "' + _escape(text) + '"'); | ||||
|         } | ||||
|         return lines; | ||||
| @@ -258,26 +248,25 @@ PO.Item.prototype.toString = function () { | ||||
|  | ||||
|     var flags = Object.keys(this.flags); | ||||
|     if (flags.length > 0) { | ||||
|         lines.push('#, ' + flags.join(",")); | ||||
|         lines.push('#, ' + flags.join(',')); | ||||
|     } | ||||
|     var mkObsolete = this.obsolete ? '#~ ' : ''; | ||||
|  | ||||
|     ['msgctxt', 'msgid', 'msgid_plural', 'msgstr'].forEach(function (keyword) { | ||||
|         var text = that[keyword]; | ||||
|         var text = self[keyword]; | ||||
|         if (text != null) { | ||||
|             if (isArray(text) && text.length > 1) { | ||||
|                 text.forEach(function (t, i) { | ||||
|                     lines = lines.concat(mkObsolete + _process(keyword, t, i)); | ||||
|                 }); | ||||
|             } | ||||
|             else { | ||||
|             } else { | ||||
|                 text = isArray(text) ? text.join() : text; | ||||
|                 lines = lines.concat(mkObsolete + _process(keyword, text)); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
|  | ||||
|     return lines.join("\n"); | ||||
|     return lines.join('\n'); | ||||
| }; | ||||
|  | ||||
| module.exports = PO; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user