@lobehub/chat 0.118.8 → 0.118.10

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 0.118.10](https://github.com/lobehub/lobe-chat/compare/v0.118.9...v0.118.10)
6
+
7
+ <sup>Released on **2024-01-03**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Add chat defaultNS.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **misc**: Add chat defaultNS, closes [#929](https://github.com/lobehub/lobe-chat/issues/929) ([94c2aa1](https://github.com/lobehub/lobe-chat/commit/94c2aa1))
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 0.118.9](https://github.com/lobehub/lobe-chat/compare/v0.118.8...v0.118.9)
31
+
32
+ <sup>Released on **2024-01-03**</sup>
33
+
34
+ #### 💄 Styles
35
+
36
+ - **misc**: Add leaving protect alert.
37
+
38
+ <br/>
39
+
40
+ <details>
41
+ <summary><kbd>Improvements and Fixes</kbd></summary>
42
+
43
+ #### Styles
44
+
45
+ - **misc**: Add leaving protect alert, closes [#927](https://github.com/lobehub/lobe-chat/issues/927) ([ea1d0c0](https://github.com/lobehub/lobe-chat/commit/ea1d0c0))
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 0.118.8](https://github.com/lobehub/lobe-chat/compare/v0.118.7...v0.118.8)
6
56
 
7
57
  <sup>Released on **2024-01-03**</sup>
@@ -0,0 +1,54 @@
1
+ # LobeChat New Locale Guide
2
+
3
+ LobeChat uses [lobe-i18n](https://github.com/lobehub/lobe-cli-toolbox/tree/master/packages/lobe-i18n) as the i18n solution, which allows for quick addition of new language support in the application.
4
+
5
+ ## Adding New Language Support
6
+
7
+ To add new language internationalization support in LobeChat (for example, adding Vietnamese `vi-VN`), please follow the steps below:
8
+
9
+ ### Step 1: Update the Internationalization Configuration File
10
+
11
+ 1. Open the `.i18nrc.js` file. You can find this file in the project's root directory.
12
+ 2. Add the new language code to the configuration file. For example, to add Vietnamese, you need to add `'vi-VN'` to the configuration file.
13
+
14
+ ```js
15
+ module.exports = {
16
+ // ... Other configurations
17
+
18
+ outputLocales: [
19
+ 'zh-TW',
20
+ 'en-US',
21
+ 'ru-RU',
22
+ 'ja-JP',
23
+ // ...Other languages
24
+
25
+ 'vi-VN', // Add 'vi-VN' to the array
26
+ ],
27
+ };
28
+ ```
29
+
30
+ ### Step 2: Automatically Translate Language Files
31
+
32
+ LobeChat uses the `lobe-i18n` tool to automatically translate language files, so manual updating of i18n files is not required.
33
+
34
+ Run the following command to automatically translate and generate the Vietnamese language files:
35
+
36
+ ```bash
37
+ npm run i18n
38
+ ```
39
+
40
+ This will utilize the `lobe-i18n` tool to process the language files.
41
+
42
+ ### Step 3: Submit and Review Your Changes
43
+
44
+ Once you have completed the above steps, you need to submit your changes and create a Pull Request.
45
+
46
+ Ensure that you follow LobeChat's contribution guidelines and provide a necessary description to explain your changes. For example, refer to a similar previous Pull Request [#759](https://github.com/lobehub/lobe-chat/pull/759).
47
+
48
+ ### Additional Information
49
+
50
+ - After submitting your Pull Request, please patiently wait for the project maintainers to review it.
51
+ - If you encounter any issues, you can reach out to the LobeChat community for assistance.
52
+ - For more accurate results, ensure that your Pull Request is based on the latest main branch and stays in sync with the main branch.
53
+
54
+ By following the above steps, you can successfully add new language support to LobeChat and ensure that the application provides a localized experience for more users.
@@ -0,0 +1,54 @@
1
+ # LobeChat 新语种添加指南
2
+
3
+ LobeChat 使用 [lobe-i18n](https://github.com/lobehub/lobe-cli-toolbox/tree/master/packages/lobe-i18n) 作为 i18n 解决方案,可以在应用中快速添加新的语言支持。
4
+
5
+ ## 添加新的语言支持
6
+
7
+ 为了在 LobeChat 中添加新的语言国际化支持,(例如添加越南语 `vi-VN`),请按照以下步骤操作:
8
+
9
+ ### 步骤 1: 更新国际化配置文件
10
+
11
+ 1. 打开 `.i18nrc.js` 文件。你可以在项目的根目录中找到此文件。
12
+ 2. 将新的语言代码添加到配置文件中。例如,为了添加越南语,你需要在配置文件中添加 `'vi-VN'`。
13
+
14
+ ```js
15
+ module.exports = {
16
+ // ... 其他配置
17
+
18
+ outputLocales: [
19
+ 'zh-TW',
20
+ 'en-US',
21
+ 'ru-RU',
22
+ 'ja-JP',
23
+ // ...其他语言
24
+
25
+ 'vi-VN', // 在数组中添加 'vi-VN'
26
+ ],
27
+ };
28
+ ```
29
+
30
+ ### 步骤 2: 自动翻译语言文件
31
+
32
+ LobeChat 使用 `lobe-i18n` 工具来自动翻译语言文件,因此不需要手动更新 i18n 文件。
33
+
34
+ 运行以下命令来自动翻译并生成越南语的语言文件:
35
+
36
+ ```bash
37
+ npm run i18n
38
+ ```
39
+
40
+ 这将会利用 `lobe-i18n` 工具来处理语言文件。
41
+
42
+ ### 步骤 3: 提交和审查你的更改
43
+
44
+ 一旦你完成了上述步骤,你需要提交你的更改并创建一个 Pull Request。
45
+
46
+ 请确保你遵循了 LobeChat 的贡献指南,并提供必要的描述来说明你的更改。例如,参考之前的类似 Pull Request [#759](https://github.com/lobehub/lobe-chat/pull/759)。
47
+
48
+ ### 附加信息
49
+
50
+ - 提交你的 Pull Request 后,请耐心等待项目维护人员的审查。
51
+ - 如果遇到任何问题,可以联系 LobeChat 社区寻求帮助。
52
+ - 为了更精确的结果,确保你的 Pull Request 是基于最新的主分支,并且与主分支保持同步。
53
+
54
+ 通过遵循上述步骤,你可以成功为 LobeChat 添加新的语言支持,并且确保应用能够为更多用户提供本地化的体验。
package/docs/Home.md CHANGED
@@ -12,6 +12,8 @@ LobeChat is a open-source, extensible ([Function Calling][fc-url]), high-perform
12
12
 
13
13
  ![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)
14
14
 
15
+ [New Locale Guide](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale) | [新语种添加指南](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale.zh-CN)
16
+
15
17
  <!-- DOCS LIST -->
16
18
 
17
19
  ### 🤯 Usage
@@ -23,31 +25,31 @@ LobeChat is a open-source, extensible ([Function Calling][fc-url]), high-perform
23
25
 
24
26
  ### 🛳 Self-Hosting
25
27
 
26
- - [Data Statistics](https://github.com/lobehub/lobe-chat/wiki/Analytics) | [数据统计](https://github.com/lobehub/lobe-chat/wiki/Analytics.zh-CN)
27
- - [Deploying with Azure OpenAI](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI) | [使用 Azure OpenAI 部署](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI.zh-CN)
28
- - [Docker Deployment Guide](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment) | [Docker 部署指引](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment.zh-CN)
29
28
  - [Environment Variables](https://github.com/lobehub/lobe-chat/wiki/Environment-Variable) | [环境变量](https://github.com/lobehub/lobe-chat/wiki/Environment-Variable.zh-CN)
29
+ - [Docker Deployment Guide](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment) | [Docker 部署指引](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment.zh-CN)
30
+ - [Deploying with Azure OpenAI](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI) | [使用 Azure OpenAI 部署](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI.zh-CN)
30
31
  - [Upstream Sync](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync) | [自部署保持更新](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN)
32
+ - [Data Statistics](https://github.com/lobehub/lobe-chat/wiki/Analytics) | [数据统计](https://github.com/lobehub/lobe-chat/wiki/Analytics.zh-CN)
31
33
 
32
34
  <br/>
33
35
 
34
36
  ### ⌨️ Development
35
37
 
36
38
  - [Technical Development Getting Started Guide](https://github.com/lobehub/lobe-chat/wiki/index) | [技术开发上手指南](https://github.com/lobehub/lobe-chat/wiki/index.zh-CN)
39
+ - [Environment Setup Guide](https://github.com/lobehub/lobe-chat/wiki/Steup-Development) | [开发环境设置](https://github.com/lobehub/lobe-chat/wiki/Steup-Development.zh-CN)
37
40
  - [Architecture Design](https://github.com/lobehub/lobe-chat/wiki/Architecture) | [架构设计](https://github.com/lobehub/lobe-chat/wiki/Architecture.zh-CN)
38
- - [Conversation API Implementation Logic](https://github.com/lobehub/lobe-chat/wiki/Chat-API) | [会话 API 实现逻辑](https://github.com/lobehub/lobe-chat/wiki/Chat-API.zh-CN)
39
- - [Data Store Selector](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors) | [数据存储取数模块](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors.zh-CN)
40
41
  - [Directory Structure](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure) | [目录架构](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure.zh-CN)
41
- - [Environment Setup Guide](https://github.com/lobehub/lobe-chat/wiki/Steup-Development) | [环境设置指南](https://github.com/lobehub/lobe-chat/wiki/Steup-Development.zh-CN)
42
+ - [Data Store Selector](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors) | [数据存储取数模块](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors.zh-CN)
43
+ - [Conversation API Implementation Logic](https://github.com/lobehub/lobe-chat/wiki/Chat-API) | [会话 API 实现逻辑](https://github.com/lobehub/lobe-chat/wiki/Chat-API.zh-CN)
42
44
  - [How to Develop a New Feature](https://github.com/lobehub/lobe-chat/wiki/Feature-Development) | [如何开发一个新功能](https://github.com/lobehub/lobe-chat/wiki/Feature-Development.zh-CN)
43
- - [Resources and References](https://github.com/lobehub/lobe-chat/wiki/Resources) | [资源与参考](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN)
44
45
  - [Testing Guide](https://github.com/lobehub/lobe-chat/wiki/Test) | [测试指南](https://github.com/lobehub/lobe-chat/wiki/Test.zh-CN)
46
+ - [Resources and References](https://github.com/lobehub/lobe-chat/wiki/Resources) | [资源与参考](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN)
45
47
 
46
48
  <br/>
47
49
 
48
50
  ### 🤖 Agents
49
51
 
50
- - [Agent Index and Submit](https://github.com/lobehub/lobe-chat-agents) | [助手索引与提交](https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md)
52
+ - [Agent Index and Submit](https://github.com/lobehub/lobe-chat-agents) | [助手市场与提交](https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md)
51
53
 
52
54
  <br/>
53
55
 
package/docs/_Sidebar.md CHANGED
@@ -6,44 +6,46 @@
6
6
 
7
7
  <!-- DOCS LIST -->
8
8
 
9
+ [New Locale Guide](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale) | [新语种添加指南](https://github.com/lobehub/lobe-chat/wiki/Add-New-Locale.zh-CN)
10
+
9
11
  #### 🤯 Usage
10
12
 
11
- - [Custom Agents Guide](https://github.com/lobehub/lobe-chat/wiki/Usage-Agents) | [中文](https://github.com/lobehub/lobe-chat/wiki/Usage-Agents.zh-CN)
12
- - [Topic Guide](https://github.com/lobehub/lobe-chat/wiki/Usage-Topics) | [中文](https://github.com/lobehub/lobe-chat/wiki/Usage-Topics.zh-CN)
13
+ - [Custom Agents Guide](https://github.com/lobehub/lobe-chat/wiki/Usage-Agents) | [自定义助手指南](https://github.com/lobehub/lobe-chat/wiki/Usage-Agents.zh-CN)
14
+ - [Topic Guide](https://github.com/lobehub/lobe-chat/wiki/Usage-Topics) | [话题指南](https://github.com/lobehub/lobe-chat/wiki/Usage-Topics.zh-CN)
13
15
 
14
16
  #### 🛳 Self-Hosting
15
17
 
16
- - [Data Statistics](https://github.com/lobehub/lobe-chat/wiki/Analytics) | [中文](https://github.com/lobehub/lobe-chat/wiki/Analytics.zh-CN)
17
- - [Deploying with Azure OpenAI](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI) | [中文](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI.zh-CN)
18
- - [Docker Deployment Guide](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment) | [中文](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment.zh-CN)
19
18
  - [Environment Variables](https://github.com/lobehub/lobe-chat/wiki/Environment-Variable) | [中文](https://github.com/lobehub/lobe-chat/wiki/Environment-Variable.zh-CN)
20
- - [Upstream Sync](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync) | [中文](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN)
19
+ - [Docker Deployment Guide](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment) | [Docker 部署指引](https://github.com/lobehub/lobe-chat/wiki/Docker-Deployment.zh-CN)
20
+ - [Deploying with Azure OpenAI](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI) | [使用 Azure OpenAI 部署](https://github.com/lobehub/lobe-chat/wiki/Deploy-with-Azure-OpenAI.zh-CN)
21
+ - [Upstream Sync](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync) | [自部署保持更新](https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN)
22
+ - [Data Statistics](https://github.com/lobehub/lobe-chat/wiki/Analytics) | [数据统计](https://github.com/lobehub/lobe-chat/wiki/Analytics.zh-CN)
21
23
 
22
24
  #### ⌨️ Development
23
25
 
24
- - [Technical Development Getting Started Guide](https://github.com/lobehub/lobe-chat/wiki/index) | [中文](https://github.com/lobehub/lobe-chat/wiki/index.zh-CN)
25
- - [Architecture Design](https://github.com/lobehub/lobe-chat/wiki/Architecture) | [中文](https://github.com/lobehub/lobe-chat/wiki/Architecture.zh-CN)
26
- - [Conversation API Implementation Logic](https://github.com/lobehub/lobe-chat/wiki/Chat-API) | [中文](https://github.com/lobehub/lobe-chat/wiki/Chat-API.zh-CN)
27
- - [Data Store Selector](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors) | [中文](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors.zh-CN)
28
- - [Directory Structure](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure) | [中文](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure.zh-CN)
29
- - [Environment Setup Guide](https://github.com/lobehub/lobe-chat/wiki/Steup-Development) | [中文](https://github.com/lobehub/lobe-chat/wiki/Steup-Development.zh-CN)
30
- - [How to Develop a New Feature](https://github.com/lobehub/lobe-chat/wiki/Feature-Development) | [中文](https://github.com/lobehub/lobe-chat/wiki/Feature-Development.zh-CN)
31
- - [Resources and References](https://github.com/lobehub/lobe-chat/wiki/Resources) | [中文](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN)
26
+ - [Technical Development Getting Started Guide](https://github.com/lobehub/lobe-chat/wiki/index) | [技术开发上手指南](https://github.com/lobehub/lobe-chat/wiki/index.zh-CN)
27
+ - [Environment Setup Guide](https://github.com/lobehub/lobe-chat/wiki/Steup-Development) | [开发环境设置](https://github.com/lobehub/lobe-chat/wiki/Steup-Development.zh-CN)
28
+ - [Architecture Design](https://github.com/lobehub/lobe-chat/wiki/Architecture) | [架构设计](https://github.com/lobehub/lobe-chat/wiki/Architecture.zh-CN)
29
+ - [Directory Structure](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure) | [目录架构](https://github.com/lobehub/lobe-chat/wiki/Folder-Structure.zh-CN)
30
+ - [Data Store Selector](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors) | [数据存储取数模块](https://github.com/lobehub/lobe-chat/wiki/Data-Store-Selectors.zh-CN)
31
+ - [Conversation API Implementation Logic](https://github.com/lobehub/lobe-chat/wiki/Chat-API) | [会话 API 实现逻辑](https://github.com/lobehub/lobe-chat/wiki/Chat-API.zh-CN)
32
+ - [How to Develop a New Feature](https://github.com/lobehub/lobe-chat/wiki/Feature-Development) | [如何开发一个新功能](https://github.com/lobehub/lobe-chat/wiki/Feature-Development.zh-CN)
32
33
  - [Testing Guide](https://github.com/lobehub/lobe-chat/wiki/Test) | [中文](https://github.com/lobehub/lobe-chat/wiki/Test.zh-CN)
34
+ - [Resources and References](https://github.com/lobehub/lobe-chat/wiki/Resources) | [资源与参考](https://github.com/lobehub/lobe-chat/wiki/Resources.zh-CN)
33
35
 
34
36
  #### 🤖 Agents
35
37
 
36
- - [Agent Index and Submit](https://github.com/lobehub/lobe-chat-agents) | [中文](https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md)
38
+ - [Agent Index and Submit](https://github.com/lobehub/lobe-chat-agents) | [助手市场与提交](https://github.com/lobehub/lobe-chat-agents/blob/main/README.zh-CN.md)
37
39
 
38
40
  #### 🧩 Plugins
39
41
 
40
- - [Plugin Development Guide](https://github.com/lobehub/lobe-chat/wiki/Plugin-Development) | [中文](https://github.com/lobehub/lobe-chat/wiki/Plugin-Development.zh-CN)
41
- - [Plugin Index and Submit](https://github.com/lobehub/lobe-chat-plugins) | [中文](https://github.com/lobehub/lobe-chat-plugins/blob/main/README.zh-CN.md)
42
- - [Plugin SDK Docs](https://chat-plugin-sdk.lobehub.com) | [中文](https://chat-plugin-sdk.lobehub.com)
42
+ - [Plugin Development Guide](https://github.com/lobehub/lobe-chat/wiki/Plugin-Development) | [插件开发指南](https://github.com/lobehub/lobe-chat/wiki/Plugin-Development.zh-CN)
43
+ - [Plugin Index and Submit](https://github.com/lobehub/lobe-chat-plugins) | [插件索引与提交](https://github.com/lobehub/lobe-chat-plugins/blob/main/README.zh-CN.md)
44
+ - [Plugin SDK Docs](https://chat-plugin-sdk.lobehub.com) | [插件 SDK 文档](https://chat-plugin-sdk.lobehub.com)
43
45
 
44
46
  #### 📊 Others
45
47
 
46
- - [Lighthouse Reports](https://github.com/lobehub/lobe-chat/wiki/Lighthouse) | [中文](https://github.com/lobehub/lobe-chat/wiki/Lighthouse.zh-CN)
48
+ - [Lighthouse Reports](https://github.com/lobehub/lobe-chat/wiki/Lighthouse) | [Lighthouse 测试报告](https://github.com/lobehub/lobe-chat/wiki/Lighthouse.zh-CN)
47
49
 
48
50
  <!-- DOCS LIST -->
49
51
 
@@ -6,6 +6,25 @@
6
6
  "response": {
7
7
  "400": "Entschuldigung, der Server versteht Ihre Anfrage nicht. Bitte überprüfen Sie die Richtigkeit Ihrer Anfrageparameter",
8
8
  "401": "Entschuldigung, der Server hat Ihre Anfrage abgelehnt. Möglicherweise aufgrund unzureichender Berechtigungen oder fehlender gültiger Authentifizierung",
9
+ "406": "Entschuldigung, der Server kann die Anfrage aufgrund der Eigenschaften des angeforderten Inhalts nicht erfüllen",
10
+ "407": "Entschuldigung, Sie müssen sich zuerst authentifizieren, um mit dieser Anfrage fortzufahren",
11
+ "408": "Entschuldigung, der Server hat beim Warten auf die Anfrage eine Zeitüberschreitung. Bitte überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es erneut",
12
+ "409": "Entschuldigung, die Anfrage konnte aufgrund eines Konflikts nicht verarbeitet werden, möglicherweise weil der Zustand der Ressource nicht mit der Anfrage kompatibel ist",
13
+ "410": "Entschuldigung, die angeforderte Ressource wurde dauerhaft entfernt und kann nicht gefunden werden",
14
+ "411": "Entschuldigung, der Server kann die Anfrage ohne gültige Inhaltslänge nicht verarbeiten",
15
+ "412": "Entschuldigung, Ihre Anfrage erfüllt die Bedingungen auf Serverseite nicht und kann nicht abgeschlossen werden",
16
+ "413": "Entschuldigung, Ihre Anfragedaten sind zu groß und können vom Server nicht verarbeitet werden",
17
+ "414": "Entschuldigung, die URI Ihrer Anfrage ist zu lang und kann vom Server nicht verarbeitet werden",
18
+ "415": "Entschuldigung, der Server kann das angeforderte Medienformat nicht verarbeiten",
19
+ "416": "Entschuldigung, der Server kann Ihren Anforderungen nicht entsprechen",
20
+ "417": "Entschuldigung, der Server kann Ihre Erwartungen nicht erfüllen",
21
+ "422": "Entschuldigung, Ihre Anfrage ist syntaktisch korrekt, aber aufgrund semantischer Fehler kann nicht geantwortet werden",
22
+ "423": "Entschuldigung, die angeforderte Ressource ist gesperrt",
23
+ "424": "Entschuldigung, aufgrund eines früheren Fehlers kann die aktuelle Anfrage nicht abgeschlossen werden",
24
+ "426": "Entschuldigung, der Server verlangt, dass Ihr Client auf eine höhere Protokollversion aktualisiert wird",
25
+ "428": "Entschuldigung, der Server verlangt Voraussetzungen und fordert, dass Ihre Anfrage die richtigen Bedingungsköpfe enthält",
26
+ "431": "Entschuldigung, der Header Ihrer Anfrage ist zu groß und kann vom Server nicht verarbeitet werden",
27
+ "451": "Entschuldigung, aus rechtlichen Gründen verweigert der Server die Bereitstellung dieser Ressource",
9
28
  "403": "Entschuldigung, der Server hat Ihre Anfrage abgelehnt. Sie haben keine Berechtigung, auf diesen Inhalt zuzugreifen",
10
29
  "404": "Entschuldigung, der Server konnte die angeforderte Seite oder Ressource nicht finden. Bitte überprüfen Sie die Richtigkeit Ihrer URL",
11
30
  "405": "Entschuldigung, der Server unterstützt die von Ihnen verwendete Anfragemethode nicht. Bitte überprüfen Sie die Richtigkeit Ihrer Anfragemethode",
@@ -9,6 +9,25 @@
9
9
  "403": "Sorry, the server has rejected your request. You do not have permission to access this content.",
10
10
  "404": "Sorry, the server cannot find the page or resource you requested. Please make sure your URL is correct.",
11
11
  "405": "Sorry, the server does not support the request method you are using. Please make sure your request method is correct.",
12
+ "406": "Sorry, the server cannot complete the request based on the characteristics of the content you requested",
13
+ "407": "Sorry, you need to authenticate the proxy before continuing with this request",
14
+ "408": "Sorry, the server timed out while waiting for the request, please check your network connection and try again",
15
+ "409": "Sorry, the request cannot be processed due to a conflict, possibly because the resource state is incompatible with the request",
16
+ "410": "Sorry, the resource you requested has been permanently removed and cannot be found",
17
+ "411": "Sorry, the server cannot process the request without a valid content length",
18
+ "412": "Sorry, your request does not meet the server's conditions and cannot be completed",
19
+ "413": "Sorry, your request data is too large for the server to process",
20
+ "414": "Sorry, the URI of your request is too long for the server to process",
21
+ "415": "Sorry, the server cannot process the media format attached to the request",
22
+ "416": "Sorry, the server cannot satisfy the range of your request",
23
+ "417": "Sorry, the server cannot meet your expectations",
24
+ "422": "Sorry, your request is in the correct format, but due to semantic errors, it cannot be responded to",
25
+ "423": "Sorry, the resource you requested is locked",
26
+ "424": "Sorry, the current request cannot be completed due to a previous request failure",
27
+ "426": "Sorry, the server requires your client to upgrade to a higher protocol version",
28
+ "428": "Sorry, the server requires a precondition, and requests that your request contain the correct conditional header",
29
+ "431": "Sorry, the header fields of your request are too large for the server to process",
30
+ "451": "Sorry, the server refuses to provide this resource due to legal reasons",
12
31
  "429": "Sorry, your request is too frequent and the server is a bit tired. Please try again later.",
13
32
  "500": "Sorry, the server seems to be experiencing some difficulties and is temporarily unable to complete your request. Please try again later.",
14
33
  "502": "Sorry, the server seems to be lost and is temporarily unable to provide service. Please try again later.",
@@ -9,7 +9,26 @@
9
9
  "403": "Lo sentimos, el servidor ha rechazado su solicitud. No tiene permiso para acceder a este contenido",
10
10
  "404": "Lo sentimos, el servidor no puede encontrar la página o recurso solicitado. Por favor, verifique si la URL es correcta",
11
11
  "405": "Lo sentimos, el servidor no admite el método de solicitud que está utilizando. Por favor, verifique si el método de solicitud es correcto",
12
- "429": "Lo sentimos, ha realizado demasiadas solicitudes. El servidor está un poco cansado. Por favor, inténtelo de nuevo más tarde",
12
+ "406": "Lo sentimos, el servidor no puede completar la solicitud basándose en las características de contenido que ha proporcionado",
13
+ "407": "Lo sentimos, debe autenticarse con el proxy antes de continuar con esta solicitud",
14
+ "408": "Lo sentimos, el servidor ha agotado el tiempo de espera mientras esperaba la solicitud. Por favor, verifique su conexión de red e inténtelo de nuevo",
15
+ "409": "Lo sentimos, la solicitud no se puede procesar debido a un conflicto, posiblemente porque el estado del recurso es incompatible con la solicitud",
16
+ "410": "Lo sentimos, el recurso solicitado ha sido eliminado permanentemente y no se puede encontrar",
17
+ "411": "Lo sentimos, el servidor no puede procesar la solicitud porque no incluye una longitud de contenido válida",
18
+ "412": "Lo sentimos, su solicitud no cumple con las condiciones del servidor y no se puede completar",
19
+ "413": "Lo sentimos, su solicitud es demasiado grande para ser procesada por el servidor",
20
+ "414": "Lo sentimos, la URI de su solicitud es demasiado larga para ser procesada por el servidor",
21
+ "415": "Lo sentimos, el servidor no puede procesar el formato de medios adjunto en la solicitud",
22
+ "416": "Lo sentimos, el servidor no puede satisfacer el rango de su solicitud",
23
+ "417": "Lo sentimos, el servidor no puede cumplir con sus expectativas",
24
+ "422": "Lo sentimos, su solicitud tiene el formato correcto, pero debido a errores semánticos no puede ser procesada",
25
+ "423": "Lo sentimos, el recurso solicitado está bloqueado",
26
+ "424": "Lo sentimos, debido a una solicitud previa fallida, la solicitud actual no se puede completar",
27
+ "426": "Lo sentimos, el servidor requiere que su cliente se actualice a una versión de protocolo más alta",
28
+ "428": "Lo sentimos, el servidor requiere una condición previa y solicita que su solicitud incluya encabezados de condición correctos",
29
+ "429": "Lo sentimos, ha realizado demasiadas solicitudes y el servidor está un poco cansado. Por favor, inténtelo de nuevo más tarde",
30
+ "431": "Lo sentimos, el campo de encabezado de su solicitud es demasiado grande para ser procesado por el servidor",
31
+ "451": "Lo sentimos, el servidor se niega a proporcionar este recurso debido a razones legales",
13
32
  "500": "Lo sentimos, el servidor parece estar experimentando dificultades y no puede completar su solicitud en este momento. Por favor, inténtelo de nuevo más tarde",
14
33
  "502": "Lo sentimos, el servidor parece estar desorientado y no puede proporcionar servicio en este momento. Por favor, inténtelo de nuevo más tarde",
15
34
  "503": "Lo sentimos, el servidor no puede procesar su solicitud en este momento, posiblemente debido a una sobrecarga o mantenimiento. Por favor, inténtelo de nuevo más tarde",
@@ -9,6 +9,26 @@
9
9
  "403": "Désolé, le serveur a refusé votre requête. Vous n'avez pas l'autorisation d'accéder à ce contenu",
10
10
  "404": "Désolé, le serveur n'a pas pu trouver la page ou la ressource demandée. Veuillez vérifier l'URL",
11
11
  "405": "Désolé, le serveur ne prend pas en charge la méthode de requête que vous utilisez. Veuillez vérifier votre méthode de requête",
12
+ "406": "Désolé, le serveur n'a pas pu répondre à la demande en raison des caractéristiques de contenu spécifiées",
13
+ "407": "Désolé, une authentification de proxy est requise pour poursuivre cette demande",
14
+ "408": "Désolé, le serveur a expiré en attendant la demande, veuillez vérifier votre connexion réseau et réessayer",
15
+ "409": "Désolé, la demande ne peut être traitée en raison d'un conflit, peut-être que l'état de la ressource est incompatible avec la demande",
16
+ "410": "Désolé, la ressource demandée a été définitivement supprimée et est introuvable",
17
+ "411": "Désolé, le serveur ne peut pas traiter une demande sans une longueur de contenu valide",
18
+ "412": "Désolé, votre demande ne remplit pas les conditions requises par le serveur pour être traitée",
19
+ "413": "Désolé, votre demande contient une quantité de données trop importante pour être traitée par le serveur",
20
+ "414": "Désolé, l'URI de votre demande est trop longue pour être traitée par le serveur",
21
+ "415": "Désolé, le serveur ne peut pas traiter le format de média inclus dans la demande",
22
+ "416": "Désolé, le serveur ne peut pas satisfaire la plage de la demande",
23
+ "417": "Désolé, le serveur ne peut pas satisfaire vos attentes",
24
+ "422": "Désolé, votre demande est correctement formatée, mais contient des erreurs sémantiques qui empêchent une réponse",
25
+ "423": "Désolé, la ressource demandée est verrouillée",
26
+ "424": "Désolé, en raison d'une demande précédente infructueuse, la demande actuelle ne peut pas être complétée",
27
+ "426": "Désolé, le serveur exige que votre client soit mis à niveau vers une version de protocole supérieure",
28
+ "428": "Désolé, le serveur exige une condition préalable, votre demande doit inclure des en-têtes de condition corrects",
29
+ "431": "Désolé, les en-têtes de votre demande sont trop volumineux pour être traités par le serveur",
30
+ "451": "Désolé, pour des raisons légales, le serveur refuse de fournir cette ressource",
31
+
12
32
  "429": "Désolé, votre requête est trop fréquente et le serveur est un peu fatigué. Veuillez réessayer plus tard",
13
33
  "500": "Désolé, le serveur semble rencontrer des difficultés et ne peut temporairement pas traiter votre requête. Veuillez réessayer plus tard",
14
34
  "502": "Désolé, le serveur semble perdu et ne peut temporairement pas fournir de service. Veuillez réessayer plus tard",
@@ -14,6 +14,25 @@
14
14
  "502": "Spiacenti, il server sembra smarrito e non può fornire servizio al momento. Riprova più tardi",
15
15
  "503": "Spiacenti, il server non può elaborare la tua richiesta al momento, probabilmente a causa di sovraccarico o manutenzione in corso. Riprova più tardi",
16
16
  "504": "Spiacenti, il server non ha ricevuto risposta dal server upstream. Riprova più tardi",
17
+ "406": "Spiacenti, il server non è in grado di completare la richiesta in base alle caratteristiche del contenuto richiesto",
18
+ "407": "Spiacenti, è necessario autenticarsi come proxy prima di poter continuare la richiesta",
19
+ "408": "Spiacenti, il server ha superato il tempo di attesa per la richiesta, controlla la connessione di rete e riprova",
20
+ "409": "Spiacenti, la richiesta non può essere elaborata a causa di un conflitto, probabilmente a causa di uno stato delle risorse incompatibile con la richiesta",
21
+ "410": "Spiacenti, la risorsa richiesta è stata rimossa in modo permanente e non può essere trovata",
22
+ "411": "Spiacenti, il server non può elaborare una richiesta senza una lunghezza del contenuto valida",
23
+ "412": "Spiacenti, la tua richiesta non soddisfa le condizioni sul lato server e non può essere completata",
24
+ "413": "Spiacenti, la dimensione dei dati della tua richiesta è troppo grande per il server da gestire",
25
+ "414": "Spiacenti, l'URI della tua richiesta è troppo lungo per il server da gestire",
26
+ "415": "Spiacenti, il server non può gestire il formato dei media allegato alla richiesta",
27
+ "416": "Spiacenti, il server non può soddisfare l'intervallo richiesto",
28
+ "417": "Spiacenti, il server non può soddisfare le aspettative della richiesta",
29
+ "422": "Spiacenti, la tua richiesta è formattata correttamente, ma a causa di errori semantici non può essere elaborata",
30
+ "423": "Spiacenti, la risorsa richiesta è bloccata",
31
+ "424": "Spiacenti, a causa di un precedente fallimento della richiesta, la richiesta attuale non può essere completata",
32
+ "426": "Spiacenti, il server richiede un aggiornamento del tuo client a una versione di protocollo superiore",
33
+ "428": "Spiacenti, il server richiede una condizione preliminare e la tua richiesta deve includere le intestazioni delle condizioni corrette",
34
+ "431": "Spiacenti, le intestazioni della tua richiesta sono troppo grandi per il server da gestire",
35
+ "451": "Spiacenti, per motivi legali, il server rifiuta di fornire questa risorsa",
17
36
  "InvalidAccessCode": "Password non corretta o vuota. Inserisci una password di accesso corretta o aggiungi una chiave API personalizzata OpenAI",
18
37
  "NoAPIKey": "La chiave API OpenAI è vuota. Aggiungi una chiave API personalizzata OpenAI",
19
38
  "OpenAIBizError": "Errore nella richiesta del servizio OpenAI. Segui le informazioni seguenti per individuare e riprovare",
@@ -9,7 +9,26 @@
9
9
  "403": "申し訳ありませんが、サーバーはリクエストを拒否しました。このコンテンツにアクセスする権限がありません",
10
10
  "404": "申し訳ありませんが、サーバーはリクエストしたページやリソースを見つけることができません。URLが正しいかどうか確認してください",
11
11
  "405": "申し訳ありませんが、サーバーは使用されたリクエストメソッドをサポートしていません。リクエストメソッドが正しいかどうか確認してください",
12
- "429": "申し訳ありませんが、リクエストが多すぎてサーバーが忙しいため、しばらくしてから再試行してください",
12
+ "406": "申し訳ありませんが、サーバーはリクエストされたコンテンツの特性に基づいて要求を完了できませんでした",
13
+ "407": "申し訳ありませんが、このリクエストを続行するにはプロキシ認証が必要です",
14
+ "408": "申し訳ありませんが、サーバーはリクエストの待機中にタイムアウトしました。ネットワーク接続を確認してからもう一度お試しください",
15
+ "409": "申し訳ありませんが、リクエストが競合して処理できません。これはリソースの状態とリクエストが互換性がないためかもしれません",
16
+ "410": "申し訳ありませんが、リクエストされたリソースは永久に削除されました。見つかりません",
17
+ "411": "申し訳ありませんが、サーバーは有効なコンテンツ長さを含まないリクエストを処理できません",
18
+ "412": "申し訳ありませんが、サーバー側の条件を満たさないため、リクエストを完了できません",
19
+ "413": "申し訳ありませんが、リクエストデータが大きすぎてサーバーが処理できません",
20
+ "414": "申し訳ありませんが、リクエストのURIが長すぎてサーバーが処理できません",
21
+ "415": "申し訳ありませんが、サーバーはリクエストに添付されたメディア形式を処理できません",
22
+ "416": "申し訳ありませんが、サーバーはリクエストされた範囲を満たすことができません",
23
+ "417": "申し訳ありませんが、サーバーはあなたの期待に応えることができません",
24
+ "422": "申し訳ありませんが、リクエストの形式は正しいですが、意味エラーが含まれているため応答できません",
25
+ "423": "申し訳ありませんが、リクエストされたリソースはロックされています",
26
+ "424": "申し訳ありませんが、以前のリクエストの失敗により、現在のリクエストを完了できません",
27
+ "426": "申し訳ありませんが、サーバーはクライアントをより高いプロトコルバージョンにアップグレードするよう要求しています",
28
+ "428": "申し訳ありませんが、サーバーは事前条件を要求し、リクエストに正しい条件ヘッダーを含めるよう要求しています",
29
+ "429": "申し訳ありませんが、リクエストが多すぎてサーバーが少し疲れています。しばらくしてからもう一度お試しください",
30
+ "431": "申し訳ありませんが、リクエストヘッダーフィールドが大きすぎてサーバーが処理できません",
31
+ "451": "申し訳ありませんが、法的な理由により、サーバーはこのリソースの提供を拒否しています",
13
32
  "500": "申し訳ありませんが、サーバーに一時的な問題が発生し、リクエストを完了できません。しばらくしてから再試行してください",
14
33
  "502": "申し訳ありませんが、サーバーは一時的にサービスを提供できません。しばらくしてから再試行してください",
15
34
  "503": "申し訳ありませんが、サーバーは現在、リクエストを処理できません。オーバーロードまたはメンテナンス中の可能性があります。しばらくしてから再試行してください",
@@ -5,11 +5,30 @@
5
5
  },
6
6
  "response": {
7
7
  "400": "죄송합니다. 서버가 요청을 이해하지 못했습니다. 요청 매개변수가 올바른지 확인해주세요.",
8
+ "406": "죄송합니다. 서버는 요청한 콘텐츠 특성에 따라 요청을 완료할 수 없습니다",
9
+ "407": "죄송합니다. 이 요청을 계속하려면 프록시 인증이 필요합니다",
10
+ "408": "죄송합니다. 서버가 요청을 대기하는 동안 시간이 초과되었습니다. 네트워크 연결을 확인한 후 다시 시도해 주세요",
11
+ "409": "죄송합니다. 충돌로 인해 요청을 처리할 수 없습니다. 이는 리소스 상태와 요청이 호환되지 않을 수 있습니다",
12
+ "410": "죄송합니다. 요청한 리소스가 영구적으로 제거되어 찾을 수 없습니다",
13
+ "411": "죄송합니다. 유효한 콘텐츠 길이를 포함하지 않는 요청을 서버가 처리할 수 없습니다",
14
+ "412": "죄송합니다. 요청이 서버 측 조건을 충족시키지 못하여 완료할 수 없습니다",
15
+ "413": "죄송합니다. 요청 데이터 양이 너무 많아 서버가 처리할 수 없습니다",
16
+ "414": "죄송합니다. 요청 URI가 너무 깁니다. 서버가 처리할 수 없습니다",
17
+ "415": "죄송합니다. 서버가 요청과 함께 제공된 미디어 형식을 처리할 수 없습니다",
18
+ "416": "죄송합니다. 서버가 요청한 범위를 충족시킬 수 없습니다",
19
+ "417": "죄송합니다. 서버가 귀하의 기대에 부응할 수 없습니다",
20
+ "422": "죄송합니다. 요청 형식이 올바르지만 의미 오류로 인해 응답할 수 없습니다",
21
+ "423": "죄송합니다. 요청한 리소스가 잠겨 있습니다",
22
+ "424": "죄송합니다. 이전 요청 실패로 현재 요청을 완료할 수 없습니다",
23
+ "426": "죄송합니다. 서버가 클라이언트를 더 높은 프로토콜 버전으로 업그레이드하도록 요구합니다",
24
+ "428": "죄송합니다. 서버가 선행 조건을 요구하여 요청이 올바른 조건 헤더를 포함해야 합니다",
25
+ "429": "죄송합니다. 요청이 너무 많아 서버가 조금 피곤한 상태입니다. 잠시 후에 다시 시도해 주세요",
26
+ "431": "죄송합니다. 요청 헤더 필드가 너무 크기 때문에 서버가 처리할 수 없습니다",
27
+ "451": "죄송합니다. 법적 이유로 인해 서버가 이 리소스를 제공하는 것을 거부합니다",
8
28
  "401": "죄송합니다. 서버가 요청을 거부했습니다. 권한이 부족하거나 유효한 인증 정보를 제공하지 않았을 수 있습니다.",
9
29
  "403": "죄송합니다. 서버가 요청을 거부했습니다. 이 콘텐츠에 대한 액세스 권한이 없습니다.",
10
30
  "404": "죄송합니다. 서버가 요청한 페이지나 리소스를 찾을 수 없습니다. URL이 올바른지 확인해주세요.",
11
31
  "405": "죄송합니다. 서버가 사용한 요청 메서드를 지원하지 않습니다. 요청 메서드가 올바른지 확인해주세요.",
12
- "429": "죄송합니다. 요청이 너무 많아 서버가 약간 지친 상태입니다. 잠시 후에 다시 시도해주세요.",
13
32
  "500": "죄송합니다. 서버에 문제가 발생하여 요청을 완료할 수 없습니다. 잠시 후에 다시 시도해주세요.",
14
33
  "502": "죄송합니다. 서버가 잠시 서비스를 제공할 수 없는 상태입니다. 잠시 후에 다시 시도해주세요.",
15
34
  "503": "죄송합니다. 서버가 현재 요청을 처리할 수 없습니다. 과부하 또는 유지 보수 중일 수 있습니다. 잠시 후에 다시 시도해주세요.",
@@ -9,7 +9,26 @@
9
9
  "403": "Sorry, de server heeft uw verzoek geweigerd omdat u geen toegang heeft tot deze inhoud",
10
10
  "404": "Sorry, de server kan de door u gevraagde pagina of bron niet vinden. Controleer of uw URL juist is",
11
11
  "405": "Sorry, de server ondersteunt de gebruikte verzoekmethode niet. Controleer of uw verzoekmethode juist is",
12
- "429": "Sorry, uw verzoek is te veel voor de server. Probeer het later opnieuw",
12
+ "406": "Sorry, de server kan het verzoek niet voltooien op basis van de kenmerken van de door u aangevraagde inhoud",
13
+ "407": "Sorry, u moet zich eerst aanmelden bij de proxy om door te gaan met dit verzoek",
14
+ "408": "Sorry, de server heeft een time-out tijdens het wachten op het verzoek. Controleer uw netwerkverbinding en probeer het opnieuw",
15
+ "409": "Sorry, er is een conflict met het verzoek en het kan niet worden verwerkt, mogelijk omdat de status van de bron niet compatibel is met het verzoek",
16
+ "410": "Sorry, de door u aangevraagde bron is permanent verwijderd en kan niet worden gevonden",
17
+ "411": "Sorry, de server kan het verzoek zonder geldige inhoudslengte niet verwerken",
18
+ "412": "Sorry, uw verzoek voldoet niet aan de voorwaarden van de server en kan niet worden voltooid",
19
+ "413": "Sorry, uw verzoek is te groot en kan niet worden verwerkt door de server",
20
+ "414": "Sorry, de URI van uw verzoek is te lang en kan niet worden verwerkt door de server",
21
+ "415": "Sorry, de server kan het verzoek met de bijgevoegde media-indeling niet verwerken",
22
+ "416": "Sorry, de server kan niet voldoen aan het bereik van uw verzoek",
23
+ "417": "Sorry, de server kan niet voldoen aan uw verwachtingen",
24
+ "422": "Sorry, uw verzoek is correct opgemaakt, maar vanwege semantische fouten kan er niet op worden gereageerd",
25
+ "423": "Sorry, de bron die u heeft aangevraagd is vergrendeld",
26
+ "424": "Sorry, vanwege een eerdere mislukte aanvraag kan het huidige verzoek niet worden voltooid",
27
+ "426": "Sorry, de server vereist dat uw client wordt geüpgraded naar een hogere protocolversie",
28
+ "428": "Sorry, de server vereist voorwaarden en uw verzoek moet de juiste voorwaardelijke kop bevatten",
29
+ "429": "Sorry, uw verzoek is te veel voor de server, probeer het later opnieuw",
30
+ "431": "Sorry, de kop van uw verzoek is te groot en kan niet worden verwerkt door de server",
31
+ "451": "Sorry, vanwege juridische redenen weigert de server deze bron te leveren",
13
32
  "500": "Sorry, de server lijkt problemen te ondervinden en kan uw verzoek tijdelijk niet voltooien. Probeer het later opnieuw",
14
33
  "502": "Sorry, de server lijkt de weg kwijt te zijn en kan tijdelijk geen service verlenen. Probeer het later opnieuw",
15
34
  "503": "Sorry, de server kan uw verzoek momenteel niet verwerken vanwege overbelasting of onderhoud. Probeer het later opnieuw",
@@ -12,6 +12,26 @@
12
12
  "429": "Przepraszamy, Twoje żądanie jest zbyt częste, serwer jest trochę przeciążony. Proszę spróbuj ponownie później",
13
13
  "500": "Przepraszamy, serwer napotkał pewne trudności i tymczasowo nie może zrealizować Twojego żądania. Proszę spróbuj ponownie później",
14
14
  "502": "Przepraszamy, serwer wydaje się zgubić kierunek i tymczasowo nie może świadczyć usług. Proszę spróbuj ponownie później",
15
+ "406": "Przepraszamy, serwer nie może zrealizować żądania zgodnie z żądanymi właściwościami zasobu",
16
+ "407": "Przepraszamy, aby kontynuować to żądanie, musisz najpierw uwierzytelnić się jako proxy",
17
+ "408": "Przepraszamy, serwer przekroczył limit czasu oczekiwania na żądanie, sprawdź swoje połączenie sieciowe i spróbuj ponownie",
18
+ "409": "Przepraszamy, żądanie nie może zostać zrealizowane z powodu konfliktu, być może zasób jest w niezgodnym stanie z żądaniem",
19
+ "410": "Przepraszamy, żądany zasób został trwale usunięty i nie można go odnaleźć",
20
+ "411": "Przepraszamy, serwer nie może przetworzyć żądania, które nie zawiera poprawnej długości treści",
21
+ "412": "Przepraszamy, Twoje żądanie nie spełnia warunków serwera i nie może zostać zrealizowane",
22
+ "413": "Przepraszamy, Twoje dane żądania są zbyt duże, serwer nie może ich przetworzyć",
23
+ "414": "Przepraszamy, URI żądania jest zbyt długie, serwer nie może go przetworzyć",
24
+ "415": "Przepraszamy, serwer nie może przetworzyć żądanej formatki mediów",
25
+ "416": "Przepraszamy, serwer nie może zrealizować zakresu żądania",
26
+ "417": "Przepraszamy, serwer nie może spełnić Twoich oczekiwań",
27
+ "422": "Przepraszamy, Twoje żądanie jest poprawne, ale z powodu błędów semantycznych nie może zostać zrealizowane",
28
+ "423": "Przepraszamy, żądany zasób jest zablokowany",
29
+ "424": "Przepraszamy, poprzednie nieudane żądanie uniemożliwia zrealizowanie bieżącego żądania",
30
+ "426": "Przepraszamy, serwer wymaga aktualizacji Twojego klienta do nowszej wersji protokołu",
31
+ "428": "Przepraszamy, serwer wymaga warunków wstępnych, żądanie musi zawierać poprawne nagłówki warunkowe",
32
+ "429": "Przepraszamy, Twoje żądania są zbyt liczne, serwer jest trochę przeciążony, spróbuj ponownie później",
33
+ "431": "Przepraszamy, nagłówek żądania jest zbyt duży, serwer nie może go przetworzyć",
34
+ "451": "Przepraszamy, z powodów prawnych serwer odmawia dostarczenia tego zasobu",
15
35
  "503": "Przepraszamy, serwer tymczasowo nie może przetworzyć Twojego żądania, prawdopodobnie z powodu przeciążenia lub konserwacji. Proszę spróbuj ponownie później",
16
36
  "504": "Przepraszamy, serwer nie otrzymał odpowiedzi od serwera nadrzędnego. Proszę spróbuj ponownie później",
17
37
  "InvalidAccessCode": "Nieprawidłowe lub puste hasło dostępu. Proszę podaj poprawne hasło dostępu lub dodaj niestandardowy klucz API OpenAI",
@@ -9,7 +9,26 @@
9
9
  "403": "Desculpe, o servidor recusou sua solicitação. Você não tem permissão para acessar este conteúdo",
10
10
  "404": "Desculpe, o servidor não encontrou a página ou recurso solicitado. Verifique se a URL está correta",
11
11
  "405": "Desculpe, o servidor não suporta o método de solicitação que você está usando. Verifique se o método de solicitação está correto",
12
- "429": "Desculpe, houve muitas solicitações. O servidor está um pouco sobrecarregado. Por favor, tente novamente mais tarde",
12
+ "406": "Desculpe, o servidor não pode completar a solicitação devido às características do conteúdo solicitado",
13
+ "407": "Desculpe, é necessário autenticação de proxy para continuar com esta solicitação",
14
+ "408": "Desculpe, o servidor excedeu o tempo de espera pela solicitação, verifique sua conexão de rede e tente novamente",
15
+ "409": "Desculpe, a solicitação não pôde ser processada devido a um conflito, possivelmente devido à incompatibilidade entre o estado do recurso e a solicitação",
16
+ "410": "Desculpe, o recurso solicitado foi permanentemente removido e não pode ser encontrado",
17
+ "411": "Desculpe, o servidor não pode processar uma solicitação sem um tamanho de conteúdo válido",
18
+ "412": "Desculpe, sua solicitação não atende às condições do servidor e não pode ser concluída",
19
+ "413": "Desculpe, sua solicitação contém uma quantidade de dados muito grande e o servidor não pode processá-la",
20
+ "414": "Desculpe, o URI da sua solicitação é muito longo e o servidor não pode processá-lo",
21
+ "415": "Desculpe, o servidor não pode processar o formato de mídia anexado à solicitação",
22
+ "416": "Desculpe, o servidor não pode atender à faixa solicitada",
23
+ "417": "Desculpe, o servidor não pode atender às suas expectativas",
24
+ "422": "Desculpe, sua solicitação está correta em termos de formato, mas contém erros semânticos e não pode ser respondida",
25
+ "423": "Desculpe, o recurso solicitado está bloqueado",
26
+ "424": "Desculpe, devido a uma solicitação anterior mal sucedida, a solicitação atual não pode ser concluída",
27
+ "426": "Desculpe, o servidor exige que seu cliente seja atualizado para uma versão de protocolo mais alta",
28
+ "428": "Desculpe, o servidor requer pré-condições e solicita que sua solicitação inclua cabeçalhos de condição corretos",
29
+ "429": "Desculpe, sua solicitação é muito frequente e o servidor está um pouco sobrecarregado, por favor, tente novamente mais tarde",
30
+ "431": "Desculpe, o campo de cabeçalho da sua solicitação é muito grande e o servidor não pode processá-lo",
31
+ "451": "Desculpe, por razões legais, o servidor se recusa a fornecer este recurso",
13
32
  "500": "Desculpe, o servidor parece estar enfrentando algumas dificuldades e não pode concluir sua solicitação no momento. Por favor, tente novamente mais tarde",
14
33
  "502": "Desculpe, o servidor parece estar temporariamente indisponível. Por favor, tente novamente mais tarde",
15
34
  "503": "Desculpe, o servidor não pode processar sua solicitação no momento, possivelmente devido a sobrecarga ou manutenção. Por favor, tente novamente mais tarde",
@@ -12,6 +12,25 @@
12
12
  "429": "Извините, ваш запрос слишком частый, и сервер немного устал. Повторите попытку позже.",
13
13
  "500": "К сожалению, сервер, похоже, испытывает некоторые трудности и временно не может выполнить ваш запрос. Повторите попытку позже.",
14
14
  "502": "К сожалению, сервер, похоже, потерян и временно не может предоставлять услуги. Повторите попытку позже.",
15
+ "406": "Извините, сервер не может выполнить запрос в соответствии с характеристиками запрошенного контента",
16
+ "407": "Извините, для продолжения запроса необходима аутентификация прокси",
17
+ "408": "Извините, сервер превысил время ожидания при ожидании запроса. Пожалуйста, проверьте свое сетевое подключение и повторите попытку",
18
+ "409": "Извините, запрос не может быть обработан из-за конфликта, возможно, из-за несовместимости состояния ресурса и запроса",
19
+ "410": "Извините, запрашиваемый ресурс был удален навсегда и не может быть найден",
20
+ "411": "Извините, сервер не может обработать запрос без указания длины допустимого содержимого",
21
+ "412": "Извините, ваш запрос не соответствует условиям на стороне сервера и не может быть выполнен",
22
+ "413": "Извините, ваш запрос слишком велик, сервер не может его обработать",
23
+ "414": "Извините, ваш URI запроса слишком длинный, сервер не может его обработать",
24
+ "415": "Извините, сервер не может обработать запрошенный формат медиа",
25
+ "416": "Извините, сервер не может удовлетворить запрошенный диапазон",
26
+ "417": "Извините, сервер не может удовлетворить ваше ожидание",
27
+ "422": "Извините, ваш запрос имеет правильный формат, но из-за семантической ошибки не может быть обработан",
28
+ "423": "Извините, запрашиваемый ресурс заблокирован",
29
+ "424": "Извините, из-за предыдущей неудачной попытки запрос не может быть выполнен",
30
+ "426": "Извините, сервер требует обновления вашего клиента до более новой версии протокола",
31
+ "428": "Извините, сервер требует предварительных условий, ваш запрос должен содержать правильные условные заголовки",
32
+ "431": "Извините, ваш заголовок запроса слишком велик, сервер не может его обработать",
33
+ "451": "Извините, по юридическим причинам сервер отказывается предоставить этот ресурс",
15
34
  "503": "К сожалению, сервер в настоящее время не может обработать ваш запрос, возможно, из-за перегрузки или технического обслуживания. Повторите попытку позже.",
16
35
  "504": "К сожалению, сервер не получил ответа от вышестоящего сервера. Повторите попытку позже.",
17
36
  "InvalidAccessCode": "Пароль неверен или пуст. Введите правильный пароль доступа или добавьте собственный ключ API OpenAI.",
@@ -9,7 +9,26 @@
9
9
  "403": "Üzgünüm, sunucu isteğinizi reddetti. Bu içeriğe erişim izniniz yok.",
10
10
  "404": "Üzgünüm, sunucu istediğiniz sayfa veya kaynağı bulamıyor. Lütfen URL'nizin doğru olduğundan emin olun.",
11
11
  "405": "Üzgünüm, sunucu kullandığınız istek yöntemini desteklemiyor. Lütfen istek yönteminizin doğru olduğundan emin olun.",
12
- "429": "Üzgünüm, isteğiniz çok sık ve sunucu biraz yorgun. Lütfen daha sonra tekrar deneyin.",
12
+ "406": "Üzgünüz, sunucu isteğinizin içerik özelliklerine göre işlemi tamamlayamadı",
13
+ "407": "Üzgünüz, devam etmek için bir vekil kimliği doğrulamanız gerekmektedir",
14
+ "408": "Üzgünüz, sunucu isteği beklerken zaman aşımına uğradı, lütfen ağ bağlantınızı kontrol edip tekrar deneyin",
15
+ "409": "Üzgünüz, istek uyumsuzluğu nedeniyle çakışma var ve işlenemiyor, muhtemelen kaynak durumu ile istek uyumsuz",
16
+ "410": "Üzgünüz, istediğiniz kaynak kalıcı olarak kaldırıldı ve bulunamıyor",
17
+ "411": "Üzgünüz, sunucu geçerli içerik uzunluğu olmayan isteği işleyemiyor",
18
+ "412": "Üzgünüz, isteğiniz sunucu tarafındaki koşulları karşılamıyor ve işlem tamamlanamıyor",
19
+ "413": "Üzgünüz, isteğinizin veri boyutu çok büyük, sunucu işleyemiyor",
20
+ "414": "Üzgünüz, isteğinizin URI'si çok uzun, sunucu işleyemiyor",
21
+ "415": "Üzgünüz, sunucu isteğe eşlik eden medya formatını işleyemiyor",
22
+ "416": "Üzgünüz, sunucu isteğinizin aralığını karşılayamıyor",
23
+ "417": "Üzgünüz, sunucu beklentilerinizi karşılayamıyor",
24
+ "422": "Üzgünüz, isteğinizin biçimi doğru ancak anlamsal hata içerdiği için yanıt veremiyor",
25
+ "423": "Üzgünüz, istediğiniz kaynak kilitli",
26
+ "424": "Üzgünüz, önceki bir istek hatası nedeniyle mevcut istek tamamlanamıyor",
27
+ "426": "Üzgünüz, sunucu istemcinizin daha yüksek bir protokol sürümüne yükseltilmesini istiyor",
28
+ "428": "Üzgünüz, sunucu önişlem gerektiriyor, isteğinizin doğru koşul başlıklarını içermesini istiyor",
29
+ "429": "Üzgünüz, isteğiniz çok fazla, sunucu biraz yoruldu, lütfen daha sonra tekrar deneyin",
30
+ "431": "Üzgünüz, istek başlık alanı çok büyük, sunucu işleyemiyor",
31
+ "451": "Üzgünüz, yasal nedenlerle sunucu bu kaynağı sağlamayı reddediyor",
13
32
  "500": "Üzgünüm, sunucu bazı zorluklar yaşıyor ve geçici olarak isteğinizi tamamlayamıyor. Lütfen daha sonra tekrar deneyin.",
14
33
  "502": "Üzgünüm, sunucu kayboldu ve geçici olarak hizmet veremiyor. Lütfen daha sonra tekrar deneyin.",
15
34
  "503": "Üzgünüm, sunucu şu anda isteğinizi işleyemiyor, muhtemelen aşırı yüklenme veya bakım nedeniyle. Lütfen daha sonra tekrar deneyin.",
@@ -10,6 +10,25 @@
10
10
  "404": "Xin lỗi, máy chủ không tìm thấy trang hoặc tài nguyên bạn yêu cầu, vui lòng xác nhận URL của bạn có đúng không",
11
11
  "405": "Xin lỗi, máy chủ không hỗ trợ phương thức yêu cầu bạn đang sử dụng, vui lòng xác nhận phương thức yêu cầu của bạn có đúng không",
12
12
  "429": "Xin lỗi, yêu cầu của bạn quá nhiều, máy chủ hơi mệt, vui lòng thử lại sau",
13
+ "406": "Xin lỗi, máy chủ không thể hoàn thành yêu cầu dựa trên đặc tính nội dung bạn yêu cầu",
14
+ "407": "Xin lỗi, bạn cần xác thực proxy trước khi tiếp tục yêu cầu này",
15
+ "408": "Xin lỗi, máy chủ đã vượt quá thời gian chờ khi đang chờ đợi yêu cầu, vui lòng kiểm tra kết nối mạng của bạn và thử lại",
16
+ "409": "Xin lỗi, yêu cầu gặp xung đột và không thể xử lý, có thể do trạng thái tài nguyên không tương thích với yêu cầu",
17
+ "410": "Xin lỗi, tài nguyên bạn yêu cầu đã bị xóa vĩnh viễn và không thể tìm thấy",
18
+ "411": "Xin lỗi, máy chủ không thể xử lý yêu cầu không chứa độ dài nội dung hợp lệ",
19
+ "412": "Xin lỗi, yêu cầu của bạn không đáp ứng điều kiện của máy chủ và không thể hoàn thành",
20
+ "413": "Xin lỗi, lượng dữ liệu yêu cầu của bạn quá lớn, máy chủ không thể xử lý",
21
+ "414": "Xin lỗi, URI của yêu cầu của bạn quá dài, máy chủ không thể xử lý",
22
+ "415": "Xin lỗi, máy chủ không thể xử lý định dạng phương tiện đi kèm với yêu cầu",
23
+ "416": "Xin lỗi, máy chủ không thể đáp ứng phạm vi yêu cầu của bạn",
24
+ "417": "Xin lỗi, máy chủ không thể đáp ứng giá trị kỳ vọng của bạn",
25
+ "422": "Xin lỗi, định dạng yêu cầu của bạn đúng, nhưng do chứa lỗi ngữ nghĩa nên không thể phản hồi",
26
+ "423": "Xin lỗi, tài nguyên bạn yêu cầu đã bị khóa",
27
+ "424": "Xin lỗi, yêu cầu hiện tại không thể hoàn thành do yêu cầu trước đó thất bại",
28
+ "426": "Xin lỗi, máy chủ yêu cầu bạn nâng cấp phiên bản giao thức của khách hàng lên cao hơn",
29
+ "428": "Xin lỗi, máy chủ yêu cầu điều kiện tiên quyết, yêu cầu của bạn phải chứa tiêu đề điều kiện chính xác",
30
+ "431": "Xin lỗi, trường tiêu đề yêu cầu của bạn quá lớn, máy chủ không thể xử lý",
31
+ "451": "Xin lỗi, do lý do pháp lý, máy chủ từ chối cung cấp tài nguyên này",
13
32
  "500": "Xin lỗi, máy chủ có vẻ gặp một số khó khăn, tạm thời không thể hoàn thành yêu cầu của bạn, vui lòng thử lại sau",
14
33
  "502": "Xin lỗi, máy chủ có vẻ lạc đường, tạm thời không thể cung cấp dịch vụ, vui lòng thử lại sau",
15
34
  "503": "Xin lỗi, máy chủ hiện không thể xử lý yêu cầu của bạn, có thể do quá tải hoặc đang bảo trì, vui lòng thử lại sau",
@@ -9,7 +9,26 @@
9
9
  "403": "很抱歉,服务器拒绝了您的请求,您没有访问此内容的权限 ",
10
10
  "404": "很抱歉,服务器找不到您请求的页面或资源,请确认您的 URL 是否正确",
11
11
  "405": "很抱歉,服务器不支持您使用的请求方法,请确认您的请求方法是否正确",
12
+ "406": "很抱歉,服务器无法根据您请求的内容特性完成请求",
13
+ "407": "很抱歉,您需要进行代理认证后才能继续此请求",
14
+ "408": "很抱歉,服务器在等待请求时超时,请检查您的网络连接后再试",
15
+ "409": "很抱歉,请求存在冲突无法处理,可能是因为资源状态与请求不兼容",
16
+ "410": "很抱歉,您请求的资源已被永久移除,无法找到",
17
+ "411": "很抱歉,服务器无法处理不含有效内容长度的请求",
18
+ "412": "很抱歉,您的请求未满足服务器端的条件,无法完成请求",
19
+ "413": "很抱歉,您的请求数据量过大,服务器无法处理",
20
+ "414": "很抱歉,您的请求的 URI 过长,服务器无法处理",
21
+ "415": "很抱歉,服务器无法处理请求附带的媒体格式",
22
+ "416": "很抱歉,服务器无法满足您请求的范围",
23
+ "417": "很抱歉,服务器无法满足您的期望值",
24
+ "422": "很抱歉,您的请求格式正确,但是由于含有语义错误,无法响应",
25
+ "423": "很抱歉,您请求的资源被锁定",
26
+ "424": "很抱歉,由于之前的请求失败,导致当前请求无法完成",
27
+ "426": "很抱歉,服务器要求您的客户端升级到更高的协议版本",
28
+ "428": "很抱歉,服务器要求先决条件,要求您的请求包含正确的条件头",
12
29
  "429": "很抱歉,您的请求太多,服务器有点累了,请稍后再试",
30
+ "431": "很抱歉,您的请求头字段太大,服务器无法处理",
31
+ "451": "很抱歉,由于法律原因,服务器拒绝提供此资源",
13
32
  "500": "很抱歉,服务器似乎遇到了一些困难,暂时无法完成您的请求,请稍后再试",
14
33
  "502": "很抱歉,服务器似乎迷失了方向,暂时无法提供服务,请稍后再试",
15
34
  "503": "很抱歉,服务器当前无法处理您的请求,可能是由于过载或正在进行维护,请稍后再试",
@@ -9,7 +9,26 @@
9
9
  "403": "抱歉,伺服器已拒絕您的請求。您沒有權限存取此內容。",
10
10
  "404": "抱歉,伺服器無法找到您請求的頁面或資源。請確認您的 URL 是否正確。",
11
11
  "405": "抱歉,伺服器不支援您正在使用的請求方法。請確認您的請求方法是否正確。",
12
- "429": "抱歉,您的請求太頻繁,伺服器有點累了。請稍後再試。",
12
+ "406": "很抱歉,伺服器無法根據您請求的內容特性完成請求",
13
+ "407": "很抱歉,您需要進行代理認證後才能繼續此請求",
14
+ "408": "很抱歉,伺服器在等待請求時超時,請檢查您的網路連線後再試",
15
+ "409": "很抱歉,請求存在衝突無法處理,可能是因為資源狀態與請求不相容",
16
+ "410": "很抱歉,您請求的資源已被永久移除,無法找到",
17
+ "411": "很抱歉,伺服器無法處理不含有效內容長度的請求",
18
+ "412": "很抱歉,您的請求未滿足伺服器端的條件,無法完成請求",
19
+ "413": "很抱歉,您的請求資料量過大,伺服器無法處理",
20
+ "414": "很抱歉,您的請求的 URI 過長,伺服器無法處理",
21
+ "415": "很抱歉,伺服器無法處理請求附帶的媒體格式",
22
+ "416": "很抱歉,伺服器無法滿足您請求的範圍",
23
+ "417": "很抱歉,伺服器無法滿足您的期望值",
24
+ "422": "很抱歉,您的請求格式正確,但是由於含有語義錯誤,無法響應",
25
+ "423": "很抱歉,您請求的資源被鎖定",
26
+ "424": "很抱歉,由於之前的請求失敗,導致當前請求無法完成",
27
+ "426": "很抱歉,伺服器要求您的客戶端升級到更高的協議版本",
28
+ "428": "很抱歉,伺服器要求先決條件,要求您的請求包含正確的條件頭",
29
+ "429": "很抱歉,您的請求太多,伺服器有點累了,請稍後再試",
30
+ "431": "很抱歉,您的請求頭字段太大,伺服器無法處理",
31
+ "451": "很抱歉,由於法律原因,伺服器拒絕提供此資源",
13
32
  "500": "抱歉,伺服器似乎遇到一些困難,暫時無法完成您的請求。請稍後再試。",
14
33
  "502": "抱歉,伺服器似乎迷失了方向,暫時無法提供服務。請稍後再試。",
15
34
  "503": "抱歉,伺服器目前無法處理您的請求,可能是因為過載或正在進行維護。請稍後再試。",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "0.118.8",
3
+ "version": "0.118.10",
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",
@@ -32,6 +32,7 @@
32
32
  "dev": "next dev -p 3010",
33
33
  "docs": "lobe-i18n md && npm run workflow:docs",
34
34
  "i18n": "npm run workflow:i18n && lobe-i18n",
35
+ "i18n-md": "lobe-i18n md",
35
36
  "lint": "npm run lint:ts && npm run lint:style && npm run type-check && npm run lint:circular",
36
37
  "lint:circular": "dpdm src/**/*.ts --warning false --tree false --exit-code circular:1 -T true",
37
38
  "lint:md": "remark . --quiet --frail --output",
@@ -107,7 +108,7 @@
107
108
  "react": "^18",
108
109
  "react-dom": "^18",
109
110
  "react-hotkeys-hook": "^4",
110
- "react-i18next": "^13",
111
+ "react-i18next": "^14.0.0",
111
112
  "react-intersection-observer": "^9",
112
113
  "react-layout-kit": "^1",
113
114
  "react-lazy-load": "^4",
@@ -6,13 +6,15 @@ import { fetchPluginIndex, genLink, genTags, readReadme, updateReadme, writeRead
6
6
 
7
7
  const genPluginTable = (data: DataItem[], lang: string) => {
8
8
  const isCN = lang === 'zh-CN';
9
- const content = data.slice(0, 4).map((item) => [
10
- [
11
- genLink(item.meta.title, PLGUIN_URL),
12
- `<sup>By **${item.author}** on **${item.createdAt}**</sup>`,
13
- ].join('<br/>'),
14
- [item.meta.description, genTags(item.meta.tags)].join('<br/>'),
15
- ]);
9
+ const content = data
10
+ .slice(0, 4)
11
+ .map((item) => [
12
+ [
13
+ genLink(item.meta.title, PLGUIN_URL),
14
+ `<sup>By **${item.author}** on **${item.createdAt}**</sup>`,
15
+ ].join('<br/>'),
16
+ [item.meta.description, genTags(item.meta.tags)].join('<br/>'),
17
+ ]);
16
18
  return markdownTable([
17
19
  isCN ? ['最近新增', '插件描述'] : ['Recent Submits', 'Description'],
18
20
  ...content,
@@ -1,6 +1,6 @@
1
1
  import { ActionIcon, ChatInputArea, ChatSendButton } from '@lobehub/ui';
2
2
  import { Maximize2, Minimize2 } from 'lucide-react';
3
- import { memo, useCallback, useMemo } from 'react';
3
+ import { memo, useCallback, useEffect, useMemo } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
 
6
6
  import {
@@ -78,6 +78,23 @@ const ChatInputDesktopLayout = memo(() => {
78
78
  [expand],
79
79
  );
80
80
 
81
+ const hasValue = !!value;
82
+
83
+ useEffect(() => {
84
+ const fn = (e: BeforeUnloadEvent) => {
85
+ if (hasValue) {
86
+ // set returnValue to trigger alert modal
87
+ // Note: No matter what value is set, the browser will display the standard text
88
+ e.returnValue = '你有正在输入中的内容,确定要离开吗?';
89
+ }
90
+ };
91
+
92
+ window.addEventListener('beforeunload', fn);
93
+ return () => {
94
+ window.removeEventListener('beforeunload', fn);
95
+ };
96
+ }, [hasValue]);
97
+
81
98
  return (
82
99
  <>
83
100
  {canUpload && <DragUpload />}
@@ -67,47 +67,46 @@ const ShareModal = memo<ModalProps>(({ onCancel, open }) => {
67
67
  );
68
68
 
69
69
  const settings: FormItemProps[] = useMemo(
70
- () =>
71
- [
72
- {
73
- children: <Switch />,
74
- label: t('shareModal.withSystemRole'),
75
- minWidth: undefined,
76
- name: 'withSystemRole',
77
- valuePropName: 'checked',
78
- },
79
- {
80
- children: <Switch />,
81
- hidden: tab !== Tab.Screenshot,
82
- label: t('shareModal.withBackground'),
83
- minWidth: undefined,
84
- name: 'withBackground',
85
- valuePropName: 'checked',
86
- },
87
- {
88
- children: <Switch />,
89
- hidden: tab !== Tab.Screenshot,
90
- label: t('shareModal.withFooter'),
91
- minWidth: undefined,
92
- name: 'withFooter',
93
- valuePropName: 'checked',
94
- },
95
- {
96
- children: <Segmented options={imageTypeOptions} />,
97
- hidden: tab !== Tab.Screenshot,
98
- label: t('shareModal.imageType'),
99
- minWidth: undefined,
100
- name: 'imageType',
101
- },
102
- {
103
- children: <Switch />,
104
- hidden: tab !== Tab.ShareGPT,
105
- label: t('shareModal.withPluginInfo'),
106
- minWidth: undefined,
107
- name: 'withPluginInfo',
108
- valuePropName: 'checked',
109
- },
110
- ],
70
+ () => [
71
+ {
72
+ children: <Switch />,
73
+ label: t('shareModal.withSystemRole'),
74
+ minWidth: undefined,
75
+ name: 'withSystemRole',
76
+ valuePropName: 'checked',
77
+ },
78
+ {
79
+ children: <Switch />,
80
+ hidden: tab !== Tab.Screenshot,
81
+ label: t('shareModal.withBackground'),
82
+ minWidth: undefined,
83
+ name: 'withBackground',
84
+ valuePropName: 'checked',
85
+ },
86
+ {
87
+ children: <Switch />,
88
+ hidden: tab !== Tab.Screenshot,
89
+ label: t('shareModal.withFooter'),
90
+ minWidth: undefined,
91
+ name: 'withFooter',
92
+ valuePropName: 'checked',
93
+ },
94
+ {
95
+ children: <Segmented options={imageTypeOptions} />,
96
+ hidden: tab !== Tab.Screenshot,
97
+ label: t('shareModal.imageType'),
98
+ minWidth: undefined,
99
+ name: 'imageType',
100
+ },
101
+ {
102
+ children: <Switch />,
103
+ hidden: tab !== Tab.ShareGPT,
104
+ label: t('shareModal.withPluginInfo'),
105
+ minWidth: undefined,
106
+ name: 'withPluginInfo',
107
+ valuePropName: 'checked',
108
+ },
109
+ ],
111
110
  [tab],
112
111
  );
113
112
 
@@ -28,7 +28,7 @@ export const createI18nNext = (lang?: string) => {
28
28
  init: () =>
29
29
  instance.init({
30
30
  debug: debugMode,
31
- defaultNS: ['error', 'common', 'empty'],
31
+ defaultNS: ['error', 'common', 'empty', 'chat'],
32
32
  detection: {
33
33
  caches: ['cookie'],
34
34
  cookieMinutes: 60 * 24 * COOKIE_CACHE_DAYS,
@@ -9,7 +9,26 @@ export default {
9
9
  403: '很抱歉,服务器拒绝了您的请求,您没有访问此内容的权限 ',
10
10
  404: '很抱歉,服务器找不到您请求的页面或资源,请确认您的 URL 是否正确',
11
11
  405: '很抱歉,服务器不支持您使用的请求方法,请确认您的请求方法是否正确',
12
+ 406: '很抱歉,服务器无法根据您请求的内容特性完成请求',
13
+ 407: '很抱歉,您需要进行代理认证后才能继续此请求',
14
+ 408: '很抱歉,服务器在等待请求时超时,请检查您的网络连接后再试',
15
+ 409: '很抱歉,请求存在冲突无法处理,可能是因为资源状态与请求不兼容',
16
+ 410: '很抱歉,您请求的资源已被永久移除,无法找到',
17
+ 411: '很抱歉,服务器无法处理不含有效内容长度的请求',
18
+ 412: '很抱歉,您的请求未满足服务器端的条件,无法完成请求',
19
+ 413: '很抱歉,您的请求数据量过大,服务器无法处理',
20
+ 414: '很抱歉,您的请求的 URI 过长,服务器无法处理',
21
+ 415: '很抱歉,服务器无法处理请求附带的媒体格式',
22
+ 416: '很抱歉,服务器无法满足您请求的范围',
23
+ 417: '很抱歉,服务器无法满足您的期望值',
24
+ 422: '很抱歉,您的请求格式正确,但是由于含有语义错误,无法响应',
25
+ 423: '很抱歉,您请求的资源被锁定',
26
+ 424: '很抱歉,由于之前的请求失败,导致当前请求无法完成',
27
+ 426: '很抱歉,服务器要求您的客户端升级到更高的协议版本',
28
+ 428: '很抱歉,服务器要求先决条件,要求您的请求包含正确的条件头',
12
29
  429: '很抱歉,您的请求太多,服务器有点累了,请稍后再试',
30
+ 431: '很抱歉,您的请求头字段太大,服务器无法处理',
31
+ 451: '很抱歉,由于法律原因,服务器拒绝提供此资源',
13
32
  500: '很抱歉,服务器似乎遇到了一些困难,暂时无法完成您的请求,请稍后再试',
14
33
  502: '很抱歉,服务器似乎迷失了方向,暂时无法提供服务,请稍后再试',
15
34
  503: '很抱歉,服务器当前无法处理您的请求,可能是由于过载或正在进行维护,请稍后再试',
@@ -666,4 +666,75 @@ describe('chatMessage actions', () => {
666
666
  });
667
667
  });
668
668
  });
669
+
670
+ describe('toggleChatLoading', () => {
671
+ it('should set loading state and create an AbortController when loading is true', () => {
672
+ const { result } = renderHook(() => useChatStore());
673
+ const action = 'loading-action';
674
+
675
+ act(() => {
676
+ result.current.toggleChatLoading(true, 'message-id', action);
677
+ });
678
+
679
+ const state = useChatStore.getState();
680
+ expect(state.abortController).toBeInstanceOf(AbortController);
681
+ expect(state.chatLoadingId).toEqual('message-id');
682
+ });
683
+
684
+ it('should clear loading state and abort controller when loading is false', () => {
685
+ const { result } = renderHook(() => useChatStore());
686
+ const action = 'stop-loading-action';
687
+
688
+ // Set initial loading state
689
+ act(() => {
690
+ result.current.toggleChatLoading(true, 'message-id', 'start-loading-action');
691
+ });
692
+
693
+ // Stop loading
694
+ act(() => {
695
+ result.current.toggleChatLoading(false, undefined, action);
696
+ });
697
+
698
+ const state = useChatStore.getState();
699
+ expect(state.abortController).toBeUndefined();
700
+ expect(state.chatLoadingId).toBeUndefined();
701
+ });
702
+
703
+ it('should attach beforeunload event listener when loading starts', () => {
704
+ const { result } = renderHook(() => useChatStore());
705
+ const addEventListenerSpy = vi.spyOn(window, 'addEventListener');
706
+
707
+ act(() => {
708
+ result.current.toggleChatLoading(true, 'message-id', 'loading-action');
709
+ });
710
+
711
+ expect(addEventListenerSpy).toHaveBeenCalledWith('beforeunload', expect.any(Function));
712
+ });
713
+
714
+ it('should remove beforeunload event listener when loading stops', () => {
715
+ const { result } = renderHook(() => useChatStore());
716
+ const removeEventListenerSpy = vi.spyOn(window, 'removeEventListener');
717
+
718
+ // Start and then stop loading to trigger the removal of the event listener
719
+ act(() => {
720
+ result.current.toggleChatLoading(true, 'message-id', 'start-loading-action');
721
+ result.current.toggleChatLoading(false, undefined, 'stop-loading-action');
722
+ });
723
+
724
+ expect(removeEventListenerSpy).toHaveBeenCalledWith('beforeunload', expect.any(Function));
725
+ });
726
+
727
+ it('should not create a new AbortController if one already exists', () => {
728
+ const { result } = renderHook(() => useChatStore());
729
+ const abortController = new AbortController();
730
+
731
+ act(() => {
732
+ useChatStore.setState({ abortController });
733
+ result.current.toggleChatLoading(true, 'message-id', 'loading-action');
734
+ });
735
+
736
+ const state = useChatStore.getState();
737
+ expect(state.abortController).toEqual(abortController);
738
+ });
739
+ });
669
740
  });
@@ -75,6 +75,12 @@ export interface ChatMessageAction {
75
75
 
76
76
  const getAgentConfig = () => agentSelectors.currentAgentConfig(useSessionStore.getState());
77
77
 
78
+ const preventLeavingFn = (e: BeforeUnloadEvent) => {
79
+ // set returnValue to trigger alert modal
80
+ // Note: No matter what value is set, the browser will display the standard text
81
+ e.returnValue = '你有正在生成中的请求,确定要离开吗?';
82
+ };
83
+
78
84
  export const chatMessage: StateCreator<
79
85
  ChatStore,
80
86
  [['zustand/devtools', never]],
@@ -398,11 +404,16 @@ export const chatMessage: StateCreator<
398
404
  },
399
405
  toggleChatLoading: (loading, id, action) => {
400
406
  if (loading) {
407
+ window.addEventListener('beforeunload', preventLeavingFn);
408
+
401
409
  const abortController = new AbortController();
402
410
  set({ abortController, chatLoadingId: id }, false, action);
411
+
403
412
  return abortController;
404
413
  } else {
405
414
  set({ abortController: undefined, chatLoadingId: undefined }, false, action);
415
+
416
+ window.removeEventListener('beforeunload', preventLeavingFn);
406
417
  }
407
418
  },
408
419
  });