浏览代码

chore: update translation files

Jacky 2 月之前
父节点
当前提交
9d90ed8f4a
共有 6 个文件被更改,包括 541 次插入799 次删除
  1. 299 169
      app/src/language/de_DE/app.po
  2. 23 28
      app/src/language/es/app.po
  3. 48 141
      app/src/language/ko_KR/app.po
  4. 57 152
      app/src/language/ru_RU/app.po
  5. 57 150
      app/src/language/tr_TR/app.po
  6. 57 159
      app/src/language/vi_VN/app.po

文件差异内容过多而无法显示
+ 299 - 169
app/src/language/de_DE/app.po


+ 23 - 28
app/src/language/es/app.po

@@ -1065,9 +1065,8 @@ msgid "Failed to parse nginx.conf"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/self_check.ts:3
 #: src/constants/errors/self_check.ts:3
-#, fuzzy
 msgid "Failed to read nginx.conf"
 msgid "Failed to read nginx.conf"
-msgstr "Error al habilitar %{msg}"
+msgstr ""
 
 
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/stream/StreamEdit.vue:122
 #: src/views/stream/StreamEdit.vue:122
@@ -1291,9 +1290,8 @@ msgid "Invalid recovery code"
 msgstr "Código 2FA o de recuperación inválido"
 msgstr "Código 2FA o de recuperación inválido"
 
 
 #: src/constants/errors/middleware.ts:2
 #: src/constants/errors/middleware.ts:2
-#, fuzzy
 msgid "Invalid request format"
 msgid "Invalid request format"
-msgstr "Código 2FA o de recuperación inválido"
+msgstr ""
 
 
 #: src/views/preference/AuthSettings.vue:18
 #: src/views/preference/AuthSettings.vue:18
 msgid "IP"
 msgid "IP"
@@ -2448,14 +2446,12 @@ msgid "Sites List"
 msgstr "Lista de sitios"
 msgstr "Lista de sitios"
 
 
 #: src/constants/errors/self_check.ts:10
 #: src/constants/errors/self_check.ts:10
-#, fuzzy
 msgid "Sites-available directory not exist"
 msgid "Sites-available directory not exist"
-msgstr "Directorio"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:11
 #: src/constants/errors/self_check.ts:11
-#, fuzzy
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
-msgstr "Directorio"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -2505,9 +2501,8 @@ msgid "Streams Directory"
 msgstr "Directorio"
 msgstr "Directorio"
 
 
 #: src/constants/errors/self_check.ts:12
 #: src/constants/errors/self_check.ts:12
-#, fuzzy
 msgid "Streams-available directory not exist"
 msgid "Streams-available directory not exist"
-msgstr "Directorio"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:13
 #: src/constants/errors/self_check.ts:13
 #, fuzzy
 #, fuzzy
@@ -3116,22 +3111,6 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "Sus llaves de acceso"
 msgstr "Sus llaves de acceso"
 
 
-#~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset "
-#~ "your 2FA."
-#~ msgstr ""
-#~ "Si pierde su teléfono móvil, puede usar el código de recuperación para "
-#~ "restablecer su 2FA."
-
-#~ msgid "Recovery Code:"
-#~ msgstr "Código de Recuperación:"
-
-#~ msgid ""
-#~ "The recovery code is only displayed once, please save it in a safe place."
-#~ msgstr ""
-#~ "El código de recuperación se muestra solo una vez, por favor guárdalo en "
-#~ "un lugar seguro."
-
 #~ msgid "Can't scan? Use text key binding"
 #~ msgid "Can't scan? Use text key binding"
 #~ msgstr "¿No puede escanear? Utilice la vinculación con una llave de texto"
 #~ msgstr "¿No puede escanear? Utilice la vinculación con una llave de texto"
 
 
@@ -3144,12 +3123,28 @@ msgstr "Sus llaves de acceso"
 #~ msgid "File"
 #~ msgid "File"
 #~ msgstr "Archivo"
 #~ msgstr "Archivo"
 
 
-#~ msgid "Server error"
-#~ msgstr "Error del servidor"
+#~ msgid ""
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
+#~ msgstr ""
+#~ "Si pierde su teléfono móvil, puede usar el código de recuperación para "
+#~ "restablecer su 2FA."
 
 
 #~ msgid "Incorrect username or password"
 #~ msgid "Incorrect username or password"
 #~ msgstr "Nombre de usuario o contraseña incorrectos"
 #~ msgstr "Nombre de usuario o contraseña incorrectos"
 
 
+#~ msgid "Recovery Code:"
+#~ msgstr "Código de Recuperación:"
+
+#~ msgid "Server error"
+#~ msgstr "Error del servidor"
+
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
+#~ msgstr ""
+#~ "El código de recuperación se muestra solo una vez, por favor guárdalo en "
+#~ "un lugar seguro."
+
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgstr ""
 #~ msgstr ""
 #~ "Demasiados intentos fallidos de inicio de sesión, por favor intente "
 #~ "Demasiados intentos fallidos de inicio de sesión, por favor intente "

+ 48 - 141
app/src/language/ko_KR/app.po

@@ -107,7 +107,11 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:44
+#: src/language/constants.ts:57
+msgid "All Recovery Codes Have Been Used"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:32
 msgid "API Base Url"
 msgid "API Base Url"
 msgstr "API 기본 URL"
 msgstr "API 기본 URL"
 
 
@@ -115,15 +119,15 @@ msgstr "API 기본 URL"
 msgid "API Document"
 msgid "API Document"
 msgstr "API 문서"
 msgstr "API 문서"
 
 
-#: src/views/preference/OpenAISettings.vue:57
+#: src/views/preference/OpenAISettings.vue:46
 msgid "API Proxy"
 msgid "API Proxy"
 msgstr "API 프록시"
 msgstr "API 프록시"
 
 
-#: src/views/preference/OpenAISettings.vue:69
+#: src/views/preference/OpenAISettings.vue:58
 msgid "API Token"
 msgid "API Token"
 msgstr "API 토큰"
 msgstr "API 토큰"
 
 
-#: src/views/preference/OpenAISettings.vue:78
+#: src/views/preference/OpenAISettings.vue:67
 #, fuzzy
 #, fuzzy
 msgid "API Type"
 msgid "API Type"
 msgstr "API 토큰"
 msgstr "API 토큰"
@@ -224,7 +228,7 @@ msgstr "시도 횟수"
 msgid "Auth"
 msgid "Auth"
 msgstr "인증"
 msgstr "인증"
 
 
-#: src/components/TwoFA/Authorization.vue:121
+#: src/components/TwoFA/Authorization.vue:109
 msgid "Authenticate with a passkey"
 msgid "Authenticate with a passkey"
 msgstr ""
 msgstr ""
 
 
@@ -327,13 +331,6 @@ msgstr "CA 디렉토리"
 msgid "CADir"
 msgid "CADir"
 msgstr "CA 디렉토리"
 msgstr "CA 디렉토리"
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:129
-msgid "Can't scan? Use text key binding"
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
@@ -586,19 +583,11 @@ msgstr "인증 정보"
 msgid "Credentials"
 msgid "Credentials"
 msgstr "인증 정보들"
 msgstr "인증 정보들"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:72
 #: src/views/preference/components/TOTP.vue:72
 msgid "Current account is enabled TOTP."
 msgid "Current account is enabled TOTP."
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/TOTP.vue:70
 #: src/views/preference/components/TOTP.vue:70
-=======
-#: src/views/preference/components/TOTP.vue:77
-msgid "Current account is enabled TOTP."
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:74
->>>>>>> remotes/origin/dev
 msgid "Current account is not enabled TOTP."
 msgid "Current account is not enabled TOTP."
 msgstr ""
 msgstr ""
 
 
@@ -939,11 +928,7 @@ msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 msgid "Enable %{conf_name} in %{node_name} successfully"
 msgid "Enable %{conf_name} in %{node_name} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:45
-=======
-#: src/views/preference/components/TOTP.vue:38
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Enable 2FA successfully"
 msgid "Enable 2FA successfully"
 msgstr "성공적으로 활성화"
 msgstr "성공적으로 활성화"
@@ -984,11 +969,7 @@ msgstr "성공적으로 활성화"
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "TLS 활성화"
 msgstr "TLS 활성화"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:81
 #: src/views/preference/components/TOTP.vue:81
-=======
-#: src/views/preference/components/TOTP.vue:103
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Enable TOTP"
 msgid "Enable TOTP"
 msgstr "TLS 활성화"
 msgstr "TLS 활성화"
@@ -1088,9 +1069,8 @@ msgid "Failed to parse nginx.conf"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/self_check.ts:3
 #: src/constants/errors/self_check.ts:3
-#, fuzzy
 msgid "Failed to read nginx.conf"
 msgid "Failed to read nginx.conf"
-msgstr "%{msg} 활성화 실패"
+msgstr ""
 
 
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/stream/StreamEdit.vue:122
 #: src/views/stream/StreamEdit.vue:122
@@ -1165,9 +1145,8 @@ msgid "Generate New Recovery Codes"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:161
 #: src/views/preference/components/RecoveryCodes.vue:161
-#, fuzzy
 msgid "Generate Recovery Codes"
 msgid "Generate Recovery Codes"
-msgstr "유효함"
+msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:32
 #: src/views/preference/components/RecoveryCodes.vue:32
 #, fuzzy
 #, fuzzy
@@ -1229,15 +1208,6 @@ msgid ""
 "ban threshold minutes, the ip will be banned for a period of time."
 "ban threshold minutes, the ip will be banned for a period of time."
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:89
-msgid ""
-"If you lose your mobile phone, you can use the recovery code to reset your "
-"2FA."
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/views/preference/components/AddPasskey.vue:70
 #: src/views/preference/components/AddPasskey.vue:70
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgstr ""
 msgstr ""
@@ -1270,19 +1240,11 @@ msgstr "초기 코어 업그레이더 오류"
 msgid "Initialing core upgrader"
 msgid "Initialing core upgrader"
 msgstr "코어 업그레이더 초기화"
 msgstr "코어 업그레이더 초기화"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:119
 #: src/views/preference/components/TOTP.vue:119
-=======
-#: src/views/preference/components/TOTP.vue:136
->>>>>>> remotes/origin/dev
 msgid "Input the code from the app:"
 msgid "Input the code from the app:"
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:82
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:149
->>>>>>> remotes/origin/dev
+#: src/components/TwoFA/Authorization.vue:72
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr ""
 msgstr ""
 
 
@@ -1311,9 +1273,8 @@ msgid "Invalid filename"
 msgstr "Invalid E-mail!"
 msgstr "Invalid E-mail!"
 
 
 #: src/views/config/components/Mkdir.vue:57
 #: src/views/config/components/Mkdir.vue:57
-#, fuzzy
 msgid "Invalid folder name"
 msgid "Invalid folder name"
-msgstr "Invalid E-mail!"
+msgstr ""
 
 
 #: src/constants/errors/user.ts:4
 #: src/constants/errors/user.ts:4
 #, fuzzy
 #, fuzzy
@@ -1325,19 +1286,14 @@ msgid "Invalid passcode or recovery code"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/user.ts:5
 #: src/constants/errors/user.ts:5
-#, fuzzy
 msgid "Invalid recovery code"
 msgid "Invalid recovery code"
-msgstr "유효함"
+msgstr ""
 
 
-<<<<<<< HEAD
-#: src/views/preference/AuthSettings.vue:18
-=======
 #: src/constants/errors/middleware.ts:2
 #: src/constants/errors/middleware.ts:2
 msgid "Invalid request format"
 msgid "Invalid request format"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/AuthSettings.vue:14
->>>>>>> remotes/origin/dev
+#: src/views/preference/AuthSettings.vue:18
 msgid "IP"
 msgid "IP"
 msgstr ""
 msgstr ""
 
 
@@ -1388,7 +1344,7 @@ msgstr "마지막 확인 시간"
 msgid "Leave blank for no change"
 msgid "Leave blank for no change"
 msgstr "변경사항이 없으면 비워두세요"
 msgstr "변경사항이 없으면 비워두세요"
 
 
-#: src/views/preference/OpenAISettings.vue:53
+#: src/views/preference/OpenAISettings.vue:41
 msgid "Leave blank for the default: https://api.openai.com/"
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "기본값을 사용하려면 비워 두세요: https://api.openai.com/"
 msgstr "기본값을 사용하려면 비워 두세요: https://api.openai.com/"
 
 
@@ -1459,7 +1415,7 @@ msgstr "위치들"
 msgid "Log"
 msgid "Log"
 msgstr "로그인"
 msgstr "로그인"
 
 
-#: src/routes/index.ts:318 src/views/other/Login.vue:222
+#: src/routes/index.ts:318 src/views/other/Login.vue:223
 msgid "Login"
 msgid "Login"
 msgstr "로그인"
 msgstr "로그인"
 
 
@@ -1523,9 +1479,8 @@ msgid "Managed Certificate"
 msgstr "인증서 유효"
 msgstr "인증서 유효"
 
 
 #: src/views/preference/AuthSettings.vue:135
 #: src/views/preference/AuthSettings.vue:135
-#, fuzzy
 msgid "Max Attempts"
 msgid "Max Attempts"
-msgstr "시도 횟수"
+msgstr ""
 
 
 #: src/views/dashboard/ServerAnalytic.vue:222
 #: src/views/dashboard/ServerAnalytic.vue:222
 #: src/views/dashboard/ServerAnalytic.vue:223
 #: src/views/dashboard/ServerAnalytic.vue:223
@@ -1540,7 +1495,7 @@ msgstr "메모리 및 저장소"
 msgid "Minutes"
 msgid "Minutes"
 msgstr "분"
 msgstr "분"
 
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:20
 #, fuzzy
 #, fuzzy
 msgid "Model"
 msgid "Model"
 msgstr "실행 모드"
 msgstr "실행 모드"
@@ -1687,9 +1642,8 @@ msgid "Nginx Log"
 msgstr "Nginx 로그"
 msgstr "Nginx 로그"
 
 
 #: src/views/preference/NginxSettings.vue:18
 #: src/views/preference/NginxSettings.vue:18
-#, fuzzy
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
-msgstr "Nginx 구성 오류름"
+msgstr ""
 
 
 #: src/views/preference/NginxSettings.vue:27
 #: src/views/preference/NginxSettings.vue:27
 #, fuzzy
 #, fuzzy
@@ -1697,9 +1651,8 @@ msgid "Nginx PID Path"
 msgstr "Nginx 오류 로그 경로"
 msgstr "Nginx 오류 로그 경로"
 
 
 #: src/views/preference/NginxSettings.vue:30
 #: src/views/preference/NginxSettings.vue:30
-#, fuzzy
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
-msgstr "터미널 시작 명령"
+msgstr ""
 
 
 #: src/components/NginxControl/NginxControl.vue:26
 #: src/components/NginxControl/NginxControl.vue:26
 #, fuzzy
 #, fuzzy
@@ -1839,7 +1792,7 @@ msgstr "온라인"
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "오픈AI"
 msgstr "오픈AI"
 
 
-#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231
+#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232
 msgid "Or"
 msgid "Or"
 msgstr ""
 msgstr ""
 
 
@@ -1942,7 +1895,7 @@ msgid ""
 "button below."
 "button below."
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:70
+#: src/components/TwoFA/Authorization.vue:85
 msgid "Please enter the OTP code:"
 msgid "Please enter the OTP code:"
 msgstr ""
 msgstr ""
 
 
@@ -1964,6 +1917,12 @@ msgstr ""
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 
 
+#: src/language/constants.ts:58
+msgid ""
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
+msgstr ""
+
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/ConfigEditor.vue:249
 #: src/views/config/ConfigEditor.vue:249
 #, fuzzy
 #, fuzzy
@@ -2089,32 +2048,18 @@ msgstr ""
 msgid "Recovered Successfully"
 msgid "Recovered Successfully"
 msgstr "성공적으로 제거됨"
 msgstr "성공적으로 제거됨"
 
 
-#: src/components/TwoFA/Authorization.vue:89
-<<<<<<< HEAD
+#: src/components/TwoFA/Authorization.vue:79
 msgid "Recovery"
 msgid "Recovery"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:68
 #: src/views/preference/components/RecoveryCodes.vue:68
-#, fuzzy
 msgid "Recovery Codes"
 msgid "Recovery Codes"
-msgstr "유효함"
+msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:73
 #: src/views/preference/components/RecoveryCodes.vue:73
 msgid ""
 msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
-=======
-#: src/views/preference/components/TOTP.vue:156
-msgid "Recovery"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:82
-msgid "Recovery Code"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:91
-msgid "Recovery Code:"
->>>>>>> remotes/origin/dev
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/CertSettings.vue:37
 #: src/views/preference/CertSettings.vue:37
@@ -2307,11 +2252,7 @@ msgstr "잘못된 매개변수로 요청됨"
 msgid "Reset"
 msgid "Reset"
 msgstr "재설정"
 msgstr "재설정"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:93
 #: src/views/preference/components/TOTP.vue:93
-=======
-#: src/views/preference/components/TOTP.vue:111
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Reset 2FA"
 msgid "Reset 2FA"
 msgstr "재설정"
 msgstr "재설정"
@@ -2405,11 +2346,7 @@ msgstr "성공적으로 저장됨"
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "성공적으로 저장됨"
 msgstr "성공적으로 저장됨"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:69
 #: src/views/preference/components/TOTP.vue:69
-=======
-#: src/views/preference/components/TOTP.vue:72
->>>>>>> remotes/origin/dev
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgstr ""
 msgstr ""
 
 
@@ -2417,11 +2354,7 @@ msgstr ""
 msgid "SDK"
 msgid "SDK"
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:109
 #: src/views/preference/components/TOTP.vue:109
-=======
-#: src/views/preference/components/TOTP.vue:128
->>>>>>> remotes/origin/dev
 msgid "Secret has been copied"
 msgid "Secret has been copied"
 msgstr ""
 msgstr ""
 
 
@@ -2493,7 +2426,7 @@ msgstr ""
 msgid "Show"
 msgid "Show"
 msgstr ""
 msgstr ""
 
 
-#: src/views/other/Login.vue:240
+#: src/views/other/Login.vue:241
 msgid "Sign in with a passkey"
 msgid "Sign in with a passkey"
 msgstr ""
 msgstr ""
 
 
@@ -2530,14 +2463,12 @@ msgid "Sites List"
 msgstr "사이트 목록"
 msgstr "사이트 목록"
 
 
 #: src/constants/errors/self_check.ts:10
 #: src/constants/errors/self_check.ts:10
-#, fuzzy
 msgid "Sites-available directory not exist"
 msgid "Sites-available directory not exist"
-msgstr "디렉토리"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:11
 #: src/constants/errors/self_check.ts:11
-#, fuzzy
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
-msgstr "디렉토리"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
@@ -2592,9 +2523,8 @@ msgid "Streams Directory"
 msgstr "디렉토리"
 msgstr "디렉토리"
 
 
 #: src/constants/errors/self_check.ts:12
 #: src/constants/errors/self_check.ts:12
-#, fuzzy
 msgid "Streams-available directory not exist"
 msgid "Streams-available directory not exist"
-msgstr "디렉토리"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:13
 #: src/constants/errors/self_check.ts:13
 #, fuzzy
 #, fuzzy
@@ -2693,9 +2623,8 @@ msgid "Sync strategy"
 msgstr "인증서 갱신"
 msgstr "인증서 갱신"
 
 
 #: src/views/certificate/CertificateEditor.vue:204
 #: src/views/certificate/CertificateEditor.vue:204
-#, fuzzy
 msgid "Sync to"
 msgid "Sync to"
-msgstr "인증서 갱신"
+msgstr ""
 
 
 #: src/views/site/site_edit/RightSettings.vue:110
 #: src/views/site/site_edit/RightSettings.vue:110
 msgid "Synchronization"
 msgid "Synchronization"
@@ -2760,7 +2689,7 @@ msgid ""
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:23
 msgid ""
 msgid ""
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -2787,14 +2716,6 @@ msgid ""
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:90
-msgid ""
-"The recovery code is only displayed once, please save it in a safe place."
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/views/dashboard/Environments.vue:148
 #: src/views/dashboard/Environments.vue:148
 msgid ""
 msgid ""
 "The remote Nginx UI version is not compatible with the local Nginx UI "
 "The remote Nginx UI version is not compatible with the local Nginx UI "
@@ -2817,8 +2738,8 @@ msgstr ""
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "유효한 URL이 아닙니다"
 msgstr "유효한 URL이 아닙니다"
 
 
-#: src/views/preference/OpenAISettings.vue:47
-#: src/views/preference/OpenAISettings.vue:60
+#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:49
 #, fuzzy
 #, fuzzy
 msgid "The url is invalid."
 msgid "The url is invalid."
 msgstr "유효한 URL이 아닙니다"
 msgstr "유효한 URL이 아닙니다"
@@ -2873,10 +2794,9 @@ msgid "This value is already taken"
 msgstr ""
 msgstr ""
 
 
 #: src/views/environment/BatchUpgrader.vue:182
 #: src/views/environment/BatchUpgrader.vue:182
-#, fuzzy
 msgid ""
 msgid ""
 "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
-msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
+msgstr ""
 
 
 #: src/views/preference/AuthSettings.vue:124
 #: src/views/preference/AuthSettings.vue:124
 msgid "Throttle"
 msgid "Throttle"
@@ -2892,11 +2812,7 @@ msgstr "팁"
 msgid "Title"
 msgid "Title"
 msgstr "제목"
 msgstr "제목"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:68
 #: src/views/preference/components/TOTP.vue:68
-=======
-#: src/views/preference/components/TOTP.vue:71
->>>>>>> remotes/origin/dev
 msgid ""
 msgid ""
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "on your mobile phone."
 "on your mobile phone."
@@ -2920,14 +2836,14 @@ msgstr ""
 "시할 수 있는 위치를 추가해야 하며,이 파일을 저장하고 Nginx를 다시로드해야 합"
 "시할 수 있는 위치를 추가해야 하며,이 파일을 저장하고 Nginx를 다시로드해야 합"
 "니다.계속하시겠습니까?"
 "니다.계속하시겠습니까?"
 
 
-#: src/views/preference/OpenAISettings.vue:48
+#: src/views/preference/OpenAISettings.vue:36
 msgid ""
 msgid ""
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 "local API."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:72
+#: src/views/preference/OpenAISettings.vue:61
 msgid "Token is not valid"
 msgid "Token is not valid"
 msgstr "토큰이 유효하지 않습니다"
 msgstr "토큰이 유효하지 않습니다"
 
 
@@ -2937,19 +2853,11 @@ msgid_plural "Total %{total} items"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:66
 #: src/views/preference/components/TOTP.vue:66
 msgid "TOTP"
 msgid "TOTP"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/TOTP.vue:67
 #: src/views/preference/components/TOTP.vue:67
-=======
-#: src/views/preference/components/TOTP.vue:69
-msgid "TOTP"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:70
->>>>>>> remotes/origin/dev
 msgid ""
 msgid ""
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "password algorithm."
 "password algorithm."
@@ -3021,11 +2929,11 @@ msgstr "가동 시간:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/components/TwoFA/Authorization.vue:102
+#: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:98
+#: src/components/TwoFA/Authorization.vue:117
 msgid "Use recovery code"
 msgid "Use recovery code"
 msgstr ""
 msgstr ""
 
 
@@ -3083,9 +2991,8 @@ msgid "View Mode"
 msgstr "기본 모드"
 msgstr "기본 모드"
 
 
 #: src/views/preference/components/RecoveryCodes.vue:134
 #: src/views/preference/components/RecoveryCodes.vue:134
-#, fuzzy
 msgid "View Recovery Codes"
 msgid "View Recovery Codes"
-msgstr "유효함"
+msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:70
 #: src/views/preference/components/RecoveryCodes.vue:70
 #, fuzzy
 #, fuzzy
@@ -3209,13 +3116,13 @@ msgstr ""
 #~ msgid "File"
 #~ msgid "File"
 #~ msgstr "파일"
 #~ msgstr "파일"
 
 
-#~ msgid "Server error"
-#~ msgstr "서버 오류"
-
 #, fuzzy
 #, fuzzy
 #~ msgid "Incorrect username or password"
 #~ msgid "Incorrect username or password"
 #~ msgstr "사용자 이름 또는 비밀번호가 올바르지 않습니다"
 #~ msgstr "사용자 이름 또는 비밀번호가 올바르지 않습니다"
 
 
+#~ msgid "Server error"
+#~ msgstr "서버 오류"
+
 #, fuzzy
 #, fuzzy
 #~ msgid ""
 #~ msgid ""
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "

+ 57 - 152
app/src/language/ru_RU/app.po

@@ -108,7 +108,11 @@ msgstr "Затем, обновите эту страницу и снова на
 msgid "All"
 msgid "All"
 msgstr "Все"
 msgstr "Все"
 
 
-#: src/views/preference/OpenAISettings.vue:44
+#: src/language/constants.ts:57
+msgid "All Recovery Codes Have Been Used"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:32
 msgid "API Base Url"
 msgid "API Base Url"
 msgstr "Базовый URL API"
 msgstr "Базовый URL API"
 
 
@@ -116,15 +120,15 @@ msgstr "Базовый URL API"
 msgid "API Document"
 msgid "API Document"
 msgstr "API Документ"
 msgstr "API Документ"
 
 
-#: src/views/preference/OpenAISettings.vue:57
+#: src/views/preference/OpenAISettings.vue:46
 msgid "API Proxy"
 msgid "API Proxy"
 msgstr "API Прокси"
 msgstr "API Прокси"
 
 
-#: src/views/preference/OpenAISettings.vue:69
+#: src/views/preference/OpenAISettings.vue:58
 msgid "API Token"
 msgid "API Token"
 msgstr "API токен"
 msgstr "API токен"
 
 
-#: src/views/preference/OpenAISettings.vue:78
+#: src/views/preference/OpenAISettings.vue:67
 #, fuzzy
 #, fuzzy
 msgid "API Type"
 msgid "API Type"
 msgstr "API токен"
 msgstr "API токен"
@@ -226,7 +230,7 @@ msgstr "Попытки"
 msgid "Auth"
 msgid "Auth"
 msgstr "Авторизация"
 msgstr "Авторизация"
 
 
-#: src/components/TwoFA/Authorization.vue:121
+#: src/components/TwoFA/Authorization.vue:109
 msgid "Authenticate with a passkey"
 msgid "Authenticate with a passkey"
 msgstr "Аутентификация с помощью ключа доступа"
 msgstr "Аутентификация с помощью ключа доступа"
 
 
@@ -330,13 +334,6 @@ msgstr "Директория корневого сертификата"
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:129
-msgid "Can't scan? Use text key binding"
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
@@ -586,20 +583,12 @@ msgstr "Учетные данные"
 msgid "Credentials"
 msgid "Credentials"
 msgstr "Учетные данные"
 msgstr "Учетные данные"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:72
 #: src/views/preference/components/TOTP.vue:72
-=======
-#: src/views/preference/components/TOTP.vue:77
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Current account is enabled TOTP."
 msgid "Current account is enabled TOTP."
 msgstr "Текущая учетная запись имеет включенную 2ФА."
 msgstr "Текущая учетная запись имеет включенную 2ФА."
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:70
 #: src/views/preference/components/TOTP.vue:70
-=======
-#: src/views/preference/components/TOTP.vue:74
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Current account is not enabled TOTP."
 msgid "Current account is not enabled TOTP."
 msgstr ""
 msgstr ""
@@ -947,11 +936,7 @@ msgstr "Включение %{conf_name} in %{node_name} нипалучилася
 msgid "Enable %{conf_name} in %{node_name} successfully"
 msgid "Enable %{conf_name} in %{node_name} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:45
-=======
-#: src/views/preference/components/TOTP.vue:38
->>>>>>> remotes/origin/dev
 msgid "Enable 2FA successfully"
 msgid "Enable 2FA successfully"
 msgstr "Двухфакторная аутентификация успешно включена"
 msgstr "Двухфакторная аутентификация успешно включена"
 
 
@@ -991,11 +976,7 @@ msgstr "Включено успешно"
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "Включить TLS"
 msgstr "Включить TLS"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:81
 #: src/views/preference/components/TOTP.vue:81
-=======
-#: src/views/preference/components/TOTP.vue:103
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Enable TOTP"
 msgid "Enable TOTP"
 msgstr "Включить TLS"
 msgstr "Включить TLS"
@@ -1092,9 +1073,8 @@ msgid "Failed to parse nginx.conf"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/self_check.ts:3
 #: src/constants/errors/self_check.ts:3
-#, fuzzy
 msgid "Failed to read nginx.conf"
 msgid "Failed to read nginx.conf"
-msgstr "Не удалось включить %{msg}"
+msgstr ""
 
 
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/stream/StreamEdit.vue:122
 #: src/views/stream/StreamEdit.vue:122
@@ -1235,17 +1215,6 @@ msgstr ""
 "количества попыток в течение пороговых минут блокировки, IP будет "
 "количества попыток в течение пороговых минут блокировки, IP будет "
 "заблокирован на определенный период времени."
 "заблокирован на определенный период времени."
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:89
-msgid ""
-"If you lose your mobile phone, you can use the recovery code to reset your "
-"2FA."
-msgstr ""
-"Если вы потеряете свой мобильный телефон, вы можете использовать код "
-"восстановления для сброса 2FA."
-
->>>>>>> remotes/origin/dev
 #: src/views/preference/components/AddPasskey.vue:70
 #: src/views/preference/components/AddPasskey.vue:70
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgstr ""
 msgstr ""
@@ -1280,19 +1249,11 @@ msgstr "Ошибка первоначального обновления ядр
 msgid "Initialing core upgrader"
 msgid "Initialing core upgrader"
 msgstr "Инициализация программы обновления ядра"
 msgstr "Инициализация программы обновления ядра"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:119
 #: src/views/preference/components/TOTP.vue:119
-=======
-#: src/views/preference/components/TOTP.vue:136
->>>>>>> remotes/origin/dev
 msgid "Input the code from the app:"
 msgid "Input the code from the app:"
 msgstr "Введите код из приложения:"
 msgstr "Введите код из приложения:"
 
 
-#: src/components/TwoFA/Authorization.vue:82
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:149
->>>>>>> remotes/origin/dev
+#: src/components/TwoFA/Authorization.vue:72
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Введите код восстановления:"
 msgstr "Введите код восстановления:"
 
 
@@ -1335,16 +1296,11 @@ msgstr "Неверный пароль или код восстановления
 msgid "Invalid recovery code"
 msgid "Invalid recovery code"
 msgstr "Неверный 2FA или код восстановления"
 msgstr "Неверный 2FA или код восстановления"
 
 
-<<<<<<< HEAD
-#: src/views/preference/AuthSettings.vue:18
-=======
 #: src/constants/errors/middleware.ts:2
 #: src/constants/errors/middleware.ts:2
-#, fuzzy
 msgid "Invalid request format"
 msgid "Invalid request format"
-msgstr "Неверный 2FA или код восстановления"
+msgstr ""
 
 
-#: src/views/preference/AuthSettings.vue:14
->>>>>>> remotes/origin/dev
+#: src/views/preference/AuthSettings.vue:18
 msgid "IP"
 msgid "IP"
 msgstr "IP"
 msgstr "IP"
 
 
@@ -1392,7 +1348,7 @@ msgstr "Последняя проверка в"
 msgid "Leave blank for no change"
 msgid "Leave blank for no change"
 msgstr "Оставьте пустым без изменений"
 msgstr "Оставьте пустым без изменений"
 
 
-#: src/views/preference/OpenAISettings.vue:53
+#: src/views/preference/OpenAISettings.vue:41
 msgid "Leave blank for the default: https://api.openai.com/"
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Оставьте пустым для значения по умолчанию: https://api.openai.com/"
 msgstr "Оставьте пустым для значения по умолчанию: https://api.openai.com/"
 
 
@@ -1456,7 +1412,7 @@ msgstr "Локации"
 msgid "Log"
 msgid "Log"
 msgstr "Журнал"
 msgstr "Журнал"
 
 
-#: src/routes/index.ts:318 src/views/other/Login.vue:222
+#: src/routes/index.ts:318 src/views/other/Login.vue:223
 msgid "Login"
 msgid "Login"
 msgstr "Логин"
 msgstr "Логин"
 
 
@@ -1534,7 +1490,7 @@ msgstr "Память и хранилище"
 msgid "Minutes"
 msgid "Minutes"
 msgstr "Минуты"
 msgstr "Минуты"
 
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:20
 msgid "Model"
 msgid "Model"
 msgstr "Модель"
 msgstr "Модель"
 
 
@@ -1721,9 +1677,8 @@ msgid "Node name"
 msgstr "Новое имя"
 msgstr "Новое имя"
 
 
 #: src/views/preference/BasicSettings.vue:23
 #: src/views/preference/BasicSettings.vue:23
-#, fuzzy
 msgid "Node Secret"
 msgid "Node Secret"
-msgstr "Jwt секрет"
+msgstr ""
 
 
 #: src/views/certificate/CertificateList/certColumns.tsx:91
 #: src/views/certificate/CertificateList/certColumns.tsx:91
 msgid "Not After"
 msgid "Not After"
@@ -1821,7 +1776,7 @@ msgstr "Онлайн"
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
-#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231
+#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232
 msgid "Or"
 msgid "Or"
 msgstr ""
 msgstr ""
 
 
@@ -1861,9 +1816,8 @@ msgid "Params"
 msgstr "Параметры"
 msgstr "Параметры"
 
 
 #: src/views/preference/components/Passkey.vue:59
 #: src/views/preference/components/Passkey.vue:59
-#, fuzzy
 msgid "Passkey"
 msgid "Passkey"
-msgstr "Добавить ключ доступа"
+msgstr ""
 
 
 #: src/views/preference/components/Passkey.vue:62
 #: src/views/preference/components/Passkey.vue:62
 msgid ""
 msgid ""
@@ -1925,7 +1879,7 @@ msgid ""
 "button below."
 "button below."
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:70
+#: src/components/TwoFA/Authorization.vue:85
 #, fuzzy
 #, fuzzy
 msgid "Please enter the OTP code:"
 msgid "Please enter the OTP code:"
 msgstr "Пожалуйста, введите код 2FA:"
 msgstr "Пожалуйста, введите код 2FA:"
@@ -1951,6 +1905,12 @@ msgstr ""
 "Credentials, а затем выберите одну из учетных данных ниже, чтобы запросить "
 "Credentials, а затем выберите одну из учетных данных ниже, чтобы запросить "
 "API провайдера DNS."
 "API провайдера DNS."
 
 
+#: src/language/constants.ts:58
+msgid ""
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
+msgstr ""
+
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/ConfigEditor.vue:249
 #: src/views/config/ConfigEditor.vue:249
 msgid "Please input a filename"
 msgid "Please input a filename"
@@ -2047,9 +2007,8 @@ msgid "Provider"
 msgstr "Провайдер"
 msgstr "Провайдер"
 
 
 #: src/views/certificate/ACMEUser.vue:51
 #: src/views/certificate/ACMEUser.vue:51
-#, fuzzy
 msgid "Proxy"
 msgid "Proxy"
-msgstr "API Прокси"
+msgstr ""
 
 
 #: src/views/preference/BasicSettings.vue:63
 #: src/views/preference/BasicSettings.vue:63
 msgid "Public Security Number"
 msgid "Public Security Number"
@@ -2078,8 +2037,7 @@ msgstr "Восстановить"
 msgid "Recovered Successfully"
 msgid "Recovered Successfully"
 msgstr "Восстановлено успешно"
 msgstr "Восстановлено успешно"
 
 
-#: src/components/TwoFA/Authorization.vue:89
-<<<<<<< HEAD
+#: src/components/TwoFA/Authorization.vue:79
 msgid "Recovery"
 msgid "Recovery"
 msgstr "Восстановление"
 msgstr "Восстановление"
 
 
@@ -2093,19 +2051,6 @@ msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
-=======
-#: src/views/preference/components/TOTP.vue:156
-msgid "Recovery"
-msgstr "Восстановление"
-
-#: src/views/preference/components/TOTP.vue:82
-msgid "Recovery Code"
-msgstr "Код восстановления"
-
-#: src/views/preference/components/TOTP.vue:91
-msgid "Recovery Code:"
-msgstr "Код восстановления:"
->>>>>>> remotes/origin/dev
 
 
 #: src/views/preference/CertSettings.vue:37
 #: src/views/preference/CertSettings.vue:37
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
@@ -2282,11 +2227,7 @@ msgstr "Запрос с неправильными параметрами"
 msgid "Reset"
 msgid "Reset"
 msgstr "Сброс"
 msgstr "Сброс"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:93
 #: src/views/preference/components/TOTP.vue:93
-=======
-#: src/views/preference/components/TOTP.vue:111
->>>>>>> remotes/origin/dev
 msgid "Reset 2FA"
 msgid "Reset 2FA"
 msgstr "Сброс 2FA"
 msgstr "Сброс 2FA"
 
 
@@ -2379,11 +2320,7 @@ msgstr "Сохранено успешно"
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "Успешно сохранено"
 msgstr "Успешно сохранено"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:69
 #: src/views/preference/components/TOTP.vue:69
-=======
-#: src/views/preference/components/TOTP.vue:72
->>>>>>> remotes/origin/dev
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgstr ""
 msgstr ""
 "Отсканируйте QR-код с помощью мобильного телефона, чтобы добавить учетную "
 "Отсканируйте QR-код с помощью мобильного телефона, чтобы добавить учетную "
@@ -2393,11 +2330,7 @@ msgstr ""
 msgid "SDK"
 msgid "SDK"
 msgstr "SDK"
 msgstr "SDK"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:109
 #: src/views/preference/components/TOTP.vue:109
-=======
-#: src/views/preference/components/TOTP.vue:128
->>>>>>> remotes/origin/dev
 msgid "Secret has been copied"
 msgid "Secret has been copied"
 msgstr ""
 msgstr ""
 
 
@@ -2471,19 +2404,17 @@ msgstr ""
 msgid "Show"
 msgid "Show"
 msgstr "Показать"
 msgstr "Показать"
 
 
-#: src/views/other/Login.vue:240
-#, fuzzy
+#: src/views/other/Login.vue:241
 msgid "Sign in with a passkey"
 msgid "Sign in with a passkey"
-msgstr "Аутентификация с помощью ключа доступа"
+msgstr ""
 
 
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:65
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:65
 msgid "Single Directive"
 msgid "Single Directive"
 msgstr "Одиночная Директива"
 msgstr "Одиночная Директива"
 
 
 #: src/routes/index.ts:71 src/views/site/site_category/SiteCategory.vue:10
 #: src/routes/index.ts:71 src/views/site/site_category/SiteCategory.vue:10
-#, fuzzy
 msgid "Site Categories"
 msgid "Site Categories"
-msgstr "Категория"
+msgstr ""
 
 
 #: src/constants/errors/site.ts:4
 #: src/constants/errors/site.ts:4
 #, fuzzy
 #, fuzzy
@@ -2509,14 +2440,12 @@ msgid "Sites List"
 msgstr "Список сайтов"
 msgstr "Список сайтов"
 
 
 #: src/constants/errors/self_check.ts:10
 #: src/constants/errors/self_check.ts:10
-#, fuzzy
 msgid "Sites-available directory not exist"
 msgid "Sites-available directory not exist"
-msgstr "Каталог"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:11
 #: src/constants/errors/self_check.ts:11
-#, fuzzy
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
-msgstr "Каталог"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -2566,9 +2495,8 @@ msgid "Streams Directory"
 msgstr "Каталог"
 msgstr "Каталог"
 
 
 #: src/constants/errors/self_check.ts:12
 #: src/constants/errors/self_check.ts:12
-#, fuzzy
 msgid "Streams-available directory not exist"
 msgid "Streams-available directory not exist"
-msgstr "Каталог"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:13
 #: src/constants/errors/self_check.ts:13
 #, fuzzy
 #, fuzzy
@@ -2732,7 +2660,7 @@ msgid ""
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:23
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "The model name should only contain letters, unicode, numbers, hyphens, "
@@ -2767,16 +2695,6 @@ msgstr ""
 "Имя сервера должно содержать только буквы, юникод, цифры, дефисы, тире и "
 "Имя сервера должно содержать только буквы, юникод, цифры, дефисы, тире и "
 "точки."
 "точки."
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:90
-msgid ""
-"The recovery code is only displayed once, please save it in a safe place."
-msgstr ""
-"Код восстановления отображается только один раз, пожалуйста, сохраните его в "
-"безопасном месте."
-
->>>>>>> remotes/origin/dev
 #: src/views/dashboard/Environments.vue:148
 #: src/views/dashboard/Environments.vue:148
 msgid ""
 msgid ""
 "The remote Nginx UI version is not compatible with the local Nginx UI "
 "The remote Nginx UI version is not compatible with the local Nginx UI "
@@ -2800,8 +2718,8 @@ msgstr ""
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "URL недействителен"
 msgstr "URL недействителен"
 
 
-#: src/views/preference/OpenAISettings.vue:47
-#: src/views/preference/OpenAISettings.vue:60
+#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:49
 msgid "The url is invalid."
 msgid "The url is invalid."
 msgstr "URL недействителен."
 msgstr "URL недействителен."
 
 
@@ -2878,11 +2796,7 @@ msgstr "Советы"
 msgid "Title"
 msgid "Title"
 msgstr "Заголовок"
 msgstr "Заголовок"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:68
 #: src/views/preference/components/TOTP.vue:68
-=======
-#: src/views/preference/components/TOTP.vue:71
->>>>>>> remotes/origin/dev
 msgid ""
 msgid ""
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "on your mobile phone."
 "on your mobile phone."
@@ -2909,14 +2823,14 @@ msgstr ""
 "запрос от авторитета к бэкенду, и нам нужно сохранить этот файл и "
 "запрос от авторитета к бэкенду, и нам нужно сохранить этот файл и "
 "перезагрузить Nginx. Вы уверены, что хотите продолжить?"
 "перезагрузить Nginx. Вы уверены, что хотите продолжить?"
 
 
-#: src/views/preference/OpenAISettings.vue:48
+#: src/views/preference/OpenAISettings.vue:36
 msgid ""
 msgid ""
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 "local API."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:72
+#: src/views/preference/OpenAISettings.vue:61
 msgid "Token is not valid"
 msgid "Token is not valid"
 msgstr "Токен недействителен"
 msgstr "Токен недействителен"
 
 
@@ -2926,19 +2840,11 @@ msgid_plural "Total %{total} items"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:66
 #: src/views/preference/components/TOTP.vue:66
 msgid "TOTP"
 msgid "TOTP"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/TOTP.vue:67
 #: src/views/preference/components/TOTP.vue:67
-=======
-#: src/views/preference/components/TOTP.vue:69
-msgid "TOTP"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:70
->>>>>>> remotes/origin/dev
 msgid ""
 msgid ""
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "password algorithm."
 "password algorithm."
@@ -3009,11 +2915,11 @@ msgstr "Аптайм:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/components/TwoFA/Authorization.vue:102
+#: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "Использовать OTP"
 msgstr "Использовать OTP"
 
 
-#: src/components/TwoFA/Authorization.vue:98
+#: src/components/TwoFA/Authorization.vue:117
 msgid "Use recovery code"
 msgid "Use recovery code"
 msgstr "Использовать код восстановления"
 msgstr "Использовать код восстановления"
 
 
@@ -3181,9 +3087,17 @@ msgid "Your old codes won't work anymore."
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/Passkey.vue:75
 #: src/views/preference/components/Passkey.vue:75
-#, fuzzy
 msgid "Your passkeys"
 msgid "Your passkeys"
-msgstr "Добавить ключ доступа"
+msgstr ""
+
+#~ msgid "Directory"
+#~ msgstr "Каталог"
+
+#~ msgid "Environment"
+#~ msgstr "Окружение"
+
+#~ msgid "File"
+#~ msgstr "Файл"
 
 
 #~ msgid ""
 #~ msgid ""
 #~ "If you lose your mobile phone, you can use the recovery code to reset "
 #~ "If you lose your mobile phone, you can use the recovery code to reset "
@@ -3192,30 +3106,21 @@ msgstr "Добавить ключ доступа"
 #~ "Если вы потеряете свой мобильный телефон, вы можете использовать код "
 #~ "Если вы потеряете свой мобильный телефон, вы можете использовать код "
 #~ "восстановления для сброса 2FA."
 #~ "восстановления для сброса 2FA."
 
 
+#~ msgid "Incorrect username or password"
+#~ msgstr "Неверное имя пользователя или пароль"
+
 #~ msgid "Recovery Code:"
 #~ msgid "Recovery Code:"
 #~ msgstr "Код восстановления:"
 #~ msgstr "Код восстановления:"
 
 
+#~ msgid "Server error"
+#~ msgstr "Ошибка сервера"
+
 #~ msgid ""
 #~ msgid ""
 #~ "The recovery code is only displayed once, please save it in a safe place."
 #~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr ""
 #~ msgstr ""
 #~ "Код восстановления отображается только один раз, пожалуйста, сохраните "
 #~ "Код восстановления отображается только один раз, пожалуйста, сохраните "
 #~ "его в безопасном месте."
 #~ "его в безопасном месте."
 
 
-#~ msgid "Directory"
-#~ msgstr "Каталог"
-
-#~ msgid "Environment"
-#~ msgstr "Окружение"
-
-#~ msgid "File"
-#~ msgstr "Файл"
-
-#~ msgid "Server error"
-#~ msgstr "Ошибка сервера"
-
-#~ msgid "Incorrect username or password"
-#~ msgstr "Неверное имя пользователя или пароль"
-
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgstr "Слишком много неудачных попыток входа, попробуйте позже"
 #~ msgstr "Слишком много неудачных попыток входа, попробуйте позже"
 
 

+ 57 - 150
app/src/language/tr_TR/app.po

@@ -106,7 +106,11 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:44
+#: src/language/constants.ts:57
+msgid "All Recovery Codes Have Been Used"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:32
 msgid "API Base Url"
 msgid "API Base Url"
 msgstr "API Temel Bağlantı Adresi"
 msgstr "API Temel Bağlantı Adresi"
 
 
@@ -114,15 +118,15 @@ msgstr "API Temel Bağlantı Adresi"
 msgid "API Document"
 msgid "API Document"
 msgstr "API Dökümanı"
 msgstr "API Dökümanı"
 
 
-#: src/views/preference/OpenAISettings.vue:57
+#: src/views/preference/OpenAISettings.vue:46
 msgid "API Proxy"
 msgid "API Proxy"
 msgstr "API Proxy"
 msgstr "API Proxy"
 
 
-#: src/views/preference/OpenAISettings.vue:69
+#: src/views/preference/OpenAISettings.vue:58
 msgid "API Token"
 msgid "API Token"
 msgstr "API Token"
 msgstr "API Token"
 
 
-#: src/views/preference/OpenAISettings.vue:78
+#: src/views/preference/OpenAISettings.vue:67
 #, fuzzy
 #, fuzzy
 msgid "API Type"
 msgid "API Type"
 msgstr "API Token"
 msgstr "API Token"
@@ -222,7 +226,7 @@ msgstr "Girişimler"
 msgid "Auth"
 msgid "Auth"
 msgstr "Kimlik Doğrulama"
 msgstr "Kimlik Doğrulama"
 
 
-#: src/components/TwoFA/Authorization.vue:121
+#: src/components/TwoFA/Authorization.vue:109
 msgid "Authenticate with a passkey"
 msgid "Authenticate with a passkey"
 msgstr "Geçiş anahtarıyla kimlik doğrulama"
 msgstr "Geçiş anahtarıyla kimlik doğrulama"
 
 
@@ -325,13 +329,6 @@ msgstr "CA Dizini"
 msgid "CADir"
 msgid "CADir"
 msgstr "CADizini"
 msgstr "CADizini"
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:129
-msgid "Can't scan? Use text key binding"
-msgstr "Tarayamıyor musunuz? Metin anahtar bağlamasını kullanın"
-
->>>>>>> remotes/origin/dev
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
@@ -580,19 +577,11 @@ msgstr "Kimlik bilgisi"
 msgid "Credentials"
 msgid "Credentials"
 msgstr "Kimlik bilgileri"
 msgstr "Kimlik bilgileri"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:72
 #: src/views/preference/components/TOTP.vue:72
 msgid "Current account is enabled TOTP."
 msgid "Current account is enabled TOTP."
 msgstr "Mevcut hesap için TOTP etkinleştirildi."
 msgstr "Mevcut hesap için TOTP etkinleştirildi."
 
 
 #: src/views/preference/components/TOTP.vue:70
 #: src/views/preference/components/TOTP.vue:70
-=======
-#: src/views/preference/components/TOTP.vue:77
-msgid "Current account is enabled TOTP."
-msgstr "Mevcut hesap için TOTP etkinleştirildi."
-
-#: src/views/preference/components/TOTP.vue:74
->>>>>>> remotes/origin/dev
 msgid "Current account is not enabled TOTP."
 msgid "Current account is not enabled TOTP."
 msgstr "Mevcut hesap için TOTP etkin değil."
 msgstr "Mevcut hesap için TOTP etkin değil."
 
 
@@ -945,11 +934,7 @@ msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:45
-=======
-#: src/views/preference/components/TOTP.vue:38
->>>>>>> remotes/origin/dev
 msgid "Enable 2FA successfully"
 msgid "Enable 2FA successfully"
 msgstr "2FA'yı başarıyla etkinleştirildi"
 msgstr "2FA'yı başarıyla etkinleştirildi"
 
 
@@ -993,11 +978,7 @@ msgstr "Başarıyla etkinleştirildi"
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "TLS'yi Etkinleştir"
 msgstr "TLS'yi Etkinleştir"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:81
 #: src/views/preference/components/TOTP.vue:81
-=======
-#: src/views/preference/components/TOTP.vue:103
->>>>>>> remotes/origin/dev
 msgid "Enable TOTP"
 msgid "Enable TOTP"
 msgstr "TOTP'yi Etkinleştir"
 msgstr "TOTP'yi Etkinleştir"
 
 
@@ -1093,9 +1074,8 @@ msgid "Failed to parse nginx.conf"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/self_check.ts:3
 #: src/constants/errors/self_check.ts:3
-#, fuzzy
 msgid "Failed to read nginx.conf"
 msgid "Failed to read nginx.conf"
-msgstr "Etkinleştirilemedi %{msg}"
+msgstr ""
 
 
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/stream/StreamEdit.vue:122
 #: src/views/stream/StreamEdit.vue:122
@@ -1236,17 +1216,6 @@ msgstr ""
 "yasaklama eşiği dakikaları içinde maksimum deneme sayısına ulaşırsa, IP "
 "yasaklama eşiği dakikaları içinde maksimum deneme sayısına ulaşırsa, IP "
 "adresi belirli bir süre için yasaklanacaktır."
 "adresi belirli bir süre için yasaklanacaktır."
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:89
-msgid ""
-"If you lose your mobile phone, you can use the recovery code to reset your "
-"2FA."
-msgstr ""
-"Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu "
-"kullanabilirsiniz."
-
->>>>>>> remotes/origin/dev
 #: src/views/preference/components/AddPasskey.vue:70
 #: src/views/preference/components/AddPasskey.vue:70
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgstr ""
 msgstr ""
@@ -1282,19 +1251,11 @@ msgstr "İlk çekirdek yükseltici hatası"
 msgid "Initialing core upgrader"
 msgid "Initialing core upgrader"
 msgstr "Çekirdek yükseltici başlatılıyor"
 msgstr "Çekirdek yükseltici başlatılıyor"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:119
 #: src/views/preference/components/TOTP.vue:119
-=======
-#: src/views/preference/components/TOTP.vue:136
->>>>>>> remotes/origin/dev
 msgid "Input the code from the app:"
 msgid "Input the code from the app:"
 msgstr "Uygulamadan kodu girin:"
 msgstr "Uygulamadan kodu girin:"
 
 
-#: src/components/TwoFA/Authorization.vue:82
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:149
->>>>>>> remotes/origin/dev
+#: src/components/TwoFA/Authorization.vue:72
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Kurtarma kodunu girin:"
 msgstr "Kurtarma kodunu girin:"
 
 
@@ -1337,16 +1298,11 @@ msgstr "Geçersiz parola veya kurtarma kodu"
 msgid "Invalid recovery code"
 msgid "Invalid recovery code"
 msgstr "Geçersiz 2FA veya kurtarma kodu"
 msgstr "Geçersiz 2FA veya kurtarma kodu"
 
 
-<<<<<<< HEAD
-#: src/views/preference/AuthSettings.vue:18
-=======
 #: src/constants/errors/middleware.ts:2
 #: src/constants/errors/middleware.ts:2
-#, fuzzy
 msgid "Invalid request format"
 msgid "Invalid request format"
-msgstr "Geçersiz 2FA veya kurtarma kodu"
+msgstr ""
 
 
-#: src/views/preference/AuthSettings.vue:14
->>>>>>> remotes/origin/dev
+#: src/views/preference/AuthSettings.vue:18
 msgid "IP"
 msgid "IP"
 msgstr "IP"
 msgstr "IP"
 
 
@@ -1393,7 +1349,7 @@ msgstr "En son kullanıldığı zaman"
 msgid "Leave blank for no change"
 msgid "Leave blank for no change"
 msgstr "Değişiklik olmaması için boş bırakın"
 msgstr "Değişiklik olmaması için boş bırakın"
 
 
-#: src/views/preference/OpenAISettings.vue:53
+#: src/views/preference/OpenAISettings.vue:41
 msgid "Leave blank for the default: https://api.openai.com/"
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Varsayılan için boş bırakın: https://api.openai.com/"
 msgstr "Varsayılan için boş bırakın: https://api.openai.com/"
 
 
@@ -1457,7 +1413,7 @@ msgstr "Konumlar"
 msgid "Log"
 msgid "Log"
 msgstr "Günlük"
 msgstr "Günlük"
 
 
-#: src/routes/index.ts:318 src/views/other/Login.vue:222
+#: src/routes/index.ts:318 src/views/other/Login.vue:223
 msgid "Login"
 msgid "Login"
 msgstr "Giriş"
 msgstr "Giriş"
 
 
@@ -1545,7 +1501,7 @@ msgstr "Bellek ve Depolama"
 msgid "Minutes"
 msgid "Minutes"
 msgstr "Dakika"
 msgstr "Dakika"
 
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:20
 #, fuzzy
 #, fuzzy
 msgid "Model"
 msgid "Model"
 msgstr "Model"
 msgstr "Model"
@@ -1706,9 +1662,8 @@ msgid "Nginx Log"
 msgstr "Nginx Günlüğü"
 msgstr "Nginx Günlüğü"
 
 
 #: src/views/preference/NginxSettings.vue:18
 #: src/views/preference/NginxSettings.vue:18
-#, fuzzy
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
-msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
+msgstr ""
 
 
 #: src/views/preference/NginxSettings.vue:27
 #: src/views/preference/NginxSettings.vue:27
 #, fuzzy
 #, fuzzy
@@ -1716,9 +1671,8 @@ msgid "Nginx PID Path"
 msgstr "Nginx Hata Günlüğü Yolu"
 msgstr "Nginx Hata Günlüğü Yolu"
 
 
 #: src/views/preference/NginxSettings.vue:30
 #: src/views/preference/NginxSettings.vue:30
-#, fuzzy
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
-msgstr "Terminal Başlatma Komutu"
+msgstr ""
 
 
 #: src/components/NginxControl/NginxControl.vue:26
 #: src/components/NginxControl/NginxControl.vue:26
 #, fuzzy
 #, fuzzy
@@ -1875,7 +1829,7 @@ msgstr "Çevrimiçi"
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
-#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231
+#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232
 #, fuzzy
 #, fuzzy
 msgid "Or"
 msgid "Or"
 msgstr "Veya"
 msgstr "Veya"
@@ -1999,7 +1953,7 @@ msgstr ""
 "Lütfen oluşturmak istediğiniz geçiş anahtarı için bir ad girin ve aşağıdaki "
 "Lütfen oluşturmak istediğiniz geçiş anahtarı için bir ad girin ve aşağıdaki "
 "Tamam düğmesine tıklayın."
 "Tamam düğmesine tıklayın."
 
 
-#: src/components/TwoFA/Authorization.vue:70
+#: src/components/TwoFA/Authorization.vue:85
 #, fuzzy
 #, fuzzy
 msgid "Please enter the OTP code:"
 msgid "Please enter the OTP code:"
 msgstr "Lütfen OTP kodunu girin:"
 msgstr "Lütfen OTP kodunu girin:"
@@ -2028,6 +1982,12 @@ msgstr ""
 "ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki "
 "ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki "
 "kimlik bilgilerinden birini seçin."
 "kimlik bilgilerinden birini seçin."
 
 
+#: src/language/constants.ts:58
+msgid ""
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
+msgstr ""
+
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/ConfigEditor.vue:249
 #: src/views/config/ConfigEditor.vue:249
 #, fuzzy
 #, fuzzy
@@ -2174,36 +2134,21 @@ msgstr "Kurtar"
 msgid "Recovered Successfully"
 msgid "Recovered Successfully"
 msgstr "Başarıyla Kurtarıldı"
 msgstr "Başarıyla Kurtarıldı"
 
 
-#: src/components/TwoFA/Authorization.vue:89
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:156
->>>>>>> remotes/origin/dev
+#: src/components/TwoFA/Authorization.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Recovery"
 msgid "Recovery"
 msgstr "Kurtarma"
 msgstr "Kurtarma"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/RecoveryCodes.vue:68
 #: src/views/preference/components/RecoveryCodes.vue:68
-=======
-#: src/views/preference/components/TOTP.vue:82
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Recovery Codes"
 msgid "Recovery Codes"
 msgstr "Kurtarma Kodu"
 msgstr "Kurtarma Kodu"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/RecoveryCodes.vue:73
 #: src/views/preference/components/RecoveryCodes.vue:73
 msgid ""
 msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
-=======
-#: src/views/preference/components/TOTP.vue:91
-#, fuzzy
-msgid "Recovery Code:"
-msgstr "Kurtarma Kodu:"
->>>>>>> remotes/origin/dev
 
 
 #: src/views/preference/CertSettings.vue:37
 #: src/views/preference/CertSettings.vue:37
 #, fuzzy
 #, fuzzy
@@ -2413,11 +2358,7 @@ msgstr "Yanlış parametrelerle talep edildi"
 msgid "Reset"
 msgid "Reset"
 msgstr "Sıfırla"
 msgstr "Sıfırla"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:93
 #: src/views/preference/components/TOTP.vue:93
-=======
-#: src/views/preference/components/TOTP.vue:111
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Reset 2FA"
 msgid "Reset 2FA"
 msgstr "2FA'yı Sıfırla"
 msgstr "2FA'yı Sıfırla"
@@ -2520,11 +2461,7 @@ msgstr "Başarıyla kaydedin"
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "Başarıyla Kaydedildi"
 msgstr "Başarıyla Kaydedildi"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:69
 #: src/views/preference/components/TOTP.vue:69
-=======
-#: src/views/preference/components/TOTP.vue:72
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgstr "Hesabı uygulamaya eklemek için QR kodunu cep telefonunuzla tarayın."
 msgstr "Hesabı uygulamaya eklemek için QR kodunu cep telefonunuzla tarayın."
@@ -2534,11 +2471,7 @@ msgstr "Hesabı uygulamaya eklemek için QR kodunu cep telefonunuzla tarayın."
 msgid "SDK"
 msgid "SDK"
 msgstr "SDK"
 msgstr "SDK"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:109
 #: src/views/preference/components/TOTP.vue:109
-=======
-#: src/views/preference/components/TOTP.vue:128
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Secret has been copied"
 msgid "Secret has been copied"
 msgstr "Sır kopyalandı"
 msgstr "Sır kopyalandı"
@@ -2623,7 +2556,7 @@ msgstr ""
 msgid "Show"
 msgid "Show"
 msgstr "Göster"
 msgstr "Göster"
 
 
-#: src/views/other/Login.vue:240
+#: src/views/other/Login.vue:241
 #, fuzzy
 #, fuzzy
 msgid "Sign in with a passkey"
 msgid "Sign in with a passkey"
 msgstr "Bir geçiş anahtarı ile oturum açın"
 msgstr "Bir geçiş anahtarı ile oturum açın"
@@ -2663,14 +2596,12 @@ msgid "Sites List"
 msgstr "Site Listesi"
 msgstr "Site Listesi"
 
 
 #: src/constants/errors/self_check.ts:10
 #: src/constants/errors/self_check.ts:10
-#, fuzzy
 msgid "Sites-available directory not exist"
 msgid "Sites-available directory not exist"
-msgstr "Dizin"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:11
 #: src/constants/errors/self_check.ts:11
-#, fuzzy
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
-msgstr "Dizin"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
@@ -2729,9 +2660,8 @@ msgid "Streams Directory"
 msgstr "Dizin"
 msgstr "Dizin"
 
 
 #: src/constants/errors/self_check.ts:12
 #: src/constants/errors/self_check.ts:12
-#, fuzzy
 msgid "Streams-available directory not exist"
 msgid "Streams-available directory not exist"
-msgstr "Dizin"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:13
 #: src/constants/errors/self_check.ts:13
 #, fuzzy
 #, fuzzy
@@ -2919,7 +2849,7 @@ msgid ""
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:23
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "The model name should only contain letters, unicode, numbers, hyphens, "
@@ -2954,17 +2884,6 @@ msgstr ""
 "Sunucu adı yalnızca harf, unicode, sayı, kısa çizgi, tire ve nokta "
 "Sunucu adı yalnızca harf, unicode, sayı, kısa çizgi, tire ve nokta "
 "içermelidir."
 "içermelidir."
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:90
-#, fuzzy
-msgid ""
-"The recovery code is only displayed once, please save it in a safe place."
-msgstr ""
-"Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere "
-"kaydedin."
-
->>>>>>> remotes/origin/dev
 #: src/views/dashboard/Environments.vue:148
 #: src/views/dashboard/Environments.vue:148
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
@@ -2991,8 +2910,8 @@ msgstr ""
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "URL geçersiz"
 msgstr "URL geçersiz"
 
 
-#: src/views/preference/OpenAISettings.vue:47
-#: src/views/preference/OpenAISettings.vue:60
+#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:49
 #, fuzzy
 #, fuzzy
 msgid "The url is invalid."
 msgid "The url is invalid."
 msgstr "URL geçersiz."
 msgstr "URL geçersiz."
@@ -3077,11 +2996,7 @@ msgstr "İpuçları"
 msgid "Title"
 msgid "Title"
 msgstr "Başlık"
 msgstr "Başlık"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:68
 #: src/views/preference/components/TOTP.vue:68
-=======
-#: src/views/preference/components/TOTP.vue:71
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "To enable it, you need to install the Google or Microsoft Authenticator app "
@@ -3114,7 +3029,7 @@ msgstr ""
 "dosyayı kaydedip Nginx'i yeniden yüklememiz gerekir. Devam etmek "
 "dosyayı kaydedip Nginx'i yeniden yüklememiz gerekir. Devam etmek "
 "istediğinizden emin misiniz?"
 "istediğinizden emin misiniz?"
 
 
-#: src/views/preference/OpenAISettings.vue:48
+#: src/views/preference/OpenAISettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
@@ -3125,7 +3040,7 @@ msgstr ""
 "uyumlu bir API uç noktası sağlarlar, bu nedenle baseUrl'yi yerel API'nize "
 "uyumlu bir API uç noktası sağlarlar, bu nedenle baseUrl'yi yerel API'nize "
 "ayarlamanız yeterlidir."
 "ayarlamanız yeterlidir."
 
 
-#: src/views/preference/OpenAISettings.vue:72
+#: src/views/preference/OpenAISettings.vue:61
 #, fuzzy
 #, fuzzy
 msgid "Token is not valid"
 msgid "Token is not valid"
 msgstr "Belirteç geçerli değil"
 msgstr "Belirteç geçerli değil"
@@ -3136,20 +3051,12 @@ msgid_plural "Total %{total} items"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:66
 #: src/views/preference/components/TOTP.vue:66
-=======
-#: src/views/preference/components/TOTP.vue:69
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "TOTP"
 msgid "TOTP"
 msgstr "TOTP"
 msgstr "TOTP"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:67
 #: src/views/preference/components/TOTP.vue:67
-=======
-#: src/views/preference/components/TOTP.vue:70
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "TOTP is a two-factor authentication method that uses a time-based one-time "
@@ -3233,12 +3140,12 @@ msgstr "Çalışma süresi:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/components/TwoFA/Authorization.vue:102
+#: src/components/TwoFA/Authorization.vue:121
 #, fuzzy
 #, fuzzy
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "OTP kullanın"
 msgstr "OTP kullanın"
 
 
-#: src/components/TwoFA/Authorization.vue:98
+#: src/components/TwoFA/Authorization.vue:117
 #, fuzzy
 #, fuzzy
 msgid "Use recovery code"
 msgid "Use recovery code"
 msgstr "Kurtarma kodunu kullanın"
 msgstr "Kurtarma kodunu kullanın"
@@ -3435,6 +3342,18 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "Geçiş anahtarlarınız"
 msgstr "Geçiş anahtarlarınız"
 
 
+#~ msgid "Can't scan? Use text key binding"
+#~ msgstr "Tarayamıyor musunuz? Metin anahtar bağlamasını kullanın"
+
+#~ msgid "Directory"
+#~ msgstr "Dizin"
+
+#~ msgid "Environment"
+#~ msgstr "Ortam"
+
+#~ msgid "File"
+#~ msgstr "Dosya"
+
 #~ msgid ""
 #~ msgid ""
 #~ "If you lose your mobile phone, you can use the recovery code to reset "
 #~ "If you lose your mobile phone, you can use the recovery code to reset "
 #~ "your 2FA."
 #~ "your 2FA."
@@ -3442,10 +3361,17 @@ msgstr "Geçiş anahtarlarınız"
 #~ "Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu "
 #~ "Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu "
 #~ "kullanabilirsiniz."
 #~ "kullanabilirsiniz."
 
 
+#~ msgid "Incorrect username or password"
+#~ msgstr "Kullanıcı adı veya şifre yanlış"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Recovery Code:"
 #~ msgid "Recovery Code:"
 #~ msgstr "Kurtarma Kodu:"
 #~ msgstr "Kurtarma Kodu:"
 
 
+#, fuzzy
+#~ msgid "Server error"
+#~ msgstr "Server hatası"
+
 #, fuzzy
 #, fuzzy
 #~ msgid ""
 #~ msgid ""
 #~ "The recovery code is only displayed once, please save it in a safe place."
 #~ "The recovery code is only displayed once, please save it in a safe place."
@@ -3453,25 +3379,6 @@ msgstr "Geçiş anahtarlarınız"
 #~ "Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere "
 #~ "Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere "
 #~ "kaydedin."
 #~ "kaydedin."
 
 
-#~ msgid "Can't scan? Use text key binding"
-#~ msgstr "Tarayamıyor musunuz? Metin anahtar bağlamasını kullanın"
-
-#~ msgid "Directory"
-#~ msgstr "Dizin"
-
-#~ msgid "Environment"
-#~ msgstr "Ortam"
-
-#~ msgid "File"
-#~ msgstr "Dosya"
-
-#, fuzzy
-#~ msgid "Server error"
-#~ msgstr "Server hatası"
-
-#~ msgid "Incorrect username or password"
-#~ msgstr "Kullanıcı adı veya şifre yanlış"
-
 #, fuzzy
 #, fuzzy
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgstr ""
 #~ msgstr ""

+ 57 - 159
app/src/language/vi_VN/app.po

@@ -107,25 +107,27 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:44
+#: src/language/constants.ts:57
+msgid "All Recovery Codes Have Been Used"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:32
 msgid "API Base Url"
 msgid "API Base Url"
 msgstr ""
 msgstr ""
 
 
 #: src/views/certificate/DNSChallenge.vue:83
 #: src/views/certificate/DNSChallenge.vue:83
-#, fuzzy
 msgid "API Document"
 msgid "API Document"
-msgstr "Bình luận"
+msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:57
+#: src/views/preference/OpenAISettings.vue:46
 msgid "API Proxy"
 msgid "API Proxy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:69
-#, fuzzy
+#: src/views/preference/OpenAISettings.vue:58
 msgid "API Token"
 msgid "API Token"
-msgstr "Loại"
+msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:78
+#: src/views/preference/OpenAISettings.vue:67
 #, fuzzy
 #, fuzzy
 msgid "API Type"
 msgid "API Type"
 msgstr "Loại"
 msgstr "Loại"
@@ -235,7 +237,7 @@ msgstr ""
 msgid "Auth"
 msgid "Auth"
 msgstr "Tác giả"
 msgstr "Tác giả"
 
 
-#: src/components/TwoFA/Authorization.vue:121
+#: src/components/TwoFA/Authorization.vue:109
 msgid "Authenticate with a passkey"
 msgid "Authenticate with a passkey"
 msgstr ""
 msgstr ""
 
 
@@ -342,13 +344,6 @@ msgstr ""
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:129
-msgid "Can't scan? Use text key binding"
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:246
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
 #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:187
@@ -610,19 +605,11 @@ msgstr "Chứng chỉ"
 msgid "Credentials"
 msgid "Credentials"
 msgstr "Chứng chỉ"
 msgstr "Chứng chỉ"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:72
 #: src/views/preference/components/TOTP.vue:72
 msgid "Current account is enabled TOTP."
 msgid "Current account is enabled TOTP."
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/TOTP.vue:70
 #: src/views/preference/components/TOTP.vue:70
-=======
-#: src/views/preference/components/TOTP.vue:77
-msgid "Current account is enabled TOTP."
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:74
->>>>>>> remotes/origin/dev
 msgid "Current account is not enabled TOTP."
 msgid "Current account is not enabled TOTP."
 msgstr ""
 msgstr ""
 
 
@@ -981,11 +968,7 @@ msgstr "Không thể bật %{conf_name} trên %{node_name}"
 msgid "Enable %{conf_name} in %{node_name} successfully"
 msgid "Enable %{conf_name} in %{node_name} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:45
-=======
-#: src/views/preference/components/TOTP.vue:38
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Enable 2FA successfully"
 msgid "Enable 2FA successfully"
 msgstr "Đã bật"
 msgstr "Đã bật"
@@ -1027,11 +1010,7 @@ msgstr "Đã bật"
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "Bật TLS"
 msgstr "Bật TLS"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:81
 #: src/views/preference/components/TOTP.vue:81
-=======
-#: src/views/preference/components/TOTP.vue:103
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Enable TOTP"
 msgid "Enable TOTP"
 msgstr "Bật TLS"
 msgstr "Bật TLS"
@@ -1132,9 +1111,8 @@ msgid "Failed to parse nginx.conf"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/self_check.ts:3
 #: src/constants/errors/self_check.ts:3
-#, fuzzy
 msgid "Failed to read nginx.conf"
 msgid "Failed to read nginx.conf"
-msgstr "Không thể bật %{msg}"
+msgstr ""
 
 
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/site/site_edit/SiteEdit.vue:135
 #: src/views/stream/StreamEdit.vue:122
 #: src/views/stream/StreamEdit.vue:122
@@ -1210,9 +1188,8 @@ msgid "Generate New Recovery Codes"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:161
 #: src/views/preference/components/RecoveryCodes.vue:161
-#, fuzzy
 msgid "Generate Recovery Codes"
 msgid "Generate Recovery Codes"
-msgstr "Hợp lệ"
+msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:32
 #: src/views/preference/components/RecoveryCodes.vue:32
 #, fuzzy
 #, fuzzy
@@ -1245,9 +1222,8 @@ msgid "Home"
 msgstr "Trang chủ"
 msgstr "Trang chủ"
 
 
 #: src/views/preference/CertSettings.vue:12
 #: src/views/preference/CertSettings.vue:12
-#, fuzzy
 msgid "HTTP Challenge Port"
 msgid "HTTP Challenge Port"
-msgstr "Phương pháp xác thực"
+msgstr ""
 
 
 #: src/views/preference/BasicSettings.vue:11
 #: src/views/preference/BasicSettings.vue:11
 msgid "HTTP Host"
 msgid "HTTP Host"
@@ -1275,15 +1251,6 @@ msgid ""
 "ban threshold minutes, the ip will be banned for a period of time."
 "ban threshold minutes, the ip will be banned for a period of time."
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:89
-msgid ""
-"If you lose your mobile phone, you can use the recovery code to reset your "
-"2FA."
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/views/preference/components/AddPasskey.vue:70
 #: src/views/preference/components/AddPasskey.vue:70
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
 msgstr ""
 msgstr ""
@@ -1317,19 +1284,11 @@ msgstr "Không thể khởi tạo trình nâng cấp"
 msgid "Initialing core upgrader"
 msgid "Initialing core upgrader"
 msgstr "Đang khởi tạo trình nâng cấp"
 msgstr "Đang khởi tạo trình nâng cấp"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:119
 #: src/views/preference/components/TOTP.vue:119
-=======
-#: src/views/preference/components/TOTP.vue:136
->>>>>>> remotes/origin/dev
 msgid "Input the code from the app:"
 msgid "Input the code from the app:"
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:82
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:149
->>>>>>> remotes/origin/dev
+#: src/components/TwoFA/Authorization.vue:72
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr ""
 msgstr ""
 
 
@@ -1358,9 +1317,8 @@ msgid "Invalid filename"
 msgstr "E-mail không chính xác!"
 msgstr "E-mail không chính xác!"
 
 
 #: src/views/config/components/Mkdir.vue:57
 #: src/views/config/components/Mkdir.vue:57
-#, fuzzy
 msgid "Invalid folder name"
 msgid "Invalid folder name"
-msgstr "E-mail không chính xác!"
+msgstr ""
 
 
 #: src/constants/errors/user.ts:4
 #: src/constants/errors/user.ts:4
 #, fuzzy
 #, fuzzy
@@ -1372,19 +1330,14 @@ msgid "Invalid passcode or recovery code"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/errors/user.ts:5
 #: src/constants/errors/user.ts:5
-#, fuzzy
 msgid "Invalid recovery code"
 msgid "Invalid recovery code"
-msgstr "Hợp lệ"
+msgstr ""
 
 
-<<<<<<< HEAD
-#: src/views/preference/AuthSettings.vue:18
-=======
 #: src/constants/errors/middleware.ts:2
 #: src/constants/errors/middleware.ts:2
 msgid "Invalid request format"
 msgid "Invalid request format"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/AuthSettings.vue:14
->>>>>>> remotes/origin/dev
+#: src/views/preference/AuthSettings.vue:18
 msgid "IP"
 msgid "IP"
 msgstr ""
 msgstr ""
 
 
@@ -1436,7 +1389,7 @@ msgstr "Kiểm tra lần cuối lúc"
 msgid "Leave blank for no change"
 msgid "Leave blank for no change"
 msgstr "Bỏ trống nếu không thay đổi"
 msgstr "Bỏ trống nếu không thay đổi"
 
 
-#: src/views/preference/OpenAISettings.vue:53
+#: src/views/preference/OpenAISettings.vue:41
 msgid "Leave blank for the default: https://api.openai.com/"
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Bỏ trống để sử dụng địa chỉ mặc định: https://api.openai.com/"
 msgstr "Bỏ trống để sử dụng địa chỉ mặc định: https://api.openai.com/"
 
 
@@ -1507,7 +1460,7 @@ msgstr "Locations"
 msgid "Log"
 msgid "Log"
 msgstr "Log"
 msgstr "Log"
 
 
-#: src/routes/index.ts:318 src/views/other/Login.vue:222
+#: src/routes/index.ts:318 src/views/other/Login.vue:223
 msgid "Login"
 msgid "Login"
 msgstr "Đăng nhập"
 msgstr "Đăng nhập"
 
 
@@ -1561,9 +1514,8 @@ msgid "Manage Users"
 msgstr "Người dùng"
 msgstr "Người dùng"
 
 
 #: src/views/certificate/CertificateList/certColumns.tsx:31
 #: src/views/certificate/CertificateList/certColumns.tsx:31
-#, fuzzy
 msgid "Managed Certificate"
 msgid "Managed Certificate"
-msgstr "Thay đổi chứng chỉ"
+msgstr ""
 
 
 #: src/views/preference/AuthSettings.vue:135
 #: src/views/preference/AuthSettings.vue:135
 msgid "Max Attempts"
 msgid "Max Attempts"
@@ -1582,7 +1534,7 @@ msgstr "Memory và Storage"
 msgid "Minutes"
 msgid "Minutes"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:20
 #, fuzzy
 #, fuzzy
 msgid "Model"
 msgid "Model"
 msgstr "Run Mode"
 msgstr "Run Mode"
@@ -1725,14 +1677,12 @@ msgid "Nginx is not running"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/index.ts:202 src/views/nginx_log/NginxLog.vue:148
 #: src/routes/index.ts:202 src/views/nginx_log/NginxLog.vue:148
-#, fuzzy
 msgid "Nginx Log"
 msgid "Nginx Log"
-msgstr "Vị trí lưu log lỗi (Error log) của Nginx"
+msgstr ""
 
 
 #: src/views/preference/NginxSettings.vue:18
 #: src/views/preference/NginxSettings.vue:18
-#, fuzzy
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
-msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
+msgstr ""
 
 
 #: src/views/preference/NginxSettings.vue:27
 #: src/views/preference/NginxSettings.vue:27
 #, fuzzy
 #, fuzzy
@@ -1780,9 +1730,8 @@ msgid "Node name"
 msgstr "Username"
 msgstr "Username"
 
 
 #: src/views/preference/BasicSettings.vue:23
 #: src/views/preference/BasicSettings.vue:23
-#, fuzzy
 msgid "Node Secret"
 msgid "Node Secret"
-msgstr "Username"
+msgstr ""
 
 
 #: src/views/certificate/CertificateList/certColumns.tsx:91
 #: src/views/certificate/CertificateList/certColumns.tsx:91
 msgid "Not After"
 msgid "Not After"
@@ -1881,7 +1830,7 @@ msgstr "Trực tuyến"
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:112 src/views/other/Login.vue:231
+#: src/components/TwoFA/Authorization.vue:100 src/views/other/Login.vue:232
 msgid "Or"
 msgid "Or"
 msgstr ""
 msgstr ""
 
 
@@ -1984,7 +1933,7 @@ msgid ""
 "button below."
 "button below."
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:70
+#: src/components/TwoFA/Authorization.vue:85
 msgid "Please enter the OTP code:"
 msgid "Please enter the OTP code:"
 msgstr ""
 msgstr ""
 
 
@@ -2007,6 +1956,12 @@ msgstr ""
 "Trước tiên, vui lòng thêm thông tin xác thực trong Chứng chỉ > Thông tin xác "
 "Trước tiên, vui lòng thêm thông tin xác thực trong Chứng chỉ > Thông tin xác "
 "thực DNS, sau đó chọn nhà cung cấp DNS"
 "thực DNS, sau đó chọn nhà cung cấp DNS"
 
 
+#: src/language/constants.ts:58
+msgid ""
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
+msgstr ""
+
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/components/Rename.vue:63
 #: src/views/config/ConfigEditor.vue:249
 #: src/views/config/ConfigEditor.vue:249
 #, fuzzy
 #, fuzzy
@@ -2132,32 +2087,18 @@ msgstr ""
 msgid "Recovered Successfully"
 msgid "Recovered Successfully"
 msgstr "Xoá thành công"
 msgstr "Xoá thành công"
 
 
-#: src/components/TwoFA/Authorization.vue:89
-<<<<<<< HEAD
+#: src/components/TwoFA/Authorization.vue:79
 msgid "Recovery"
 msgid "Recovery"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:68
 #: src/views/preference/components/RecoveryCodes.vue:68
-#, fuzzy
 msgid "Recovery Codes"
 msgid "Recovery Codes"
-msgstr "Hợp lệ"
+msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:73
 #: src/views/preference/components/RecoveryCodes.vue:73
 msgid ""
 msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
-=======
-#: src/views/preference/components/TOTP.vue:156
-msgid "Recovery"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:82
-msgid "Recovery Code"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:91
-msgid "Recovery Code:"
->>>>>>> remotes/origin/dev
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/CertSettings.vue:37
 #: src/views/preference/CertSettings.vue:37
@@ -2350,11 +2291,7 @@ msgstr "Yêu cầu có chứa tham số sai"
 msgid "Reset"
 msgid "Reset"
 msgstr "Đặt lại"
 msgstr "Đặt lại"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:93
 #: src/views/preference/components/TOTP.vue:93
-=======
-#: src/views/preference/components/TOTP.vue:111
->>>>>>> remotes/origin/dev
 #, fuzzy
 #, fuzzy
 msgid "Reset 2FA"
 msgid "Reset 2FA"
 msgstr "Đặt lại"
 msgstr "Đặt lại"
@@ -2448,11 +2385,7 @@ msgstr "Lưu thành công"
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "Lưu thành công"
 msgstr "Lưu thành công"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:69
 #: src/views/preference/components/TOTP.vue:69
-=======
-#: src/views/preference/components/TOTP.vue:72
->>>>>>> remotes/origin/dev
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgid "Scan the QR code with your mobile phone to add the account to the app."
 msgstr ""
 msgstr ""
 
 
@@ -2460,11 +2393,7 @@ msgstr ""
 msgid "SDK"
 msgid "SDK"
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:109
 #: src/views/preference/components/TOTP.vue:109
-=======
-#: src/views/preference/components/TOTP.vue:128
->>>>>>> remotes/origin/dev
 msgid "Secret has been copied"
 msgid "Secret has been copied"
 msgstr ""
 msgstr ""
 
 
@@ -2537,7 +2466,7 @@ msgstr ""
 msgid "Show"
 msgid "Show"
 msgstr ""
 msgstr ""
 
 
-#: src/views/other/Login.vue:240
+#: src/views/other/Login.vue:241
 msgid "Sign in with a passkey"
 msgid "Sign in with a passkey"
 msgstr ""
 msgstr ""
 
 
@@ -2574,39 +2503,32 @@ msgid "Sites List"
 msgstr "Danh sách Website"
 msgstr "Danh sách Website"
 
 
 #: src/constants/errors/self_check.ts:10
 #: src/constants/errors/self_check.ts:10
-#, fuzzy
 msgid "Sites-available directory not exist"
 msgid "Sites-available directory not exist"
-msgstr "Thư mục"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:11
 #: src/constants/errors/self_check.ts:11
-#, fuzzy
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
-msgstr "Thư mục"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
-#, fuzzy
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
-msgstr "Trạng thái chứng chỉ"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:224
 #: src/views/certificate/CertificateEditor.vue:224
-#, fuzzy
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
-msgstr "Trạng thái chứng chỉ"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:190
 #: src/views/certificate/CertificateEditor.vue:190
-#, fuzzy
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
-msgstr "Trạng thái chứng chỉ"
+msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
-#, fuzzy
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
-msgstr "Trạng thái chứng chỉ"
+msgstr ""
 
 
 #: src/views/other/Login.vue:198
 #: src/views/other/Login.vue:198
-#, fuzzy
 msgid "SSO Login"
 msgid "SSO Login"
-msgstr "Đăng nhập"
+msgstr ""
 
 
 #: src/views/environment/BatchUpgrader.vue:164
 #: src/views/environment/BatchUpgrader.vue:164
 #: src/views/environment/BatchUpgrader.vue:214 src/views/system/Upgrade.vue:191
 #: src/views/environment/BatchUpgrader.vue:214 src/views/system/Upgrade.vue:191
@@ -2637,9 +2559,8 @@ msgid "Streams Directory"
 msgstr "Thư mục"
 msgstr "Thư mục"
 
 
 #: src/constants/errors/self_check.ts:12
 #: src/constants/errors/self_check.ts:12
-#, fuzzy
 msgid "Streams-available directory not exist"
 msgid "Streams-available directory not exist"
-msgstr "Thư mục"
+msgstr ""
 
 
 #: src/constants/errors/self_check.ts:13
 #: src/constants/errors/self_check.ts:13
 #, fuzzy
 #, fuzzy
@@ -2738,9 +2659,8 @@ msgid "Sync strategy"
 msgstr "Gia hạn chứng chỉ SSL"
 msgstr "Gia hạn chứng chỉ SSL"
 
 
 #: src/views/certificate/CertificateEditor.vue:204
 #: src/views/certificate/CertificateEditor.vue:204
-#, fuzzy
 msgid "Sync to"
 msgid "Sync to"
-msgstr "Gia hạn chứng chỉ SSL"
+msgstr ""
 
 
 #: src/views/site/site_edit/RightSettings.vue:110
 #: src/views/site/site_edit/RightSettings.vue:110
 msgid "Synchronization"
 msgid "Synchronization"
@@ -2804,7 +2724,7 @@ msgid ""
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 "The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:23
 msgid ""
 msgid ""
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -2830,14 +2750,6 @@ msgid ""
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-<<<<<<< HEAD
-=======
-#: src/views/preference/components/TOTP.vue:90
-msgid ""
-"The recovery code is only displayed once, please save it in a safe place."
-msgstr ""
-
->>>>>>> remotes/origin/dev
 #: src/views/dashboard/Environments.vue:148
 #: src/views/dashboard/Environments.vue:148
 msgid ""
 msgid ""
 "The remote Nginx UI version is not compatible with the local Nginx UI "
 "The remote Nginx UI version is not compatible with the local Nginx UI "
@@ -2858,8 +2770,8 @@ msgstr ""
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:47
-#: src/views/preference/OpenAISettings.vue:60
+#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:49
 msgid "The url is invalid."
 msgid "The url is invalid."
 msgstr ""
 msgstr ""
 
 
@@ -2913,10 +2825,9 @@ msgid "This value is already taken"
 msgstr ""
 msgstr ""
 
 
 #: src/views/environment/BatchUpgrader.vue:182
 #: src/views/environment/BatchUpgrader.vue:182
-#, fuzzy
 msgid ""
 msgid ""
 "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
-msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
+msgstr ""
 
 
 #: src/views/preference/AuthSettings.vue:124
 #: src/views/preference/AuthSettings.vue:124
 msgid "Throttle"
 msgid "Throttle"
@@ -2932,11 +2843,7 @@ msgstr ""
 msgid "Title"
 msgid "Title"
 msgstr "Tiêu đề"
 msgstr "Tiêu đề"
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:68
 #: src/views/preference/components/TOTP.vue:68
-=======
-#: src/views/preference/components/TOTP.vue:71
->>>>>>> remotes/origin/dev
 msgid ""
 msgid ""
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "on your mobile phone."
 "on your mobile phone."
@@ -2961,14 +2868,14 @@ msgstr ""
 "quyền đến chương trình phụ trợ và chúng tôi cần lưu tệp này và tải lại "
 "quyền đến chương trình phụ trợ và chúng tôi cần lưu tệp này và tải lại "
 "Nginx. Bạn có chắc chắn muốn Tiếp tục?"
 "Nginx. Bạn có chắc chắn muốn Tiếp tục?"
 
 
-#: src/views/preference/OpenAISettings.vue:48
+#: src/views/preference/OpenAISettings.vue:36
 msgid ""
 msgid ""
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "To use a local large model, deploy it with ollama, vllm or lmdeploy. They "
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 "local API."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/OpenAISettings.vue:72
+#: src/views/preference/OpenAISettings.vue:61
 msgid "Token is not valid"
 msgid "Token is not valid"
 msgstr ""
 msgstr ""
 
 
@@ -2978,19 +2885,11 @@ msgid_plural "Total %{total} items"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-<<<<<<< HEAD
 #: src/views/preference/components/TOTP.vue:66
 #: src/views/preference/components/TOTP.vue:66
 msgid "TOTP"
 msgid "TOTP"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/components/TOTP.vue:67
 #: src/views/preference/components/TOTP.vue:67
-=======
-#: src/views/preference/components/TOTP.vue:69
-msgid "TOTP"
-msgstr ""
-
-#: src/views/preference/components/TOTP.vue:70
->>>>>>> remotes/origin/dev
 msgid ""
 msgid ""
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "password algorithm."
 "password algorithm."
@@ -3062,11 +2961,11 @@ msgstr "Thời gian hoạt động:"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:102
+#: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 msgstr ""
 
 
-#: src/components/TwoFA/Authorization.vue:98
+#: src/components/TwoFA/Authorization.vue:117
 msgid "Use recovery code"
 msgid "Use recovery code"
 msgstr ""
 msgstr ""
 
 
@@ -3124,9 +3023,8 @@ msgid "View Mode"
 msgstr "Cơ bản"
 msgstr "Cơ bản"
 
 
 #: src/views/preference/components/RecoveryCodes.vue:134
 #: src/views/preference/components/RecoveryCodes.vue:134
-#, fuzzy
 msgid "View Recovery Codes"
 msgid "View Recovery Codes"
-msgstr "Hợp lệ"
+msgstr ""
 
 
 #: src/views/preference/components/RecoveryCodes.vue:70
 #: src/views/preference/components/RecoveryCodes.vue:70
 #, fuzzy
 #, fuzzy
@@ -3251,13 +3149,13 @@ msgstr ""
 #~ msgid "File"
 #~ msgid "File"
 #~ msgstr "Tệp tin"
 #~ msgstr "Tệp tin"
 
 
-#~ msgid "Server error"
-#~ msgstr "Lỗi máy chủ"
-
 #, fuzzy
 #, fuzzy
 #~ msgid "Incorrect username or password"
 #~ msgid "Incorrect username or password"
 #~ msgstr "Tên người dùng hoặc mật khẩu không chính xác"
 #~ msgstr "Tên người dùng hoặc mật khẩu không chính xác"
 
 
+#~ msgid "Server error"
+#~ msgstr "Lỗi máy chủ"
+
 #, fuzzy
 #, fuzzy
 #~ msgid ""
 #~ msgid ""
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "

部分文件因为文件数量过多而无法显示