@lobehub/lobehub 2.0.0-next.126 → 2.0.0-next.128
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/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/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/src/client/db.ts +21 -21
- 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/schemas/generation.ts +16 -16
- package/packages/database/src/schemas/oidc.ts +36 -36
- package/packages/model-runtime/src/providers/newapi/index.ts +61 -18
- package/packages/model-runtime/src/runtimeMap.ts +1 -0
- package/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/UpdateProviderInfo/SettingModal.tsx +10 -6
- package/src/envs/auth.test.ts +60 -0
- package/src/envs/auth.ts +3 -3
- 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/.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.128](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.127...v2.0.0-next.128)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2025-11-28**</sup>
|
|
8
|
+
|
|
9
|
+
#### 💄 Styles
|
|
10
|
+
|
|
11
|
+
- **misc**: Update i18n.
|
|
12
|
+
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
<details>
|
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
17
|
+
|
|
18
|
+
#### Styles
|
|
19
|
+
|
|
20
|
+
- **misc**: Update i18n, closes [#10466](https://github.com/lobehub/lobe-chat/issues/10466) ([37bd67a](https://github.com/lobehub/lobe-chat/commit/37bd67a))
|
|
21
|
+
|
|
22
|
+
</details>
|
|
23
|
+
|
|
24
|
+
<div align="right">
|
|
25
|
+
|
|
26
|
+
[](#readme-top)
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
## [Version 2.0.0-next.127](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.126...v2.0.0-next.127)
|
|
31
|
+
|
|
32
|
+
<sup>Released on **2025-11-27**</sup>
|
|
33
|
+
|
|
34
|
+
#### 🐛 Bug Fixes
|
|
35
|
+
|
|
36
|
+
- **misc**: Better-auth fallback next-auth providers env.
|
|
37
|
+
|
|
38
|
+
<br/>
|
|
39
|
+
|
|
40
|
+
<details>
|
|
41
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
42
|
+
|
|
43
|
+
#### What's fixed
|
|
44
|
+
|
|
45
|
+
- **misc**: Better-auth fallback next-auth providers env, closes [#10459](https://github.com/lobehub/lobe-chat/issues/10459) ([e167075](https://github.com/lobehub/lobe-chat/commit/e167075))
|
|
46
|
+
|
|
47
|
+
</details>
|
|
48
|
+
|
|
49
|
+
<div align="right">
|
|
50
|
+
|
|
51
|
+
[](#readme-top)
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
|
|
5
55
|
## [Version 2.0.0-next.126](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.125...v2.0.0-next.126)
|
|
6
56
|
|
|
7
57
|
<sup>Released on **2025-11-27**</sup>
|
package/changelog/v1.json
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"children": {
|
|
4
|
+
"improvements": [
|
|
5
|
+
"Update i18n."
|
|
6
|
+
]
|
|
7
|
+
},
|
|
8
|
+
"date": "2025-11-28",
|
|
9
|
+
"version": "2.0.0-next.128"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"children": {
|
|
13
|
+
"fixes": [
|
|
14
|
+
"Better-auth fallback next-auth providers env."
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"date": "2025-11-27",
|
|
18
|
+
"version": "2.0.0-next.127"
|
|
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:
|
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": "Изход",
|