mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-04 23:00:31 +01:00
Escape arguments in Translator.compile
This commit is contained in:
@@ -399,9 +399,12 @@
|
||||
* @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(', ') + ']]';
|
||||
return '[[' + args.join(', ') + ']]';
|
||||
};
|
||||
|
||||
return Translator;
|
||||
|
||||
@@ -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]]'
|
||||
);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user