@lobehub/chat 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/locales/ar/chat.json +1 -5
  3. package/locales/ar/components.json +6 -0
  4. package/locales/ar/setting.json +0 -6
  5. package/locales/bg-BG/chat.json +1 -5
  6. package/locales/bg-BG/components.json +6 -0
  7. package/locales/bg-BG/setting.json +0 -6
  8. package/locales/de-DE/chat.json +1 -5
  9. package/locales/de-DE/components.json +6 -0
  10. package/locales/de-DE/setting.json +0 -6
  11. package/locales/en-US/chat.json +1 -5
  12. package/locales/en-US/components.json +6 -0
  13. package/locales/en-US/setting.json +0 -6
  14. package/locales/es-ES/chat.json +1 -5
  15. package/locales/es-ES/components.json +6 -0
  16. package/locales/es-ES/setting.json +0 -6
  17. package/locales/fr-FR/chat.json +1 -5
  18. package/locales/fr-FR/components.json +6 -0
  19. package/locales/fr-FR/setting.json +0 -6
  20. package/locales/it-IT/chat.json +1 -5
  21. package/locales/it-IT/components.json +6 -0
  22. package/locales/it-IT/setting.json +0 -6
  23. package/locales/ja-JP/chat.json +1 -5
  24. package/locales/ja-JP/components.json +6 -0
  25. package/locales/ja-JP/setting.json +0 -6
  26. package/locales/ko-KR/chat.json +1 -5
  27. package/locales/ko-KR/components.json +6 -0
  28. package/locales/ko-KR/setting.json +0 -6
  29. package/locales/nl-NL/chat.json +1 -5
  30. package/locales/nl-NL/components.json +6 -0
  31. package/locales/nl-NL/setting.json +0 -6
  32. package/locales/pl-PL/chat.json +1 -5
  33. package/locales/pl-PL/components.json +6 -0
  34. package/locales/pl-PL/setting.json +0 -6
  35. package/locales/pt-BR/chat.json +1 -5
  36. package/locales/pt-BR/components.json +6 -0
  37. package/locales/pt-BR/setting.json +0 -6
  38. package/locales/ru-RU/chat.json +1 -5
  39. package/locales/ru-RU/components.json +6 -0
  40. package/locales/ru-RU/setting.json +0 -6
  41. package/locales/tr-TR/chat.json +1 -5
  42. package/locales/tr-TR/components.json +6 -0
  43. package/locales/tr-TR/setting.json +0 -6
  44. package/locales/vi-VN/chat.json +1 -5
  45. package/locales/vi-VN/components.json +6 -0
  46. package/locales/vi-VN/setting.json +0 -6
  47. package/locales/zh-CN/chat.json +2 -6
  48. package/locales/zh-CN/components.json +6 -0
  49. package/locales/zh-CN/setting.json +0 -6
  50. package/locales/zh-TW/chat.json +1 -5
  51. package/locales/zh-TW/components.json +6 -0
  52. package/locales/zh-TW/setting.json +0 -6
  53. package/package.json +1 -1
  54. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx +18 -2
  55. package/src/{app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/DragUpload.tsx → components/DragUpload/index.tsx} +14 -31
  56. package/src/layout/GlobalProvider/Locale.tsx +19 -2
  57. package/src/locales/default/chat.ts +0 -4
  58. package/src/locales/default/components.ts +6 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.6.2](https://github.com/lobehub/lobe-chat/compare/v1.6.1...v1.6.2)
6
+
7
+ <sup>Released on **2024-07-21**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Fix dayjs render on server.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **misc**: Fix dayjs render on server, closes [#3278](https://github.com/lobehub/lobe-chat/issues/3278) ([8c08dd5](https://github.com/lobehub/lobe-chat/commit/8c08dd5))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
30
+ ### [Version 1.6.1](https://github.com/lobehub/lobe-chat/compare/v1.6.0...v1.6.1)
31
+
32
+ <sup>Released on **2024-07-19**</sup>
33
+
34
+ #### ♻ Code Refactoring
35
+
36
+ - **misc**: Refactor the DragUpload.
37
+
38
+ <br/>
39
+
40
+ <details>
41
+ <summary><kbd>Improvements and Fixes</kbd></summary>
42
+
43
+ #### Code refactoring
44
+
45
+ - **misc**: Refactor the DragUpload, closes [#3263](https://github.com/lobehub/lobe-chat/issues/3263) ([19186eb](https://github.com/lobehub/lobe-chat/commit/19186eb))
46
+
47
+ </details>
48
+
49
+ <div align="right">
50
+
51
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
52
+
53
+ </div>
54
+
5
55
  ## [Version 1.6.0](https://github.com/lobehub/lobe-chat/compare/v1.5.5...v1.6.0)
6
56
 
7
57
  <sup>Released on **2024-07-19**</sup>
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "تحميل المستند",
132
132
  "actionTooltip": "تحميل الصورة",
133
- "disabled": "النموذج الحالي لا يدعم التعرف على الرؤية، يرجى تغيير النموذج المستخدم",
134
- "dragDesc": "اسحب الملفات إلى هنا، يدعم تحميل عدة صور. اضغط على Shift لإرسال الصور مباشرة",
135
- "dragFileDesc": "اسحب الصور والملفات هنا لدعم تحميل صور وملفات متعددة. اضغط باستمرار على Shift لإرسال صورة أو ملف مباشرة",
136
- "dragFileTitle": "تحميل المستند",
137
- "dragTitle": "تحميل الصورة"
133
+ "disabled": "النموذج الحالي لا يدعم التعرف على الرؤية، يرجى تغيير النموذج المستخدم"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "اسحب الملفات هنا، يدعم تحميل عدة صور.",
4
+ "dragFileDesc": "اسحب الصور والملفات هنا، يدعم تحميل عدة صور وملفات.",
5
+ "dragFileTitle": "تحميل الملفات",
6
+ "dragTitle": "تحميل الصور"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "نموذج مخصص، الإعداد الافتراضي يدعم الاستدعاء الوظيفي والتعرف البصري، يرجى التحقق من قدرة النموذج على القيام بذلك بناءً على الحالة الفعلية",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} نموذج",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "النموذج"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Загрузите файл",
132
132
  "actionTooltip": "Качи изображение",
133
- "disabled": "Текущият модел не поддържа визуално разпознаване. Моля, превключи моделите, за да използваш тази функция.",
134
- "dragDesc": "Плъзни и пусни файлове тук, поддържа се качване на няколко изображения. Задръж Shift, за да изпратиш изображения директно.",
135
- "dragFileDesc": "Перетащите сюда изображения и файлы, чтобы можно было загрузить несколько изображений и файлов. Удерживайте нажатой клавишу Shift, чтобы отправить изображение или файл напрямую.",
136
- "dragFileTitle": "Загрузите файл",
137
- "dragTitle": "Качи изображение"
133
+ "disabled": "Текущият модел не поддържа визуално разпознаване. Моля, превключи моделите, за да използваш тази функция."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Плъзнете файлове тук, поддържа качване на множество изображения.",
4
+ "dragFileDesc": "Плъзнете изображения и файлове тук, поддържа качване на множество изображения и файлове.",
5
+ "dragFileTitle": "Качване на файл",
6
+ "dragTitle": "Качване на изображение"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Потребителски модел, по подразбиране поддържа функционалност за функционални обаждания и визуално разпознаване, моля, потвърдете наличието на тези възможности спрямо реалните условия",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} модел",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Модел"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Laden Sie die Datei hoch",
132
132
  "actionTooltip": "Bild hochladen",
133
- "disabled": "Das aktuelle Modell unterstützt keine visuelle Erkennung. Bitte wechseln Sie das Modell, um es zu verwenden.",
134
- "dragDesc": "Dateien hierher ziehen, um mehrere Bilder hochzuladen. Halte die Umschalttaste gedrückt, um Bilder direkt zu senden.",
135
- "dragFileDesc": "Ziehen Sie Bilder und Dateien hierher, um das Hochladen mehrerer Bilder und Dateien zu unterstützen. Halten Sie die Umschalttaste gedrückt, um ein Bild oder eine Datei direkt zu senden.",
136
- "dragFileTitle": "Laden Sie die Datei hoch",
137
- "dragTitle": "Bild hochladen"
133
+ "disabled": "Das aktuelle Modell unterstützt keine visuelle Erkennung. Bitte wechseln Sie das Modell, um es zu verwenden."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Ziehen Sie Dateien hierher, um mehrere Bilder hochzuladen.",
4
+ "dragFileDesc": "Ziehen Sie Bilder und Dateien hierher, um mehrere Bilder und Dateien hochzuladen.",
5
+ "dragFileTitle": "Dateien hochladen",
6
+ "dragTitle": "Bilder hochladen"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Benutzerdefiniertes Modell, standardmäßig unterstützt es sowohl Funktionsaufrufe als auch visuelle Erkennung. Bitte überprüfen Sie die Verfügbarkeit dieser Fähigkeiten basierend auf den tatsächlichen Gegebenheiten.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} Modell",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Modell"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Update File",
132
132
  "actionTooltip": "Upload Image",
133
- "disabled": "The current model does not support visual recognition. Please switch models to use this feature.",
134
- "dragDesc": "Drag and drop files here, support uploading multiple images. Hold down Shift to send images directly.",
135
- "dragFileDesc": "Drag pictures and files here to support uploading multiple pictures and files. Hold down Shift to send an image or file directly.",
136
- "dragFileTitle": "Update File",
137
- "dragTitle": "Upload Image"
133
+ "disabled": "The current model does not support visual recognition. Please switch models to use this feature."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Drag and drop files here to upload multiple images.",
4
+ "dragFileDesc": "Drag and drop images and files here to upload multiple images and files.",
5
+ "dragFileTitle": "Upload Files",
6
+ "dragTitle": "Upload Images"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Custom model, by default, supports both function call and visual recognition. Please verify the availability of the above capabilities based on actual situations.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} model",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Model"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Sube el archivo",
132
132
  "actionTooltip": "Subir imagen",
133
- "disabled": "El modelo actual no admite reconocimiento visual. Por favor, cambia de modelo para usar esta función",
134
- "dragDesc": "Arrastra y suelta archivos aquí, admite la carga de varias imágenes. Mantén presionada la tecla Shift para enviar las imágenes directamente.",
135
- "dragFileDesc": "Arrastre imágenes y archivos aquí para admitir la carga de varias imágenes y archivos. Mantenga presionada la tecla Mayús para enviar una imagen o un archivo directamente.",
136
- "dragFileTitle": "Sube el archivo",
137
- "dragTitle": "Subir imagen"
133
+ "disabled": "El modelo actual no admite reconocimiento visual. Por favor, cambia de modelo para usar esta función"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Arrastra los archivos aquí, se admite la carga de múltiples imágenes.",
4
+ "dragFileDesc": "Arrastra imágenes y archivos aquí, se admite la carga de múltiples imágenes y archivos.",
5
+ "dragFileTitle": "Subir archivo",
6
+ "dragTitle": "Subir imagen"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Modelo personalizado: admite llamadas de función y reconocimiento visual. Verifique la disponibilidad de estas capacidades según sea necesario.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} modelo",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Modelo"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Télécharger le fichier",
132
132
  "actionTooltip": "Télécharger une image",
133
- "disabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle. Veuillez changer de modèle pour utiliser cette fonctionnalité.",
134
- "dragDesc": "Faites glisser les fichiers ici pour télécharger plusieurs images. Maintenez la touche Maj enfoncée pour envoyer directement les images.",
135
- "dragFileDesc": "Faites glisser les images et les fichiers ici pour prendre en charge le téléchargement de plusieurs images et fichiers. Maintenez la touche Shift enfoncée pour envoyer directement une image ou un fichier.",
136
- "dragFileTitle": "Télécharger le fichier",
137
- "dragTitle": "Télécharger une image"
133
+ "disabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle. Veuillez changer de modèle pour utiliser cette fonctionnalité."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Faites glisser des fichiers ici, plusieurs images peuvent être téléchargées.",
4
+ "dragFileDesc": "Faites glisser des images et des fichiers ici, plusieurs images et fichiers peuvent être téléchargés.",
5
+ "dragFileTitle": "Télécharger des fichiers",
6
+ "dragTitle": "Télécharger des images"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Modèle personnalisé par défaut prenant en charge à la fois les appels de fonction et la reconnaissance visuelle. Veuillez vérifier la disponibilité de ces capacités en fonction de vos besoins réels.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "Modèle {{provider}}",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Modèle"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Carica il file",
132
132
  "actionTooltip": "Carica immagine",
133
- "disabled": "Il modello attuale non supporta il riconoscimento visivo, si prega di cambiare modello prima di utilizzarlo",
134
- "dragDesc": "Trascina i file qui, supporta il caricamento di più immagini. Tieni premuto Shift per inviare direttamente le immagini",
135
- "dragFileDesc": "Trascina qui immagini e file per supportare il caricamento di più immagini e file. Tieni premuto Maiusc per inviare direttamente un'immagine o un file",
136
- "dragFileTitle": "Carica il file",
137
- "dragTitle": "Carica immagine"
133
+ "disabled": "Il modello attuale non supporta il riconoscimento visivo, si prega di cambiare modello prima di utilizzarlo"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Trascina i file qui, supporta il caricamento di più immagini.",
4
+ "dragFileDesc": "Trascina immagini e file qui, supporta il caricamento di più immagini e file.",
5
+ "dragFileTitle": "Carica file",
6
+ "dragTitle": "Carica immagini"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Modello personalizzato: di default supporta sia la chiamata di funzioni che il riconoscimento visivo. Verifica l'effettiva disponibilità di tali funzionalità.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "Modello {{provider}}",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Modello"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "ファイルをアップロードする",
132
132
  "actionTooltip": "画像をアップロード",
133
- "disabled": "現在のモデルはビジュアル認識をサポートしていません。モデルを切り替えて使用してください",
134
- "dragDesc": "ファイルをここにドラッグしてください。複数の画像をアップロードできます。Shift キーを押しながら画像を直接送信することもできます。",
135
- "dragFileDesc": "複数の写真やファイルのアップロードをサポートするには、ここに写真やファイルをドラッグします。 Shift キーを押しながら画像またはファイルを直接送信します。",
136
- "dragFileTitle": "ファイルをアップロードする",
137
- "dragTitle": "画像をアップロード"
133
+ "disabled": "現在のモデルはビジュアル認識をサポートしていません。モデルを切り替えて使用してください"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "ここにファイルをドラッグ&ドロップしてください。複数の画像のアップロードがサポートされています。",
4
+ "dragFileDesc": "ここに画像やファイルをドラッグ&ドロップしてください。複数の画像やファイルのアップロードがサポートされています。",
5
+ "dragFileTitle": "ファイルをアップロード",
6
+ "dragTitle": "画像をアップロード"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "カスタムモデル、デフォルトでは関数呼び出しとビジョン認識の両方をサポートしています。上記機能の有効性を確認してください。",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}}モデル",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "モデル"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "파일 업로드",
132
132
  "actionTooltip": "이미지 업로드",
133
- "disabled": "현재 모델은 시각 인식을 지원하지 않습니다. 모델을 전환한 후 사용해주세요.",
134
- "dragDesc": "여기로 파일을 끌어다 놓거나 여러 이미지를 업로드할 수 있습니다. Shift를 누른 채로 이미지를 직접 보내기",
135
- "dragFileDesc": "여러 사진과 파일 업로드를 지원하려면 여기로 사진과 파일을 드래그하세요. 이미지나 파일을 직접 보내려면 Shift 키를 누르세요",
136
- "dragFileTitle": "파일 업로드",
137
- "dragTitle": "이미지 업로드"
133
+ "disabled": "현재 모델은 시각 인식을 지원하지 않습니다. 모델을 전환한 후 사용해주세요."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "여기에 파일을 드래그하여 여러 이미지를 업로드할 수 있습니다.",
4
+ "dragFileDesc": "여기에 이미지와 파일을 드래그하여 여러 이미지와 파일을 업로드할 수 있습니다.",
5
+ "dragFileTitle": "파일 업로드",
6
+ "dragTitle": "이미지 업로드"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "사용자 정의 모델, 기본적으로 함수 호출 및 시각 인식을 모두 지원하며, 실제 기능을 확인하세요",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} 모델",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "모델"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Upload het bestand",
132
132
  "actionTooltip": "Upload afbeelding",
133
- "disabled": "Het huidige model ondersteunt geen visuele herkenning. Schakel over naar een ander model om dit te gebruiken.",
134
- "dragDesc": "Sleep bestanden hierheen om meerdere afbeeldingen te uploaden. Houd Shift ingedrukt om afbeeldingen direct te verzenden",
135
- "dragFileDesc": "Sleep afbeeldingen en bestanden hierheen om het uploaden van meerdere afbeeldingen en bestanden te ondersteunen. Houd Shift ingedrukt om een ​​afbeelding of bestand rechtstreeks te verzenden",
136
- "dragFileTitle": "Upload het bestand",
137
- "dragTitle": "Upload afbeelding"
133
+ "disabled": "Het huidige model ondersteunt geen visuele herkenning. Schakel over naar een ander model om dit te gebruiken."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Sleep bestanden hierheen om meerdere afbeeldingen te uploaden.",
4
+ "dragFileDesc": "Sleep afbeeldingen en bestanden hierheen om meerdere afbeeldingen en bestanden te uploaden.",
5
+ "dragFileTitle": "Bestanden uploaden",
6
+ "dragTitle": "Afbeeldingen uploaden"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Custom model, by default, supports both function call and visual recognition. Please verify the availability of the above capabilities based on actual needs.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} model",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Model"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Prześlij plik",
132
132
  "actionTooltip": "Prześlij obraz",
133
- "disabled": "Obecny model nie obsługuje rozpoznawania wizyjnego. Proszę przełączyć model.",
134
- "dragDesc": "Przeciągnij pliki tutaj, obsługiwane jest przesyłanie wielu obrazów. Naciśnij klawisz Shift, aby wysłać obraz bezpośrednio",
135
- "dragFileDesc": "Przeciągnij zdjęcia i pliki tutaj, aby umożliwić przesyłanie wielu zdjęć i plików. Przytrzymaj klawisz Shift, aby bezpośrednio wysłać obraz lub plik",
136
- "dragFileTitle": "Prześlij plik",
137
- "dragTitle": "Prześlij obraz"
133
+ "disabled": "Obecny model nie obsługuje rozpoznawania wizyjnego. Proszę przełączyć model."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Przeciągnij pliki tutaj, aby przesłać wiele obrazów.",
4
+ "dragFileDesc": "Przeciągnij obrazy i pliki tutaj, aby przesłać wiele obrazów i plików.",
5
+ "dragFileTitle": "Prześlij plik",
6
+ "dragTitle": "Prześlij obraz"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Niestandardowy model, domyślnie obsługujący zarówno wywołania funkcji, jak i rozpoznawanie wizualne. Proszę zweryfikować możliwość użycia tych funkcji w praktyce.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} model",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Model"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Enviar arquivo",
132
132
  "actionTooltip": "Enviar Imagem",
133
- "disabled": "O modelo atual não suporta reconhecimento visual. Por favor, altere o modelo antes de usar.",
134
- "dragDesc": "Arraste os arquivos aqui, suporta o envio de várias imagens. Pressione Shift para enviar as imagens diretamente.",
135
- "dragFileDesc": "Arraste fotos e arquivos aqui para suportar o upload de várias fotos e arquivos. Mantenha pressionada a tecla Shift para enviar uma imagem ou arquivo diretamente.",
136
- "dragFileTitle": "Enviar arquivo",
137
- "dragTitle": "Enviar Imagem"
133
+ "disabled": "O modelo atual não suporta reconhecimento visual. Por favor, altere o modelo antes de usar."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Arraste os arquivos para cá, suportando o upload de várias imagens.",
4
+ "dragFileDesc": "Arraste imagens e arquivos para cá, suportando o upload de várias imagens e arquivos.",
5
+ "dragFileTitle": "Enviar arquivo",
6
+ "dragTitle": "Enviar imagem"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Modelo personalizado, por padrão, suporta chamadas de função e reconhecimento visual. Por favor, verifique a disponibilidade dessas capacidades de acordo com a situação real.",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} modelo",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Modelo"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Загрузите файл",
132
132
  "actionTooltip": "Загрузить изображение",
133
- "disabled": "Текущая модель не поддерживает визуальное распознавание. Пожалуйста, выберите другую модель.",
134
- "dragDesc": "Перетащите файлы сюда, поддерживается загрузка нескольких изображений. Удерживайте Shift для отправки изображений",
135
- "dragFileDesc": "Перетащите сюда изображения и файлы, чтобы можно было загрузить несколько изображений и файлов. Удерживайте нажатой клавишу Shift, чтобы отправить изображение или файл напрямую",
136
- "dragFileTitle": "Загрузите файл",
137
- "dragTitle": "Загрузить изображение"
133
+ "disabled": "Текущая модель не поддерживает визуальное распознавание. Пожалуйста, выберите другую модель."
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Перетащите файлы сюда, поддерживается загрузка нескольких изображений.",
4
+ "dragFileDesc": "Перетащите изображения и файлы сюда, поддерживается загрузка нескольких изображений и файлов.",
5
+ "dragFileTitle": "Загрузить файл",
6
+ "dragTitle": "Загрузить изображение"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Пользовательская модель по умолчанию поддерживает как вызов функций, так и распознавание изображений. Пожалуйста, проверьте доступность указанных возможностей в вашем случае",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} модель",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Модель"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Dosyayı Yükle",
132
132
  "actionTooltip": "Resim Yükle",
133
- "disabled": "Geçerli model görüntü tanıma desteğini desteklemiyor, lütfen modeli değiştirerek kullanın",
134
- "dragDesc": "Dosyaları buraya sürükleyip bırakın, birden fazla resim yüklemeyi destekler. Resimleri doğrudan göndermek için Shift tuşunu basılı tutun.",
135
- "dragFileDesc": "Birden fazla resim ve dosya yüklemeyi desteklemek için resimleri ve dosyaları buraya sürükleyin. Bir görüntüyü veya dosyayı doğrudan göndermek için Shift tuşunu basılı tutun.",
136
- "dragFileTitle": "Dosyayı Yükle",
137
- "dragTitle": "Resim Yükle"
133
+ "disabled": "Geçerli model görüntü tanıma desteğini desteklemiyor, lütfen modeli değiştirerek kullanın"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Dosyaları buraya sürükleyin, birden fazla resim yüklemeyi destekler.",
4
+ "dragFileDesc": "Resimleri ve dosyaları buraya sürükleyin, birden fazla resim ve dosya yüklemeyi destekler.",
5
+ "dragFileTitle": "Dosya Yükle",
6
+ "dragTitle": "Resim Yükle"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Özel model, varsayılan olarak hem fonksiyon çağrısını hem de görüntü tanımayı destekler, yukarıdaki yeteneklerin kullanılabilirliğini doğrulamak için lütfen gerçek durumu kontrol edin",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} Model",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Model"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "Tải lên tập tin",
132
132
  "actionTooltip": "Tải lên hình ảnh",
133
- "disabled": "Mô hình hiện tại không hỗ trợ nhận diện hình ảnh, vui lòng chuyển đổi mô hình trước khi sử dụng",
134
- "dragDesc": "Kéo và thả tệp vào đây, hỗ trợ tải lên nhiều hình ảnh. Giữ phím Shift để gửi hình ảnh trực tiếp",
135
- "dragFileDesc": "Kéo ảnh và tệp vào đây để hỗ trợ tải lên nhiều ảnh và tệp. Giữ phím Shift để gửi hình ảnh hoặc tập tin trực tiếp",
136
- "dragFileTitle": "Tải lên tập tin",
137
- "dragTitle": "Tải lên hình ảnh"
133
+ "disabled": "Mô hình hiện tại không hỗ trợ nhận diện hình ảnh, vui lòng chuyển đổi mô hình trước khi sử dụng"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "Kéo và thả tệp vào đây, hỗ trợ tải lên nhiều hình ảnh.",
4
+ "dragFileDesc": "Kéo và thả hình ảnh và tệp vào đây, hỗ trợ tải lên nhiều hình ảnh và tệp.",
5
+ "dragFileTitle": "Tải lên tệp",
6
+ "dragTitle": "Tải lên hình ảnh"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "Mô hình tùy chỉnh, mặc định hỗ trợ cả cuộc gọi hàm và nhận diện hình ảnh, vui lòng xác minh khả năng sử dụng của chúng theo tình hình cụ thể",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "Mô hình {{provider}}",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "Mô hình"
220
214
  },
221
215
  "presencePenalty": {
@@ -100,6 +100,7 @@
100
100
  "export": "导出话题"
101
101
  },
102
102
  "checkOpenNewTopic": "是否开启新话题?",
103
+ "checkSaveCurrentMessages": "是否保存当前会话为话题?",
103
104
  "confirmRemoveAll": "即将删除全部话题,删除后将不可恢复,请谨慎操作。",
104
105
  "confirmRemoveTopic": "即将删除该话题,删除后将不可恢复,请谨慎操作。",
105
106
  "confirmRemoveUnstarred": "即将删除未收藏话题,删除后将不可恢复,请谨慎操作。",
@@ -113,7 +114,6 @@
113
114
  "openNewTopic": "开启新话题",
114
115
  "removeAll": "删除全部话题",
115
116
  "removeUnstarred": "删除未收藏话题",
116
- "checkSaveCurrentMessages": "是否保存当前会话为话题?",
117
117
  "saveCurrentMessages": "将当前会话保存为话题",
118
118
  "searchPlaceholder": "搜索话题...",
119
119
  "title": "话题"
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "上传文件",
132
132
  "actionTooltip": "上传图片",
133
- "disabled": "当前模型不支持视觉识别和文件分析,请切换模型后使用",
134
- "dragDesc": "拖拽文件到这里,支持上传多个图片。按住 Shift 直接发送图片",
135
- "dragFileDesc": "拖拽图片和文件到这里,支持上传多个图片和文件。按住 Shift 直接发送图片或文件",
136
- "dragFileTitle": "上传文件",
137
- "dragTitle": "上传图片"
133
+ "disabled": "当前模型不支持视觉识别和文件分析,请切换模型后使用"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "拖拽文件到这里,支持上传多个图片。",
4
+ "dragFileDesc": "拖拽图片和文件到这里,支持上传多个图片和文件。",
5
+ "dragFileTitle": "上传文件",
6
+ "dragTitle": "上传图片"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "自定义模型,默认设定同时支持函数调用与视觉识别,请根据实际情况验证上述能力的可用性",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} 模型",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "模型"
220
214
  },
221
215
  "presencePenalty": {
@@ -130,10 +130,6 @@
130
130
  "upload": {
131
131
  "actionFiletip": "上傳文件",
132
132
  "actionTooltip": "上傳圖片",
133
- "disabled": "當前模型不支援視覺識別,請切換模型後使用",
134
- "dragDesc": "拖拽文件到這裡,支持上傳多個圖片。按住 Shift 直接發送圖片",
135
- "dragFileDesc": "拖曳圖片和文件至此,支援上傳多張圖片和文件。按住 Shift 直接傳送圖片或文件",
136
- "dragFileTitle": "上傳文件",
137
- "dragTitle": "上傳圖片"
133
+ "disabled": "當前模型不支援視覺識別,請切換模型後使用"
138
134
  }
139
135
  }
@@ -1,4 +1,10 @@
1
1
  {
2
+ "DragUpload": {
3
+ "dragDesc": "拖曳檔案到這裡,支援上傳多個圖片。",
4
+ "dragFileDesc": "拖曳圖片和檔案到這裡,支援上傳多個圖片和檔案。",
5
+ "dragFileTitle": "上傳檔案",
6
+ "dragTitle": "上傳圖片"
7
+ },
2
8
  "ModelSelect": {
3
9
  "featureTag": {
4
10
  "custom": "自訂模型,預設支援函式呼叫與視覺辨識,請根據實際情況驗證上述能力的可用性",
@@ -210,12 +210,6 @@
210
210
  },
211
211
  "model": {
212
212
  "desc": "{{provider}} 模型",
213
- "list": {
214
- "gpt-3.5-turbo": "GPT 3.5",
215
- "gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
216
- "gpt-4": "GPT 4",
217
- "gpt-4-32k": "GPT 4 (32K)"
218
- },
219
213
  "title": "模型"
220
214
  },
221
215
  "presencePenalty": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -7,6 +7,7 @@ import { memo, useEffect, useState } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { Center, Flexbox } from 'react-layout-kit';
9
9
 
10
+ import DragUpload from '@/components/DragUpload';
10
11
  import StopLoadingIcon from '@/components/StopLoading';
11
12
  import SaveTopic from '@/features/ChatInput/Topic';
12
13
  import { useSendMessage } from '@/features/ChatInput/useSend';
@@ -19,7 +20,6 @@ import { useUserStore } from '@/store/user';
19
20
  import { modelProviderSelectors, preferenceSelectors } from '@/store/user/selectors';
20
21
  import { isMacOS } from '@/utils/platform';
21
22
 
22
- import DragUpload from './DragUpload';
23
23
  import { LocalFiles } from './LocalFiles';
24
24
  import SendMore from './SendMore';
25
25
 
@@ -77,11 +77,27 @@ const Footer = memo<FooterProps>(({ setExpand }) => {
77
77
 
78
78
  const model = useAgentStore(agentSelectors.currentAgentModel);
79
79
 
80
+ const enabledFiles = useUserStore(modelProviderSelectors.isModelEnabledFiles(model));
81
+
80
82
  const [useCmdEnterToSend, canUpload] = useUserStore((s) => [
81
83
  preferenceSelectors.useCmdEnterToSend(s),
82
84
  modelProviderSelectors.isModelEnabledUpload(model)(s),
83
85
  ]);
84
86
 
87
+ const uploadFile = useFileStore((s) => s.uploadFile);
88
+
89
+ const uploadImages = async (fileList: FileList | undefined) => {
90
+ if (!fileList || fileList.length === 0) return;
91
+
92
+ const pools = Array.from(fileList).map(async (file) => {
93
+ // skip none-file items
94
+ if (!file.type.startsWith('image') && !enabledFiles) return;
95
+ await uploadFile(file);
96
+ });
97
+
98
+ await Promise.all(pools);
99
+ };
100
+
85
101
  const sendMessage = useSendMessage();
86
102
 
87
103
  const [isMac, setIsMac] = useState<boolean>();
@@ -128,7 +144,7 @@ const Footer = memo<FooterProps>(({ setExpand }) => {
128
144
  <Flexbox align={'center'} gap={8} horizontal style={{ overflow: 'hidden' }}>
129
145
  {canUpload && (
130
146
  <>
131
- <DragUpload />
147
+ <DragUpload enabledFiles={enabledFiles} onUploadFiles={uploadImages} />
132
148
  <LocalFiles />
133
149
  </>
134
150
  )}
@@ -7,12 +7,6 @@ import { createPortal } from 'react-dom';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { Center, Flexbox } from 'react-layout-kit';
9
9
 
10
- import { useAgentStore } from '@/store/agent';
11
- import { agentSelectors } from '@/store/agent/selectors';
12
- import { useFileStore } from '@/store/file';
13
- import { useUserStore } from '@/store/user';
14
- import { modelProviderSelectors } from '@/store/user/selectors';
15
-
16
10
  const DRAGGING_ROOT_ID = 'dragging-root';
17
11
  const getContainer = () => document.querySelector(`#${DRAGGING_ROOT_ID}`);
18
12
  const BLOCK_SIZE = 64;
@@ -33,10 +27,12 @@ const useStyles = createStyles(({ css, token }) => {
33
27
  height: 100%;
34
28
  padding: 16px;
35
29
 
36
- border: 1.5px dashed ${token.colorBorder};
30
+ border: 1.5px dashed #fff;
37
31
  border-radius: ${token.borderRadiusLG}px;
38
32
  `,
39
33
  desc: css`
34
+ font-size: 14px;
35
+ line-height: 22px;
40
36
  color: #fff;
41
37
  `,
42
38
  icon: css`
@@ -77,33 +73,20 @@ const handleDragOver = (e: DragEvent) => {
77
73
  }
78
74
  };
79
75
 
80
- const DragUpload = memo(() => {
76
+ interface DragUploadProps {
77
+ enabledFiles?: boolean;
78
+ onUploadFiles: (files?: FileList) => Promise<void>;
79
+ }
80
+
81
+ const DragUpload = memo<DragUploadProps>(({ enabledFiles = true, onUploadFiles }) => {
81
82
  const { styles, theme } = useStyles();
82
- const { t } = useTranslation('chat');
83
+ const { t } = useTranslation('components');
83
84
  const [isDragging, setIsDragging] = useState(false);
84
85
  // When a file is dragged to a different area, the 'dragleave' event may be triggered,
85
86
  // causing isDragging to be mistakenly set to false.
86
87
  // to fix this issue, use a counter to ensure the status change only when drag event left the browser window .
87
88
  const dragCounter = useRef(0);
88
89
 
89
- const uploadFile = useFileStore((s) => s.uploadFile);
90
-
91
- const model = useAgentStore(agentSelectors.currentAgentModel);
92
-
93
- const enabledFiles = useUserStore(modelProviderSelectors.isModelEnabledFiles(model));
94
-
95
- const uploadImages = async (fileList: FileList | undefined) => {
96
- if (!fileList || fileList.length === 0) return;
97
-
98
- const pools = Array.from(fileList).map(async (file) => {
99
- // skip none-file items
100
- if (!file.type.startsWith('image') && !enabledFiles) return;
101
- await uploadFile(file);
102
- });
103
-
104
- await Promise.all(pools);
105
- };
106
-
107
90
  const handleDragEnter = (e: DragEvent) => {
108
91
  if (!e.dataTransfer?.items || e.dataTransfer.items.length === 0) return;
109
92
 
@@ -148,7 +131,7 @@ const DragUpload = memo(() => {
148
131
  const files = e.dataTransfer?.files;
149
132
 
150
133
  // upload files
151
- uploadImages(files);
134
+ onUploadFiles(files);
152
135
  }
153
136
  };
154
137
 
@@ -156,7 +139,7 @@ const DragUpload = memo(() => {
156
139
  // get files from clipboard
157
140
  const files = event.clipboardData?.files;
158
141
 
159
- uploadImages(files);
142
+ onUploadFiles(files);
160
143
  };
161
144
 
162
145
  useEffect(() => {
@@ -229,10 +212,10 @@ const DragUpload = memo(() => {
229
212
  </Flexbox>
230
213
  <Flexbox align={'center'} gap={8} style={{ textAlign: 'center' }}>
231
214
  <Flexbox className={styles.title}>
232
- {t(enabledFiles ? 'upload.dragFileTitle' : 'upload.dragTitle')}
215
+ {t(enabledFiles ? 'DragUpload.dragFileTitle' : 'DragUpload.dragTitle')}
233
216
  </Flexbox>
234
217
  <Flexbox className={styles.desc}>
235
- {t(enabledFiles ? 'upload.dragFileDesc' : 'upload.dragDesc')}
218
+ {t(enabledFiles ? 'DragUpload.dragFileDesc' : 'DragUpload.dragDesc')}
236
219
  </Flexbox>
237
220
  </Flexbox>
238
221
  </Center>
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { ConfigProvider } from 'antd';
4
+ import dayjs from 'dayjs';
4
5
  import { PropsWithChildren, memo, useEffect, useState } from 'react';
5
6
  import { isRtlLang } from 'rtl-detect';
6
7
 
@@ -21,12 +22,24 @@ const Locale = memo<LocaleLayoutProps>(({ children, defaultLang, antdLocale }) =
21
22
  // if run on server side, init i18n instance everytime
22
23
  if (isOnServerSide) {
23
24
  i18n.init();
25
+
26
+ // load the dayjs locale
27
+ // if (lang) {
28
+ // const dayJSLocale = require(`dayjs/locale/${lang!.toLowerCase()}.js`);
29
+ //
30
+ // dayjs.locale(dayJSLocale);
31
+ // }
24
32
  } else {
25
33
  // if on browser side, init i18n instance only once
26
34
  if (!i18n.instance.isInitialized)
27
35
  // console.debug('locale', lang);
28
- i18n.init().then(() => {
29
- // console.debug('inited.');
36
+ i18n.init().then(async () => {
37
+ if (!lang) return;
38
+
39
+ // load default lang
40
+ const dayJSLocale = await import(`dayjs/locale/${lang!.toLowerCase()}.js`);
41
+
42
+ dayjs.locale(dayJSLocale.default);
30
43
  });
31
44
  }
32
45
 
@@ -39,6 +52,10 @@ const Locale = memo<LocaleLayoutProps>(({ children, defaultLang, antdLocale }) =
39
52
 
40
53
  const newLocale = await getAntdLocale(lng);
41
54
  setLocale(newLocale);
55
+
56
+ const dayJSLocale = await import(`dayjs/locale/${lng.toLowerCase()}.js`);
57
+
58
+ dayjs.locale(dayJSLocale.default);
42
59
  };
43
60
 
44
61
  i18n.instance.on('languageChanged', handleLang);
@@ -132,9 +132,5 @@ export default {
132
132
  actionFiletip: '上传文件',
133
133
  actionTooltip: '上传图片',
134
134
  disabled: '当前模型不支持视觉识别和文件分析,请切换模型后使用',
135
- dragDesc: '拖拽文件到这里,支持上传多个图片。按住 Shift 直接发送图片',
136
- dragFileDesc: '拖拽图片和文件到这里,支持上传多个图片和文件。按住 Shift 直接发送图片或文件',
137
- dragFileTitle: '上传文件',
138
- dragTitle: '上传图片',
139
135
  },
140
136
  };
@@ -1,4 +1,10 @@
1
1
  export default {
2
+ DragUpload: {
3
+ dragDesc: '拖拽文件到这里,支持上传多个图片。',
4
+ dragFileDesc: '拖拽图片和文件到这里,支持上传多个图片和文件。',
5
+ dragFileTitle: '上传文件',
6
+ dragTitle: '上传图片',
7
+ },
2
8
  ModelSelect: {
3
9
  featureTag: {
4
10
  custom: '自定义模型,默认设定同时支持函数调用与视觉识别,请根据实际情况验证上述能力的可用性',