diff --git a/.github/workflows/sync-main-on-release.yml b/.github/workflows/sync-main-on-release.yml new file mode 100644 index 00000000..9da99d53 --- /dev/null +++ b/.github/workflows/sync-main-on-release.yml @@ -0,0 +1,28 @@ +name: Sync branch + +on: + workflow_dispatch: + release: + types: [published] + branches: [dev] + +jobs: + force-push-main: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: dev + clean: false + + - name: Configure Git + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + + - name: Force push dev to main + run: | + git fetch origin + git push origin dev:main --force diff --git a/api/crypto/crypto.go b/api/crypto/crypto.go new file mode 100644 index 00000000..62017124 --- /dev/null +++ b/api/crypto/crypto.go @@ -0,0 +1,22 @@ +package crypto + +import ( + "net/http" + + "github.com/0xJacky/Nginx-UI/api" + "github.com/0xJacky/Nginx-UI/internal/crypto" + "github.com/gin-gonic/gin" +) + +// GetPublicKey generates a new ED25519 key pair and registers it in the cache +func GetPublicKey(c *gin.Context) { + params, err := crypto.GetCryptoParams() + if err != nil { + api.ErrHandler(c, err) + return + } + + c.JSON(http.StatusOK, gin.H{ + "public_key": params.PublicKey, + }) +} diff --git a/api/crypto/router.go b/api/crypto/router.go new file mode 100644 index 00000000..c9455fa6 --- /dev/null +++ b/api/crypto/router.go @@ -0,0 +1,10 @@ +package crypto + +import "github.com/gin-gonic/gin" + +func InitPublicRouter(r *gin.RouterGroup) { + g := r.Group("/crypto") + { + g.GET("public_key", GetPublicKey) + } +} diff --git a/api/system/router.go b/api/system/router.go index 8c3fa1f0..e0b019b7 100644 --- a/api/system/router.go +++ b/api/system/router.go @@ -1,12 +1,13 @@ package system import ( + "github.com/0xJacky/Nginx-UI/internal/middleware" "github.com/gin-gonic/gin" ) func InitPublicRouter(r *gin.RouterGroup) { r.GET("install", InstallLockCheck) - r.POST("install", InstallNginxUI) + r.POST("install", middleware.EncryptedParams(), InstallNginxUI) r.GET("translation/:code", GetTranslation) } diff --git a/api/user/router.go b/api/user/router.go index 684441cd..38dce1a9 100644 --- a/api/user/router.go +++ b/api/user/router.go @@ -6,7 +6,7 @@ import ( ) func InitAuthRouter(r *gin.RouterGroup) { - r.POST("/login", Login) + r.POST("/login", middleware.EncryptedParams(), Login) r.DELETE("/logout", Logout) r.GET("/begin_passkey_login", BeginPasskeyLogin) diff --git a/app/package.json b/app/package.json index 9cdf8c6c..2476a370 100644 --- a/app/package.json +++ b/app/package.json @@ -30,6 +30,7 @@ "axios": "^1.7.9", "dayjs": "^1.11.13", "highlight.js": "^11.11.1", + "jsencrypt": "^3.3.2", "lodash": "^4.17.21", "marked": "^15.0.6", "marked-highlight": "^2.2.1", diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index 90f306e7..575d6f22 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -59,6 +59,9 @@ importers: highlight.js: specifier: ^11.11.1 version: 11.11.1 + jsencrypt: + specifier: ^3.3.2 + version: 3.3.2 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -3122,6 +3125,9 @@ packages: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} + jsencrypt@3.3.2: + resolution: {integrity: sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==} + jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -7904,6 +7910,8 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} + jsencrypt@3.3.2: {} + jsesc@0.5.0: {} jsesc@3.0.2: {} diff --git a/app/src/api/auth.ts b/app/src/api/auth.ts index 3605f0c1..59891fa9 100644 --- a/app/src/api/auth.ts +++ b/app/src/api/auth.ts @@ -19,7 +19,7 @@ const auth = { password, otp, recovery_code: recoveryCode, - }) + }, { crypto: true }) }, async casdoor_login(code?: string, state?: string) { await http.post('/casdoor_callback', { diff --git a/app/src/api/install.ts b/app/src/api/install.ts index b2f11dd6..5b4abade 100644 --- a/app/src/api/install.ts +++ b/app/src/api/install.ts @@ -12,7 +12,7 @@ const install = { return http.get('/install') }, install_nginx_ui(data: InstallRequest) { - return http.post('/install', data) + return http.post('/install', data, { crypto: true }) }, } diff --git a/app/src/constants/errors/crypto.ts b/app/src/constants/errors/crypto.ts index 149086e1..a28f2acd 100644 --- a/app/src/constants/errors/crypto.ts +++ b/app/src/constants/errors/crypto.ts @@ -1,4 +1,5 @@ export default { 50001: () => $gettext('Plain text is empty'), 50002: () => $gettext('Cipher text is too short'), + 40401: () => $gettext('Request timeout'), } diff --git a/app/src/constants/errors/middleware.ts b/app/src/constants/errors/middleware.ts new file mode 100644 index 00000000..269058b3 --- /dev/null +++ b/app/src/constants/errors/middleware.ts @@ -0,0 +1,4 @@ +export default { + 40000: () => $gettext('Invalid request format'), + 40001: () => $gettext('Decryption failed'), +} diff --git a/app/src/constants/llm.ts b/app/src/constants/llm.ts new file mode 100644 index 00000000..734288de --- /dev/null +++ b/app/src/constants/llm.ts @@ -0,0 +1,18 @@ +export const LLM_MODELS = [ + 'o3-mini', + 'o1', + 'deepseek-reasoner', + 'deepseek-chat', + 'gpt-4o-mini', + 'gpt-4o', + 'gpt-4', + 'gpt-4-32k', + 'gpt-4-turbo', + 'gpt-3.5-turbo', +] + +export const LLM_PROVIDERS = [ + 'https://api.openai.com', + 'https://api.deepseek.com', + 'http://localhost:11434', +] diff --git a/app/src/language/ar/app.po b/app/src/language/ar/app.po index f0b96d4d..1a37ceef 100644 --- a/app/src/language/ar/app.po +++ b/app/src/language/ar/app.po @@ -106,7 +106,7 @@ msgstr "بعد ذلك، قم بتحديث هذه الصفحة وانقر فوق msgid "All" msgstr "الكل" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "عنوان URL الأساسي لAPI" @@ -114,15 +114,15 @@ msgstr "عنوان URL الأساسي لAPI" msgid "API Document" msgstr "ملف API" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "وسيط API" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "رمز API" -#: src/views/preference/OpenAISettings.vue:78 +#: src/views/preference/OpenAISettings.vue:67 #, fuzzy msgid "API Type" msgstr "رمز API" @@ -222,7 +222,7 @@ msgstr "محاولات" msgid "Auth" msgstr "مصادقة" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "المصادقة باستخدام مفتاح المرور" @@ -617,6 +617,11 @@ msgstr "قاعدة البيانات (اختياري، الافتراضي: قاع msgid "Days" msgstr "أيام" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "وصف" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -1231,7 +1236,7 @@ msgstr "بدء ترقية النواة" msgid "Input the code from the app:" msgstr "أدخل الرمز من التطبيق:" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "أدخل رمز الاسترداد:" @@ -1274,6 +1279,11 @@ msgstr "رمز المرور أو رمز الاسترداد غير صالح" msgid "Invalid recovery code" msgstr "رمز 2FA أو الاسترداد غير صالح" +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "رمز 2FA أو الاسترداد غير صالح" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "IP" @@ -1321,7 +1331,7 @@ msgstr "آخر استخدام في" msgid "Leave blank for no change" msgstr "اتركه فارغًا لعدم التغيير" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "اتركه فارغًا للإعداد الافتراضي: /https://api.openai.com" @@ -1384,7 +1394,7 @@ msgstr "أماكن" msgid "Log" msgstr "سجل" -#: src/routes/index.ts:318 src/views/other/Login.vue:222 +#: src/routes/index.ts:318 src/views/other/Login.vue:223 msgid "Login" msgstr "تسجيل الدخول" @@ -1462,7 +1472,7 @@ msgstr "الذاكرة والتخزين" msgid "Minutes" msgstr "دقائق" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 msgid "Model" msgstr "نموذج" @@ -1746,7 +1756,7 @@ msgstr "متصل" msgid "OpenAI" msgstr "أوبن أي آي" -#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232 msgid "Or" msgstr "أو" @@ -1853,7 +1863,7 @@ msgid "" msgstr "" "يرجى إدخال اسم لمفتاح المرور الذي ترغب في إنشائه ثم انقر على زر موافق أدناه." -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 msgid "Please enter the OTP code:" msgstr "يرجى إدخال رمز OTP:" @@ -1992,7 +2002,7 @@ msgstr "استعادة" msgid "Recovered Successfully" msgstr "تم الاسترداد بنجاح" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "استرداد" @@ -2163,6 +2173,10 @@ msgstr "تجديد الشهادة بنجاح" msgid "Renew successfully" msgstr "تم التجديد بنجاح" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "تم الطلب باستخدام عوامل خاطئة" @@ -2340,7 +2354,7 @@ msgstr "" msgid "Show" msgstr "عرض" -#: src/views/other/Login.vue:240 +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" msgstr "تسجيل الدخول باستخدام مفتاح المرور" @@ -2592,7 +2606,7 @@ msgid "" "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 #, fuzzy msgid "" "The model name should only contain letters, unicode, numbers, hyphens, " @@ -2647,8 +2661,8 @@ msgstr "" msgid "The url is invalid" msgstr "عنوان URL غير صالح" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "عنوان URL غير صالح." @@ -2746,7 +2760,7 @@ msgstr "" "توجيه الطلب من السلطة إلى الخلفية، ونحتاج إلى حفظ هذا الملف وإعادة تحميل " "Nginx. هل أنت متأكد أنك تريد المتابعة؟" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 #, fuzzy msgid "" "To use a local large model, deploy it with ollama, vllm or lmdeploy. They " @@ -2757,7 +2771,7 @@ msgstr "" "نهاية API متوافقة مع OpenAI، لذا قم فقط بتعيين baseUrl إلىAPI المحلية الخاصة " "بك." -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "الرمز غير صالح" @@ -2845,11 +2859,11 @@ msgstr "مدة التشغيل:" msgid "URL" msgstr "عنوان URL" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "استخدم كلمة المرور لمرة واحدة" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "استخدم رمز الاسترداد" diff --git a/app/src/language/en/app.po b/app/src/language/en/app.po index 7a543d78..58d582c7 100644 --- a/app/src/language/en/app.po +++ b/app/src/language/en/app.po @@ -108,7 +108,7 @@ msgstr "" msgid "All" msgstr "" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "" @@ -117,15 +117,15 @@ msgstr "" msgid "API Document" msgstr "Comments" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "" -#: src/views/preference/OpenAISettings.vue:78 +#: src/views/preference/OpenAISettings.vue:67 msgid "API Type" msgstr "" @@ -233,7 +233,7 @@ msgstr "" msgid "Auth" msgstr "" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "" @@ -634,6 +634,11 @@ msgstr "Database (Optional, default: database)" msgid "Days" msgstr "" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "Enable failed" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -1279,7 +1284,7 @@ msgstr "" msgid "Input the code from the app:" msgstr "" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "" @@ -1326,6 +1331,11 @@ msgstr "" msgid "Invalid recovery code" msgstr "Invalid E-mail!" +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "Invalid E-mail!" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "" @@ -1378,7 +1388,7 @@ msgstr "Created at" msgid "Leave blank for no change" msgstr "Leave blank for no change" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "" @@ -1449,7 +1459,7 @@ msgstr "Locations" msgid "Log" msgstr "Login" -#: src/routes/index.ts:318 src/views/other/Login.vue:222 +#: src/routes/index.ts:318 src/views/other/Login.vue:223 msgid "Login" msgstr "Login" @@ -1524,7 +1534,7 @@ msgstr "Memory and Storage" msgid "Minutes" msgstr "" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 #, fuzzy msgid "Model" msgstr "Advance Mode" @@ -1822,7 +1832,7 @@ msgstr "" msgid "OpenAI" msgstr "" -#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232 msgid "Or" msgstr "" @@ -1926,7 +1936,7 @@ msgid "" "button below." msgstr "" -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 msgid "Please enter the OTP code:" msgstr "" @@ -2068,7 +2078,7 @@ msgstr "" msgid "Recovered Successfully" msgstr "Saved successfully" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "" @@ -2260,6 +2270,10 @@ msgstr "Certificate is valid" msgid "Renew successfully" msgstr "Enabled successfully" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "" @@ -2442,7 +2456,7 @@ msgstr "" msgid "Show" msgstr "" -#: src/views/other/Login.vue:240 +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" msgstr "" @@ -2711,7 +2725,7 @@ msgid "" "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 msgid "" "The model name should only contain letters, unicode, numbers, hyphens, " "dashes, colons, and dots." @@ -2760,8 +2774,8 @@ msgstr "" msgid "The url is invalid" msgstr "" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "" @@ -2854,14 +2868,14 @@ msgid "" "continue?" msgstr "" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 msgid "" "To use a local large model, deploy it with ollama, vllm or lmdeploy. They " "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your " "local API." msgstr "" -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "" @@ -2947,11 +2961,11 @@ msgstr "Uptime:" msgid "URL" msgstr "" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "" diff --git a/app/src/language/es/app.po b/app/src/language/es/app.po index 391a8122..ff3f8a7a 100644 --- a/app/src/language/es/app.po +++ b/app/src/language/es/app.po @@ -111,7 +111,7 @@ msgstr "" msgid "All" msgstr "Todo" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "URL Base de la API" @@ -119,15 +119,15 @@ msgstr "URL Base de la API" msgid "API Document" msgstr "Documento de la API" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "Proxy de la API" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "Token de la API" -#: src/views/preference/OpenAISettings.vue:78 +#: src/views/preference/OpenAISettings.vue:67 #, fuzzy msgid "API Type" msgstr "Token de la API" @@ -227,7 +227,7 @@ msgstr "Intentos" msgid "Auth" msgstr "Autenticación" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "Autenticarse con una llave de acceso" @@ -618,6 +618,11 @@ msgstr "Base de datos (Opcional, default: database)" msgid "Days" msgstr "Días" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "Descripción" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -1238,7 +1243,7 @@ msgstr "Inicializando la actualización del kernel" msgid "Input the code from the app:" msgstr "Ingrese el código de la aplicación:" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "Ingrese el código de recuperación:" @@ -1281,6 +1286,11 @@ msgstr "Código de acceso o código de recuperación inválido" msgid "Invalid recovery code" msgstr "Código 2FA o de recuperación inválido" +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "Código 2FA o de recuperación inválido" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "IP" @@ -1329,7 +1339,7 @@ msgstr "Comprobado por última vez el" msgid "Leave blank for no change" msgstr "Para no modificar dejar en blanco" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "Dejar en blanco para el valor predeterminado: https://api.openai.com/" @@ -1393,7 +1403,7 @@ msgstr "Ubicaciones" msgid "Log" msgstr "Registro" -#: src/routes/index.ts:318 src/views/other/Login.vue:222 +#: src/routes/index.ts:318 src/views/other/Login.vue:223 msgid "Login" msgstr "Acceso" @@ -1472,7 +1482,7 @@ msgstr "Memoria y almacenamiento" msgid "Minutes" msgstr "Minutos" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 msgid "Model" msgstr "Modelo" @@ -1761,7 +1771,7 @@ msgstr "En línea" msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232 msgid "Or" msgstr "O" @@ -1870,7 +1880,7 @@ msgstr "" "Ingrese un nombre para la llave de acceso que desea crear y a continuación " "haga clic en el botón Aceptar." -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 #, fuzzy msgid "Please enter the OTP code:" msgstr "Por favor, ingrese el código 2FA:" @@ -2024,7 +2034,7 @@ msgstr "Recuperar" msgid "Recovered Successfully" msgstr "Recuperado con éxito" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "Recuperación" @@ -2203,6 +2213,10 @@ msgstr "Renovado de Certificado exitoso" msgid "Renew successfully" msgstr "Renovado con éxito" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "Pedido con parámetros incorrectos" @@ -2388,7 +2402,7 @@ msgstr "" msgid "Show" msgstr "Mostrar" -#: src/views/other/Login.vue:240 +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" msgstr "Iniciar sesión con una llave de acceso" @@ -2648,7 +2662,7 @@ msgid "" "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 #, fuzzy msgid "" "The model name should only contain letters, unicode, numbers, hyphens, " @@ -2706,8 +2720,8 @@ msgstr "" msgid "The url is invalid" msgstr "La URL es inválida" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "La URL no es válida." @@ -2814,7 +2828,7 @@ msgstr "" "de la autoridad al backend, y debemos guardar este archivo y volver a cargar " "Nginx. ¿Estás seguro de que quieres continuar?" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 #, fuzzy msgid "" "To use a local large model, deploy it with ollama, vllm or lmdeploy. They " @@ -2825,7 +2839,7 @@ msgstr "" "Estos proporcionan un API endpoint compatible con OpenAI, por lo que solo " "debe configurar la baseUrl en su API local." -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "El token no es válido" @@ -2910,11 +2924,11 @@ msgstr "Tiempo encendido:" msgid "URL" msgstr "URL" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "Usar OTP" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "Usar código de recuperación" diff --git a/app/src/language/fr_FR/app.po b/app/src/language/fr_FR/app.po index c3b15b6b..f0cde2cd 100644 --- a/app/src/language/fr_FR/app.po +++ b/app/src/language/fr_FR/app.po @@ -109,7 +109,7 @@ msgstr "" msgid "All" msgstr "" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "URL de base de l'API" @@ -118,15 +118,15 @@ msgstr "URL de base de l'API" msgid "API Document" msgstr "Jeton d'API" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "Proxy d'API" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "Jeton d'API" -#: src/views/preference/OpenAISettings.vue:78 +#: src/views/preference/OpenAISettings.vue:67 #, fuzzy msgid "API Type" msgstr "Jeton d'API" @@ -235,7 +235,7 @@ msgstr "" msgid "Auth" msgstr "Autheur" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "" @@ -635,6 +635,11 @@ msgstr "Base de données (Facultatif, par défaut : database)" msgid "Days" msgstr "" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "Description" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -1278,7 +1283,7 @@ msgstr "Initialisation du programme de mise à niveau du core" msgid "Input the code from the app:" msgstr "" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "" @@ -1320,6 +1325,10 @@ msgstr "" msgid "Invalid recovery code" msgstr "" +#: src/constants/errors/middleware.ts:2 +msgid "Invalid request format" +msgstr "" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "" @@ -1371,7 +1380,7 @@ msgstr "Dernière vérification le" msgid "Leave blank for no change" msgstr "Laisser vide pour aucun changement" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "Laissez vide pour la valeur par défaut : https://api.openai.com/" @@ -1444,7 +1453,7 @@ msgstr "Localisations" msgid "Log" msgstr "Connexion" -#: src/routes/index.ts:318 src/views/other/Login.vue:222 +#: src/routes/index.ts:318 src/views/other/Login.vue:223 msgid "Login" msgstr "Connexion" @@ -1519,7 +1528,7 @@ msgstr "Mémoire et stockage" msgid "Minutes" msgstr "" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 #, fuzzy msgid "Model" msgstr "Mode d'exécution" @@ -1814,7 +1823,7 @@ msgstr "" msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232 msgid "Or" msgstr "" @@ -1916,7 +1925,7 @@ msgid "" "button below." msgstr "" -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 msgid "Please enter the OTP code:" msgstr "" @@ -2071,7 +2080,7 @@ msgstr "" msgid "Recovered Successfully" msgstr "Enregistré avec succès" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "" @@ -2262,6 +2271,10 @@ msgstr "Changer de certificat" msgid "Renew successfully" msgstr "Activé avec succès" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "" @@ -2444,7 +2457,7 @@ msgstr "" msgid "Show" msgstr "" -#: src/views/other/Login.vue:240 +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" msgstr "" @@ -2711,7 +2724,7 @@ msgid "" "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 msgid "" "The model name should only contain letters, unicode, numbers, hyphens, " "dashes, colons, and dots." @@ -2761,8 +2774,8 @@ msgstr "" msgid "The url is invalid" msgstr "" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "" @@ -2861,14 +2874,14 @@ msgstr "" "transmettre la demande de l'autorité au backend, et nous devons enregistrer " "ce fichier et recharger le Nginx. Êtes-vous sûr de vouloir continuer?" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 msgid "" "To use a local large model, deploy it with ollama, vllm or lmdeploy. They " "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your " "local API." msgstr "" -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "" @@ -2952,11 +2965,11 @@ msgstr "Disponibilité :" msgid "URL" msgstr "" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "" diff --git a/app/src/language/ko_KR/app.po b/app/src/language/ko_KR/app.po index 44efbaa7..58abd8e3 100644 --- a/app/src/language/ko_KR/app.po +++ b/app/src/language/ko_KR/app.po @@ -327,6 +327,13 @@ msgstr "CA 디렉토리" msgid "CADir" msgstr "CA 디렉토리" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:129 +msgid "Can't scan? Use text key binding" +msgstr "" + +>>>>>>> remotes/origin/dev #: src/components/ChatGPT/ChatGPT.vue:356 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187 @@ -579,11 +586,19 @@ msgstr "인증 정보" msgid "Credentials" msgstr "인증 정보들" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:72 msgid "Current account is enabled TOTP." msgstr "" #: src/views/preference/components/TOTP.vue:70 +======= +#: src/views/preference/components/TOTP.vue:77 +msgid "Current account is enabled TOTP." +msgstr "" + +#: src/views/preference/components/TOTP.vue:74 +>>>>>>> remotes/origin/dev msgid "Current account is not enabled TOTP." msgstr "" @@ -615,6 +630,11 @@ msgstr "데이터베이스 (선택사항, 기본값: database)" msgid "Days" msgstr "" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "설명" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -919,7 +939,11 @@ msgstr "%{node_name}에서 %{conf_name} 활성화 실패" msgid "Enable %{conf_name} in %{node_name} successfully" msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:45 +======= +#: src/views/preference/components/TOTP.vue:38 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Enable 2FA successfully" msgstr "성공적으로 활성화" @@ -960,7 +984,11 @@ msgstr "성공적으로 활성화" msgid "Enable TLS" msgstr "TLS 활성화" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:81 +======= +#: src/views/preference/components/TOTP.vue:103 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Enable TOTP" msgstr "TLS 활성화" @@ -1201,6 +1229,15 @@ msgid "" "ban threshold minutes, the ip will be banned for a period of time." msgstr "" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:89 +msgid "" +"If you lose your mobile phone, you can use the recovery code to reset your " +"2FA." +msgstr "" + +>>>>>>> remotes/origin/dev #: src/views/preference/components/AddPasskey.vue:70 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear." msgstr "" @@ -1233,11 +1270,19 @@ msgstr "초기 코어 업그레이더 오류" msgid "Initialing core upgrader" msgstr "코어 업그레이더 초기화" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:119 +======= +#: src/views/preference/components/TOTP.vue:136 +>>>>>>> remotes/origin/dev msgid "Input the code from the app:" msgstr "" #: src/components/TwoFA/Authorization.vue:82 +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:149 +>>>>>>> remotes/origin/dev msgid "Input the recovery code:" msgstr "" @@ -1284,7 +1329,15 @@ msgstr "" msgid "Invalid recovery code" msgstr "유효함" +<<<<<<< HEAD #: src/views/preference/AuthSettings.vue:18 +======= +#: src/constants/errors/middleware.ts:2 +msgid "Invalid request format" +msgstr "" + +#: src/views/preference/AuthSettings.vue:14 +>>>>>>> remotes/origin/dev msgid "IP" msgstr "" @@ -2037,6 +2090,7 @@ msgid "Recovered Successfully" msgstr "성공적으로 제거됨" #: src/components/TwoFA/Authorization.vue:89 +<<<<<<< HEAD msgid "Recovery" msgstr "" @@ -2049,6 +2103,18 @@ msgstr "유효함" msgid "" "Recovery codes are used to access your account when you lose access to your " "2FA device. Each code can only be used once." +======= +#: src/views/preference/components/TOTP.vue:156 +msgid "Recovery" +msgstr "" + +#: src/views/preference/components/TOTP.vue:82 +msgid "Recovery Code" +msgstr "" + +#: src/views/preference/components/TOTP.vue:91 +msgid "Recovery Code:" +>>>>>>> remotes/origin/dev msgstr "" #: src/views/preference/CertSettings.vue:37 @@ -2229,6 +2295,10 @@ msgstr "인증서 갱신 성공" msgid "Renew successfully" msgstr "성공적으로 갱신됨" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "잘못된 매개변수로 요청됨" @@ -2237,7 +2307,11 @@ msgstr "잘못된 매개변수로 요청됨" msgid "Reset" msgstr "재설정" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:93 +======= +#: src/views/preference/components/TOTP.vue:111 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Reset 2FA" msgstr "재설정" @@ -2331,7 +2405,11 @@ msgstr "성공적으로 저장됨" msgid "Saved successfully" msgstr "성공적으로 저장됨" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:69 +======= +#: src/views/preference/components/TOTP.vue:72 +>>>>>>> remotes/origin/dev msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" @@ -2339,7 +2417,11 @@ msgstr "" msgid "SDK" msgstr "" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:109 +======= +#: src/views/preference/components/TOTP.vue:128 +>>>>>>> remotes/origin/dev msgid "Secret has been copied" msgstr "" @@ -2705,6 +2787,14 @@ msgid "" "hyphens, dashes, colons, and dots." msgstr "" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:90 +msgid "" +"The recovery code is only displayed once, please save it in a safe place." +msgstr "" + +>>>>>>> remotes/origin/dev #: src/views/dashboard/Environments.vue:148 msgid "" "The remote Nginx UI version is not compatible with the local Nginx UI " @@ -2802,7 +2892,11 @@ msgstr "팁" msgid "Title" msgstr "제목" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:68 +======= +#: src/views/preference/components/TOTP.vue:71 +>>>>>>> remotes/origin/dev msgid "" "To enable it, you need to install the Google or Microsoft Authenticator app " "on your mobile phone." @@ -2843,11 +2937,19 @@ msgid_plural "Total %{total} items" msgstr[0] "" msgstr[1] "" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:66 msgid "TOTP" msgstr "" #: src/views/preference/components/TOTP.vue:67 +======= +#: src/views/preference/components/TOTP.vue:69 +msgid "TOTP" +msgstr "" + +#: src/views/preference/components/TOTP.vue:70 +>>>>>>> remotes/origin/dev msgid "" "TOTP is a two-factor authentication method that uses a time-based one-time " "password algorithm." diff --git a/app/src/language/messages.pot b/app/src/language/messages.pot index 9f48ad4e..16bda3b4 100644 --- a/app/src/language/messages.pot +++ b/app/src/language/messages.pot @@ -100,7 +100,7 @@ msgstr "" msgid "All" msgstr "" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "" @@ -108,15 +108,15 @@ msgstr "" msgid "API Document" msgstr "" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "" -#: src/views/preference/OpenAISettings.vue:78 +#: src/views/preference/OpenAISettings.vue:67 msgid "API Type" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "Auth" msgstr "" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "" @@ -592,6 +592,10 @@ msgstr "" msgid "Days" msgstr "" +#: src/constants/errors/middleware.ts:3 +msgid "Decryption failed" +msgstr "" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -1191,7 +1195,7 @@ msgstr "" msgid "Input the code from the app:" msgstr "" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "" @@ -1233,6 +1237,10 @@ msgstr "" msgid "Invalid recovery code" msgstr "" +#: src/constants/errors/middleware.ts:2 +msgid "Invalid request format" +msgstr "" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "" @@ -1278,7 +1286,7 @@ msgstr "" msgid "Leave blank for no change" msgstr "" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "" @@ -1342,7 +1350,7 @@ msgid "Log" msgstr "" #: src/routes/index.ts:318 -#: src/views/other/Login.vue:222 +#: src/views/other/Login.vue:223 msgid "Login" msgstr "" @@ -1410,7 +1418,7 @@ msgstr "" msgid "Minutes" msgstr "" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 msgid "Model" msgstr "" @@ -1691,8 +1699,8 @@ msgstr "" msgid "OpenAI" msgstr "" -#: src/components/TwoFA/Authorization.vue:112 -#: src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 +#: src/views/other/Login.vue:232 msgid "Or" msgstr "" @@ -1790,7 +1798,7 @@ msgstr "" msgid "Please enter a name for the passkey you wish to create and click the OK button below." msgstr "" -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 msgid "Please enter the OTP code:" msgstr "" @@ -1922,7 +1930,7 @@ msgstr "" msgid "Recovered Successfully" msgstr "" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "" @@ -2083,6 +2091,10 @@ msgstr "" msgid "Renew successfully" msgstr "" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "" @@ -2253,7 +2265,7 @@ msgstr "" msgid "Show" msgstr "" -#: src/views/other/Login.vue:240 +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" msgstr "" @@ -2482,7 +2494,7 @@ msgstr "" msgid "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots." msgstr "" @@ -2515,8 +2527,8 @@ msgstr "" msgid "The url is invalid" msgstr "" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "" @@ -2593,11 +2605,11 @@ msgstr "" msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?" msgstr "" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 msgid "To use a local large model, deploy it with ollama, vllm or lmdeploy. They provide an OpenAI-compatible API endpoint, so just set the baseUrl to your local API." msgstr "" -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "" @@ -2682,11 +2694,11 @@ msgstr "" msgid "URL" msgstr "" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "" diff --git a/app/src/language/ru_RU/app.po b/app/src/language/ru_RU/app.po index 0e10ba31..8001202e 100644 --- a/app/src/language/ru_RU/app.po +++ b/app/src/language/ru_RU/app.po @@ -330,6 +330,13 @@ msgstr "Директория корневого сертификата" msgid "CADir" msgstr "" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:129 +msgid "Can't scan? Use text key binding" +msgstr "" + +>>>>>>> remotes/origin/dev #: src/components/ChatGPT/ChatGPT.vue:356 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187 @@ -579,12 +586,20 @@ msgstr "Учетные данные" msgid "Credentials" msgstr "Учетные данные" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:72 +======= +#: src/views/preference/components/TOTP.vue:77 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Current account is enabled TOTP." msgstr "Текущая учетная запись имеет включенную 2ФА." +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:70 +======= +#: src/views/preference/components/TOTP.vue:74 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Current account is not enabled TOTP." msgstr "" @@ -619,6 +634,11 @@ msgstr "База данных (Опционально, по умолчанию: msgid "Days" msgstr "Дни" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "Описание" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -927,7 +947,11 @@ msgstr "Включение %{conf_name} in %{node_name} нипалучилася msgid "Enable %{conf_name} in %{node_name} successfully" msgstr "Включение %{conf_name} in %{node_name} успешно" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:45 +======= +#: src/views/preference/components/TOTP.vue:38 +>>>>>>> remotes/origin/dev msgid "Enable 2FA successfully" msgstr "Двухфакторная аутентификация успешно включена" @@ -967,7 +991,11 @@ msgstr "Включено успешно" msgid "Enable TLS" msgstr "Включить TLS" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:81 +======= +#: src/views/preference/components/TOTP.vue:103 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Enable TOTP" msgstr "Включить TLS" @@ -1207,6 +1235,17 @@ msgstr "" "количества попыток в течение пороговых минут блокировки, IP будет " "заблокирован на определенный период времени." +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:89 +msgid "" +"If you lose your mobile phone, you can use the recovery code to reset your " +"2FA." +msgstr "" +"Если вы потеряете свой мобильный телефон, вы можете использовать код " +"восстановления для сброса 2FA." + +>>>>>>> remotes/origin/dev #: src/views/preference/components/AddPasskey.vue:70 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear." msgstr "" @@ -1241,11 +1280,19 @@ msgstr "Ошибка первоначального обновления ядр msgid "Initialing core upgrader" msgstr "Инициализация программы обновления ядра" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:119 +======= +#: src/views/preference/components/TOTP.vue:136 +>>>>>>> remotes/origin/dev msgid "Input the code from the app:" msgstr "Введите код из приложения:" #: src/components/TwoFA/Authorization.vue:82 +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:149 +>>>>>>> remotes/origin/dev msgid "Input the recovery code:" msgstr "Введите код восстановления:" @@ -1288,7 +1335,16 @@ msgstr "Неверный пароль или код восстановления msgid "Invalid recovery code" msgstr "Неверный 2FA или код восстановления" +<<<<<<< HEAD #: src/views/preference/AuthSettings.vue:18 +======= +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "Неверный 2FA или код восстановления" + +#: src/views/preference/AuthSettings.vue:14 +>>>>>>> remotes/origin/dev msgid "IP" msgstr "IP" @@ -2023,6 +2079,7 @@ msgid "Recovered Successfully" msgstr "Восстановлено успешно" #: src/components/TwoFA/Authorization.vue:89 +<<<<<<< HEAD msgid "Recovery" msgstr "Восстановление" @@ -2036,6 +2093,19 @@ msgid "" "Recovery codes are used to access your account when you lose access to your " "2FA device. Each code can only be used once." msgstr "" +======= +#: src/views/preference/components/TOTP.vue:156 +msgid "Recovery" +msgstr "Восстановление" + +#: src/views/preference/components/TOTP.vue:82 +msgid "Recovery Code" +msgstr "Код восстановления" + +#: src/views/preference/components/TOTP.vue:91 +msgid "Recovery Code:" +msgstr "Код восстановления:" +>>>>>>> remotes/origin/dev #: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" @@ -2200,6 +2270,10 @@ msgstr "Успешное обновление сертификата" msgid "Renew successfully" msgstr "Успешно обновлено" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "Запрос с неправильными параметрами" @@ -2208,7 +2282,11 @@ msgstr "Запрос с неправильными параметрами" msgid "Reset" msgstr "Сброс" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:93 +======= +#: src/views/preference/components/TOTP.vue:111 +>>>>>>> remotes/origin/dev msgid "Reset 2FA" msgstr "Сброс 2FA" @@ -2301,7 +2379,11 @@ msgstr "Сохранено успешно" msgid "Saved successfully" msgstr "Успешно сохранено" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:69 +======= +#: src/views/preference/components/TOTP.vue:72 +>>>>>>> remotes/origin/dev msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" "Отсканируйте QR-код с помощью мобильного телефона, чтобы добавить учетную " @@ -2311,7 +2393,11 @@ msgstr "" msgid "SDK" msgstr "SDK" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:109 +======= +#: src/views/preference/components/TOTP.vue:128 +>>>>>>> remotes/origin/dev msgid "Secret has been copied" msgstr "" @@ -2681,6 +2767,16 @@ msgstr "" "Имя сервера должно содержать только буквы, юникод, цифры, дефисы, тире и " "точки." +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:90 +msgid "" +"The recovery code is only displayed once, please save it in a safe place." +msgstr "" +"Код восстановления отображается только один раз, пожалуйста, сохраните его в " +"безопасном месте." + +>>>>>>> remotes/origin/dev #: src/views/dashboard/Environments.vue:148 msgid "" "The remote Nginx UI version is not compatible with the local Nginx UI " @@ -2782,7 +2878,11 @@ msgstr "Советы" msgid "Title" msgstr "Заголовок" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:68 +======= +#: src/views/preference/components/TOTP.vue:71 +>>>>>>> remotes/origin/dev msgid "" "To enable it, you need to install the Google or Microsoft Authenticator app " "on your mobile phone." @@ -2826,11 +2926,19 @@ msgid_plural "Total %{total} items" msgstr[0] "" msgstr[1] "" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:66 msgid "TOTP" msgstr "" #: src/views/preference/components/TOTP.vue:67 +======= +#: src/views/preference/components/TOTP.vue:69 +msgid "TOTP" +msgstr "" + +#: src/views/preference/components/TOTP.vue:70 +>>>>>>> remotes/origin/dev msgid "" "TOTP is a two-factor authentication method that uses a time-based one-time " "password algorithm." diff --git a/app/src/language/tr_TR/app.po b/app/src/language/tr_TR/app.po index 71c48bde..673cbfdb 100644 --- a/app/src/language/tr_TR/app.po +++ b/app/src/language/tr_TR/app.po @@ -325,6 +325,13 @@ msgstr "CA Dizini" msgid "CADir" msgstr "CADizini" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:129 +msgid "Can't scan? Use text key binding" +msgstr "Tarayamıyor musunuz? Metin anahtar bağlamasını kullanın" + +>>>>>>> remotes/origin/dev #: src/components/ChatGPT/ChatGPT.vue:356 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187 @@ -573,11 +580,19 @@ msgstr "Kimlik bilgisi" msgid "Credentials" msgstr "Kimlik bilgileri" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:72 msgid "Current account is enabled TOTP." msgstr "Mevcut hesap için TOTP etkinleştirildi." #: src/views/preference/components/TOTP.vue:70 +======= +#: src/views/preference/components/TOTP.vue:77 +msgid "Current account is enabled TOTP." +msgstr "Mevcut hesap için TOTP etkinleştirildi." + +#: src/views/preference/components/TOTP.vue:74 +>>>>>>> remotes/origin/dev msgid "Current account is not enabled TOTP." msgstr "Mevcut hesap için TOTP etkin değil." @@ -610,6 +625,11 @@ msgstr "Veritabanı (İsteğe bağlı, varsayılan: database)" msgid "Days" msgstr "Günler" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "Açıklama" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -925,7 +945,11 @@ msgstr "" "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı " "oldu" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:45 +======= +#: src/views/preference/components/TOTP.vue:38 +>>>>>>> remotes/origin/dev msgid "Enable 2FA successfully" msgstr "2FA'yı başarıyla etkinleştirildi" @@ -969,7 +993,11 @@ msgstr "Başarıyla etkinleştirildi" msgid "Enable TLS" msgstr "TLS'yi Etkinleştir" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:81 +======= +#: src/views/preference/components/TOTP.vue:103 +>>>>>>> remotes/origin/dev msgid "Enable TOTP" msgstr "TOTP'yi Etkinleştir" @@ -1208,6 +1236,17 @@ msgstr "" "yasaklama eşiği dakikaları içinde maksimum deneme sayısına ulaşırsa, IP " "adresi belirli bir süre için yasaklanacaktır." +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:89 +msgid "" +"If you lose your mobile phone, you can use the recovery code to reset your " +"2FA." +msgstr "" +"Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu " +"kullanabilirsiniz." + +>>>>>>> remotes/origin/dev #: src/views/preference/components/AddPasskey.vue:70 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear." msgstr "" @@ -1243,11 +1282,19 @@ msgstr "İlk çekirdek yükseltici hatası" msgid "Initialing core upgrader" msgstr "Çekirdek yükseltici başlatılıyor" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:119 +======= +#: src/views/preference/components/TOTP.vue:136 +>>>>>>> remotes/origin/dev msgid "Input the code from the app:" msgstr "Uygulamadan kodu girin:" #: src/components/TwoFA/Authorization.vue:82 +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:149 +>>>>>>> remotes/origin/dev msgid "Input the recovery code:" msgstr "Kurtarma kodunu girin:" @@ -1290,7 +1337,16 @@ msgstr "Geçersiz parola veya kurtarma kodu" msgid "Invalid recovery code" msgstr "Geçersiz 2FA veya kurtarma kodu" +<<<<<<< HEAD #: src/views/preference/AuthSettings.vue:18 +======= +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "Geçersiz 2FA veya kurtarma kodu" + +#: src/views/preference/AuthSettings.vue:14 +>>>>>>> remotes/origin/dev msgid "IP" msgstr "IP" @@ -2119,20 +2175,35 @@ msgid "Recovered Successfully" msgstr "Başarıyla Kurtarıldı" #: src/components/TwoFA/Authorization.vue:89 +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:156 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Recovery" msgstr "Kurtarma" +<<<<<<< HEAD #: src/views/preference/components/RecoveryCodes.vue:68 +======= +#: src/views/preference/components/TOTP.vue:82 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Recovery Codes" msgstr "Kurtarma Kodu" +<<<<<<< HEAD #: src/views/preference/components/RecoveryCodes.vue:73 msgid "" "Recovery codes are used to access your account when you lose access to your " "2FA device. Each code can only be used once." msgstr "" +======= +#: src/views/preference/components/TOTP.vue:91 +#, fuzzy +msgid "Recovery Code:" +msgstr "Kurtarma Kodu:" +>>>>>>> remotes/origin/dev #: src/views/preference/CertSettings.vue:37 #, fuzzy @@ -2328,6 +2399,10 @@ msgstr "Sertifika Yenileme Başarısı" msgid "Renew successfully" msgstr "Başarıyla yenileyin" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 #, fuzzy msgid "Requested with wrong parameters" @@ -2338,7 +2413,11 @@ msgstr "Yanlış parametrelerle talep edildi" msgid "Reset" msgstr "Sıfırla" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:93 +======= +#: src/views/preference/components/TOTP.vue:111 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Reset 2FA" msgstr "2FA'yı Sıfırla" @@ -2441,7 +2520,11 @@ msgstr "Başarıyla kaydedin" msgid "Saved successfully" msgstr "Başarıyla Kaydedildi" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:69 +======= +#: src/views/preference/components/TOTP.vue:72 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "Hesabı uygulamaya eklemek için QR kodunu cep telefonunuzla tarayın." @@ -2451,7 +2534,11 @@ msgstr "Hesabı uygulamaya eklemek için QR kodunu cep telefonunuzla tarayın." msgid "SDK" msgstr "SDK" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:109 +======= +#: src/views/preference/components/TOTP.vue:128 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Secret has been copied" msgstr "Sır kopyalandı" @@ -2867,6 +2954,17 @@ msgstr "" "Sunucu adı yalnızca harf, unicode, sayı, kısa çizgi, tire ve nokta " "içermelidir." +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:90 +#, fuzzy +msgid "" +"The recovery code is only displayed once, please save it in a safe place." +msgstr "" +"Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere " +"kaydedin." + +>>>>>>> remotes/origin/dev #: src/views/dashboard/Environments.vue:148 #, fuzzy msgid "" @@ -2979,7 +3077,11 @@ msgstr "İpuçları" msgid "Title" msgstr "Başlık" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:68 +======= +#: src/views/preference/components/TOTP.vue:71 +>>>>>>> remotes/origin/dev #, fuzzy msgid "" "To enable it, you need to install the Google or Microsoft Authenticator app " @@ -3034,12 +3136,20 @@ msgid_plural "Total %{total} items" msgstr[0] "" msgstr[1] "" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:66 +======= +#: src/views/preference/components/TOTP.vue:69 +>>>>>>> remotes/origin/dev #, fuzzy msgid "TOTP" msgstr "TOTP" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:67 +======= +#: src/views/preference/components/TOTP.vue:70 +>>>>>>> remotes/origin/dev #, fuzzy msgid "" "TOTP is a two-factor authentication method that uses a time-based one-time " diff --git a/app/src/language/vi_VN/app.po b/app/src/language/vi_VN/app.po index 2428a189..1005467d 100644 --- a/app/src/language/vi_VN/app.po +++ b/app/src/language/vi_VN/app.po @@ -342,6 +342,13 @@ msgstr "" msgid "CADir" msgstr "" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:129 +msgid "Can't scan? Use text key binding" +msgstr "" + +>>>>>>> remotes/origin/dev #: src/components/ChatGPT/ChatGPT.vue:356 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187 @@ -603,11 +610,19 @@ msgstr "Chứng chỉ" msgid "Credentials" msgstr "Chứng chỉ" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:72 msgid "Current account is enabled TOTP." msgstr "" #: src/views/preference/components/TOTP.vue:70 +======= +#: src/views/preference/components/TOTP.vue:77 +msgid "Current account is enabled TOTP." +msgstr "" + +#: src/views/preference/components/TOTP.vue:74 +>>>>>>> remotes/origin/dev msgid "Current account is not enabled TOTP." msgstr "" @@ -639,6 +654,11 @@ msgstr "Tên cơ sở dữ liệu (Tuỳ chọn, Mặc định là: database)" msgid "Days" msgstr "" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "Mô tả" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -961,7 +981,11 @@ msgstr "Không thể bật %{conf_name} trên %{node_name}" msgid "Enable %{conf_name} in %{node_name} successfully" msgstr "Đã bật %{conf_name} trên %{node_name}" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:45 +======= +#: src/views/preference/components/TOTP.vue:38 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Enable 2FA successfully" msgstr "Đã bật" @@ -1003,7 +1027,11 @@ msgstr "Đã bật" msgid "Enable TLS" msgstr "Bật TLS" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:81 +======= +#: src/views/preference/components/TOTP.vue:103 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Enable TOTP" msgstr "Bật TLS" @@ -1247,6 +1275,15 @@ msgid "" "ban threshold minutes, the ip will be banned for a period of time." msgstr "" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:89 +msgid "" +"If you lose your mobile phone, you can use the recovery code to reset your " +"2FA." +msgstr "" + +>>>>>>> remotes/origin/dev #: src/views/preference/components/AddPasskey.vue:70 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear." msgstr "" @@ -1280,11 +1317,19 @@ msgstr "Không thể khởi tạo trình nâng cấp" msgid "Initialing core upgrader" msgstr "Đang khởi tạo trình nâng cấp" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:119 +======= +#: src/views/preference/components/TOTP.vue:136 +>>>>>>> remotes/origin/dev msgid "Input the code from the app:" msgstr "" #: src/components/TwoFA/Authorization.vue:82 +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:149 +>>>>>>> remotes/origin/dev msgid "Input the recovery code:" msgstr "" @@ -1331,7 +1376,15 @@ msgstr "" msgid "Invalid recovery code" msgstr "Hợp lệ" +<<<<<<< HEAD #: src/views/preference/AuthSettings.vue:18 +======= +#: src/constants/errors/middleware.ts:2 +msgid "Invalid request format" +msgstr "" + +#: src/views/preference/AuthSettings.vue:14 +>>>>>>> remotes/origin/dev msgid "IP" msgstr "" @@ -2080,6 +2133,7 @@ msgid "Recovered Successfully" msgstr "Xoá thành công" #: src/components/TwoFA/Authorization.vue:89 +<<<<<<< HEAD msgid "Recovery" msgstr "" @@ -2092,6 +2146,18 @@ msgstr "Hợp lệ" msgid "" "Recovery codes are used to access your account when you lose access to your " "2FA device. Each code can only be used once." +======= +#: src/views/preference/components/TOTP.vue:156 +msgid "Recovery" +msgstr "" + +#: src/views/preference/components/TOTP.vue:82 +msgid "Recovery Code" +msgstr "" + +#: src/views/preference/components/TOTP.vue:91 +msgid "Recovery Code:" +>>>>>>> remotes/origin/dev msgstr "" #: src/views/preference/CertSettings.vue:37 @@ -2272,6 +2338,10 @@ msgstr "Gia hạn chứng chỉ SSL thành công" msgid "Renew successfully" msgstr "Gia hạn chứng chỉ SSL" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "Yêu cầu có chứa tham số sai" @@ -2280,7 +2350,11 @@ msgstr "Yêu cầu có chứa tham số sai" msgid "Reset" msgstr "Đặt lại" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:93 +======= +#: src/views/preference/components/TOTP.vue:111 +>>>>>>> remotes/origin/dev #, fuzzy msgid "Reset 2FA" msgstr "Đặt lại" @@ -2374,7 +2448,11 @@ msgstr "Lưu thành công" msgid "Saved successfully" msgstr "Lưu thành công" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:69 +======= +#: src/views/preference/components/TOTP.vue:72 +>>>>>>> remotes/origin/dev msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" @@ -2382,7 +2460,11 @@ msgstr "" msgid "SDK" msgstr "" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:109 +======= +#: src/views/preference/components/TOTP.vue:128 +>>>>>>> remotes/origin/dev msgid "Secret has been copied" msgstr "" @@ -2748,6 +2830,14 @@ msgid "" "hyphens, dashes, colons, and dots." msgstr "" +<<<<<<< HEAD +======= +#: src/views/preference/components/TOTP.vue:90 +msgid "" +"The recovery code is only displayed once, please save it in a safe place." +msgstr "" + +>>>>>>> remotes/origin/dev #: src/views/dashboard/Environments.vue:148 msgid "" "The remote Nginx UI version is not compatible with the local Nginx UI " @@ -2842,7 +2932,11 @@ msgstr "" msgid "Title" msgstr "Tiêu đề" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:68 +======= +#: src/views/preference/components/TOTP.vue:71 +>>>>>>> remotes/origin/dev msgid "" "To enable it, you need to install the Google or Microsoft Authenticator app " "on your mobile phone." @@ -2884,11 +2978,19 @@ msgid_plural "Total %{total} items" msgstr[0] "" msgstr[1] "" +<<<<<<< HEAD #: src/views/preference/components/TOTP.vue:66 msgid "TOTP" msgstr "" #: src/views/preference/components/TOTP.vue:67 +======= +#: src/views/preference/components/TOTP.vue:69 +msgid "TOTP" +msgstr "" + +#: src/views/preference/components/TOTP.vue:70 +>>>>>>> remotes/origin/dev msgid "" "TOTP is a two-factor authentication method that uses a time-based one-time " "password algorithm." diff --git a/app/src/language/zh_CN/app.po b/app/src/language/zh_CN/app.po index 0dff4ae6..83617e20 100644 --- a/app/src/language/zh_CN/app.po +++ b/app/src/language/zh_CN/app.po @@ -106,7 +106,7 @@ msgstr "然后,刷新此页面并再次点击添加 Passkey。" msgid "All" msgstr "全部" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "API 地址" @@ -114,15 +114,15 @@ msgstr "API 地址" msgid "API Document" msgstr "API 文档" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "API 代理" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "API Token" -#: src/views/preference/OpenAISettings.vue:78 +#: src/views/preference/OpenAISettings.vue:67 msgid "API Type" msgstr "API 类型" @@ -216,7 +216,7 @@ msgstr "尝试次数" msgid "Auth" msgstr "认证" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "通过 Passkey 认证" @@ -596,6 +596,11 @@ msgstr "数据库 (可选,默认: database)" msgid "Days" msgstr "天" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "描述" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -1191,7 +1196,7 @@ msgstr "初始化核心升级器" msgid "Input the code from the app:" msgstr "输入应用程序中的代码:" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "输入恢复代码:" @@ -1232,6 +1237,11 @@ msgstr "二次验证码或恢复代码无效" msgid "Invalid recovery code" msgstr "无效的恢复代码" +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "无效的恢复代码" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "IP" @@ -1280,7 +1290,7 @@ msgstr "上次使用" msgid "Leave blank for no change" msgstr "留空表示不修改" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "留空为默认:https://api.openai.com/" @@ -1343,7 +1353,7 @@ msgstr "Locations" msgid "Log" msgstr "日志" -#: src/routes/index.ts:318 src/views/other/Login.vue:222 +#: src/routes/index.ts:318 src/views/other/Login.vue:223 msgid "Login" msgstr "登录" @@ -1419,7 +1429,7 @@ msgstr "内存与存储" msgid "Minutes" msgstr "分钟" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 msgid "Model" msgstr "模型" @@ -1699,7 +1709,7 @@ msgstr "在线" msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232 msgid "Or" msgstr "或" @@ -1802,7 +1812,7 @@ msgid "" "button below." msgstr "请为您要创建的 Passkey 输入一个名称,然后单击下面的 \"确定 \"按钮。" -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 msgid "Please enter the OTP code:" msgstr "请输入 OTP:" @@ -1941,7 +1951,7 @@ msgstr "恢复" msgid "Recovered Successfully" msgstr "恢复成功" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "恢复" @@ -2110,6 +2120,10 @@ msgstr "证书续期成功" msgid "Renew successfully" msgstr "更新成功" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "请求超时" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "请求参数错误" @@ -2288,7 +2302,7 @@ msgstr "" msgid "Show" msgstr "显示" -#: src/views/other/Login.vue:240 +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" msgstr "使用 Passkey 登录" @@ -2530,7 +2544,7 @@ msgid "" "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "日志路径不在 settings.NginxSettings.LogDirWhiteList 中的路径之下" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 msgid "" "The model name should only contain letters, unicode, numbers, hyphens, " "dashes, colons, and dots." @@ -2576,8 +2590,8 @@ msgstr "当前配置中的 server_name 必须是获取证书所需的域名, msgid "The url is invalid" msgstr "URL无效" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "URL 无效." @@ -2675,7 +2689,7 @@ msgstr "" "为了确保认证自动更新能够正常工作,我们需要添加一个能够代理从权威机构到后端的" "请求的 Location,并且我们需要保存这个文件并重新加载Nginx。你确定要继续吗?" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 msgid "" "To use a local large model, deploy it with ollama, vllm or lmdeploy. They " "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your " @@ -2684,7 +2698,7 @@ msgstr "" "要使用本地大型模型,可使用 ollama、vllm 或 lmdeploy 进行部署。它们提供了与 " "OpenAI 兼容的 API 端点,因此只需将 baseUrl 设置为本地 API 即可。" -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "Token 无效" @@ -2765,11 +2779,11 @@ msgstr "运行时间:" msgid "URL" msgstr "URL" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "使用二步验证码" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "使用恢复代码" diff --git a/app/src/language/zh_TW/app.po b/app/src/language/zh_TW/app.po index d4e0c9fc..0074557b 100644 --- a/app/src/language/zh_TW/app.po +++ b/app/src/language/zh_TW/app.po @@ -2,25 +2,26 @@ # Hintay Lin , 2024. # Weblate , 2024. # "Xaver Y.R. Chen" , 2025. +# 0xJacky , 2025. msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-01 18:25+0000\n" -"Last-Translator: \"Xaver Y.R. Chen\" \n" -"Language-Team: Chinese (Traditional) \n" +"PO-Revision-Date: 2025-02-08 18:25+0000\n" +"Last-Translator: 0xJacky \n" +"Language-Team: Chinese (Traditional Han script) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.6.2\n" +"X-Generator: Weblate 5.9.2\n" "Generated-By: easygettext\n" #: src/views/user/userColumns.tsx:32 msgid "2FA" -msgstr "多重要素驗證" +msgstr "雙因素驗證" #: src/views/preference/AuthSettings.vue:70 msgid "2FA Settings" @@ -32,7 +33,7 @@ msgstr "關於" #: src/routes/index.ts:210 src/views/site/ngx_conf/LogEntry.vue:75 msgid "Access Logs" -msgstr "存取日誌" +msgstr "訪問日誌" #: src/routes/index.ts:148 src/views/certificate/ACMEUser.vue:113 #: src/views/certificate/ACMEUserSelector.vue:85 @@ -111,7 +112,7 @@ msgstr "然後,重新整理此頁面並再次點選新增通行密鑰。" msgid "All" msgstr "全部" -#: src/views/preference/OpenAISettings.vue:44 +#: src/views/preference/OpenAISettings.vue:32 msgid "API Base Url" msgstr "API 基礎網址" @@ -119,27 +120,25 @@ msgstr "API 基礎網址" msgid "API Document" msgstr "API 文件" -#: src/views/preference/OpenAISettings.vue:57 +#: src/views/preference/OpenAISettings.vue:46 msgid "API Proxy" msgstr "API 代理" -#: src/views/preference/OpenAISettings.vue:69 +#: src/views/preference/OpenAISettings.vue:58 msgid "API Token" msgstr "API Token" -#: src/views/preference/OpenAISettings.vue:78 -#, fuzzy +#: src/views/preference/OpenAISettings.vue:67 msgid "API Type" -msgstr "API Token" +msgstr "API 類型" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103 msgid "Apply" msgstr "套用" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67 -#, fuzzy msgid "Apply bulk action successfully" -msgstr "複製成功" +msgstr "批量操作成功應用" #: src/views/system/Upgrade.vue:176 msgid "Arch" @@ -227,7 +226,7 @@ msgstr "嘗試次數" msgid "Auth" msgstr "身份驗證" -#: src/components/TwoFA/Authorization.vue:121 +#: src/components/TwoFA/Authorization.vue:109 msgid "Authenticate with a passkey" msgstr "使用通行密鑰認證" @@ -522,7 +521,6 @@ msgid "Copy" msgstr "複製" #: src/views/preference/components/RecoveryCodes.vue:121 -#, fuzzy msgid "Copy Codes" msgstr "恢復碼" @@ -615,6 +613,11 @@ msgstr "資料庫 (可選,預設: database)" msgid "Days" msgstr "天" +#: src/constants/errors/middleware.ts:3 +#, fuzzy +msgid "Decryption failed" +msgstr "描述" + #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/site/ngx_conf/NgxServer.vue:110 @@ -691,9 +694,8 @@ msgid "Directive" msgstr "指令" #: src/constants/errors/nginx_log.ts:6 -#, fuzzy msgid "Directive params is empty" -msgstr "檔名空白" +msgstr "" #: src/constants/errors/nginx_log.ts:5 msgid "Directive.Params neither access_log nor error_log" @@ -1049,9 +1051,8 @@ msgid "Failed to get certificate information" msgstr "取得憑證資訊失敗" #: src/constants/errors/self_check.ts:4 -#, fuzzy msgid "Failed to parse nginx.conf" -msgstr "讀取 nginx.conf 失敗" +msgstr "" #: src/constants/errors/self_check.ts:3 msgid "Failed to read nginx.conf" @@ -1228,7 +1229,7 @@ msgstr "正在初始化核心升級程式" msgid "Input the code from the app:" msgstr "請輸入應用程式中的代碼:" -#: src/components/TwoFA/Authorization.vue:82 +#: src/components/TwoFA/Authorization.vue:72 msgid "Input the recovery code:" msgstr "輸入恢復碼:" @@ -1271,6 +1272,11 @@ msgstr "無效的密碼或恢復碼" msgid "Invalid recovery code" msgstr "無效的多重因素驗證或恢復碼" +#: src/constants/errors/middleware.ts:2 +#, fuzzy +msgid "Invalid request format" +msgstr "無效的多重因素驗證或恢復碼" + #: src/views/preference/AuthSettings.vue:18 msgid "IP" msgstr "IP" @@ -1319,7 +1325,7 @@ msgstr "上次檢查時間" msgid "Leave blank for no change" msgstr "留空表示不修改" -#: src/views/preference/OpenAISettings.vue:53 +#: src/views/preference/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "預設留空:https://api.openai.com/" @@ -1384,7 +1390,7 @@ msgstr "Locations" msgid "Log" msgstr "日誌" -#: src/routes/index.ts:318 src/views/other/Login.vue:222 +#: src/routes/index.ts:318 src/views/other/Login.vue:223 msgid "Login" msgstr "登入" @@ -1459,7 +1465,7 @@ msgstr "記憶體與儲存" msgid "Minutes" msgstr "分鐘" -#: src/views/preference/OpenAISettings.vue:32 +#: src/views/preference/OpenAISettings.vue:20 msgid "Model" msgstr "模型" @@ -1598,9 +1604,8 @@ msgid "Nginx Log" msgstr "Nginx 日誌" #: src/views/preference/NginxSettings.vue:18 -#, fuzzy msgid "Nginx Log Directory Whitelist" -msgstr "Nginx 設定解析錯誤" +msgstr "" #: src/views/preference/NginxSettings.vue:27 #, fuzzy @@ -1608,9 +1613,8 @@ msgid "Nginx PID Path" msgstr "Nginx 錯誤日誌路徑" #: src/views/preference/NginxSettings.vue:30 -#, fuzzy msgid "Nginx Reload Command" -msgstr "終端機啟動指令" +msgstr "" #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" @@ -1745,7 +1749,7 @@ msgstr "線上" msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231 +#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232 msgid "Or" msgstr "或" @@ -1819,9 +1823,8 @@ msgid "Path" msgstr "路徑" #: src/constants/errors/cert.ts:7 src/constants/errors/config.ts:2 -#, fuzzy msgid "Path: {0} is not under the nginx conf dir: {1}" -msgstr "簽章路徑不在 Nginx 設定檔資料夾下" +msgstr "" #: src/constants/errors/cert.ts:6 msgid "Payload resource is nil" @@ -1840,9 +1843,8 @@ msgid "Performing core upgrade" msgstr "正在執行核心升級" #: src/constants/errors/crypto.ts:2 -#, fuzzy msgid "Plain text is empty" -msgstr "檔名空白" +msgstr "" #: src/views/preference/components/AddPasskey.vue:69 msgid "" @@ -1850,7 +1852,7 @@ msgid "" "button below." msgstr "" -#: src/components/TwoFA/Authorization.vue:70 +#: src/components/TwoFA/Authorization.vue:85 #, fuzzy msgid "Please enter the OTP code:" msgstr "請輸入多重因素驗證碼:" @@ -1995,7 +1997,7 @@ msgstr "恢復" msgid "Recovered Successfully" msgstr "恢復成功" -#: src/components/TwoFA/Authorization.vue:89 +#: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "恢復" @@ -2172,6 +2174,10 @@ msgstr "更新憑證成功" msgid "Renew successfully" msgstr "更新成功" +#: src/constants/errors/crypto.ts:4 +msgid "Request timeout" +msgstr "" + #: src/language/constants.ts:32 msgid "Requested with wrong parameters" msgstr "請求參數錯誤" @@ -2351,19 +2357,17 @@ msgstr "" msgid "Show" msgstr "顯示" -#: src/views/other/Login.vue:240 -#, fuzzy +#: src/views/other/Login.vue:241 msgid "Sign in with a passkey" -msgstr "使用通行密鑰認證" +msgstr "" #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:65 msgid "Single Directive" msgstr "單一指令" #: src/routes/index.ts:71 src/views/site/site_category/SiteCategory.vue:10 -#, fuzzy msgid "Site Categories" -msgstr "類別" +msgstr "" #: src/constants/errors/site.ts:4 #, fuzzy @@ -2389,14 +2393,12 @@ msgid "Sites List" msgstr "網站列表" #: src/constants/errors/self_check.ts:10 -#, fuzzy msgid "Sites-available directory not exist" -msgstr "目錄" +msgstr "" #: src/constants/errors/self_check.ts:11 -#, fuzzy msgid "Sites-enabled directory not exist" -msgstr "目錄" +msgstr "" #: src/views/certificate/CertificateEditor.vue:211 msgid "SSL Certificate Content" @@ -2446,9 +2448,8 @@ msgid "Streams Directory" msgstr "目錄" #: src/constants/errors/self_check.ts:12 -#, fuzzy msgid "Streams-available directory not exist" -msgstr "目錄" +msgstr "" #: src/constants/errors/self_check.ts:13 #, fuzzy @@ -2604,7 +2605,7 @@ msgid "" "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" -#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:23 #, fuzzy msgid "" "The model name should only contain letters, unicode, numbers, hyphens, " @@ -2653,8 +2654,8 @@ msgstr "當前配置中的 server_name 必須是您需要獲取憑證的網域 msgid "The url is invalid" msgstr "網址無效" -#: src/views/preference/OpenAISettings.vue:47 -#: src/views/preference/OpenAISettings.vue:60 +#: src/views/preference/OpenAISettings.vue:35 +#: src/views/preference/OpenAISettings.vue:49 msgid "The url is invalid." msgstr "網址無效。" @@ -2751,14 +2752,14 @@ msgstr "" "為了確保憑證自動續期能夠正常運作,我們需要新增一個 Location 來代理從授權後端" "的請求,我們需要儲存這個檔案並重新載入 Nginx。你確定你要繼續嗎?" -#: src/views/preference/OpenAISettings.vue:48 +#: src/views/preference/OpenAISettings.vue:36 msgid "" "To use a local large model, deploy it with ollama, vllm or lmdeploy. They " "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your " "local API." msgstr "" -#: src/views/preference/OpenAISettings.vue:72 +#: src/views/preference/OpenAISettings.vue:61 msgid "Token is not valid" msgstr "令牌無效" @@ -2840,11 +2841,11 @@ msgstr "運作時間:" msgid "URL" msgstr "URL" -#: src/components/TwoFA/Authorization.vue:102 +#: src/components/TwoFA/Authorization.vue:121 msgid "Use OTP" msgstr "使用一次性密碼" -#: src/components/TwoFA/Authorization.vue:98 +#: src/components/TwoFA/Authorization.vue:117 msgid "Use recovery code" msgstr "使用恢復碼" @@ -2994,8 +2995,9 @@ msgid "" msgstr "" #: src/views/preference/components/RecoveryCodes.vue:94 +#, fuzzy msgid "You have not generated recovery codes yet." -msgstr "" +msgstr "您確定要恢復此項目嗎?" #: src/views/preference/components/RecoveryCodes.vue:91 msgid "" @@ -3009,9 +3011,8 @@ msgid "Your old codes won't work anymore." msgstr "" #: src/views/preference/components/Passkey.vue:75 -#, fuzzy msgid "Your passkeys" -msgstr "新增通行密鑰" +msgstr "" #~ msgid "" #~ "If you lose your mobile phone, you can use the recovery code to reset " @@ -3164,6 +3165,9 @@ msgstr "新增通行密鑰" #~ msgid "404 Not Found" #~ msgstr "404 未找到頁面" +#~ msgid "Are you sure you want to restore?" +#~ msgstr "您確定要恢復?" + #~ msgid "Destroy" #~ msgstr "刪除" diff --git a/app/src/lib/http/index.ts b/app/src/lib/http/index.ts index bbbf5a46..e745b903 100644 --- a/app/src/lib/http/index.ts +++ b/app/src/lib/http/index.ts @@ -5,6 +5,7 @@ import { useSettingsStore, useUserStore } from '@/pinia' import router from '@/routes' import { message } from 'ant-design-vue' import axios from 'axios' +import JSEncrypt from 'jsencrypt' import { storeToRefs } from 'pinia' import 'nprogress/nprogress.css' @@ -33,16 +34,35 @@ const instance = axios.create({ baseURL: import.meta.env.VITE_API_ROOT, timeout: 50000, headers: { 'Content-Type': 'application/json' }, - transformRequest: [function (data, headers) { - if (!(headers) || headers['Content-Type'] === 'multipart/form-data;charset=UTF-8') - return data - else - headers['Content-Type'] = 'application/json' - - return JSON.stringify(data) - }], }) +const http = { + get(url: string, config: AxiosRequestConfig = {}) { + // eslint-disable-next-line ts/no-explicit-any + return instance.get(url, config) + }, + // eslint-disable-next-line ts/no-explicit-any + post(url: string, data: any = undefined, config: AxiosRequestConfig = {}) { + // eslint-disable-next-line ts/no-explicit-any + return instance.post(url, data, config) + }, + // eslint-disable-next-line ts/no-explicit-any + put(url: string, data: any = undefined, config: AxiosRequestConfig = {}) { + // eslint-disable-next-line ts/no-explicit-any + return instance.put(url, data, config) + }, + delete(url: string, config: AxiosRequestConfig = {}) { + // eslint-disable-next-line ts/no-explicit-any + return instance.delete(url, config) + }, + patch(url: string, config: AxiosRequestConfig = {}) { + // eslint-disable-next-line ts/no-explicit-any + return instance.patch(url, config) + }, +} + +export default http + const nprogress = useNProgress() // Add new dedupe utility at the top @@ -65,23 +85,36 @@ function useMessageDedupe(interval = 5000): MessageDedupe { } instance.interceptors.request.use( - config => { + async config => { nprogress.start() if (token.value) { - // eslint-disable-next-line ts/no-explicit-any - (config.headers as any).Authorization = token.value + config.headers.Authorization = token.value } if (settings.environment.id) { - // eslint-disable-next-line ts/no-explicit-any - (config.headers as any)['X-Node-ID'] = settings.environment.id + config.headers['X-Node-ID'] = settings.environment.id } if (secureSessionId.value) { - // eslint-disable-next-line ts/no-explicit-any - (config.headers as any)['X-Secure-Session-ID'] = secureSessionId.value + config.headers['X-Secure-Session-ID'] = secureSessionId.value } + if (config.headers?.['Content-Type'] !== 'multipart/form-data;charset=UTF-8') { + config.headers['Content-Type'] = 'application/json' + + if (config.crypto) { + const cryptoParams = await http.get('/crypto/public_key') + const { public_key } = await cryptoParams + + // Encrypt data with RSA public key + const encrypt = new JSEncrypt() + encrypt.setPublicKey(public_key) + + config.data = JSON.stringify({ + encrypted_params: encrypt.encrypt(JSON.stringify(config.data)), + }) + } + } return config }, err => { @@ -154,30 +187,3 @@ instance.interceptors.response.use( return Promise.reject(error.response.data) }, ) - -const http = { - get(url: string, config: AxiosRequestConfig = {}) { - // eslint-disable-next-line ts/no-explicit-any - return instance.get(url, config) - }, - // eslint-disable-next-line ts/no-explicit-any - post(url: string, data: any = undefined, config: AxiosRequestConfig = {}) { - // eslint-disable-next-line ts/no-explicit-any - return instance.post(url, data, config) - }, - // eslint-disable-next-line ts/no-explicit-any - put(url: string, data: any = undefined, config: AxiosRequestConfig = {}) { - // eslint-disable-next-line ts/no-explicit-any - return instance.put(url, data, config) - }, - delete(url: string, config: AxiosRequestConfig = {}) { - // eslint-disable-next-line ts/no-explicit-any - return instance.delete(url, config) - }, - patch(url: string, config: AxiosRequestConfig = {}) { - // eslint-disable-next-line ts/no-explicit-any - return instance.patch(url, config) - }, -} - -export default http diff --git a/app/src/version.json b/app/src/version.json index b30487a6..5aae41e6 100644 --- a/app/src/version.json +++ b/app/src/version.json @@ -1 +1 @@ -{"version":"2.0.0-rc.1","build_id":7,"total_build":381} \ No newline at end of file +{"version":"2.0.0-rc.1","build_id":8,"total_build":382} \ No newline at end of file diff --git a/app/src/views/preference/OpenAISettings.vue b/app/src/views/preference/OpenAISettings.vue index 4ec1b73a..6ce6af5d 100644 --- a/app/src/views/preference/OpenAISettings.vue +++ b/app/src/views/preference/OpenAISettings.vue @@ -1,29 +1,17 @@