- Code
- {' '}
- {view.userCode}
- {' '}
- is valid. Choose how to sign in.
+ }}
+ />
@@ -190,11 +193,11 @@ export default function DevicePage() {
-
You're signed in
-
Return to your terminal to continue.
+
{t('success.title')}
+
{t('success.subtitle')}
)}
@@ -204,13 +207,13 @@ export default function DevicePage() {
-
Code no longer valid
+
{t('errorExpired.title')}
- Expired or already used. Run
- {' '}
- difyctl auth login
- {' '}
- to get a new code.
+ }}
+ />
)}
@@ -231,8 +234,8 @@ export default function DevicePage() {
-
Too many attempts
-
Wait a moment and try again.
+
{t('errorRateLimited.title')}
+
{t('errorRateLimited.body')}
)}
@@ -252,9 +255,9 @@ export default function DevicePage() {
-
Could not verify the code
+
{t('errorLookupFailed.title')}
- Something went wrong on our side. Try again in a moment.
+ {t('errorLookupFailed.body')}
)}
diff --git a/web/app/device/utils/error-copy.ts b/web/app/device/utils/error-copy.ts
index d0184dad7bd..f6ba4f68cf0 100644
--- a/web/app/device/utils/error-copy.ts
+++ b/web/app/device/utils/error-copy.ts
@@ -1,45 +1,46 @@
// Translate a DeviceFlowError (or any thrown value) into user-facing copy.
// Centralised so account/SSO branches surface the same words for the same
-// failure mode and so a new server error code can be wired up here once.
+// failure mode and so a new server error code can be wired up here once —
+// this maps a server code to an i18n key, then the key to translated copy.
+import type { TFunction } from 'i18next'
+import type deviceFlowResources from '@/i18n/en-US/device-flow.json'
import { DeviceFlowError } from '@/service/device-flow'
-const APPROVE_COPY: Record = {
- rate_limited: 'Too many attempts. Wait a moment and try again.',
- no_session: 'Your session has expired. Run difyctl auth login again to start over.',
- invalid_session: 'Your session has expired. Run difyctl auth login again to start over.',
- session_already_consumed: 'This session was already used. Run difyctl auth login again.',
- csrf_mismatch: 'Could not verify the request. Refresh the page and try again.',
- forbidden: 'Could not verify the request. Refresh the page and try again.',
- expired_or_unknown: 'This code is no longer valid.',
- not_found: 'This code is no longer valid.',
- user_code_mismatch: 'This code does not match the active session. Run difyctl auth login again.',
- user_code_not_pending: 'This code was already approved or denied.',
- already_resolved: 'This code was already approved or denied.',
- state_lost: 'The flow expired before approval completed. Run difyctl auth login again.',
- approve_in_progress: 'An approval is already in progress for this code.',
- conflict: 'This code is no longer in a state we can approve.',
- server_error: 'Something went wrong on our side. Try again in a moment.',
+type DeviceFlowKey = keyof typeof deviceFlowResources
+
+const APPROVE_KEY: Record = {
+ rate_limited: 'approveError.rateLimited',
+ no_session: 'approveError.sessionExpired',
+ invalid_session: 'approveError.sessionExpired',
+ session_already_consumed: 'approveError.sessionConsumed',
+ csrf_mismatch: 'approveError.verifyFailed',
+ forbidden: 'approveError.verifyFailed',
+ expired_or_unknown: 'approveError.codeInvalid',
+ not_found: 'approveError.codeInvalid',
+ user_code_mismatch: 'approveError.codeMismatch',
+ user_code_not_pending: 'approveError.codeResolved',
+ already_resolved: 'approveError.codeResolved',
+ state_lost: 'approveError.flowExpired',
+ approve_in_progress: 'approveError.inProgress',
+ conflict: 'approveError.conflict',
+ server_error: 'approveError.serverError',
}
-const DEFAULT_MESSAGE = 'Could not complete the request. Please try again.'
-
-export function approveErrorCopy(err: unknown): string {
+export function approveErrorCopy(err: unknown, t: TFunction<'deviceFlow'>): string {
if (err instanceof DeviceFlowError)
- return APPROVE_COPY[err.code] ?? DEFAULT_MESSAGE
- return DEFAULT_MESSAGE
+ return t(APPROVE_KEY[err.code] ?? 'approveError.default')
+ return t('approveError.default')
}
// SSO-branch failures arrive as a `sso_error` query param set by the backend
// (oauth_device_sso sso-complete) when it redirects back to /device.
-const SSO_ERROR_COPY: Record = {
- email_belongs_to_dify_account: 'This identity is linked to a Dify account. Use “Sign in with Dify account” instead.',
+const SSO_ERROR_KEY: Record = {
+ email_belongs_to_dify_account: 'ssoError.emailBelongsToDifyAccount',
}
-const DEFAULT_SSO_ERROR_MESSAGE = 'Single sign-on could not be completed. Try again.'
-
-export function ssoErrorCopy(code: string): string {
- return SSO_ERROR_COPY[code] ?? DEFAULT_SSO_ERROR_MESSAGE
+export function ssoErrorCopy(code: string, t: TFunction<'deviceFlow'>): string {
+ return t(SSO_ERROR_KEY[code] ?? 'ssoError.default')
}
export type LookupOutcome = 'expired' | 'rate_limited' | 'failed'
diff --git a/web/i18n-config/resources.ts b/web/i18n-config/resources.ts
index 16c0ad39bee..7a3400f1122 100644
--- a/web/i18n-config/resources.ts
+++ b/web/i18n-config/resources.ts
@@ -15,6 +15,7 @@ import type datasetPipeline from '../i18n/en-US/dataset-pipeline.json'
import type datasetSettings from '../i18n/en-US/dataset-settings.json'
import type dataset from '../i18n/en-US/dataset.json'
import type deployments from '../i18n/en-US/deployments.json'
+import type deviceFlow from '../i18n/en-US/device-flow.json'
import type education from '../i18n/en-US/education.json'
import type explore from '../i18n/en-US/explore.json'
import type layout from '../i18n/en-US/layout.json'
@@ -53,6 +54,7 @@ export type Resources = {
datasetPipeline: typeof datasetPipeline
datasetSettings: typeof datasetSettings
deployments: typeof deployments
+ deviceFlow: typeof deviceFlow
education: typeof education
explore: typeof explore
layout: typeof layout
@@ -91,6 +93,7 @@ export const namespaces = [
'datasetPipeline',
'datasetSettings',
'deployments',
+ 'deviceFlow',
'education',
'explore',
'layout',
diff --git a/web/i18n/ar-TN/device-flow.json b/web/i18n/ar-TN/device-flow.json
new file mode 100644
index 00000000000..77f3e15f039
--- /dev/null
+++ b/web/i18n/ar-TN/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "لم يعد هذا الرمز صالحًا.",
+ "approveError.codeMismatch": "هذا الرمز لا يتطابق مع الجلسة النشطة. شغّل difyctl auth login مرة أخرى.",
+ "approveError.codeResolved": "تمت الموافقة على هذا الرمز أو رفضه بالفعل.",
+ "approveError.conflict": "لم يعد هذا الرمز في حالة يمكننا الموافقة عليها.",
+ "approveError.default": "تعذّر إتمام الطلب. يرجى المحاولة مرة أخرى.",
+ "approveError.flowExpired": "انتهت صلاحية العملية قبل اكتمال الموافقة. شغّل difyctl auth login مرة أخرى.",
+ "approveError.inProgress": "هناك موافقة قيد التنفيذ بالفعل لهذا الرمز.",
+ "approveError.rateLimited": "عدد كبير جدًا من المحاولات. انتظر لحظة وحاول مرة أخرى.",
+ "approveError.serverError": "حدث خطأ ما من جانبنا. حاول مرة أخرى بعد لحظة.",
+ "approveError.sessionConsumed": "تم استخدام هذه الجلسة بالفعل. شغّل difyctl auth login مرة أخرى.",
+ "approveError.sessionExpired": "انتهت صلاحية جلستك. شغّل difyctl auth login مرة أخرى للبدء من جديد.",
+ "approveError.verifyFailed": "تعذّر التحقق من الطلب. أعد تحميل الصفحة وحاول مرة أخرى.",
+ "authorize.accountSubtitle": "يطلب difyctl الوصول. إذا لم تبدأ هذا من الطرفية الخاصة بك، فانقر على إلغاء.",
+ "authorize.approve": "تفويض",
+ "authorize.identityProvider": "مزوّد الهوية:",
+ "authorize.loadingSession": "جارٍ تحميل الجلسة…",
+ "authorize.sessionInvalidBody": "شغّل difyctl auth login مرة أخرى لبدء تسجيل دخول جديد.",
+ "authorize.sessionInvalidTitle": "لم تعد هذه الجلسة صالحة",
+ "authorize.ssoSubtitle": "يطلب difyctl الوصول عبر SSO. إذا لم تبدأ هذا من الطرفية الخاصة بك، فأغلق هذا التبويب.",
+ "authorize.title": "تفويض difyctl",
+ "authorize.viaSSO": "عبر SSO",
+ "authorize.workspace": "مساحة العمل:",
+ "chooser.signInAccount": "تسجيل الدخول بحساب Dify",
+ "chooser.signInSSO": "تسجيل الدخول عبر SSO",
+ "chooser.subtitle": "الرمز {{code}} صالح. اختر طريقة تسجيل الدخول.",
+ "chooser.title": "سجّل الدخول للتفويض",
+ "codeEntry.codeAriaLabel": "رمز لمرة واحدة",
+ "codeEntry.continue": "متابعة",
+ "codeEntry.subtitle": "أدخل الرمز الظاهر في الطرفية الخاصة بك.",
+ "codeEntry.title": "تفويض difyctl",
+ "errorExpired.body": "منتهي الصلاحية أو تم استخدامه بالفعل. شغّل difyctl auth login للحصول على رمز جديد.",
+ "errorExpired.title": "الرمز لم يعد صالحًا",
+ "errorExpired.tryDifferentCode": "← جرّب رمزًا مختلفًا",
+ "errorLookupFailed.body": "حدث خطأ ما من جانبنا. حاول مرة أخرى بعد لحظة.",
+ "errorLookupFailed.title": "تعذّر التحقق من الرمز",
+ "errorRateLimited.body": "انتظر لحظة وحاول مرة أخرى.",
+ "errorRateLimited.title": "عدد كبير جدًا من المحاولات",
+ "ssoError.default": "تعذّر إكمال تسجيل الدخول الموحّد (SSO). حاول مرة أخرى.",
+ "ssoError.emailBelongsToDifyAccount": "هذه الهوية مرتبطة بحساب Dify. استخدم “تسجيل الدخول بحساب Dify” بدلاً من ذلك.",
+ "success.goToConsole": "الانتقال إلى وحدة تحكم Dify →",
+ "success.subtitle": "عد إلى الطرفية الخاصة بك للمتابعة.",
+ "success.title": "تم تسجيل دخولك",
+ "tryAgain": "← حاول مرة أخرى"
+}
diff --git a/web/i18n/de-DE/device-flow.json b/web/i18n/de-DE/device-flow.json
new file mode 100644
index 00000000000..7bbe04b6af5
--- /dev/null
+++ b/web/i18n/de-DE/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Dieser Code ist nicht mehr gültig.",
+ "approveError.codeMismatch": "Dieser Code stimmt nicht mit der aktiven Sitzung überein. Führen Sie difyctl auth login erneut aus.",
+ "approveError.codeResolved": "Dieser Code wurde bereits genehmigt oder abgelehnt.",
+ "approveError.conflict": "Dieser Code befindet sich nicht mehr in einem Zustand, den wir genehmigen können.",
+ "approveError.default": "Die Anfrage konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut.",
+ "approveError.flowExpired": "Der Vorgang ist abgelaufen, bevor die Genehmigung abgeschlossen wurde. Führen Sie difyctl auth login erneut aus.",
+ "approveError.inProgress": "Für diesen Code läuft bereits eine Genehmigung.",
+ "approveError.rateLimited": "Zu viele Versuche. Warten Sie einen Moment und versuchen Sie es erneut.",
+ "approveError.serverError": "Auf unserer Seite ist etwas schiefgelaufen. Versuchen Sie es in einem Moment erneut.",
+ "approveError.sessionConsumed": "Diese Sitzung wurde bereits verwendet. Führen Sie difyctl auth login erneut aus.",
+ "approveError.sessionExpired": "Ihre Sitzung ist abgelaufen. Führen Sie difyctl auth login erneut aus, um von vorne zu beginnen.",
+ "approveError.verifyFailed": "Die Anfrage konnte nicht überprüft werden. Aktualisieren Sie die Seite und versuchen Sie es erneut.",
+ "authorize.accountSubtitle": "difyctl fordert Zugriff an. Wenn Sie dies nicht von Ihrem Terminal aus gestartet haben, klicken Sie auf Abbrechen.",
+ "authorize.approve": "Autorisieren",
+ "authorize.identityProvider": "Identitätsanbieter:",
+ "authorize.loadingSession": "Sitzung wird geladen…",
+ "authorize.sessionInvalidBody": "Führen Sie difyctl auth login erneut aus, um eine neue Anmeldung zu starten.",
+ "authorize.sessionInvalidTitle": "Diese Sitzung ist nicht mehr gültig",
+ "authorize.ssoSubtitle": "difyctl fordert Zugriff über SSO an. Wenn Sie dies nicht von Ihrem Terminal aus gestartet haben, schließen Sie diesen Tab.",
+ "authorize.title": "difyctl autorisieren",
+ "authorize.viaSSO": "über SSO",
+ "authorize.workspace": "Arbeitsbereich:",
+ "chooser.signInAccount": "Mit Dify-Konto anmelden",
+ "chooser.signInSSO": "Mit SSO anmelden",
+ "chooser.subtitle": "Der Code {{code}} ist gültig. Wählen Sie eine Anmeldeoption.",
+ "chooser.title": "Zur Autorisierung anmelden",
+ "codeEntry.codeAriaLabel": "Einmalcode",
+ "codeEntry.continue": "Weiter",
+ "codeEntry.subtitle": "Geben Sie den in Ihrem Terminal angezeigten Code ein.",
+ "codeEntry.title": "difyctl autorisieren",
+ "errorExpired.body": "Abgelaufen oder bereits verwendet. Führen Sie difyctl auth login aus, um einen neuen Code zu erhalten.",
+ "errorExpired.title": "Code nicht mehr gültig",
+ "errorExpired.tryDifferentCode": "← Anderen Code versuchen",
+ "errorLookupFailed.body": "Auf unserer Seite ist etwas schiefgelaufen. Versuchen Sie es in einem Moment erneut.",
+ "errorLookupFailed.title": "Code konnte nicht überprüft werden",
+ "errorRateLimited.body": "Warten Sie einen Moment und versuchen Sie es erneut.",
+ "errorRateLimited.title": "Zu viele Versuche",
+ "ssoError.default": "Single Sign-on konnte nicht abgeschlossen werden. Versuchen Sie es erneut.",
+ "ssoError.emailBelongsToDifyAccount": "Diese Identität ist mit einem Dify-Konto verknüpft. Verwenden Sie stattdessen „Mit Dify-Konto anmelden“.",
+ "success.goToConsole": "Zur Dify-Konsole →",
+ "success.subtitle": "Kehren Sie zu Ihrem Terminal zurück, um fortzufahren.",
+ "success.title": "Sie sind angemeldet",
+ "tryAgain": "← Erneut versuchen"
+}
diff --git a/web/i18n/en-US/device-flow.json b/web/i18n/en-US/device-flow.json
new file mode 100644
index 00000000000..662a9734b39
--- /dev/null
+++ b/web/i18n/en-US/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "This code is no longer valid.",
+ "approveError.codeMismatch": "This code does not match the active session. Run difyctl auth login again.",
+ "approveError.codeResolved": "This code was already approved or denied.",
+ "approveError.conflict": "This code is no longer in a state we can approve.",
+ "approveError.default": "Could not complete the request. Please try again.",
+ "approveError.flowExpired": "The flow expired before approval completed. Run difyctl auth login again.",
+ "approveError.inProgress": "An approval is already in progress for this code.",
+ "approveError.rateLimited": "Too many attempts. Wait a moment and try again.",
+ "approveError.serverError": "Something went wrong on our side. Try again in a moment.",
+ "approveError.sessionConsumed": "This session was already used. Run difyctl auth login again.",
+ "approveError.sessionExpired": "Your session has expired. Run difyctl auth login again to start over.",
+ "approveError.verifyFailed": "Could not verify the request. Refresh the page and try again.",
+ "authorize.accountSubtitle": "difyctl is requesting access. If you didn't start this from your terminal, click Cancel.",
+ "authorize.approve": "Authorize",
+ "authorize.identityProvider": "Identity provider:",
+ "authorize.loadingSession": "Loading session…",
+ "authorize.sessionInvalidBody": "Run difyctl auth login again to start a new sign-in.",
+ "authorize.sessionInvalidTitle": "This session is no longer valid",
+ "authorize.ssoSubtitle": "difyctl is requesting access via SSO. If you didn't start this from your terminal, close this tab.",
+ "authorize.title": "Authorize difyctl",
+ "authorize.viaSSO": "via SSO",
+ "authorize.workspace": "Workspace:",
+ "chooser.signInAccount": "Sign in with Dify account",
+ "chooser.signInSSO": "Sign in with SSO",
+ "chooser.subtitle": "Code {{code}} is valid. Choose how to sign in.",
+ "chooser.title": "Sign in to authorize",
+ "codeEntry.codeAriaLabel": "one-time code",
+ "codeEntry.continue": "Continue",
+ "codeEntry.subtitle": "Enter the code shown in your terminal.",
+ "codeEntry.title": "Authorize difyctl",
+ "errorExpired.body": "Expired or already used. Run difyctl auth login to get a new code.",
+ "errorExpired.title": "Code no longer valid",
+ "errorExpired.tryDifferentCode": "← Try a different code",
+ "errorLookupFailed.body": "Something went wrong on our side. Try again in a moment.",
+ "errorLookupFailed.title": "Could not verify the code",
+ "errorRateLimited.body": "Wait a moment and try again.",
+ "errorRateLimited.title": "Too many attempts",
+ "ssoError.default": "Single sign-on could not be completed. Try again.",
+ "ssoError.emailBelongsToDifyAccount": "This identity is linked to a Dify account. Use “Sign in with Dify account” instead.",
+ "success.goToConsole": "Go to Dify console →",
+ "success.subtitle": "Return to your terminal to continue.",
+ "success.title": "You're signed in",
+ "tryAgain": "← Try again"
+}
diff --git a/web/i18n/es-ES/device-flow.json b/web/i18n/es-ES/device-flow.json
new file mode 100644
index 00000000000..f2a89e9a02d
--- /dev/null
+++ b/web/i18n/es-ES/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Este código ya no es válido.",
+ "approveError.codeMismatch": "Este código no coincide con la sesión activa. Ejecuta difyctl auth login de nuevo.",
+ "approveError.codeResolved": "Este código ya fue aprobado o rechazado.",
+ "approveError.conflict": "Este código ya no está en un estado que podamos aprobar.",
+ "approveError.default": "No se pudo completar la solicitud. Inténtalo de nuevo.",
+ "approveError.flowExpired": "El proceso expiró antes de completar la aprobación. Ejecuta difyctl auth login de nuevo.",
+ "approveError.inProgress": "Ya hay una aprobación en curso para este código.",
+ "approveError.rateLimited": "Demasiados intentos. Espera un momento e inténtalo de nuevo.",
+ "approveError.serverError": "Algo salió mal de nuestro lado. Inténtalo de nuevo en un momento.",
+ "approveError.sessionConsumed": "Esta sesión ya fue utilizada. Ejecuta difyctl auth login de nuevo.",
+ "approveError.sessionExpired": "Tu sesión ha expirado. Ejecuta difyctl auth login de nuevo para empezar otra vez.",
+ "approveError.verifyFailed": "No se pudo verificar la solicitud. Actualiza la página e inténtalo de nuevo.",
+ "authorize.accountSubtitle": "difyctl está solicitando acceso. Si no iniciaste esto desde tu terminal, haz clic en Cancelar.",
+ "authorize.approve": "Autorizar",
+ "authorize.identityProvider": "Proveedor de identidad:",
+ "authorize.loadingSession": "Cargando sesión…",
+ "authorize.sessionInvalidBody": "Ejecuta difyctl auth login de nuevo para iniciar un nuevo inicio de sesión.",
+ "authorize.sessionInvalidTitle": "Esta sesión ya no es válida",
+ "authorize.ssoSubtitle": "difyctl está solicitando acceso mediante SSO. Si no iniciaste esto desde tu terminal, cierra esta pestaña.",
+ "authorize.title": "Autorizar difyctl",
+ "authorize.viaSSO": "mediante SSO",
+ "authorize.workspace": "Espacio de trabajo:",
+ "chooser.signInAccount": "Iniciar sesión con cuenta de Dify",
+ "chooser.signInSSO": "Iniciar sesión con SSO",
+ "chooser.subtitle": "El código {{code}} es válido. Elige cómo iniciar sesión.",
+ "chooser.title": "Inicia sesión para autorizar",
+ "codeEntry.codeAriaLabel": "código de un solo uso",
+ "codeEntry.continue": "Continuar",
+ "codeEntry.subtitle": "Introduce el código que se muestra en tu terminal.",
+ "codeEntry.title": "Autorizar difyctl",
+ "errorExpired.body": "Ha expirado o ya se utilizó. Ejecuta difyctl auth login para obtener un código nuevo.",
+ "errorExpired.title": "El código ya no es válido",
+ "errorExpired.tryDifferentCode": "← Probar con otro código",
+ "errorLookupFailed.body": "Algo salió mal de nuestro lado. Inténtalo de nuevo en un momento.",
+ "errorLookupFailed.title": "No se pudo verificar el código",
+ "errorRateLimited.body": "Espera un momento e inténtalo de nuevo.",
+ "errorRateLimited.title": "Demasiados intentos",
+ "ssoError.default": "No se pudo completar el inicio de sesión único. Inténtalo de nuevo.",
+ "ssoError.emailBelongsToDifyAccount": "Esta identidad está vinculada a una cuenta de Dify. Usa “Iniciar sesión con cuenta de Dify” en su lugar.",
+ "success.goToConsole": "Ir a la consola de Dify →",
+ "success.subtitle": "Vuelve a tu terminal para continuar.",
+ "success.title": "Has iniciado sesión",
+ "tryAgain": "← Intentar de nuevo"
+}
diff --git a/web/i18n/fa-IR/device-flow.json b/web/i18n/fa-IR/device-flow.json
new file mode 100644
index 00000000000..71600d020fe
--- /dev/null
+++ b/web/i18n/fa-IR/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "این کد دیگر معتبر نیست.",
+ "approveError.codeMismatch": "این کد با نشست فعال مطابقت ندارد. دوباره difyctl auth login را اجرا کنید.",
+ "approveError.codeResolved": "این کد قبلاً تأیید یا رد شده است.",
+ "approveError.conflict": "این کد دیگر در وضعیتی نیست که بتوانیم آن را تأیید کنیم.",
+ "approveError.default": "درخواست کامل نشد. لطفاً دوباره امتحان کنید.",
+ "approveError.flowExpired": "قبل از تکمیل تأیید، فرآیند منقضی شد. دوباره difyctl auth login را اجرا کنید.",
+ "approveError.inProgress": "یک تأیید برای این کد در حال انجام است.",
+ "approveError.rateLimited": "تعداد تلاشها بیش از حد است. کمی صبر کنید و دوباره امتحان کنید.",
+ "approveError.serverError": "مشکلی از سمت ما پیش آمد. کمی بعد دوباره امتحان کنید.",
+ "approveError.sessionConsumed": "این نشست قبلاً استفاده شده است. دوباره difyctl auth login را اجرا کنید.",
+ "approveError.sessionExpired": "نشست شما منقضی شده است. برای شروع دوباره، difyctl auth login را دوباره اجرا کنید.",
+ "approveError.verifyFailed": "تأیید درخواست ممکن نشد. صفحه را تازهسازی کنید و دوباره امتحان کنید.",
+ "authorize.accountSubtitle": "difyctl درخواست دسترسی دارد. اگر این کار را از ترمینال خود شروع نکردهاید، روی لغو کلیک کنید.",
+ "authorize.approve": "تأیید",
+ "authorize.identityProvider": "ارائهدهنده هویت:",
+ "authorize.loadingSession": "در حال بارگذاری نشست…",
+ "authorize.sessionInvalidBody": "برای شروع یک ورود جدید، دوباره difyctl auth login را اجرا کنید.",
+ "authorize.sessionInvalidTitle": "این نشست دیگر معتبر نیست",
+ "authorize.ssoSubtitle": "difyctl از طریق SSO درخواست دسترسی دارد. اگر این کار را از ترمینال خود شروع نکردهاید، این تب را ببندید.",
+ "authorize.title": "تأیید difyctl",
+ "authorize.viaSSO": "از طریق SSO",
+ "authorize.workspace": "فضای کاری:",
+ "chooser.signInAccount": "ورود با حساب Dify",
+ "chooser.signInSSO": "ورود با SSO",
+ "chooser.subtitle": "کد {{code}} معتبر است. نحوه ورود را انتخاب کنید.",
+ "chooser.title": "برای تأیید وارد شوید",
+ "codeEntry.codeAriaLabel": "کد یکبار مصرف",
+ "codeEntry.continue": "ادامه",
+ "codeEntry.subtitle": "کدی را که در ترمینال شما نمایش داده شده وارد کنید.",
+ "codeEntry.title": "تأیید difyctl",
+ "errorExpired.body": "منقضی شده یا قبلاً استفاده شده است. برای دریافت کد جدید، difyctl auth login را اجرا کنید.",
+ "errorExpired.title": "کد دیگر معتبر نیست",
+ "errorExpired.tryDifferentCode": "← کد دیگری را امتحان کنید",
+ "errorLookupFailed.body": "مشکلی از سمت ما پیش آمد. کمی بعد دوباره امتحان کنید.",
+ "errorLookupFailed.title": "تأیید کد ممکن نشد",
+ "errorRateLimited.body": "کمی صبر کنید و دوباره امتحان کنید.",
+ "errorRateLimited.title": "تعداد تلاشها بیش از حد است",
+ "ssoError.default": "ورود یکپارچه (SSO) تکمیل نشد. دوباره امتحان کنید.",
+ "ssoError.emailBelongsToDifyAccount": "این هویت به یک حساب Dify متصل است. در عوض از «ورود با حساب Dify» استفاده کنید.",
+ "success.goToConsole": "رفتن به کنسول Dify →",
+ "success.subtitle": "برای ادامه به ترمینال خود بازگردید.",
+ "success.title": "وارد شدید",
+ "tryAgain": "← دوباره امتحان کنید"
+}
diff --git a/web/i18n/fr-FR/device-flow.json b/web/i18n/fr-FR/device-flow.json
new file mode 100644
index 00000000000..902544d4152
--- /dev/null
+++ b/web/i18n/fr-FR/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Ce code n'est plus valide.",
+ "approveError.codeMismatch": "Ce code ne correspond pas à la session active. Exécutez à nouveau difyctl auth login.",
+ "approveError.codeResolved": "Ce code a déjà été approuvé ou refusé.",
+ "approveError.conflict": "Ce code n'est plus dans un état que nous pouvons approuver.",
+ "approveError.default": "Impossible de terminer la demande. Veuillez réessayer.",
+ "approveError.flowExpired": "Le processus a expiré avant la fin de l'approbation. Exécutez à nouveau difyctl auth login.",
+ "approveError.inProgress": "Une approbation est déjà en cours pour ce code.",
+ "approveError.rateLimited": "Trop de tentatives. Attendez un instant puis réessayez.",
+ "approveError.serverError": "Une erreur s'est produite de notre côté. Réessayez dans un instant.",
+ "approveError.sessionConsumed": "Cette session a déjà été utilisée. Exécutez à nouveau difyctl auth login.",
+ "approveError.sessionExpired": "Votre session a expiré. Exécutez à nouveau difyctl auth login pour recommencer.",
+ "approveError.verifyFailed": "Impossible de vérifier la demande. Actualisez la page puis réessayez.",
+ "authorize.accountSubtitle": "difyctl demande l'accès. Si vous n'avez pas lancé cette action depuis votre terminal, cliquez sur Annuler.",
+ "authorize.approve": "Autoriser",
+ "authorize.identityProvider": "Fournisseur d'identité :",
+ "authorize.loadingSession": "Chargement de la session…",
+ "authorize.sessionInvalidBody": "Exécutez à nouveau difyctl auth login pour démarrer une nouvelle connexion.",
+ "authorize.sessionInvalidTitle": "Cette session n'est plus valide",
+ "authorize.ssoSubtitle": "difyctl demande l'accès via SSO. Si vous n'avez pas lancé cette action depuis votre terminal, fermez cet onglet.",
+ "authorize.title": "Autoriser difyctl",
+ "authorize.viaSSO": "via SSO",
+ "authorize.workspace": "Espace de travail :",
+ "chooser.signInAccount": "Se connecter avec un compte Dify",
+ "chooser.signInSSO": "Se connecter avec SSO",
+ "chooser.subtitle": "Le code {{code}} est valide. Choisissez votre mode de connexion.",
+ "chooser.title": "Connectez-vous pour autoriser",
+ "codeEntry.codeAriaLabel": "code à usage unique",
+ "codeEntry.continue": "Continuer",
+ "codeEntry.subtitle": "Saisissez le code affiché dans votre terminal.",
+ "codeEntry.title": "Autoriser difyctl",
+ "errorExpired.body": "Expiré ou déjà utilisé. Exécutez difyctl auth login pour obtenir un nouveau code.",
+ "errorExpired.title": "Le code n'est plus valide",
+ "errorExpired.tryDifferentCode": "← Essayer un autre code",
+ "errorLookupFailed.body": "Une erreur s'est produite de notre côté. Réessayez dans un instant.",
+ "errorLookupFailed.title": "Impossible de vérifier le code",
+ "errorRateLimited.body": "Attendez un instant puis réessayez.",
+ "errorRateLimited.title": "Trop de tentatives",
+ "ssoError.default": "L'authentification unique n'a pas pu être terminée. Réessayez.",
+ "ssoError.emailBelongsToDifyAccount": "Cette identité est liée à un compte Dify. Utilisez plutôt « Se connecter avec un compte Dify ».",
+ "success.goToConsole": "Aller à la console Dify →",
+ "success.subtitle": "Retournez à votre terminal pour continuer.",
+ "success.title": "Vous êtes connecté",
+ "tryAgain": "← Réessayer"
+}
diff --git a/web/i18n/hi-IN/device-flow.json b/web/i18n/hi-IN/device-flow.json
new file mode 100644
index 00000000000..c9ae983bf14
--- /dev/null
+++ b/web/i18n/hi-IN/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "यह कोड अब मान्य नहीं है।",
+ "approveError.codeMismatch": "यह कोड सक्रिय सत्र से मेल नहीं खाता। difyctl auth login फिर से चलाएँ।",
+ "approveError.codeResolved": "इस कोड को पहले ही स्वीकृत या अस्वीकृत किया जा चुका है।",
+ "approveError.conflict": "यह कोड अब ऐसी स्थिति में नहीं है जिसे हम स्वीकृत कर सकें।",
+ "approveError.default": "अनुरोध पूरा नहीं हो सका। कृपया फिर से प्रयास करें।",
+ "approveError.flowExpired": "स्वीकृति पूरी होने से पहले ही प्रक्रिया समाप्त हो गई। difyctl auth login फिर से चलाएँ।",
+ "approveError.inProgress": "इस कोड के लिए पहले से ही एक स्वीकृति प्रक्रिया चल रही है।",
+ "approveError.rateLimited": "बहुत अधिक प्रयास। कृपया कुछ समय रुकें और फिर से प्रयास करें।",
+ "approveError.serverError": "हमारी ओर से कुछ गड़बड़ हो गई। कृपया थोड़ी देर बाद फिर से प्रयास करें।",
+ "approveError.sessionConsumed": "इस सत्र का पहले ही उपयोग किया जा चुका है। difyctl auth login फिर से चलाएँ।",
+ "approveError.sessionExpired": "आपका सत्र समाप्त हो गया है। फिर से शुरू करने के लिए difyctl auth login फिर से चलाएँ।",
+ "approveError.verifyFailed": "अनुरोध सत्यापित नहीं हो सका। पृष्ठ को रीफ़्रेश करें और फिर से प्रयास करें।",
+ "authorize.accountSubtitle": "difyctl पहुँच का अनुरोध कर रहा है। यदि आपने इसे अपने टर्मिनल से शुरू नहीं किया है, तो रद्द करें पर क्लिक करें।",
+ "authorize.approve": "अधिकृत करें",
+ "authorize.identityProvider": "पहचान प्रदाता:",
+ "authorize.loadingSession": "सत्र लोड हो रहा है…",
+ "authorize.sessionInvalidBody": "नया साइन-इन शुरू करने के लिए difyctl auth login फिर से चलाएँ।",
+ "authorize.sessionInvalidTitle": "यह सत्र अब मान्य नहीं है",
+ "authorize.ssoSubtitle": "difyctl SSO के माध्यम से पहुँच का अनुरोध कर रहा है। यदि आपने इसे अपने टर्मिनल से शुरू नहीं किया है, तो इस टैब को बंद करें।",
+ "authorize.title": "difyctl को अधिकृत करें",
+ "authorize.viaSSO": "SSO के माध्यम से",
+ "authorize.workspace": "कार्यक्षेत्र:",
+ "chooser.signInAccount": "Dify खाते से साइन इन करें",
+ "chooser.signInSSO": "SSO से साइन इन करें",
+ "chooser.subtitle": "कोड {{code}} मान्य है। साइन इन करने का तरीका चुनें।",
+ "chooser.title": "अधिकृत करने के लिए साइन इन करें",
+ "codeEntry.codeAriaLabel": "एक बार उपयोग होने वाला कोड",
+ "codeEntry.continue": "जारी रखें",
+ "codeEntry.subtitle": "अपने टर्मिनल में दिखाया गया कोड दर्ज करें।",
+ "codeEntry.title": "difyctl को अधिकृत करें",
+ "errorExpired.body": "समाप्त हो गया है या पहले ही उपयोग किया जा चुका है। नया कोड पाने के लिए difyctl auth login चलाएँ।",
+ "errorExpired.title": "कोड अब मान्य नहीं है",
+ "errorExpired.tryDifferentCode": "← कोई दूसरा कोड आज़माएँ",
+ "errorLookupFailed.body": "हमारी ओर से कुछ गड़बड़ हो गई। कृपया थोड़ी देर बाद फिर से प्रयास करें।",
+ "errorLookupFailed.title": "कोड सत्यापित नहीं हो सका",
+ "errorRateLimited.body": "कृपया कुछ समय रुकें और फिर से प्रयास करें।",
+ "errorRateLimited.title": "बहुत अधिक प्रयास",
+ "ssoError.default": "सिंगल साइन-ऑन पूरा नहीं हो सका। फिर से प्रयास करें।",
+ "ssoError.emailBelongsToDifyAccount": "यह पहचान एक Dify खाते से जुड़ी है। इसके बजाय “Dify खाते से साइन इन करें” का उपयोग करें।",
+ "success.goToConsole": "Dify कंसोल पर जाएँ →",
+ "success.subtitle": "जारी रखने के लिए अपने टर्मिनल पर वापस जाएँ।",
+ "success.title": "आपने साइन इन कर लिया है",
+ "tryAgain": "← फिर से प्रयास करें"
+}
diff --git a/web/i18n/id-ID/device-flow.json b/web/i18n/id-ID/device-flow.json
new file mode 100644
index 00000000000..4b2696c4a2a
--- /dev/null
+++ b/web/i18n/id-ID/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Kode ini sudah tidak valid lagi.",
+ "approveError.codeMismatch": "Kode ini tidak cocok dengan sesi yang aktif. Jalankan difyctl auth login lagi.",
+ "approveError.codeResolved": "Kode ini sudah disetujui atau ditolak sebelumnya.",
+ "approveError.conflict": "Kode ini sudah tidak dalam status yang dapat kami setujui.",
+ "approveError.default": "Tidak dapat menyelesaikan permintaan. Silakan coba lagi.",
+ "approveError.flowExpired": "Proses kedaluwarsa sebelum persetujuan selesai. Jalankan difyctl auth login lagi.",
+ "approveError.inProgress": "Persetujuan untuk kode ini sedang berlangsung.",
+ "approveError.rateLimited": "Terlalu banyak percobaan. Tunggu sebentar lalu coba lagi.",
+ "approveError.serverError": "Terjadi kesalahan pada sistem kami. Coba lagi sebentar lagi.",
+ "approveError.sessionConsumed": "Sesi ini sudah digunakan sebelumnya. Jalankan difyctl auth login lagi.",
+ "approveError.sessionExpired": "Sesi Anda telah berakhir. Jalankan difyctl auth login lagi untuk memulai dari awal.",
+ "approveError.verifyFailed": "Tidak dapat memverifikasi permintaan. Muat ulang halaman dan coba lagi.",
+ "authorize.accountSubtitle": "difyctl meminta akses. Jika Anda tidak memulai ini dari terminal Anda, klik Batal.",
+ "authorize.approve": "Otorisasi",
+ "authorize.identityProvider": "Penyedia identitas:",
+ "authorize.loadingSession": "Memuat sesi…",
+ "authorize.sessionInvalidBody": "Jalankan difyctl auth login lagi untuk memulai proses masuk baru.",
+ "authorize.sessionInvalidTitle": "Sesi ini sudah tidak valid lagi",
+ "authorize.ssoSubtitle": "difyctl meminta akses melalui SSO. Jika Anda tidak memulai ini dari terminal Anda, tutup tab ini.",
+ "authorize.title": "Otorisasi difyctl",
+ "authorize.viaSSO": "melalui SSO",
+ "authorize.workspace": "Ruang kerja:",
+ "chooser.signInAccount": "Masuk dengan akun Dify",
+ "chooser.signInSSO": "Masuk dengan SSO",
+ "chooser.subtitle": "Kode {{code}} valid. Pilih cara Anda ingin masuk.",
+ "chooser.title": "Masuk untuk memberikan otorisasi",
+ "codeEntry.codeAriaLabel": "kode sekali pakai",
+ "codeEntry.continue": "Lanjutkan",
+ "codeEntry.subtitle": "Masukkan kode yang ditampilkan di terminal Anda.",
+ "codeEntry.title": "Otorisasi difyctl",
+ "errorExpired.body": "Sudah kedaluwarsa atau sudah digunakan. Jalankan difyctl auth login untuk mendapatkan kode baru.",
+ "errorExpired.title": "Kode sudah tidak valid lagi",
+ "errorExpired.tryDifferentCode": "← Coba kode lain",
+ "errorLookupFailed.body": "Terjadi kesalahan pada sistem kami. Coba lagi sebentar lagi.",
+ "errorLookupFailed.title": "Tidak dapat memverifikasi kode",
+ "errorRateLimited.body": "Tunggu sebentar lalu coba lagi.",
+ "errorRateLimited.title": "Terlalu banyak percobaan",
+ "ssoError.default": "Single sign-on tidak dapat diselesaikan. Coba lagi.",
+ "ssoError.emailBelongsToDifyAccount": "Identitas ini terhubung dengan akun Dify. Gunakan “Masuk dengan akun Dify” sebagai gantinya.",
+ "success.goToConsole": "Buka konsol Dify →",
+ "success.subtitle": "Kembali ke terminal Anda untuk melanjutkan.",
+ "success.title": "Anda telah masuk",
+ "tryAgain": "← Coba lagi"
+}
diff --git a/web/i18n/it-IT/device-flow.json b/web/i18n/it-IT/device-flow.json
new file mode 100644
index 00000000000..ca322a0060c
--- /dev/null
+++ b/web/i18n/it-IT/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Questo codice non è più valido.",
+ "approveError.codeMismatch": "Questo codice non corrisponde alla sessione attiva. Esegui di nuovo difyctl auth login.",
+ "approveError.codeResolved": "Questo codice è già stato approvato o rifiutato.",
+ "approveError.conflict": "Questo codice non è più in uno stato che possiamo approvare.",
+ "approveError.default": "Impossibile completare la richiesta. Riprova.",
+ "approveError.flowExpired": "Il processo è scaduto prima del completamento dell'approvazione. Esegui di nuovo difyctl auth login.",
+ "approveError.inProgress": "È già in corso un'approvazione per questo codice.",
+ "approveError.rateLimited": "Troppi tentativi. Attendi un momento e riprova.",
+ "approveError.serverError": "Si è verificato un errore da parte nostra. Riprova tra un momento.",
+ "approveError.sessionConsumed": "Questa sessione è già stata utilizzata. Esegui di nuovo difyctl auth login.",
+ "approveError.sessionExpired": "La tua sessione è scaduta. Esegui di nuovo difyctl auth login per ricominciare.",
+ "approveError.verifyFailed": "Impossibile verificare la richiesta. Aggiorna la pagina e riprova.",
+ "authorize.accountSubtitle": "difyctl sta richiedendo l'accesso. Se non hai avviato questa operazione dal tuo terminale, fai clic su Annulla.",
+ "authorize.approve": "Autorizza",
+ "authorize.identityProvider": "Provider di identità:",
+ "authorize.loadingSession": "Caricamento sessione…",
+ "authorize.sessionInvalidBody": "Esegui di nuovo difyctl auth login per avviare un nuovo accesso.",
+ "authorize.sessionInvalidTitle": "Questa sessione non è più valida",
+ "authorize.ssoSubtitle": "difyctl sta richiedendo l'accesso tramite SSO. Se non hai avviato questa operazione dal tuo terminale, chiudi questa scheda.",
+ "authorize.title": "Autorizza difyctl",
+ "authorize.viaSSO": "tramite SSO",
+ "authorize.workspace": "Area di lavoro:",
+ "chooser.signInAccount": "Accedi con un account Dify",
+ "chooser.signInSSO": "Accedi con SSO",
+ "chooser.subtitle": "Il codice {{code}} è valido. Scegli come accedere.",
+ "chooser.title": "Accedi per autorizzare",
+ "codeEntry.codeAriaLabel": "codice monouso",
+ "codeEntry.continue": "Continua",
+ "codeEntry.subtitle": "Inserisci il codice mostrato nel tuo terminale.",
+ "codeEntry.title": "Autorizza difyctl",
+ "errorExpired.body": "Scaduto o già utilizzato. Esegui difyctl auth login per ottenere un nuovo codice.",
+ "errorExpired.title": "Il codice non è più valido",
+ "errorExpired.tryDifferentCode": "← Prova un altro codice",
+ "errorLookupFailed.body": "Si è verificato un errore da parte nostra. Riprova tra un momento.",
+ "errorLookupFailed.title": "Impossibile verificare il codice",
+ "errorRateLimited.body": "Attendi un momento e riprova.",
+ "errorRateLimited.title": "Troppi tentativi",
+ "ssoError.default": "Impossibile completare l'accesso Single Sign-On. Riprova.",
+ "ssoError.emailBelongsToDifyAccount": "Questa identità è collegata a un account Dify. Usa invece “Accedi con un account Dify”.",
+ "success.goToConsole": "Vai alla console Dify →",
+ "success.subtitle": "Torna al tuo terminale per continuare.",
+ "success.title": "Hai eseguito l'accesso",
+ "tryAgain": "← Riprova"
+}
diff --git a/web/i18n/ja-JP/device-flow.json b/web/i18n/ja-JP/device-flow.json
new file mode 100644
index 00000000000..1ac61cc0492
--- /dev/null
+++ b/web/i18n/ja-JP/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "このコードは無効になりました。",
+ "approveError.codeMismatch": "このコードはアクティブなセッションと一致しません。もう一度 difyctl auth login を実行してください。",
+ "approveError.codeResolved": "このコードはすでに承認または拒否されています。",
+ "approveError.conflict": "このコードは承認できる状態ではなくなりました。",
+ "approveError.default": "リクエストを完了できませんでした。もう一度お試しください。",
+ "approveError.flowExpired": "承認が完了する前にフローの有効期限が切れました。もう一度 difyctl auth login を実行してください。",
+ "approveError.inProgress": "このコードの承認はすでに進行中です。",
+ "approveError.rateLimited": "試行回数が多すぎます。少し待ってからもう一度お試しください。",
+ "approveError.serverError": "こちら側で問題が発生しました。しばらくしてからもう一度お試しください。",
+ "approveError.sessionConsumed": "このセッションはすでに使用されています。もう一度 difyctl auth login を実行してください。",
+ "approveError.sessionExpired": "セッションの有効期限が切れました。最初からやり直すには、もう一度 difyctl auth login を実行してください。",
+ "approveError.verifyFailed": "リクエストを確認できませんでした。ページを更新してもう一度お試しください。",
+ "authorize.accountSubtitle": "difyctl がアクセスをリクエストしています。ターミナルからこの操作を開始していない場合は、キャンセルをクリックしてください。",
+ "authorize.approve": "認証する",
+ "authorize.identityProvider": "アイデンティティプロバイダー:",
+ "authorize.loadingSession": "セッションを読み込んでいます…",
+ "authorize.sessionInvalidBody": "新しくサインインするには、もう一度 difyctl auth login を実行してください。",
+ "authorize.sessionInvalidTitle": "このセッションは無効になりました",
+ "authorize.ssoSubtitle": "difyctl が SSO 経由でアクセスをリクエストしています。ターミナルからこの操作を開始していない場合は、このタブを閉じてください。",
+ "authorize.title": "difyctl を認証",
+ "authorize.viaSSO": "SSO 経由",
+ "authorize.workspace": "ワークスペース:",
+ "chooser.signInAccount": "Dify アカウントでサインイン",
+ "chooser.signInSSO": "SSO でサインイン",
+ "chooser.subtitle": "コード {{code}} は有効です。サインイン方法を選択してください。",
+ "chooser.title": "サインインして認証",
+ "codeEntry.codeAriaLabel": "ワンタイムコード",
+ "codeEntry.continue": "続ける",
+ "codeEntry.subtitle": "ターミナルに表示されたコードを入力してください。",
+ "codeEntry.title": "difyctl を認証",
+ "errorExpired.body": "有効期限が切れているか、すでに使用されています。新しいコードを取得するには difyctl auth login を実行してください。",
+ "errorExpired.title": "コードは無効になりました",
+ "errorExpired.tryDifferentCode": "← 別のコードを試す",
+ "errorLookupFailed.body": "こちら側で問題が発生しました。しばらくしてからもう一度お試しください。",
+ "errorLookupFailed.title": "コードを確認できませんでした",
+ "errorRateLimited.body": "少し待ってからもう一度お試しください。",
+ "errorRateLimited.title": "試行回数が多すぎます",
+ "ssoError.default": "シングルサインオンを完了できませんでした。もう一度お試しください。",
+ "ssoError.emailBelongsToDifyAccount": "このIDはDifyアカウントに紐づいています。代わりに「Dify アカウントでサインイン」をご利用ください。",
+ "success.goToConsole": "Dify コンソールへ移動 →",
+ "success.subtitle": "続行するにはターミナルに戻ってください。",
+ "success.title": "サインインしました",
+ "tryAgain": "← もう一度試す"
+}
diff --git a/web/i18n/ko-KR/device-flow.json b/web/i18n/ko-KR/device-flow.json
new file mode 100644
index 00000000000..4d418d3ab08
--- /dev/null
+++ b/web/i18n/ko-KR/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "이 코드는 더 이상 유효하지 않습니다.",
+ "approveError.codeMismatch": "이 코드가 활성 세션과 일치하지 않습니다. difyctl auth login을 다시 실행하세요.",
+ "approveError.codeResolved": "이 코드는 이미 승인되었거나 거부되었습니다.",
+ "approveError.conflict": "이 코드는 더 이상 승인할 수 있는 상태가 아닙니다.",
+ "approveError.default": "요청을 완료할 수 없습니다. 다시 시도해 주세요.",
+ "approveError.flowExpired": "승인이 완료되기 전에 프로세스가 만료되었습니다. difyctl auth login을 다시 실행하세요.",
+ "approveError.inProgress": "이 코드에 대한 승인이 이미 진행 중입니다.",
+ "approveError.rateLimited": "시도 횟수가 너무 많습니다. 잠시 기다린 후 다시 시도하세요.",
+ "approveError.serverError": "저희 쪽에서 문제가 발생했습니다. 잠시 후 다시 시도하세요.",
+ "approveError.sessionConsumed": "이 세션은 이미 사용되었습니다. difyctl auth login을 다시 실행하세요.",
+ "approveError.sessionExpired": "세션이 만료되었습니다. 처음부터 다시 시작하려면 difyctl auth login을 다시 실행하세요.",
+ "approveError.verifyFailed": "요청을 확인할 수 없습니다. 페이지를 새로고침한 후 다시 시도하세요.",
+ "authorize.accountSubtitle": "difyctl이 액세스를 요청하고 있습니다. 터미널에서 시작한 것이 아니라면 취소를 클릭하세요.",
+ "authorize.approve": "승인",
+ "authorize.identityProvider": "ID 공급자:",
+ "authorize.loadingSession": "세션을 불러오는 중…",
+ "authorize.sessionInvalidBody": "새로 로그인하려면 difyctl auth login을 다시 실행하세요.",
+ "authorize.sessionInvalidTitle": "이 세션은 더 이상 유효하지 않습니다",
+ "authorize.ssoSubtitle": "difyctl이 SSO를 통해 액세스를 요청하고 있습니다. 터미널에서 시작한 것이 아니라면 이 탭을 닫으세요.",
+ "authorize.title": "difyctl 승인",
+ "authorize.viaSSO": "SSO 사용",
+ "authorize.workspace": "작업 공간:",
+ "chooser.signInAccount": "Dify 계정으로 로그인",
+ "chooser.signInSSO": "SSO로 로그인",
+ "chooser.subtitle": "코드 {{code}}가 유효합니다. 로그인 방법을 선택하세요.",
+ "chooser.title": "승인하려면 로그인하세요",
+ "codeEntry.codeAriaLabel": "일회용 코드",
+ "codeEntry.continue": "계속",
+ "codeEntry.subtitle": "터미널에 표시된 코드를 입력하세요.",
+ "codeEntry.title": "difyctl 승인",
+ "errorExpired.body": "만료되었거나 이미 사용되었습니다. 새 코드를 받으려면 difyctl auth login을 실행하세요.",
+ "errorExpired.title": "코드가 더 이상 유효하지 않습니다",
+ "errorExpired.tryDifferentCode": "← 다른 코드 시도하기",
+ "errorLookupFailed.body": "저희 쪽에서 문제가 발생했습니다. 잠시 후 다시 시도하세요.",
+ "errorLookupFailed.title": "코드를 확인할 수 없습니다",
+ "errorRateLimited.body": "잠시 기다린 후 다시 시도하세요.",
+ "errorRateLimited.title": "시도 횟수가 너무 많습니다",
+ "ssoError.default": "싱글 사인온을 완료할 수 없습니다. 다시 시도하세요.",
+ "ssoError.emailBelongsToDifyAccount": "이 계정은 Dify 계정에 연결되어 있습니다. 대신 「Dify 계정으로 로그인」을 사용하세요.",
+ "success.goToConsole": "Dify 콘솔로 이동 →",
+ "success.subtitle": "계속하려면 터미널로 돌아가세요.",
+ "success.title": "로그인되었습니다",
+ "tryAgain": "← 다시 시도"
+}
diff --git a/web/i18n/nl-NL/device-flow.json b/web/i18n/nl-NL/device-flow.json
new file mode 100644
index 00000000000..012b936f1ab
--- /dev/null
+++ b/web/i18n/nl-NL/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Deze code is niet meer geldig.",
+ "approveError.codeMismatch": "Deze code komt niet overeen met de actieve sessie. Voer difyctl auth login opnieuw uit.",
+ "approveError.codeResolved": "Deze code is al goedgekeurd of geweigerd.",
+ "approveError.conflict": "Deze code bevindt zich niet meer in een status die we kunnen goedkeuren.",
+ "approveError.default": "Kon het verzoek niet voltooien. Probeer het opnieuw.",
+ "approveError.flowExpired": "Het proces is verlopen voordat de goedkeuring was voltooid. Voer difyctl auth login opnieuw uit.",
+ "approveError.inProgress": "Er loopt al een goedkeuring voor deze code.",
+ "approveError.rateLimited": "Te veel pogingen. Wacht even en probeer het opnieuw.",
+ "approveError.serverError": "Er is iets misgegaan aan onze kant. Probeer het over een moment opnieuw.",
+ "approveError.sessionConsumed": "Deze sessie is al gebruikt. Voer difyctl auth login opnieuw uit.",
+ "approveError.sessionExpired": "Je sessie is verlopen. Voer difyctl auth login opnieuw uit om opnieuw te beginnen.",
+ "approveError.verifyFailed": "Kon het verzoek niet verifiëren. Vernieuw de pagina en probeer het opnieuw.",
+ "authorize.accountSubtitle": "difyctl vraagt om toegang. Als je dit niet vanuit je terminal bent gestart, klik dan op Annuleren.",
+ "authorize.approve": "Autoriseren",
+ "authorize.identityProvider": "Identiteitsprovider:",
+ "authorize.loadingSession": "Sessie wordt geladen…",
+ "authorize.sessionInvalidBody": "Voer difyctl auth login opnieuw uit om een nieuwe aanmelding te starten.",
+ "authorize.sessionInvalidTitle": "Deze sessie is niet meer geldig",
+ "authorize.ssoSubtitle": "difyctl vraagt om toegang via SSO. Als je dit niet vanuit je terminal bent gestart, sluit dan dit tabblad.",
+ "authorize.title": "difyctl autoriseren",
+ "authorize.viaSSO": "via SSO",
+ "authorize.workspace": "Werkruimte:",
+ "chooser.signInAccount": "Aanmelden met Dify-account",
+ "chooser.signInSSO": "Aanmelden met SSO",
+ "chooser.subtitle": "Code {{code}} is geldig. Kies hoe je wilt aanmelden.",
+ "chooser.title": "Meld je aan om te autoriseren",
+ "codeEntry.codeAriaLabel": "eenmalige code",
+ "codeEntry.continue": "Doorgaan",
+ "codeEntry.subtitle": "Voer de code in die in je terminal wordt weergegeven.",
+ "codeEntry.title": "difyctl autoriseren",
+ "errorExpired.body": "Verlopen of al gebruikt. Voer difyctl auth login uit om een nieuwe code te krijgen.",
+ "errorExpired.title": "Code is niet meer geldig",
+ "errorExpired.tryDifferentCode": "← Probeer een andere code",
+ "errorLookupFailed.body": "Er is iets misgegaan aan onze kant. Probeer het over een moment opnieuw.",
+ "errorLookupFailed.title": "Kon de code niet verifiëren",
+ "errorRateLimited.body": "Wacht even en probeer het opnieuw.",
+ "errorRateLimited.title": "Te veel pogingen",
+ "ssoError.default": "Single sign-on kon niet worden voltooid. Probeer het opnieuw.",
+ "ssoError.emailBelongsToDifyAccount": "Deze identiteit is gekoppeld aan een Dify-account. Gebruik in plaats daarvan „Aanmelden met Dify-account”.",
+ "success.goToConsole": "Naar Dify-console →",
+ "success.subtitle": "Ga terug naar je terminal om verder te gaan.",
+ "success.title": "Je bent aangemeld",
+ "tryAgain": "← Opnieuw proberen"
+}
diff --git a/web/i18n/pl-PL/device-flow.json b/web/i18n/pl-PL/device-flow.json
new file mode 100644
index 00000000000..ba76f032bfc
--- /dev/null
+++ b/web/i18n/pl-PL/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Ten kod nie jest już ważny.",
+ "approveError.codeMismatch": "Ten kod nie pasuje do aktywnej sesji. Uruchom ponownie difyctl auth login.",
+ "approveError.codeResolved": "Ten kod został już zatwierdzony lub odrzucony.",
+ "approveError.conflict": "Ten kod nie jest już w stanie, który możemy zatwierdzić.",
+ "approveError.default": "Nie udało się zrealizować żądania. Spróbuj ponownie.",
+ "approveError.flowExpired": "Proces wygasł, zanim zatwierdzenie zostało zakończone. Uruchom ponownie difyctl auth login.",
+ "approveError.inProgress": "Zatwierdzanie tego kodu jest już w toku.",
+ "approveError.rateLimited": "Zbyt wiele prób. Poczekaj chwilę i spróbuj ponownie.",
+ "approveError.serverError": "Coś poszło nie tak po naszej stronie. Spróbuj ponownie za chwilę.",
+ "approveError.sessionConsumed": "Ta sesja została już wykorzystana. Uruchom ponownie difyctl auth login.",
+ "approveError.sessionExpired": "Twoja sesja wygasła. Uruchom ponownie difyctl auth login, aby zacząć od nowa.",
+ "approveError.verifyFailed": "Nie udało się zweryfikować żądania. Odśwież stronę i spróbuj ponownie.",
+ "authorize.accountSubtitle": "difyctl prosi o dostęp. Jeśli nie rozpocząłeś tego z poziomu terminala, kliknij Anuluj.",
+ "authorize.approve": "Autoryzuj",
+ "authorize.identityProvider": "Dostawca tożsamości:",
+ "authorize.loadingSession": "Wczytywanie sesji…",
+ "authorize.sessionInvalidBody": "Uruchom ponownie difyctl auth login, aby rozpocząć nowe logowanie.",
+ "authorize.sessionInvalidTitle": "Ta sesja nie jest już ważna",
+ "authorize.ssoSubtitle": "difyctl prosi o dostęp za pomocą SSO. Jeśli nie rozpocząłeś tego z poziomu terminala, zamknij tę kartę.",
+ "authorize.title": "Autoryzuj difyctl",
+ "authorize.viaSSO": "przez SSO",
+ "authorize.workspace": "Obszar roboczy:",
+ "chooser.signInAccount": "Zaloguj się przez konto Dify",
+ "chooser.signInSSO": "Zaloguj się przez SSO",
+ "chooser.subtitle": "Kod {{code}} jest ważny. Wybierz sposób logowania.",
+ "chooser.title": "Zaloguj się, aby autoryzować",
+ "codeEntry.codeAriaLabel": "kod jednorazowy",
+ "codeEntry.continue": "Kontynuuj",
+ "codeEntry.subtitle": "Wprowadź kod wyświetlony w terminalu.",
+ "codeEntry.title": "Autoryzuj difyctl",
+ "errorExpired.body": "Kod wygasł lub został już użyty. Uruchom difyctl auth login, aby otrzymać nowy kod.",
+ "errorExpired.title": "Kod nie jest już ważny",
+ "errorExpired.tryDifferentCode": "← Wypróbuj inny kod",
+ "errorLookupFailed.body": "Coś poszło nie tak po naszej stronie. Spróbuj ponownie za chwilę.",
+ "errorLookupFailed.title": "Nie udało się zweryfikować kodu",
+ "errorRateLimited.body": "Poczekaj chwilę i spróbuj ponownie.",
+ "errorRateLimited.title": "Zbyt wiele prób",
+ "ssoError.default": "Nie udało się ukończyć logowania jednokrotnego. Spróbuj ponownie.",
+ "ssoError.emailBelongsToDifyAccount": "Ta tożsamość jest powiązana z kontem Dify. Zamiast tego użyj opcji „Zaloguj się przez konto Dify”.",
+ "success.goToConsole": "Przejdź do konsoli Dify →",
+ "success.subtitle": "Wróć do terminala, aby kontynuować.",
+ "success.title": "Jesteś zalogowany",
+ "tryAgain": "← Spróbuj ponownie"
+}
diff --git a/web/i18n/pt-BR/device-flow.json b/web/i18n/pt-BR/device-flow.json
new file mode 100644
index 00000000000..2c466e3779e
--- /dev/null
+++ b/web/i18n/pt-BR/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Este código não é mais válido.",
+ "approveError.codeMismatch": "Este código não corresponde à sessão ativa. Execute difyctl auth login novamente.",
+ "approveError.codeResolved": "Este código já foi aprovado ou negado.",
+ "approveError.conflict": "Este código não está mais em um estado que podemos aprovar.",
+ "approveError.default": "Não foi possível concluir a solicitação. Tente novamente.",
+ "approveError.flowExpired": "O fluxo expirou antes que a aprovação fosse concluída. Execute difyctl auth login novamente.",
+ "approveError.inProgress": "Já existe uma aprovação em andamento para este código.",
+ "approveError.rateLimited": "Muitas tentativas. Aguarde um momento e tente novamente.",
+ "approveError.serverError": "Algo deu errado do nosso lado. Tente novamente em instantes.",
+ "approveError.sessionConsumed": "Esta sessão já foi utilizada. Execute difyctl auth login novamente.",
+ "approveError.sessionExpired": "Sua sessão expirou. Execute difyctl auth login novamente para recomeçar.",
+ "approveError.verifyFailed": "Não foi possível verificar a solicitação. Atualize a página e tente novamente.",
+ "authorize.accountSubtitle": "O difyctl está solicitando acesso. Se você não iniciou isso pelo seu terminal, clique em Cancelar.",
+ "authorize.approve": "Autorizar",
+ "authorize.identityProvider": "Provedor de identidade:",
+ "authorize.loadingSession": "Carregando sessão…",
+ "authorize.sessionInvalidBody": "Execute difyctl auth login novamente para iniciar um novo login.",
+ "authorize.sessionInvalidTitle": "Esta sessão não é mais válida",
+ "authorize.ssoSubtitle": "O difyctl está solicitando acesso via SSO. Se você não iniciou isso pelo seu terminal, feche esta aba.",
+ "authorize.title": "Autorizar o difyctl",
+ "authorize.viaSSO": "via SSO",
+ "authorize.workspace": "Espaço de trabalho:",
+ "chooser.signInAccount": "Entrar com uma conta Dify",
+ "chooser.signInSSO": "Entrar com SSO",
+ "chooser.subtitle": "O código {{code}} é válido. Escolha como entrar.",
+ "chooser.title": "Entre para autorizar",
+ "codeEntry.codeAriaLabel": "código de uso único",
+ "codeEntry.continue": "Continuar",
+ "codeEntry.subtitle": "Digite o código exibido no seu terminal.",
+ "codeEntry.title": "Autorizar o difyctl",
+ "errorExpired.body": "Expirado ou já utilizado. Execute difyctl auth login para obter um novo código.",
+ "errorExpired.title": "Código não é mais válido",
+ "errorExpired.tryDifferentCode": "← Tentar outro código",
+ "errorLookupFailed.body": "Algo deu errado do nosso lado. Tente novamente em instantes.",
+ "errorLookupFailed.title": "Não foi possível verificar o código",
+ "errorRateLimited.body": "Aguarde um momento e tente novamente.",
+ "errorRateLimited.title": "Muitas tentativas",
+ "ssoError.default": "Não foi possível concluir o login único. Tente novamente.",
+ "ssoError.emailBelongsToDifyAccount": "Esta identidade está vinculada a uma conta Dify. Use “Entrar com uma conta Dify” em vez disso.",
+ "success.goToConsole": "Ir para o console Dify →",
+ "success.subtitle": "Volte ao seu terminal para continuar.",
+ "success.title": "Você entrou",
+ "tryAgain": "← Tentar novamente"
+}
diff --git a/web/i18n/ro-RO/device-flow.json b/web/i18n/ro-RO/device-flow.json
new file mode 100644
index 00000000000..f35abbeebe4
--- /dev/null
+++ b/web/i18n/ro-RO/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Acest cod nu mai este valid.",
+ "approveError.codeMismatch": "Acest cod nu se potrivește cu sesiunea activă. Rulează din nou difyctl auth login.",
+ "approveError.codeResolved": "Acest cod a fost deja aprobat sau refuzat.",
+ "approveError.conflict": "Acest cod nu mai este într-o stare pe care o putem aproba.",
+ "approveError.default": "Cererea nu a putut fi finalizată. Te rugăm să încerci din nou.",
+ "approveError.flowExpired": "Procesul a expirat înainte de finalizarea aprobării. Rulează din nou difyctl auth login.",
+ "approveError.inProgress": "Există deja o aprobare în curs pentru acest cod.",
+ "approveError.rateLimited": "Prea multe încercări. Așteaptă un moment și încearcă din nou.",
+ "approveError.serverError": "Ceva nu a funcționat corect de partea noastră. Încearcă din nou peste puțin timp.",
+ "approveError.sessionConsumed": "Această sesiune a fost deja utilizată. Rulează din nou difyctl auth login.",
+ "approveError.sessionExpired": "Sesiunea ta a expirat. Rulează din nou difyctl auth login pentru a începe de la capăt.",
+ "approveError.verifyFailed": "Cererea nu a putut fi verificată. Reîmprospătează pagina și încearcă din nou.",
+ "authorize.accountSubtitle": "difyctl solicită acces. Dacă nu ai inițiat această acțiune din terminalul tău, apasă pe Anulează.",
+ "authorize.approve": "Autorizează",
+ "authorize.identityProvider": "Furnizor de identitate:",
+ "authorize.loadingSession": "Se încarcă sesiunea…",
+ "authorize.sessionInvalidBody": "Rulează din nou difyctl auth login pentru a începe o nouă autentificare.",
+ "authorize.sessionInvalidTitle": "Această sesiune nu mai este validă",
+ "authorize.ssoSubtitle": "difyctl solicită acces prin SSO. Dacă nu ai inițiat această acțiune din terminalul tău, închide această filă.",
+ "authorize.title": "Autorizează difyctl",
+ "authorize.viaSSO": "prin SSO",
+ "authorize.workspace": "Spațiu de lucru:",
+ "chooser.signInAccount": "Autentifică-te cu un cont Dify",
+ "chooser.signInSSO": "Autentifică-te cu SSO",
+ "chooser.subtitle": "Codul {{code}} este valid. Alege cum vrei să te autentifici.",
+ "chooser.title": "Autentifică-te pentru a autoriza",
+ "codeEntry.codeAriaLabel": "cod de unică folosință",
+ "codeEntry.continue": "Continuă",
+ "codeEntry.subtitle": "Introdu codul afișat în terminalul tău.",
+ "codeEntry.title": "Autorizează difyctl",
+ "errorExpired.body": "A expirat sau a fost deja utilizat. Rulează difyctl auth login pentru a obține un cod nou.",
+ "errorExpired.title": "Codul nu mai este valid",
+ "errorExpired.tryDifferentCode": "← Încearcă un alt cod",
+ "errorLookupFailed.body": "Ceva nu a funcționat corect de partea noastră. Încearcă din nou peste puțin timp.",
+ "errorLookupFailed.title": "Codul nu a putut fi verificat",
+ "errorRateLimited.body": "Așteaptă un moment și încearcă din nou.",
+ "errorRateLimited.title": "Prea multe încercări",
+ "ssoError.default": "Autentificarea unică (SSO) nu a putut fi finalizată. Încearcă din nou.",
+ "ssoError.emailBelongsToDifyAccount": "Această identitate este asociată cu un cont Dify. Folosește în schimb „Autentifică-te cu un cont Dify”.",
+ "success.goToConsole": "Mergi la consola Dify →",
+ "success.subtitle": "Revino la terminalul tău pentru a continua.",
+ "success.title": "Te-ai autentificat",
+ "tryAgain": "← Încearcă din nou"
+}
diff --git a/web/i18n/ru-RU/device-flow.json b/web/i18n/ru-RU/device-flow.json
new file mode 100644
index 00000000000..7687446324f
--- /dev/null
+++ b/web/i18n/ru-RU/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Этот код больше не действителен.",
+ "approveError.codeMismatch": "Этот код не соответствует активной сессии. Запустите difyctl auth login снова.",
+ "approveError.codeResolved": "Этот код уже был подтверждён или отклонён.",
+ "approveError.conflict": "Этот код больше не находится в состоянии, которое мы можем подтвердить.",
+ "approveError.default": "Не удалось выполнить запрос. Попробуйте ещё раз.",
+ "approveError.flowExpired": "Срок действия процесса истёк до завершения подтверждения. Запустите difyctl auth login снова.",
+ "approveError.inProgress": "Подтверждение для этого кода уже выполняется.",
+ "approveError.rateLimited": "Слишком много попыток. Подождите немного и попробуйте снова.",
+ "approveError.serverError": "На нашей стороне произошла ошибка. Повторите попытку через некоторое время.",
+ "approveError.sessionConsumed": "Эта сессия уже была использована. Запустите difyctl auth login снова.",
+ "approveError.sessionExpired": "Срок действия вашей сессии истёк. Запустите difyctl auth login снова, чтобы начать заново.",
+ "approveError.verifyFailed": "Не удалось проверить запрос. Обновите страницу и попробуйте снова.",
+ "authorize.accountSubtitle": "difyctl запрашивает доступ. Если вы не запускали это из терминала, нажмите Отмена.",
+ "authorize.approve": "Авторизовать",
+ "authorize.identityProvider": "Поставщик учётных данных:",
+ "authorize.loadingSession": "Загрузка сессии…",
+ "authorize.sessionInvalidBody": "Запустите difyctl auth login снова, чтобы начать новый вход.",
+ "authorize.sessionInvalidTitle": "Эта сессия больше не действительна",
+ "authorize.ssoSubtitle": "difyctl запрашивает доступ через SSO. Если вы не запускали это из терминала, закройте эту вкладку.",
+ "authorize.title": "Авторизовать difyctl",
+ "authorize.viaSSO": "через SSO",
+ "authorize.workspace": "Рабочее пространство:",
+ "chooser.signInAccount": "Войти с учётной записью Dify",
+ "chooser.signInSSO": "Войти через SSO",
+ "chooser.subtitle": "Код {{code}} действителен. Выберите способ входа.",
+ "chooser.title": "Войдите, чтобы авторизовать",
+ "codeEntry.codeAriaLabel": "одноразовый код",
+ "codeEntry.continue": "Продолжить",
+ "codeEntry.subtitle": "Введите код, показанный в вашем терминале.",
+ "codeEntry.title": "Авторизовать difyctl",
+ "errorExpired.body": "Истёк срок действия или уже использован. Запустите difyctl auth login, чтобы получить новый код.",
+ "errorExpired.title": "Код больше не действителен",
+ "errorExpired.tryDifferentCode": "← Попробовать другой код",
+ "errorLookupFailed.body": "На нашей стороне произошла ошибка. Повторите попытку через некоторое время.",
+ "errorLookupFailed.title": "Не удалось проверить код",
+ "errorRateLimited.body": "Подождите немного и попробуйте снова.",
+ "errorRateLimited.title": "Слишком много попыток",
+ "ssoError.default": "Единый вход (SSO) не удалось завершить. Попробуйте снова.",
+ "ssoError.emailBelongsToDifyAccount": "Эта учётная запись связана с аккаунтом Dify. Используйте вместо этого «Войти с учётной записью Dify».",
+ "success.goToConsole": "Перейти в консоль Dify →",
+ "success.subtitle": "Вернитесь в терминал, чтобы продолжить.",
+ "success.title": "Вы вошли в систему",
+ "tryAgain": "← Попробовать снова"
+}
diff --git a/web/i18n/sl-SI/device-flow.json b/web/i18n/sl-SI/device-flow.json
new file mode 100644
index 00000000000..1b6236d94b7
--- /dev/null
+++ b/web/i18n/sl-SI/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Ta koda ni več veljavna.",
+ "approveError.codeMismatch": "Ta koda se ne ujema z aktivno sejo. Znova zaženite difyctl auth login.",
+ "approveError.codeResolved": "Ta koda je bila že odobrena ali zavrnjena.",
+ "approveError.conflict": "Ta koda ni več v stanju, ki bi ga lahko odobrili.",
+ "approveError.default": "Zahteve ni bilo mogoče dokončati. Poskusite znova.",
+ "approveError.flowExpired": "Postopek je potekel, preden je bila odobritev zaključena. Znova zaženite difyctl auth login.",
+ "approveError.inProgress": "Odobritev za to kodo je že v teku.",
+ "approveError.rateLimited": "Preveč poskusov. Počakajte trenutek in poskusite znova.",
+ "approveError.serverError": "Na naši strani je prišlo do napake. Poskusite znova čez trenutek.",
+ "approveError.sessionConsumed": "Ta seja je bila že uporabljena. Znova zaženite difyctl auth login.",
+ "approveError.sessionExpired": "Vaša seja je potekla. Znova zaženite difyctl auth login, da začnete znova.",
+ "approveError.verifyFailed": "Zahteve ni bilo mogoče preveriti. Osvežite stran in poskusite znova.",
+ "authorize.accountSubtitle": "difyctl zahteva dostop. Če tega niste sprožili iz svojega terminala, kliknite Prekliči.",
+ "authorize.approve": "Avtoriziraj",
+ "authorize.identityProvider": "Ponudnik identitete:",
+ "authorize.loadingSession": "Nalaganje seje…",
+ "authorize.sessionInvalidBody": "Znova zaženite difyctl auth login, da začnete novo prijavo.",
+ "authorize.sessionInvalidTitle": "Ta seja ni več veljavna",
+ "authorize.ssoSubtitle": "difyctl zahteva dostop prek SSO. Če tega niste sprožili iz svojega terminala, zaprite ta zavihek.",
+ "authorize.title": "Avtoriziraj difyctl",
+ "authorize.viaSSO": "prek SSO",
+ "authorize.workspace": "Delovni prostor:",
+ "chooser.signInAccount": "Prijava z računom Dify",
+ "chooser.signInSSO": "Prijava s SSO",
+ "chooser.subtitle": "Koda {{code}} je veljavna. Izberite način prijave.",
+ "chooser.title": "Prijavite se za avtorizacijo",
+ "codeEntry.codeAriaLabel": "enkratna koda",
+ "codeEntry.continue": "Naprej",
+ "codeEntry.subtitle": "Vnesite kodo, prikazano v vašem terminalu.",
+ "codeEntry.title": "Avtoriziraj difyctl",
+ "errorExpired.body": "Koda je potekla ali je bila že uporabljena. Za novo kodo zaženite difyctl auth login.",
+ "errorExpired.title": "Koda ni več veljavna",
+ "errorExpired.tryDifferentCode": "← Poskusite z drugo kodo",
+ "errorLookupFailed.body": "Na naši strani je prišlo do napake. Poskusite znova čez trenutek.",
+ "errorLookupFailed.title": "Kode ni bilo mogoče preveriti",
+ "errorRateLimited.body": "Počakajte trenutek in poskusite znova.",
+ "errorRateLimited.title": "Preveč poskusov",
+ "ssoError.default": "Enotne prijave (SSO) ni bilo mogoče dokončati. Poskusite znova.",
+ "ssoError.emailBelongsToDifyAccount": "Ta identiteta je povezana z računom Dify. Namesto tega uporabite »Prijava z računom Dify«.",
+ "success.goToConsole": "Pojdi v konzolo Dify →",
+ "success.subtitle": "Za nadaljevanje se vrnite v terminal.",
+ "success.title": "Prijavljeni ste",
+ "tryAgain": "← Poskusi znova"
+}
diff --git a/web/i18n/th-TH/device-flow.json b/web/i18n/th-TH/device-flow.json
new file mode 100644
index 00000000000..698db33d3ab
--- /dev/null
+++ b/web/i18n/th-TH/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "รหัสนี้ไม่ถูกต้องอีกต่อไป",
+ "approveError.codeMismatch": "รหัสนี้ไม่ตรงกับเซสชันที่ใช้งานอยู่ โปรดเรียกใช้ difyctl auth login อีกครั้ง",
+ "approveError.codeResolved": "รหัสนี้ได้รับการอนุมัติหรือปฏิเสธไปแล้ว",
+ "approveError.conflict": "รหัสนี้ไม่อยู่ในสถานะที่เราจะอนุมัติได้อีกต่อไป",
+ "approveError.default": "ไม่สามารถดำเนินการตามคำขอได้ โปรดลองอีกครั้ง",
+ "approveError.flowExpired": "กระบวนการหมดอายุก่อนที่การอนุมัติจะเสร็จสมบูรณ์ โปรดเรียกใช้ difyctl auth login อีกครั้ง",
+ "approveError.inProgress": "มีการอนุมัติสำหรับรหัสนี้กำลังดำเนินการอยู่แล้ว",
+ "approveError.rateLimited": "พยายามมากเกินไป โปรดรอสักครู่แล้วลองอีกครั้ง",
+ "approveError.serverError": "เกิดข้อผิดพลาดจากฝั่งเรา โปรดลองอีกครั้งในอีกสักครู่",
+ "approveError.sessionConsumed": "เซสชันนี้ถูกใช้ไปแล้ว โปรดเรียกใช้ difyctl auth login อีกครั้ง",
+ "approveError.sessionExpired": "เซสชันของคุณหมดอายุแล้ว โปรดเรียกใช้ difyctl auth login อีกครั้งเพื่อเริ่มต้นใหม่",
+ "approveError.verifyFailed": "ไม่สามารถตรวจสอบคำขอได้ โปรดรีเฟรชหน้าเว็บแล้วลองอีกครั้ง",
+ "authorize.accountSubtitle": "difyctl กำลังขอสิทธิ์เข้าถึง หากคุณไม่ได้เริ่มการดำเนินการนี้จากเทอร์มินัลของคุณ โปรดคลิกยกเลิก",
+ "authorize.approve": "อนุญาต",
+ "authorize.identityProvider": "ผู้ให้บริการยืนยันตัวตน:",
+ "authorize.loadingSession": "กำลังโหลดเซสชัน…",
+ "authorize.sessionInvalidBody": "เรียกใช้ difyctl auth login อีกครั้งเพื่อเริ่มการลงชื่อเข้าใช้ใหม่",
+ "authorize.sessionInvalidTitle": "เซสชันนี้ไม่ถูกต้องอีกต่อไป",
+ "authorize.ssoSubtitle": "difyctl กำลังขอสิทธิ์เข้าถึงผ่าน SSO หากคุณไม่ได้เริ่มการดำเนินการนี้จากเทอร์มินัลของคุณ โปรดปิดแท็บนี้",
+ "authorize.title": "อนุญาต difyctl",
+ "authorize.viaSSO": "ผ่าน SSO",
+ "authorize.workspace": "พื้นที่ทำงาน:",
+ "chooser.signInAccount": "ลงชื่อเข้าใช้ด้วยบัญชี Dify",
+ "chooser.signInSSO": "ลงชื่อเข้าใช้ด้วย SSO",
+ "chooser.subtitle": "รหัส {{code}} ถูกต้อง โปรดเลือกวิธีลงชื่อเข้าใช้",
+ "chooser.title": "ลงชื่อเข้าใช้เพื่ออนุญาต",
+ "codeEntry.codeAriaLabel": "รหัสใช้ครั้งเดียว",
+ "codeEntry.continue": "ดำเนินการต่อ",
+ "codeEntry.subtitle": "ป้อนรหัสที่แสดงในเทอร์มินัลของคุณ",
+ "codeEntry.title": "อนุญาต difyctl",
+ "errorExpired.body": "หมดอายุหรือถูกใช้ไปแล้ว โปรดเรียกใช้ difyctl auth login เพื่อรับรหัสใหม่",
+ "errorExpired.title": "รหัสไม่ถูกต้องอีกต่อไป",
+ "errorExpired.tryDifferentCode": "← ลองใช้รหัสอื่น",
+ "errorLookupFailed.body": "เกิดข้อผิดพลาดจากฝั่งเรา โปรดลองอีกครั้งในอีกสักครู่",
+ "errorLookupFailed.title": "ไม่สามารถตรวจสอบรหัสได้",
+ "errorRateLimited.body": "โปรดรอสักครู่แล้วลองอีกครั้ง",
+ "errorRateLimited.title": "พยายามมากเกินไป",
+ "ssoError.default": "ไม่สามารถทำการลงชื่อเข้าใช้แบบรวมศูนย์ (SSO) ให้เสร็จสมบูรณ์ได้ โปรดลองอีกครั้ง",
+ "ssoError.emailBelongsToDifyAccount": "ข้อมูลประจำตัวนี้เชื่อมโยงกับบัญชี Dify โปรดใช้ “ลงชื่อเข้าใช้ด้วยบัญชี Dify” แทน",
+ "success.goToConsole": "ไปที่คอนโซล Dify →",
+ "success.subtitle": "กลับไปที่เทอร์มินัลของคุณเพื่อดำเนินการต่อ",
+ "success.title": "คุณลงชื่อเข้าใช้แล้ว",
+ "tryAgain": "← ลองอีกครั้ง"
+}
diff --git a/web/i18n/tr-TR/device-flow.json b/web/i18n/tr-TR/device-flow.json
new file mode 100644
index 00000000000..9561d385920
--- /dev/null
+++ b/web/i18n/tr-TR/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Bu kod artık geçerli değil.",
+ "approveError.codeMismatch": "Bu kod etkin oturumla eşleşmiyor. difyctl auth login komutunu yeniden çalıştırın.",
+ "approveError.codeResolved": "Bu kod zaten onaylandı veya reddedildi.",
+ "approveError.conflict": "Bu kod artık onaylayabileceğimiz bir durumda değil.",
+ "approveError.default": "İstek tamamlanamadı. Lütfen tekrar deneyin.",
+ "approveError.flowExpired": "Onay tamamlanmadan işlem süresi doldu. difyctl auth login komutunu yeniden çalıştırın.",
+ "approveError.inProgress": "Bu kod için zaten devam eden bir onay var.",
+ "approveError.rateLimited": "Çok fazla deneme yapıldı. Bir süre bekleyip tekrar deneyin.",
+ "approveError.serverError": "Bizim tarafımızda bir sorun oluştu. Bir süre sonra tekrar deneyin.",
+ "approveError.sessionConsumed": "Bu oturum zaten kullanıldı. difyctl auth login komutunu yeniden çalıştırın.",
+ "approveError.sessionExpired": "Oturumunuzun süresi doldu. Baştan başlamak için difyctl auth login komutunu yeniden çalıştırın.",
+ "approveError.verifyFailed": "İstek doğrulanamadı. Sayfayı yenileyip tekrar deneyin.",
+ "authorize.accountSubtitle": "difyctl erişim talep ediyor. Bunu terminalinizden başlatmadıysanız İptal'e tıklayın.",
+ "authorize.approve": "Yetkilendir",
+ "authorize.identityProvider": "Kimlik sağlayıcı:",
+ "authorize.loadingSession": "Oturum yükleniyor…",
+ "authorize.sessionInvalidBody": "Yeni bir oturum açma işlemi başlatmak için difyctl auth login komutunu yeniden çalıştırın.",
+ "authorize.sessionInvalidTitle": "Bu oturum artık geçerli değil",
+ "authorize.ssoSubtitle": "difyctl, SSO üzerinden erişim talep ediyor. Bunu terminalinizden başlatmadıysanız bu sekmeyi kapatın.",
+ "authorize.title": "difyctl'i Yetkilendir",
+ "authorize.viaSSO": "SSO ile",
+ "authorize.workspace": "Çalışma alanı:",
+ "chooser.signInAccount": "Dify hesabıyla oturum aç",
+ "chooser.signInSSO": "SSO ile oturum aç",
+ "chooser.subtitle": "Kod {{code}} geçerli. Oturum açma yönteminizi seçin.",
+ "chooser.title": "Yetkilendirmek için oturum açın",
+ "codeEntry.codeAriaLabel": "tek kullanımlık kod",
+ "codeEntry.continue": "Devam et",
+ "codeEntry.subtitle": "Terminalinizde görünen kodu girin.",
+ "codeEntry.title": "difyctl'i Yetkilendir",
+ "errorExpired.body": "Süresi doldu veya zaten kullanıldı. Yeni bir kod almak için difyctl auth login komutunu çalıştırın.",
+ "errorExpired.title": "Kod artık geçerli değil",
+ "errorExpired.tryDifferentCode": "← Farklı bir kod deneyin",
+ "errorLookupFailed.body": "Bizim tarafımızda bir sorun oluştu. Bir süre sonra tekrar deneyin.",
+ "errorLookupFailed.title": "Kod doğrulanamadı",
+ "errorRateLimited.body": "Bir süre bekleyip tekrar deneyin.",
+ "errorRateLimited.title": "Çok fazla deneme yapıldı",
+ "ssoError.default": "Tek oturum açma (SSO) tamamlanamadı. Tekrar deneyin.",
+ "ssoError.emailBelongsToDifyAccount": "Bu kimlik bir Dify hesabına bağlı. Bunun yerine “Dify hesabıyla oturum aç” seçeneğini kullanın.",
+ "success.goToConsole": "Dify konsoluna git →",
+ "success.subtitle": "Devam etmek için terminalinize dönün.",
+ "success.title": "Oturum açtınız",
+ "tryAgain": "← Tekrar dene"
+}
diff --git a/web/i18n/uk-UA/device-flow.json b/web/i18n/uk-UA/device-flow.json
new file mode 100644
index 00000000000..a5a2724b50a
--- /dev/null
+++ b/web/i18n/uk-UA/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Цей код більше не дійсний.",
+ "approveError.codeMismatch": "Цей код не відповідає активній сесії. Запустіть difyctl auth login знову.",
+ "approveError.codeResolved": "Цей код уже було підтверджено або відхилено.",
+ "approveError.conflict": "Цей код більше не перебуває у стані, який ми можемо підтвердити.",
+ "approveError.default": "Не вдалося виконати запит. Спробуйте ще раз.",
+ "approveError.flowExpired": "Термін дії процесу минув до завершення підтвердження. Запустіть difyctl auth login знову.",
+ "approveError.inProgress": "Підтвердження для цього коду вже виконується.",
+ "approveError.rateLimited": "Забагато спроб. Зачекайте трохи й спробуйте ще раз.",
+ "approveError.serverError": "На нашому боці сталася помилка. Спробуйте ще раз за мить.",
+ "approveError.sessionConsumed": "Цю сесію вже було використано. Запустіть difyctl auth login знову.",
+ "approveError.sessionExpired": "Термін дії вашої сесії минув. Запустіть difyctl auth login знову, щоб почати спочатку.",
+ "approveError.verifyFailed": "Не вдалося перевірити запит. Оновіть сторінку та спробуйте ще раз.",
+ "authorize.accountSubtitle": "difyctl запитує доступ. Якщо ви не запускали цю дію з терміналу, натисніть Скасувати.",
+ "authorize.approve": "Авторизувати",
+ "authorize.identityProvider": "Постачальник ідентифікації:",
+ "authorize.loadingSession": "Завантаження сесії…",
+ "authorize.sessionInvalidBody": "Запустіть difyctl auth login знову, щоб почати новий вхід.",
+ "authorize.sessionInvalidTitle": "Ця сесія більше не дійсна",
+ "authorize.ssoSubtitle": "difyctl запитує доступ через SSO. Якщо ви не запускали цю дію з терміналу, закрийте цю вкладку.",
+ "authorize.title": "Авторизувати difyctl",
+ "authorize.viaSSO": "через SSO",
+ "authorize.workspace": "Робочий простір:",
+ "chooser.signInAccount": "Увійти з обліковим записом Dify",
+ "chooser.signInSSO": "Увійти через SSO",
+ "chooser.subtitle": "Код {{code}} дійсний. Оберіть спосіб входу.",
+ "chooser.title": "Увійдіть, щоб авторизувати",
+ "codeEntry.codeAriaLabel": "одноразовий код",
+ "codeEntry.continue": "Продовжити",
+ "codeEntry.subtitle": "Введіть код, показаний у вашому терміналі.",
+ "codeEntry.title": "Авторизувати difyctl",
+ "errorExpired.body": "Термін дії минув або код уже використано. Запустіть difyctl auth login, щоб отримати новий код.",
+ "errorExpired.title": "Код більше не дійсний",
+ "errorExpired.tryDifferentCode": "← Спробувати інший код",
+ "errorLookupFailed.body": "На нашому боці сталася помилка. Спробуйте ще раз за мить.",
+ "errorLookupFailed.title": "Не вдалося перевірити код",
+ "errorRateLimited.body": "Зачекайте трохи й спробуйте ще раз.",
+ "errorRateLimited.title": "Забагато спроб",
+ "ssoError.default": "Не вдалося завершити єдиний вхід (SSO). Спробуйте ще раз.",
+ "ssoError.emailBelongsToDifyAccount": "Цю особу пов'язано з обліковим записом Dify. Натомість скористайтеся «Увійти з обліковим записом Dify».",
+ "success.goToConsole": "Перейти до консолі Dify →",
+ "success.subtitle": "Поверніться до терміналу, щоб продовжити.",
+ "success.title": "Ви увійшли",
+ "tryAgain": "← Спробувати ще раз"
+}
diff --git a/web/i18n/vi-VN/device-flow.json b/web/i18n/vi-VN/device-flow.json
new file mode 100644
index 00000000000..cf6d4631a6c
--- /dev/null
+++ b/web/i18n/vi-VN/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "Mã này không còn hiệu lực.",
+ "approveError.codeMismatch": "Mã này không khớp với phiên đang hoạt động. Hãy chạy lại difyctl auth login.",
+ "approveError.codeResolved": "Mã này đã được phê duyệt hoặc từ chối trước đó.",
+ "approveError.conflict": "Mã này không còn ở trạng thái mà chúng tôi có thể phê duyệt.",
+ "approveError.default": "Không thể hoàn tất yêu cầu. Vui lòng thử lại.",
+ "approveError.flowExpired": "Quy trình đã hết hạn trước khi hoàn tất phê duyệt. Hãy chạy lại difyctl auth login.",
+ "approveError.inProgress": "Đã có một phê duyệt đang được xử lý cho mã này.",
+ "approveError.rateLimited": "Quá nhiều lần thử. Vui lòng đợi một chút rồi thử lại.",
+ "approveError.serverError": "Đã xảy ra sự cố ở phía chúng tôi. Vui lòng thử lại sau ít phút.",
+ "approveError.sessionConsumed": "Phiên này đã được sử dụng trước đó. Hãy chạy lại difyctl auth login.",
+ "approveError.sessionExpired": "Phiên của bạn đã hết hạn. Hãy chạy lại difyctl auth login để bắt đầu lại.",
+ "approveError.verifyFailed": "Không thể xác minh yêu cầu. Vui lòng tải lại trang và thử lại.",
+ "authorize.accountSubtitle": "difyctl đang yêu cầu quyền truy cập. Nếu bạn không bắt đầu thao tác này từ terminal của mình, hãy nhấp vào Hủy.",
+ "authorize.approve": "Ủy quyền",
+ "authorize.identityProvider": "Nhà cung cấp danh tính:",
+ "authorize.loadingSession": "Đang tải phiên…",
+ "authorize.sessionInvalidBody": "Chạy lại difyctl auth login để bắt đầu đăng nhập mới.",
+ "authorize.sessionInvalidTitle": "Phiên này không còn hiệu lực",
+ "authorize.ssoSubtitle": "difyctl đang yêu cầu quyền truy cập qua SSO. Nếu bạn không bắt đầu thao tác này từ terminal của mình, hãy đóng tab này.",
+ "authorize.title": "Ủy quyền difyctl",
+ "authorize.viaSSO": "qua SSO",
+ "authorize.workspace": "Không gian làm việc:",
+ "chooser.signInAccount": "Đăng nhập bằng tài khoản Dify",
+ "chooser.signInSSO": "Đăng nhập bằng SSO",
+ "chooser.subtitle": "Mã {{code}} hợp lệ. Hãy chọn cách bạn muốn đăng nhập.",
+ "chooser.title": "Đăng nhập để ủy quyền",
+ "codeEntry.codeAriaLabel": "mã dùng một lần",
+ "codeEntry.continue": "Tiếp tục",
+ "codeEntry.subtitle": "Nhập mã được hiển thị trong terminal của bạn.",
+ "codeEntry.title": "Ủy quyền difyctl",
+ "errorExpired.body": "Đã hết hạn hoặc đã được sử dụng. Hãy chạy difyctl auth login để nhận mã mới.",
+ "errorExpired.title": "Mã không còn hiệu lực",
+ "errorExpired.tryDifferentCode": "← Thử mã khác",
+ "errorLookupFailed.body": "Đã xảy ra sự cố ở phía chúng tôi. Vui lòng thử lại sau ít phút.",
+ "errorLookupFailed.title": "Không thể xác minh mã",
+ "errorRateLimited.body": "Vui lòng đợi một chút rồi thử lại.",
+ "errorRateLimited.title": "Quá nhiều lần thử",
+ "ssoError.default": "Không thể hoàn tất đăng nhập một lần (SSO). Vui lòng thử lại.",
+ "ssoError.emailBelongsToDifyAccount": "Danh tính này đã được liên kết với một tài khoản Dify. Hãy dùng “Đăng nhập bằng tài khoản Dify” thay thế.",
+ "success.goToConsole": "Đến bảng điều khiển Dify →",
+ "success.subtitle": "Quay lại terminal của bạn để tiếp tục.",
+ "success.title": "Bạn đã đăng nhập",
+ "tryAgain": "← Thử lại"
+}
diff --git a/web/i18n/zh-Hans/device-flow.json b/web/i18n/zh-Hans/device-flow.json
new file mode 100644
index 00000000000..b39e531df27
--- /dev/null
+++ b/web/i18n/zh-Hans/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "此验证码已失效。",
+ "approveError.codeMismatch": "此验证码与当前活跃会话不匹配。请重新运行 difyctl auth login。",
+ "approveError.codeResolved": "此验证码已被批准或拒绝。",
+ "approveError.conflict": "此验证码的状态已不可批准。",
+ "approveError.default": "无法完成请求,请重试。",
+ "approveError.flowExpired": "在批准完成前流程已过期。请重新运行 difyctl auth login。",
+ "approveError.inProgress": "此验证码已有一个批准正在进行中。",
+ "approveError.rateLimited": "尝试次数过多,请稍等片刻后重试。",
+ "approveError.serverError": "我们这边出现了问题,请稍后重试。",
+ "approveError.sessionConsumed": "此会话已被使用。请重新运行 difyctl auth login。",
+ "approveError.sessionExpired": "您的会话已过期。请重新运行 difyctl auth login 重新开始。",
+ "approveError.verifyFailed": "无法验证该请求,请刷新页面后重试。",
+ "authorize.accountSubtitle": "difyctl 正在请求访问权限。如果您不是从终端发起此操作,请点击取消。",
+ "authorize.approve": "授权",
+ "authorize.identityProvider": "身份提供商:",
+ "authorize.loadingSession": "正在加载会话…",
+ "authorize.sessionInvalidBody": "请重新运行 difyctl auth login 以开始新的登录。",
+ "authorize.sessionInvalidTitle": "此会话已失效",
+ "authorize.ssoSubtitle": "difyctl 正在通过 SSO 请求访问权限。如果您不是从终端发起此操作,请关闭此标签页。",
+ "authorize.title": "授权 difyctl",
+ "authorize.viaSSO": "通过 SSO",
+ "authorize.workspace": "工作空间:",
+ "chooser.signInAccount": "使用 Dify 账户登录",
+ "chooser.signInSSO": "使用 SSO 登录",
+ "chooser.subtitle": "验证码 {{code}} 有效。请选择登录方式。",
+ "chooser.title": "登录以授权",
+ "codeEntry.codeAriaLabel": "一次性验证码",
+ "codeEntry.continue": "继续",
+ "codeEntry.subtitle": "输入终端中显示的验证码。",
+ "codeEntry.title": "授权 difyctl",
+ "errorExpired.body": "验证码已过期或已被使用。请运行 difyctl auth login 获取新验证码。",
+ "errorExpired.title": "验证码已失效",
+ "errorExpired.tryDifferentCode": "← 换一个验证码",
+ "errorLookupFailed.body": "我们这边出现了问题,请稍后重试。",
+ "errorLookupFailed.title": "无法验证该验证码",
+ "errorRateLimited.body": "请稍等片刻后重试。",
+ "errorRateLimited.title": "尝试次数过多",
+ "ssoError.default": "单点登录未能完成,请重试。",
+ "ssoError.emailBelongsToDifyAccount": "此身份已关联 Dify 账户,请改用“使用 Dify 账户登录”。",
+ "success.goToConsole": "前往 Dify 控制台 →",
+ "success.subtitle": "请返回终端以继续。",
+ "success.title": "您已登录",
+ "tryAgain": "← 重试"
+}
diff --git a/web/i18n/zh-Hant/device-flow.json b/web/i18n/zh-Hant/device-flow.json
new file mode 100644
index 00000000000..c34561af08e
--- /dev/null
+++ b/web/i18n/zh-Hant/device-flow.json
@@ -0,0 +1,45 @@
+{
+ "approveError.codeInvalid": "此驗證碼已失效。",
+ "approveError.codeMismatch": "此驗證碼與目前的活躍工作階段不符。請重新執行 difyctl auth login。",
+ "approveError.codeResolved": "此驗證碼已被核准或拒絕。",
+ "approveError.conflict": "此驗證碼已不處於可核准的狀態。",
+ "approveError.default": "無法完成請求,請再試一次。",
+ "approveError.flowExpired": "在核准完成前流程已逾期。請重新執行 difyctl auth login。",
+ "approveError.inProgress": "此驗證碼已有一項核准正在進行中。",
+ "approveError.rateLimited": "嘗試次數過多,請稍候片刻後再試。",
+ "approveError.serverError": "我們這端發生了問題,請稍後再試。",
+ "approveError.sessionConsumed": "此工作階段已被使用。請重新執行 difyctl auth login。",
+ "approveError.sessionExpired": "您的工作階段已逾期。請重新執行 difyctl auth login 以重新開始。",
+ "approveError.verifyFailed": "無法驗證此請求,請重新整理頁面後再試。",
+ "authorize.accountSubtitle": "difyctl 正在請求存取權限。如果您並非從終端機發起此操作,請點擊取消。",
+ "authorize.approve": "授權",
+ "authorize.identityProvider": "身分提供者:",
+ "authorize.loadingSession": "正在載入工作階段…",
+ "authorize.sessionInvalidBody": "請重新執行 difyctl auth login 以開始新的登入。",
+ "authorize.sessionInvalidTitle": "此工作階段已失效",
+ "authorize.ssoSubtitle": "difyctl 正在透過 SSO 請求存取權限。如果您並非從終端機發起此操作,請關閉此分頁。",
+ "authorize.title": "授權 difyctl",
+ "authorize.viaSSO": "透過 SSO",
+ "authorize.workspace": "工作區:",
+ "chooser.signInAccount": "使用 Dify 帳戶登入",
+ "chooser.signInSSO": "使用 SSO 登入",
+ "chooser.subtitle": "驗證碼 {{code}} 有效,請選擇登入方式。",
+ "chooser.title": "登入以授權",
+ "codeEntry.codeAriaLabel": "一次性驗證碼",
+ "codeEntry.continue": "繼續",
+ "codeEntry.subtitle": "輸入終端機中顯示的驗證碼。",
+ "codeEntry.title": "授權 difyctl",
+ "errorExpired.body": "驗證碼已逾期或已被使用。請執行 difyctl auth login 以取得新的驗證碼。",
+ "errorExpired.title": "驗證碼已失效",
+ "errorExpired.tryDifferentCode": "← 換一個驗證碼",
+ "errorLookupFailed.body": "我們這端發生了問題,請稍後再試。",
+ "errorLookupFailed.title": "無法驗證此驗證碼",
+ "errorRateLimited.body": "請稍候片刻後再試。",
+ "errorRateLimited.title": "嘗試次數過多",
+ "ssoError.default": "單一登入未能完成,請再試一次。",
+ "ssoError.emailBelongsToDifyAccount": "此身分已連結至 Dify 帳戶,請改用「使用 Dify 帳戶登入」。",
+ "success.goToConsole": "前往 Dify 主控台 →",
+ "success.subtitle": "請返回終端機以繼續。",
+ "success.title": "您已登入",
+ "tryAgain": "← 重試"
+}