gentiq 0.8.2 → 0.9.0
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/dist/{checkbox-BZPTGt7D.js → checkbox-DyzncQpE.js} +1677 -1709
- package/dist/gentiq-admin.es.js +4125 -2909
- package/dist/gentiq-index.es.js +1973 -1380
- package/dist/gentiq.css +1 -1
- package/dist/src/App.d.ts +1 -1
- package/dist/src/ComponentsContext.d.ts +1 -1
- package/dist/src/Part.d.ts +2 -1
- package/dist/src/admin/components/ErrorBanner.d.ts +7 -0
- package/dist/src/admin/components/I18nPreview.d.ts +6 -0
- package/dist/src/admin/components/ModalCloseButton.d.ts +7 -0
- package/dist/src/admin/components/SectionHeader.d.ts +8 -0
- package/dist/src/admin/lib/api.d.ts +137 -14
- package/dist/src/admin/pages/settings/ChatSection.d.ts +12 -0
- package/dist/src/admin/pages/settings/FieldModeGrid.d.ts +14 -0
- package/dist/src/admin/pages/settings/GeneralSection.d.ts +11 -0
- package/dist/src/admin/pages/settings/SettingsToggleCard.d.ts +10 -0
- package/dist/src/admin/pages/settings/TranslationEditor.d.ts +9 -0
- package/dist/src/admin/pages/settings/types.d.ts +12 -0
- package/dist/src/admin/pages/users/UserBulkBalanceModal.d.ts +11 -0
- package/dist/src/admin/pages/users/UserFormModal.d.ts +13 -0
- package/dist/src/admin/pages/users/UserRechargeModal.d.ts +10 -0
- package/dist/src/admin/pages/users/UserUsageDialog.d.ts +9 -0
- package/dist/src/admin/pages/users/UsersTable.d.ts +21 -0
- package/dist/src/components/PromptInputArea.d.ts +1 -1
- package/dist/src/components/ai-elements/Conversation.d.ts +10 -0
- package/dist/src/components/ui/skeleton.d.ts +2 -2
- package/dist/src/hooks/useGentiqAdmin.d.ts +9 -9
- package/dist/src/hooks/useGentiqChat.d.ts +3 -2
- package/dist/src/index.d.ts +4 -3
- package/dist/src/lib/GentiqApiContext.d.ts +12 -0
- package/dist/src/lib/api.d.ts +37 -17
- package/dist/src/lib/errors.d.ts +6 -5
- package/dist/src/lib/messageParts.d.ts +40 -0
- package/dist/src/locales/en.json.d.ts +456 -435
- package/dist/src/locales/fa.json.d.ts +455 -434
- package/dist/src/parts/FilePart.d.ts +1 -1
- package/dist/src/parts/ToolPart.d.ts +1 -1
- package/dist/src/types.d.ts +188 -14
- package/package.json +5 -5
- package/dist/src/components/ai-elements/Branch.d.ts +0 -20
- package/dist/src/components/ai-elements/Image.d.ts +0 -6
- package/dist/src/components/ai-elements/InlineCitation.d.ts +0 -38
- package/dist/src/components/ai-elements/Task.d.ts +0 -14
- package/dist/src/components/ai-elements/WebPreview.d.ts +0 -34
- package/dist/src/components/ui/carousel.d.ts +0 -19
|
@@ -1,448 +1,469 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
2
|
+
"sidebar": {
|
|
3
|
+
"new_conversation": "New conversation",
|
|
4
|
+
"tooltip_new_conversation": "Start a new conversation",
|
|
5
|
+
"delete_conversation": "Delete",
|
|
6
|
+
"delete_confirm_title": "Delete conversation?",
|
|
7
|
+
"delete_confirm_description": "Are you sure you want to delete this chat? This action cannot be undone.",
|
|
8
|
+
"cancel": "Cancel",
|
|
9
|
+
"delete": "Delete",
|
|
10
|
+
"chat_deleted_success": "Chat deleted successfully",
|
|
11
|
+
"logout": "Logout",
|
|
12
|
+
"new_chat": "New Chat",
|
|
13
|
+
"rename_conversation": "Rename",
|
|
14
|
+
"rename_success": "Conversation renamed successfully",
|
|
15
|
+
"rename_failed": "Failed to rename conversation",
|
|
16
|
+
"search_conversations": "Search conversations...",
|
|
17
|
+
"save": "Save",
|
|
18
|
+
"no_conversations": "No conversations yet",
|
|
19
|
+
"loading_more": "Loading more...",
|
|
20
|
+
"pinned_success": "Conversation pinned",
|
|
21
|
+
"unpinned_success": "Conversation unpinned",
|
|
22
|
+
"pin_failed": "Failed to pin conversation",
|
|
23
|
+
"share_success": "Link copied",
|
|
24
|
+
"share_description": "The shareable link has been copied to your clipboard.",
|
|
25
|
+
"share_failed": "Failed to generate share link",
|
|
26
|
+
"pin_conversation": "Pin",
|
|
27
|
+
"unpin_conversation": "Unpin",
|
|
28
|
+
"share_conversation": "Share"
|
|
29
|
+
},
|
|
30
|
+
"chat": {
|
|
31
|
+
"tools": "Tools",
|
|
32
|
+
"error": "Error:",
|
|
33
|
+
"input_placeholder": "Ask something...",
|
|
34
|
+
"insufficient_balance": "Insufficient balance. Please recharge your account to continue.",
|
|
35
|
+
"regenerate": "Regenerate",
|
|
36
|
+
"retry": "Retry",
|
|
37
|
+
"copy": "Copy",
|
|
38
|
+
"like": "Like",
|
|
39
|
+
"dislike": "Dislike",
|
|
40
|
+
"attach_file": "Attach file",
|
|
41
|
+
"remove_file": "Remove file",
|
|
42
|
+
"reference": "Reference",
|
|
43
|
+
"reference_selection": "Reference selection",
|
|
44
|
+
"remove_reference": "Remove reference",
|
|
45
|
+
"referenced_context": "Referenced context",
|
|
46
|
+
"source_unavailable": "Source unavailable",
|
|
47
|
+
"tool_reference": "Tool reference",
|
|
48
|
+
"card_reference": "Card reference",
|
|
49
|
+
"used_sources": "Used {{count}} sources",
|
|
50
|
+
"welcome": {
|
|
51
|
+
"title": "Hello! How can I help you today?",
|
|
52
|
+
"subtitle": "Ask me anything and I'll do my best to help.",
|
|
53
|
+
"suggestions": [
|
|
54
|
+
"What can you help me with?",
|
|
55
|
+
"Tell me something interesting",
|
|
56
|
+
"Help me write an email",
|
|
57
|
+
"Explain a concept to me"
|
|
58
|
+
]
|
|
29
59
|
},
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
"disclaimer": "AI can make mistakes. Check important info."
|
|
61
|
+
},
|
|
62
|
+
"tools_ui": {
|
|
63
|
+
"pending": "Pending",
|
|
64
|
+
"running": "Running",
|
|
65
|
+
"completed": "Completed",
|
|
66
|
+
"error": "Error",
|
|
67
|
+
"parameters": "Parameters",
|
|
68
|
+
"result": "Result",
|
|
69
|
+
"view_error": "View Error",
|
|
70
|
+
"tool_error": "Tool Error",
|
|
71
|
+
"copied": "Copied!",
|
|
72
|
+
"copy_error": "Copy Error"
|
|
73
|
+
},
|
|
74
|
+
"login": {
|
|
75
|
+
"login_tab": "Login",
|
|
76
|
+
"signup_tab": "Sign Up",
|
|
77
|
+
"phone": "Phone",
|
|
78
|
+
"phone_placeholder": "Phone number",
|
|
79
|
+
"password": "Password",
|
|
80
|
+
"name": "Name",
|
|
81
|
+
"name_placeholder": "First Name",
|
|
82
|
+
"surname": "Surname",
|
|
83
|
+
"surname_placeholder": "Last Name",
|
|
84
|
+
"loading": "Loading...",
|
|
85
|
+
"logging_in": "Logging in...",
|
|
86
|
+
"signing_up": "Signing up...",
|
|
87
|
+
"auth_page_disabled_title": "The sign-in page is currently disabled.",
|
|
88
|
+
"auth_page_disabled_description": "Please contact the administrator for access.",
|
|
89
|
+
"select_placeholder": "Select an option",
|
|
90
|
+
"login_button": "Login",
|
|
91
|
+
"signup_button": "Sign Up"
|
|
92
|
+
},
|
|
93
|
+
"theme": {
|
|
94
|
+
"toggle": "Change theme",
|
|
95
|
+
"light": "Switch to light theme",
|
|
96
|
+
"dark": "Switch to dark theme",
|
|
97
|
+
"system": "Switch to system theme"
|
|
98
|
+
},
|
|
99
|
+
"admin": {
|
|
100
|
+
"select_placeholder": "Select an option",
|
|
101
|
+
"loading": "Loading...",
|
|
102
|
+
"retry": "Retry",
|
|
103
|
+
"save": "Save",
|
|
104
|
+
"saving": "Saving...",
|
|
105
|
+
"cancel": "Cancel",
|
|
106
|
+
"delete": "Delete",
|
|
107
|
+
"edit": "Edit",
|
|
108
|
+
"search": "Search",
|
|
109
|
+
"search_placeholder": "Search...",
|
|
110
|
+
"no_data": "No data available",
|
|
111
|
+
"loading_more": "Loading more...",
|
|
112
|
+
"confirm_delete": "Are you sure you want to delete?",
|
|
113
|
+
"error_loading": "Error loading data",
|
|
114
|
+
"dashboard": {
|
|
115
|
+
"title": "Admin Panel",
|
|
116
|
+
"logout": "Logout",
|
|
117
|
+
"tabs": {
|
|
118
|
+
"analytics": "Analytics",
|
|
119
|
+
"chat_history": "Chats",
|
|
120
|
+
"users": "Users",
|
|
121
|
+
"admins": "Admins",
|
|
122
|
+
"settings": "Settings"
|
|
123
|
+
}
|
|
61
124
|
},
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"
|
|
72
|
-
"
|
|
125
|
+
"app_settings": {
|
|
126
|
+
"title": "System Settings",
|
|
127
|
+
"subtitle": "Manage global configuration for application appearance and behavior.",
|
|
128
|
+
"sections": {
|
|
129
|
+
"general": "Basic Information",
|
|
130
|
+
"chat": "Chat Experience",
|
|
131
|
+
"user_billing": "User & Billing"
|
|
132
|
+
},
|
|
133
|
+
"general": {
|
|
134
|
+
"app_name": "App Name",
|
|
135
|
+
"admin_title": "Admin Panel Title",
|
|
136
|
+
"language": "Default Language",
|
|
137
|
+
"language_help": "The language users see on their first visit (if not auto-detected).",
|
|
138
|
+
"appearance": "Default Appearance",
|
|
139
|
+
"appearance_help": "These values apply when a user has not saved their own appearance preferences.",
|
|
140
|
+
"default_theme": "Default Theme",
|
|
141
|
+
"default_accent": "Default Accent Color",
|
|
142
|
+
"default_accent_help": "Enter any browser-supported CSS color, such as #3b82f6, rgb(59 130 246), or oklch(0.623 0.214 259.815).",
|
|
143
|
+
"default_accent_invalid": "Enter a valid browser-supported CSS color.",
|
|
144
|
+
"default_accent_preview": "Accent color preview"
|
|
145
|
+
},
|
|
146
|
+
"chat": {
|
|
147
|
+
"welcome_greeting": "Welcome Greeting",
|
|
148
|
+
"welcome_subtitle": "Welcome Subtitle",
|
|
149
|
+
"disclaimer": "Disclaimer Text",
|
|
150
|
+
"show_tool_details": "Show technical tool details",
|
|
151
|
+
"show_tool_details_help": "Enable this to show professional technical details of AI tools to users.",
|
|
152
|
+
"show_settings": "Show settings icon for users",
|
|
153
|
+
"show_settings_help": "Show a settings gear icon in the chat interface for user customization.",
|
|
154
|
+
"show_version_in_settings": "Show app version in user settings",
|
|
155
|
+
"show_version_in_settings_help": "Show the app version at the bottom of the user settings dialog. This does not affect the admin settings page.",
|
|
156
|
+
"disable_signup": "Disable signup",
|
|
157
|
+
"disable_signup_help": "Hide the signup tab so users can only log in.",
|
|
158
|
+
"disable_auth_page": "Disable login/signup page",
|
|
159
|
+
"disable_auth_page_help": "Hide the entire auth page and prevent users from reaching login or signup forms.",
|
|
160
|
+
"composer_attachments": "Enable File Attachments",
|
|
161
|
+
"composer_attachments_help": "Allow users to upload and attach files to their messages.",
|
|
162
|
+
"thread_actions_feedback": "Enable Feedback Buttons",
|
|
163
|
+
"thread_actions_feedback_help": "Show like/dislike buttons on AI responses.",
|
|
164
|
+
"thread_actions_retry": "Enable Retry Button",
|
|
165
|
+
"thread_actions_retry_help": "Show a retry button to regenerate the last AI response.",
|
|
166
|
+
"history_enabled": "Enable Chat History Sidebar",
|
|
167
|
+
"history_enabled_help": "Show the sidebar containing previous conversations.",
|
|
168
|
+
"history_show_delete": "Allow Deleting Conversations",
|
|
169
|
+
"history_show_rename": "Allow Renaming Conversations",
|
|
170
|
+
"history_show_share": "Allow Sharing Conversations",
|
|
171
|
+
"history_show_pin": "Allow Pinning Conversations",
|
|
172
|
+
"sections_modes": "Settings Tab Modes",
|
|
173
|
+
"sections_modes_help": "Control visibility and interactability of settings tabs for users.",
|
|
174
|
+
"mode_editable": "Enable (Editable)",
|
|
175
|
+
"mode_faded": "Fade (Readonly)",
|
|
176
|
+
"mode_hidden": "Hide (Disable)",
|
|
177
|
+
"general_tab": "General Tab",
|
|
178
|
+
"profile_tab": "Profile Tab",
|
|
179
|
+
"account_tab": "Account Tab",
|
|
180
|
+
"inner_fields_modes": "Inner Fields Visibility",
|
|
181
|
+
"inner_fields_modes_help": "Configure visibility for individual fields within each tab."
|
|
182
|
+
},
|
|
183
|
+
"user_billing": {
|
|
184
|
+
"initial_balance_tokens": "Default Initial Tokens",
|
|
185
|
+
"initial_balance_requests": "Default Initial Requests",
|
|
186
|
+
"initial_balance_help": "These values will be assigned to new users by default if not specified during creation."
|
|
187
|
+
},
|
|
188
|
+
"save_success": "Settings saved successfully",
|
|
189
|
+
"save_error": "Failed to save settings",
|
|
190
|
+
"save": "Save Changes",
|
|
191
|
+
"translations_management": "Translations Management",
|
|
192
|
+
"editor_tips": "All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.",
|
|
193
|
+
"sync_from_code": "Sync from Code",
|
|
194
|
+
"reset_button": "Reset to Defaults",
|
|
195
|
+
"reset_confirm_title": "Reset Settings?",
|
|
196
|
+
"reset_confirm_description": "This will reset all fields to their original default values from the code. Current unsaved changes will be lost.",
|
|
197
|
+
"preview": "Preview",
|
|
198
|
+
"tips_label": "TIPS"
|
|
73
199
|
},
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
200
|
+
"analytics": {
|
|
201
|
+
"title": "Analytics & Statistics",
|
|
202
|
+
"days": "{{count}} Days",
|
|
203
|
+
"total_users": "Total Users",
|
|
204
|
+
"total_threads": "Total Threads",
|
|
205
|
+
"total_messages": "Total Messages",
|
|
206
|
+
"total_token_usage": "Total Token Usage",
|
|
207
|
+
"usage_cost": "Usage & Cost",
|
|
208
|
+
"input": "Input",
|
|
209
|
+
"output": "Output",
|
|
210
|
+
"cost": "Cost",
|
|
211
|
+
"threads_chart": "Threads",
|
|
212
|
+
"messages_chart": "Messages",
|
|
213
|
+
"token_usage_chart": "Token Usage",
|
|
214
|
+
"cost_chart": "Cost Per Day",
|
|
215
|
+
"active_users": "Active Users",
|
|
216
|
+
"conversations": "conversations",
|
|
217
|
+
"threads": "threads",
|
|
218
|
+
"feedback": "User Feedback",
|
|
219
|
+
"total_feedback": "Total Feedback",
|
|
220
|
+
"positive": "Positive",
|
|
221
|
+
"negative": "Negative",
|
|
222
|
+
"loading_analytics": "Loading analytics...",
|
|
223
|
+
"error_loading": "Error loading data"
|
|
92
224
|
},
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
225
|
+
"chat_history": {
|
|
226
|
+
"title": "Chat History Management",
|
|
227
|
+
"search_placeholder": "Search by name, phone, thread title, or ID...",
|
|
228
|
+
"search_button": "Search",
|
|
229
|
+
"threads_list": "Threads List",
|
|
230
|
+
"thread_count": "{{count}}",
|
|
231
|
+
"no_thread_title": "Untitled conversation",
|
|
232
|
+
"messages": "Messages",
|
|
233
|
+
"messages_for": "Messages for: {{title}}",
|
|
234
|
+
"select_thread": "Select a conversation to view",
|
|
235
|
+
"no_threads": "No conversations found",
|
|
236
|
+
"empty_thread": "This conversation is empty",
|
|
237
|
+
"loading_threads": "Loading...",
|
|
238
|
+
"loading_messages": "Loading messages...",
|
|
239
|
+
"user_label": "User",
|
|
240
|
+
"assistant_label": "AI Assistant",
|
|
241
|
+
"input_tokens": "Input: {{value}}",
|
|
242
|
+
"output_tokens": "Output: {{value}}",
|
|
243
|
+
"total_tokens": "Total: {{value}}",
|
|
244
|
+
"cost": "Cost: {{value}}",
|
|
245
|
+
"unpriced": "Unpriced",
|
|
246
|
+
"all_feedbacks": "All Conversations",
|
|
247
|
+
"liked_feedbacks": "Liked 👍",
|
|
248
|
+
"disliked_feedbacks": "Disliked 👎",
|
|
249
|
+
"any_feedback": "With Feedback",
|
|
250
|
+
"output_available": "Output Available",
|
|
251
|
+
"running": "Running...",
|
|
252
|
+
"unnamed_file": "Unnamed File",
|
|
253
|
+
"download_file": "Download File"
|
|
98
254
|
},
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
"initial_balance_requests": "Default Initial Requests",
|
|
186
|
-
"initial_balance_help": "These values will be assigned to new users by default if not specified during creation."
|
|
187
|
-
},
|
|
188
|
-
"save_success": "Settings saved successfully",
|
|
189
|
-
"save_error": "Failed to save settings",
|
|
190
|
-
"save": "Save Changes",
|
|
191
|
-
"translations_management": "Translations Management",
|
|
192
|
-
"editor_tips": "All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.",
|
|
193
|
-
"sync_from_code": "Sync from Code",
|
|
194
|
-
"reset_button": "Reset to Defaults",
|
|
195
|
-
"reset_confirm_title": "Reset Settings?",
|
|
196
|
-
"reset_confirm_description": "This will reset all fields to their original default values from the code. Current unsaved changes will be lost.",
|
|
197
|
-
"preview": "Preview",
|
|
198
|
-
"tips_label": "TIPS"
|
|
199
|
-
},
|
|
200
|
-
"analytics": {
|
|
201
|
-
"title": "Analytics & Statistics",
|
|
202
|
-
"days": "{{count}} Days",
|
|
203
|
-
"total_users": "Total Users",
|
|
204
|
-
"total_threads": "Total Threads",
|
|
205
|
-
"total_messages": "Total Messages",
|
|
206
|
-
"total_token_usage": "Total Token Usage",
|
|
207
|
-
"usage_cost": "Usage & Cost",
|
|
208
|
-
"input": "Input",
|
|
209
|
-
"output": "Output",
|
|
210
|
-
"cost": "Cost",
|
|
211
|
-
"threads_chart": "Threads",
|
|
212
|
-
"messages_chart": "Messages",
|
|
213
|
-
"token_usage_chart": "Token Usage",
|
|
214
|
-
"cost_chart": "Cost Per Day",
|
|
215
|
-
"active_users": "Active Users",
|
|
216
|
-
"conversations": "conversations",
|
|
217
|
-
"threads": "threads",
|
|
218
|
-
"feedback": "User Feedback",
|
|
219
|
-
"total_feedback": "Total Feedback",
|
|
220
|
-
"positive": "Positive",
|
|
221
|
-
"negative": "Negative",
|
|
222
|
-
"loading_analytics": "Loading analytics...",
|
|
223
|
-
"error_loading": "Error loading data"
|
|
224
|
-
},
|
|
225
|
-
"chat_history": {
|
|
226
|
-
"title": "Chat History Management",
|
|
227
|
-
"search_placeholder": "Search by name, phone, thread title, or ID...",
|
|
228
|
-
"search_button": "Search",
|
|
229
|
-
"threads_list": "Threads List",
|
|
230
|
-
"thread_count": "{{count}}",
|
|
231
|
-
"no_thread_title": "Untitled conversation",
|
|
232
|
-
"messages": "Messages",
|
|
233
|
-
"messages_for": "Messages for: {{title}}",
|
|
234
|
-
"select_thread": "Select a conversation to view",
|
|
235
|
-
"no_threads": "No conversations found",
|
|
236
|
-
"empty_thread": "This conversation is empty",
|
|
237
|
-
"loading_threads": "Loading...",
|
|
238
|
-
"loading_messages": "Loading messages...",
|
|
239
|
-
"user_label": "User",
|
|
240
|
-
"assistant_label": "AI Assistant",
|
|
241
|
-
"input_tokens": "Input: {{value}}",
|
|
242
|
-
"output_tokens": "Output: {{value}}",
|
|
243
|
-
"total_tokens": "Total: {{value}}",
|
|
244
|
-
"cost": "Cost: {{value}}",
|
|
245
|
-
"unpriced": "Unpriced",
|
|
246
|
-
"all_feedbacks": "All Conversations",
|
|
247
|
-
"liked_feedbacks": "Liked 👍",
|
|
248
|
-
"disliked_feedbacks": "Disliked 👎",
|
|
249
|
-
"any_feedback": "With Feedback",
|
|
250
|
-
"output_available": "Output Available",
|
|
251
|
-
"running": "Running...",
|
|
252
|
-
"unnamed_file": "Unnamed File",
|
|
253
|
-
"download_file": "Download File"
|
|
254
|
-
},
|
|
255
|
-
"users": {
|
|
256
|
-
"title": "User Management",
|
|
257
|
-
"user_count": "User count: {{count}}",
|
|
258
|
-
"add_user": "Add New User",
|
|
259
|
-
"edit_user": "Edit User",
|
|
260
|
-
"phone": "Phone Number",
|
|
261
|
-
"phone_placeholder": "09123456789",
|
|
262
|
-
"name": "Name",
|
|
263
|
-
"surname": "Surname",
|
|
264
|
-
"initial_tokens": "Initial Tokens (optional)",
|
|
265
|
-
"initial_requests": "Initial Requests (optional)",
|
|
266
|
-
"balance": "Balance",
|
|
267
|
-
"requests_label": "Requests",
|
|
268
|
-
"tokens_label": "Tokens",
|
|
269
|
-
"token_limit": "Token Limit",
|
|
270
|
-
"request_limit": "Request Limit",
|
|
271
|
-
"tokens_usage": "Tokens Usage",
|
|
272
|
-
"requests_usage": "Requests Usage",
|
|
273
|
-
"actions": "Actions",
|
|
274
|
-
"copy_token": "Copy Token (auto-refresh)",
|
|
275
|
-
"token_copied": "Token copied successfully",
|
|
276
|
-
"no_token": "No token found for this user",
|
|
277
|
-
"recharge": "Recharge Balance",
|
|
278
|
-
"full_charge": "Full Charge",
|
|
279
|
-
"update_balance": "Update Balance",
|
|
280
|
-
"update_balance_for": "Update Balance for",
|
|
281
|
-
"token_count": "Token Count",
|
|
282
|
-
"request_count": "Request Count",
|
|
283
|
-
"updating": "Updating...",
|
|
284
|
-
"no_users": "No users found.",
|
|
285
|
-
"sort_ascending": "Sort ascending",
|
|
286
|
-
"sort_descending": "Sort descending",
|
|
287
|
-
"confirm_delete_user": "Are you sure you want to delete this user?",
|
|
288
|
-
"tokens_exceed_limit": "Tokens cannot exceed the specified limit",
|
|
289
|
-
"requests_exceed_limit": "Requests cannot exceed the specified limit",
|
|
290
|
-
"metadata": "Metadata (JSON)",
|
|
291
|
-
"initial_balance": "Initial Balance",
|
|
292
|
-
"custom_fields": "Additional Fields",
|
|
293
|
-
"metadata_raw": "Metadata (Raw JSON)",
|
|
294
|
-
"advanced_usage": "Advanced usage",
|
|
295
|
-
"invalid_json": "Invalid JSON format"
|
|
296
|
-
,"auto_recharge": "Automatic Balance Renewal"
|
|
297
|
-
,"auto_recharge_help": "Restore this user's balance to its limits on a recurring schedule."
|
|
298
|
-
,"enabled": "Enabled"
|
|
299
|
-
,"recharge_interval": "Every"
|
|
300
|
-
,"recharge_unit": "Interval Unit"
|
|
301
|
-
,"recharge_unit_minute": "Minute(s)"
|
|
302
|
-
,"recharge_unit_hour": "Hour(s)"
|
|
303
|
-
,"recharge_unit_day": "Day(s)"
|
|
304
|
-
,"recharge_unit_week": "Week(s)"
|
|
305
|
-
,"recharge_unit_month": "Month(s)"
|
|
306
|
-
,"recharge_schedule_help": "New schedules begin when saved. Existing schedules keep their current cycle anchor."
|
|
307
|
-
,"next_recharge": "Next renewal"
|
|
308
|
-
,"last_recharge": "Last automatic renewal"
|
|
309
|
-
,"not_available": "Not available"
|
|
310
|
-
,"recharge_interval_invalid": "The renewal interval must be a positive whole number"
|
|
311
|
-
,"recharge_policy_not_saved": "The backend did not save the renewal policy. Restart or update the backend to the version that supports automatic renewal."
|
|
312
|
-
,"usage_summary": "Usage Summary"
|
|
313
|
-
,"input_tokens": "Input Tokens"
|
|
314
|
-
,"output_tokens": "Output Tokens"
|
|
315
|
-
,"total_tokens": "Total Tokens"
|
|
316
|
-
,"requests_made": "Requests Made"
|
|
317
|
-
,"total_cost": "Total Cost"
|
|
318
|
-
,"renewals": "Balance Renewals"
|
|
319
|
-
,"unpriced_requests": "Unpriced Requests"
|
|
320
|
-
},
|
|
321
|
-
"admins": {
|
|
322
|
-
"title": "Admin Management",
|
|
323
|
-
"admin_count": "Admin count: {{count}}",
|
|
324
|
-
"add_admin": "Add New Admin",
|
|
325
|
-
"edit_admin": "Edit Admin",
|
|
326
|
-
"username": "Username",
|
|
327
|
-
"name": "Name",
|
|
328
|
-
"password": "Password",
|
|
329
|
-
"password_edit": "New Password (leave empty to keep current)",
|
|
330
|
-
"permissions": "Permissions",
|
|
331
|
-
"perm_chat_history": "Chat History",
|
|
332
|
-
"perm_admin_management": "Admin Management",
|
|
333
|
-
"perm_user_management": "User Management",
|
|
334
|
-
"perm_analytics": "Analytics",
|
|
335
|
-
"perm_settings": "Settings",
|
|
336
|
-
"no_admins": "No admins found.",
|
|
337
|
-
"confirm_delete_admin": "Are you sure you want to delete this admin?"
|
|
338
|
-
},
|
|
339
|
-
"errors": {
|
|
340
|
-
"access_denied_title": "Access Denied",
|
|
341
|
-
"access_denied_message": "You don't have the necessary permissions to access this page. You can contact the administrator!",
|
|
342
|
-
"back_to_dashboard": "Back to Dashboard"
|
|
343
|
-
},
|
|
344
|
-
"login": {
|
|
345
|
-
"title": "Admin Panel",
|
|
346
|
-
"setup_title": "Initial Setup",
|
|
347
|
-
"setup_description": "No admin account exists yet. Set a password for the default admin user to get started.",
|
|
348
|
-
"set_password": "Set Password",
|
|
349
|
-
"set_password_placeholder": "Choose a strong password",
|
|
350
|
-
"confirm_password": "Confirm Password",
|
|
351
|
-
"confirm_password_placeholder": "Re-enter the password",
|
|
352
|
-
"passwords_mismatch": "Passwords do not match",
|
|
353
|
-
"password_too_short": "Password must be at least 4 characters",
|
|
354
|
-
"create_admin": "Create Admin & Login",
|
|
355
|
-
"setting_up": "Setting up...",
|
|
356
|
-
"username": "Username",
|
|
357
|
-
"username_placeholder": "Username",
|
|
358
|
-
"password": "Password",
|
|
359
|
-
"password_placeholder": "••••••••",
|
|
360
|
-
"submit": "Login",
|
|
361
|
-
"logging_in": "Logging in...",
|
|
362
|
-
"error": "Login failed",
|
|
363
|
-
"copyright": "© 2026 AI Chatbot Platform"
|
|
364
|
-
}
|
|
255
|
+
"users": {
|
|
256
|
+
"title": "User Management",
|
|
257
|
+
"user_count": "User count: {{count}}",
|
|
258
|
+
"add_user": "Add New User",
|
|
259
|
+
"edit_user": "Edit User",
|
|
260
|
+
"phone": "Phone Number",
|
|
261
|
+
"phone_placeholder": "09123456789",
|
|
262
|
+
"name": "Name",
|
|
263
|
+
"surname": "Surname",
|
|
264
|
+
"initial_tokens": "Initial Tokens (optional)",
|
|
265
|
+
"initial_requests": "Initial Requests (optional)",
|
|
266
|
+
"balance": "Balance",
|
|
267
|
+
"requests_label": "Requests",
|
|
268
|
+
"tokens_label": "Tokens",
|
|
269
|
+
"token_limit": "Token Limit",
|
|
270
|
+
"request_limit": "Request Limit",
|
|
271
|
+
"tokens_usage": "Tokens Usage",
|
|
272
|
+
"requests_usage": "Requests Usage",
|
|
273
|
+
"actions": "Actions",
|
|
274
|
+
"copy_token": "Copy Token (auto-refresh)",
|
|
275
|
+
"token_copied": "Token copied successfully",
|
|
276
|
+
"no_token": "No token found for this user",
|
|
277
|
+
"recharge": "Recharge Balance",
|
|
278
|
+
"full_charge": "Full Charge",
|
|
279
|
+
"update_balance": "Update Balance",
|
|
280
|
+
"update_balance_for": "Update Balance for",
|
|
281
|
+
"token_count": "Token Count",
|
|
282
|
+
"request_count": "Request Count",
|
|
283
|
+
"updating": "Updating...",
|
|
284
|
+
"no_users": "No users found.",
|
|
285
|
+
"sort_ascending": "Sort ascending",
|
|
286
|
+
"sort_descending": "Sort descending",
|
|
287
|
+
"confirm_delete_user": "Are you sure you want to delete this user?",
|
|
288
|
+
"tokens_exceed_limit": "Tokens cannot exceed the specified limit",
|
|
289
|
+
"requests_exceed_limit": "Requests cannot exceed the specified limit",
|
|
290
|
+
"metadata": "Metadata (JSON)",
|
|
291
|
+
"initial_balance": "Initial Balance",
|
|
292
|
+
"custom_fields": "Additional Fields",
|
|
293
|
+
"metadata_raw": "Metadata (Raw JSON)",
|
|
294
|
+
"advanced_usage": "Advanced usage",
|
|
295
|
+
"invalid_json": "Invalid JSON format",
|
|
296
|
+
"auto_recharge": "Automatic Balance Renewal",
|
|
297
|
+
"auto_recharge_help": "Restore this user's balance to its limits on a recurring schedule.",
|
|
298
|
+
"enabled": "Enabled",
|
|
299
|
+
"recharge_interval": "Every",
|
|
300
|
+
"recharge_unit": "Interval Unit",
|
|
301
|
+
"recharge_unit_minute": "Minute(s)",
|
|
302
|
+
"recharge_unit_hour": "Hour(s)",
|
|
303
|
+
"recharge_unit_day": "Day(s)",
|
|
304
|
+
"recharge_unit_week": "Week(s)",
|
|
305
|
+
"recharge_unit_month": "Month(s)",
|
|
306
|
+
"recharge_schedule_help": "New schedules begin when saved. Existing schedules keep their current cycle anchor.",
|
|
307
|
+
"next_recharge": "Next renewal",
|
|
308
|
+
"last_recharge": "Last automatic renewal",
|
|
309
|
+
"not_available": "Not available",
|
|
310
|
+
"recharge_interval_invalid": "The renewal interval must be a positive whole number",
|
|
311
|
+
"recharge_policy_not_saved": "The backend did not save the renewal policy. Restart or update the backend to the version that supports automatic renewal.",
|
|
312
|
+
"usage_summary": "Usage Summary",
|
|
313
|
+
"input_tokens": "Input Tokens",
|
|
314
|
+
"output_tokens": "Output Tokens",
|
|
315
|
+
"total_tokens": "Total Tokens",
|
|
316
|
+
"requests_made": "Requests Made",
|
|
317
|
+
"total_cost": "Total Cost",
|
|
318
|
+
"renewals": "Balance Renewals",
|
|
319
|
+
"unpriced_requests": "Unpriced Requests",
|
|
320
|
+
"bulk_balance": "Bulk Balance",
|
|
321
|
+
"bulk_balance_help": "Apply a balance change to all matching users using search, explicit IDs, and metadata filters.",
|
|
322
|
+
"bulk_operation": "Operation",
|
|
323
|
+
"bulk_operation_add": "Add to balance",
|
|
324
|
+
"bulk_operation_set": "Set exact balance",
|
|
325
|
+
"bulk_operation_full_charge": "Fill to limits",
|
|
326
|
+
"bulk_use_current_search": "Use current search text",
|
|
327
|
+
"bulk_user_ids": "User IDs (optional)",
|
|
328
|
+
"bulk_metadata_filters": "Metadata Filters (JSON)",
|
|
329
|
+
"bulk_available_metadata": "Available metadata keys",
|
|
330
|
+
"bulk_preview_empty": "Affected users will be checked before applying.",
|
|
331
|
+
"bulk_preview_count": "{{count}} users match",
|
|
332
|
+
"apply_bulk_balance": "Apply Change",
|
|
333
|
+
"bulk_balance_confirm": "Apply this balance change to {{count}} users?",
|
|
334
|
+
"matching_users": "matching",
|
|
335
|
+
"bulk_apply_balance": "Update balances",
|
|
336
|
+
"bulk_apply_renewal": "Update renewal policy",
|
|
337
|
+
"bulk_select_change": "Select at least one bulk change to apply.",
|
|
338
|
+
"bulk_renewal_policy": "Renewal Policy",
|
|
339
|
+
"bulk_renewal_policy_help": "Enable or disable automatic renewal for every matched user.",
|
|
340
|
+
"bulk_renewal_anchor": "First renewal time (optional)"
|
|
365
341
|
},
|
|
366
|
-
"
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
"success": "Profile updated successfully",
|
|
384
|
-
"error": "Failed to update profile",
|
|
385
|
-
"select_placeholder": "Select an option"
|
|
386
|
-
},
|
|
387
|
-
"general": {
|
|
388
|
-
"title": "General Settings",
|
|
389
|
-
"subtitle": "Configure look and feel and language.",
|
|
390
|
-
"theme": "Theme",
|
|
391
|
-
"language": "Language",
|
|
392
|
-
"themes": {
|
|
393
|
-
"light": "Light",
|
|
394
|
-
"dark": "Dark",
|
|
395
|
-
"system": "System"
|
|
396
|
-
},
|
|
397
|
-
"accent": "Accent Color",
|
|
398
|
-
"radius": "Rounded Corners",
|
|
399
|
-
"radius_levels": {
|
|
400
|
-
"sharp": "Sharp",
|
|
401
|
-
"round": "Round"
|
|
402
|
-
},
|
|
403
|
-
"languages": {
|
|
404
|
-
"en": "English",
|
|
405
|
-
"fa": "Persian"
|
|
406
|
-
}
|
|
407
|
-
},
|
|
408
|
-
"account": {
|
|
409
|
-
"title": "Account & Usage",
|
|
410
|
-
"subtitle": "Monitor your quotas and manage your session.",
|
|
411
|
-
"balance": "Current Balance",
|
|
412
|
-
"tokens": "Tokens",
|
|
413
|
-
"requests": "Requests",
|
|
414
|
-
"logout": "Logout",
|
|
415
|
-
"logout_confirm": "Are you sure you want to logout?",
|
|
416
|
-
"last_recharge": "Last balance update on"
|
|
417
|
-
}
|
|
342
|
+
"admins": {
|
|
343
|
+
"title": "Admin Management",
|
|
344
|
+
"admin_count": "Admin count: {{count}}",
|
|
345
|
+
"add_admin": "Add New Admin",
|
|
346
|
+
"edit_admin": "Edit Admin",
|
|
347
|
+
"username": "Username",
|
|
348
|
+
"name": "Name",
|
|
349
|
+
"password": "Password",
|
|
350
|
+
"password_edit": "New Password (leave empty to keep current)",
|
|
351
|
+
"permissions": "Permissions",
|
|
352
|
+
"perm_chat_history": "Chat History",
|
|
353
|
+
"perm_admin_management": "Admin Management",
|
|
354
|
+
"perm_user_management": "User Management",
|
|
355
|
+
"perm_analytics": "Analytics",
|
|
356
|
+
"perm_settings": "Settings",
|
|
357
|
+
"no_admins": "No admins found.",
|
|
358
|
+
"confirm_delete_admin": "Are you sure you want to delete this admin?"
|
|
418
359
|
},
|
|
419
360
|
"errors": {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
361
|
+
"access_denied_title": "Access Denied",
|
|
362
|
+
"access_denied_message": "You don't have the necessary permissions to access this page. You can contact the administrator!",
|
|
363
|
+
"back_to_dashboard": "Back to Dashboard"
|
|
364
|
+
},
|
|
365
|
+
"login": {
|
|
366
|
+
"title": "Admin Panel",
|
|
367
|
+
"setup_title": "Initial Setup",
|
|
368
|
+
"setup_description": "No admin account exists yet. Set a password for the default admin user to get started.",
|
|
369
|
+
"set_password": "Set Password",
|
|
370
|
+
"set_password_placeholder": "Choose a strong password",
|
|
371
|
+
"confirm_password": "Confirm Password",
|
|
372
|
+
"confirm_password_placeholder": "Re-enter the password",
|
|
373
|
+
"passwords_mismatch": "Passwords do not match",
|
|
374
|
+
"password_too_short": "Password must be at least 4 characters",
|
|
375
|
+
"create_admin": "Create Admin & Login",
|
|
376
|
+
"setting_up": "Setting up...",
|
|
377
|
+
"username": "Username",
|
|
378
|
+
"username_placeholder": "Username",
|
|
379
|
+
"password": "Password",
|
|
380
|
+
"password_placeholder": "••••••••",
|
|
381
|
+
"submit": "Login",
|
|
382
|
+
"logging_in": "Logging in...",
|
|
383
|
+
"error": "Login failed",
|
|
384
|
+
"copyright": "© 2026 AI Chatbot Platform"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
"settings": {
|
|
388
|
+
"title": "Settings",
|
|
389
|
+
"sections": {
|
|
390
|
+
"profile": "Profile",
|
|
391
|
+
"general": "General",
|
|
392
|
+
"account": "Account"
|
|
393
|
+
},
|
|
394
|
+
"profile": {
|
|
395
|
+
"title": "Profile Information",
|
|
396
|
+
"subtitle": "Update your personal details below.",
|
|
397
|
+
"name": "First Name",
|
|
398
|
+
"surname": "Last Name",
|
|
399
|
+
"phone": "Phone Number",
|
|
400
|
+
"password": "New Password",
|
|
401
|
+
"password_placeholder": "Leave empty to keep current",
|
|
402
|
+
"save": "Save Changes",
|
|
403
|
+
"saving": "Saving...",
|
|
404
|
+
"success": "Profile updated successfully",
|
|
405
|
+
"error": "Failed to update profile",
|
|
406
|
+
"select_placeholder": "Select an option"
|
|
407
|
+
},
|
|
408
|
+
"general": {
|
|
409
|
+
"title": "General Settings",
|
|
410
|
+
"subtitle": "Configure look and feel and language.",
|
|
411
|
+
"theme": "Theme",
|
|
412
|
+
"language": "Language",
|
|
413
|
+
"themes": {
|
|
414
|
+
"light": "Light",
|
|
415
|
+
"dark": "Dark",
|
|
416
|
+
"system": "System"
|
|
417
|
+
},
|
|
418
|
+
"accent": "Accent Color",
|
|
419
|
+
"radius": "Rounded Corners",
|
|
420
|
+
"radius_levels": {
|
|
421
|
+
"sharp": "Sharp",
|
|
422
|
+
"round": "Round"
|
|
423
|
+
},
|
|
424
|
+
"languages": {
|
|
425
|
+
"en": "English",
|
|
426
|
+
"fa": "Persian"
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
"account": {
|
|
430
|
+
"title": "Account & Usage",
|
|
431
|
+
"subtitle": "Monitor your quotas and manage your session.",
|
|
432
|
+
"balance": "Current Balance",
|
|
433
|
+
"tokens": "Tokens",
|
|
434
|
+
"requests": "Requests",
|
|
435
|
+
"logout": "Logout",
|
|
436
|
+
"logout_confirm": "Are you sure you want to logout?",
|
|
437
|
+
"last_recharge": "Last balance update on"
|
|
445
438
|
}
|
|
439
|
+
},
|
|
440
|
+
"errors": {
|
|
441
|
+
"unauthorized": "Authentication required. Please login again.",
|
|
442
|
+
"invalid_credentials": "Invalid phone number or password.",
|
|
443
|
+
"phone_required": "Phone number is required.",
|
|
444
|
+
"password_required": "Password is required.",
|
|
445
|
+
"name_surname_required": "Name and surname are required.",
|
|
446
|
+
"phone_already_exists": "This phone number is already registered.",
|
|
447
|
+
"invalid_token": "Your session has expired. Please login again.",
|
|
448
|
+
"user_not_found": "User not found.",
|
|
449
|
+
"insufficient_balance": "Insufficient balance. Please recharge your account.",
|
|
450
|
+
"me_update_failed": "Failed to update profile information.",
|
|
451
|
+
"thread_not_found": "Conversation not found.",
|
|
452
|
+
"access_denied": "You do not have permission to perform this action.",
|
|
453
|
+
"feedback_save_failed": "Failed to save feedback.",
|
|
454
|
+
"thread_update_failed": "Failed to update conversation.",
|
|
455
|
+
"thread_delete_failed": "Failed to delete conversation.",
|
|
456
|
+
"attachment_not_found": "Attachment not found.",
|
|
457
|
+
"thread_share_failed": "Failed to share conversation.",
|
|
458
|
+
"model_quota_reached_error": "The system cannot respond at this time. Please try again later.",
|
|
459
|
+
"admin_already_exists": "Admin with this username already exists.",
|
|
460
|
+
"admin_not_found": "Admin not found.",
|
|
461
|
+
"cannot_delete_self": "You cannot delete your own admin account.",
|
|
462
|
+
"admin_update_failed": "Failed to update admin information.",
|
|
463
|
+
"internal_error": "An internal server error occurred. Please try again later.",
|
|
464
|
+
"validation_error": "Invalid data provided. Please check your input.",
|
|
465
|
+
"not_found": "The requested resource was not found."
|
|
466
|
+
}
|
|
446
467
|
}
|
|
447
468
|
;
|
|
448
469
|
|