mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 02:15:48 +02:00
feat: instruction for adding passkey
This commit is contained in:
parent
aa30b0b4af
commit
018a3f15fd
28 changed files with 1851 additions and 763 deletions
3
app/components.d.ts
vendored
3
app/components.d.ts
vendored
|
@ -7,9 +7,6 @@ export {}
|
|||
/* prettier-ignore */
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
2FA2FAAuthorization: typeof import('./src/components/2FA/2FAAuthorization.vue')['default']
|
||||
2FAAuthorization: typeof import('./src/components/2FA/Authorization.vue')['default']
|
||||
2FAOTPAuthorization: typeof import('./src/components/2FA/OTPAuthorization.vue')['default']
|
||||
AAlert: typeof import('ant-design-vue/es')['Alert']
|
||||
AAutoComplete: typeof import('ant-design-vue/es')['AutoComplete']
|
||||
AAvatar: typeof import('ant-design-vue/es')['Avatar']
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
"less": "^4.2.0",
|
||||
"postcss": "^8.4.47",
|
||||
"tailwindcss": "^3.4.11",
|
||||
"typescript": "5.5.4",
|
||||
"typescript": "5.3.3",
|
||||
"unplugin-auto-import": "^0.18.3",
|
||||
"unplugin-vue-components": "^0.27.4",
|
||||
"unplugin-vue-define-options": "^1.5.1",
|
||||
|
|
335
app/pnpm-lock.yaml
generated
335
app/pnpm-lock.yaml
generated
|
@ -13,7 +13,7 @@ importers:
|
|||
version: 3.1.1
|
||||
'@ant-design/icons-vue':
|
||||
specifier: ^7.0.1
|
||||
version: 7.0.1(vue@3.5.5(typescript@5.5.4))
|
||||
version: 7.0.1(vue@3.5.5(typescript@5.3.3))
|
||||
'@formkit/auto-animate':
|
||||
specifier: ^0.8.2
|
||||
version: 0.8.2
|
||||
|
@ -28,13 +28,13 @@ importers:
|
|||
version: 3.5.5
|
||||
'@vueuse/components':
|
||||
specifier: ^11.0.3
|
||||
version: 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
version: 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
'@vueuse/core':
|
||||
specifier: ^11.0.3
|
||||
version: 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
version: 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
'@vueuse/integrations':
|
||||
specifier: ^11.0.3
|
||||
version: 11.0.3(async-validator@4.2.5)(axios@1.7.7)(nprogress@0.2.0)(sortablejs@1.15.3)(universal-cookie@7.2.0)(vue@3.5.5(typescript@5.5.4))
|
||||
version: 11.0.3(async-validator@4.2.5)(axios@1.7.7)(nprogress@0.2.0)(sortablejs@1.15.3)(universal-cookie@7.2.0)(vue@3.5.5(typescript@5.3.3))
|
||||
'@xterm/addon-attach':
|
||||
specifier: ^0.11.0
|
||||
version: 0.11.0(@xterm/xterm@5.5.0)
|
||||
|
@ -46,7 +46,7 @@ importers:
|
|||
version: 5.5.0
|
||||
ant-design-vue:
|
||||
specifier: ^4.2.4
|
||||
version: 4.2.4(vue@3.5.5(typescript@5.5.4))
|
||||
version: 4.2.4(vue@3.5.5(typescript@5.3.3))
|
||||
apexcharts:
|
||||
specifier: ^3.53.0
|
||||
version: 3.53.0
|
||||
|
@ -70,10 +70,10 @@ importers:
|
|||
version: 0.2.0
|
||||
pinia:
|
||||
specifier: ^2.2.2
|
||||
version: 2.2.2(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4))
|
||||
version: 2.2.2(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3))
|
||||
pinia-plugin-persistedstate:
|
||||
specifier: ^3.2.3
|
||||
version: 3.2.3(pinia@2.2.2(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4)))
|
||||
version: 3.2.3(pinia@2.2.2(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3)))
|
||||
reconnecting-websocket:
|
||||
specifier: ^4.4.0
|
||||
version: 4.4.0
|
||||
|
@ -88,29 +88,29 @@ importers:
|
|||
version: 0.3.6
|
||||
vue:
|
||||
specifier: ^3.5.5
|
||||
version: 3.5.5(typescript@5.5.4)
|
||||
version: 3.5.5(typescript@5.3.3)
|
||||
vue-router:
|
||||
specifier: ^4.4.5
|
||||
version: 4.4.5(vue@3.5.5(typescript@5.5.4))
|
||||
version: 4.4.5(vue@3.5.5(typescript@5.3.3))
|
||||
vue3-ace-editor:
|
||||
specifier: 2.2.4
|
||||
version: 2.2.4(ace-builds@1.36.2)(vue@3.5.5(typescript@5.5.4))
|
||||
version: 2.2.4(ace-builds@1.36.2)(vue@3.5.5(typescript@5.3.3))
|
||||
vue3-apexcharts:
|
||||
specifier: 1.5.3
|
||||
version: 1.5.3(apexcharts@3.53.0)(vue@3.5.5(typescript@5.5.4))
|
||||
version: 1.5.3(apexcharts@3.53.0)(vue@3.5.5(typescript@5.3.3))
|
||||
vue3-gettext:
|
||||
specifier: 3.0.0-beta.6
|
||||
version: 3.0.0-beta.6(@vue/compiler-sfc@3.5.5)(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4))
|
||||
version: 3.0.0-beta.6(@vue/compiler-sfc@3.5.5)(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3))
|
||||
vue3-otp-input:
|
||||
specifier: ^0.5.21
|
||||
version: 0.5.21(vue@3.5.5(typescript@5.5.4))
|
||||
version: 0.5.21(vue@3.5.5(typescript@5.3.3))
|
||||
vuedraggable:
|
||||
specifier: ^4.1.0
|
||||
version: 4.1.0(vue@3.5.5(typescript@5.5.4))
|
||||
version: 4.1.0(vue@3.5.5(typescript@5.3.3))
|
||||
devDependencies:
|
||||
'@antfu/eslint-config-vue':
|
||||
specifier: ^0.43.1
|
||||
version: 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)
|
||||
version: 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@simplewebauthn/types':
|
||||
specifier: ^10.0.0
|
||||
version: 10.0.0
|
||||
|
@ -125,16 +125,16 @@ importers:
|
|||
version: 1.15.8
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^6.21.0
|
||||
version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^6.21.0
|
||||
version: 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
version: 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: ^5.1.3
|
||||
version: 5.1.3(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.5.4))
|
||||
version: 5.1.3(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.3.3))
|
||||
'@vitejs/plugin-vue-jsx':
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.5.4))
|
||||
version: 4.0.1(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.3.3))
|
||||
'@vue/compiler-sfc':
|
||||
specifier: ^3.5.5
|
||||
version: 3.5.5
|
||||
|
@ -152,13 +152,13 @@ importers:
|
|||
version: 8.57.0
|
||||
eslint-import-resolver-alias:
|
||||
specifier: ^1.1.2
|
||||
version: 1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0))
|
||||
version: 1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0))
|
||||
eslint-import-resolver-typescript:
|
||||
specifier: ^3.6.3
|
||||
version: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||
version: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||
eslint-plugin-import:
|
||||
specifier: ^2.30.0
|
||||
version: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
version: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-regex:
|
||||
specifier: ^1.10.0
|
||||
version: 1.10.0(eslint@8.57.0)
|
||||
|
@ -178,26 +178,26 @@ importers:
|
|||
specifier: ^3.4.11
|
||||
version: 3.4.11
|
||||
typescript:
|
||||
specifier: 5.5.4
|
||||
version: 5.5.4
|
||||
specifier: 5.3.3
|
||||
version: 5.3.3
|
||||
unplugin-auto-import:
|
||||
specifier: ^0.18.3
|
||||
version: 0.18.3(@vueuse/core@11.0.3(vue@3.5.5(typescript@5.5.4)))(rollup@4.21.3)(webpack-sources@3.2.3)
|
||||
version: 0.18.3(@vueuse/core@11.0.3(vue@3.5.5(typescript@5.3.3)))(rollup@4.21.3)(webpack-sources@3.2.3)
|
||||
unplugin-vue-components:
|
||||
specifier: ^0.27.4
|
||||
version: 0.27.4(@babel/parser@7.25.6)(rollup@4.21.3)(vue@3.5.5(typescript@5.5.4))(webpack-sources@3.2.3)
|
||||
version: 0.27.4(@babel/parser@7.25.6)(rollup@4.21.3)(vue@3.5.5(typescript@5.3.3))(webpack-sources@3.2.3)
|
||||
unplugin-vue-define-options:
|
||||
specifier: ^1.5.1
|
||||
version: 1.5.1(rollup@4.21.3)(vue@3.5.5(typescript@5.5.4))(webpack-sources@3.2.3)
|
||||
version: 1.5.1(rollup@4.21.3)(vue@3.5.5(typescript@5.3.3))(webpack-sources@3.2.3)
|
||||
vite:
|
||||
specifier: ^5.4.5
|
||||
version: 5.4.5(@types/node@22.5.5)(less@4.2.0)
|
||||
vite-svg-loader:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0(vue@3.5.5(typescript@5.5.4))
|
||||
version: 5.1.0(vue@3.5.5(typescript@5.3.3))
|
||||
vue-tsc:
|
||||
specifier: ^2.1.6
|
||||
version: 2.1.6(typescript@5.5.4)
|
||||
version: 2.1.6(typescript@5.3.3)
|
||||
|
||||
packages:
|
||||
|
||||
|
@ -2920,6 +2920,11 @@ packages:
|
|||
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
typescript@5.3.3:
|
||||
resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
typescript@5.5.4:
|
||||
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
|
||||
engines: {node: '>=14.17'}
|
||||
|
@ -3190,20 +3195,20 @@ snapshots:
|
|||
|
||||
'@ant-design/icons-svg@4.4.2': {}
|
||||
|
||||
'@ant-design/icons-vue@7.0.1(vue@3.5.5(typescript@5.5.4))':
|
||||
'@ant-design/icons-vue@7.0.1(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@ant-design/colors': 6.0.0
|
||||
'@ant-design/icons-svg': 4.4.2
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
'@antfu/eslint-config-basic@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@antfu/eslint-config-basic@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@stylistic/eslint-plugin-js': 0.0.4
|
||||
eslint: 8.57.0
|
||||
eslint-plugin-antfu: 0.43.1(eslint@8.57.0)(typescript@5.5.4)
|
||||
eslint-plugin-antfu: 0.43.1(eslint@8.57.0)(typescript@5.3.3)
|
||||
eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0)
|
||||
eslint-plugin-html: 7.1.0
|
||||
eslint-plugin-import: eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-import: eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-jsdoc: 46.10.1(eslint@8.57.0)
|
||||
eslint-plugin-jsonc: 2.16.0(eslint@8.57.0)
|
||||
eslint-plugin-markdown: 3.0.1(eslint@8.57.0)
|
||||
|
@ -3211,7 +3216,7 @@ snapshots:
|
|||
eslint-plugin-no-only-tests: 3.3.0
|
||||
eslint-plugin-promise: 6.6.0(eslint@8.57.0)
|
||||
eslint-plugin-unicorn: 48.0.1(eslint@8.57.0)
|
||||
eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)
|
||||
eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)
|
||||
eslint-plugin-yml: 1.14.0(eslint@8.57.0)
|
||||
jsonc-eslint-parser: 2.4.0
|
||||
yaml-eslint-parser: 1.2.3
|
||||
|
@ -3223,25 +3228,25 @@ snapshots:
|
|||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@antfu/eslint-config-ts@0.43.1(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@antfu/eslint-config-ts@0.43.1(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@stylistic/eslint-plugin-ts': 0.0.4(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@stylistic/eslint-plugin-ts': 0.0.4(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
typescript: 5.5.4
|
||||
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- jest
|
||||
- supports-color
|
||||
|
||||
'@antfu/eslint-config-vue@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@antfu/eslint-config-vue@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@antfu/eslint-config-ts': 0.43.1(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@antfu/eslint-config-ts': 0.43.1(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
eslint-plugin-vue: 9.28.0(eslint@8.57.0)
|
||||
local-pkg: 0.4.3
|
||||
|
@ -3678,15 +3683,15 @@ snapshots:
|
|||
esutils: 2.0.3
|
||||
graphemer: 1.4.0
|
||||
|
||||
'@stylistic/eslint-plugin-ts@0.0.4(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@stylistic/eslint-plugin-ts@0.0.4(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@stylistic/eslint-plugin-js': 0.0.4
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
graphemer: 1.4.0
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -3735,13 +3740,13 @@ snapshots:
|
|||
|
||||
'@types/web-bluetooth@0.0.20': {}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.11.1
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
debug: 4.3.7
|
||||
eslint: 8.57.0
|
||||
|
@ -3749,22 +3754,22 @@ snapshots:
|
|||
ignore: 5.3.2
|
||||
natural-compare: 1.4.0
|
||||
semver: 7.6.3
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
ts-api-utils: 1.3.0(typescript@5.3.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/types': 6.21.0
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
|
||||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
debug: 4.3.7
|
||||
eslint: 8.57.0
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -3778,15 +3783,15 @@ snapshots:
|
|||
'@typescript-eslint/types': 6.21.0
|
||||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
|
||||
'@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
debug: 4.3.7
|
||||
eslint: 8.57.0
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
ts-api-utils: 1.3.0(typescript@5.3.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -3794,7 +3799,7 @@ snapshots:
|
|||
|
||||
'@typescript-eslint/types@6.21.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4)':
|
||||
'@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
'@typescript-eslint/visitor-keys': 5.62.0
|
||||
|
@ -3802,13 +3807,13 @@ snapshots:
|
|||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
semver: 7.6.3
|
||||
tsutils: 3.21.0(typescript@5.5.4)
|
||||
tsutils: 3.21.0(typescript@5.3.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4)':
|
||||
'@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 6.21.0
|
||||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
|
@ -3817,20 +3822,20 @@ snapshots:
|
|||
is-glob: 4.0.3
|
||||
minimatch: 9.0.3
|
||||
semver: 7.6.3
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
ts-api-utils: 1.3.0(typescript@5.3.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@types/json-schema': 7.0.15
|
||||
'@types/semver': 7.5.8
|
||||
'@typescript-eslint/scope-manager': 5.62.0
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4)
|
||||
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
eslint-scope: 5.1.1
|
||||
semver: 7.6.3
|
||||
|
@ -3838,14 +3843,14 @@ snapshots:
|
|||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@types/json-schema': 7.0.15
|
||||
'@types/semver': 7.5.8
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/types': 6.21.0
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
semver: 7.6.3
|
||||
transitivePeerDependencies:
|
||||
|
@ -3864,20 +3869,20 @@ snapshots:
|
|||
|
||||
'@ungap/structured-clone@1.2.0': {}
|
||||
|
||||
'@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@babel/core': 7.25.2
|
||||
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
|
||||
'@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.2)
|
||||
vite: 5.4.5(@types/node@22.5.5)(less@4.2.0)
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@vitejs/plugin-vue@5.1.3(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vitejs/plugin-vue@5.1.3(vite@5.4.5(@types/node@22.5.5)(less@4.2.0))(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
vite: 5.4.5(@types/node@22.5.5)(less@4.2.0)
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
'@volar/language-core@2.4.5':
|
||||
dependencies:
|
||||
|
@ -3891,7 +3896,7 @@ snapshots:
|
|||
path-browserify: 1.0.1
|
||||
vscode-uri: 3.0.8
|
||||
|
||||
'@vue-macros/common@1.14.0(rollup@4.21.3)(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vue-macros/common@1.14.0(rollup@4.21.3)(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@babel/types': 7.25.6
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.21.3)
|
||||
|
@ -3900,7 +3905,7 @@ snapshots:
|
|||
local-pkg: 0.5.0
|
||||
magic-string-ast: 0.6.2
|
||||
optionalDependencies:
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
|
@ -3971,7 +3976,7 @@ snapshots:
|
|||
|
||||
'@vue/devtools-api@6.6.4': {}
|
||||
|
||||
'@vue/language-core@2.1.6(typescript@5.5.4)':
|
||||
'@vue/language-core@2.1.6(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@volar/language-core': 2.4.5
|
||||
'@vue/compiler-dom': 3.5.5
|
||||
|
@ -3982,7 +3987,7 @@ snapshots:
|
|||
muggle-string: 0.4.1
|
||||
path-browserify: 1.0.1
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
'@vue/reactivity@3.5.5':
|
||||
dependencies:
|
||||
|
@ -4000,40 +4005,40 @@ snapshots:
|
|||
'@vue/shared': 3.5.5
|
||||
csstype: 3.1.3
|
||||
|
||||
'@vue/server-renderer@3.5.5(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vue/server-renderer@3.5.5(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@vue/compiler-ssr': 3.5.5
|
||||
'@vue/shared': 3.5.5
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
'@vue/shared@3.5.5': {}
|
||||
|
||||
'@vue/tsconfig@0.5.1': {}
|
||||
|
||||
'@vueuse/components@11.0.3(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vueuse/components@11.0.3(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@vueuse/core': 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
'@vueuse/shared': 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.5.4))
|
||||
'@vueuse/core': 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
'@vueuse/shared': 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.3.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
||||
'@vueuse/core@11.0.3(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vueuse/core@11.0.3(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@types/web-bluetooth': 0.0.20
|
||||
'@vueuse/metadata': 11.0.3
|
||||
'@vueuse/shared': 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.5.4))
|
||||
'@vueuse/shared': 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.3.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
||||
'@vueuse/integrations@11.0.3(async-validator@4.2.5)(axios@1.7.7)(nprogress@0.2.0)(sortablejs@1.15.3)(universal-cookie@7.2.0)(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vueuse/integrations@11.0.3(async-validator@4.2.5)(axios@1.7.7)(nprogress@0.2.0)(sortablejs@1.15.3)(universal-cookie@7.2.0)(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@vueuse/core': 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
'@vueuse/shared': 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.5.4))
|
||||
'@vueuse/core': 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
'@vueuse/shared': 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.3.3))
|
||||
optionalDependencies:
|
||||
async-validator: 4.2.5
|
||||
axios: 1.7.7
|
||||
|
@ -4046,9 +4051,9 @@ snapshots:
|
|||
|
||||
'@vueuse/metadata@11.0.3': {}
|
||||
|
||||
'@vueuse/shared@11.0.3(vue@3.5.5(typescript@5.5.4))':
|
||||
'@vueuse/shared@11.0.3(vue@3.5.5(typescript@5.3.3))':
|
||||
dependencies:
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.5.4))
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.3.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
@ -4094,10 +4099,10 @@ snapshots:
|
|||
|
||||
ansi-styles@6.2.1: {}
|
||||
|
||||
ant-design-vue@4.2.4(vue@3.5.5(typescript@5.5.4)):
|
||||
ant-design-vue@4.2.4(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
'@ant-design/colors': 6.0.0
|
||||
'@ant-design/icons-vue': 7.0.1(vue@3.5.5(typescript@5.5.4))
|
||||
'@ant-design/icons-vue': 7.0.1(vue@3.5.5(typescript@5.3.3))
|
||||
'@babel/runtime': 7.25.6
|
||||
'@ctrl/tinycolor': 3.6.1
|
||||
'@emotion/hash': 0.9.2
|
||||
|
@ -4116,8 +4121,8 @@ snapshots:
|
|||
shallow-equal: 1.2.1
|
||||
stylis: 4.3.4
|
||||
throttle-debounce: 5.0.2
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue-types: 3.0.2(vue@3.5.5(typescript@5.5.4))
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
vue-types: 3.0.2(vue@3.5.5(typescript@5.3.3))
|
||||
warning: 4.0.3
|
||||
|
||||
any-promise@1.3.0: {}
|
||||
|
@ -4365,14 +4370,14 @@ snapshots:
|
|||
|
||||
core-js@3.38.1: {}
|
||||
|
||||
cosmiconfig@9.0.0(typescript@5.5.4):
|
||||
cosmiconfig@9.0.0(typescript@5.3.3):
|
||||
dependencies:
|
||||
env-paths: 2.2.1
|
||||
import-fresh: 3.3.0
|
||||
js-yaml: 4.1.0
|
||||
parse-json: 5.2.0
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
crc-32@1.2.2: {}
|
||||
|
||||
|
@ -4642,9 +4647,9 @@ snapshots:
|
|||
eslint: 8.57.0
|
||||
semver: 7.6.3
|
||||
|
||||
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)):
|
||||
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)):
|
||||
dependencies:
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
dependencies:
|
||||
|
@ -4654,39 +4659,39 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0):
|
||||
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.3.7
|
||||
enhanced-resolve: 5.17.1
|
||||
eslint: 8.57.0
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
fast-glob: 3.3.2
|
||||
get-tsconfig: 4.8.1
|
||||
is-bun-module: 1.2.1
|
||||
is-glob: 4.0.3
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
transitivePeerDependencies:
|
||||
- '@typescript-eslint/parser'
|
||||
- eslint-import-resolver-node
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-module-utils@2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-antfu@0.43.1(eslint@8.57.0)(typescript@5.5.4):
|
||||
eslint-plugin-antfu@0.43.1(eslint@8.57.0)(typescript@5.3.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- eslint
|
||||
- supports-color
|
||||
|
@ -4709,13 +4714,13 @@ snapshots:
|
|||
dependencies:
|
||||
htmlparser2: 8.0.2
|
||||
|
||||
eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.57.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
get-tsconfig: 4.8.1
|
||||
is-glob: 4.0.3
|
||||
minimatch: 3.1.2
|
||||
|
@ -4727,7 +4732,7 @@ snapshots:
|
|||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
|
||||
eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.8
|
||||
|
@ -4738,7 +4743,7 @@ snapshots:
|
|||
doctrine: 2.1.0
|
||||
eslint: 8.57.0
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.15.1
|
||||
is-glob: 4.0.3
|
||||
|
@ -4749,18 +4754,18 @@ snapshots:
|
|||
semver: 6.3.1
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4):
|
||||
eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
eslint: 8.57.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
@ -4846,12 +4851,12 @@ snapshots:
|
|||
semver: 7.6.3
|
||||
strip-indent: 3.0.0
|
||||
|
||||
eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0):
|
||||
eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0):
|
||||
dependencies:
|
||||
eslint: 8.57.0
|
||||
eslint-rule-composer: 0.3.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
|
||||
|
||||
eslint-plugin-vue@9.28.0(eslint@8.57.0):
|
||||
dependencies:
|
||||
|
@ -5072,7 +5077,7 @@ snapshots:
|
|||
glob: 7.2.3
|
||||
parse5: 6.0.1
|
||||
pofile: 1.0.11
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
github-buttons@2.29.0: {}
|
||||
|
||||
|
@ -5677,17 +5682,17 @@ snapshots:
|
|||
|
||||
pify@4.0.1: {}
|
||||
|
||||
pinia-plugin-persistedstate@3.2.3(pinia@2.2.2(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4))):
|
||||
pinia-plugin-persistedstate@3.2.3(pinia@2.2.2(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3))):
|
||||
dependencies:
|
||||
pinia: 2.2.2(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4))
|
||||
pinia: 2.2.2(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3))
|
||||
|
||||
pinia@2.2.2(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4)):
|
||||
pinia@2.2.2(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.4
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.5.4))
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
vue-demi: 0.14.10(vue@3.5.5(typescript@5.3.3))
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
pirates@4.0.6: {}
|
||||
|
||||
|
@ -6121,9 +6126,9 @@ snapshots:
|
|||
dependencies:
|
||||
is-number: 7.0.0
|
||||
|
||||
ts-api-utils@1.3.0(typescript@5.5.4):
|
||||
ts-api-utils@1.3.0(typescript@5.3.3):
|
||||
dependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
|
@ -6138,10 +6143,10 @@ snapshots:
|
|||
|
||||
tslib@2.7.0: {}
|
||||
|
||||
tsutils@3.21.0(typescript@5.5.4):
|
||||
tsutils@3.21.0(typescript@5.3.3):
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
type-check@0.4.0:
|
||||
dependencies:
|
||||
|
@ -6185,6 +6190,8 @@ snapshots:
|
|||
is-typed-array: 1.1.13
|
||||
possible-typed-array-names: 1.0.0
|
||||
|
||||
typescript@5.3.3: {}
|
||||
|
||||
typescript@5.5.4: {}
|
||||
|
||||
typical@4.0.0: {}
|
||||
|
@ -6228,7 +6235,7 @@ snapshots:
|
|||
'@types/cookie': 0.6.0
|
||||
cookie: 0.6.0
|
||||
|
||||
unplugin-auto-import@0.18.3(@vueuse/core@11.0.3(vue@3.5.5(typescript@5.5.4)))(rollup@4.21.3)(webpack-sources@3.2.3):
|
||||
unplugin-auto-import@0.18.3(@vueuse/core@11.0.3(vue@3.5.5(typescript@5.3.3)))(rollup@4.21.3)(webpack-sources@3.2.3):
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.10
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.21.3)
|
||||
|
@ -6239,12 +6246,12 @@ snapshots:
|
|||
unimport: 3.12.0(rollup@4.21.3)(webpack-sources@3.2.3)
|
||||
unplugin: 1.14.1(webpack-sources@3.2.3)
|
||||
optionalDependencies:
|
||||
'@vueuse/core': 11.0.3(vue@3.5.5(typescript@5.5.4))
|
||||
'@vueuse/core': 11.0.3(vue@3.5.5(typescript@5.3.3))
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- webpack-sources
|
||||
|
||||
unplugin-vue-components@0.27.4(@babel/parser@7.25.6)(rollup@4.21.3)(vue@3.5.5(typescript@5.5.4))(webpack-sources@3.2.3):
|
||||
unplugin-vue-components@0.27.4(@babel/parser@7.25.6)(rollup@4.21.3)(vue@3.5.5(typescript@5.3.3))(webpack-sources@3.2.3):
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.10
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.21.3)
|
||||
|
@ -6256,7 +6263,7 @@ snapshots:
|
|||
minimatch: 9.0.5
|
||||
mlly: 1.7.1
|
||||
unplugin: 1.14.1(webpack-sources@3.2.3)
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
optionalDependencies:
|
||||
'@babel/parser': 7.25.6
|
||||
transitivePeerDependencies:
|
||||
|
@ -6264,9 +6271,9 @@ snapshots:
|
|||
- supports-color
|
||||
- webpack-sources
|
||||
|
||||
unplugin-vue-define-options@1.5.1(rollup@4.21.3)(vue@3.5.5(typescript@5.5.4))(webpack-sources@3.2.3):
|
||||
unplugin-vue-define-options@1.5.1(rollup@4.21.3)(vue@3.5.5(typescript@5.3.3))(webpack-sources@3.2.3):
|
||||
dependencies:
|
||||
'@vue-macros/common': 1.14.0(rollup@4.21.3)(vue@3.5.5(typescript@5.5.4))
|
||||
'@vue-macros/common': 1.14.0(rollup@4.21.3)(vue@3.5.5(typescript@5.3.3))
|
||||
ast-walker-scope: 0.6.2
|
||||
unplugin: 1.14.1(webpack-sources@3.2.3)
|
||||
transitivePeerDependencies:
|
||||
|
@ -6305,10 +6312,10 @@ snapshots:
|
|||
node-object-hash: 3.0.0
|
||||
typescript: 5.5.4
|
||||
|
||||
vite-svg-loader@5.1.0(vue@3.5.5(typescript@5.5.4)):
|
||||
vite-svg-loader@5.1.0(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
svgo: 3.3.2
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vite@5.4.5(@types/node@22.5.5)(less@4.2.0):
|
||||
dependencies:
|
||||
|
@ -6322,9 +6329,9 @@ snapshots:
|
|||
|
||||
vscode-uri@3.0.8: {}
|
||||
|
||||
vue-demi@0.14.10(vue@3.5.5(typescript@5.5.4)):
|
||||
vue-demi@0.14.10(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vue-eslint-parser@9.4.3(eslint@8.57.0):
|
||||
dependencies:
|
||||
|
@ -6339,67 +6346,67 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vue-router@4.4.5(vue@3.5.5(typescript@5.5.4)):
|
||||
vue-router@4.4.5(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.4
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vue-tsc@2.1.6(typescript@5.5.4):
|
||||
vue-tsc@2.1.6(typescript@5.3.3):
|
||||
dependencies:
|
||||
'@volar/typescript': 2.4.5
|
||||
'@vue/language-core': 2.1.6(typescript@5.5.4)
|
||||
'@vue/language-core': 2.1.6(typescript@5.3.3)
|
||||
semver: 7.6.3
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
vue-types@3.0.2(vue@3.5.5(typescript@5.5.4)):
|
||||
vue-types@3.0.2(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
is-plain-object: 3.0.1
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vue3-ace-editor@2.2.4(ace-builds@1.36.2)(vue@3.5.5(typescript@5.5.4)):
|
||||
vue3-ace-editor@2.2.4(ace-builds@1.36.2)(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
ace-builds: 1.36.2
|
||||
resize-observer-polyfill: 1.5.1
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vue3-apexcharts@1.5.3(apexcharts@3.53.0)(vue@3.5.5(typescript@5.5.4)):
|
||||
vue3-apexcharts@1.5.3(apexcharts@3.53.0)(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
apexcharts: 3.53.0
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vue3-gettext@3.0.0-beta.6(@vue/compiler-sfc@3.5.5)(typescript@5.5.4)(vue@3.5.5(typescript@5.5.4)):
|
||||
vue3-gettext@3.0.0-beta.6(@vue/compiler-sfc@3.5.5)(typescript@5.3.3)(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
'@vue/compiler-sfc': 3.5.5
|
||||
chalk: 4.1.2
|
||||
command-line-args: 5.2.1
|
||||
cosmiconfig: 9.0.0(typescript@5.5.4)
|
||||
cosmiconfig: 9.0.0(typescript@5.3.3)
|
||||
gettext-extractor: 3.8.0
|
||||
glob: 10.4.5
|
||||
parse5: 6.0.1
|
||||
parse5-htmlparser2-tree-adapter: 6.0.1
|
||||
pofile: 1.1.4
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
vue3-otp-input@0.5.21(vue@3.5.5(typescript@5.5.4)):
|
||||
vue3-otp-input@0.5.21(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
vue@3.5.5(typescript@5.5.4):
|
||||
vue@3.5.5(typescript@5.3.3):
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.5.5
|
||||
'@vue/compiler-sfc': 3.5.5
|
||||
'@vue/runtime-dom': 3.5.5
|
||||
'@vue/server-renderer': 3.5.5(vue@3.5.5(typescript@5.5.4))
|
||||
'@vue/server-renderer': 3.5.5(vue@3.5.5(typescript@5.3.3))
|
||||
'@vue/shared': 3.5.5
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.3.3
|
||||
|
||||
vuedraggable@4.1.0(vue@3.5.5(typescript@5.5.4)):
|
||||
vuedraggable@4.1.0(vue@3.5.5(typescript@5.3.3)):
|
||||
dependencies:
|
||||
sortablejs: 1.14.0
|
||||
vue: 3.5.5(typescript@5.5.4)
|
||||
vue: 3.5.5(typescript@5.3.3)
|
||||
|
||||
warning@4.0.3:
|
||||
dependencies:
|
||||
|
|
|
@ -40,7 +40,7 @@ ace.config.setModuleUrl('ace/ext/searchbox', extSearchboxUrl)
|
|||
/>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<style lang="less" scoped>
|
||||
:deep(.ace_placeholder) {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
|
|
|
@ -161,6 +161,7 @@ function view(id: number | string) {
|
|||
get(id).then(() => {
|
||||
visible.value = true
|
||||
modifyMode.value = false
|
||||
editMode.value = 'modify'
|
||||
}).catch(e => {
|
||||
message.error($gettext(e?.message ?? 'Server error'), 5)
|
||||
})
|
||||
|
|
|
@ -30,7 +30,7 @@ const pageSize = computed({
|
|||
class="pagination-container"
|
||||
>
|
||||
<APagination
|
||||
v-model:pageSize="pageSize"
|
||||
v-model:page-size="pageSize"
|
||||
:disabled="loading"
|
||||
:current="pagination.current_page"
|
||||
show-size-changer
|
||||
|
|
|
@ -13,7 +13,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -37,7 +37,7 @@ msgstr "Username"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
@ -52,6 +52,11 @@ msgstr "Action"
|
|||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
#, fuzzy
|
||||
|
@ -90,6 +95,10 @@ msgstr "Add Location"
|
|||
msgid "Advance Mode"
|
||||
msgstr "Advance Mode"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr ""
|
||||
|
@ -110,11 +119,16 @@ msgstr ""
|
|||
msgid "Arch"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "Are you sure you want to remove this directive?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "Are you sure you want to remove this directive?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
#, fuzzy
|
||||
|
@ -168,7 +182,7 @@ msgstr ""
|
|||
msgid "Assistant"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -176,6 +190,14 @@ msgstr ""
|
|||
msgid "Auth"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -209,15 +231,15 @@ msgstr "Back"
|
|||
msgid "Back to list"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr ""
|
||||
|
||||
|
@ -259,7 +281,7 @@ msgstr ""
|
|||
msgid "CADir"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -273,6 +295,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -435,6 +458,7 @@ msgid "Create Folder"
|
|||
msgstr "Create Another"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "Created at"
|
||||
|
@ -456,12 +480,12 @@ msgstr ""
|
|||
msgid "Credentials"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
|
@ -682,6 +706,12 @@ msgstr ""
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -757,12 +787,7 @@ msgstr ""
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA"
|
||||
msgstr "Enabled"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "Enabled successfully"
|
||||
|
@ -785,6 +810,11 @@ msgstr "Enabled successfully"
|
|||
msgid "Enable TLS"
|
||||
msgstr "Enable TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "Enable TLS"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -902,6 +932,12 @@ msgstr ""
|
|||
msgid "Finished"
|
||||
msgstr "Finished"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr ""
|
||||
|
@ -974,18 +1010,22 @@ msgstr ""
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -1001,7 +1041,7 @@ msgstr ""
|
|||
msgid "Import Certificate"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
msgid "Incorrect username or password"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1017,12 +1057,12 @@ msgstr ""
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1044,7 +1084,7 @@ msgstr ""
|
|||
msgid "Invalid"
|
||||
msgstr "Invalid E-mail!"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1058,11 +1098,11 @@ msgstr "Invalid E-mail!"
|
|||
msgid "Invalid folder name"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1098,6 +1138,11 @@ msgstr ""
|
|||
msgid "Last checked at"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "Created at"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "Leave blank for no change"
|
||||
|
@ -1163,11 +1208,11 @@ msgstr "Locations"
|
|||
msgid "Log"
|
||||
msgstr "Login"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "Login successful"
|
||||
|
||||
|
@ -1221,7 +1266,7 @@ msgstr "Manage Users"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "Certificate is valid"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1281,6 +1326,7 @@ msgstr "Single Directive"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1367,7 +1413,7 @@ msgstr "Saved successfully"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1469,6 +1515,10 @@ msgstr ""
|
|||
msgid "OpenAI"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr ""
|
||||
|
@ -1498,7 +1548,18 @@ msgstr ""
|
|||
msgid "Params"
|
||||
msgstr "Params"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
|
@ -1524,8 +1585,14 @@ msgstr ""
|
|||
msgid "Performing core upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1566,11 +1633,11 @@ msgstr ""
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "Please input your E-mail!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "Please input your password!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "Please input your username!"
|
||||
|
||||
|
@ -1634,16 +1701,16 @@ msgstr ""
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "Saved successfully"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1664,6 +1731,11 @@ msgstr ""
|
|||
msgid "Register failed"
|
||||
msgstr "Enable failed"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "Enabled successfully"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
#, fuzzy
|
||||
msgid "Register successfully"
|
||||
|
@ -1699,11 +1771,12 @@ msgstr ""
|
|||
msgid "Reloading nginx"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
#, fuzzy
|
||||
msgid "Remove successfully"
|
||||
msgstr "Saved successfully"
|
||||
|
@ -1783,7 +1856,7 @@ msgstr ""
|
|||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
msgid "Reset 2FA"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1808,6 +1881,7 @@ msgstr ""
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
|
@ -1836,7 +1910,7 @@ msgstr "Saved successfully"
|
|||
msgid "Saved successfully"
|
||||
msgstr "Saved successfully"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1844,7 +1918,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1869,9 +1943,12 @@ msgstr "Send"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1916,6 +1993,10 @@ msgstr ""
|
|||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "Single Directive"
|
||||
|
@ -1949,7 +2030,7 @@ msgstr "Certificate Status"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
#, fuzzy
|
||||
msgid "SSO Login"
|
||||
msgstr "Login"
|
||||
|
@ -2120,7 +2201,7 @@ msgstr "Certificate Status"
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
@ -2184,7 +2265,8 @@ msgid ""
|
|||
"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr ""
|
||||
|
@ -2193,12 +2275,19 @@ msgstr ""
|
|||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2211,11 +2300,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2225,7 +2318,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2235,6 +2328,11 @@ msgstr ""
|
|||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "Saved successfully"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2281,11 +2379,11 @@ msgstr "Uptime:"
|
|||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2294,11 +2392,11 @@ msgstr ""
|
|||
msgid "User"
|
||||
msgstr "Username"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
|
@ -2338,6 +2436,7 @@ msgstr "Basic Mode"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "Warning"
|
||||
|
||||
|
@ -2368,7 +2467,7 @@ msgstr ""
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "Yes"
|
||||
|
@ -2381,6 +2480,20 @@ msgstr ""
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "Enabled"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Rename "
|
||||
#~ msgstr "Username"
|
||||
|
|
|
@ -20,7 +20,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr "2FA"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr "Configuración de 2FA"
|
||||
|
||||
|
@ -43,7 +43,7 @@ msgstr "Usuario ACME"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "Acción"
|
||||
|
@ -58,6 +58,11 @@ msgstr "Acción"
|
|||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
msgid "Add Configuration"
|
||||
|
@ -92,6 +97,10 @@ msgstr "Adicional"
|
|||
msgid "Advance Mode"
|
||||
msgstr "Modo avanzado"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr "URL Base de la API"
|
||||
|
@ -112,10 +121,15 @@ msgstr "Token de la API"
|
|||
msgid "Arch"
|
||||
msgstr "Arquitectura"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "¿Está seguro de eliminar esta IP bloqueada inmediatamente?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "¿Está seguro de eliminar esta IP bloqueada inmediatamente?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
msgid "Are you sure you want to clear all notifications?"
|
||||
|
@ -161,7 +175,7 @@ msgstr "Preguntar por ayuda a ChatGPT"
|
|||
msgid "Assistant"
|
||||
msgstr "Asistente"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr "Intentos"
|
||||
|
||||
|
@ -169,6 +183,14 @@ msgstr "Intentos"
|
|||
msgid "Auth"
|
||||
msgstr "Autenticación"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -201,15 +223,15 @@ msgstr "Volver al Inicio"
|
|||
msgid "Back to list"
|
||||
msgstr "Volver a la lista"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr "Umbral de Prohibición en Minutos"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr "IPs prohibidas"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr "Bloqueado hasta"
|
||||
|
||||
|
@ -249,7 +271,7 @@ msgstr "Dir CA"
|
|||
msgid "CADir"
|
||||
msgstr "Directorio CA"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -263,6 +285,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -412,6 +435,7 @@ msgid "Create Folder"
|
|||
msgstr "Crear carpeta"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "Creado el"
|
||||
|
@ -432,13 +456,15 @@ msgstr "Credencial"
|
|||
msgid "Credentials"
|
||||
msgstr "Credenciales"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
#, fuzzy
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr ""
|
||||
"La cuenta actual tiene habilitada la autenticación de dos factores (2FA)."
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
#, fuzzy
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
"La cuenta actual no tiene habilitada la autenticación de dos factores (2FA)."
|
||||
|
||||
|
@ -652,6 +678,12 @@ msgstr "Descargando la última versión"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr "Modo de ejecución de prueba habilitado"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -720,11 +752,7 @@ msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
msgid "Enable 2FA"
|
||||
msgstr "Habilitar 2FA"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "Habilitar 2FA exitoso"
|
||||
|
||||
|
@ -745,6 +773,11 @@ msgstr "Habilitado con Éxito"
|
|||
msgid "Enable TLS"
|
||||
msgstr "Habilitar TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "Habilitar TLS"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -859,6 +892,12 @@ msgstr "Filtro"
|
|||
msgid "Finished"
|
||||
msgstr "Terminado"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr "Para usuario chino: https://mirror.ghproxy.com/"
|
||||
|
@ -927,7 +966,7 @@ msgstr "HTTP01"
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr "Si se deja en blanco, se utilizará el directorio CA predeterminado."
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
|
@ -936,7 +975,7 @@ msgstr ""
|
|||
"el máximo de intentos en los minutos del umbral de prohibición, la IP será "
|
||||
"bloqueada por un período de tiempo."
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
|
@ -944,6 +983,10 @@ msgstr ""
|
|||
"Si pierde su teléfono móvil, puede usar el código de recuperación para "
|
||||
"restablecer su 2FA."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -960,7 +1003,7 @@ msgstr "Importar"
|
|||
msgid "Import Certificate"
|
||||
msgstr "Importar Certificado"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "Nombre de usuario o contraseña incorrectos"
|
||||
|
||||
|
@ -976,12 +1019,12 @@ msgstr "Error de actualización de kernel inicial"
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr "Inicializando la actualización del kernel"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr "Ingrese el código de la aplicación:"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr "Ingrese el código de recuperación:"
|
||||
|
||||
|
@ -1001,7 +1044,7 @@ msgstr "Intervalo"
|
|||
msgid "Invalid"
|
||||
msgstr "Inválido"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr "Código 2FA o de recuperación inválido"
|
||||
|
||||
|
@ -1014,11 +1057,11 @@ msgstr "Nombre de archivo inválido"
|
|||
msgid "Invalid folder name"
|
||||
msgstr "Nombre de carpeta inválido"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr "Código de acceso o código de recuperación inválido"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
|
||||
|
@ -1051,6 +1094,11 @@ msgstr "Tipo llave"
|
|||
msgid "Last checked at"
|
||||
msgstr "Comprobado por última vez el"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "Comprobado por última vez el"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "Para no modificar dejar en blanco"
|
||||
|
@ -1110,11 +1158,11 @@ msgstr "Ubicaciones"
|
|||
msgid "Log"
|
||||
msgstr "Registro"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "Acceso"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "Acceso exitoso"
|
||||
|
||||
|
@ -1172,7 +1220,7 @@ msgstr "Administrar usuarios"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "Certificado Administrado"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr "Intentos máximos"
|
||||
|
||||
|
@ -1227,6 +1275,7 @@ msgstr "Directiva multilínea"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1308,7 +1357,7 @@ msgstr "Nginx reiniciado con éxito"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1409,6 +1458,10 @@ msgstr "En línea"
|
|||
msgid "OpenAI"
|
||||
msgstr "OpenAI"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr "Nombre original"
|
||||
|
@ -1437,7 +1490,18 @@ msgstr "Sobrescribir archivo existente"
|
|||
msgid "Params"
|
||||
msgstr "Parámetros"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
|
@ -1463,8 +1527,15 @@ msgstr "Error al ejecutar la actualización del kernel"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "Realizando la actualizaciónd el kernel"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
#, fuzzy
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr "Por favor, ingrese el código 2FA:"
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1510,11 +1581,11 @@ msgstr ""
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "¡Por favor ingrese su correo electrónico!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "¡Por favor ingrese su contraseña!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "¡Por favor ingrese su nombre de usuario!"
|
||||
|
||||
|
@ -1578,16 +1649,16 @@ msgstr "Recuperar"
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "Recuperado con éxito"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr "Recuperación"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr "Código de Recuperación"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr "Código de Recuperación:"
|
||||
|
||||
|
@ -1607,6 +1678,11 @@ msgstr "Registrar"
|
|||
msgid "Register failed"
|
||||
msgstr "Fallo en el registro"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "Registrado con éxito"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
msgid "Register successfully"
|
||||
msgstr "Registrado con éxito"
|
||||
|
@ -1640,11 +1716,12 @@ msgstr "Recargando"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "Recargando Nginx"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
msgid "Remove successfully"
|
||||
msgstr "Eliminado con éxito"
|
||||
|
||||
|
@ -1714,7 +1791,7 @@ msgstr "Pedido con parámetros incorrectos"
|
|||
msgid "Reset"
|
||||
msgstr "Limpiar"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
msgid "Reset 2FA"
|
||||
msgstr "Restablecer 2FA"
|
||||
|
||||
|
@ -1738,6 +1815,7 @@ msgstr "Corriendo"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
@ -1765,7 +1843,7 @@ msgstr "Guardado con éxito"
|
|||
msgid "Saved successfully"
|
||||
msgstr "Guardado con éxito"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
"Escanee el código QR con su teléfono móvil para agregar la cuenta a la "
|
||||
|
@ -1775,7 +1853,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr "SDK"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1800,9 +1878,12 @@ msgstr "Enviado"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1848,6 +1929,10 @@ msgstr "Usando el proveedor de desafíos HTTP01"
|
|||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "Directiva de una sola línea"
|
||||
|
@ -1876,7 +1961,7 @@ msgstr "Ruta de la llave del certificado SSL"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "Ruta del certificado SSL"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
msgid "SSO Login"
|
||||
msgstr "Acceso SSO"
|
||||
|
||||
|
@ -2045,7 +2130,7 @@ msgstr "La ruta existe, pero el archivo no es un certificado"
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr "La ruta existe, pero el archivo no es una clave privada"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
@ -2117,7 +2202,8 @@ msgstr ""
|
|||
"Esto actualizará o reinstalará la interfaz de usuario de Nginx en "
|
||||
"%{nodeNames} a %{version}."
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr "Consejos"
|
||||
|
@ -2126,7 +2212,7 @@ msgstr "Consejos"
|
|||
msgid "Title"
|
||||
msgstr "Título"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
|
@ -2134,6 +2220,13 @@ msgstr ""
|
|||
"Para habilitarlo, necesitas instalar la aplicación Google Authenticator o "
|
||||
"Microsoft Authenticator en tu teléfono móvil."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2150,13 +2243,17 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr "El token no es válido"
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr ""
|
||||
"Demasiados intentos fallidos de inicio de sesión, por favor intente "
|
||||
"nuevamente más tarde"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2168,7 +2265,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr "Basura"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr "Se requiere autenticación de dos factores"
|
||||
|
||||
|
@ -2178,6 +2275,11 @@ msgstr "Se requiere autenticación de dos factores"
|
|||
msgid "Type"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "Actualización exitosa"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2221,11 +2323,11 @@ msgstr "Tiempo encendido:"
|
|||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr "Usar OTP"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr "Usar código de recuperación"
|
||||
|
||||
|
@ -2233,11 +2335,11 @@ msgstr "Usar código de recuperación"
|
|||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr "El usuario está bloqueado"
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "Nombre de usuario"
|
||||
|
||||
|
@ -2275,6 +2377,7 @@ msgstr "Modo de vista"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "Advertencia"
|
||||
|
||||
|
@ -2309,7 +2412,7 @@ msgstr "Escribir certificado a disco"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "Si"
|
||||
|
@ -2322,6 +2425,19 @@ msgstr "Estás usando la última versión"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "Puede consultar la actualización de Nginx UI en esta página."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "Habilitar 2FA"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Rename "
|
||||
#~ msgstr "Renombrar"
|
||||
|
|
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -39,7 +39,7 @@ msgstr "Nom d'utilisateur"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
@ -54,6 +54,11 @@ msgstr "Action"
|
|||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
#, fuzzy
|
||||
|
@ -92,6 +97,10 @@ msgstr "Supplémentaire"
|
|||
msgid "Advance Mode"
|
||||
msgstr "Mode avancé"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr "URL de base de l'API"
|
||||
|
@ -114,11 +123,16 @@ msgstr "Jeton d'API"
|
|||
msgid "Arch"
|
||||
msgstr "Arch"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "Etes-vous sûr que vous voulez supprimer ?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "Etes-vous sûr que vous voulez supprimer ?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
#, fuzzy
|
||||
|
@ -170,7 +184,7 @@ msgstr "Modèle ChatGPT"
|
|||
msgid "Assistant"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -179,6 +193,14 @@ msgstr ""
|
|||
msgid "Auth"
|
||||
msgstr "Autheur"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -211,15 +233,15 @@ msgstr "Retour au menu principal"
|
|||
msgid "Back to list"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr ""
|
||||
|
||||
|
@ -261,7 +283,7 @@ msgstr ""
|
|||
msgid "CADir"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -275,6 +297,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -435,6 +458,7 @@ msgid "Create Folder"
|
|||
msgstr "Créer un autre"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "Créé le"
|
||||
|
@ -456,12 +480,12 @@ msgstr "Identifiant"
|
|||
msgid "Credentials"
|
||||
msgstr "Identifiants"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
|
@ -682,6 +706,12 @@ msgstr "Téléchargement de la dernière version"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -757,12 +787,7 @@ msgstr ""
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA"
|
||||
msgstr "Activé"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "Activé avec succès"
|
||||
|
@ -785,6 +810,11 @@ msgstr "Activé avec succès"
|
|||
msgid "Enable TLS"
|
||||
msgstr "Activer TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "Activer TLS"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -905,6 +935,12 @@ msgstr "Filtrer"
|
|||
msgid "Finished"
|
||||
msgstr "Finie"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
#, fuzzy
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
|
@ -975,18 +1011,22 @@ msgstr "HTTP01"
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -1003,7 +1043,7 @@ msgstr "Exporter"
|
|||
msgid "Import Certificate"
|
||||
msgstr "État du certificat"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
#, fuzzy
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "Le pseudo ou mot de passe est incorect"
|
||||
|
@ -1020,12 +1060,12 @@ msgstr "Erreur du programme de mise à niveau initial du core"
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr "Initialisation du programme de mise à niveau du core"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1045,7 +1085,7 @@ msgstr ""
|
|||
msgid "Invalid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1058,11 +1098,11 @@ msgstr ""
|
|||
msgid "Invalid folder name"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1098,6 +1138,11 @@ msgstr "Type"
|
|||
msgid "Last checked at"
|
||||
msgstr "Dernière vérification le"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "Dernière vérification le"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "Laisser vide pour aucun changement"
|
||||
|
@ -1165,11 +1210,11 @@ msgstr "Localisations"
|
|||
msgid "Log"
|
||||
msgstr "Connexion"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "Connexion"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "Connexion réussie"
|
||||
|
||||
|
@ -1223,7 +1268,7 @@ msgstr "Gérer les utilisateurs"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "Changer de certificat"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1281,6 +1326,7 @@ msgstr "Directive multiligne"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1365,7 +1411,7 @@ msgstr "Nginx a redémarré avec succès"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1467,6 +1513,10 @@ msgstr ""
|
|||
msgid "OpenAI"
|
||||
msgstr "OpenAI"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr ""
|
||||
|
@ -1495,7 +1545,18 @@ msgstr ""
|
|||
msgid "Params"
|
||||
msgstr "Paramètres"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
|
@ -1521,8 +1582,14 @@ msgstr "Erreur lors de la mise a niveau du core"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "Exécution de la mise à niveau du core"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1570,11 +1637,11 @@ msgstr ""
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "Veuillez saisir votre e-mail !"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "Veuillez saisir votre mot de passe !"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "Veuillez saisir votre nom d'utilisateur !"
|
||||
|
||||
|
@ -1640,16 +1707,16 @@ msgstr ""
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "Enregistré avec succès"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1671,6 +1738,11 @@ msgstr "Enregistrement de l'utilisateur"
|
|||
msgid "Register failed"
|
||||
msgstr "Enregistrement de l'utilisateur"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "Activé avec succès"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
#, fuzzy
|
||||
msgid "Register successfully"
|
||||
|
@ -1706,11 +1778,12 @@ msgstr "Rechargement"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "Rechargement de nginx"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
#, fuzzy
|
||||
msgid "Remove successfully"
|
||||
msgstr "Enregistré avec succès"
|
||||
|
@ -1790,7 +1863,7 @@ msgstr ""
|
|||
msgid "Reset"
|
||||
msgstr "Réinitialiser"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
#, fuzzy
|
||||
msgid "Reset 2FA"
|
||||
msgstr "Réinitialiser"
|
||||
|
@ -1815,6 +1888,7 @@ msgstr "En cours d'éxécution"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "Enregistrer"
|
||||
|
@ -1842,7 +1916,7 @@ msgstr "Sauvegarde réussie"
|
|||
msgid "Saved successfully"
|
||||
msgstr "Enregistré avec succès"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1850,7 +1924,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1875,9 +1949,12 @@ msgstr "Envoyer"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1924,6 +2001,10 @@ msgstr "Utilisation du fournisseur de challenge HTTP01"
|
|||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "Directive unique"
|
||||
|
@ -1954,7 +2035,7 @@ msgstr "Chemin de la clé du certificat SSL"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "Chemin du certificat SSL"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
#, fuzzy
|
||||
msgid "SSO Login"
|
||||
msgstr "Connexion"
|
||||
|
@ -2126,7 +2207,7 @@ msgstr "Chemin de la clé du certificat SSL"
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
@ -2194,7 +2275,8 @@ msgid ""
|
|||
"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr ""
|
||||
|
@ -2203,12 +2285,19 @@ msgstr ""
|
|||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2225,11 +2314,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2239,7 +2332,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2249,6 +2342,11 @@ msgstr ""
|
|||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "Mis à jour avec succés"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2293,11 +2391,11 @@ msgstr "Disponibilité :"
|
|||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2306,11 +2404,11 @@ msgstr ""
|
|||
msgid "User"
|
||||
msgstr "Nom d'utilisateur"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "Nom d'utilisateur"
|
||||
|
||||
|
@ -2351,6 +2449,7 @@ msgstr "Mode simple"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "Avertissement"
|
||||
|
||||
|
@ -2383,7 +2482,7 @@ msgstr "Écriture du certificat sur le disque"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
@ -2396,6 +2495,20 @@ msgstr "Vous utilisez la dernière version"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "Vous pouvez vérifier la mise à niveau de Nginx UI sur cette page."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "Activé"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Rename "
|
||||
#~ msgstr "Nom d'utilisateur"
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr "2FA"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr "2FA 설정"
|
||||
|
||||
|
@ -41,7 +41,7 @@ msgstr "ACME 사용자"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "작업"
|
||||
|
@ -56,6 +56,11 @@ msgstr "작업"
|
|||
msgid "Add"
|
||||
msgstr "추가"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
msgid "Add Configuration"
|
||||
|
@ -90,6 +95,10 @@ msgstr "추가적인"
|
|||
msgid "Advance Mode"
|
||||
msgstr "고급 모드"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr "API 기본 URL"
|
||||
|
@ -110,10 +119,15 @@ msgstr "API 토큰"
|
|||
msgid "Arch"
|
||||
msgstr "아키텍처"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "차단된 IP를 즉시 삭제하시겠습니까?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "차단된 IP를 즉시 삭제하시겠습니까?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
msgid "Are you sure you want to clear all notifications?"
|
||||
|
@ -159,7 +173,7 @@ msgstr "ChatGPT에게 도움 요청"
|
|||
msgid "Assistant"
|
||||
msgstr "조수"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr "시도 횟수"
|
||||
|
||||
|
@ -167,6 +181,14 @@ msgstr "시도 횟수"
|
|||
msgid "Auth"
|
||||
msgstr "인증"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -199,15 +221,15 @@ msgstr "홈으로"
|
|||
msgid "Back to list"
|
||||
msgstr "목록으로 돌아가기"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr "차단 시간(분)"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr "차단된 IP"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr "차단될 시간"
|
||||
|
||||
|
@ -247,7 +269,7 @@ msgstr "CA 디렉토리"
|
|||
msgid "CADir"
|
||||
msgstr "CA 디렉토리"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -261,6 +283,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -414,6 +437,7 @@ msgid "Create Folder"
|
|||
msgstr "다른 것 생성하기"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "생성 시간"
|
||||
|
@ -435,12 +459,12 @@ msgstr "인증 정보"
|
|||
msgid "Credentials"
|
||||
msgstr "인증 정보들"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
|
@ -650,6 +674,12 @@ msgstr "최신 릴리스 다운로드 중"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr "드라이런 모드 활성화됨"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -720,12 +750,7 @@ msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA"
|
||||
msgstr "활성화"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "성공적으로 활성화"
|
||||
|
@ -747,6 +772,11 @@ msgstr "성공적으로 활성화"
|
|||
msgid "Enable TLS"
|
||||
msgstr "TLS 활성화"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "TLS 활성화"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -864,6 +894,12 @@ msgstr "필터"
|
|||
msgid "Finished"
|
||||
msgstr "완료됨"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr "중국 사용자를 위해: https://mirror.ghproxy.com/"
|
||||
|
@ -936,18 +972,22 @@ msgstr "HTTP01"
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -963,7 +1003,7 @@ msgstr "가져오기"
|
|||
msgid "Import Certificate"
|
||||
msgstr "인증서 상태"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
#, fuzzy
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "사용자 이름 또는 비밀번호가 올바르지 않습니다"
|
||||
|
@ -980,12 +1020,12 @@ msgstr "초기 코어 업그레이더 오류"
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr "코어 업그레이더 초기화"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1007,7 +1047,7 @@ msgstr "간격"
|
|||
msgid "Invalid"
|
||||
msgstr "유효함"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1021,11 +1061,11 @@ msgstr "Invalid E-mail!"
|
|||
msgid "Invalid folder name"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1061,6 +1101,11 @@ msgstr "키 유형"
|
|||
msgid "Last checked at"
|
||||
msgstr "마지막 확인 시간"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "마지막 확인 시간"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "변경사항이 없으면 비워두세요"
|
||||
|
@ -1126,11 +1171,11 @@ msgstr "위치들"
|
|||
msgid "Log"
|
||||
msgstr "로그인"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "로그인"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "로그인 성공"
|
||||
|
||||
|
@ -1189,7 +1234,7 @@ msgstr "사용자 관리"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "인증서 유효"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1249,6 +1294,7 @@ msgstr "단일 지시문"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1335,7 +1381,7 @@ msgstr "Nginx가 성공적으로 재시작됨"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1437,6 +1483,10 @@ msgstr "온라인"
|
|||
msgid "OpenAI"
|
||||
msgstr "오픈AI"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr ""
|
||||
|
@ -1466,7 +1516,18 @@ msgstr "기존 파일 덮어쓰기"
|
|||
msgid "Params"
|
||||
msgstr "파라미터"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "비밀번호"
|
||||
|
||||
|
@ -1492,8 +1553,14 @@ msgstr "핵심 업그레이드 오류 수행"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "핵심 업그레이드 수행 중"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1536,11 +1603,11 @@ msgstr "이름을 입력해주세요, 이것은 새 구성의 파일 이름으
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "이메일을 입력해주세요!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "비밀번호를 입력해주세요!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "사용자 이름을 입력해주세요!"
|
||||
|
||||
|
@ -1604,16 +1671,16 @@ msgstr ""
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "성공적으로 제거됨"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1635,6 +1702,11 @@ msgstr "사용자 등록 중"
|
|||
msgid "Register failed"
|
||||
msgstr "사용자 등록 중"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "성공적으로 갱신됨"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
#, fuzzy
|
||||
msgid "Register successfully"
|
||||
|
@ -1671,11 +1743,12 @@ msgstr "리로딩 중"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "Nginx 리로딩 중"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
#, fuzzy
|
||||
msgid "Remove successfully"
|
||||
msgstr "성공적으로 제거됨"
|
||||
|
@ -1755,7 +1828,7 @@ msgstr "잘못된 매개변수로 요청됨"
|
|||
msgid "Reset"
|
||||
msgstr "재설정"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
#, fuzzy
|
||||
msgid "Reset 2FA"
|
||||
msgstr "재설정"
|
||||
|
@ -1781,6 +1854,7 @@ msgstr "실행 중"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "저장"
|
||||
|
@ -1809,7 +1883,7 @@ msgstr "성공적으로 저장됨"
|
|||
msgid "Saved successfully"
|
||||
msgstr "성공적으로 저장됨"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1817,7 +1891,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1842,9 +1916,12 @@ msgstr "보내기"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1889,6 +1966,10 @@ msgstr "HTTP01 공급자 설정"
|
|||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "단일 지시문"
|
||||
|
@ -1921,7 +2002,7 @@ msgstr "SSL 인증서 키 경로"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "SSL 인증서 경로"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
#, fuzzy
|
||||
msgid "SSO Login"
|
||||
msgstr "SSO 로그인"
|
||||
|
@ -2092,7 +2173,7 @@ msgstr "Certificate Status"
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr "경로는 존재하지만 파일은 개인 키가 아닙니다"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
@ -2158,7 +2239,8 @@ msgid ""
|
|||
"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr "팁"
|
||||
|
@ -2167,12 +2249,19 @@ msgstr "팁"
|
|||
msgid "Title"
|
||||
msgstr "제목"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2188,11 +2277,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr "토큰이 유효하지 않습니다"
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2202,7 +2295,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2212,6 +2305,11 @@ msgstr ""
|
|||
msgid "Type"
|
||||
msgstr "유형"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "성공적으로 저장되었습니다"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2258,11 +2356,11 @@ msgstr "가동 시간:"
|
|||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2271,11 +2369,11 @@ msgstr ""
|
|||
msgid "User"
|
||||
msgstr "사용자 이름"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "사용자 이름"
|
||||
|
||||
|
@ -2317,6 +2415,7 @@ msgstr "기본 모드"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "경고"
|
||||
|
||||
|
@ -2351,7 +2450,7 @@ msgstr "인증서를 디스크에 쓰기"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "예"
|
||||
|
@ -2364,6 +2463,20 @@ msgstr "최신 버전을 사용하고 있습니다"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "이 페이지에서 Nginx UI 업그레이드를 확인할 수 있습니다."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "활성화"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Enter"
|
||||
#~ msgstr "간격"
|
||||
|
|
|
@ -6,7 +6,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -32,7 +32,7 @@ msgstr ""
|
|||
#: src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26
|
||||
#: src/views/preference/AuthSettings.vue:27
|
||||
#: src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
|
@ -48,6 +48,11 @@ msgstr ""
|
|||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112
|
||||
#: src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
|
@ -85,6 +90,10 @@ msgstr ""
|
|||
msgid "Advance Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr ""
|
||||
|
@ -105,10 +114,14 @@ msgstr ""
|
|||
msgid "Arch"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
msgid "Are you sure you want to clear all notifications?"
|
||||
|
@ -155,7 +168,7 @@ msgstr ""
|
|||
msgid "Assistant"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -163,6 +176,14 @@ msgstr ""
|
|||
msgid "Auth"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -198,15 +219,15 @@ msgstr ""
|
|||
msgid "Back to list"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr ""
|
||||
|
||||
|
@ -247,7 +268,7 @@ msgstr ""
|
|||
msgid "CADir"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -261,6 +282,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -412,6 +434,7 @@ msgid "Create Folder"
|
|||
msgstr ""
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr ""
|
||||
|
@ -432,12 +455,12 @@ msgstr ""
|
|||
msgid "Credentials"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
|
@ -652,6 +675,10 @@ msgstr ""
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid "Due to the security policies of some browsers, you cannot use passkeys on non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -722,11 +749,7 @@ msgstr ""
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
msgid "Enable 2FA"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr ""
|
||||
|
||||
|
@ -747,6 +770,10 @@ msgstr ""
|
|||
msgid "Enable TLS"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
msgid "Enable TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175
|
||||
#: src/views/domain/DomainList.vue:29
|
||||
|
@ -868,6 +895,10 @@ msgstr ""
|
|||
msgid "Finished"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid "Follow the instructions in the dialog to complete the passkey registration process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr ""
|
||||
|
@ -937,14 +968,18 @@ msgstr ""
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid "If you lose your mobile phone, you can use the recovery code to reset your 2FA."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid "If your domain has CNAME records and you cannot obtain certificates, you need to enable this option."
|
||||
msgstr ""
|
||||
|
@ -958,7 +993,7 @@ msgstr ""
|
|||
msgid "Import Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
msgid "Incorrect username or password"
|
||||
msgstr ""
|
||||
|
||||
|
@ -975,12 +1010,12 @@ msgstr ""
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1001,7 +1036,7 @@ msgstr ""
|
|||
msgid "Invalid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1014,11 +1049,11 @@ msgstr ""
|
|||
msgid "Invalid folder name"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1051,6 +1086,10 @@ msgstr ""
|
|||
msgid "Last checked at"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
msgid "Last used at"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr ""
|
||||
|
@ -1111,12 +1150,12 @@ msgid "Log"
|
|||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:305
|
||||
#: src/views/other/Login.vue:207
|
||||
#: src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:130
|
||||
#: src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133
|
||||
#: src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1162,7 +1201,7 @@ msgstr ""
|
|||
msgid "Managed Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1219,6 +1258,7 @@ msgstr ""
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13
|
||||
|
@ -1303,7 +1343,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1401,6 +1441,11 @@ msgstr ""
|
|||
msgid "OpenAI"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117
|
||||
#: src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr ""
|
||||
|
@ -1429,7 +1474,15 @@ msgstr ""
|
|||
msgid "Params"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:174
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid "Passkeys are webauthn credentials that validate your identity using touch, facial recognition, a device password, or a PIN. They can be used as a password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208
|
||||
#: src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
@ -1456,8 +1509,12 @@ msgstr ""
|
|||
msgid "Performing core upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid "Please enter a name for the passkey you wish to create and click the OK button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1491,12 +1548,12 @@ msgid "Please input your E-mail!"
|
|||
msgstr ""
|
||||
|
||||
#: src/views/other/Install.vue:44
|
||||
#: src/views/other/Login.vue:44
|
||||
#: src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Install.vue:38
|
||||
#: src/views/other/Login.vue:38
|
||||
#: src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1559,16 +1616,16 @@ msgstr ""
|
|||
msgid "Recovered Successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1588,6 +1645,10 @@ msgstr ""
|
|||
msgid "Register failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
msgid "Register passkey successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
msgid "Register successfully"
|
||||
msgstr ""
|
||||
|
@ -1621,11 +1682,12 @@ msgstr ""
|
|||
msgid "Reloading nginx"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
msgid "Remove successfully"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1689,7 +1751,7 @@ msgstr ""
|
|||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
msgid "Reset 2FA"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1714,6 +1776,7 @@ msgstr ""
|
|||
#: src/views/config/ConfigEditor.vue:222
|
||||
#: src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151
|
||||
#: src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
|
@ -1744,7 +1807,7 @@ msgstr ""
|
|||
msgid "Saved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1752,7 +1815,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1779,9 +1842,12 @@ msgstr ""
|
|||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15
|
||||
#: src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83
|
||||
#: src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81
|
||||
|
@ -1825,6 +1891,10 @@ msgstr ""
|
|||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr ""
|
||||
|
@ -1853,7 +1923,7 @@ msgstr ""
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
msgid "SSO Login"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2001,7 +2071,7 @@ msgstr ""
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid "The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
||||
|
@ -2053,7 +2123,8 @@ msgstr ""
|
|||
msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr ""
|
||||
|
@ -2062,10 +2133,14 @@ msgstr ""
|
|||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid "To enable it, you need to install the Google or Microsoft Authenticator app on your mobile phone."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid "To ensure security, Webauthn configuration cannot be added through the UI. Please manually configure the following in the app.ini configuration file and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
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 ""
|
||||
|
@ -2074,11 +2149,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid "TOTP is a two-factor authentication method that uses a time-based one-time password algorithm."
|
||||
msgstr ""
|
||||
|
||||
|
@ -2086,7 +2165,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2096,6 +2175,10 @@ msgstr ""
|
|||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
msgid "Update successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31
|
||||
|
@ -2145,11 +2228,11 @@ msgstr ""
|
|||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2157,11 +2240,11 @@ msgstr ""
|
|||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:164
|
||||
#: src/views/other/Login.vue:198
|
||||
#: src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
@ -2201,6 +2284,7 @@ msgstr ""
|
|||
#: src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2227,7 +2311,7 @@ msgstr ""
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
@ -2239,3 +2323,11 @@ msgstr ""
|
|||
#: src/views/system/Upgrade.vue:166
|
||||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid "You have not configured the settings of Webauthn, so you cannot add a passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr "2ФА"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr "Настройки 2ФА"
|
||||
|
||||
|
@ -41,7 +41,7 @@ msgstr "Пользователь ACME"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "Действие"
|
||||
|
@ -56,6 +56,11 @@ msgstr "Действие"
|
|||
msgid "Add"
|
||||
msgstr "Добавить"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
msgid "Add Configuration"
|
||||
|
@ -90,6 +95,10 @@ msgstr "Дополнительно"
|
|||
msgid "Advance Mode"
|
||||
msgstr "Расширенный режим"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr "Базовый URL API"
|
||||
|
@ -110,10 +119,15 @@ msgstr "API токен"
|
|||
msgid "Arch"
|
||||
msgstr "Архитектура"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "Вы уверены, что хотите немедленно удалить этот заблокированный IP?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "Вы уверены, что хотите немедленно удалить этот заблокированный IP?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
msgid "Are you sure you want to clear all notifications?"
|
||||
|
@ -161,7 +175,7 @@ msgstr "Обратитесь за помощью к ChatGPT"
|
|||
msgid "Assistant"
|
||||
msgstr "Ассистент"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr "Попытки"
|
||||
|
||||
|
@ -169,6 +183,14 @@ msgstr "Попытки"
|
|||
msgid "Auth"
|
||||
msgstr "Авторизация"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -201,15 +223,15 @@ msgstr "Вернуться на главную"
|
|||
msgid "Back to list"
|
||||
msgstr "Возврат к списку"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr "Порог блокировки в минутах"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr "Заблокированные IP-адреса"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr "Заблокирован до"
|
||||
|
||||
|
@ -250,7 +272,7 @@ msgstr "Директория корневого сертификата"
|
|||
msgid "CADir"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -264,6 +286,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -413,6 +436,7 @@ msgid "Create Folder"
|
|||
msgstr "Создать папку"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "Создан в"
|
||||
|
@ -433,12 +457,14 @@ msgstr "Учетные данные"
|
|||
msgid "Credentials"
|
||||
msgstr "Учетные данные"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
#, fuzzy
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr "Текущая учетная запись имеет включенную 2ФА."
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
#, fuzzy
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
"Текущая учетная запись не имеет включенной двухфакторной аутентификации."
|
||||
|
||||
|
@ -650,6 +676,12 @@ msgstr "Загрузка последней версии"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr "Включен пробный режим"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -720,11 +752,7 @@ msgstr "Включение %{conf_name} in %{node_name} нипалучилася
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr "Включение %{conf_name} in %{node_name} успешно"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
msgid "Enable 2FA"
|
||||
msgstr "Включить 2ФА"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "Двухфакторная аутентификация успешно включена"
|
||||
|
||||
|
@ -745,6 +773,11 @@ msgstr "Включено успешно"
|
|||
msgid "Enable TLS"
|
||||
msgstr "Включить TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "Включить TLS"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -858,6 +891,12 @@ msgstr "Фильтр"
|
|||
msgid "Finished"
|
||||
msgstr "Готово"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr "Для китайских пользователей: https://mirror.ghproxy.com/"
|
||||
|
@ -926,7 +965,7 @@ msgstr "HTTP01"
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr "Если оставить пустым, будет использоваться каталог CA по умолчанию."
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
|
@ -935,7 +974,7 @@ msgstr ""
|
|||
"количества попыток в течение пороговых минут блокировки, IP будет "
|
||||
"заблокирован на определенный период времени."
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
|
@ -943,6 +982,10 @@ msgstr ""
|
|||
"Если вы потеряете свой мобильный телефон, вы можете использовать код "
|
||||
"восстановления для сброса 2FA."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -959,7 +1002,7 @@ msgstr "Импорт"
|
|||
msgid "Import Certificate"
|
||||
msgstr "Импортировать сертификат"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "Неверное имя пользователя или пароль"
|
||||
|
||||
|
@ -975,12 +1018,12 @@ msgstr "Ошибка первоначального обновления ядр
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr "Инициализация программы обновления ядра"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr "Введите код из приложения:"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr "Введите код восстановления:"
|
||||
|
||||
|
@ -1000,7 +1043,7 @@ msgstr "Интервал"
|
|||
msgid "Invalid"
|
||||
msgstr "Недействительно"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr "Неверный 2FA или код восстановления"
|
||||
|
||||
|
@ -1013,11 +1056,11 @@ msgstr "Неверное имя файла"
|
|||
msgid "Invalid folder name"
|
||||
msgstr "Недопустимое имя папки"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr "Неверный пароль или код восстановления"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
|
||||
|
@ -1050,6 +1093,11 @@ msgstr "Тип ключа"
|
|||
msgid "Last checked at"
|
||||
msgstr "Последняя проверка в"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "Последняя проверка в"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "Оставьте пустым без изменений"
|
||||
|
@ -1109,11 +1157,11 @@ msgstr "Locations"
|
|||
msgid "Log"
|
||||
msgstr "Журнал"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "Логин"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "Авторизация успешна"
|
||||
|
||||
|
@ -1170,7 +1218,7 @@ msgstr "Пользователи"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "Управление сертификатом"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr "Максимальное количество попыток"
|
||||
|
||||
|
@ -1225,6 +1273,7 @@ msgstr "Многострочная директива"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1306,7 +1355,7 @@ msgstr "Nginx успешно перезапущен"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1407,6 +1456,10 @@ msgstr "Онлайн"
|
|||
msgid "OpenAI"
|
||||
msgstr "OpenAI"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr "Оригинальное имя"
|
||||
|
@ -1435,7 +1488,18 @@ msgstr "Перезаписать существующий файл"
|
|||
msgid "Params"
|
||||
msgstr "Параметры"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
|
@ -1461,8 +1525,15 @@ msgstr "Ошибка обновления ядра"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "Выполнение обновления ядра"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
#, fuzzy
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr "Пожалуйста, введите код 2FA:"
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1508,11 +1579,11 @@ msgstr ""
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "Введите ваш E-mail!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "Введите ваш пароль!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "Введите ваше имя пользователя!"
|
||||
|
||||
|
@ -1576,16 +1647,16 @@ msgstr "Восстановить"
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "Восстановлено успешно"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr "Восстановление"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr "Код восстановления"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr "Код восстановления:"
|
||||
|
||||
|
@ -1605,6 +1676,11 @@ msgstr "Регистрация"
|
|||
msgid "Register failed"
|
||||
msgstr "Регистрация не удалась"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "Зарегистрировано успешно"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
msgid "Register successfully"
|
||||
msgstr "Зарегистрировано успешно"
|
||||
|
@ -1638,11 +1714,12 @@ msgstr "Перезагружается"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "Перезагружается nginx"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr "Удалить"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
msgid "Remove successfully"
|
||||
msgstr "Удалено успешно"
|
||||
|
||||
|
@ -1713,7 +1790,7 @@ msgstr "Запрос с неправильными параметрами"
|
|||
msgid "Reset"
|
||||
msgstr "Сброс"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
msgid "Reset 2FA"
|
||||
msgstr "Сброс 2FA"
|
||||
|
||||
|
@ -1737,6 +1814,7 @@ msgstr "Выполняется"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "Сохранить"
|
||||
|
@ -1764,7 +1842,7 @@ msgstr "Сохранено успешно"
|
|||
msgid "Saved successfully"
|
||||
msgstr "Успешно сохранено"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
"Отсканируйте QR-код с помощью мобильного телефона, чтобы добавить учетную "
|
||||
|
@ -1774,7 +1852,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr "SDK"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1799,9 +1877,12 @@ msgstr "Отправлено"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1847,6 +1928,10 @@ msgstr ""
|
|||
msgid "Show"
|
||||
msgstr "Показать"
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "Одиночная Директива"
|
||||
|
@ -1875,7 +1960,7 @@ msgstr "Путь к ключу SSL-сертификата"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "Путь к SSL сертификату"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
msgid "SSO Login"
|
||||
msgstr "SSO Вход"
|
||||
|
||||
|
@ -2042,7 +2127,7 @@ msgstr "Путь существует, но файл не является се
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr "Путь существует, но файл не является приватным ключом"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
@ -2114,7 +2199,8 @@ msgstr ""
|
|||
"Это обновит или переустановит интерфейс Nginx на %{nodeNames} до версии "
|
||||
"%{version}."
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr "Советы"
|
||||
|
@ -2123,7 +2209,7 @@ msgstr "Советы"
|
|||
msgid "Title"
|
||||
msgstr "Заголовок"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
|
@ -2131,6 +2217,13 @@ msgstr ""
|
|||
"Чтобы включить это, вам нужно установить приложение Google или Microsoft "
|
||||
"Authenticator на свой мобильный телефон."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2147,11 +2240,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr "Токен недействителен"
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr "Слишком много неудачных попыток входа, попробуйте позже"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2163,7 +2260,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr "Корзина"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr "Требуется двухфакторная аутентификация"
|
||||
|
||||
|
@ -2173,6 +2270,11 @@ msgstr "Требуется двухфакторная аутентификаци
|
|||
msgid "Type"
|
||||
msgstr "Тип"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "Успешно обновлено"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2216,11 +2318,11 @@ msgstr "Аптайм:"
|
|||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr "Использовать OTP"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr "Использовать код восстановления"
|
||||
|
||||
|
@ -2228,11 +2330,11 @@ msgstr "Использовать код восстановления"
|
|||
msgid "User"
|
||||
msgstr "Пользователь"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr "Пользователь заблокирован"
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "Имя пользователя"
|
||||
|
||||
|
@ -2271,6 +2373,7 @@ msgstr "Простой режим"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "Внимание"
|
||||
|
||||
|
@ -2305,7 +2408,7 @@ msgstr "Запись сертификата на диск"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "Да"
|
||||
|
@ -2318,6 +2421,19 @@ msgstr "Вы используете последнюю версию"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "Вы можете проверить обновление Nginx UI на этой странице."
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "Включить 2ФА"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Rename "
|
||||
#~ msgstr "Имя пользователя"
|
||||
|
|
|
@ -13,7 +13,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -37,7 +37,7 @@ msgstr "Người dùng"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "Hành động"
|
||||
|
@ -52,6 +52,11 @@ msgstr "Hành động"
|
|||
msgid "Add"
|
||||
msgstr "Thêm"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
#, fuzzy
|
||||
|
@ -90,6 +95,10 @@ msgstr "Tùy chọn bổ sung"
|
|||
msgid "Advance Mode"
|
||||
msgstr "Nâng cao"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr ""
|
||||
|
@ -110,11 +119,16 @@ msgstr ""
|
|||
msgid "Arch"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "Bạn chắc chắn muốn xóa nó "
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "Bạn chắc chắn muốn xóa nó "
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
#, fuzzy
|
||||
|
@ -168,7 +182,7 @@ msgstr "Hỏi ChatGPT"
|
|||
msgid "Assistant"
|
||||
msgstr "Trợ lý"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -177,6 +191,14 @@ msgstr ""
|
|||
msgid "Auth"
|
||||
msgstr "Tác giả"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -210,15 +232,15 @@ msgstr "Quay lại"
|
|||
msgid "Back to list"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr ""
|
||||
|
||||
|
@ -261,7 +283,7 @@ msgstr ""
|
|||
msgid "CADir"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -275,6 +297,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -437,6 +460,7 @@ msgid "Create Folder"
|
|||
msgstr "Tạo thêm"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "Ngày tạo"
|
||||
|
@ -458,12 +482,12 @@ msgstr "Chứng chỉ"
|
|||
msgid "Credentials"
|
||||
msgstr "Chứng chỉ"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
|
@ -687,6 +711,12 @@ msgstr "Đang tải phiên bản mới nhất"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr "Đã bật chế độ Dry run"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -762,12 +792,7 @@ 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}"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA"
|
||||
msgstr "Đã bật"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
#, fuzzy
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "Đã bật"
|
||||
|
@ -790,6 +815,11 @@ msgstr "Đã bật"
|
|||
msgid "Enable TLS"
|
||||
msgstr "Bật TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "Bật TLS"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -908,6 +938,12 @@ msgstr "Lọc"
|
|||
msgid "Finished"
|
||||
msgstr "Đã hoàn thành"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
#, fuzzy
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
|
@ -981,18 +1017,22 @@ msgstr ""
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -1009,7 +1049,7 @@ msgstr "Xuất"
|
|||
msgid "Import Certificate"
|
||||
msgstr "Chứng chỉ"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
#, fuzzy
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "Tên người dùng hoặc mật khẩu không chính xác"
|
||||
|
@ -1026,12 +1066,12 @@ 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"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1053,7 +1093,7 @@ msgstr ""
|
|||
msgid "Invalid"
|
||||
msgstr "Hợp lệ"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1067,11 +1107,11 @@ msgstr "E-mail không chính xác!"
|
|||
msgid "Invalid folder name"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1108,6 +1148,11 @@ msgstr "Loại"
|
|||
msgid "Last checked at"
|
||||
msgstr "Kiểm tra lần cuối lúc"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "Kiểm tra lần cuối lúc"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "Bỏ trống nếu không thay đổi"
|
||||
|
@ -1173,11 +1218,11 @@ msgstr "Locations"
|
|||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "Đăng nhập"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "Đăng nhập thành công"
|
||||
|
||||
|
@ -1230,7 +1275,7 @@ msgstr "Người dùng"
|
|||
msgid "Managed Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1290,6 +1335,7 @@ msgstr "Single Directive"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1376,7 +1422,7 @@ msgstr "Restart Nginx thành công"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1478,6 +1524,10 @@ msgstr "Trực tuyến"
|
|||
msgid "OpenAI"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr ""
|
||||
|
@ -1507,7 +1557,18 @@ msgstr "Ghi đè tập tin đã tồn tại"
|
|||
msgid "Params"
|
||||
msgstr "Tham số"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "Mật khẩu"
|
||||
|
||||
|
@ -1533,8 +1594,14 @@ msgstr "Nâng cấp core không thành công"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "Nâng cấp core"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1579,11 +1646,11 @@ msgstr ""
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "Vui lòng nhập E-mail của bạn!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "Vui lòng nhập mật khẩu!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "Vui lòng nhập username!"
|
||||
|
||||
|
@ -1647,16 +1714,16 @@ msgstr ""
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "Xoá thành công"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1678,6 +1745,11 @@ msgstr "Đăng ký người dùng"
|
|||
msgid "Register failed"
|
||||
msgstr "Đăng ký người dùng"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "Gia hạn chứng chỉ SSL"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
#, fuzzy
|
||||
msgid "Register successfully"
|
||||
|
@ -1714,11 +1786,12 @@ msgstr "Đang tải lại"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "Tải lại nginx"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
#, fuzzy
|
||||
msgid "Remove successfully"
|
||||
msgstr "Xoá thành công"
|
||||
|
@ -1798,7 +1871,7 @@ msgstr "Yêu cầu có chứa tham số sai"
|
|||
msgid "Reset"
|
||||
msgstr "Đặt lại"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
#, fuzzy
|
||||
msgid "Reset 2FA"
|
||||
msgstr "Đặt lại"
|
||||
|
@ -1824,6 +1897,7 @@ msgstr "Running"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "Lưu"
|
||||
|
@ -1852,7 +1926,7 @@ msgstr "Lưu thành công"
|
|||
msgid "Saved successfully"
|
||||
msgstr "Lưu thành công"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1860,7 +1934,7 @@ msgstr ""
|
|||
msgid "SDK"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1885,9 +1959,12 @@ msgstr "Gửi"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1933,6 +2010,10 @@ msgstr "Sử dụng HTTP01 để xác thực SSL"
|
|||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "Single Directive"
|
||||
|
@ -1962,7 +2043,7 @@ msgstr ""
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
msgid "SSO Login"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2130,7 +2211,7 @@ msgstr ""
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr ""
|
||||
|
@ -2193,7 +2274,8 @@ msgid ""
|
|||
"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr ""
|
||||
|
@ -2202,12 +2284,19 @@ msgstr ""
|
|||
msgid "Title"
|
||||
msgstr "Tiêu đề"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2224,11 +2313,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2238,7 +2331,7 @@ msgstr ""
|
|||
msgid "Trash"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2248,6 +2341,11 @@ msgstr ""
|
|||
msgid "Type"
|
||||
msgstr "Loại"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "Cập nhật thành công"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2294,11 +2392,11 @@ msgstr "Thời gian hoạt động:"
|
|||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2307,11 +2405,11 @@ msgstr ""
|
|||
msgid "User"
|
||||
msgstr "Người dùng"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
|
@ -2353,6 +2451,7 @@ msgstr "Cơ bản"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "Lưu ý"
|
||||
|
||||
|
@ -2387,7 +2486,7 @@ msgstr "Ghi chứng chỉ vào disk"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "Có"
|
||||
|
@ -2400,6 +2499,20 @@ msgstr "Bạn đang sử dụng phiên bản mới nhất"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "Bạn có thể kiểm tra nâng cấp Nginx UI tại trang này"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "Đã bật"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Rename "
|
||||
#~ msgstr "Username"
|
||||
|
|
Binary file not shown.
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr "2FA"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr "2FA 设置"
|
||||
|
||||
|
@ -40,7 +40,7 @@ msgstr "ACME 用户"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
@ -55,6 +55,11 @@ msgstr "操作"
|
|||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr "添加 Passkey"
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
msgid "Add Configuration"
|
||||
|
@ -89,6 +94,10 @@ msgstr "额外选项"
|
|||
msgid "Advance Mode"
|
||||
msgstr "高级模式"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr "然后,刷新此页面并再次点击添加 Passkey。"
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr "API 地址"
|
||||
|
@ -109,10 +118,14 @@ msgstr "API Token"
|
|||
msgid "Arch"
|
||||
msgstr "架构"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "您确定要立即删除这个被禁用的 IP 吗?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "您确定要立即删除这个 Passkey 吗?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
msgid "Are you sure you want to clear all notifications?"
|
||||
|
@ -158,7 +171,7 @@ msgstr "与ChatGPT聊天"
|
|||
msgid "Assistant"
|
||||
msgstr "助手"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr "尝试次数"
|
||||
|
||||
|
@ -166,6 +179,14 @@ msgstr "尝试次数"
|
|||
msgid "Auth"
|
||||
msgstr "认证"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr "通过 Passkey 认证"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr "认证设置"
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -198,15 +219,15 @@ msgstr "返回首页"
|
|||
msgid "Back to list"
|
||||
msgstr "返回列表"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr "禁止阈值(分钟)"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr "禁止 IP 列表"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr "禁用至"
|
||||
|
||||
|
@ -246,7 +267,7 @@ msgstr "CA Dir"
|
|||
msgid "CADir"
|
||||
msgstr "CADir"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr "无法扫描?使用文本密钥绑定"
|
||||
|
||||
|
@ -260,6 +281,7 @@ msgstr "无法扫描?使用文本密钥绑定"
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -407,6 +429,7 @@ msgid "Create Folder"
|
|||
msgstr "创建文件夹"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "创建时间"
|
||||
|
@ -427,13 +450,13 @@ msgstr "DNS 凭证"
|
|||
msgid "Credentials"
|
||||
msgstr "凭证"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
msgstr "当前账户已启用二步验证。"
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr "当前账户已启用 TOTP 验证。"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
msgstr "当前用户未启用二步验证。"
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr "当前用户未启用 TOTP 验证。"
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
msgid "Current Version"
|
||||
|
@ -640,6 +663,14 @@ msgstr "下载最新版本"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr "试运行模式已启动"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
"由于某些浏览器的安全策略,除非在 localhost 上使用,否则不能在非 HTTPS 网站上"
|
||||
"使用 Passkey。"
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -708,11 +739,7 @@ msgstr "在%{node_name}中启用%{conf_name}失败"
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr "成功启用%{node_name}中的%{conf_name}"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
msgid "Enable 2FA"
|
||||
msgstr "启用二步验证"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "二步验证启用成功"
|
||||
|
||||
|
@ -733,6 +760,10 @@ msgstr "启用成功"
|
|||
msgid "Enable TLS"
|
||||
msgstr "启用 TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
msgid "Enable TOTP"
|
||||
msgstr "启用 TOTP"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -846,6 +877,12 @@ msgstr "过滤"
|
|||
msgid "Finished"
|
||||
msgstr "完成"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr "按照对话框中的指示完成 Passkey 的注册过程。"
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr "中国用户:https://mirror.ghproxy.com/"
|
||||
|
@ -914,7 +951,7 @@ msgstr "HTTP01"
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr "如果留空,则使用默认 CA Dir。"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
|
@ -922,12 +959,16 @@ msgstr ""
|
|||
"如果某个 IP 的登录失败次数达到禁用阈值分钟内的最大尝试次数,该 IP 将被禁止登"
|
||||
"录一段时间。"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
msgstr "如果丢失了手机,可以使用恢复代码重置二步验证。"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr "如果您的浏览器支持 WebAuthn Passkey,则会出现一个对话框。"
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -942,7 +983,7 @@ msgstr "导入"
|
|||
msgid "Import Certificate"
|
||||
msgstr "导入证书"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "用户名或密码错误"
|
||||
|
||||
|
@ -958,12 +999,12 @@ msgstr "初始化核心升级程序错误"
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr "初始化核心升级器"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr "输入应用程序中的代码:"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr "输入恢复代码:"
|
||||
|
||||
|
@ -983,7 +1024,7 @@ msgstr "间隔"
|
|||
msgid "Invalid"
|
||||
msgstr "无效的"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr "无效的二步验证码或恢复密码"
|
||||
|
||||
|
@ -996,11 +1037,11 @@ msgstr "文件名无效"
|
|||
msgid "Invalid folder name"
|
||||
msgstr "无效文件夹名"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr "二次验证码或恢复代码无效"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
|
||||
|
@ -1033,6 +1074,10 @@ msgstr "密钥类型"
|
|||
msgid "Last checked at"
|
||||
msgstr "最后检查时间"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
msgid "Last used at"
|
||||
msgstr "上次使用"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "留空表示不修改"
|
||||
|
@ -1092,11 +1137,11 @@ msgstr "Locations"
|
|||
msgid "Log"
|
||||
msgstr "日志"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "登录"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "登录成功"
|
||||
|
||||
|
@ -1151,7 +1196,7 @@ msgstr "用户管理"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "托管证书"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr "最大尝试次数"
|
||||
|
||||
|
@ -1206,6 +1251,7 @@ msgstr "多行指令"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1287,7 +1333,7 @@ msgstr "Nginx 重启成功"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1386,6 +1432,10 @@ msgstr "在线"
|
|||
msgid "OpenAI"
|
||||
msgstr "OpenAI"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr "或"
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr "原名"
|
||||
|
@ -1414,7 +1464,20 @@ msgstr "覆盖现有文件"
|
|||
msgid "Params"
|
||||
msgstr "参数"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr "Passkey"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
"Passkey 是一种网络认证凭据,可通过指纹、面部识别、设备密码或 PIN 码验证身份。"
|
||||
"它们可用作密码替代品或二步验证方法。"
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "密码"
|
||||
|
||||
|
@ -1440,9 +1503,15 @@ msgstr "执行核心升级错误"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "正在进行核心升级"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
msgstr "请输入二步验证码:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr "请为您要创建的 Passkey 输入一个名称,然后单击下面的 \"确定 \"按钮。"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr "请输入 OTP:"
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
msgid ""
|
||||
|
@ -1482,11 +1551,11 @@ msgstr "请输入名称,这将被用作新配置的文件名!"
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "请输入您的邮箱!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "请输入您的密码!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "请输入您的用户名!"
|
||||
|
||||
|
@ -1548,16 +1617,16 @@ msgstr "恢复"
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "恢复成功"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr "恢复"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr "恢复代码"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr "恢复代码:"
|
||||
|
||||
|
@ -1577,6 +1646,10 @@ msgstr "注册"
|
|||
msgid "Register failed"
|
||||
msgstr "注册失败"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "Passkey 注册成功"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
msgid "Register successfully"
|
||||
msgstr "注册成功"
|
||||
|
@ -1610,11 +1683,12 @@ msgstr "重载中"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "正在重载 Nginx"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr "删除"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
msgid "Remove successfully"
|
||||
msgstr "移除成功"
|
||||
|
||||
|
@ -1684,7 +1758,7 @@ msgstr "请求参数错误"
|
|||
msgid "Reset"
|
||||
msgstr "重置"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
msgid "Reset 2FA"
|
||||
msgstr "重置二步验证"
|
||||
|
||||
|
@ -1708,6 +1782,7 @@ msgstr "运行中"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "保存"
|
||||
|
@ -1735,7 +1810,7 @@ msgstr "保存成功"
|
|||
msgid "Saved successfully"
|
||||
msgstr "保存成功"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr "用手机扫描二维码,将账户添加到应用程序中。"
|
||||
|
||||
|
@ -1743,7 +1818,7 @@ msgstr "用手机扫描二维码,将账户添加到应用程序中。"
|
|||
msgid "SDK"
|
||||
msgstr "SDK"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr "密钥已复制"
|
||||
|
||||
|
@ -1768,9 +1843,12 @@ msgstr "上传"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1814,6 +1892,10 @@ msgstr "使用 HTTP01 challenge provider"
|
|||
msgid "Show"
|
||||
msgstr "显示"
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr "使用 Passkey 登录"
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "单行指令"
|
||||
|
@ -1842,7 +1924,7 @@ msgstr "SSL证书密钥路径"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "SSL证书路径"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
msgid "SSO Login"
|
||||
msgstr "SSO 登录"
|
||||
|
||||
|
@ -2000,7 +2082,7 @@ msgstr "路径存在,但文件不是证书"
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr "路径存在,但文件不是私钥"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr "恢复密码只会显示一次,请妥善保存。"
|
||||
|
@ -2063,7 +2145,8 @@ msgid ""
|
|||
"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr "将 %{nodeNames} 上的 Nginx UI 升级或重新安装到 %{version} 版本。"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr "提示"
|
||||
|
@ -2072,13 +2155,22 @@ msgstr "提示"
|
|||
msgid "Title"
|
||||
msgstr "标题"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
msgstr ""
|
||||
"要启用该功能,您需要在手机上安装 Google 或 Microsoft Authenticator 应用程序。"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
"为确保安全,Webauthn 配置不能通过用户界面添加。请在 app.ini 配置文件中手动配"
|
||||
"置以下内容,并重启 Nginx UI 服务。"
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2093,11 +2185,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr "Token 无效"
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr "登录失败次数过多,请稍后再试"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr "TOTP"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2107,7 +2203,7 @@ msgstr "TOTP 是一种使用基于时间的一次性密码算法的双因素身
|
|||
msgid "Trash"
|
||||
msgstr "回收站"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr "需要两步验证"
|
||||
|
||||
|
@ -2117,6 +2213,10 @@ msgstr "需要两步验证"
|
|||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
msgid "Update successfully"
|
||||
msgstr "更新成功"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2160,11 +2260,11 @@ msgstr "运行时间:"
|
|||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr "使用二步验证码"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr "使用恢复代码"
|
||||
|
||||
|
@ -2172,11 +2272,11 @@ msgstr "使用恢复代码"
|
|||
msgid "User"
|
||||
msgstr "用户"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr "用户被禁止"
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "用户名"
|
||||
|
||||
|
@ -2214,6 +2314,7 @@ msgstr "预览模式"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
|
@ -2245,7 +2346,7 @@ msgstr "正在将证书写入磁盘"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "是的"
|
||||
|
@ -2258,6 +2359,19 @@ msgstr "您使用的是最新版本"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "你可以在这个页面检查Nginx UI的升级。"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr "您尚未配置 Webauthn 的设置,因此无法添加 Passkey。"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr "你的 Passkeys"
|
||||
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "启用二步验证"
|
||||
|
||||
#~ msgid "Enter"
|
||||
#~ msgstr "进入"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ msgstr ""
|
|||
msgid "2FA"
|
||||
msgstr "多重要素驗證"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:90
|
||||
#: src/views/preference/AuthSettings.vue:58
|
||||
msgid "2FA Settings"
|
||||
msgstr "多重要素驗證設定"
|
||||
|
||||
|
@ -44,7 +44,7 @@ msgstr "ACME 用戶"
|
|||
#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
|
||||
#: src/views/environment/envColumns.tsx:131
|
||||
#: src/views/notification/notificationColumns.tsx:54
|
||||
#: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:27 src/views/stream/StreamList.vue:47
|
||||
#: src/views/user/userColumns.tsx:60
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
@ -59,6 +59,11 @@ msgstr "操作"
|
|||
msgid "Add"
|
||||
msgstr "新增"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:51
|
||||
#: src/views/preference/components/AddPasskey.vue:55
|
||||
msgid "Add a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
|
||||
#: src/views/config/ConfigEditor.vue:204
|
||||
msgid "Add Configuration"
|
||||
|
@ -93,6 +98,10 @@ msgstr "其他設定"
|
|||
msgid "Advance Mode"
|
||||
msgstr "進階模式"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:105
|
||||
msgid "Afterwards, refresh this page and click add passkey again."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/OpenAISettings.vue:44
|
||||
msgid "API Base Url"
|
||||
msgstr "API 基礎網址"
|
||||
|
@ -113,10 +122,15 @@ msgstr "API Token"
|
|||
msgid "Arch"
|
||||
msgstr "架構"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:96
|
||||
#: src/views/preference/AuthSettings.vue:102
|
||||
msgid "Are you sure to delete this banned IP immediately?"
|
||||
msgstr "您確定要刪除這個被禁用的 IP 嗎?"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:119
|
||||
#, fuzzy
|
||||
msgid "Are you sure to delete this passkey immediately?"
|
||||
msgstr "您確定要刪除這個被禁用的 IP 嗎?"
|
||||
|
||||
#: src/components/Notification/Notification.vue:86
|
||||
#: src/views/notification/Notification.vue:40
|
||||
msgid "Are you sure you want to clear all notifications?"
|
||||
|
@ -162,7 +176,7 @@ msgstr "向 ChatGPT 尋求幫助"
|
|||
msgid "Assistant"
|
||||
msgstr "助理"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:17
|
||||
#: src/views/preference/AuthSettings.vue:18
|
||||
msgid "Attempts"
|
||||
msgstr "嘗試次數"
|
||||
|
||||
|
@ -170,6 +184,14 @@ msgstr "嘗試次數"
|
|||
msgid "Auth"
|
||||
msgstr "身份驗證"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:126
|
||||
msgid "Authenticate with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:63
|
||||
msgid "Authentication Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:106
|
||||
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:120
|
||||
msgid "Author"
|
||||
|
@ -202,15 +224,15 @@ msgstr "返回首頁"
|
|||
msgid "Back to list"
|
||||
msgstr "返回列表"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:70
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
msgid "Ban Threshold Minutes"
|
||||
msgstr "封禁閾值分鐘數"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:84
|
||||
#: src/views/preference/AuthSettings.vue:90
|
||||
msgid "Banned IPs"
|
||||
msgstr "被禁止的 IP"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:20
|
||||
#: src/views/preference/AuthSettings.vue:21
|
||||
msgid "Banned Until"
|
||||
msgstr "禁止至"
|
||||
|
||||
|
@ -250,7 +272,7 @@ msgstr "CA Dir"
|
|||
msgid "CADir"
|
||||
msgstr "CADir"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
#: src/views/preference/components/TOTP.vue:151
|
||||
msgid "Can't scan? Use text key binding"
|
||||
msgstr ""
|
||||
|
||||
|
@ -264,6 +286,7 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
|
||||
#: src/views/domain/ngx_conf/NgxServer.vue:80
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:33
|
||||
#: src/views/preference/components/Passkey.vue:147
|
||||
#: src/views/stream/components/Deploy.vue:21
|
||||
#: src/views/stream/components/RightSettings.vue:51
|
||||
msgid "Cancel"
|
||||
|
@ -411,6 +434,7 @@ msgid "Create Folder"
|
|||
msgstr "創建資料夾"
|
||||
|
||||
#: src/views/notification/notificationColumns.tsx:48
|
||||
#: src/views/preference/components/Passkey.vue:101
|
||||
#: src/views/user/userColumns.tsx:48
|
||||
msgid "Created at"
|
||||
msgstr "建立時間"
|
||||
|
@ -431,12 +455,14 @@ msgstr "認證"
|
|||
msgid "Credentials"
|
||||
msgstr "認證資訊"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:98
|
||||
msgid "Current account is enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:99
|
||||
#, fuzzy
|
||||
msgid "Current account is enabled TOTP."
|
||||
msgstr "當前帳戶已啟用多因素身份驗證。"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:95
|
||||
msgid "Current account is not enabled 2FA."
|
||||
#: src/views/preference/components/TOTP.vue:96
|
||||
#, fuzzy
|
||||
msgid "Current account is not enabled TOTP."
|
||||
msgstr "當前帳戶未啟用多因素身份驗證。"
|
||||
|
||||
#: src/views/system/Upgrade.vue:167
|
||||
|
@ -644,6 +670,12 @@ msgstr "正在下載最新版本"
|
|||
msgid "Dry run mode enabled"
|
||||
msgstr "試運轉模式已啟用"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:107
|
||||
msgid ""
|
||||
"Due to the security policies of some browsers, you cannot use passkeys on "
|
||||
"non-HTTPS websites, except when running on localhost."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/components/SiteDuplicate.vue:122
|
||||
#: src/views/domain/DomainList.vue:140
|
||||
#: src/views/stream/components/StreamDuplicate.vue:122
|
||||
|
@ -712,11 +744,7 @@ msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
|
|||
msgid "Enable %{conf_name} in %{node_name} successfully"
|
||||
msgstr "成功在 %{node_name} 啟用 %{conf_name}"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:124
|
||||
msgid "Enable 2FA"
|
||||
msgstr "啟用多因素身份驗證"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:54
|
||||
#: src/views/preference/components/TOTP.vue:55
|
||||
msgid "Enable 2FA successfully"
|
||||
msgstr "啟用多因素身份驗證成功"
|
||||
|
||||
|
@ -737,6 +765,11 @@ msgstr "啟用成功"
|
|||
msgid "Enable TLS"
|
||||
msgstr "啟用 TLS"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:125
|
||||
#, fuzzy
|
||||
msgid "Enable TOTP"
|
||||
msgstr "啟用 TLS"
|
||||
|
||||
#: src/views/domain/components/RightSettings.vue:77
|
||||
#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:29
|
||||
#: src/views/environment/envColumns.tsx:104
|
||||
|
@ -850,6 +883,12 @@ msgstr "篩選"
|
|||
msgid "Finished"
|
||||
msgstr "完成"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:77
|
||||
msgid ""
|
||||
"Follow the instructions in the dialog to complete the passkey registration "
|
||||
"process."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/BasicSettings.vue:43
|
||||
msgid "For Chinese user: https://mirror.ghproxy.com/"
|
||||
msgstr "中國使用者:https://mirror.ghproxy.com/"
|
||||
|
@ -918,7 +957,7 @@ msgstr "HTTP01"
|
|||
msgid "If left blank, the default CA Dir will be used."
|
||||
msgstr "如果留空,將使用默認的 CA Dir。"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:62
|
||||
#: src/views/preference/AuthSettings.vue:68
|
||||
msgid ""
|
||||
"If the number of login failed attempts from a ip reach the max attempts in "
|
||||
"ban threshold minutes, the ip will be banned for a period of time."
|
||||
|
@ -926,12 +965,16 @@ msgstr ""
|
|||
"如果來自某個 IP 的登錄失敗次數在禁止閾值分鐘內達到最大嘗試次數,該 IP 將被禁"
|
||||
"止一段時間。"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:110
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
msgid ""
|
||||
"If you lose your mobile phone, you can use the recovery code to reset your "
|
||||
"2FA."
|
||||
msgstr "如果您丟失了手機,可以使用恢復碼重置您的多重因素驗證驗證。"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:76
|
||||
msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/components/AutoCertStepOne.vue:109
|
||||
msgid ""
|
||||
"If your domain has CNAME records and you cannot obtain certificates, you "
|
||||
|
@ -946,7 +989,7 @@ msgstr "導入"
|
|||
msgid "Import Certificate"
|
||||
msgstr "導入憑證"
|
||||
|
||||
#: src/views/other/Login.vue:76
|
||||
#: src/views/other/Login.vue:79
|
||||
msgid "Incorrect username or password"
|
||||
msgstr "使用者名稱或密碼不正確"
|
||||
|
||||
|
@ -962,12 +1005,12 @@ msgstr "初始化核心升級程式錯誤"
|
|||
msgid "Initialing core upgrader"
|
||||
msgstr "正在初始化核心升級程式"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:157
|
||||
#: src/views/preference/components/TOTP.vue:158
|
||||
msgid "Input the code from the app:"
|
||||
msgstr "請輸入應用程式中的代碼:"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:170
|
||||
#: src/components/2FA/Authorization.vue:87
|
||||
#: src/views/preference/components/TOTP.vue:171
|
||||
msgid "Input the recovery code:"
|
||||
msgstr "輸入恢復碼:"
|
||||
|
||||
|
@ -987,7 +1030,7 @@ msgstr "間隔"
|
|||
msgid "Invalid"
|
||||
msgstr "無效"
|
||||
|
||||
#: src/views/other/Login.vue:86
|
||||
#: src/views/other/Login.vue:89
|
||||
msgid "Invalid 2FA or recovery code"
|
||||
msgstr "無效的多重因素驗證或恢復碼"
|
||||
|
||||
|
@ -1000,11 +1043,11 @@ msgstr "無效的檔案名"
|
|||
msgid "Invalid folder name"
|
||||
msgstr "無效的資料夾名稱"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:61
|
||||
#: src/components/2FA/use2FAModal.ts:65
|
||||
msgid "Invalid passcode or recovery code"
|
||||
msgstr "無效的密碼或恢復碼"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:14
|
||||
#: src/views/preference/AuthSettings.vue:15
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
|
||||
|
@ -1037,6 +1080,11 @@ msgstr "密鑰類型"
|
|||
msgid "Last checked at"
|
||||
msgstr "上次檢查時間"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:102
|
||||
#, fuzzy
|
||||
msgid "Last used at"
|
||||
msgstr "上次檢查時間"
|
||||
|
||||
#: src/views/user/userColumns.tsx:25
|
||||
msgid "Leave blank for no change"
|
||||
msgstr "留空表示不修改"
|
||||
|
@ -1096,11 +1144,11 @@ msgstr "Locations"
|
|||
msgid "Log"
|
||||
msgstr "日誌"
|
||||
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:207
|
||||
#: src/routes/index.ts:305 src/views/other/Login.vue:247
|
||||
msgid "Login"
|
||||
msgstr "登入"
|
||||
|
||||
#: src/views/other/Login.vue:130 src/views/other/Login.vue:63
|
||||
#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
|
||||
msgid "Login successful"
|
||||
msgstr "登入成功"
|
||||
|
||||
|
@ -1154,7 +1202,7 @@ msgstr "管理使用者"
|
|||
msgid "Managed Certificate"
|
||||
msgstr "受管理的憑證"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:76
|
||||
#: src/views/preference/AuthSettings.vue:82
|
||||
msgid "Max Attempts"
|
||||
msgstr "最大嘗試次數"
|
||||
|
||||
|
@ -1209,6 +1257,7 @@ msgstr "多行指令"
|
|||
#: src/views/domain/DomainList.vue:13
|
||||
#: src/views/domain/ngx_conf/NgxUpstream.vue:175
|
||||
#: src/views/environment/envColumns.tsx:9
|
||||
#: src/views/preference/components/AddPasskey.vue:81
|
||||
#: src/views/stream/components/RightSettings.vue:82
|
||||
#: src/views/stream/components/StreamDuplicate.vue:129
|
||||
#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
|
||||
|
@ -1290,7 +1339,7 @@ msgstr "Nginx 重啟成功"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:70
|
||||
#: src/views/notification/Notification.vue:38
|
||||
#: src/views/preference/AuthSettings.vue:98
|
||||
#: src/views/preference/AuthSettings.vue:104
|
||||
#: src/views/preference/BasicSettings.vue:101
|
||||
#: src/views/stream/StreamList.vue:165
|
||||
msgid "No"
|
||||
|
@ -1389,6 +1438,10 @@ msgstr "線上"
|
|||
msgid "OpenAI"
|
||||
msgstr "OpenAI"
|
||||
|
||||
#: src/components/2FA/Authorization.vue:117 src/views/other/Login.vue:256
|
||||
msgid "Or"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/components/Rename.vue:69
|
||||
msgid "Original name"
|
||||
msgstr "原始名稱"
|
||||
|
@ -1417,7 +1470,18 @@ msgstr "覆蓋現有檔案"
|
|||
msgid "Params"
|
||||
msgstr "參數"
|
||||
|
||||
#: src/views/other/Login.vue:174 src/views/user/userColumns.tsx:18
|
||||
#: src/views/preference/components/Passkey.vue:65
|
||||
msgid "Passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:68
|
||||
msgid ""
|
||||
"Passkeys are webauthn credentials that validate your identity using touch, "
|
||||
"facial recognition, a device password, or a PIN. They can be used as a "
|
||||
"password replacement or as a 2FA method."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
|
||||
msgid "Password"
|
||||
msgstr "密碼"
|
||||
|
||||
|
@ -1443,8 +1507,15 @@ msgstr "執行核心升級錯誤"
|
|||
msgid "Performing core upgrade"
|
||||
msgstr "正在執行核心升級"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:37
|
||||
msgid "Please enter the 2FA code:"
|
||||
#: src/views/preference/components/AddPasskey.vue:75
|
||||
msgid ""
|
||||
"Please enter a name for the passkey you wish to create and click the OK "
|
||||
"button below."
|
||||
msgstr ""
|
||||
|
||||
#: src/components/2FA/Authorization.vue:75
|
||||
#, fuzzy
|
||||
msgid "Please enter the OTP code:"
|
||||
msgstr "請輸入多重因素驗證碼:"
|
||||
|
||||
#: src/views/certificate/DNSCredential.vue:53
|
||||
|
@ -1485,11 +1556,11 @@ msgstr "請輸入名稱,這將作為新設定的檔名!"
|
|||
msgid "Please input your E-mail!"
|
||||
msgstr "請輸入您的電子郵件!"
|
||||
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:44
|
||||
#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
|
||||
msgid "Please input your password!"
|
||||
msgstr "請輸入您的密碼!"
|
||||
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:38
|
||||
#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
|
||||
msgid "Please input your username!"
|
||||
msgstr "請輸入您的使用者名稱!"
|
||||
|
||||
|
@ -1551,16 +1622,16 @@ msgstr "恢復"
|
|||
msgid "Recovered Successfully"
|
||||
msgstr "恢復成功"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:177
|
||||
#: src/components/2FA/Authorization.vue:94
|
||||
#: src/views/preference/components/TOTP.vue:178
|
||||
msgid "Recovery"
|
||||
msgstr "恢復"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:103
|
||||
#: src/views/preference/components/TOTP.vue:104
|
||||
msgid "Recovery Code"
|
||||
msgstr "恢復碼"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
#: src/views/preference/components/TOTP.vue:113
|
||||
msgid "Recovery Code:"
|
||||
msgstr "恢復碼:"
|
||||
|
||||
|
@ -1580,6 +1651,11 @@ msgstr "註冊"
|
|||
msgid "Register failed"
|
||||
msgstr "註冊失敗"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:26
|
||||
#, fuzzy
|
||||
msgid "Register passkey successfully"
|
||||
msgstr "註冊成功"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:67
|
||||
msgid "Register successfully"
|
||||
msgstr "註冊成功"
|
||||
|
@ -1613,11 +1689,12 @@ msgstr "重新載入中"
|
|||
msgid "Reloading nginx"
|
||||
msgstr "正在重新載入 Nginx"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/AuthSettings.vue:109
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:47
|
||||
#: src/views/preference/AuthSettings.vue:48
|
||||
#: src/views/preference/components/Passkey.vue:50
|
||||
msgid "Remove successfully"
|
||||
msgstr "移除成功"
|
||||
|
||||
|
@ -1687,7 +1764,7 @@ msgstr "請求參數錯誤"
|
|||
msgid "Reset"
|
||||
msgstr "重設"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:132
|
||||
#: src/views/preference/components/TOTP.vue:133
|
||||
msgid "Reset 2FA"
|
||||
msgstr "重置多重因素驗證"
|
||||
|
||||
|
@ -1711,6 +1788,7 @@ msgstr "執行中"
|
|||
#: src/views/certificate/CertificateEditor.vue:254
|
||||
#: src/views/config/ConfigEditor.vue:222 src/views/domain/DomainEdit.vue:260
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
|
||||
#: src/views/preference/components/Passkey.vue:136
|
||||
#: src/views/preference/Preference.vue:151 src/views/stream/StreamEdit.vue:252
|
||||
msgid "Save"
|
||||
msgstr "儲存"
|
||||
|
@ -1738,7 +1816,7 @@ msgstr "儲存成功"
|
|||
msgid "Saved successfully"
|
||||
msgstr "儲存成功"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
#: src/views/preference/components/TOTP.vue:94
|
||||
msgid "Scan the QR code with your mobile phone to add the account to the app."
|
||||
msgstr "用手機掃描二維碼將賬戶添加到應用程序中。"
|
||||
|
||||
|
@ -1746,7 +1824,7 @@ msgstr "用手機掃描二維碼將賬戶添加到應用程序中。"
|
|||
msgid "SDK"
|
||||
msgstr "SDK"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:149
|
||||
#: src/views/preference/components/TOTP.vue:150
|
||||
msgid "Secret has been copied"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1771,9 +1849,12 @@ msgstr "傳送"
|
|||
#: src/views/config/ConfigEditor.vue:108 src/views/domain/DomainList.vue:81
|
||||
#: src/views/environment/BatchUpgrader.vue:57
|
||||
#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
|
||||
#: src/views/preference/AuthSettings.vue:49
|
||||
#: src/views/preference/components/TOTP.vue:44
|
||||
#: src/views/preference/components/TOTP.vue:57
|
||||
#: src/views/preference/AuthSettings.vue:50
|
||||
#: src/views/preference/components/Passkey.vue:26
|
||||
#: src/views/preference/components/Passkey.vue:43
|
||||
#: src/views/preference/components/Passkey.vue:56
|
||||
#: src/views/preference/components/TOTP.vue:45
|
||||
#: src/views/preference/components/TOTP.vue:58
|
||||
#: src/views/preference/Preference.vue:83 src/views/stream/StreamList.vue:113
|
||||
#: src/views/stream/StreamList.vue:81 src/views/system/Upgrade.vue:42
|
||||
msgid "Server error"
|
||||
|
@ -1817,6 +1898,10 @@ msgstr "使用 HTTP01 挑戰提供者"
|
|||
msgid "Show"
|
||||
msgstr "顯示"
|
||||
|
||||
#: src/views/other/Login.vue:265
|
||||
msgid "Sign in with a passkey"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:51
|
||||
msgid "Single Directive"
|
||||
msgstr "單一指令"
|
||||
|
@ -1845,7 +1930,7 @@ msgstr "SSL 憑證金鑰路徑"
|
|||
msgid "SSL Certificate Path"
|
||||
msgstr "SSL 憑證路徑"
|
||||
|
||||
#: src/views/other/Login.vue:189
|
||||
#: src/views/other/Login.vue:223
|
||||
msgid "SSO Login"
|
||||
msgstr "SSO 登錄"
|
||||
|
||||
|
@ -2003,7 +2088,7 @@ msgstr "路徑存在,但檔案不是憑證"
|
|||
msgid "The path exists, but the file is not a private key"
|
||||
msgstr "路徑存在,但檔案不是金鑰"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:111
|
||||
#: src/views/preference/components/TOTP.vue:112
|
||||
msgid ""
|
||||
"The recovery code is only displayed once, please save it in a safe place."
|
||||
msgstr "恢復碼僅顯示一次,請將其保存在安全的地方。"
|
||||
|
@ -2066,7 +2151,8 @@ msgid ""
|
|||
"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
|
||||
msgstr "這將在 %{nodeNames} 上升級或重新安裝 Nginx UI 到 %{version}。"
|
||||
|
||||
#: src/views/preference/AuthSettings.vue:61
|
||||
#: src/views/preference/AuthSettings.vue:67
|
||||
#: src/views/preference/components/AddPasskey.vue:71
|
||||
#: src/views/preference/LogrotateSettings.vue:11
|
||||
msgid "Tips"
|
||||
msgstr "提示"
|
||||
|
@ -2075,13 +2161,20 @@ msgstr "提示"
|
|||
msgid "Title"
|
||||
msgstr "標題"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
#: src/views/preference/components/TOTP.vue:93
|
||||
msgid ""
|
||||
"To enable it, you need to install the Google or Microsoft Authenticator app "
|
||||
"on your mobile phone."
|
||||
msgstr ""
|
||||
"要啟用它,您需要在手機上安裝 Google 或 Microsoft Authenticator 應用程序。"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:95
|
||||
msgid ""
|
||||
"To ensure security, Webauthn configuration cannot be added through the UI. "
|
||||
"Please manually configure the following in the app.ini configuration file "
|
||||
"and restart Nginx UI."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
|
||||
msgid ""
|
||||
"To make sure the certification auto-renewal can work normally, we need to "
|
||||
|
@ -2096,11 +2189,15 @@ msgstr ""
|
|||
msgid "Token is not valid"
|
||||
msgstr "令牌無效"
|
||||
|
||||
#: src/views/other/Login.vue:79
|
||||
#: src/views/other/Login.vue:82
|
||||
msgid "Too many login failed attempts, please try again later"
|
||||
msgstr "登錄失敗次數過多,請稍後再試"
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:91
|
||||
msgid "TOTP"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/TOTP.vue:92
|
||||
msgid ""
|
||||
"TOTP is a two-factor authentication method that uses a time-based one-time "
|
||||
"password algorithm."
|
||||
|
@ -2110,7 +2207,7 @@ msgstr "TOTP 是一種使用基於時間的一次性密碼算法的多重因素
|
|||
msgid "Trash"
|
||||
msgstr "垃圾桶"
|
||||
|
||||
#: src/components/OTP/useOTPModal.ts:67
|
||||
#: src/components/2FA/use2FAModal.ts:71
|
||||
msgid "Two-factor authentication required"
|
||||
msgstr "需要多重因素驗證"
|
||||
|
||||
|
@ -2120,6 +2217,11 @@ msgstr "需要多重因素驗證"
|
|||
msgid "Type"
|
||||
msgstr "類型"
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:41
|
||||
#, fuzzy
|
||||
msgid "Update successfully"
|
||||
msgstr "更新成功"
|
||||
|
||||
#: src/views/certificate/ACMEUser.vue:53
|
||||
#: src/views/certificate/DNSCredential.vue:27
|
||||
#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
|
||||
|
@ -2163,11 +2265,11 @@ msgstr "運作時間:"
|
|||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:69
|
||||
#: src/components/2FA/Authorization.vue:107
|
||||
msgid "Use OTP"
|
||||
msgstr "使用一次性密碼"
|
||||
|
||||
#: src/components/OTP/OTPAuthorization.vue:65
|
||||
#: src/components/2FA/Authorization.vue:103
|
||||
msgid "Use recovery code"
|
||||
msgstr "使用恢復碼"
|
||||
|
||||
|
@ -2175,11 +2277,11 @@ msgstr "使用恢復碼"
|
|||
msgid "User"
|
||||
msgstr "使用者名稱"
|
||||
|
||||
#: src/views/other/Login.vue:82
|
||||
#: src/views/other/Login.vue:85
|
||||
msgid "User is banned"
|
||||
msgstr "用戶被禁止"
|
||||
|
||||
#: src/views/other/Login.vue:164 src/views/user/userColumns.tsx:9
|
||||
#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
|
||||
msgid "Username"
|
||||
msgstr "使用者名稱"
|
||||
|
||||
|
@ -2217,6 +2319,7 @@ msgstr "查看模式"
|
|||
#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
|
||||
#: src/views/domain/DomainAdd.vue:112
|
||||
#: src/views/notification/notificationColumns.tsx:19
|
||||
#: src/views/preference/components/AddPasskey.vue:88
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
|
@ -2249,7 +2352,7 @@ msgstr "將憑證寫入磁碟"
|
|||
|
||||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:69
|
||||
#: src/views/preference/AuthSettings.vue:97
|
||||
#: src/views/preference/AuthSettings.vue:103
|
||||
#: src/views/preference/BasicSettings.vue:100
|
||||
msgid "Yes"
|
||||
msgstr "是的"
|
||||
|
@ -2262,6 +2365,19 @@ msgstr "您正在使用最新版本"
|
|||
msgid "You can check Nginx UI upgrade at this page."
|
||||
msgstr "您可以在此頁面檢查 Nginx UI 的升級。"
|
||||
|
||||
#: src/views/preference/components/AddPasskey.vue:93
|
||||
msgid ""
|
||||
"You have not configured the settings of Webauthn, so you cannot add a "
|
||||
"passkey."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/preference/components/Passkey.vue:81
|
||||
msgid "Your passkeys"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Enable 2FA"
|
||||
#~ msgstr "啟用多因素身份驗證"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Rename "
|
||||
#~ msgstr "使用者名稱"
|
||||
|
|
|
@ -81,8 +81,8 @@ const visible: ComputedRef<sidebar[]> = computed(() => {
|
|||
<Logo />
|
||||
|
||||
<AMenu
|
||||
v-model:openKeys="openKeys"
|
||||
v-model:selectedKeys="selectedKey"
|
||||
v-model:open-keys="openKeys"
|
||||
v-model:selected-keys="selectedKey"
|
||||
mode="inline"
|
||||
>
|
||||
<EnvIndicator />
|
||||
|
|
|
@ -233,7 +233,7 @@ function goBack() {
|
|||
>
|
||||
<ACard class="col-right">
|
||||
<ACollapse
|
||||
v-model:activeKey="activeKey"
|
||||
v-model:active-key="activeKey"
|
||||
ghost
|
||||
>
|
||||
<ACollapsePanel
|
||||
|
|
|
@ -67,7 +67,7 @@ function on_change_enabled(checked: CheckedType) {
|
|||
>
|
||||
<ContextHolder />
|
||||
<ACollapse
|
||||
v-model:activeKey="active_key"
|
||||
v-model:active-key="active_key"
|
||||
ghost
|
||||
>
|
||||
<ACollapsePanel
|
||||
|
|
|
@ -183,7 +183,7 @@ const activeKey = ref(['3'])
|
|||
</AFormItem>
|
||||
|
||||
<ACollapse
|
||||
v-model:activeKey="activeKey"
|
||||
v-model:active-key="activeKey"
|
||||
ghost
|
||||
>
|
||||
<ACollapsePanel
|
||||
|
|
|
@ -95,7 +95,7 @@ provide('ngx_directives', ngx_directives)
|
|||
<template>
|
||||
<div>
|
||||
<ContextHolder />
|
||||
<ATabs v-model:activeKey="current_server_index">
|
||||
<ATabs v-model:active-key="current_server_index">
|
||||
<ATabPane
|
||||
v-for="(v, k) in ngx_config.servers"
|
||||
:key="k"
|
||||
|
|
|
@ -107,7 +107,7 @@ watch(ngx_directives, () => {
|
|||
<ContextHolder />
|
||||
<ATabs
|
||||
v-if="ngx_config.upstreams && ngx_config.upstreams.length > 0"
|
||||
v-model:activeKey="current_upstream_index"
|
||||
v-model:active-key="current_upstream_index"
|
||||
>
|
||||
<ATabPane
|
||||
v-for="(v, k) in ngx_config.upstreams"
|
||||
|
|
|
@ -9,7 +9,7 @@ import install from '@/api/install'
|
|||
import SetLanguage from '@/components/SetLanguage/SetLanguage.vue'
|
||||
import SwitchAppearance from '@/components/SwitchAppearance/SwitchAppearance.vue'
|
||||
import Authorization from '@/components/2FA/Authorization.vue'
|
||||
import gettext, { $gettext } from '@/gettext'
|
||||
import gettext from '@/gettext'
|
||||
import passkey from '@/api/passkey'
|
||||
|
||||
const thisYear = new Date().getFullYear()
|
||||
|
|
118
app/src/views/preference/components/AddPasskey.vue
Normal file
118
app/src/views/preference/components/AddPasskey.vue
Normal file
|
@ -0,0 +1,118 @@
|
|||
<script setup lang="ts">
|
||||
import { startRegistration } from '@simplewebauthn/browser'
|
||||
import { message } from 'ant-design-vue'
|
||||
import passkey from '@/api/passkey'
|
||||
import { useUserStore } from '@/pinia'
|
||||
|
||||
const emit = defineEmits(['created'])
|
||||
|
||||
const user = useUserStore()
|
||||
const passkeyName = ref('')
|
||||
const addPasskeyModelOpen = ref(false)
|
||||
const passkeyEnabled = ref(false)
|
||||
|
||||
const regLoading = ref(false)
|
||||
async function registerPasskey() {
|
||||
regLoading.value = true
|
||||
try {
|
||||
const options = await passkey.begin_registration()
|
||||
|
||||
const attestationResponse = await startRegistration(options.publicKey)
|
||||
|
||||
await passkey.finish_registration(attestationResponse, passkeyName.value)
|
||||
|
||||
emit('created')
|
||||
|
||||
message.success($gettext('Register passkey successfully'))
|
||||
addPasskeyModelOpen.value = false
|
||||
|
||||
user.passkeyRawId = attestationResponse.rawId
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
catch (e: any) {
|
||||
message.error($gettext(e.message ?? 'Server error'))
|
||||
}
|
||||
regLoading.value = false
|
||||
}
|
||||
|
||||
function addPasskey() {
|
||||
addPasskeyModelOpen.value = true
|
||||
passkeyName.value = ''
|
||||
}
|
||||
|
||||
passkey.get_config_status().then(r => {
|
||||
passkeyEnabled.value = r.status
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<AButton @click="addPasskey">
|
||||
{{ $gettext('Add a passkey') }}
|
||||
</AButton>
|
||||
<AModal
|
||||
v-model:open="addPasskeyModelOpen"
|
||||
:title="$gettext('Add a passkey')"
|
||||
centered
|
||||
:mask="false"
|
||||
:mask-closable="!passkeyEnabled"
|
||||
:closable="!passkeyEnabled"
|
||||
:footer="passkeyEnabled ? undefined : false"
|
||||
:confirm-loading="regLoading"
|
||||
@ok="registerPasskey"
|
||||
>
|
||||
<AForm
|
||||
v-if="passkeyEnabled"
|
||||
layout="vertical"
|
||||
>
|
||||
<div>
|
||||
<AAlert
|
||||
class="mb-4"
|
||||
:message="$gettext('Tips')"
|
||||
type="info"
|
||||
>
|
||||
<template #description>
|
||||
<p>{{ $gettext('Please enter a name for the passkey you wish to create and click the OK button below.') }}</p>
|
||||
<p>{{ $gettext('If your browser supports WebAuthn Passkey, a dialog box will appear.') }}</p>
|
||||
<p>{{ $gettext('Follow the instructions in the dialog to complete the passkey registration process.') }}</p>
|
||||
</template>
|
||||
</AAlert>
|
||||
</div>
|
||||
<AFormItem :label="$gettext('Name')">
|
||||
<AInput v-model:value="passkeyName" />
|
||||
</AFormItem>
|
||||
</AForm>
|
||||
<div v-else>
|
||||
<AAlert
|
||||
class="mb-4"
|
||||
:message="$gettext('Warning')"
|
||||
type="warning"
|
||||
show-icon
|
||||
>
|
||||
<template #description>
|
||||
<p>{{ $gettext('You have not configured the settings of Webauthn, so you cannot add a passkey.') }}</p>
|
||||
<p>
|
||||
{{ $gettext('To ensure security, Webauthn configuration cannot be added through the UI. '
|
||||
+ 'Please manually configure the following in the app.ini configuration file and restart Nginx UI.') }}
|
||||
</p>
|
||||
<pre>[webauthn]
|
||||
# This is the display name
|
||||
RPDisplayName = Nginx UI
|
||||
# The domain name of Nginx UI
|
||||
RPID = localhost
|
||||
# The list of origin addresses
|
||||
RPOrigins = http://localhost:3002</pre>
|
||||
<p>{{ $gettext('Afterwards, refresh this page and click add passkey again.') }}</p>
|
||||
<p>
|
||||
{{ $gettext(`Due to the security policies of some browsers, you cannot use passkeys on non-HTTPS websites, except when running on localhost.`) }}
|
||||
</p>
|
||||
</template>
|
||||
</AAlert>
|
||||
</div>
|
||||
</AModal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
||||
</style>
|
|
@ -1,6 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { message } from 'ant-design-vue'
|
||||
import { startRegistration } from '@simplewebauthn/browser'
|
||||
import { DeleteOutlined, EditOutlined, KeyOutlined } from '@ant-design/icons-vue'
|
||||
import dayjs from 'dayjs'
|
||||
import relativeTime from 'dayjs/plugin/relativeTime'
|
||||
|
@ -9,39 +8,15 @@ import type { Passkey } from '@/api/passkey'
|
|||
import passkey from '@/api/passkey'
|
||||
import ReactiveFromNow from '@/components/ReactiveFromNow/ReactiveFromNow.vue'
|
||||
import { useUserStore } from '@/pinia'
|
||||
import AddPasskey from '@/views/preference/components/AddPasskey.vue'
|
||||
|
||||
dayjs.extend(relativeTime)
|
||||
|
||||
const user = useUserStore()
|
||||
const passkeyName = ref('')
|
||||
const addPasskeyModelOpen = ref(false)
|
||||
|
||||
const regLoading = ref(false)
|
||||
async function registerPasskey() {
|
||||
regLoading.value = true
|
||||
try {
|
||||
const options = await passkey.begin_registration()
|
||||
|
||||
const attestationResponse = await startRegistration(options.publicKey)
|
||||
|
||||
await passkey.finish_registration(attestationResponse, passkeyName.value)
|
||||
|
||||
getList()
|
||||
|
||||
message.success($gettext('Register passkey successfully'))
|
||||
addPasskeyModelOpen.value = false
|
||||
|
||||
user.passkeyRawId = attestationResponse.rawId
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
catch (e: any) {
|
||||
message.error($gettext(e.message ?? 'Server error'))
|
||||
}
|
||||
regLoading.value = false
|
||||
}
|
||||
|
||||
const getListLoading = ref(true)
|
||||
const data = ref([]) as Ref<Passkey[]>
|
||||
const passkeyName = ref('')
|
||||
|
||||
function getList() {
|
||||
getListLoading.value = true
|
||||
|
@ -81,11 +56,6 @@ function remove(item: Passkey) {
|
|||
message.error(e?.message ?? $gettext('Server error'))
|
||||
})
|
||||
}
|
||||
|
||||
function addPasskey() {
|
||||
addPasskeyModelOpen.value = true
|
||||
passkeyName.value = ''
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -110,9 +80,7 @@ function addPasskey() {
|
|||
<div class="font-bold">
|
||||
{{ $gettext('Your passkeys') }}
|
||||
</div>
|
||||
<AButton @click="addPasskey">
|
||||
{{ $gettext('Add a passkey') }}
|
||||
</AButton>
|
||||
<AddPasskey @created="() => getList()" />
|
||||
</div>
|
||||
</template>
|
||||
<template #renderItem="{ item, index }">
|
||||
|
@ -139,7 +107,10 @@ function addPasskey() {
|
|||
<AButton
|
||||
type="link"
|
||||
size="small"
|
||||
@click="() => modifyIdx = index"
|
||||
@click="() => {
|
||||
modifyIdx = index
|
||||
passkeyName = item.name
|
||||
}"
|
||||
>
|
||||
<EditOutlined />
|
||||
</AButton>
|
||||
|
@ -180,23 +151,6 @@ function addPasskey() {
|
|||
</AListItem>
|
||||
</template>
|
||||
</AList>
|
||||
|
||||
<AModal
|
||||
v-model:open="addPasskeyModelOpen"
|
||||
:title="$gettext('Add a passkey')"
|
||||
centered
|
||||
:mask="false"
|
||||
:mask-closable="false"
|
||||
:closable="false"
|
||||
:confirm-loading="regLoading"
|
||||
@ok="registerPasskey"
|
||||
>
|
||||
<AForm layout="vertical">
|
||||
<AFormItem :label="$gettext('Name')">
|
||||
<AInput v-model:value="passkeyName" />
|
||||
</AFormItem>
|
||||
</AForm>
|
||||
</AModal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ function on_change_enabled(checked: CheckedType) {
|
|||
>
|
||||
<ContextHolder />
|
||||
<ACollapse
|
||||
v-model:activeKey="active_key"
|
||||
v-model:active-key="active_key"
|
||||
ghost
|
||||
>
|
||||
<ACollapsePanel
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package settings
|
||||
|
||||
type Auth struct {
|
||||
IPWhiteList []string `json:"ip_white_list" binding:"omitempty,dive,ip" ini:",,allowshadow"`
|
||||
IPWhiteList []string `json:"ip_white_list" binding:"omitempty,dive,ip" ini:",,allowshadow" protected:"true"`
|
||||
BanThresholdMinutes int `json:"ban_threshold_minutes" binding:"min=1"`
|
||||
MaxAttempts int `json:"max_attempts" binding:"min=1"`
|
||||
}
|
||||
|
|
|
@ -104,6 +104,11 @@ func Save() (err error) {
|
|||
reflectFrom(k, v)
|
||||
}
|
||||
|
||||
// fix unable to save empty slice
|
||||
if len(ServerSettings.RecursiveNameservers) == 0 {
|
||||
Conf.Section("server").Key("RecursiveNameservers").SetValue("")
|
||||
}
|
||||
|
||||
err = Conf.SaveTo(ConfPath)
|
||||
if err != nil {
|
||||
return
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue