From 90c8bfefe24a16c7542fd2dc76c10e54d1e7248c Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 31 Oct 2020 23:12:07 +0800 Subject: [PATCH] core: add String.prototype.formatFromArray api --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/lib/i18n.ts | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) 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;