@ -399,7 +399,10 @@
* @param {...string} arg - Optional argument for the pattern
*/
Translator.compile = function compile() {
var args = Array.prototype.slice.call(arguments, 0);
var args = Array.prototype.slice.call(arguments, 0).map(function (text) {
// escape commas and percent signs in arguments
return text.replace(/%/g, '%').replace(/,/g, ',');
});
return '[[' + args.join(', ') + ']]';
};
@ -251,5 +251,13 @@ describe('Translator static methods', function () {
);
done();
it('should escape `%` and `,` in arguments', function (done) {
assert.strictEqual(
Translator.compile('amazing:cool', '100% awesome!', 'one, two, and three'),
'[[amazing:cool, 100% awesome!, one, two, and three]]'