@lobehub/lobehub 2.0.0-next.127 → 2.0.0-next.129
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/.env.example +23 -3
- package/.env.example.development +5 -0
- package/CHANGELOG.md +50 -0
- package/README.md +6 -6
- package/README.zh-CN.md +6 -6
- package/changelog/v1.json +18 -0
- package/docker-compose/local/docker-compose.yml +24 -1
- package/docker-compose/local/logto/docker-compose.yml +25 -2
- package/docker-compose.development.yml +6 -0
- package/docs/development/database-schema.dbml +8 -6
- package/locales/ar/auth.json +114 -1
- package/locales/bg-BG/auth.json +114 -1
- package/locales/de-DE/auth.json +114 -1
- package/locales/en-US/auth.json +42 -22
- package/locales/es-ES/auth.json +114 -1
- package/locales/fa-IR/auth.json +114 -1
- package/locales/fr-FR/auth.json +114 -1
- package/locales/it-IT/auth.json +114 -1
- package/locales/ja-JP/auth.json +114 -1
- package/locales/ko-KR/auth.json +114 -1
- package/locales/nl-NL/auth.json +114 -1
- package/locales/pl-PL/auth.json +114 -1
- package/locales/pt-BR/auth.json +114 -1
- package/locales/ru-RU/auth.json +114 -1
- package/locales/tr-TR/auth.json +114 -1
- package/locales/vi-VN/auth.json +114 -1
- package/locales/zh-CN/auth.json +36 -29
- package/locales/zh-TW/auth.json +114 -1
- package/package.json +4 -1
- package/packages/database/migrations/0050_thread_and_user_id.sql +18 -0
- package/packages/database/migrations/meta/0050_snapshot.json +8792 -0
- package/packages/database/migrations/meta/_journal.json +7 -0
- package/packages/database/src/client/db.ts +21 -21
- package/packages/database/src/core/migrations.json +51 -10
- package/packages/database/src/repositories/dataImporter/deprecated/index.ts +5 -5
- package/packages/database/src/repositories/dataImporter/index.ts +59 -59
- package/packages/database/src/repositories/knowledge/index.test.ts +17 -5
- package/packages/database/src/repositories/knowledge/index.ts +6 -6
- package/packages/database/src/schemas/generation.ts +16 -16
- package/packages/database/src/schemas/nextauth.ts +3 -3
- package/packages/database/src/schemas/oidc.ts +36 -36
- package/packages/database/src/schemas/topic.ts +8 -3
- package/packages/model-runtime/src/providers/newapi/index.ts +61 -18
- package/packages/model-runtime/src/runtimeMap.ts +1 -0
- package/packages/types/src/topic/thread.ts +3 -3
- package/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/UpdateProviderInfo/SettingModal.tsx +10 -6
- package/src/envs/redis.ts +106 -0
- package/src/libs/redis/index.ts +5 -0
- package/src/libs/redis/manager.test.ts +107 -0
- package/src/libs/redis/manager.ts +56 -0
- package/src/libs/redis/redis.test.ts +158 -0
- package/src/libs/redis/redis.ts +117 -0
- package/src/libs/redis/types.ts +71 -0
- package/src/libs/redis/upstash.test.ts +154 -0
- package/src/libs/redis/upstash.ts +109 -0
- package/src/libs/redis/utils.test.ts +46 -0
- package/src/libs/redis/utils.ts +53 -0
- package/src/store/chat/slices/thread/action.ts +1 -1
- package/src/store/chat/slices/thread/initialState.ts +1 -1
- package/src/store/chat/slices/thread/selectors/util.ts +1 -1
- package/.github/workflows/check-console-log.yml +0 -117
package/.env.example
CHANGED
|
@@ -24,9 +24,29 @@
|
|
|
24
24
|
# Example: Allow specific internal servers while keeping SSRF protection
|
|
25
25
|
# SSRF_ALLOW_IP_ADDRESS_LIST=192.168.1.100,10.0.0.50
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
########################################
|
|
28
|
+
############ Redis Settings ############
|
|
29
|
+
########################################
|
|
30
|
+
|
|
31
|
+
# Connection string for self-hosted Redis (Docker/K8s/managed). Use container hostname when running via docker-compose.
|
|
32
|
+
# REDIS_URL=redis://localhost:6379
|
|
33
|
+
|
|
34
|
+
# Optional database index.
|
|
35
|
+
# REDIS_DATABASE=0
|
|
36
|
+
|
|
37
|
+
# Optional authentication for managed Redis.
|
|
38
|
+
# REDIS_USERNAME=default
|
|
39
|
+
# REDIS_PASSWORD=yourpassword
|
|
40
|
+
|
|
41
|
+
# Set to '1' to enforce TLS when connecting to managed Redis or rediss:// endpoints.
|
|
42
|
+
# REDIS_TLS=0
|
|
43
|
+
|
|
44
|
+
# Namespace prefix for cache/queue keys.
|
|
45
|
+
# REDIS_PREFIX=lobechat
|
|
46
|
+
|
|
47
|
+
########################################
|
|
48
|
+
########## AI Provider Service #########
|
|
49
|
+
########################################
|
|
30
50
|
|
|
31
51
|
# ## OpenAI ###
|
|
32
52
|
|
package/.env.example.development
CHANGED
|
@@ -31,6 +31,11 @@ DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@localhost:5432/${LOBE_DB
|
|
|
31
31
|
# Database driver type
|
|
32
32
|
DATABASE_DRIVER=node
|
|
33
33
|
|
|
34
|
+
# Redis Cache/Queue Configuration
|
|
35
|
+
REDIS_URL=redis://localhost:6379
|
|
36
|
+
REDIS_PREFIX=lobechat
|
|
37
|
+
REDIS_TLS=0
|
|
38
|
+
|
|
34
39
|
# Authentication Configuration
|
|
35
40
|
# Enable Better Auth authentication
|
|
36
41
|
NEXT_PUBLIC_ENABLE_BETTER_AUTH=1
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
## [Version 2.0.0-next.129](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.128...v2.0.0-next.129)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2025-11-28**</sup>
|
|
8
|
+
|
|
9
|
+
#### 🐛 Bug Fixes
|
|
10
|
+
|
|
11
|
+
- **misc**: Filter out file with `sourceType` = `file`.
|
|
12
|
+
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
<details>
|
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
17
|
+
|
|
18
|
+
#### What's fixed
|
|
19
|
+
|
|
20
|
+
- **misc**: Filter out file with `sourceType` = `file`, closes [#10474](https://github.com/lobehub/lobe-chat/issues/10474) ([e1c99a0](https://github.com/lobehub/lobe-chat/commit/e1c99a0))
|
|
21
|
+
|
|
22
|
+
</details>
|
|
23
|
+
|
|
24
|
+
<div align="right">
|
|
25
|
+
|
|
26
|
+
[](#readme-top)
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
## [Version 2.0.0-next.128](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.127...v2.0.0-next.128)
|
|
31
|
+
|
|
32
|
+
<sup>Released on **2025-11-28**</sup>
|
|
33
|
+
|
|
34
|
+
#### 💄 Styles
|
|
35
|
+
|
|
36
|
+
- **misc**: Update i18n.
|
|
37
|
+
|
|
38
|
+
<br/>
|
|
39
|
+
|
|
40
|
+
<details>
|
|
41
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
42
|
+
|
|
43
|
+
#### Styles
|
|
44
|
+
|
|
45
|
+
- **misc**: Update i18n, closes [#10466](https://github.com/lobehub/lobe-chat/issues/10466) ([37bd67a](https://github.com/lobehub/lobe-chat/commit/37bd67a))
|
|
46
|
+
|
|
47
|
+
</details>
|
|
48
|
+
|
|
49
|
+
<div align="right">
|
|
50
|
+
|
|
51
|
+
[](#readme-top)
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
|
|
5
55
|
## [Version 2.0.0-next.127](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.126...v2.0.0-next.127)
|
|
6
56
|
|
|
7
57
|
<sup>Released on **2025-11-27**</sup>
|
package/README.md
CHANGED
|
@@ -345,12 +345,12 @@ In addition, these plugins are not limited to news aggregation, but can also ext
|
|
|
345
345
|
|
|
346
346
|
<!-- PLUGIN LIST -->
|
|
347
347
|
|
|
348
|
-
| Recent Submits
|
|
349
|
-
|
|
|
350
|
-
| [
|
|
351
|
-
| [
|
|
352
|
-
| [
|
|
353
|
-
| [
|
|
348
|
+
| Recent Submits | Description |
|
|
349
|
+
| -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
350
|
+
| [PortfolioMeta](https://lobechat.com/discover/plugin/StockData)<br/><sup>By **portfoliometa** on **2025-11-28**</sup> | Analyze stocks and get comprehensive real-time investment data and analytics.<br/>`stock` |
|
|
351
|
+
| [SEO](https://lobechat.com/discover/plugin/SEO)<br/><sup>By **orrenprunckun** on **2025-11-14**</sup> | Enter any URL and keyword and get an On-Page SEO analysis & insights!<br/>`seo` |
|
|
352
|
+
| [Shopping tools](https://lobechat.com/discover/plugin/ShoppingTools)<br/><sup>By **shoppingtools** on **2025-10-27**</sup> | Search for products on eBay & AliExpress, find eBay events & coupons. Get prompt examples.<br/>`shopping` `e-bay` `ali-express` `coupons` |
|
|
353
|
+
| [Web](https://lobechat.com/discover/plugin/web)<br/><sup>By **Proghit** on **2025-01-24**</sup> | Smart web search that reads and analyzes pages to deliver comprehensive answers from Google results.<br/>`web` `search` |
|
|
354
354
|
|
|
355
355
|
> 📊 Total plugins: [<kbd>**41**</kbd>](https://lobechat.com/discover/plugins)
|
|
356
356
|
|
package/README.zh-CN.md
CHANGED
|
@@ -338,12 +338,12 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
|
|
338
338
|
|
|
339
339
|
<!-- PLUGIN LIST -->
|
|
340
340
|
|
|
341
|
-
| 最近新增
|
|
342
|
-
|
|
|
343
|
-
| [
|
|
344
|
-
| [
|
|
345
|
-
| [
|
|
346
|
-
| [
|
|
341
|
+
| 最近新增 | 描述 |
|
|
342
|
+
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
343
|
+
| [PortfolioMeta](https://lobechat.com/discover/plugin/StockData)<br/><sup>By **portfoliometa** on **2025-11-28**</sup> | 分析股票并获取全面的实时投资数据和分析。<br/>`股票` |
|
|
344
|
+
| [SEO](https://lobechat.com/discover/plugin/SEO)<br/><sup>By **orrenprunckun** on **2025-11-14**</sup> | 输入任何 URL 和关键词,获取页面 SEO 分析和见解!<br/>`seo` |
|
|
345
|
+
| [购物工具](https://lobechat.com/discover/plugin/ShoppingTools)<br/><sup>By **shoppingtools** on **2025-10-27**</sup> | 在 eBay 和 AliExpress 上搜索产品,查找 eBay 活动和优惠券。获取快速示例。<br/>`购物` `e-bay` `ali-express` `优惠券` |
|
|
346
|
+
| [网页](https://lobechat.com/discover/plugin/web)<br/><sup>By **Proghit** on **2025-01-24**</sup> | 智能网页搜索,读取和分析页面,以提供来自 Google 结果的全面答案。<br/>`网页` `搜索` |
|
|
347
347
|
|
|
348
348
|
> 📊 Total plugins: [<kbd>**41**</kbd>](https://lobechat.com/discover/plugins)
|
|
349
349
|
|
package/changelog/v1.json
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"children": {
|
|
4
|
+
"fixes": [
|
|
5
|
+
"Filter out file with sourceType = file."
|
|
6
|
+
]
|
|
7
|
+
},
|
|
8
|
+
"date": "2025-11-28",
|
|
9
|
+
"version": "2.0.0-next.129"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"children": {
|
|
13
|
+
"improvements": [
|
|
14
|
+
"Update i18n."
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"date": "2025-11-28",
|
|
18
|
+
"version": "2.0.0-next.128"
|
|
19
|
+
},
|
|
2
20
|
{
|
|
3
21
|
"children": {
|
|
4
22
|
"fixes": [
|
|
@@ -35,6 +35,23 @@ services:
|
|
|
35
35
|
networks:
|
|
36
36
|
- lobe-network
|
|
37
37
|
|
|
38
|
+
redis:
|
|
39
|
+
image: redis:7-alpine
|
|
40
|
+
container_name: lobe-redis
|
|
41
|
+
ports:
|
|
42
|
+
- '6379:6379'
|
|
43
|
+
command: redis-server --save 60 1000 --appendonly yes
|
|
44
|
+
volumes:
|
|
45
|
+
- 'redis_data:/data'
|
|
46
|
+
healthcheck:
|
|
47
|
+
test: ['CMD', 'redis-cli', 'ping']
|
|
48
|
+
interval: 5s
|
|
49
|
+
timeout: 3s
|
|
50
|
+
retries: 5
|
|
51
|
+
restart: always
|
|
52
|
+
networks:
|
|
53
|
+
- lobe-network
|
|
54
|
+
|
|
38
55
|
minio:
|
|
39
56
|
image: minio/minio:RELEASE.2025-04-22T22-12-26Z
|
|
40
57
|
container_name: lobe-minio
|
|
@@ -107,6 +124,8 @@ services:
|
|
|
107
124
|
condition: service_started
|
|
108
125
|
casdoor:
|
|
109
126
|
condition: service_started
|
|
127
|
+
redis:
|
|
128
|
+
condition: service_healthy
|
|
110
129
|
|
|
111
130
|
environment:
|
|
112
131
|
- 'NEXT_AUTH_SSO_PROVIDERS=casdoor'
|
|
@@ -121,6 +140,9 @@ services:
|
|
|
121
140
|
- 'LLM_VISION_IMAGE_USE_BASE64=1'
|
|
122
141
|
- 'S3_SET_ACL=0'
|
|
123
142
|
- 'SEARXNG_URL=http://searxng:8080'
|
|
143
|
+
- 'REDIS_URL=redis://redis:6379'
|
|
144
|
+
- 'REDIS_PREFIX=lobechat'
|
|
145
|
+
- 'REDIS_TLS=0'
|
|
124
146
|
env_file:
|
|
125
147
|
- .env
|
|
126
148
|
restart: always
|
|
@@ -248,7 +270,8 @@ volumes:
|
|
|
248
270
|
driver: local
|
|
249
271
|
prometheus_data:
|
|
250
272
|
driver: local
|
|
251
|
-
|
|
273
|
+
redis_data:
|
|
274
|
+
driver: local
|
|
252
275
|
|
|
253
276
|
networks:
|
|
254
277
|
lobe-network:
|
|
@@ -32,10 +32,27 @@ services:
|
|
|
32
32
|
networks:
|
|
33
33
|
- lobe-network
|
|
34
34
|
|
|
35
|
+
redis:
|
|
36
|
+
image: redis:7-alpine
|
|
37
|
+
container_name: lobe-redis
|
|
38
|
+
ports:
|
|
39
|
+
- '6379:6379'
|
|
40
|
+
command: redis-server --save 60 1000 --appendonly yes
|
|
41
|
+
volumes:
|
|
42
|
+
- 'redis_data:/data'
|
|
43
|
+
healthcheck:
|
|
44
|
+
test: ['CMD', 'redis-cli', 'ping']
|
|
45
|
+
interval: 5s
|
|
46
|
+
timeout: 3s
|
|
47
|
+
retries: 5
|
|
48
|
+
restart: always
|
|
49
|
+
networks:
|
|
50
|
+
- lobe-network
|
|
51
|
+
|
|
35
52
|
minio:
|
|
36
53
|
image: minio/minio:RELEASE.2025-04-22T22-12-26Z
|
|
37
54
|
container_name: lobe-minio
|
|
38
|
-
network_mode:
|
|
55
|
+
network_mode: "service:network-service"
|
|
39
56
|
volumes:
|
|
40
57
|
- './s3_data:/etc/minio/data'
|
|
41
58
|
environment:
|
|
@@ -46,7 +63,6 @@ services:
|
|
|
46
63
|
command: >
|
|
47
64
|
server /etc/minio/data --address ":${MINIO_PORT}" --console-address ":9001"
|
|
48
65
|
|
|
49
|
-
|
|
50
66
|
logto:
|
|
51
67
|
image: svhd/logto
|
|
52
68
|
container_name: lobe-logto
|
|
@@ -75,6 +91,8 @@ services:
|
|
|
75
91
|
condition: service_started
|
|
76
92
|
logto:
|
|
77
93
|
condition: service_started
|
|
94
|
+
redis:
|
|
95
|
+
condition: service_healthy
|
|
78
96
|
|
|
79
97
|
environment:
|
|
80
98
|
- 'APP_URL=http://localhost:3210'
|
|
@@ -88,6 +106,9 @@ services:
|
|
|
88
106
|
- 'S3_BUCKET=${MINIO_LOBE_BUCKET}'
|
|
89
107
|
- 'S3_PUBLIC_DOMAIN=http://localhost:${MINIO_PORT}'
|
|
90
108
|
- 'S3_ENABLE_PATH_STYLE=1'
|
|
109
|
+
- 'REDIS_URL=redis://redis:6379'
|
|
110
|
+
- 'REDIS_PREFIX=lobechat'
|
|
111
|
+
- 'REDIS_TLS=0'
|
|
91
112
|
env_file:
|
|
92
113
|
- .env
|
|
93
114
|
restart: always
|
|
@@ -97,6 +118,8 @@ volumes:
|
|
|
97
118
|
driver: local
|
|
98
119
|
s3_data:
|
|
99
120
|
driver: local
|
|
121
|
+
redis_data:
|
|
122
|
+
driver: local
|
|
100
123
|
|
|
101
124
|
networks:
|
|
102
125
|
lobe-network:
|
|
@@ -19,6 +19,10 @@ services:
|
|
|
19
19
|
extends:
|
|
20
20
|
file: docker-compose/local/docker-compose.yml
|
|
21
21
|
service: postgresql
|
|
22
|
+
redis:
|
|
23
|
+
extends:
|
|
24
|
+
file: docker-compose/local/docker-compose.yml
|
|
25
|
+
service: redis
|
|
22
26
|
minio:
|
|
23
27
|
extends:
|
|
24
28
|
file: docker-compose/local/docker-compose.yml
|
|
@@ -78,6 +82,8 @@ volumes:
|
|
|
78
82
|
driver: local
|
|
79
83
|
prometheus_data:
|
|
80
84
|
driver: local
|
|
85
|
+
redis_data:
|
|
86
|
+
driver: local
|
|
81
87
|
|
|
82
88
|
networks:
|
|
83
89
|
lobe-network:
|
|
@@ -506,7 +506,7 @@ table nextauth_accounts {
|
|
|
506
506
|
session_state text
|
|
507
507
|
token_type text
|
|
508
508
|
type text [not null]
|
|
509
|
-
|
|
509
|
+
user_id text [not null]
|
|
510
510
|
|
|
511
511
|
indexes {
|
|
512
512
|
(provider, providerAccountId) [pk]
|
|
@@ -521,17 +521,17 @@ table nextauth_authenticators {
|
|
|
521
521
|
credentialPublicKey text [not null]
|
|
522
522
|
providerAccountId text [not null]
|
|
523
523
|
transports text
|
|
524
|
-
|
|
524
|
+
user_id text [not null]
|
|
525
525
|
|
|
526
526
|
indexes {
|
|
527
|
-
(
|
|
527
|
+
(user_id, credentialID) [pk]
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
530
|
|
|
531
531
|
table nextauth_sessions {
|
|
532
532
|
expires timestamp [not null]
|
|
533
533
|
sessionToken text [pk, not null]
|
|
534
|
-
|
|
534
|
+
user_id text [not null]
|
|
535
535
|
}
|
|
536
536
|
|
|
537
537
|
table nextauth_verificationtokens {
|
|
@@ -925,10 +925,12 @@ table sessions {
|
|
|
925
925
|
table threads {
|
|
926
926
|
id text [pk, not null]
|
|
927
927
|
title text
|
|
928
|
+
content text
|
|
929
|
+
editor_data jsonb
|
|
928
930
|
type text [not null]
|
|
929
|
-
status text
|
|
931
|
+
status text
|
|
930
932
|
topic_id text [not null]
|
|
931
|
-
source_message_id text
|
|
933
|
+
source_message_id text
|
|
932
934
|
parent_thread_id text
|
|
933
935
|
client_id text
|
|
934
936
|
user_id text [not null]
|
package/locales/ar/auth.json
CHANGED
|
@@ -52,6 +52,104 @@
|
|
|
52
52
|
"required": "لا يمكن أن يكون المحتوى فارغًا"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
|
+
"betterAuth": {
|
|
56
|
+
"errors": {
|
|
57
|
+
"emailInvalid": "يرجى إدخال عنوان بريد إلكتروني صالح",
|
|
58
|
+
"emailNotRegistered": "هذا البريد الإلكتروني غير مسجل",
|
|
59
|
+
"emailNotVerified": "لم يتم التحقق من البريد الإلكتروني، يرجى التحقق أولاً",
|
|
60
|
+
"emailRequired": "يرجى إدخال عنوان البريد الإلكتروني",
|
|
61
|
+
"firstNameRequired": "يرجى إدخال الاسم الأول",
|
|
62
|
+
"lastNameRequired": "يرجى إدخال اسم العائلة",
|
|
63
|
+
"loginFailed": "فشل تسجيل الدخول، يرجى التحقق من البريد الإلكتروني وكلمة المرور",
|
|
64
|
+
"passwordFormat": "يجب أن تحتوي كلمة المرور على أحرف وأرقام",
|
|
65
|
+
"passwordMaxLength": "يجب ألا تتجاوز كلمة المرور 64 حرفًا",
|
|
66
|
+
"passwordMinLength": "يجب أن تتكون كلمة المرور من 8 أحرف على الأقل",
|
|
67
|
+
"passwordRequired": "يرجى إدخال كلمة المرور",
|
|
68
|
+
"usernameRequired": "يرجى إدخال اسم المستخدم"
|
|
69
|
+
},
|
|
70
|
+
"resetPassword": {
|
|
71
|
+
"backToSignIn": "العودة إلى تسجيل الدخول",
|
|
72
|
+
"confirmPasswordPlaceholder": "تأكيد كلمة المرور الجديدة",
|
|
73
|
+
"confirmPasswordRequired": "يرجى تأكيد كلمة المرور الجديدة",
|
|
74
|
+
"description": "يرجى إدخال كلمة المرور الجديدة",
|
|
75
|
+
"error": "فشل إعادة تعيين كلمة المرور، يرجى المحاولة مرة أخرى",
|
|
76
|
+
"invalidToken": "رابط إعادة التعيين غير صالح أو منتهي الصلاحية",
|
|
77
|
+
"newPasswordPlaceholder": "أدخل كلمة المرور الجديدة",
|
|
78
|
+
"passwordMismatch": "كلمتا المرور غير متطابقتين",
|
|
79
|
+
"submit": "إعادة تعيين كلمة المرور",
|
|
80
|
+
"success": "تمت إعادة تعيين كلمة المرور بنجاح، يرجى تسجيل الدخول باستخدام كلمة المرور الجديدة",
|
|
81
|
+
"title": "إعادة تعيين كلمة المرور"
|
|
82
|
+
},
|
|
83
|
+
"signin": {
|
|
84
|
+
"backToEmail": "العودة لتعديل البريد الإلكتروني",
|
|
85
|
+
"continueWithAuth0": "تسجيل الدخول باستخدام Auth0",
|
|
86
|
+
"continueWithAuthelia": "تسجيل الدخول باستخدام Authelia",
|
|
87
|
+
"continueWithAuthentik": "تسجيل الدخول باستخدام Authentik",
|
|
88
|
+
"continueWithCasdoor": "تسجيل الدخول باستخدام Casdoor",
|
|
89
|
+
"continueWithCloudflareZeroTrust": "تسجيل الدخول باستخدام Cloudflare Zero Trust",
|
|
90
|
+
"continueWithCognito": "تسجيل الدخول باستخدام AWS Cognito",
|
|
91
|
+
"continueWithFeishu": "تسجيل الدخول باستخدام Feishu",
|
|
92
|
+
"continueWithGithub": "تسجيل الدخول باستخدام GitHub",
|
|
93
|
+
"continueWithGoogle": "تسجيل الدخول باستخدام Google",
|
|
94
|
+
"continueWithKeycloak": "تسجيل الدخول باستخدام Keycloak",
|
|
95
|
+
"continueWithLogto": "تسجيل الدخول باستخدام Logto",
|
|
96
|
+
"continueWithMicrosoft": "تسجيل الدخول باستخدام Microsoft",
|
|
97
|
+
"continueWithOIDC": "تسجيل الدخول باستخدام OIDC",
|
|
98
|
+
"continueWithOkta": "تسجيل الدخول باستخدام Okta",
|
|
99
|
+
"continueWithWechat": "تسجيل الدخول باستخدام WeChat",
|
|
100
|
+
"continueWithZitadel": "تسجيل الدخول باستخدام Zitadel",
|
|
101
|
+
"emailPlaceholder": "يرجى إدخال عنوان البريد الإلكتروني",
|
|
102
|
+
"emailStep": {
|
|
103
|
+
"subtitle": "يرجى إدخال بريدك الإلكتروني للمتابعة",
|
|
104
|
+
"title": "تسجيل الدخول"
|
|
105
|
+
},
|
|
106
|
+
"error": "فشل تسجيل الدخول، يرجى التحقق من البريد الإلكتروني وكلمة المرور",
|
|
107
|
+
"forgotPassword": "هل نسيت كلمة المرور؟",
|
|
108
|
+
"forgotPasswordError": "فشل إرسال رابط إعادة تعيين كلمة المرور",
|
|
109
|
+
"forgotPasswordSent": "تم إرسال رابط إعادة تعيين كلمة المرور، يرجى التحقق من بريدك الإلكتروني",
|
|
110
|
+
"magicLinkButton": "إرسال رابط تسجيل الدخول",
|
|
111
|
+
"magicLinkError": "فشل إرسال رابط تسجيل الدخول، يرجى المحاولة لاحقًا",
|
|
112
|
+
"magicLinkSent": "تم إرسال رابط تسجيل الدخول، يرجى التحقق من بريدك الإلكتروني",
|
|
113
|
+
"nextStep": "الخطوة التالية",
|
|
114
|
+
"noAccount": "ليس لديك حساب؟",
|
|
115
|
+
"orContinueWith": "أو المتابعة باستخدام",
|
|
116
|
+
"passwordPlaceholder": "يرجى إدخال كلمة المرور",
|
|
117
|
+
"passwordStep": {
|
|
118
|
+
"subtitle": "يرجى إدخال كلمة المرور للمتابعة"
|
|
119
|
+
},
|
|
120
|
+
"signupLink": "سجّل الآن",
|
|
121
|
+
"socialError": "فشل تسجيل الدخول عبر الشبكات الاجتماعية، يرجى المحاولة مرة أخرى",
|
|
122
|
+
"socialOnlyHint": "تم تسجيل هذا البريد الإلكتروني باستخدام حساب اجتماعي، يرجى تسجيل الدخول باستخدامه",
|
|
123
|
+
"submit": "تسجيل الدخول"
|
|
124
|
+
},
|
|
125
|
+
"signup": {
|
|
126
|
+
"emailPlaceholder": "يرجى إدخال عنوان البريد الإلكتروني",
|
|
127
|
+
"error": "فشل التسجيل، يرجى المحاولة مرة أخرى",
|
|
128
|
+
"firstNamePlaceholder": "الاسم الأول",
|
|
129
|
+
"hasAccount": "هل لديك حساب؟",
|
|
130
|
+
"lastNamePlaceholder": "اسم العائلة",
|
|
131
|
+
"passwordPlaceholder": "يرجى إدخال كلمة المرور",
|
|
132
|
+
"signinLink": "تسجيل الدخول الآن",
|
|
133
|
+
"submit": "تسجيل",
|
|
134
|
+
"subtitle": "انضم إلى مجتمع LobeChat",
|
|
135
|
+
"success": "تم التسجيل بنجاح! يرجى التحقق من بريدك الإلكتروني لتأكيد الحساب",
|
|
136
|
+
"title": "إنشاء حساب",
|
|
137
|
+
"usernamePlaceholder": "يرجى إدخال اسم المستخدم"
|
|
138
|
+
},
|
|
139
|
+
"verifyEmail": {
|
|
140
|
+
"backToSignIn": "العودة إلى تسجيل الدخول",
|
|
141
|
+
"checkSpam": "إذا لم تتلقَ البريد الإلكتروني، يرجى التحقق من مجلد الرسائل غير المرغوب فيها",
|
|
142
|
+
"descriptionPrefix": "لقد أرسلنا رسالة تحقق إلى",
|
|
143
|
+
"descriptionSuffix": "",
|
|
144
|
+
"resend": {
|
|
145
|
+
"button": "إعادة إرسال رسالة التحقق",
|
|
146
|
+
"error": "فشل الإرسال، يرجى المحاولة لاحقًا",
|
|
147
|
+
"noEmail": "عنوان البريد الإلكتروني مفقود",
|
|
148
|
+
"success": "تمت إعادة إرسال رسالة التحقق، يرجى التحقق من بريدك الإلكتروني"
|
|
149
|
+
},
|
|
150
|
+
"title": "تحقق من بريدك الإلكتروني"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
55
153
|
"date": {
|
|
56
154
|
"prevMonth": "الشهر الماضي",
|
|
57
155
|
"recent30Days": "آخر 30 يومًا"
|
|
@@ -86,16 +184,31 @@
|
|
|
86
184
|
"loginOrSignup": "تسجيل الدخول / الاشتراك",
|
|
87
185
|
"profile": {
|
|
88
186
|
"avatar": "الصورة الشخصية",
|
|
187
|
+
"cancel": "إلغاء",
|
|
188
|
+
"changePassword": "إعادة تعيين كلمة المرور",
|
|
89
189
|
"email": "عنوان البريد الإلكتروني",
|
|
190
|
+
"fullName": "الاسم الكامل",
|
|
191
|
+
"fullNameInputHint": "يرجى إدخال الاسم الكامل الجديد",
|
|
192
|
+
"password": "كلمة المرور",
|
|
193
|
+
"resetPasswordError": "فشل إرسال رابط إعادة تعيين كلمة المرور",
|
|
194
|
+
"resetPasswordSent": "تم إرسال رابط إعادة تعيين كلمة المرور، يرجى التحقق من بريدك الإلكتروني",
|
|
195
|
+
"save": "حفظ",
|
|
90
196
|
"sso": {
|
|
197
|
+
"link": {
|
|
198
|
+
"button": "ربط الحساب",
|
|
199
|
+
"success": "تم ربط الحساب بنجاح"
|
|
200
|
+
},
|
|
91
201
|
"loading": "جارٍ تحميل الحسابات المرتبطة من طرف ثالث",
|
|
92
202
|
"providers": "الحسابات المتصلة",
|
|
93
203
|
"unlink": {
|
|
94
|
-
"description": "بعد
|
|
204
|
+
"description": "بعد إلغاء الربط، لن تتمكن من تسجيل الدخول باستخدام حساب {{provider}} \"{{providerAccountId}}\". إذا كنت ترغب في ربط حساب {{provider}} بهذا الحساب مرة أخرى، يرجى التأكد من أن عنوان البريد الإلكتروني لحساب {{provider}} هو {{email}}، وسنقوم بربطه تلقائيًا عند تسجيل الدخول.",
|
|
95
205
|
"forbidden": "يجب أن تحتفظ بحساب طرف ثالث واحد على الأقل مرتبطًا.",
|
|
96
206
|
"title": "هل تريد فصل حساب الطرف الثالث {{provider}}؟"
|
|
97
207
|
}
|
|
98
208
|
},
|
|
209
|
+
"title": "تفاصيل الملف الشخصي",
|
|
210
|
+
"updateAvatar": "تحديث الصورة الشخصية",
|
|
211
|
+
"updateFullName": "تحديث الاسم الكامل",
|
|
99
212
|
"username": "اسم المستخدم"
|
|
100
213
|
},
|
|
101
214
|
"signout": "تسجيل الخروج",
|
package/locales/bg-BG/auth.json
CHANGED
|
@@ -52,6 +52,104 @@
|
|
|
52
52
|
"required": "Полето не може да бъде празно"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
|
+
"betterAuth": {
|
|
56
|
+
"errors": {
|
|
57
|
+
"emailInvalid": "Моля, въведете валиден имейл адрес",
|
|
58
|
+
"emailNotRegistered": "Този имейл все още не е регистриран",
|
|
59
|
+
"emailNotVerified": "Имейлът не е потвърден, моля първо го потвърдете",
|
|
60
|
+
"emailRequired": "Моля, въведете имейл адрес",
|
|
61
|
+
"firstNameRequired": "Моля, въведете собствено име",
|
|
62
|
+
"lastNameRequired": "Моля, въведете фамилно име",
|
|
63
|
+
"loginFailed": "Входът не бе успешен, моля проверете имейла и паролата",
|
|
64
|
+
"passwordFormat": "Паролата трябва да съдържа както букви, така и цифри",
|
|
65
|
+
"passwordMaxLength": "Паролата не може да надвишава 64 знака",
|
|
66
|
+
"passwordMinLength": "Паролата трябва да бъде поне 8 знака",
|
|
67
|
+
"passwordRequired": "Моля, въведете парола",
|
|
68
|
+
"usernameRequired": "Моля, въведете потребителско име"
|
|
69
|
+
},
|
|
70
|
+
"resetPassword": {
|
|
71
|
+
"backToSignIn": "Обратно към вход",
|
|
72
|
+
"confirmPasswordPlaceholder": "Потвърдете новата парола",
|
|
73
|
+
"confirmPasswordRequired": "Моля, потвърдете новата парола",
|
|
74
|
+
"description": "Моля, въведете новата си парола",
|
|
75
|
+
"error": "Неуспешно нулиране на паролата, моля опитайте отново",
|
|
76
|
+
"invalidToken": "Невалиден или изтекъл линк за нулиране",
|
|
77
|
+
"newPasswordPlaceholder": "Въведете нова парола",
|
|
78
|
+
"passwordMismatch": "Двете пароли не съвпадат",
|
|
79
|
+
"submit": "Нулирай паролата",
|
|
80
|
+
"success": "Паролата е успешно нулирана, моля влезте с новата парола",
|
|
81
|
+
"title": "Нулиране на парола"
|
|
82
|
+
},
|
|
83
|
+
"signin": {
|
|
84
|
+
"backToEmail": "Обратно към редактиране на имейл",
|
|
85
|
+
"continueWithAuth0": "Вход с Auth0",
|
|
86
|
+
"continueWithAuthelia": "Вход с Authelia",
|
|
87
|
+
"continueWithAuthentik": "Вход с Authentik",
|
|
88
|
+
"continueWithCasdoor": "Вход с Casdoor",
|
|
89
|
+
"continueWithCloudflareZeroTrust": "Вход с Cloudflare Zero Trust",
|
|
90
|
+
"continueWithCognito": "Вход с AWS Cognito",
|
|
91
|
+
"continueWithFeishu": "Вход с Feishu",
|
|
92
|
+
"continueWithGithub": "Вход с GitHub",
|
|
93
|
+
"continueWithGoogle": "Вход с Google",
|
|
94
|
+
"continueWithKeycloak": "Вход с Keycloak",
|
|
95
|
+
"continueWithLogto": "Вход с Logto",
|
|
96
|
+
"continueWithMicrosoft": "Вход с Microsoft",
|
|
97
|
+
"continueWithOIDC": "Вход с OIDC",
|
|
98
|
+
"continueWithOkta": "Вход с Okta",
|
|
99
|
+
"continueWithWechat": "Вход с WeChat",
|
|
100
|
+
"continueWithZitadel": "Вход с Zitadel",
|
|
101
|
+
"emailPlaceholder": "Моля, въведете имейл адрес",
|
|
102
|
+
"emailStep": {
|
|
103
|
+
"subtitle": "Моля, въведете имейл адреса си, за да продължите",
|
|
104
|
+
"title": "Вход"
|
|
105
|
+
},
|
|
106
|
+
"error": "Входът не бе успешен, моля проверете имейла и паролата",
|
|
107
|
+
"forgotPassword": "Забравена парола?",
|
|
108
|
+
"forgotPasswordError": "Неуспешно изпращане на линк за нулиране на парола",
|
|
109
|
+
"forgotPasswordSent": "Линк за нулиране на парола е изпратен, моля проверете имейла си",
|
|
110
|
+
"magicLinkButton": "Изпрати линк за вход",
|
|
111
|
+
"magicLinkError": "Неуспешно изпращане на линк за вход, моля опитайте по-късно",
|
|
112
|
+
"magicLinkSent": "Линк за вход е изпратен, моля проверете имейла си",
|
|
113
|
+
"nextStep": "Следваща стъпка",
|
|
114
|
+
"noAccount": "Нямате акаунт?",
|
|
115
|
+
"orContinueWith": "или",
|
|
116
|
+
"passwordPlaceholder": "Моля, въведете парола",
|
|
117
|
+
"passwordStep": {
|
|
118
|
+
"subtitle": "Моля, въведете паролата си, за да продължите"
|
|
119
|
+
},
|
|
120
|
+
"signupLink": "Регистрирайте се сега",
|
|
121
|
+
"socialError": "Неуспешен социален вход, моля опитайте отново",
|
|
122
|
+
"socialOnlyHint": "Този имейл е регистриран чрез социален акаунт, моля влезте чрез него",
|
|
123
|
+
"submit": "Вход"
|
|
124
|
+
},
|
|
125
|
+
"signup": {
|
|
126
|
+
"emailPlaceholder": "Моля, въведете имейл адрес",
|
|
127
|
+
"error": "Регистрацията не бе успешна, моля опитайте отново",
|
|
128
|
+
"firstNamePlaceholder": "Собствено име",
|
|
129
|
+
"hasAccount": "Вече имате акаунт?",
|
|
130
|
+
"lastNamePlaceholder": "Фамилно име",
|
|
131
|
+
"passwordPlaceholder": "Моля, въведете парола",
|
|
132
|
+
"signinLink": "Влезте сега",
|
|
133
|
+
"submit": "Регистрация",
|
|
134
|
+
"subtitle": "Присъединете се към общността на LobeChat",
|
|
135
|
+
"success": "Регистрацията е успешна! Моля, проверете имейла си за потвърждение",
|
|
136
|
+
"title": "Създаване на акаунт",
|
|
137
|
+
"usernamePlaceholder": "Моля, въведете потребителско име"
|
|
138
|
+
},
|
|
139
|
+
"verifyEmail": {
|
|
140
|
+
"backToSignIn": "Обратно към вход",
|
|
141
|
+
"checkSpam": "Ако не сте получили имейл, моля проверете папката със спам",
|
|
142
|
+
"descriptionPrefix": "Изпратихме имейл за потвърждение на",
|
|
143
|
+
"descriptionSuffix": "",
|
|
144
|
+
"resend": {
|
|
145
|
+
"button": "Изпрати отново имейл за потвърждение",
|
|
146
|
+
"error": "Изпращането не бе успешно, моля опитайте по-късно",
|
|
147
|
+
"noEmail": "Липсва имейл адрес",
|
|
148
|
+
"success": "Имейлът за потвърждение е изпратен отново, моля проверете пощата си"
|
|
149
|
+
},
|
|
150
|
+
"title": "Потвърдете имейла си"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
55
153
|
"date": {
|
|
56
154
|
"prevMonth": "Миналия месец",
|
|
57
155
|
"recent30Days": "Последните 30 дни"
|
|
@@ -86,16 +184,31 @@
|
|
|
86
184
|
"loginOrSignup": "Вход / Регистрация",
|
|
87
185
|
"profile": {
|
|
88
186
|
"avatar": "Аватар",
|
|
187
|
+
"cancel": "Отказ",
|
|
188
|
+
"changePassword": "Нулиране на парола",
|
|
89
189
|
"email": "Имейл адрес",
|
|
190
|
+
"fullName": "Пълно име",
|
|
191
|
+
"fullNameInputHint": "Моля, въведете новото си пълно име",
|
|
192
|
+
"password": "Парола",
|
|
193
|
+
"resetPasswordError": "Неуспешно изпращане на линк за нулиране на парола",
|
|
194
|
+
"resetPasswordSent": "Линк за нулиране на парола е изпратен, моля проверете имейла си",
|
|
195
|
+
"save": "Запази",
|
|
90
196
|
"sso": {
|
|
197
|
+
"link": {
|
|
198
|
+
"button": "Свържи акаунт",
|
|
199
|
+
"success": "Акаунтът е успешно свързан"
|
|
200
|
+
},
|
|
91
201
|
"loading": "Зареждане на свързаните трети страни акаунти",
|
|
92
202
|
"providers": "Свързани акаунти",
|
|
93
203
|
"unlink": {
|
|
94
|
-
"description": "След като
|
|
204
|
+
"description": "След като прекъснете връзката, няма да можете да влизате с акаунта {{provider}} \"{{providerAccountId}}\". Ако искате отново да свържете акаунта {{provider}} с текущия акаунт, уверете се, че имейл адресът на акаунта {{provider}} е {{email}}. Ще го свържем автоматично при следващ вход.",
|
|
95
205
|
"forbidden": "Трябва да имате поне един свързан акаунт на трета страна.",
|
|
96
206
|
"title": "Наистина ли искате да свържете акаунта на трета страна {{provider}}?"
|
|
97
207
|
}
|
|
98
208
|
},
|
|
209
|
+
"title": "Детайли на профила",
|
|
210
|
+
"updateAvatar": "Актуализирай аватара",
|
|
211
|
+
"updateFullName": "Актуализирай пълното име",
|
|
99
212
|
"username": "Потребителско име"
|
|
100
213
|
},
|
|
101
214
|
"signout": "Изход",
|