diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 6ad6afbf7..23710c799 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.31", + "version": "2.13.32", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/lib/i18n.ts b/packages/hydrooj/src/lib/i18n.ts index 9a99f9c40..69b2ecad2 100644 --- a/packages/hydrooj/src/lib/i18n.ts +++ b/packages/hydrooj/src/lib/i18n.ts @@ -5,6 +5,7 @@ const locales = {}; declare global { interface String { format: (...args: Array) => string; + formatFromArray: (args: any[]) => string; rawformat: (object: any) => string; translate: (...languages: string[]) => string; } @@ -20,13 +21,17 @@ String.prototype.format = function formatStr(...args) { result = result.replace(reg, args[key]); } } - } else { - for (let i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - const reg = new RegExp(`(\\{)${i}(\\})`, 'g'); - result = result.replace(reg, args[i]); - } - } + } else return this.formatFromArray(args); + } + return result; +}; + +String.prototype.formatFromArray = function formatStr(args) { + let result = this; + for (let i = 0; i < args.length; i++) { + if (args[i] !== undefined) { + const reg = new RegExp(`(\\{)${i}(\\})`, 'g'); + result = result.replace(reg, args[i]); } } return result;