Ver Fonte

chore: translate i18n files (#10754)

Co-authored-by: douxc <7553076+douxc@users.noreply.github.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: crazywoola <427733928@qq.com>
github-actions[bot] há 5 meses atrás
pai
commit
d05fee1182
52 ficheiros alterados com 951 adições e 0 exclusões
  1. 4 0
      web/i18n/de-DE/common.ts
  2. 6 0
      web/i18n/de-DE/login.ts
  3. 2 0
      web/i18n/de-DE/workflow.ts
  4. 4 0
      web/i18n/es-ES/common.ts
  5. 6 0
      web/i18n/es-ES/login.ts
  6. 2 0
      web/i18n/es-ES/workflow.ts
  7. 4 0
      web/i18n/fa-IR/common.ts
  8. 6 0
      web/i18n/fa-IR/login.ts
  9. 2 0
      web/i18n/fa-IR/workflow.ts
  10. 4 0
      web/i18n/fr-FR/common.ts
  11. 6 0
      web/i18n/fr-FR/login.ts
  12. 2 0
      web/i18n/fr-FR/workflow.ts
  13. 4 0
      web/i18n/hi-IN/common.ts
  14. 6 0
      web/i18n/hi-IN/login.ts
  15. 2 0
      web/i18n/hi-IN/workflow.ts
  16. 4 0
      web/i18n/it-IT/common.ts
  17. 6 0
      web/i18n/it-IT/login.ts
  18. 2 0
      web/i18n/it-IT/workflow.ts
  19. 4 0
      web/i18n/ja-JP/common.ts
  20. 6 0
      web/i18n/ja-JP/login.ts
  21. 2 0
      web/i18n/ja-JP/workflow.ts
  22. 4 0
      web/i18n/ko-KR/common.ts
  23. 6 0
      web/i18n/ko-KR/login.ts
  24. 2 0
      web/i18n/ko-KR/workflow.ts
  25. 4 0
      web/i18n/pl-PL/common.ts
  26. 6 0
      web/i18n/pl-PL/login.ts
  27. 2 0
      web/i18n/pl-PL/workflow.ts
  28. 4 0
      web/i18n/pt-BR/common.ts
  29. 6 0
      web/i18n/pt-BR/login.ts
  30. 2 0
      web/i18n/pt-BR/workflow.ts
  31. 4 0
      web/i18n/ro-RO/common.ts
  32. 6 0
      web/i18n/ro-RO/login.ts
  33. 2 0
      web/i18n/ro-RO/workflow.ts
  34. 4 0
      web/i18n/ru-RU/common.ts
  35. 6 0
      web/i18n/ru-RU/login.ts
  36. 2 0
      web/i18n/ru-RU/workflow.ts
  37. 219 0
      web/i18n/sl-SI/common.ts
  38. 1 0
      web/i18n/sl-SI/dataset-creation.ts
  39. 35 0
      web/i18n/sl-SI/login.ts
  40. 504 0
      web/i18n/sl-SI/workflow.ts
  41. 4 0
      web/i18n/tr-TR/common.ts
  42. 6 0
      web/i18n/tr-TR/login.ts
  43. 2 0
      web/i18n/tr-TR/workflow.ts
  44. 4 0
      web/i18n/uk-UA/common.ts
  45. 6 0
      web/i18n/uk-UA/login.ts
  46. 2 0
      web/i18n/uk-UA/workflow.ts
  47. 4 0
      web/i18n/vi-VN/common.ts
  48. 6 0
      web/i18n/vi-VN/login.ts
  49. 2 0
      web/i18n/vi-VN/workflow.ts
  50. 4 0
      web/i18n/zh-Hant/common.ts
  51. 6 0
      web/i18n/zh-Hant/login.ts
  52. 2 0
      web/i18n/zh-Hant/workflow.ts

+ 4 - 0
web/i18n/de-DE/common.ts

@@ -591,6 +591,10 @@ const translation = {
     uploadFromComputerReadError: 'Lesen der Datei fehlgeschlagen, bitte versuchen Sie es erneut.',
     fileExtensionNotSupport: 'Dateiendung nicht bedient',
   },
+  license: {
+    expiring: 'Läuft an einem Tag ab',
+    expiring_plural: 'Läuft in {{count}} Tagen ab',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/de-DE/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethodTip: 'Wenden Sie sich an den Systemadministrator, um eine Authentifizierungsmethode hinzuzufügen.',
   usePassword: 'Passwort verwenden',
   noLoginMethod: 'Authentifizierungsmethode nicht konfiguriert',
+  licenseExpired: 'Lizenz abgelaufen',
+  licenseLostTip: 'Fehler beim Verbinden des Dify-Lizenzservers. Wenden Sie sich an Ihren Administrator, um Dify weiterhin zu verwenden.',
+  licenseInactive: 'Lizenz inaktiv',
+  licenseInactiveTip: 'Die Dify Enterprise-Lizenz für Ihren Arbeitsbereich ist inaktiv. Wenden Sie sich an Ihren Administrator, um Dify weiterhin zu verwenden.',
+  licenseExpiredTip: 'Die Dify Enterprise-Lizenz für Ihren Arbeitsbereich ist abgelaufen. Wenden Sie sich an Ihren Administrator, um Dify weiterhin zu verwenden.',
+  licenseLost: 'Lizenz verloren',
 }
 
 export default translation

+ 2 - 0
web/i18n/de-DE/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Art',
       binaryFileVariable: 'Variable der Binärdatei',
+      extractListPlaceholder: 'Geben Sie den Index des Listeneintrags ein, geben Sie \'/\' ein, fügen Sie die Variable ein',
     },
     code: {
       inputVars: 'Eingabevariablen',
@@ -618,6 +619,7 @@ const translation = {
       filterConditionKey: 'Bedingungsschlüssel filtern',
       filterCondition: 'Filter-Bedingung',
       selectVariableKeyPlaceholder: 'Untervariablenschlüssel auswählen',
+      extractsCondition: 'Extrahieren des N-Elements',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/es-ES/common.ts

@@ -591,6 +591,10 @@ const translation = {
     pasteFileLinkInputPlaceholder: 'Introduzca la URL...',
     uploadFromComputerLimit: 'El archivo de carga no puede exceder {{size}}',
   },
+  license: {
+    expiring: 'Caduca en un día',
+    expiring_plural: 'Caducando en {{count}} días',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/es-ES/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethod: 'Método de autenticación no configurado',
   setYourAccount: 'Configura tu cuenta',
   noLoginMethodTip: 'Póngase en contacto con el administrador del sistema para agregar un método de autenticación.',
+  licenseInactive: 'Licencia inactiva',
+  licenseInactiveTip: 'La licencia de Dify Enterprise para su espacio de trabajo está inactiva. Póngase en contacto con su administrador para seguir utilizando Dify.',
+  licenseExpired: 'Licencia caducada',
+  licenseLost: 'Licencia perdida',
+  licenseExpiredTip: 'La licencia de Dify Enterprise para su espacio de trabajo ha caducado. Póngase en contacto con su administrador para seguir utilizando Dify.',
+  licenseLostTip: 'No se pudo conectar el servidor de licencias de Dife. Póngase en contacto con su administrador para seguir utilizando Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/es-ES/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Tipo',
       binaryFileVariable: 'Variable de archivo binario',
+      extractListPlaceholder: 'Introduzca el índice de elementos de la lista, escriba \'/\' insertar variable',
     },
     code: {
       inputVars: 'Variables de entrada',
@@ -621,6 +622,7 @@ const translation = {
       filterConditionComparisonOperator: 'Operador de comparación de condiciones de filtro',
       asc: 'ASC',
       selectVariableKeyPlaceholder: 'Seleccione la clave de subvariable',
+      extractsCondition: 'Extraiga el elemento N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/fa-IR/common.ts

@@ -591,6 +591,10 @@ const translation = {
     pasteFileLink: 'پیوند فایل را جایگذاری کنید',
     uploadFromComputerLimit: 'آپلود فایل نمی تواند از {{size}} تجاوز کند',
   },
+  license: {
+    expiring_plural: 'انقضا در {{count}} روز',
+    expiring: 'انقضا در یک روز',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/fa-IR/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethod: 'روش احراز هویت پیکربندی نشده است',
   noLoginMethodTip: 'لطفا برای افزودن روش احراز هویت با مدیر سیستم تماس بگیرید.',
   resetPasswordDesc: 'ایمیلی را که برای ثبت نام در Dify استفاده کرده اید تایپ کنید و ما یک ایمیل بازنشانی رمز عبور برای شما ارسال خواهیم کرد.',
+  licenseInactive: 'مجوز غیر فعال',
+  licenseLost: 'مجوز گم شده است',
+  licenseExpired: 'مجوز منقضی شده است',
+  licenseExpiredTip: 'مجوز Dify Enterprise برای فضای کاری شما منقضی شده است. لطفا برای ادامه استفاده از Dify با سرپرست خود تماس بگیرید.',
+  licenseInactiveTip: 'مجوز Dify Enterprise برای فضای کاری شما غیرفعال است. لطفا برای ادامه استفاده از Dify با سرپرست خود تماس بگیرید.',
+  licenseLostTip: 'اتصال سرور مجوز Dify انجام نشد. لطفا برای ادامه استفاده از Dify با سرپرست خود تماس بگیرید.',
 }
 
 export default translation

+ 2 - 0
web/i18n/fa-IR/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       binaryFileVariable: 'متغیر فایل باینری',
       type: 'نوع',
+      extractListPlaceholder: 'فهرست آیتم لیست را وارد کنید، متغیر درج \'/\' را تایپ کنید',
     },
     code: {
       inputVars: 'متغیرهای ورودی',
@@ -618,6 +619,7 @@ const translation = {
       filterConditionComparisonValue: 'مقدار شرایط فیلتر',
       selectVariableKeyPlaceholder: 'کلید متغیر فرعی را انتخاب کنید',
       asc: 'صعودی',
+      extractsCondition: 'مورد N را استخراج کنید',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/fr-FR/common.ts

@@ -591,6 +591,10 @@ const translation = {
     pasteFileLinkInvalid: 'Lien de fichier non valide',
     uploadFromComputerLimit: 'Le fichier de téléchargement ne peut pas dépasser {{size}}',
   },
+  license: {
+    expiring: 'Expirant dans un jour',
+    expiring_plural: 'Expirant dans {{count}} jours',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/fr-FR/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethodTip: 'Veuillez contacter l’administrateur système pour ajouter une méthode d’authentification.',
   resetPasswordDesc: 'Tapez l’adresse e-mail que vous avez utilisée pour vous inscrire sur Dify et nous vous enverrons un e-mail de réinitialisation de mot de passe.',
   usePassword: 'Utiliser le mot de passe',
+  licenseInactiveTip: 'La licence Dify Enterprise de votre espace de travail est inactive. Veuillez contacter votre administrateur pour continuer à utiliser Dify.',
+  licenseLostTip: 'Échec de la connexion au serveur de licences Dify. Veuillez contacter votre administrateur pour continuer à utiliser Dify.',
+  licenseExpired: 'Licence expirée',
+  licenseLost: 'Licence perdue',
+  licenseExpiredTip: 'La licence Dify Enterprise de votre espace de travail a expiré. Veuillez contacter votre administrateur pour continuer à utiliser Dify.',
+  licenseInactive: 'Licence inactive',
 }
 
 export default translation

+ 2 - 0
web/i18n/fr-FR/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       binaryFileVariable: 'Variable de fichier binaire',
       type: 'Type',
+      extractListPlaceholder: 'Entrez l’index de l’élément de liste, tapez \'/\' insérer la variable',
     },
     code: {
       inputVars: 'Variables de saisie',
@@ -618,6 +619,7 @@ const translation = {
       limit: 'Haut N',
       orderBy: 'Trier par',
       filterConditionKey: 'Clé de condition de filtre',
+      extractsCondition: 'Extraire l’élément N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/hi-IN/common.ts

@@ -613,6 +613,10 @@ const translation = {
     fileExtensionNotSupport: 'फ़ाइल एक्सटेंशन समर्थित नहीं है',
     uploadFromComputer: 'स्थानीय अपलोड',
   },
+  license: {
+    expiring: 'एक दिन में समाप्त हो रहा है',
+    expiring_plural: '{{गिनती}} दिनों में समाप्त हो रहा है',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/hi-IN/login.ts

@@ -104,6 +104,12 @@ const translation = {
   resetPasswordDesc: 'वह ईमेल टाइप करें जिसका उपयोग आपने Dify पर साइन अप करने के लिए किया था और हम आपको एक पासवर्ड रीसेट ईमेल भेजेंगे।',
   withSSO: 'एसएसओ के साथ जारी रखें',
   back: 'पीछे',
+  licenseInactive: 'लाइसेंस निष्क्रिय',
+  licenseExpired: 'लाइसेंस की समय सीमा समाप्त हो गई',
+  licenseLost: 'लाइसेंस खो गया',
+  licenseLostTip: 'Dify लायसेंस सर्वर से कनेक्ट करने में विफल. Dify का उपयोग जारी रखने के लिए कृपया अपने व्यवस्थापक से संपर्क करें.',
+  licenseInactiveTip: 'आपके कार्यस्थल के लिए डिफाई एंटरप्राइज लाइसेंस निष्क्रिय है। कृपया डिफाई का उपयोग जारी रखने के लिए अपने प्रशासक से संपर्क करें।',
+  licenseExpiredTip: 'आपके कार्यस्थल के लिए डिफाई एंटरप्राइज लाइसेंस समाप्त हो गया है। कृपया डिफाई का उपयोग जारी रखने के लिए अपने प्रशासक से संपर्क करें।',
 }
 
 export default translation

+ 2 - 0
web/i18n/hi-IN/workflow.ts

@@ -420,6 +420,7 @@ const translation = {
       },
       type: 'प्रकार',
       binaryFileVariable: 'बाइनरी फ़ाइल चर',
+      extractListPlaceholder: 'सूची आइटम इंडेक्स दर्ज करें, \'/\' इन्सर्ट वेरिएबल टाइप करें',
     },
     code: {
       inputVars: 'इनपुट वेरिएबल्स',
@@ -638,6 +639,7 @@ const translation = {
       filterConditionComparisonOperator: 'फ़िल्टर शर्त तुलन ऑपरेटर',
       selectVariableKeyPlaceholder: 'उप चर कुंजी का चयन करें',
       inputVar: 'इनपुट वेरिएबल',
+      extractsCondition: 'N आइटम निकालें',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/it-IT/common.ts

@@ -622,6 +622,10 @@ const translation = {
     pasteFileLink: 'Incolla il collegamento del file',
     uploadFromComputerReadError: 'Lettura del file non riuscita, riprovare.',
   },
+  license: {
+    expiring_plural: 'Scadenza tra {{count}} giorni',
+    expiring: 'Scadenza in un giorno',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/it-IT/login.ts

@@ -109,6 +109,12 @@ const translation = {
   resetPasswordDesc: 'Digita l\'e-mail che hai utilizzato per registrarti su Dify e ti invieremo un\'e-mail per reimpostare la password.',
   noLoginMethodTip: 'Contatta l\'amministratore di sistema per aggiungere un metodo di autenticazione.',
   enterYourName: 'Inserisci il tuo nome utente',
+  licenseLostTip: 'Impossibile connettersi al server licenze Dify. Contatta il tuo amministratore per continuare a utilizzare Dify.',
+  licenseExpired: 'Licenza scaduta',
+  licenseLost: 'Licenza persa',
+  licenseExpiredTip: 'La licenza Dify Enterprise per la tua area di lavoro è scaduta. Contatta il tuo amministratore per continuare a utilizzare Dify.',
+  licenseInactiveTip: 'La licenza Dify Enterprise per la tua area di lavoro è inattiva. Contatta il tuo amministratore per continuare a utilizzare Dify.',
+  licenseInactive: 'Licenza inattiva',
 }
 
 export default translation

+ 2 - 0
web/i18n/it-IT/workflow.ts

@@ -424,6 +424,7 @@ const translation = {
       },
       binaryFileVariable: 'Variabile file binario',
       type: 'Digitare',
+      extractListPlaceholder: 'Inserisci l\'indice delle voci dell\'elenco, digita \'/\' inserisci la variabile',
     },
     code: {
       inputVars: 'Variabili di Input',
@@ -645,6 +646,7 @@ const translation = {
       desc: 'DESC',
       filterConditionComparisonValue: 'Valore della condizione di filtro',
       orderBy: 'Ordina per',
+      extractsCondition: 'Estrai l\'elemento N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/ja-JP/common.ts

@@ -591,6 +591,10 @@ const translation = {
     fileExtensionNotSupport: 'ファイル拡張子はサポートされていません',
     pasteFileLinkInvalid: '無効なファイルリンク',
   },
+  license: {
+    expiring_plural: '有効期限 {{count}} 日',
+    expiring: '1日で有効期限が切れます',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/ja-JP/login.ts

@@ -99,6 +99,12 @@ const translation = {
   sendVerificationCode: '確認コードの送信',
   enterYourName: 'ユーザー名を入力してください',
   resetPasswordDesc: 'Difyへのサインアップに使用したメールアドレスを入力すると、パスワードリセットメールが送信されます。',
+  licenseLost: 'ライセンスを失った',
+  licenseExpiredTip: 'ワークスペースの Dify Enterprise ライセンスの有効期限が切れています。Difyを引き続き使用するには、管理者に連絡してください。',
+  licenseInactive: 'ライセンスが非アクティブです',
+  licenseInactiveTip: 'ワークスペースの Dify Enterprise ライセンスが非アクティブです。Difyを引き続き使用するには、管理者に連絡してください。',
+  licenseExpired: 'ライセンスの有効期限が切れています',
+  licenseLostTip: 'Difyライセンスサーバーへの接続に失敗しました。続けてDifyを使用するために管理者に連絡してください。',
 }
 
 export default translation

+ 2 - 0
web/i18n/ja-JP/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'タイプ',
       binaryFileVariable: 'バイナリファイル変数',
+      extractListPlaceholder: 'リスト項目のインデックスを入力し、変数を挿入 \'/\' と入力します',
     },
     code: {
       inputVars: '入力変数',
@@ -619,6 +620,7 @@ const translation = {
       filterConditionComparisonOperator: 'フィルター条件を比較オペレーター',
       inputVar: '入力変数',
       desc: 'DESC',
+      extractsCondition: 'N個のアイテムを抽出します',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/ko-KR/common.ts

@@ -587,6 +587,10 @@ const translation = {
     uploadFromComputerLimit: '업로드 파일은 {{size}}를 초과할 수 없습니다.',
     uploadFromComputerUploadError: '파일 업로드에 실패했습니다. 다시 업로드하십시오.',
   },
+  license: {
+    expiring_plural: '{{count}}일 후에 만료',
+    expiring: '하루 후에 만료',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/ko-KR/login.ts

@@ -99,6 +99,12 @@ const translation = {
   enterYourName: '사용자 이름을 입력해 주세요',
   noLoginMethodTip: '인증 방법을 추가하려면 시스템 관리자에게 문의하십시오.',
   resetPasswordDesc: 'Dify에 가입할 때 사용한 이메일을 입력하면 비밀번호 재설정 이메일을 보내드립니다.',
+  licenseInactiveTip: '작업 영역에 대한 Dify Enterprise 라이선스가 비활성 상태입니다. Dify를 계속 사용하려면 관리자에게 문의하십시오.',
+  licenseLost: '라이센스 분실',
+  licenseLostTip: 'Dify 라이선스 서버에 연결하지 못했습니다. Dify를 계속 사용하려면 관리자에게 문의하십시오.',
+  licenseInactive: 'License Inactive(라이선스 비활성)',
+  licenseExpired: '라이센스가 만료되었습니다.',
+  licenseExpiredTip: '작업 영역에 대한 Dify Enterprise 라이선스가 만료되었습니다. Dify를 계속 사용하려면 관리자에게 문의하십시오.',
 }
 
 export default translation

+ 2 - 0
web/i18n/ko-KR/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: '형',
       binaryFileVariable: '바이너리 파일 변수',
+      extractListPlaceholder: '목록 항목 인덱스 입력, \'/\' 변수 삽입',
     },
     code: {
       inputVars: '입력 변수',
@@ -618,6 +619,7 @@ const translation = {
       orderBy: '정렬 기준',
       selectVariableKeyPlaceholder: '하위 변수 키 선택',
       filterConditionComparisonOperator: '필터 조건 비교 연산자',
+      extractsCondition: 'N 항목을 추출합니다.',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/pl-PL/common.ts

@@ -609,6 +609,10 @@ const translation = {
     fileExtensionNotSupport: 'Rozszerzenie pliku nie jest obsługiwane',
     uploadFromComputer: 'Przesyłanie lokalne',
   },
+  license: {
+    expiring_plural: 'Wygasa za {{count}} dni',
+    expiring: 'Wygasa w ciągu jednego dnia',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/pl-PL/login.ts

@@ -104,6 +104,12 @@ const translation = {
   or: 'LUB',
   noLoginMethodTip: 'Skontaktuj się z administratorem systemu, aby dodać metodę uwierzytelniania.',
   noLoginMethod: 'Nie skonfigurowano metody uwierzytelniania',
+  licenseLost: 'Utrata licencji',
+  licenseExpired: 'Licencja wygasła',
+  licenseInactive: 'Licencja nieaktywna',
+  licenseExpiredTip: 'Licencja Dify Enterprise dla Twojego obszaru roboczego wygasła. Skontaktuj się z administratorem, aby kontynuować korzystanie z Dify.',
+  licenseLostTip: 'Nie udało się nawiązać połączenia z serwerem licencji Dify. Skontaktuj się z administratorem, aby kontynuować korzystanie z Dify.',
+  licenseInactiveTip: 'Licencja Dify Enterprise dla Twojego obszaru roboczego jest nieaktywna. Skontaktuj się z administratorem, aby kontynuować korzystanie z Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/pl-PL/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Typ',
       binaryFileVariable: 'Binarna zmienna pliku',
+      extractListPlaceholder: 'Wprowadź indeks elementu listy, wpisz "/" wstaw zmienną',
     },
     code: {
       inputVars: 'Zmienne wejściowe',
@@ -618,6 +619,7 @@ const translation = {
       filterCondition: 'Stan filtra',
       filterConditionComparisonValue: 'Wartość warunku filtru',
       selectVariableKeyPlaceholder: 'Wybierz klucz zmiennej podrzędnej',
+      extractsCondition: 'Wyodrębnij element N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/pt-BR/common.ts

@@ -591,6 +591,10 @@ const translation = {
     uploadFromComputerLimit: 'Carregar arquivo não pode exceder {{size}}',
     uploadFromComputerUploadError: 'Falha no upload do arquivo, faça o upload novamente.',
   },
+  license: {
+    expiring: 'Expirando em um dia',
+    expiring_plural: 'Expirando em {{count}} dias',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/pt-BR/login.ts

@@ -99,6 +99,12 @@ const translation = {
   resetPasswordDesc: 'Digite o e-mail que você usou para se inscrever no Dify e enviaremos um e-mail de redefinição de senha.',
   sendVerificationCode: 'Enviar código de verificação',
   usePassword: 'Usar senha',
+  licenseInactiveTip: 'A licença do Dify Enterprise para seu espaço de trabalho está inativa. Entre em contato com o administrador para continuar usando o Dify.',
+  licenseLostTip: 'Falha ao conectar o servidor de licenças Dify. Entre em contato com o administrador para continuar usando o Dify.',
+  licenseExpired: 'Licença expirada',
+  licenseLost: 'Licença perdida',
+  licenseInactive: 'Licença inativa',
+  licenseExpiredTip: 'A licença do Dify Enterprise para seu espaço de trabalho expirou. Entre em contato com o administrador para continuar usando o Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/pt-BR/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Tipo',
       binaryFileVariable: 'Variável de arquivo binário',
+      extractListPlaceholder: 'Insira o índice do item da lista, digite \'/\' inserir variável',
     },
     code: {
       inputVars: 'Variáveis de entrada',
@@ -618,6 +619,7 @@ const translation = {
       filterConditionKey: 'Chave de condição do filtro',
       filterConditionComparisonOperator: 'Operador de comparação de condição de filtro',
       filterConditionComparisonValue: 'Valor da condição do filtro',
+      extractsCondition: 'Extraia o item N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/ro-RO/common.ts

@@ -591,6 +591,10 @@ const translation = {
     uploadFromComputerLimit: 'Încărcarea fișierului nu poate depăși {{size}}',
     pasteFileLink: 'Lipiți linkul fișierului',
   },
+  license: {
+    expiring: 'Expiră într-o zi',
+    expiring_plural: 'Expiră în {{count}} zile',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/ro-RO/login.ts

@@ -99,6 +99,12 @@ const translation = {
   or: 'SAU',
   resetPasswordDesc: 'Tastați e-mailul pe care l-ați folosit pentru a vă înscrie pe Dify și vă vom trimite un e-mail de resetare a parolei.',
   changePasswordBtn: 'Setați o parolă',
+  licenseLostTip: 'Nu s-a reușit conectarea serverului de licențe Dify. Contactați administratorul pentru a continua să utilizați Dify.',
+  licenseInactive: 'Licență inactivă',
+  licenseInactiveTip: 'Licența Dify Enterprise pentru spațiul de lucru este inactivă. Contactați administratorul pentru a continua să utilizați Dify.',
+  licenseExpired: 'Licență expirată',
+  licenseLost: 'Licență pierdută',
+  licenseExpiredTip: 'Licența Dify Enterprise pentru spațiul de lucru a expirat. Contactați administratorul pentru a continua să utilizați Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/ro-RO/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Tip',
       binaryFileVariable: 'Variabilă de fișier binar',
+      extractListPlaceholder: 'Introduceți indexul elementelor din listă, tastați "/" inserați variabila',
     },
     code: {
       inputVars: 'Variabile de intrare',
@@ -618,6 +619,7 @@ const translation = {
       limit: 'N de sus',
       filterConditionComparisonValue: 'Valoare Stare filtrare',
       asc: 'ASC',
+      extractsCondition: 'Extrageți elementul N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/ru-RU/common.ts

@@ -591,6 +591,10 @@ const translation = {
     uploadFromComputerLimit: 'Файл загрузки не может превышать {{size}}',
     uploadFromComputerUploadError: 'Загрузка файла не удалась, пожалуйста, загрузите еще раз.',
   },
+  license: {
+    expiring: 'Срок действия истекает за один день',
+    expiring_plural: 'Срок действия истекает через {{count}} дней',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/ru-RU/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethodTip: 'Обратитесь к системному администратору, чтобы добавить метод аутентификации.',
   resetPasswordDesc: 'Введите адрес электронной почты, который вы использовали для регистрации в Dify, и мы отправим вам электронное письмо для сброса пароля.',
   or: 'ИЛИ',
+  licenseInactive: 'Лицензия неактивна',
+  licenseLostTip: 'Не удалось подключить сервер лицензий Dify. Обратитесь к своему администратору, чтобы продолжить использование Dify.',
+  licenseExpired: 'Срок действия лицензии истек',
+  licenseLost: 'Утеряна лицензия',
+  licenseInactiveTip: 'Лицензия Dify Enterprise для рабочего пространства неактивна. Обратитесь к своему администратору, чтобы продолжить использование Dify.',
+  licenseExpiredTip: 'Срок действия лицензии Dify Enterprise для рабочего пространства истек. Обратитесь к своему администратору, чтобы продолжить использование Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/ru-RU/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Тип',
       binaryFileVariable: 'Переменная двоичного файла',
+      extractListPlaceholder: 'Введите индекс элемента списка, введите \'/\' вставьте переменную',
     },
     code: {
       inputVars: 'Входные переменные',
@@ -618,6 +619,7 @@ const translation = {
       filterConditionKey: 'Ключ условия фильтра',
       selectVariableKeyPlaceholder: 'Выбор ключа подпеременной',
       filterConditionComparisonValue: 'Значение условия фильтра',
+      extractsCondition: 'Извлечение элемента N',
     },
   },
   tracing: {

+ 219 - 0
web/i18n/sl-SI/common.ts

@@ -38,6 +38,10 @@ const translation = {
     duplicate: 'Podvoji',
     rename: 'Preimenuj',
     audioSourceUnavailable: 'Zvočni vir ni na voljo',
+    copyImage: 'Kopiraj sliko',
+    openInNewTab: 'Odpri v novem zavihku',
+    zoomOut: 'Pomanjšanje',
+    zoomIn: 'Povečava',
   },
   errorMsg: {
     fieldRequired: '{{field}} je obvezno',
@@ -576,5 +580,220 @@ const translation = {
       failed: 'Ustvarjanje oznake ni uspelo',
     },
   },
+  dataSource: {
+    notion: {
+      selector: {
+        pageSelected: 'Izbrane strani',
+        addPages: 'Dodajanje strani',
+        searchPages: 'Iskanje strani ...',
+        noSearchResult: 'Ni rezultatov iskanja',
+        preview: 'PREDOGLED',
+      },
+      connected: 'Povezani',
+      remove: 'Odstrani',
+      addWorkspace: 'Dodajanje delovnega prostora',
+      connectedWorkspace: 'Povezani delovni prostor',
+      description: 'Uporaba pojma kot vira podatkov za znanje.',
+      disconnected: 'Odklopi',
+      pagesAuthorized: 'Dovoljene strani',
+      title: 'Pojem',
+      changeAuthorizedPages: 'Spreminjanje pooblaščenih strani',
+      sync: 'Sinhroniziranje',
+    },
+    website: {
+      active: 'Dejaven',
+      configuredCrawlers: 'Konfigurirani pajki',
+      title: 'Spletna stran',
+      inactive: 'Neaktiven',
+      description: 'Uvozite vsebino s spletnih mest s spletnim pajkom.',
+      with: 'S',
+    },
+    add: 'Dodajanje vira podatkov',
+    connect: 'Povezati',
+    configure: 'Konfigurirati',
+  },
+  plugin: {
+    serpapi: {
+      apiKeyPlaceholder: 'Vnesite ključ API',
+      apiKey: 'API ključ',
+      keyFrom: 'Pridobite svoj ključ SerpAPI na strani računa SerpAPI',
+    },
+  },
+  apiBasedExtension: {
+    selector: {
+      placeholder: 'Prosimo, izberite razširitev API-ja',
+      manage: 'Upravljanje razširitve API',
+      title: 'Razširitev API-ja',
+    },
+    modal: {
+      name: {
+        placeholder: 'Prosimo, vnesite ime',
+        title: 'Ime',
+      },
+      apiEndpoint: {
+        title: 'Končna točka API-ja',
+        placeholder: 'Prosimo, vnesite končno točko API-ja',
+      },
+      apiKey: {
+        lengthError: 'Dolžina ključa API ne sme biti manjša od 5 znakov',
+        title: 'Ključ API-ja',
+        placeholder: 'Prosimo, vnesite API-ključ',
+      },
+      editTitle: 'Uredi razširitev API-ja',
+      title: 'Dodajanje razširitve API-ja',
+    },
+    type: 'Vrsta',
+    link: 'Preberite, kako razvijete lastno razširitev API-ja.',
+    title: 'Razširitve API zagotavljajo centralizirano upravljanje API, kar poenostavlja konfiguracijo za enostavno uporabo v aplikacijah Dify.',
+    linkUrl: 'https://docs.dify.ai/features/extension/api_based_extension',
+    add: 'Dodajanje razširitve API-ja',
+  },
+  about: {
+    updateNow: 'Posodobi zdaj',
+    nowAvailable: 'Dify {{version}} je zdaj na voljo.',
+    latestAvailable: 'Dify {{version}} je najnovejša različica, ki je na voljo.',
+    changeLog: 'Dnevnik sprememb',
+  },
+  appMenus: {
+    apiAccess: 'Dostop do API-ja',
+    logs: 'Dnevniki',
+    logAndAnn: 'Dnevniki & Ann.',
+    promptEng: 'Orkester',
+    overview: 'Spremljanje',
+  },
+  environment: {
+    development: 'RAZVOJ',
+    testing: 'PREIZKUŠANJE',
+  },
+  appModes: {
+    completionApp: 'Generator besedila',
+    chatApp: 'Aplikacija za klepet',
+  },
+  datasetMenus: {
+    documents: 'Dokumentov',
+    settings: 'Nastavitve',
+    hitTesting: 'Testiranje pridobivanja',
+    emptyTip: 'Znanje ni bilo povezano, prosimo, pojdite na aplikacijo ali vtičnik, da dokončate združenje.',
+    viewDoc: 'Oglejte si dokumentacijo',
+    relatedApp: 'Povezane aplikacije',
+  },
+  voiceInput: {
+    notAllow: 'Mikrofon ni pooblaščen',
+    speaking: 'Spregovorite zdaj ...',
+    converting: 'Pretvorba v besedilo ...',
+  },
+  modelName: {
+    'claude-2': 'Claude-2',
+    'gpt-4-32k': 'GPT-4-32K',
+    'text-embedding-ada-002': 'Vdelava besedila-Ada-002',
+    'gpt-4': 'GPT-4',
+    'whisper-1': 'Šepet-1',
+    'claude-instant-1': 'Claude-Instant',
+    'text-davinci-003': 'Besedilo-Davinci-003',
+    'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
+    'gpt-3.5-turbo': 'GPT-3.5-Turbo',
+  },
+  chat: {
+    citation: {
+      vectorHash: 'Vektorska razpršitev:',
+      hitScore: 'Rezultat pridobivanja:',
+      linkToDataset: 'Povezava do znanja',
+      hitCount: 'Število pridobivanja:',
+      characters: 'Znakov:',
+      title: 'CITATI',
+    },
+    conversationNameCanNotEmpty: 'Zahtevano ime pogovora',
+    inputPlaceholder: 'Pogovorite se z botom',
+    renameConversation: 'Preimenovanje pogovora',
+    conversationName: 'Ime pogovora',
+    conversationNamePlaceholder: 'Prosimo, vnesite ime pogovora',
+  },
+  promptEditor: {
+    context: {
+      item: {
+        desc: 'Vstavljanje predloge konteksta',
+        title: 'Kontekstu',
+      },
+      modal: {
+        footer: 'Kontekste lahko upravljate v spodnjem razdelku Kontekst.',
+        title: '{{num}} Znanje v kontekstu',
+        add: 'Dodajanje konteksta',
+      },
+    },
+    history: {
+      item: {
+        desc: 'Vstavljanje predloge zgodovinskega sporočila',
+        title: 'Zgodovina pogovorov',
+      },
+      modal: {
+        title: 'PRIMER',
+        edit: 'Urejanje imen vlog v pogovoru',
+        assistant: 'Zdravo! Kako vam lahko pomagam danes?',
+        user: 'Zdravo',
+      },
+    },
+    variable: {
+      item: {
+        desc: 'Vstavljanje spremenljivk in zunanjih orodij',
+        title: 'Spremenljivke in zunanja orodja',
+      },
+      outputToolDisabledItem: {
+        title: 'Spremenljivke',
+        desc: 'Vstavljanje spremenljivk',
+      },
+      modal: {
+        addTool: 'Novo orodje',
+        add: 'Nova spremenljivka',
+      },
+    },
+    query: {
+      item: {
+        title: 'Poizvedba',
+        desc: 'Vstavljanje predloge uporabniške poizvedbe',
+      },
+    },
+    existed: 'Že obstaja v pozivu',
+    placeholder: 'Tukaj vnesite svojo pozivno besedo, vnesite \'{\' za vstavljanje spremenljivke, vnesite \'/\', da vstavite blok vsebine',
+  },
+  imageUploader: {
+    pasteImageLinkInvalid: 'Neveljavna povezava do slike',
+    uploadFromComputerLimit: 'Nalaganje slik ne sme presegati {{size}} MB',
+    uploadFromComputerUploadError: 'Nalaganje slike ni uspelo, naložite ga znova.',
+    pasteImageLink: 'Prilepi povezavo do slike',
+    imageUpload: 'Nalaganje slik',
+    uploadFromComputer: 'Naloži iz računalnika',
+    pasteImageLinkInputPlaceholder: 'Tukaj prilepi povezavo do slike',
+    uploadFromComputerReadError: 'Branje slik ni uspelo, poskusite znova.',
+  },
+  fileUploader: {
+    fileExtensionNotSupport: 'Datotečna pripona ni podprta',
+    pasteFileLinkInvalid: 'Neveljavna povezava do datoteke',
+    pasteFileLink: 'Prilepi povezavo do datoteke',
+    pasteFileLinkInputPlaceholder: 'Vnesite URL ...',
+    uploadFromComputerUploadError: 'Nalaganje datoteke ni uspelo, naložite ga znova.',
+    uploadFromComputer: 'Lokalno nalaganje',
+    uploadFromComputerLimit: 'Nalaganje {{type}} ne sme presegati {{size}}',
+    uploadFromComputerReadError: 'Branje datoteke ni uspelo, poskusite znova.',
+  },
+  tag: {
+    addTag: 'Dodajanje oznak',
+    delete: 'Brisanje oznake',
+    manageTags: 'Upravljanje oznak',
+    addNew: 'Dodajanje nove oznake',
+    placeholder: 'Vse oznake',
+    failed: 'Ustvarjanje oznake ni uspelo',
+    editTag: 'Urejanje oznak',
+    created: 'Oznaka je bila uspešno ustvarjena',
+    noTagYet: 'Še ni oznak',
+    create: 'Ustvariti',
+    deleteTip: 'Oznaka se uporablja, jo izbrišite?',
+    noTag: 'Brez oznak',
+    selectorPlaceholder: 'Vnesite za iskanje ali ustvarjanje',
+  },
+  license: {
+    expiring_plural: 'Poteče v {{count}} dneh',
+    expiring: 'Poteče v enem dnevu',
+  },
 }
+
 export default translation

+ 1 - 0
web/i18n/sl-SI/dataset-creation.ts

@@ -152,6 +152,7 @@ const translation = {
     indexSettingTip: 'Če želite spremeniti način indeksiranja in model vdelave, pojdite na ',
     retrievalSettingTip: 'Če želite spremeniti nastavitve iskanja, pojdite na ',
     datasetSettingLink: 'nastavitve Znanja.',
+    maxLengthCheck: 'Največja dolžina kosa mora biti manjša od 4000',
   },
   stepThree: {
     creationTitle: '🎉 Znanje ustvarjeno',

+ 35 - 0
web/i18n/sl-SI/login.ts

@@ -55,6 +55,7 @@ const translation = {
     passwordEmpty: 'Geslo je obvezno',
     passwordLengthInValid: 'Geslo mora vsebovati vsaj 8 znakov',
     passwordInvalid: 'Geslo mora vsebovati črke in številke, dolžina pa mora biti več kot 8 znakov',
+    registrationNotAllowed: 'Računa ni mogoče najti. Za registracijo se obrnite na skrbnika sistema.',
   },
   license: {
     tip: 'Preden začnete z Dify Community Edition, preberite GitHub',
@@ -70,6 +71,40 @@ const translation = {
   activated: 'Prijavite se zdaj',
   adminInitPassword: 'Geslo za inicializacijo administratorja',
   validate: 'Potrdi',
+  checkCode: {
+    emptyCode: 'Koda je obvezna',
+    verificationCodePlaceholder: 'Vnesite 6-mestno kodo',
+    resend: 'Poslati',
+    verificationCode: 'Koda za preverjanje',
+    tips: 'Kodo za preverjanje pošljemo na <strong>{{email}}</strong>',
+    verify: 'Preveriti',
+    validTime: 'Upoštevajte, da je koda veljavna 5 minut',
+    checkYourEmail: 'Preverjanje e-pošte',
+    didNotReceiveCode: 'Niste prejeli kode?',
+    invalidCode: 'Neveljavna koda',
+    useAnotherMethod: 'Uporabite drug način',
+  },
+  useVerificationCode: 'Uporaba kode za preverjanje',
+  licenseInactive: 'Licenca je neaktivna',
+  changePasswordBtn: 'Nastavitev gesla',
+  licenseExpired: 'Licenca je potekla',
+  resetPassword: 'Ponastavi geslo',
+  back: 'Hrbet',
+  backToLogin: 'Nazaj na prijavo',
+  enterYourName: 'Prosimo, vnesite svoje uporabniško ime',
+  licenseLost: 'Izgubljena licenca',
+  licenseExpiredTip: 'Licenca za Dify Enterprise za vaš delovni prostor je potekla. Če želite še naprej uporabljati Dify, se obrnite na skrbnika.',
+  usePassword: 'Uporaba gesla',
+  sendVerificationCode: 'Pošlji kodo za preverjanje',
+  resetPasswordDesc: 'Vnesite e-poštni naslov, ki ste ga uporabili za prijavo na Dify, in poslali vam bomo e-poštno sporočilo za ponastavitev gesla.',
+  setYourAccount: 'Nastavitev računa',
+  noLoginMethodTip: 'Obrnite se na skrbnika sistema, da dodate način preverjanja pristnosti.',
+  or: 'ALI',
+  noLoginMethod: 'Način preverjanja pristnosti ni konfiguriran',
+  continueWithCode: 'Nadaljujte s kodo',
+  withSSO: 'Nadaljujte z enotno prijavo',
+  licenseLostTip: 'Povezava z licenčnim strežnikom Dify ni uspela. Če želite še naprej uporabljati Dify, se obrnite na skrbnika.',
+  licenseInactiveTip: 'Licenca Dify Enterprise za vaš delovni prostor je neaktivna. Če želite še naprej uporabljati Dify, se obrnite na skrbnika.',
 }
 
 export default translation

+ 504 - 0
web/i18n/sl-SI/workflow.ts

@@ -95,6 +95,10 @@ const translation = {
     addParallelNode: 'Dodaj vzporedno vozlišče',
     parallel: 'VZPOREDNO',
     branch: 'VEJA',
+    fileUploadTip: 'Funkcije nalaganja slik so nadgrajene na nalaganje datotek.',
+    featuresDocLink: 'Izvedi več',
+    featuresDescription: 'Izboljšajte uporabniško izkušnjo spletne aplikacije',
+    ImageUploadLegacyTip: 'Zdaj lahko ustvarite spremenljivke vrste datoteke v začetnem obrazcu. V prihodnje ne bomo več podpirali funkcije nalaganja slik.',
   },
   env: {
     envPanelTitle: 'Spremenljivke okolja',
@@ -554,6 +558,506 @@ const translation = {
   tracing: {
     stopBy: 'Ustavljeno s strani {{user}}',
   },
+  chatVariable: {
+    modal: {
+      type: 'Vrsta',
+      objectValue: 'Privzeta vrednost',
+      description: 'Opis',
+      editTitle: 'Urejanje spremenljivke pogovora',
+      namePlaceholder: 'Ime spremenljivke',
+      valuePlaceholder: 'Privzeta vrednost, pustite prazno, da ni nastavljeno',
+      title: 'Dodajanje spremenljivke pogovora',
+      editInJSON: 'Urejanje v JSON',
+      value: 'Privzeta vrednost',
+      oneByOne: 'Dodajanje enega za drugim',
+      objectKey: 'Ključ',
+      objectType: 'Vrsta',
+      arrayValue: 'Vrednost',
+      name: 'Ime',
+      descriptionPlaceholder: 'Opis spremenljivke',
+      editInForm: 'Uredi v obrazcu',
+      addArrayValue: 'Dodajanje vrednosti',
+    },
+    storedContent: 'Shranjena vsebina',
+    updatedAt: 'Posodobljeno na',
+    panelTitle: 'Spremenljivke pogovora',
+    button: 'Dodajanje spremenljivke',
+    panelDescription: 'Spremenljivke pogovora se uporabljajo za shranjevanje interaktivnih informacij, ki si jih mora LLM zapomniti, vključno z zgodovino pogovorov, naloženimi datotekami, uporabniškimi nastavitvami. So branje in pisanje.',
+    docLink: 'Če želite izvedeti več, obiščite naše dokumente.',
+  },
+  changeHistory: {
+    nodeChange: 'Blokiranje spremenjeno',
+    placeholder: 'Ničesar še niste spremenili',
+    nodeDescriptionChange: 'Opis bloka je bil spremenjen',
+    nodePaste: 'Blokiranje lepljenja',
+    noteDelete: 'Opomba izbrisana',
+    nodeDragStop: 'Blok premaknjen',
+    nodeConnect: 'Blok povezan',
+    sessionStart: 'Začetek seje',
+    nodeDelete: 'Blokiraj izbrisane',
+    stepBackward_other: '{{count}} stopi nazaj',
+    hint: 'Namig',
+    noteAdd: 'Opomba dodana',
+    clearHistory: 'Počisti zgodovino',
+    stepForward_one: '{{count}} korak naprej',
+    stepBackward_one: '{{count}} korak nazaj',
+    nodeAdd: 'Blokiranje dodano',
+    noteChange: 'Opomba spremenjena',
+    hintText: 'Dejanjem urejanja se sledi v zgodovini sprememb, ki je shranjena v napravi za čas trajanja te seje. Ta zgodovina bo izbrisana, ko zapustite urejevalnik.',
+    stepForward_other: '{{count}} koraki naprej',
+    edgeDelete: 'Blok je prekinjen.',
+    nodeTitleChange: 'Naslov bloka spremenjen',
+    nodeResize: 'Spremeni velikost bloka',
+    title: 'Zgodovina sprememb',
+    currentState: 'Trenutno stanje',
+  },
+  errorMsg: {
+    fields: {
+      code: 'Koda',
+      variableValue: 'Vrednost spremenljivke',
+      visionVariable: 'Spremenljivka vida',
+      model: 'Model',
+      rerankModel: 'Ponovno razvrsti model',
+      variable: 'Ime spremenljivke',
+    },
+    invalidJson: '{{field}} je neveljaven JSON',
+    invalidVariable: 'Neveljavna spremenljivka',
+    authRequired: 'Dovoljenje je potrebno',
+    fieldRequired: '{{field}} je obvezno',
+    rerankModelRequired: 'Preden vklopite Rerank Model, preverite, ali je bil model uspešno konfiguriran v nastavitvah.',
+  },
+  singleRun: {
+    startRun: 'Začni zagnati',
+    running: 'Tek',
+    testRunIteration: 'Ponovitev preskusnega zagona',
+    iteration: 'Ponovitev',
+    back: 'Hrbet',
+    testRun: 'Preskusni zagon',
+  },
+  tabs: {
+    'blocks': 'Bloki',
+    'workflowTool': 'Potek dela',
+    'transform': 'Preoblikovanje',
+    'question-understand': 'Vprašanje razumeti',
+    'builtInTool': 'Vgrajeno',
+    'allTool': 'Ves',
+    'tools': 'Orodja',
+    'logic': 'Logika',
+    'searchBlock': 'Iskalni blok',
+    'noResult': 'Ni najdenega ujemanja',
+    'customTool': 'Običaj',
+    'utilities': 'Utilities',
+    'searchTool': 'Orodje za iskanje',
+  },
+  blocks: {
+    'variable-aggregator': 'Spremenljivi agregator',
+    'code': 'Koda',
+    'parameter-extractor': 'Ekstraktor parametrov',
+    'llm': 'LLM',
+    'knowledge-retrieval': 'Pridobivanje znanja',
+    'answer': 'Odgovoriti',
+    'end': 'Konec',
+    'document-extractor': 'Ekstraktor dokumentov',
+    'assigner': 'Dodeljevalnik spremenljivke',
+    'iteration-start': 'Začetek ponovitve',
+    'template-transform': 'Predloga',
+    'iteration': 'Ponovitev',
+    'start': 'Začetek',
+    'if-else': 'IF/ELSE',
+    'list-operator': 'Operater seznama',
+    'http-request': 'Zahteva HTTP',
+    'variable-assigner': 'Spremenljivi agregator',
+    'question-classifier': 'Klasifikator vprašanj',
+  },
+  blocksAbout: {
+    'document-extractor': 'Uporablja se za razčlenjevanje naloženih dokumentov v besedilno vsebino, ki je zlahka razumljiva LLM.',
+    'list-operator': 'Uporablja se za filtriranje ali razvrščanje vsebine matrike.',
+    'template-transform': 'Pretvorite podatke v niz s sintakso predloge Jinja',
+    'question-classifier': 'Določite pogoje razvrščanja uporabniških vprašanj, LLM lahko določi, kako poteka pogovor na podlagi opisa klasifikacije',
+    'start': 'Določanje začetnih parametrov za zagon poteka dela',
+    'if-else': 'Omogoča razdelitev poteka dela na dve veji glede na pogoje if/else',
+    'knowledge-retrieval': 'Omogoča poizvedovanje po besedilni vsebini, ki je povezana z uporabniškimi vprašanji iz zbirke znanja',
+    'variable-assigner': 'Združite spremenljivke z več vejami v eno spremenljivko za poenoteno konfiguracijo nadaljnjih vozlišč.',
+    'code': 'Izvedite kodo Python ali NodeJS za izvajanje logike po meri',
+    'answer': 'Določanje vsebine odgovora v pogovoru v klepetu',
+    'iteration': 'Izvedite več korakov na predmetu seznama, dokler niso prikazani vsi rezultati.',
+    'http-request': 'Dovoli pošiljanje zahtev strežnika prek protokola HTTP',
+    'end': 'Določanje končne in končne vrste poteka dela',
+    'variable-aggregator': 'Združite spremenljivke z več vejami v eno spremenljivko za poenoteno konfiguracijo nadaljnjih vozlišč.',
+    'parameter-extractor': 'Uporabite LLM za pridobivanje strukturiranih parametrov iz naravnega jezika za klicanje orodij ali zahteve HTTP.',
+    'assigner': 'Vozlišče za dodeljevanje spremenljivk se uporablja za dodeljevanje vrednosti zapisljivim spremenljivkam (kot so spremenljivke pogovora).',
+    'llm': 'Sklicevanje na velike jezikovne modele za odgovarjanje na vprašanja ali obdelavo naravnega jezika',
+  },
+  operator: {
+    zoomOut: 'Pomanjšanje',
+    zoomTo100: 'Povečava na 100 %',
+    zoomToFit: 'Povečaj, da se prilega',
+    zoomIn: 'Povečava',
+    zoomTo50: 'Povečava na 50%',
+  },
+  panel: {
+    helpLink: 'Povezava za pomoč',
+    organizeBlocks: 'Organiziranje blokov',
+    optional: '(neobvezno)',
+    nextStep: 'Naslednji korak',
+    checklist: 'Kontrolni seznam',
+    runThisStep: 'Zaženite ta korak',
+    about: 'Približno',
+    selectNextStep: 'Izberite Naslednji blok',
+    changeBlock: 'Spremeni blok',
+    createdBy: 'Ustvaril',
+    checklistTip: 'Pred objavo se prepričajte, da so vse težave odpravljene',
+    userInputField: 'Uporabniško polje za vnos',
+    checklistResolved: 'Vse težave so odpravljene',
+    addNextStep: 'Dodajanje naslednjega bloka v ta potek dela',
+    change: 'Spremeniti',
+  },
+  nodes: {
+    common: {
+      memory: {
+        conversationRoleName: 'Ime vloge pogovora',
+        memoryTip: 'Nastavitve pomnilnika klepeta',
+        assistant: 'Predpona pomočnika',
+        user: 'Uporabniška predpona',
+        memory: 'Spomin',
+        windowSize: 'Velikost okna',
+      },
+      memories: {
+        tip: 'Pomnilnik klepeta',
+        title: 'Spomine',
+        builtIn: 'Vgrajeno',
+      },
+      outputVars: 'Izhodne spremenljivke',
+      insertVarTip: 'Vstavi spremenljivko',
+    },
+    start: {
+      outputVars: {
+        memories: {
+          content: 'Vsebina sporočila',
+          des: 'Zgodovina pogovorov',
+          type: 'Vrsta sporočila',
+        },
+        query: 'Uporabniški vnos',
+        files: 'Seznam datotek',
+      },
+      required: 'Zahteva',
+      inputField: 'Vnosno polje',
+      noVarTip: 'Nastavitev vhodov, ki jih je mogoče uporabiti v poteku dela',
+      builtInVar: 'Vgrajene spremenljivke',
+    },
+    end: {
+      output: {
+        variable: 'izhodna spremenljivka',
+        type: 'Vrsta izhoda',
+      },
+      type: {
+        'structured': 'Strukturiran',
+        'plain-text': 'Navadno besedilo',
+        'none': 'Nobena',
+      },
+      outputs: 'Izhodov',
+    },
+    answer: {
+      answer: 'Odgovoriti',
+      outputVars: 'Izhodne spremenljivke',
+    },
+    llm: {
+      roleDescription: {
+        assistant: 'Odgovori modela na podlagi sporočil uporabnikov',
+        system: 'Podajte navodila na visoki ravni za pogovor',
+        user: 'Navedite navodila, poizvedbe ali kakršen koli besedilni vnos v model',
+      },
+      resolution: {
+        low: 'Nizek',
+        high: 'Visok',
+        name: 'Resolucija',
+      },
+      outputVars: {
+        usage: 'Informacije o uporabi modela',
+        output: 'Ustvarjanje vsebine',
+      },
+      singleRun: {
+        variable: 'Spremenljivka',
+      },
+      notSetContextInPromptTip: 'Če želite omogočiti funkcijo konteksta, izpolnite kontekstno spremenljivko v PROMPT.',
+      sysQueryInUser: 'sys.query v sporočilu uporabnika je obvezen',
+      model: 'model',
+      files: 'Datoteke',
+      addMessage: 'Dodaj sporočilo',
+      context: 'Kontekstu',
+      variables: 'Spremenljivke',
+      prompt: 'Uren',
+      vision: 'vid',
+      contextTooltip: 'Znanje lahko uvozite kot kontekst',
+    },
+    knowledgeRetrieval: {
+      outputVars: {
+        title: 'Segmentirani naslov',
+        url: 'Segmentirani URL',
+        output: 'Pridobivanje segmentiranih podatkov',
+        icon: 'Segmentirana ikona',
+        metadata: 'Drugi metapodatki',
+        content: 'Segmentirana vsebina',
+      },
+      queryVariable: 'Spremenljivka poizvedbe',
+      knowledge: 'Znanje',
+    },
+    http: {
+      outputVars: {
+        headers: 'JSON seznama glav odgovorov',
+        body: 'Vsebina odgovora',
+        files: 'Seznam datotek',
+        statusCode: 'Koda stanja odgovora',
+      },
+      authorization: {
+        'authorization': 'Dovoljenje',
+        'header': 'Glava',
+        'bearer': 'Nosilec',
+        'api-key-title': 'API ključ',
+        'basic': 'Osnoven',
+        'no-auth': 'Nobena',
+        'custom': 'Običaj',
+        'authorizationType': 'Vrsta dovoljenja',
+        'auth-type': 'Vrsta preverjanja pristnosti',
+        'api-key': 'Ključ API-ja',
+      },
+      timeout: {
+        readPlaceholder: 'Vnos časovne omejitve branja v sekundah',
+        writePlaceholder: 'Vnesite časovno omejitev pisanja v sekundah',
+        writeLabel: 'Časovna omejitev pisanja',
+        connectLabel: 'Časovna omejitev povezave',
+        title: 'Timeout',
+        readLabel: 'Časovna omejitev branja',
+        connectPlaceholder: 'Vnos časovne omejitve povezave v sekundah',
+      },
+      value: 'Vrednost',
+      key: 'Ključ',
+      notStartWithHttp: 'API se mora začeti z http:// ali https://',
+      body: 'Telo',
+      type: 'Vrsta',
+      inputVars: 'Vhodne spremenljivke',
+      bulkEdit: 'Urejanje v velikem obsegu',
+      insertVarPlaceholder: 'vnesite "/" za vstavljanje spremenljivke',
+      api: 'API',
+      keyValueEdit: 'Urejanje ključ-vrednost',
+      binaryFileVariable: 'Spremenljivka binarne datoteke',
+      headers: 'Glave',
+      apiPlaceholder: 'Vnesite URL, vnesite \'/\' vstavi spremenljivko',
+      extractListPlaceholder: 'Vnesite indeks elementa seznama, vnesite \'/\' vstavi spremenljivko',
+      params: 'Params',
+    },
+    code: {
+      inputVars: 'Vhodne spremenljivke',
+      outputVars: 'Izhodne spremenljivke',
+      searchDependencies: 'Odvisnosti iskanja',
+      advancedDependenciesTip: 'Tukaj dodajte nekaj vnaprej naloženih odvisnosti, ki trajajo dlje časa ali niso privzeto vgrajene',
+      advancedDependencies: 'Napredne odvisnosti',
+    },
+    templateTransform: {
+      outputVars: {
+        output: 'Preoblikovana vsebina',
+      },
+      code: 'Koda',
+      inputVars: 'Vhodne spremenljivke',
+      codeSupportTip: 'Podpira samo Jinja2',
+    },
+    ifElse: {
+      comparisonOperator: {
+        'all of': 'vse',
+        'is not': 'ni',
+        'not empty': 'ni prazen',
+        'start with': 'Začnite z',
+        'is': 'Je',
+        'null': 'je nična',
+        'not exists': 'ne obstaja',
+        'contains': 'Vsebuje',
+        'empty': 'je prazen',
+        'exists': 'Obstaja',
+        'in': 'v',
+        'not contains': 'ne vsebuje',
+        'end with': 'Končaj z',
+        'not in': 'ni v',
+        'not null': 'ni nična',
+      },
+      optionName: {
+        video: 'Video',
+        doc: 'Doc',
+        audio: 'Avdio',
+        image: 'Podoba',
+        url: 'Spletni naslov',
+        localUpload: 'Lokalno nalaganje',
+      },
+      and: 'in',
+      else: 'Drugega',
+      enterValue: 'Vnesite vrednost',
+      elseDescription: 'Uporablja se za določanje logike, ki jo je treba izvesti, ko pogoj if ni izpolnjen.',
+      addCondition: 'Dodajanje pogoja',
+      if: 'Če',
+      select: 'Izbrati',
+      selectVariable: 'Izberite spremenljivko ...',
+      conditionNotSetup: 'Pogoj NI nastavljen',
+      addSubVariable: 'Podspremenljivka',
+      notSetVariable: 'Prosimo, najprej nastavite spremenljivko',
+      operator: 'Operaterja',
+      or: 'ali',
+    },
+    variableAssigner: {
+      type: {
+        string: 'Niz',
+        object: 'Predmet',
+        array: 'Matrika',
+        number: 'Številka',
+      },
+      outputVars: {
+        varDescribe: '{{groupName}} izhod',
+      },
+      addGroup: 'Dodajanje skupine',
+      outputType: 'Vrsta izhoda',
+      title: 'Dodeljevanje spremenljivk',
+      noVarTip: 'Seštevanje spremenljivk, ki jih je treba dodeliti',
+      aggregationGroupTip: 'Če omogočite to funkcijo, lahko združevalnik spremenljivk združi več naborov spremenljivk.',
+      aggregationGroup: 'Združevalna skupina',
+      varNotSet: 'Spremenljivka ni nastavljena',
+      setAssignVariable: 'Nastavitev spremenljivke dodelitve',
+    },
+    assigner: {
+      'writeMode': 'Način pisanja',
+      'plus': 'Plus',
+      'variable': 'Spremenljivka',
+      'clear': 'Jasen',
+      'append': 'Dodaj',
+      'assignedVariable': 'Dodeljena spremenljivka',
+      'setVariable': 'Nastavi spremenljivko',
+      'over-write': 'Prepisati',
+      'writeModeTip': 'Način dodajanja: Na voljo samo za spremenljivke polja.',
+    },
+    tool: {
+      outputVars: {
+        files: {
+          transfer_method: 'Način prenosa. Vrednost je remote_url ali local_file',
+          upload_file_id: 'Naloži ID datoteke',
+          type: 'Vrsta podpore. Zdaj podpiramo samo sliko',
+          url: 'URL slike',
+          title: 'Datoteke, ustvarjene z orodjem',
+        },
+        json: 'JSON, ustvarjen z orodjem',
+        text: 'Vsebina, ustvarjena z orodjem',
+      },
+      inputVars: 'Vhodne spremenljivke',
+      toAuthorize: 'Za odobritev',
+    },
+    questionClassifiers: {
+      outputVars: {
+        className: 'Ime razreda',
+      },
+      instruction: 'Navodilo',
+      classNamePlaceholder: 'Napišite ime svojega razreda',
+      addClass: 'Dodajanje razreda',
+      instructionPlaceholder: 'Napišite navodila',
+      topicName: 'Ime teme',
+      topicPlaceholder: 'Napišite ime teme',
+      class: 'Razred',
+      advancedSetting: 'Napredne nastavitve',
+      model: 'model',
+      inputVars: 'Vhodne spremenljivke',
+      instructionTip: 'Vnesite dodatna navodila, ki bodo klasifikatorju vprašanj pomagala bolje razumeti, kako kategorizirati vprašanja.',
+    },
+    parameterExtractor: {
+      addExtractParameterContent: {
+        description: 'Opis',
+        typePlaceholder: 'Vrsta parametra izvlečka',
+        requiredContent: 'Zahtevano se uporablja samo kot referenca za sklepanje modela in ne za obvezno validacijo izhodnega parametra.',
+        required: 'Zahteva',
+        type: 'Vrsta',
+        namePlaceholder: 'Izvleček imena parametra',
+        descriptionPlaceholder: 'Opis parametra izvlečka',
+        name: 'Ime',
+      },
+      isSuccess: 'Je uspeh.Pri uspehu je vrednost 1, pri neuspehu je vrednost 0.',
+      addExtractParameter: 'Dodajanje parametra izvlečka',
+      importFromTool: 'Uvoz iz orodij',
+      reasoningModeTip: 'Izberete lahko ustrezen način sklepanja glede na sposobnost modela, da se odzove na navodila za klicanje funkcij ali pozive.',
+      inputVar: 'Vhodna spremenljivka',
+      advancedSetting: 'Napredne nastavitve',
+      errorReason: 'Razlog za napako',
+      reasoningMode: 'Način sklepanja',
+      instruction: 'Navodilo',
+      instructionTip: 'Vnesite dodatna navodila, ki bodo ekstraktorju parametrov pomagala razumeti, kako izvleči parametre.',
+      extractParametersNotSet: 'Izvleček parametrov ni nastavljen',
+      extractParameters: 'Izvleček parametrov',
+    },
+    iteration: {
+      ErrorMethod: {
+        continueOnError: 'Nadaljuj ob napaki',
+        removeAbnormalOutput: 'Odstranite nenormalen izhod',
+        operationTerminated: 'Prekinjena',
+      },
+      output: 'Izhodne spremenljivke',
+      parallelMode: 'Vzporedni način',
+      MaxParallelismTitle: 'Največji vzporednost',
+      errorResponseMethod: 'Način odziva na napako',
+      parallelModeEnableDesc: 'V vzporednem načinu opravila v iteracijah podpirajo vzporedno izvajanje. To lahko konfigurirate na plošči z lastnostmi na desni.',
+      error_one: '{{štetje}} Napaka',
+      comma: ',',
+      parallelModeUpper: 'VZPOREDNI NAČIN',
+      parallelModeEnableTitle: 'Vzporedni način omogočen',
+      currentIteration: 'Trenutna ponovitev',
+      error_other: '{{štetje}} Napake',
+      input: 'Vhodni',
+      deleteTitle: 'Izbrisati iteracijsko vozlišče?',
+      parallelPanelDesc: 'V vzporednem načinu opravila v iteraciji podpirajo vzporedno izvajanje.',
+      deleteDesc: 'Če izbrišete iteracijsko vozlišče, boste izbrisali vsa podrejena vozlišča',
+      iteration_other: '{{štetje}} Ponovitev',
+      answerNodeWarningDesc: 'Opozorilo vzporednega načina: Vozlišča za odgovore, dodelitve spremenljivk pogovora in trajne operacije branja / pisanja v iteracijah lahko povzročijo izjeme.',
+      MaxParallelismDesc: 'Največja vzporednost se uporablja za nadzor števila nalog, ki se izvajajo hkrati v eni ponovitvi.',
+      iteration_one: '{{štetje}} Ponovitev',
+    },
+    note: {
+      editor: {
+        medium: 'Srednja',
+        openLink: 'Odprt',
+        showAuthor: 'Pokaži avtorja',
+        bold: 'Smel',
+        strikethrough: 'Prečrtano',
+        large: 'Velik',
+        link: 'Povezava',
+        enterUrl: 'Vnesite URL ...',
+        small: 'Majhen',
+        italic: 'Ležeče',
+        invalidUrl: 'Neveljaven URL',
+        unlink: 'Prekini povezavo',
+        placeholder: 'Napišite svojo opombo ...',
+        bulletList: 'Seznam oznak',
+      },
+      addNote: 'Dodaj opombo',
+    },
+    docExtractor: {
+      outputVars: {
+        text: 'Izvlečeno besedilo',
+      },
+      inputVar: 'Vhodna spremenljivka',
+      learnMore: 'Izvedi več',
+      supportFileTypes: 'Podporne vrste datotek: {{types}}.',
+    },
+    listFilter: {
+      outputVars: {
+        result: 'Rezultat filtriranja',
+        first_record: 'Prvi zapis',
+        last_record: 'Zadnji zapis',
+      },
+      extractsCondition: 'Ekstrahiranje elementa N',
+      selectVariableKeyPlaceholder: 'Izberite ključ podspremenljivke',
+      asc: 'ASC',
+      orderBy: 'Naročite po',
+      filterCondition: 'Pogoj filtra',
+      filterConditionKey: 'Ključ pogoja filtra',
+      desc: 'DESC',
+      limit: 'Vrh N',
+      filterConditionComparisonOperator: 'Operator za primerjavo pogojev filtra',
+      inputVar: 'Vhodna spremenljivka',
+      filterConditionComparisonValue: 'Vrednost pogoja filtra',
+    },
+  },
 }
 
 export default translation

+ 4 - 0
web/i18n/tr-TR/common.ts

@@ -591,6 +591,10 @@ const translation = {
     pasteFileLinkInvalid: 'Geçersiz dosya bağlantısı',
     fileExtensionNotSupport: 'Dosya uzantısı desteklenmiyor',
   },
+  license: {
+    expiring_plural: '{{count}} gün içinde sona eriyor',
+    expiring: 'Bir günde sona eriyor',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/tr-TR/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethodTip: 'Bir kimlik doğrulama yöntemi eklemek için lütfen sistem yöneticisine başvurun.',
   sendVerificationCode: 'Doğrulama Kodu Gönder',
   back: 'Geri',
+  licenseExpiredTip: 'Çalışma alanınız için Dify Enterprise lisansının süresi doldu. Dify\'ı kullanmaya devam etmek için lütfen yöneticinizle iletişime geçin.',
+  licenseLostTip: 'Dify lisans sunucusuna bağlanılamadı. Dify\'ı kullanmaya devam etmek için lütfen yöneticinizle iletişime geçin.',
+  licenseInactiveTip: 'Çalışma alanınız için Dify Enterprise lisansı etkin değil. Dify\'ı kullanmaya devam etmek için lütfen yöneticinizle iletişime geçin.',
+  licenseExpired: 'Lisansın Süresi Doldu',
+  licenseLost: 'Lisans Kaybedildi',
+  licenseInactive: 'Lisans Etkin Değil',
 }
 
 export default translation

+ 2 - 0
web/i18n/tr-TR/workflow.ts

@@ -408,6 +408,7 @@ const translation = {
       },
       type: 'Tür',
       binaryFileVariable: 'İkili Dosya Değişkeni',
+      extractListPlaceholder: 'Liste öğesi dizinini girin, \'/\' yazın değişken ekle',
     },
     code: {
       inputVars: 'Giriş Değişkenleri',
@@ -619,6 +620,7 @@ const translation = {
       filterConditionComparisonValue: 'Filtre Koşulu değeri',
       selectVariableKeyPlaceholder: 'Alt değişken anahtarını seçin',
       desc: 'DESC',
+      extractsCondition: 'N öğesini ayıklayın',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/uk-UA/common.ts

@@ -592,6 +592,10 @@ const translation = {
     uploadFromComputerReadError: 'Не вдалося прочитати файл, будь ласка, спробуйте ще раз.',
     uploadFromComputerUploadError: 'Не вдалося завантажити файл, будь ласка, завантажте ще раз.',
   },
+  license: {
+    expiring: 'Термін дії закінчується за один день',
+    expiring_plural: 'Термін дії закінчується за {{count}} днів',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/uk-UA/login.ts

@@ -99,6 +99,12 @@ const translation = {
   noLoginMethodTip: 'Будь ласка, зверніться до адміністратора системи, щоб додати метод автентифікації.',
   resetPasswordDesc: 'Введіть адресу електронної пошти, яку ви використовували для реєстрації на Dify, і ми надішлемо вам електронний лист для скидання пароля.',
   resetPassword: 'Скинути пароль',
+  licenseLostTip: 'Не вдалося підключити сервер ліцензій Dify. Будь ласка, зверніться до свого адміністратора, щоб продовжити користуватися Dify.',
+  licenseExpired: 'Термін дії ліцензії минув',
+  licenseInactive: 'Ліцензія неактивна',
+  licenseLost: 'Ліцензію втрачено',
+  licenseInactiveTip: 'Ліцензія Dify Enterprise для вашої робочої області неактивна. Будь ласка, зверніться до свого адміністратора, щоб продовжити користуватися Dify.',
+  licenseExpiredTip: 'Термін дії ліцензії Dify Enterprise для вашого робочого простору закінчився. Будь ласка, зверніться до свого адміністратора, щоб продовжити користуватися Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/uk-UA/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: 'Тип',
       binaryFileVariable: 'Змінна двійкового файлу',
+      extractListPlaceholder: 'Введіть індекс елемента списку, введіть \'/\' вставити змінну',
     },
     code: {
       inputVars: 'Вхідні змінні',
@@ -618,6 +619,7 @@ const translation = {
       orderBy: 'Замовити по',
       filterConditionComparisonOperator: 'Оператор порівняння умов фільтра',
       filterConditionComparisonValue: 'Значення умови фільтра',
+      extractsCondition: 'Витягніть елемент N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/vi-VN/common.ts

@@ -591,6 +591,10 @@ const translation = {
     uploadFromComputerUploadError: 'Tải lên tệp không thành công, vui lòng tải lên lại.',
     uploadFromComputerReadError: 'Đọc tệp không thành công, vui lòng thử lại.',
   },
+  license: {
+    expiring_plural: 'Hết hạn sau {{count}} ngày',
+    expiring: 'Hết hạn trong một ngày',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/vi-VN/login.ts

@@ -99,6 +99,12 @@ const translation = {
   usePassword: 'Sử dụng mật khẩu',
   resetPassword: 'Đặt lại mật khẩu',
   sendVerificationCode: 'Gửi mã xác minh',
+  licenseInactive: 'Giấy phép không hoạt động',
+  licenseLost: 'Mất giấy phép',
+  licenseInactiveTip: 'Giấy phép Dify Enterprise cho không gian làm việc của bạn không hoạt động. Vui lòng liên hệ với quản trị viên của bạn để tiếp tục sử dụng Dify.',
+  licenseExpired: 'Giấy phép đã hết hạn',
+  licenseExpiredTip: 'Giấy phép Dify Enterprise cho không gian làm việc của bạn đã hết hạn. Vui lòng liên hệ với quản trị viên của bạn để tiếp tục sử dụng Dify.',
+  licenseLostTip: 'Không thể kết nối máy chủ cấp phép Dify. Vui lòng liên hệ với quản trị viên của bạn để tiếp tục sử dụng Dify.',
 }
 
 export default translation

+ 2 - 0
web/i18n/vi-VN/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       binaryFileVariable: 'Biến tệp nhị phân',
       type: 'Kiểu',
+      extractListPlaceholder: 'Nhập chỉ mục mục danh sách, nhập \'/\' chèn biến',
     },
     code: {
       inputVars: 'Biến đầu vào',
@@ -618,6 +619,7 @@ const translation = {
       filterCondition: 'Điều kiện lọc',
       asc: 'ASC',
       filterConditionComparisonOperator: 'Toán tử so sánh điều kiện bộ lọc',
+      extractsCondition: 'Giải nén mục N',
     },
   },
   tracing: {

+ 4 - 0
web/i18n/zh-Hant/common.ts

@@ -591,6 +591,10 @@ const translation = {
     fileExtensionNotSupport: '不支援檔擴展名',
     uploadFromComputerLimit: '上傳文件不能超過 {{size}}',
   },
+  license: {
+    expiring: '將在1天內過期',
+    expiring_plural: '將在 {{count}} 天后過期',
+  },
 }
 
 export default translation

+ 6 - 0
web/i18n/zh-Hant/login.ts

@@ -99,6 +99,12 @@ const translation = {
   back: '返回',
   resetPasswordDesc: '輸入您用於註冊 Dify 的電子郵件,我們將向您發送一封密碼重置電子郵件。',
   usePassword: '使用密碼',
+  licenseExpiredTip: '您的工作區的 Dify Enterprise 許可證已過期。請聯繫您的管理員以繼續使用 Dify。',
+  licenseExpired: '許可證已過期',
+  licenseLost: '許可證丟失',
+  licenseInactive: '許可證處於非活動狀態',
+  licenseInactiveTip: '您的工作區的 Dify Enterprise 許可證處於非活動狀態。請聯繫您的管理員以繼續使用 Dify。',
+  licenseLostTip: '無法連接 Dify 許可證伺服器。請聯繫您的管理員以繼續使用 Dify。',
 }
 
 export default translation

+ 2 - 0
web/i18n/zh-Hant/workflow.ts

@@ -407,6 +407,7 @@ const translation = {
       },
       type: '類型',
       binaryFileVariable: '二進位檔變數',
+      extractListPlaceholder: '輸入清單項索引,鍵入 『/』 插入變數',
     },
     code: {
       inputVars: '輸入變量',
@@ -618,6 +619,7 @@ const translation = {
       selectVariableKeyPlaceholder: 'Select sub variable key (選擇子變數鍵)',
       filterConditionComparisonOperator: 'Filter Condition Comparison 運算符',
       filterConditionKey: '篩選條件鍵',
+      extractsCondition: '提取第 N 項',
     },
   },
   tracing: {