Changeset 3439442
- Timestamp:
- 01/14/2026 11:25:27 AM (3 months ago)
- Location:
- promptor/trunk
- Files:
-
- 2 deleted
- 8 edited
-
languages/promptor-tr_TR-4656573ee1209b6286d93a27ae84144d.json (deleted)
-
languages/promptor-tr_TR-848dc31e3c446bf785d258d2d6fcdd6b.json (deleted)
-
languages/promptor.pot (modified) (26 diffs)
-
promptor.php (modified) (2 diffs)
-
public/ajax-handlers/class-promptor-ajax-chat-handler.php (modified) (5 diffs)
-
public/assets/css/promptor-public.css (modified) (1 diff)
-
public/assets/js/promptor-public.js (modified) (8 diffs)
-
public/class-promptor-public.php (modified) (3 diffs)
-
readme.txt (modified) (3 diffs)
-
uninstall.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
promptor/trunk/languages/promptor.pot
r3438128 r3439442 3 3 msgstr "" 4 4 "Project-Id-Version: Promptor\n" 5 "POT-Creation-Date: 2026-01- 12 22:24+0300\n"5 "POT-Creation-Date: 2026-01-07 19:53+0300\n" 6 6 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 7 7 "Last-Translator: \n" … … 21 21 "X-Poedit-SearchPathExcluded-0: *.min.js\n" 22 22 23 #: admin/assets/js/promptor-admin.js:30 admin/assets/js/promptor-admin.js:4123 #: admin/assets/js/promptor-admin.js:30 24 24 #, javascript-format 25 25 msgid "%d items selected" 26 26 msgstr "" 27 27 28 #: admin/assets/js/promptor-admin.js:1 14 admin/class-promptor-dashboard-page.php:460public/class-promptor-public.php:25128 #: admin/assets/js/promptor-admin.js:103 admin/class-promptor-dashboard-page.php:448 public/class-promptor-public.php:251 29 29 msgid "AI Assistant" 30 30 msgstr "" 31 31 32 #: admin/assets/js/promptor-admin.js:1 15public/class-promptor-public.php:25232 #: admin/assets/js/promptor-admin.js:104 public/class-promptor-public.php:252 33 33 msgid "Typically replies in minutes" 34 34 msgstr "" 35 35 36 #: admin/assets/js/promptor-admin.js:1 16public/class-promptor-public.php:25336 #: admin/assets/js/promptor-admin.js:105 public/class-promptor-public.php:253 37 37 msgid "Ask a question..." 38 38 msgstr "" 39 39 40 #: admin/assets/js/promptor-admin.js:2 5240 #: admin/assets/js/promptor-admin.js:241 41 41 msgid "Select Image" 42 42 msgstr "" 43 43 44 #: admin/assets/js/promptor-admin.js:2 5344 #: admin/assets/js/promptor-admin.js:242 45 45 msgid "Use This Image" 46 46 msgstr "" 47 47 48 #: admin/assets/js/promptor-admin.js:286 admin/assets/js/promptor-admin.js:316 admin/assets/js/promptor-admin.js:472 49 #: admin/assets/js/promptor-admin.js:1266 admin/assets/js/promptor-admin.js:1291 48 #: admin/assets/js/promptor-admin.js:275 admin/assets/js/promptor-admin.js:305 admin/assets/js/promptor-admin.js:461 50 49 #, javascript-format 51 50 msgid "You are using Promptor Lite. You can select a maximum of %d content items. Please upgrade to Pro for unlimited selections." 52 51 msgstr "" 53 52 54 #: admin/assets/js/promptor-admin.js:3 4753 #: admin/assets/js/promptor-admin.js:336 55 54 msgid "Success!" 56 55 msgstr "" 57 56 58 #: admin/assets/js/promptor-admin.js:3 47 public/assets/js/promptor-public.js:77857 #: admin/assets/js/promptor-admin.js:336 public/assets/js/promptor-public.js:405 59 58 msgid "An unknown error occurred." 60 59 msgstr "" 61 60 62 #: admin/assets/js/promptor-admin.js:3 5261 #: admin/assets/js/promptor-admin.js:341 63 62 msgid "An AJAX error occurred. Please try again." 64 63 msgstr "" 65 64 66 #: admin/assets/js/promptor-admin.js:3 7365 #: admin/assets/js/promptor-admin.js:362 67 66 msgid "Verifying…" 68 67 msgstr "" 69 68 70 #: admin/assets/js/promptor-admin.js:3 86 admin/assets/js/promptor-admin.js:422 admin/assets/js/promptor-admin.js:45071 #: admin/assets/js/promptor-admin.js: 52069 #: admin/assets/js/promptor-admin.js:375 admin/assets/js/promptor-admin.js:411 admin/assets/js/promptor-admin.js:439 70 #: admin/assets/js/promptor-admin.js:498 72 71 msgid "An unknown server error occurred." 73 72 msgstr "" 74 73 75 #: admin/assets/js/promptor-admin.js: 40374 #: admin/assets/js/promptor-admin.js:392 76 75 msgid "Please enter a name for the knowledge base." 77 76 msgstr "" 78 77 79 #: admin/assets/js/promptor-admin.js:4 17 admin/assets/js/promptor-admin.js:44578 #: admin/assets/js/promptor-admin.js:406 admin/assets/js/promptor-admin.js:434 80 79 msgid "Error: " 81 80 msgstr "" 82 81 83 #: admin/assets/js/promptor-admin.js:4 3082 #: admin/assets/js/promptor-admin.js:419 84 83 msgid "Are you sure you want to delete this knowledge base?" 85 84 msgstr "" 86 85 87 #: admin/assets/js/promptor-admin.js: 51586 #: admin/assets/js/promptor-admin.js:493 88 87 msgid "Saved." 89 88 msgstr "" 90 89 91 #: admin/assets/js/promptor-admin.js: 515 admin/assets/js/promptor-admin.js:111490 #: admin/assets/js/promptor-admin.js:493 admin/assets/js/promptor-admin.js:1064 92 91 msgid "Unknown error" 93 92 msgstr "" 94 93 95 #: admin/assets/js/promptor-admin.js:5 4894 #: admin/assets/js/promptor-admin.js:526 96 95 #, javascript-format 97 96 msgid "Are you sure you want to clear the index for \"%s\"?" 98 97 msgstr "" 99 98 100 #: admin/assets/js/promptor-admin.js:5 5699 #: admin/assets/js/promptor-admin.js:534 101 100 msgid "Please select a knowledge base and provide a sitemap URL." 102 101 msgstr "" 103 102 104 #: admin/assets/js/promptor-admin.js:5 59103 #: admin/assets/js/promptor-admin.js:537 105 104 #, javascript-format 106 105 msgid "Sitemap will be crawled for \"%s\". Continue?" 107 106 msgstr "" 108 107 109 #: admin/assets/js/promptor-admin.js:5 65108 #: admin/assets/js/promptor-admin.js:543 110 109 #, javascript-format 111 110 msgid "Are you sure you want to sync manual content for \"%s\"?" 112 111 msgstr "" 113 112 114 #: admin/assets/js/promptor-admin.js:5 74113 #: admin/assets/js/promptor-admin.js:552 115 114 #, javascript-format 116 115 msgid "Starting process for \"%s\"…" 117 116 msgstr "" 118 117 119 #: admin/assets/js/promptor-admin.js:5 87118 #: admin/assets/js/promptor-admin.js:565 120 119 #, javascript-format 121 120 msgid "%d item found." … … 124 123 msgstr[1] "" 125 124 125 #: admin/assets/js/promptor-admin.js:573 126 msgid "No new items to process. Knowledge base is up to date." 127 msgstr "" 128 129 #: admin/assets/js/promptor-admin.js:580 130 msgid "ERROR: " 131 msgstr "" 132 133 #: admin/assets/js/promptor-admin.js:581 134 msgid "Operation failed." 135 msgstr "" 136 137 #: admin/assets/js/promptor-admin.js:587 admin/assets/js/promptor-admin.js:669 138 msgid "Server error." 139 msgstr "" 140 126 141 #: admin/assets/js/promptor-admin.js:595 127 msgid "No new items to process. Knowledge base is up to date."128 msgstr ""129 130 #: admin/assets/js/promptor-admin.js:602131 msgid "ERROR: "132 msgstr ""133 134 #: admin/assets/js/promptor-admin.js:603135 msgid "Operation failed."136 msgstr ""137 138 #: admin/assets/js/promptor-admin.js:609 admin/assets/js/promptor-admin.js:691139 msgid "Server error."140 msgstr ""141 142 #: admin/assets/js/promptor-admin.js:617143 142 msgid "All items processed!" 144 143 msgstr "" 145 144 146 #: admin/assets/js/promptor-admin.js:6 22admin/settings/class-promptor-settings-knowledge-base.php:111145 #: admin/assets/js/promptor-admin.js:600 admin/settings/class-promptor-settings-knowledge-base.php:111 147 146 #: admin/settings/class-promptor-settings-knowledge-base.php:181 148 147 msgid "Crawler" 149 148 msgstr "" 150 149 151 #: admin/assets/js/promptor-admin.js:6 28150 #: admin/assets/js/promptor-admin.js:606 152 151 #, javascript-format 153 152 msgid "ID %d" 154 153 msgstr "" 155 154 156 #: admin/assets/js/promptor-admin.js:6 31155 #: admin/assets/js/promptor-admin.js:609 157 156 #, javascript-format 158 157 msgid "Processing item %1$d/%2$d (%3$s): %4$s…" 159 158 msgstr "" 160 159 161 #: admin/assets/js/promptor-admin.js:6 46160 #: admin/assets/js/promptor-admin.js:624 162 161 msgid "OK" 163 162 msgstr "" 164 163 165 #: admin/assets/js/promptor-admin.js:6 47164 #: admin/assets/js/promptor-admin.js:625 166 165 msgid "ERROR:" 167 166 msgstr "" 168 167 169 #: admin/assets/js/promptor-admin.js:6 51168 #: admin/assets/js/promptor-admin.js:629 170 169 #, javascript-format 171 170 msgid " -> SERVER ERROR: Could not process item %s." 172 171 msgstr "" 173 172 174 #: admin/assets/js/promptor-admin.js:6 85 admin/assets/js/promptor-admin.js:716 admin/assets/js/promptor-admin.js:747175 #: admin/assets/js/promptor-admin.js:10 70 admin/assets/js/promptor-admin.js:1113 admin/assets/js/promptor-admin.js:1232173 #: admin/assets/js/promptor-admin.js:663 admin/assets/js/promptor-admin.js:694 admin/assets/js/promptor-admin.js:725 174 #: admin/assets/js/promptor-admin.js:1020 admin/assets/js/promptor-admin.js:1063 admin/assets/js/promptor-admin.js:1182 176 175 #, javascript-format 177 176 msgid "Error: %s" 178 177 msgstr "" 179 178 180 #: admin/assets/js/promptor-admin.js:6 86179 #: admin/assets/js/promptor-admin.js:664 181 180 msgid "Unknown error." 182 181 msgstr "" 183 182 184 #: admin/assets/js/promptor-admin.js: 701183 #: admin/assets/js/promptor-admin.js:679 185 184 msgid "Please enter an Order ID." 186 185 msgstr "" 187 186 188 #: admin/assets/js/promptor-admin.js: 721 admin/assets/js/promptor-admin.js:752187 #: admin/assets/js/promptor-admin.js:699 admin/assets/js/promptor-admin.js:730 189 188 msgid "Unknown server error." 190 189 msgstr "" 191 190 192 #: admin/assets/js/promptor-admin.js:8 51 admin/class-promptor-dashboard-page.php:142admin/class-promptor-list-table-pages.php:33191 #: admin/assets/js/promptor-admin.js:811 admin/class-promptor-dashboard-page.php:141 admin/class-promptor-list-table-pages.php:33 193 192 msgid "Queries" 194 193 msgstr "" 195 194 196 #: admin/assets/js/promptor-admin.js:8 59 admin/class-promptor-admin.php:107 admin/class-promptor-dashboard-page.php:144195 #: admin/assets/js/promptor-admin.js:819 admin/class-promptor-admin.php:106 admin/class-promptor-dashboard-page.php:142 197 196 #: admin/class-promptor-submissions-table.php:46 198 197 msgid "Submissions" 199 198 msgstr "" 200 199 201 #: admin/assets/js/promptor-admin.js:8 67 admin/assets/js/promptor-admin.js:926 admin/class-promptor-dashboard-page.php:145200 #: admin/assets/js/promptor-admin.js:827 admin/assets/js/promptor-admin.js:876 admin/class-promptor-dashboard-page.php:143 202 201 msgid "Revenue" 203 202 msgstr "" 204 203 205 #: admin/assets/js/promptor-admin.js:875 admin/class-promptor-dashboard-page.php:143 206 msgid "Satisfaction (%)" 207 msgstr "" 208 209 #: admin/assets/js/promptor-admin.js:906 204 #: admin/assets/js/promptor-admin.js:856 210 205 msgid "Leads" 211 206 msgstr "" 212 207 213 #: admin/assets/js/promptor-admin.js:9 57208 #: admin/assets/js/promptor-admin.js:907 214 209 msgid "Saving settings…" 215 210 msgstr "" 216 211 217 #: admin/assets/js/promptor-admin.js:9 67212 #: admin/assets/js/promptor-admin.js:917 218 213 #, javascript-format 219 214 msgid "Error saving settings: %s" 220 215 msgstr "" 221 216 222 #: admin/assets/js/promptor-admin.js:9 74217 #: admin/assets/js/promptor-admin.js:924 223 218 msgid "Settings saved. Sending test…" 224 219 msgstr "" 225 220 226 #: admin/assets/js/promptor-admin.js:9 80221 #: admin/assets/js/promptor-admin.js:930 227 222 msgid "Server error during test." 228 223 msgstr "" 229 224 230 #: admin/assets/js/promptor-admin.js:9 88225 #: admin/assets/js/promptor-admin.js:938 231 226 msgid "Server error while saving settings." 232 227 msgstr "" 233 228 234 #: admin/assets/js/promptor-admin.js: 1033229 #: admin/assets/js/promptor-admin.js:983 235 230 msgid "Please choose a bulk action." 236 231 msgstr "" 237 232 238 #: admin/assets/js/promptor-admin.js: 1043233 #: admin/assets/js/promptor-admin.js:993 239 234 msgid "Please select at least one item to proceed." 240 235 msgstr "" 241 236 242 #: admin/assets/js/promptor-admin.js:10 74 admin/assets/js/promptor-admin.js:1120 admin/assets/js/promptor-admin.js:1236243 #: admin/assets/js/promptor-admin.js:1 425237 #: admin/assets/js/promptor-admin.js:1024 admin/assets/js/promptor-admin.js:1070 admin/assets/js/promptor-admin.js:1186 238 #: admin/assets/js/promptor-admin.js:1303 244 239 msgid "A server error occurred. Please try again." 245 240 msgstr "" 246 241 247 #: admin/assets/js/promptor-admin.js:1 223242 #: admin/assets/js/promptor-admin.js:1173 248 243 msgid "✓ Questions generated successfully!" 249 244 msgstr "" 250 245 251 #: admin/assets/js/promptor-admin.js:1 232246 #: admin/assets/js/promptor-admin.js:1182 252 247 msgid "Failed to generate questions" 253 248 msgstr "" 254 249 255 #: admin/assets/js/promptor-admin.js:1321 256 #, javascript-format 257 msgid "You have already selected the maximum of %d content items. Please upgrade to Pro for unlimited selections." 258 msgstr "" 259 260 #: admin/assets/js/promptor-admin.js:1331 261 #, javascript-format 262 msgid "You are using Promptor Lite. You can select a maximum of %d content items. Selecting %d more items to reach the limit." 263 msgstr "" 264 265 #: admin/assets/js/promptor-admin.js:1347 250 #: admin/assets/js/promptor-admin.js:1226 266 251 #, javascript-format 267 252 msgid "You are about to select %1$d items. For performance reasons, we limit bulk selection to %2$d items. Do you want to select the first %2$d items?" 268 253 msgstr "" 269 254 270 #: admin/assets/js/promptor-admin.js:1 365255 #: admin/assets/js/promptor-admin.js:1244 271 256 #, javascript-format 272 257 msgid "%1$d items selected. Note: There are %2$d more items. Load them first to select all." … … 274 259 275 260 #. translators: %d: Number of remaining items to load 276 #: admin/assets/js/promptor-admin.js:1 414 admin/settings/class-promptor-settings-knowledge-base.php:477277 #: admin/settings/class-promptor-settings-knowledge-base.php:4 99261 #: admin/assets/js/promptor-admin.js:1292 admin/settings/class-promptor-settings-knowledge-base.php:464 262 #: admin/settings/class-promptor-settings-knowledge-base.php:486 278 263 #, javascript-format, php-format 279 264 msgid "Load More (%d remaining)" 280 265 msgstr "" 281 266 282 #: admin/assets/js/promptor-admin.js:1 421267 #: admin/assets/js/promptor-admin.js:1299 283 268 msgid "Failed to load more content." 284 269 msgstr "" … … 303 288 msgstr "" 304 289 305 #: admin/class-promptor-admin.php:10 6 admin/class-promptor-list-table-pages.php:829306 msgid " AI Conversations"307 msgstr "" 308 309 #: admin/class-promptor-admin.php:108 admin/class-promptor-settings-page.php:7 7admin/class-promptor-welcome-page.php:84290 #: admin/class-promptor-admin.php:107 291 msgid "Queries Log" 292 msgstr "" 293 294 #: admin/class-promptor-admin.php:108 admin/class-promptor-settings-page.php:73 admin/class-promptor-welcome-page.php:84 310 295 #: admin/class-promptor-welcome-page.php:102 311 296 msgid "Settings" 312 297 msgstr "" 313 298 314 #: admin/class-promptor-admin.php:111 admin/class-promptor-changelog-page.php:1 6admin/class-promptor-welcome-page.php:214299 #: admin/class-promptor-admin.php:111 admin/class-promptor-changelog-page.php:14 admin/class-promptor-welcome-page.php:214 315 300 #: admin/class-promptor-welcome-page.php:269 316 301 msgid "Changelog" 317 302 msgstr "" 318 303 319 #: admin/class-promptor-admin.php:1 91304 #: admin/class-promptor-admin.php:189 320 305 msgid "Are you sure you want to permanently delete all indexed data for this knowledge base?" 321 306 msgstr "" 322 307 323 #: admin/class-promptor-admin.php:19 2308 #: admin/class-promptor-admin.php:190 324 309 msgid "Are you sure you want to delete this knowledge base? This action cannot be undone." 325 310 msgstr "" 326 311 327 #: admin/class-promptor-changelog-page.php:17 328 msgid "Track all updates, improvements, and new features added to Promptor." 329 msgstr "" 330 331 #: admin/class-promptor-changelog-page.php:20 312 #: admin/class-promptor-changelog-page.php:15 332 313 msgid "Back to Welcome" 333 314 msgstr "" 334 315 335 #: admin/class-promptor-changelog-page.php: 34316 #: admin/class-promptor-changelog-page.php:29 336 317 msgid "Changelog could not be loaded. Please check the readme.txt file." 337 318 msgstr "" … … 339 320 #: admin/class-promptor-dashboard-page.php:31 admin/class-promptor-settings-page.php:37 admin/settings/class-promptor-settings-knowledge-base.php:30 340 321 #: admin/settings/class-promptor-settings-knowledge-base.php:363 admin/settings/class-promptor-settings-notifications.php:73 341 #: admin/settings/class-promptor-settings-ui.php:23 1322 #: admin/settings/class-promptor-settings-ui.php:230 342 323 msgid "You do not have permission to access this page." 343 324 msgstr "" … … 354 335 #: admin/class-promptor-submissions-table.php:346 admin/settings/class-promptor-settings-knowledge-base.php:54 355 336 #: admin/settings/class-promptor-settings-ui.php:38 public/ajax-handlers/class-promptor-ajax-admin-handler.php:141 356 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:192 public/ajax-handlers/class-promptor-ajax-admin-handler.php: 504337 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:192 public/ajax-handlers/class-promptor-ajax-admin-handler.php:477 357 338 msgid "Security check failed." 358 339 msgstr "" … … 362 343 msgstr "" 363 344 364 #: admin/class-promptor-dashboard-page.php:114 admin/class-promptor-dashboard-page.php:4 87admin/class-promptor-submissions-table.php:119345 #: admin/class-promptor-dashboard-page.php:114 admin/class-promptor-dashboard-page.php:475 admin/class-promptor-submissions-table.php:119 365 346 #: admin/class-promptor-submissions-table.php:576 public/ajax-handlers/class-promptor-ajax-admin-handler.php:125 366 347 msgid "Pending" 367 348 msgstr "" 368 349 369 #: admin/class-promptor-dashboard-page.php:115 admin/class-promptor-dashboard-page.php:4 88admin/class-promptor-submissions-table.php:122350 #: admin/class-promptor-dashboard-page.php:115 admin/class-promptor-dashboard-page.php:476 admin/class-promptor-submissions-table.php:122 370 351 #: admin/class-promptor-submissions-table.php:580 public/ajax-handlers/class-promptor-ajax-admin-handler.php:126 371 352 msgid "Contacted" 372 353 msgstr "" 373 354 374 #: admin/class-promptor-dashboard-page.php:116 admin/class-promptor-dashboard-page.php:4 89admin/class-promptor-submissions-table.php:125355 #: admin/class-promptor-dashboard-page.php:116 admin/class-promptor-dashboard-page.php:477 admin/class-promptor-submissions-table.php:125 375 356 #: admin/class-promptor-submissions-table.php:584 public/ajax-handlers/class-promptor-ajax-admin-handler.php:127 376 357 msgid "Converted" 377 358 msgstr "" 378 359 379 #: admin/class-promptor-dashboard-page.php:117 admin/class-promptor-dashboard-page.php:4 90admin/class-promptor-submissions-table.php:128360 #: admin/class-promptor-dashboard-page.php:117 admin/class-promptor-dashboard-page.php:478 admin/class-promptor-submissions-table.php:128 380 361 #: admin/class-promptor-submissions-table.php:588 public/ajax-handlers/class-promptor-ajax-admin-handler.php:128 381 362 msgid "Rejected" 382 363 msgstr "" 383 364 384 #: admin/class-promptor-dashboard-page.php:16 5365 #: admin/class-promptor-dashboard-page.php:163 385 366 msgid "Performance Dashboard" 386 367 msgstr "" 387 368 388 369 #. translators: %s: current period label 389 #: admin/class-promptor-dashboard-page.php:1 71370 #: admin/class-promptor-dashboard-page.php:169 390 371 #, php-format 391 372 msgid "Showing data for: %s" 392 373 msgstr "" 393 374 394 #: admin/class-promptor-dashboard-page.php:17 7375 #: admin/class-promptor-dashboard-page.php:175 395 376 msgid "Refresh Data" 396 377 msgstr "" 397 378 398 #: admin/class-promptor-dashboard-page.php:18 4admin/settings/class-promptor-settings-knowledge-base.php:320379 #: admin/class-promptor-dashboard-page.php:182 admin/settings/class-promptor-settings-knowledge-base.php:320 399 380 msgid "Daily" 400 381 msgstr "" 401 382 402 #: admin/class-promptor-dashboard-page.php:18 8admin/settings/class-promptor-settings-knowledge-base.php:320383 #: admin/class-promptor-dashboard-page.php:186 admin/settings/class-promptor-settings-knowledge-base.php:320 403 384 msgid "Weekly" 404 385 msgstr "" 405 386 406 #: admin/class-promptor-dashboard-page.php:19 2387 #: admin/class-promptor-dashboard-page.php:190 407 388 msgid "Monthly" 408 389 msgstr "" 409 390 410 #: admin/class-promptor-dashboard-page.php:19 6391 #: admin/class-promptor-dashboard-page.php:194 411 392 msgid "Yearly" 412 393 msgstr "" 413 394 414 #: admin/class-promptor-dashboard-page.php:20 6395 #: admin/class-promptor-dashboard-page.php:204 415 396 msgid "Total AI Queries" 416 397 msgstr "" 417 398 418 #: admin/class-promptor-dashboard-page.php:21 3399 #: admin/class-promptor-dashboard-page.php:211 419 400 msgid "Total Leads" 420 401 msgstr "" 421 402 422 #: admin/class-promptor-dashboard-page.php:2 20403 #: admin/class-promptor-dashboard-page.php:218 423 404 msgid "Lead Conversion Rate" 424 405 msgstr "" 425 406 426 #: admin/class-promptor-dashboard-page.php:22 7407 #: admin/class-promptor-dashboard-page.php:225 427 408 msgid "Products Added to Cart" 428 409 msgstr "" 429 410 430 #: admin/class-promptor-dashboard-page.php:23 6411 #: admin/class-promptor-dashboard-page.php:234 431 412 msgid "AI-driven Revenue" 432 413 msgstr "" 433 414 434 #: admin/class-promptor-dashboard-page.php:24 5415 #: admin/class-promptor-dashboard-page.php:243 435 416 msgid "Satisfaction Rate" 436 417 msgstr "" 437 418 438 #: admin/class-promptor-dashboard-page.php:25 2419 #: admin/class-promptor-dashboard-page.php:250 439 420 msgid "Avg. Response Time" 440 421 msgstr "" 441 422 442 #: admin/class-promptor-dashboard-page.php:25 9423 #: admin/class-promptor-dashboard-page.php:257 443 424 msgid "Indexed Docs" 444 425 msgstr "" 445 426 446 #: admin/class-promptor-dashboard-page.php:26 6427 #: admin/class-promptor-dashboard-page.php:264 447 428 msgid "WooCommerce Products" 448 429 msgstr "" 449 430 450 #: admin/class-promptor-dashboard-page.php:27 7431 #: admin/class-promptor-dashboard-page.php:272 451 432 msgid "Daily Performance" 452 433 msgstr "" 453 434 454 #: admin/class-promptor-dashboard-page.php:2 90435 #: admin/class-promptor-dashboard-page.php:280 455 436 msgid "Lead Pipeline Distribution" 456 437 msgstr "" 457 438 458 #: admin/class-promptor-dashboard-page.php: 306439 #: admin/class-promptor-dashboard-page.php:294 459 440 msgid "Top Converting Services (Manual Leads)" 460 441 msgstr "" 461 442 462 #: admin/class-promptor-dashboard-page.php:3 17443 #: admin/class-promptor-dashboard-page.php:305 463 444 msgid "conversions" 464 445 msgstr "" 465 446 466 #: admin/class-promptor-dashboard-page.php:3 23447 #: admin/class-promptor-dashboard-page.php:311 467 448 msgid "No service conversions recorded yet." 468 449 msgstr "" 469 450 470 #: admin/class-promptor-dashboard-page.php:3 33451 #: admin/class-promptor-dashboard-page.php:321 471 452 msgid "Top Selling Products via AI" 472 453 msgstr "" 473 454 474 #: admin/class-promptor-dashboard-page.php:3 53455 #: admin/class-promptor-dashboard-page.php:341 475 456 msgid "sales" 476 457 msgstr "" 477 458 478 #: admin/class-promptor-dashboard-page.php:3 60459 #: admin/class-promptor-dashboard-page.php:348 479 460 msgid "No AI-driven sales recorded in this period yet." 480 461 msgstr "" 481 462 482 #: admin/class-promptor-dashboard-page.php:3 70 admin/class-promptor-list-table-pages.php:980463 #: admin/class-promptor-dashboard-page.php:358 admin/class-promptor-list-table-pages.php:965 483 464 msgid "Recent Submissions" 484 465 msgstr "" 485 466 486 #: admin/class-promptor-dashboard-page.php:3 77admin/settings/class-promptor-settings-knowledge-base.php:127467 #: admin/class-promptor-dashboard-page.php:365 admin/settings/class-promptor-settings-knowledge-base.php:127 487 468 msgid "Name" 488 469 msgstr "" 489 470 490 #: admin/class-promptor-dashboard-page.php:3 78admin/class-promptor-submissions-table.php:291471 #: admin/class-promptor-dashboard-page.php:366 admin/class-promptor-submissions-table.php:291 491 472 msgid "Status" 492 473 msgstr "" 493 474 494 #: admin/class-promptor-dashboard-page.php:3 79 admin/class-promptor-dashboard-page.php:425admin/class-promptor-list-table-pages.php:247495 #: admin/class-promptor-list-table-pages.php: 1000admin/class-promptor-submissions-table.php:292496 #: admin/settings/class-promptor-settings-knowledge-base.php:4 77 admin/settings/class-promptor-settings-knowledge-base.php:495475 #: admin/class-promptor-dashboard-page.php:367 admin/class-promptor-dashboard-page.php:413 admin/class-promptor-list-table-pages.php:247 476 #: admin/class-promptor-list-table-pages.php:985 admin/class-promptor-submissions-table.php:292 477 #: admin/settings/class-promptor-settings-knowledge-base.php:464 admin/settings/class-promptor-settings-knowledge-base.php:482 497 478 msgid "Date" 498 479 msgstr "" 499 480 500 #: admin/class-promptor-dashboard-page.php:3 99 admin/class-promptor-list-table-pages.php:1006481 #: admin/class-promptor-dashboard-page.php:387 admin/class-promptor-list-table-pages.php:991 501 482 msgid "No submissions yet." 502 483 msgstr "" 503 484 504 #: admin/class-promptor-dashboard-page.php: 408485 #: admin/class-promptor-dashboard-page.php:396 505 486 msgid "View All Submissions" 506 487 msgstr "" 507 488 508 #: admin/class-promptor-dashboard-page.php:4 17489 #: admin/class-promptor-dashboard-page.php:405 509 490 msgid "Recent Queries" 510 491 msgstr "" 511 492 512 #: admin/class-promptor-dashboard-page.php:4 24admin/class-promptor-list-table-pages.php:240493 #: admin/class-promptor-dashboard-page.php:412 admin/class-promptor-list-table-pages.php:240 513 494 msgid "User Query" 514 495 msgstr "" 515 496 516 #: admin/class-promptor-dashboard-page.php:4 40497 #: admin/class-promptor-dashboard-page.php:428 517 498 msgid "No queries yet." 518 499 msgstr "" 519 500 520 #: admin/class-promptor-dashboard-page.php:4 49501 #: admin/class-promptor-dashboard-page.php:437 521 502 msgid "View All Queries" 522 503 msgstr "" 523 504 524 #: admin/class-promptor-dashboard-page.php:4 57505 #: admin/class-promptor-dashboard-page.php:445 525 506 msgid "System Status:" 526 507 msgstr "" 527 508 528 #: admin/class-promptor-dashboard-page.php:4 64509 #: admin/class-promptor-dashboard-page.php:452 529 510 msgid "WooCommerce" 530 511 msgstr "" 531 512 532 #: admin/class-promptor-dashboard-page.php:4 68513 #: admin/class-promptor-dashboard-page.php:456 533 514 msgid "Knowledge Base" 534 515 msgstr "" 535 516 536 #: admin/class-promptor-dashboard-page.php:4 72517 #: admin/class-promptor-dashboard-page.php:460 537 518 msgid "Analytics Live" 538 519 msgstr "" 539 520 521 #: admin/class-promptor-dashboard-page.php:501 522 msgid "(Today)" 523 msgstr "" 524 525 #: admin/class-promptor-dashboard-page.php:505 526 msgid "(Last 7 Days)" 527 msgstr "" 528 529 #: admin/class-promptor-dashboard-page.php:509 530 msgid "(Last 30 Days)" 531 msgstr "" 532 540 533 #: admin/class-promptor-dashboard-page.php:513 541 msgid "(Today)"542 msgstr ""543 544 #: admin/class-promptor-dashboard-page.php:517545 msgid "(Last 7 Days)"546 msgstr ""547 548 #: admin/class-promptor-dashboard-page.php:521549 msgid "(Last 30 Days)"550 msgstr ""551 552 #: admin/class-promptor-dashboard-page.php:525553 534 msgid "(Last Year)" 554 535 msgstr "" … … 666 647 msgstr "" 667 648 668 #: admin/class-promptor-list-table-pages.php:8 31669 msgid " View and analyze all AI-powered conversations with your website visitors."670 msgstr "" 671 672 #: admin/class-promptor-list-table-pages.php:8 44649 #: admin/class-promptor-list-table-pages.php:825 650 msgid "AI Queries Log" 651 msgstr "" 652 653 #: admin/class-promptor-list-table-pages.php:836 673 654 #, php-format 674 655 msgid "%s query has been deleted." … … 678 659 679 660 #. translators: 1: queries used, 2: query limit 680 #: admin/class-promptor-list-table-pages.php:8 75661 #: admin/class-promptor-list-table-pages.php:867 681 662 #, php-format 682 663 msgid "Monthly Query Limit: %1$d / %2$d used" … … 684 665 685 666 #. translators: 1: percentage, 2: upgrade URL 686 #: admin/class-promptor-list-table-pages.php:8 96667 #: admin/class-promptor-list-table-pages.php:888 687 668 #, php-format 688 669 msgid "" … … 691 672 msgstr "" 692 673 693 #: admin/class-promptor-list-table-pages.php:9 13674 #: admin/class-promptor-list-table-pages.php:905 694 675 msgid "Search Queries" 695 676 msgstr "" 696 677 697 #: admin/class-promptor-list-table-pages.php:940 698 msgid "Lead Submissions" 699 msgstr "" 700 701 #: admin/class-promptor-list-table-pages.php:941 702 msgid "Manage and track all lead form submissions generated through AI conversations." 678 #: admin/class-promptor-list-table-pages.php:929 679 msgid "Form Submissions" 703 680 msgstr "" 704 681 705 682 #. translators: %s: upgrade URL 706 #: admin/class-promptor-list-table-pages.php:9 87683 #: admin/class-promptor-list-table-pages.php:972 707 684 #, php-format 708 685 msgid "" … … 712 689 msgstr "" 713 690 714 #: admin/class-promptor-list-table-pages.php:9 97admin/class-promptor-submissions-table.php:287691 #: admin/class-promptor-list-table-pages.php:982 admin/class-promptor-submissions-table.php:287 715 692 msgid "Submitter" 716 693 msgstr "" 717 694 718 #: admin/class-promptor-list-table-pages.php:9 98admin/class-promptor-submissions-table.php:288695 #: admin/class-promptor-list-table-pages.php:983 admin/class-promptor-submissions-table.php:288 719 696 msgid "Contact Details" 720 697 msgstr "" 721 698 722 #: admin/class-promptor-list-table-pages.php:9 99 admin/class-promptor-submissions-table.php:290 public/assets/js/promptor-public.js:241699 #: admin/class-promptor-list-table-pages.php:984 admin/class-promptor-submissions-table.php:290 723 700 msgid "Selected Services" 724 701 msgstr "" 725 702 726 #: admin/class-promptor-list-table-pages.php:10 18admin/class-promptor-submissions-table.php:470703 #: admin/class-promptor-list-table-pages.php:1003 admin/class-promptor-submissions-table.php:470 727 704 msgid "Email hidden" 728 705 msgstr "" 729 706 730 #: admin/class-promptor-list-table-pages.php:10 26707 #: admin/class-promptor-list-table-pages.php:1011 731 708 msgid "No phone" 732 709 msgstr "" 733 710 734 #: admin/class-promptor-settings-page.php:79 735 msgid "Configure your AI assistant, knowledge bases, and customize the chat experience." 736 msgstr "" 737 738 #: admin/class-promptor-settings-page.php:86 711 #: admin/class-promptor-settings-page.php:78 739 712 msgid "Knowledge Bases" 740 713 msgstr "" 741 714 742 #: admin/class-promptor-settings-page.php: 91715 #: admin/class-promptor-settings-page.php:83 743 716 msgid "API Settings" 744 717 msgstr "" 745 718 746 #: admin/class-promptor-settings-page.php: 96719 #: admin/class-promptor-settings-page.php:88 747 720 msgid "UI Settings" 748 721 msgstr "" 749 722 750 #: admin/class-promptor-settings-page.php: 102723 #: admin/class-promptor-settings-page.php:94 751 724 msgid "Notifications" 752 725 msgstr "" … … 1470 1443 msgstr "" 1471 1444 1472 #: admin/settings/class-promptor-settings-knowledge-base.php:4 411445 #: admin/settings/class-promptor-settings-knowledge-base.php:439 1473 1446 msgid "PDF Files" 1474 1447 msgstr "" 1475 1448 1449 #: admin/settings/class-promptor-settings-knowledge-base.php:449 admin/settings/class-promptor-settings-knowledge-base.php:467 1450 msgid "Select bulk action" 1451 msgstr "" 1452 1453 #: admin/settings/class-promptor-settings-knowledge-base.php:451 admin/settings/class-promptor-settings-knowledge-base.php:469 1454 msgid "Bulk actions" 1455 msgstr "" 1456 1457 #: admin/settings/class-promptor-settings-knowledge-base.php:452 admin/settings/class-promptor-settings-knowledge-base.php:470 1458 msgid "Change role to: Service" 1459 msgstr "" 1460 1461 #: admin/settings/class-promptor-settings-knowledge-base.php:453 admin/settings/class-promptor-settings-knowledge-base.php:471 1462 msgid "Change role to: Product" 1463 msgstr "" 1464 1465 #: admin/settings/class-promptor-settings-knowledge-base.php:454 admin/settings/class-promptor-settings-knowledge-base.php:472 1466 msgid "Change role to: Blog Post" 1467 msgstr "" 1468 1469 #: admin/settings/class-promptor-settings-knowledge-base.php:455 admin/settings/class-promptor-settings-knowledge-base.php:473 1470 msgid "Change role to: FAQ" 1471 msgstr "" 1472 1473 #: admin/settings/class-promptor-settings-knowledge-base.php:457 admin/settings/class-promptor-settings-knowledge-base.php:475 1474 msgid "Apply" 1475 msgstr "" 1476 1477 #: admin/settings/class-promptor-settings-knowledge-base.php:460 admin/settings/class-promptor-settings-knowledge-base.php:478 1478 msgid "items selected" 1479 msgstr "" 1480 1481 #: admin/settings/class-promptor-settings-knowledge-base.php:461 admin/settings/class-promptor-settings-knowledge-base.php:479 1482 msgid "Select This Page" 1483 msgstr "" 1484 1476 1485 #: admin/settings/class-promptor-settings-knowledge-base.php:462 admin/settings/class-promptor-settings-knowledge-base.php:480 1477 msgid "Select bulk action" 1486 msgid "Select All" 1487 msgstr "" 1488 1489 #: admin/settings/class-promptor-settings-knowledge-base.php:463 1490 msgid "Search content..." 1491 msgstr "" 1492 1493 #: admin/settings/class-promptor-settings-knowledge-base.php:464 1494 msgid "Title" 1478 1495 msgstr "" 1479 1496 1480 1497 #: admin/settings/class-promptor-settings-knowledge-base.php:464 admin/settings/class-promptor-settings-knowledge-base.php:482 1481 msgid "Bulk actions"1482 msgstr ""1483 1484 #: admin/settings/class-promptor-settings-knowledge-base.php:465 admin/settings/class-promptor-settings-knowledge-base.php:4831485 msgid "Change role to: Service"1486 msgstr ""1487 1488 #: admin/settings/class-promptor-settings-knowledge-base.php:466 admin/settings/class-promptor-settings-knowledge-base.php:4841489 msgid "Change role to: Product"1490 msgstr ""1491 1492 #: admin/settings/class-promptor-settings-knowledge-base.php:467 admin/settings/class-promptor-settings-knowledge-base.php:4851493 msgid "Change role to: Blog Post"1494 msgstr ""1495 1496 #: admin/settings/class-promptor-settings-knowledge-base.php:468 admin/settings/class-promptor-settings-knowledge-base.php:4861497 msgid "Change role to: FAQ"1498 msgstr ""1499 1500 #: admin/settings/class-promptor-settings-knowledge-base.php:470 admin/settings/class-promptor-settings-knowledge-base.php:4881501 msgid "Apply"1502 msgstr ""1503 1504 #: admin/settings/class-promptor-settings-knowledge-base.php:473 admin/settings/class-promptor-settings-knowledge-base.php:4911505 msgid "items selected"1506 msgstr ""1507 1508 #: admin/settings/class-promptor-settings-knowledge-base.php:474 admin/settings/class-promptor-settings-knowledge-base.php:4921509 msgid "Select This Page"1510 msgstr ""1511 1512 #: admin/settings/class-promptor-settings-knowledge-base.php:475 admin/settings/class-promptor-settings-knowledge-base.php:4931513 msgid "Select All"1514 msgstr ""1515 1516 #: admin/settings/class-promptor-settings-knowledge-base.php:4761517 msgid "Search content..."1518 msgstr ""1519 1520 #: admin/settings/class-promptor-settings-knowledge-base.php:4771521 msgid "Title"1522 msgstr ""1523 1524 #: admin/settings/class-promptor-settings-knowledge-base.php:477 admin/settings/class-promptor-settings-knowledge-base.php:4951525 1498 msgid "Content Role" 1526 1499 msgstr "" 1527 1500 1528 #: admin/settings/class-promptor-settings-knowledge-base.php:4 771501 #: admin/settings/class-promptor-settings-knowledge-base.php:464 1529 1502 msgid "Word Count" 1530 1503 msgstr "" 1531 1504 1532 #: admin/settings/class-promptor-settings-knowledge-base.php:4 771505 #: admin/settings/class-promptor-settings-knowledge-base.php:464 1533 1506 msgid "No content found for this post type." 1534 1507 msgstr "" 1535 1508 1536 #: admin/settings/class-promptor-settings-knowledge-base.php:4 941509 #: admin/settings/class-promptor-settings-knowledge-base.php:481 1537 1510 msgid "Search PDFs..." 1538 1511 msgstr "" 1539 1512 1540 #: admin/settings/class-promptor-settings-knowledge-base.php:4 951513 #: admin/settings/class-promptor-settings-knowledge-base.php:482 1541 1514 msgid "File Name" 1542 1515 msgstr "" 1543 1516 1544 #: admin/settings/class-promptor-settings-knowledge-base.php:4 98 admin/settings/class-promptor-settings-knowledge-base.php:5801545 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:11 881517 #: admin/settings/class-promptor-settings-knowledge-base.php:485 admin/settings/class-promptor-settings-knowledge-base.php:567 1518 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1139 1546 1519 msgid "Service" 1547 1520 msgstr "" 1548 1521 1549 #: admin/settings/class-promptor-settings-knowledge-base.php:4 98 admin/settings/class-promptor-settings-knowledge-base.php:5811550 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:11 891522 #: admin/settings/class-promptor-settings-knowledge-base.php:485 admin/settings/class-promptor-settings-knowledge-base.php:568 1523 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1140 1551 1524 msgid "Product" 1552 1525 msgstr "" 1553 1526 1554 #: admin/settings/class-promptor-settings-knowledge-base.php:4 98 admin/settings/class-promptor-settings-knowledge-base.php:5821555 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:11 901527 #: admin/settings/class-promptor-settings-knowledge-base.php:485 admin/settings/class-promptor-settings-knowledge-base.php:569 1528 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1141 1556 1529 msgid "Blog Post" 1557 1530 msgstr "" 1558 1531 1559 #: admin/settings/class-promptor-settings-knowledge-base.php:4 98 admin/settings/class-promptor-settings-knowledge-base.php:5831560 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:11 911532 #: admin/settings/class-promptor-settings-knowledge-base.php:485 admin/settings/class-promptor-settings-knowledge-base.php:570 1533 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1142 1561 1534 msgid "FAQ" 1562 1535 msgstr "" 1563 1536 1564 #: admin/settings/class-promptor-settings-knowledge-base.php: 503 admin/settings/class-promptor-settings-knowledge-base.php:5071537 #: admin/settings/class-promptor-settings-knowledge-base.php:490 admin/settings/class-promptor-settings-knowledge-base.php:494 1565 1538 msgid "Example Questions" 1566 1539 msgstr "" 1567 1540 1568 #: admin/settings/class-promptor-settings-knowledge-base.php: 5091541 #: admin/settings/class-promptor-settings-knowledge-base.php:496 1569 1542 msgid "e.g. I want to build a corporate website." 1570 1543 msgstr "" 1571 1544 1572 #: admin/settings/class-promptor-settings-knowledge-base.php: 5101545 #: admin/settings/class-promptor-settings-knowledge-base.php:497 1573 1546 msgid "Enter one example question per line. These will be shown to the user as suggestions." 1574 1547 msgstr "" 1575 1548 1576 #: admin/settings/class-promptor-settings-knowledge-base.php:5 141549 #: admin/settings/class-promptor-settings-knowledge-base.php:501 1577 1550 msgid "Generate with AI" 1578 1551 msgstr "" 1579 1552 1553 #: admin/settings/class-promptor-settings-knowledge-base.php:512 1554 msgid "Automation Settings (Pro)" 1555 msgstr "" 1556 1557 #: admin/settings/class-promptor-settings-knowledge-base.php:516 1558 msgid "Auto-Sync on Publish" 1559 msgstr "" 1560 1561 #: admin/settings/class-promptor-settings-knowledge-base.php:522 1562 msgid "Automatically add and index newly published content to this knowledge base." 1563 msgstr "" 1564 1580 1565 #: admin/settings/class-promptor-settings-knowledge-base.php:525 1581 msgid "Automation Settings (Pro)"1582 msgstr ""1583 1584 #: admin/settings/class-promptor-settings-knowledge-base.php:5291585 msgid "Auto-Sync on Publish"1586 msgstr ""1587 1588 #: admin/settings/class-promptor-settings-knowledge-base.php:5351589 msgid "Automatically add and index newly published content to this knowledge base."1590 msgstr ""1591 1592 #: admin/settings/class-promptor-settings-knowledge-base.php:5381593 1566 msgid "This is a Pro feature." 1594 1567 msgstr "" 1595 1568 1596 #: admin/settings/class-promptor-settings-knowledge-base.php:5 491569 #: admin/settings/class-promptor-settings-knowledge-base.php:536 1597 1570 msgid "Save Changes" 1598 1571 msgstr "" … … 1785 1758 1786 1759 #: admin/settings/class-promptor-settings-ui.php:32 public/ajax-handlers/class-promptor-ajax-admin-handler.php:31 1787 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 508 public/ajax-handlers/class-promptor-ajax-admin-handler.php:9861788 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1 1231760 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:481 public/ajax-handlers/class-promptor-ajax-admin-handler.php:959 1761 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1096 1789 1762 msgid "Permission denied." 1790 1763 msgstr "" 1791 1764 1792 #: admin/settings/class-promptor-settings-ui.php:2 101765 #: admin/settings/class-promptor-settings-ui.php:209 1793 1766 msgid "Settings saved successfully." 1794 1767 msgstr "" 1795 1768 1796 #: admin/settings/class-promptor-settings-ui.php:25 91769 #: admin/settings/class-promptor-settings-ui.php:258 1797 1770 msgid "UI Customization Target" 1798 1771 msgstr "" 1799 1772 1800 #: admin/settings/class-promptor-settings-ui.php:26 11773 #: admin/settings/class-promptor-settings-ui.php:260 1801 1774 msgid "Select which chat interface you want to customize." 1802 1775 msgstr "" 1803 1776 1804 #: admin/settings/class-promptor-settings-ui.php:26 81777 #: admin/settings/class-promptor-settings-ui.php:267 1805 1778 msgid "Global Popup Settings" 1806 1779 msgstr "" 1807 1780 1808 1781 #. translators: %s: Knowledge base name 1809 #: admin/settings/class-promptor-settings-ui.php:27 91782 #: admin/settings/class-promptor-settings-ui.php:278 1810 1783 #, php-format 1811 1784 msgid "Inline: %s Knowledge Base" … … 1813 1786 1814 1787 #. translators: %s: Upgrade URL 1815 #: admin/settings/class-promptor-settings-ui.php:29 71788 #: admin/settings/class-promptor-settings-ui.php:296 1816 1789 #, php-format 1817 1790 msgid "" … … 1820 1793 msgstr "" 1821 1794 1822 #: admin/settings/class-promptor-settings-ui.php:30 81795 #: admin/settings/class-promptor-settings-ui.php:307 1823 1796 msgid "Chat Widget Mode" 1824 1797 msgstr "" 1825 1798 1826 #: admin/settings/class-promptor-settings-ui.php:3 101799 #: admin/settings/class-promptor-settings-ui.php:309 1827 1800 msgid "" 1828 1801 "Choose how the chat assistant will appear on your site. Use a shortcode to display it on a specific page, or set up a site-wide floating popup (Pro)." 1829 1802 msgstr "" 1830 1803 1831 #: admin/settings/class-promptor-settings-ui.php:31 41804 #: admin/settings/class-promptor-settings-ui.php:313 1832 1805 msgid "Knowledge Base for Popup" 1833 1806 msgstr "" 1834 1807 1835 #: admin/settings/class-promptor-settings-ui.php:32 91808 #: admin/settings/class-promptor-settings-ui.php:328 1836 1809 msgid "Select which knowledge base the floating popup chat will use." 1837 1810 msgstr "" 1838 1811 1839 #: admin/settings/class-promptor-settings-ui.php:33 71812 #: admin/settings/class-promptor-settings-ui.php:336 1840 1813 msgid "Chat Position" 1841 1814 msgstr "" 1842 1815 1816 #: admin/settings/class-promptor-settings-ui.php:341 1817 msgid "Inline (via Shortcode)" 1818 msgstr "" 1819 1843 1820 #: admin/settings/class-promptor-settings-ui.php:342 1844 msgid " Inline (via Shortcode)"1821 msgid "Popup - Bottom Right (Pro)" 1845 1822 msgstr "" 1846 1823 1847 1824 #: admin/settings/class-promptor-settings-ui.php:343 1848 msgid "Popup - Bottom Right (Pro)"1849 msgstr ""1850 1851 #: admin/settings/class-promptor-settings-ui.php:3441852 1825 msgid "Popup - Bottom Left (Pro)" 1853 1826 msgstr "" 1854 1827 1855 #: admin/settings/class-promptor-settings-ui.php:34 61828 #: admin/settings/class-promptor-settings-ui.php:345 1856 1829 msgid "Choose how the chat widget appears. Popup mode is a Pro feature." 1857 1830 msgstr "" 1858 1831 1859 #: admin/settings/class-promptor-settings-ui.php:35 21832 #: admin/settings/class-promptor-settings-ui.php:351 1860 1833 msgid "Hide Header (Inline only)" 1861 1834 msgstr "" 1862 1835 1863 #: admin/settings/class-promptor-settings-ui.php:35 61836 #: admin/settings/class-promptor-settings-ui.php:355 1864 1837 msgid "Hide the header for a more compact view." 1865 1838 msgstr "" 1866 1839 1867 #: admin/settings/class-promptor-settings-ui.php:36 61840 #: admin/settings/class-promptor-settings-ui.php:365 1868 1841 msgid "General Appearance" 1869 1842 msgstr "" 1870 1843 1871 #: admin/settings/class-promptor-settings-ui.php:36 81844 #: admin/settings/class-promptor-settings-ui.php:367 1872 1845 msgid "Adjust general appearance settings like font size and corner radius to match your sites design." 1873 1846 msgstr "" 1874 1847 1848 #: admin/settings/class-promptor-settings-ui.php:369 1849 msgid "Font Size" 1850 msgstr "" 1851 1875 1852 #: admin/settings/class-promptor-settings-ui.php:370 1876 msgid "Font Size"1877 msgstr ""1878 1879 #: admin/settings/class-promptor-settings-ui.php:3711880 1853 msgid "Border Radius" 1881 1854 msgstr "" 1882 1855 1883 #: admin/settings/class-promptor-settings-ui.php:37 61856 #: admin/settings/class-promptor-settings-ui.php:375 1884 1857 msgid "Avatars" 1885 1858 msgstr "" 1886 1859 1887 #: admin/settings/class-promptor-settings-ui.php:37 81860 #: admin/settings/class-promptor-settings-ui.php:377 1888 1861 msgid "Customize the avatars to give your AI assistant more personality." 1889 1862 msgstr "" 1890 1863 1891 #: admin/settings/class-promptor-settings-ui.php:3 80 admin/settings/class-promptor-settings-ui.php:467 public/class-promptor-public.php:4181864 #: admin/settings/class-promptor-settings-ui.php:379 admin/settings/class-promptor-settings-ui.php:445 public/class-promptor-public.php:414 1892 1865 msgid "Bot Avatar" 1893 1866 msgstr "" 1894 1867 1895 #: admin/settings/class-promptor-settings-ui.php:38 71868 #: admin/settings/class-promptor-settings-ui.php:386 1896 1869 msgid "Colors" 1897 1870 msgstr "" 1898 1871 1899 #: admin/settings/class-promptor-settings-ui.php:38 91872 #: admin/settings/class-promptor-settings-ui.php:388 1900 1873 msgid "Set the chat widgets color palette to perfectly match your brand identity." 1901 1874 msgstr "" 1902 1875 1876 #: admin/settings/class-promptor-settings-ui.php:392 1877 msgid "Primary Color" 1878 msgstr "" 1879 1880 #: admin/settings/class-promptor-settings-ui.php:392 1881 msgid "Header, Ask button." 1882 msgstr "" 1883 1903 1884 #: admin/settings/class-promptor-settings-ui.php:393 1904 msgid "Primary Color" 1905 msgstr "" 1906 1907 #: admin/settings/class-promptor-settings-ui.php:393 1908 msgid "Header, Ask button." 1885 msgid "User Message Bubble" 1909 1886 msgstr "" 1910 1887 1911 1888 #: admin/settings/class-promptor-settings-ui.php:394 1912 msgid "User Message Bubble"1913 msgstr ""1914 1915 #: admin/settings/class-promptor-settings-ui.php:3951916 1889 msgid "User Message Text" 1917 1890 msgstr "" 1918 1891 1892 #: admin/settings/class-promptor-settings-ui.php:399 1893 msgid "Widget Background" 1894 msgstr "" 1895 1919 1896 #: admin/settings/class-promptor-settings-ui.php:400 1920 msgid " Widget Background"1897 msgid "AI Message Bubble" 1921 1898 msgstr "" 1922 1899 1923 1900 #: admin/settings/class-promptor-settings-ui.php:401 1924 msgid "AI Message Bubble"1901 msgid "AI Message Text" 1925 1902 msgstr "" 1926 1903 1927 1904 #: admin/settings/class-promptor-settings-ui.php:402 1928 msgid "AI Message Text"1929 msgstr ""1930 1931 #: admin/settings/class-promptor-settings-ui.php:4031932 1905 msgid "Input Focus Border" 1933 1906 msgstr "" 1934 1907 1935 #: admin/settings/class-promptor-settings-ui.php:41 11908 #: admin/settings/class-promptor-settings-ui.php:410 1936 1909 msgid "Content & Language" 1937 1910 msgstr "" 1938 1911 1939 #: admin/settings/class-promptor-settings-ui.php:41 31912 #: admin/settings/class-promptor-settings-ui.php:412 1940 1913 msgid "Edit the default text that appears in sections of the chat widget, such as the header and input placeholder." 1941 1914 msgstr "" 1942 1915 1916 #: admin/settings/class-promptor-settings-ui.php:414 1917 msgid "Header Title" 1918 msgstr "" 1919 1943 1920 #: admin/settings/class-promptor-settings-ui.php:415 1944 msgid "Header Title"1921 msgid "Header Subtitle" 1945 1922 msgstr "" 1946 1923 1947 1924 #: admin/settings/class-promptor-settings-ui.php:416 1948 msgid "Header Subtitle"1949 msgstr ""1950 1951 #: admin/settings/class-promptor-settings-ui.php:4171952 1925 msgid "Input Placeholder" 1953 1926 msgstr "" 1954 1927 1955 #: admin/settings/class-promptor-settings-ui.php:42 11928 #: admin/settings/class-promptor-settings-ui.php:420 1956 1929 msgid "Popup Animation" 1957 1930 msgstr "" 1958 1931 1932 #: admin/settings/class-promptor-settings-ui.php:425 1933 msgid "None" 1934 msgstr "" 1935 1959 1936 #: admin/settings/class-promptor-settings-ui.php:426 1960 msgid " None"1937 msgid "Fade" 1961 1938 msgstr "" 1962 1939 1963 1940 #: admin/settings/class-promptor-settings-ui.php:427 1964 msgid "Fade"1965 msgstr ""1966 1967 #: admin/settings/class-promptor-settings-ui.php:4281968 1941 msgid "Slide Up" 1969 1942 msgstr "" 1970 1943 1971 #: admin/settings/class-promptor-settings-ui.php:4 301944 #: admin/settings/class-promptor-settings-ui.php:429 1972 1945 msgid "Popup window open/close animation style." 1973 1946 msgstr "" 1974 1947 1975 #: admin/settings/class-promptor-settings-ui.php:439 1976 msgid "Conversation Settings" 1977 msgstr "" 1978 1979 #: admin/settings/class-promptor-settings-ui.php:441 1980 msgid "Configure how the AI handles conversation context and memory." 1981 msgstr "" 1982 1983 #: admin/settings/class-promptor-settings-ui.php:444 1984 msgid "Conversation Memory" 1985 msgstr "" 1986 1987 #: admin/settings/class-promptor-settings-ui.php:448 1988 msgid "Enable conversation memory - AI remembers previous messages in the conversation." 1989 msgstr "" 1990 1991 #: admin/settings/class-promptor-settings-ui.php:451 1992 msgid "When enabled, the AI will use the last 15 messages as context for better responses. Note: This increases API token usage." 1993 msgstr "" 1994 1995 #: admin/settings/class-promptor-settings-ui.php:462 1948 #: admin/settings/class-promptor-settings-ui.php:440 1996 1949 msgid "Live Preview" 1997 1950 msgstr "" 1998 1951 1999 #: admin/settings/class-promptor-settings-ui.php:4 741952 #: admin/settings/class-promptor-settings-ui.php:452 2000 1953 msgid "Hello! How can I help you today?" 2001 1954 msgstr "" 2002 1955 2003 #: admin/settings/class-promptor-settings-ui.php:4 761956 #: admin/settings/class-promptor-settings-ui.php:454 2004 1957 msgid "I have a question about your services." 2005 1958 msgstr "" 2006 1959 2007 #: admin/settings/class-promptor-settings-ui.php:4 811960 #: admin/settings/class-promptor-settings-ui.php:459 2008 1961 msgid "Send" 2009 1962 msgstr "" 2010 1963 2011 #: admin/settings/class-promptor-settings-ui.php:5 531964 #: admin/settings/class-promptor-settings-ui.php:531 2012 1965 msgid "Upload" 2013 1966 msgstr "" … … 2020 1973 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:228 public/ajax-handlers/class-promptor-ajax-admin-handler.php:268 2021 1974 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:321 public/ajax-handlers/class-promptor-ajax-admin-handler.php:360 2022 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:402 public/ajax-handlers/class-promptor-ajax-admin-handler.php:5 732023 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 625 public/ajax-handlers/class-promptor-ajax-admin-handler.php:6972024 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:7 40 public/ajax-handlers/class-promptor-ajax-admin-handler.php:7931975 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:402 public/ajax-handlers/class-promptor-ajax-admin-handler.php:546 1976 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:598 public/ajax-handlers/class-promptor-ajax-admin-handler.php:670 1977 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:713 public/ajax-handlers/class-promptor-ajax-admin-handler.php:766 2025 1978 #: public/ajax-handlers/class-promptor-ajax-indexing-handler.php:226 public/ajax-handlers/class-promptor-ajax-indexing-handler.php:326 2026 1979 #: public/ajax-handlers/class-promptor-ajax-indexing-handler.php:535 public/ajax-handlers/class-promptor-ajax-indexing-handler.php:794 … … 2066 2019 msgstr "" 2067 2020 2068 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:290 public/ajax-handlers/class-promptor-ajax-admin-handler.php:9 642069 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:10 812021 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:290 public/ajax-handlers/class-promptor-ajax-admin-handler.php:937 2022 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1054 2070 2023 msgid "Connection Error: " 2071 2024 msgstr "" … … 2107 2060 msgstr "" 2108 2061 2109 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:407 public/ajax-handlers/class-promptor-ajax-admin-handler.php:9 922062 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:407 public/ajax-handlers/class-promptor-ajax-admin-handler.php:965 2110 2063 msgid "Context key is missing." 2111 2064 msgstr "" 2112 2065 2113 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:412 public/ajax-handlers/class-promptor-ajax-admin-handler.php:7 532114 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 806 public/ajax-handlers/class-promptor-ajax-admin-handler.php:9972066 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:412 public/ajax-handlers/class-promptor-ajax-admin-handler.php:726 2067 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:779 public/ajax-handlers/class-promptor-ajax-admin-handler.php:970 2115 2068 msgid "Context not found." 2116 2069 msgstr "" … … 2120 2073 msgstr "" 2121 2074 2122 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:4 712075 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:444 2123 2076 msgid "Content settings saved successfully!" 2124 2077 msgstr "" 2125 2078 2126 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:5 332079 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:506 2127 2080 msgid "Query not found." 2128 2081 msgstr "" 2129 2082 2130 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:5 532083 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:526 2131 2084 msgid "Query Details" 2132 2085 msgstr "" 2133 2086 2134 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:5 552087 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:528 2135 2088 msgid "User's Query:" 2136 2089 msgstr "" 2137 2090 2138 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:5 572091 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:530 2139 2092 msgid "Full AI Response:" 2140 2093 msgstr "" 2141 2094 2142 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:6 29public/ajax-handlers/class-promptor-ajax-form-handler.php:2392095 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:602 public/ajax-handlers/class-promptor-ajax-form-handler.php:239 2143 2096 msgid "WooCommerce is not active." 2144 2097 msgstr "" 2145 2098 2146 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:6 36 public/ajax-handlers/class-promptor-ajax-admin-handler.php:7022099 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:609 public/ajax-handlers/class-promptor-ajax-admin-handler.php:675 2147 2100 msgid "Invalid data." 2148 2101 msgstr "" 2149 2102 2150 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:6 412103 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:614 2151 2104 msgid "Order not found." 2152 2105 msgstr "" 2153 2106 2154 2107 #. translators: %s: Order number with link 2155 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:6 822108 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:655 2156 2109 #, php-format 2157 2110 msgid "Linked to Order %s" 2158 2111 msgstr "" 2159 2112 2160 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:6 842113 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:657 2161 2114 msgid "Unlink" 2162 2115 msgstr "" 2163 2116 2164 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 7242117 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:697 2165 2118 msgid "Order ID" 2166 2119 msgstr "" 2167 2120 2168 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 7252121 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:698 2169 2122 msgid "Link" 2170 2123 msgstr "" 2171 2124 2172 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:7 482125 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:721 2173 2126 msgid "Incomplete data sent." 2174 2127 msgstr "" 2175 2128 2176 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:7 732129 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:746 2177 2130 #, php-format 2178 2131 msgid "%d content role successfully updated." … … 2181 2134 msgstr[1] "" 2182 2135 2183 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 8012136 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:774 2184 2137 msgid "Missing data." 2185 2138 msgstr "" 2186 2139 2187 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 8202140 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:793 2188 2141 msgid "Role updated successfully." 2189 2142 msgstr "" 2190 2143 2191 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:9 512144 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:924 2192 2145 msgid "Invalid Slack Webhook URL." 2193 2146 msgstr "" 2194 2147 2195 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:9 742148 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:947 2196 2149 msgid "Slack API returned an error: " 2197 2150 msgstr "" 2198 2151 2199 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php: 10182152 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:991 2200 2153 msgid "No indexed content found. Please sync some content first." 2201 2154 msgstr "" 2202 2155 2203 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:10 352156 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1008 2204 2157 msgid "OpenAI API key not configured." 2205 2158 msgstr "" 2206 2159 2207 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:10 892160 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1062 2208 2161 msgid "Failed to generate questions." 2209 2162 msgstr "" 2210 2163 2211 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1 1092164 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1082 2212 2165 msgid "Questions generated successfully!" 2213 2166 msgstr "" 2214 2167 2215 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:11 312168 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1104 2216 2169 msgid "Invalid parameters." 2217 2170 msgstr "" … … 2247 2200 msgstr "" 2248 2201 2249 #: public/ajax-handlers/class-promptor-ajax-chat-handler.php:334 public/assets/js/promptor-public.js: 10002202 #: public/ajax-handlers/class-promptor-ajax-chat-handler.php:334 public/assets/js/promptor-public.js:457 2250 2203 msgid "Could not save feedback." 2251 2204 msgstr "" … … 2315 2268 msgstr "" 2316 2269 2317 #: public/ajax-handlers/class-promptor-ajax-form-handler.php:260 public/assets/js/promptor-public.js: 10192270 #: public/ajax-handlers/class-promptor-ajax-form-handler.php:260 public/assets/js/promptor-public.js:476 2318 2271 msgid "Invalid product." 2319 2272 msgstr "" … … 2479 2432 msgstr "" 2480 2433 2481 #: public/assets/js/promptor-public.js: 1802434 #: public/assets/js/promptor-public.js:58 2482 2435 msgid "Chat could not be loaded. (Context Error)" 2483 2436 msgstr "" 2484 2437 2438 #: public/assets/js/promptor-public.js:81 2439 msgid "Security validation failed. Please refresh the page." 2440 msgstr "" 2441 2442 #: public/assets/js/promptor-public.js:95 2443 msgid "Configuration error. Please contact administrator." 2444 msgstr "" 2445 2446 #: public/assets/js/promptor-public.js:146 public/class-promptor-public.php:284 2447 msgid "Is this conversation helpful so far?" 2448 msgstr "" 2449 2450 #: public/assets/js/promptor-public.js:147 public/class-promptor-public.php:285 2451 msgid "Good response" 2452 msgstr "" 2453 2454 #: public/assets/js/promptor-public.js:148 public/class-promptor-public.php:286 2455 msgid "Bad response" 2456 msgstr "" 2457 2458 #: public/assets/js/promptor-public.js:149 2459 msgid "Thank you!" 2460 msgstr "" 2461 2462 #: public/assets/js/promptor-public.js:171 2463 msgid "Recommended Products" 2464 msgstr "" 2465 2466 #: public/assets/js/promptor-public.js:191 2467 msgid "Price" 2468 msgstr "" 2469 2470 #: public/assets/js/promptor-public.js:193 public/class-promptor-public.php:283 2471 msgid "Add to Cart" 2472 msgstr "" 2473 2485 2474 #: public/assets/js/promptor-public.js:204 2486 msgid "Security validation failed. Please refresh the page." 2487 msgstr "" 2488 2489 #: public/assets/js/promptor-public.js:218 2490 msgid "Configuration error. Please contact administrator." 2491 msgstr "" 2492 2493 #: public/assets/js/promptor-public.js:243 2494 msgid "Toggle drawer" 2495 msgstr "" 2496 2497 #: public/assets/js/promptor-public.js:247 public/assets/js/promptor-public.js:362 public/assets/js/promptor-public.js:809 2498 msgid "Request Quote" 2499 msgstr "" 2500 2501 #: public/assets/js/promptor-public.js:340 2502 msgid "Based on our conversation, here is the recommended service:" 2503 msgstr "" 2504 2505 #: public/assets/js/promptor-public.js:341 2506 msgid "Based on our conversation so far, you need the following services:" 2475 msgid "Related Articles" 2476 msgstr "" 2477 2478 #: public/assets/js/promptor-public.js:229 2479 msgid "Frequently Asked Questions" 2480 msgstr "" 2481 2482 #: public/assets/js/promptor-public.js:230 2483 msgid "Read more…" 2484 msgstr "" 2485 2486 #: public/assets/js/promptor-public.js:252 2487 msgid "Recommended Services" 2488 msgstr "" 2489 2490 #: public/assets/js/promptor-public.js:253 2491 msgid "Make an Inquiry for Selected Services" 2492 msgstr "" 2493 2494 #: public/assets/js/promptor-public.js:254 2495 msgid "Your Name" 2496 msgstr "" 2497 2498 #: public/assets/js/promptor-public.js:255 2499 msgid "Your Email" 2500 msgstr "" 2501 2502 #: public/assets/js/promptor-public.js:256 2503 msgid "Your Phone" 2504 msgstr "" 2505 2506 #: public/assets/js/promptor-public.js:257 2507 msgid "Anything else you would like to add?" 2508 msgstr "" 2509 2510 #: public/assets/js/promptor-public.js:317 2511 msgid "Here are some ideas to get you started:" 2507 2512 msgstr "" 2508 2513 2509 2514 #: public/assets/js/promptor-public.js:344 2510 msgid "These services are typically handled together."2511 msgstr ""2512 2513 #: public/assets/js/promptor-public.js:360 public/assets/js/promptor-public.js:8062514 msgid "Select a service to request a quote"2515 msgstr ""2516 2517 #: public/assets/js/promptor-public.js:364 public/assets/js/promptor-public.js:8122518 msgid "Request Quote for All"2519 msgstr ""2520 2521 #: public/assets/js/promptor-public.js:3712522 msgid "Click on a service to see details and select:"2523 msgstr ""2524 2525 #: public/assets/js/promptor-public.js:392 public/assets/js/promptor-public.js:6062526 msgid "Your Name"2527 msgstr ""2528 2529 #: public/assets/js/promptor-public.js:393 public/assets/js/promptor-public.js:6072530 msgid "Your Email"2531 msgstr ""2532 2533 #: public/assets/js/promptor-public.js:394 public/assets/js/promptor-public.js:6082534 msgid "Your Phone"2535 msgstr ""2536 2537 #: public/assets/js/promptor-public.js:395 public/assets/js/promptor-public.js:6092538 msgid "Anything else you would like to add?"2539 msgstr ""2540 2541 #: public/assets/js/promptor-public.js:3962542 msgid "Submit Inquiry"2543 msgstr ""2544 2545 #: public/assets/js/promptor-public.js:4042546 msgid "Request a Quote"2547 msgstr ""2548 2549 #: public/assets/js/promptor-public.js:4052550 msgid "Services you are interested in:"2551 msgstr ""2552 2553 #: public/assets/js/promptor-public.js:444 public/class-promptor-public.php:2882554 msgid "Is this conversation helpful so far?"2555 msgstr ""2556 2557 #: public/assets/js/promptor-public.js:445 public/class-promptor-public.php:2892558 msgid "Good response"2559 msgstr ""2560 2561 #: public/assets/js/promptor-public.js:446 public/class-promptor-public.php:2902562 msgid "Bad response"2563 msgstr ""2564 2565 #: public/assets/js/promptor-public.js:4472566 msgid "Thank you!"2567 msgstr ""2568 2569 #: public/assets/js/promptor-public.js:4752570 msgid "Recommended Products"2571 msgstr ""2572 2573 #: public/assets/js/promptor-public.js:4912574 msgid "OFF"2575 msgstr ""2576 2577 #: public/assets/js/promptor-public.js:5052578 msgid "Price"2579 msgstr ""2580 2581 #: public/assets/js/promptor-public.js:507 public/class-promptor-public.php:2872582 msgid "Add to Cart"2583 msgstr ""2584 2585 #: public/assets/js/promptor-public.js:5182586 msgid "Related Articles"2587 msgstr ""2588 2589 #: public/assets/js/promptor-public.js:5492590 msgid "Download"2591 msgstr ""2592 2593 #: public/assets/js/promptor-public.js:5692594 msgid "Frequently Asked Questions"2595 msgstr ""2596 2597 #: public/assets/js/promptor-public.js:5702598 msgid "Read more…"2599 msgstr ""2600 2601 #: public/assets/js/promptor-public.js:6042602 msgid "Recommended Services"2603 msgstr ""2604 2605 #: public/assets/js/promptor-public.js:6052606 msgid "Make an Inquiry for Selected Services"2607 msgstr ""2608 2609 #: public/assets/js/promptor-public.js:6692610 msgid "Here are some ideas to get you started:"2611 msgstr ""2612 2613 #: public/assets/js/promptor-public.js:6962614 2515 msgid "Your message is too long. Please shorten it and try again." 2615 2516 msgstr "" 2616 2517 2617 #: public/assets/js/promptor-public.js: 7852518 #: public/assets/js/promptor-public.js:412 2618 2519 msgid "Network error. Please check your connection." 2619 2520 msgstr "" 2620 2521 2621 #: public/assets/js/promptor-public.js: 7862522 #: public/assets/js/promptor-public.js:413 2622 2523 msgid "Sorry, an error occurred. Please try again." 2623 2524 msgstr "" 2624 2525 2625 #: public/assets/js/promptor-public.js:898 public/assets/js/promptor-public.js:1075 2526 #: public/assets/js/promptor-public.js:463 2527 msgid "An error occurred while saving feedback." 2528 msgstr "" 2529 2530 #: public/assets/js/promptor-public.js:490 2531 msgid "Added" 2532 msgstr "" 2533 2534 #: public/assets/js/promptor-public.js:496 2535 msgid "An error occurred." 2536 msgstr "" 2537 2538 #: public/assets/js/promptor-public.js:501 2539 msgid "A network error occurred." 2540 msgstr "" 2541 2542 #: public/assets/js/promptor-public.js:532 2626 2543 msgid "Please select at least one service." 2627 2544 msgstr "" 2628 2545 2629 #: public/assets/js/promptor-public.js:921 2630 msgid "Expand drawer" 2631 msgstr "" 2632 2633 #: public/assets/js/promptor-public.js:924 2634 msgid "Collapse drawer" 2635 msgstr "" 2636 2637 #: public/assets/js/promptor-public.js:933 public/assets/js/promptor-public.js:1139 2638 msgid "No services selected." 2639 msgstr "" 2640 2641 #: public/assets/js/promptor-public.js:943 2642 msgid "Are you sure you want to start a new conversation? This will clear your chat history and selected services." 2643 msgstr "" 2644 2645 #: public/assets/js/promptor-public.js:962 2646 msgid "Chat history cleared. You can start a fresh conversation!" 2647 msgstr "" 2648 2649 #: public/assets/js/promptor-public.js:1006 2650 msgid "An error occurred while saving feedback." 2651 msgstr "" 2652 2653 #: public/assets/js/promptor-public.js:1033 2654 msgid "Added" 2655 msgstr "" 2656 2657 #: public/assets/js/promptor-public.js:1039 2658 msgid "An error occurred." 2659 msgstr "" 2660 2661 #: public/assets/js/promptor-public.js:1044 2662 msgid "A network error occurred." 2663 msgstr "" 2664 2665 #: public/assets/js/promptor-public.js:1083 public/assets/js/promptor-public.js:1147 2546 #: public/assets/js/promptor-public.js:540 2666 2547 msgid "Please fill in your name and email." 2667 2548 msgstr "" 2668 2549 2669 #: public/assets/js/promptor-public.js: 1090 public/assets/js/promptor-public.js:11542550 #: public/assets/js/promptor-public.js:547 2670 2551 msgid "Please enter a valid email address." 2671 2552 msgstr "" 2672 2553 2673 #: public/assets/js/promptor-public.js: 1094 public/assets/js/promptor-public.js:11582554 #: public/assets/js/promptor-public.js:551 2674 2555 msgid "Sending..." 2675 2556 msgstr "" 2676 2557 2677 #: public/assets/js/promptor-public.js: 1111 public/assets/js/promptor-public.js:11752558 #: public/assets/js/promptor-public.js:568 2678 2559 msgid "Thank you! We received your inquiry." 2679 2560 msgstr "" 2680 2561 2681 #: public/assets/js/promptor-public.js: 1117 public/assets/js/promptor-public.js:11812562 #: public/assets/js/promptor-public.js:574 2682 2563 msgid "An error occurred. Please try again." 2683 2564 msgstr "" 2684 2565 2685 #: public/assets/js/promptor-public.js: 1123 public/assets/js/promptor-public.js:11872566 #: public/assets/js/promptor-public.js:580 2686 2567 msgid "A network error occurred. Please try again." 2687 2568 msgstr "" 2688 2569 2689 #: public/assets/js/promptor-public.js: 12082570 #: public/assets/js/promptor-public.js:600 2690 2571 msgid "Failed to initialize chat. Please refresh the page." 2691 2572 msgstr "" 2692 2573 2693 #: public/class-promptor-public.php:2 912574 #: public/class-promptor-public.php:287 2694 2575 msgid "Thank you for your feedback!" 2695 2576 msgstr "" 2696 2577 2697 #: public/class-promptor-public.php:38 62578 #: public/class-promptor-public.php:382 2698 2579 msgid "Toggle Chat Window" 2699 2580 msgstr "" 2700 2581 2701 #: public/class-promptor-public.php:426 2702 msgid "Start New Conversation" 2703 msgstr "" 2704 2705 #: public/class-promptor-public.php:427 2706 msgid "Clear chat history and start over" 2707 msgstr "" 2708 2709 #: public/class-promptor-public.php:439 2582 #: public/class-promptor-public.php:425 2710 2583 msgid "Ask a question" 2711 2584 msgstr "" 2712 2585 2713 #: public/class-promptor-public.php:4 492586 #: public/class-promptor-public.php:435 2714 2587 msgid "Ask" 2715 2588 msgstr "" … … 2732 2605 msgid "https://corrplus.net" 2733 2606 msgstr "" 2607 2608 #: public/assets/js/promptor-public.js:209 2609 msgid "Related Articles" 2610 msgstr "" 2611 2612 #: public/assets/js/promptor-public.js:322 2613 msgid "Here are some ideas to get you started:" 2614 msgstr "" 2615 2616 #: admin/assets/js/promptor-admin.js:30 2617 msgid "%d items selected" 2618 msgstr "" 2619 2620 #: admin/settings/class-promptor-settings-knowledge-base.php:459 2621 msgid "items selected" 2622 msgstr "" 2623 2624 #: admin/settings/class-promptor-settings-knowledge-base.php:459 2625 msgid "Select This Page" 2626 msgstr "" 2627 2628 #: admin/settings/class-promptor-settings-knowledge-base.php:459 2629 msgid "Select All" 2630 msgstr "" 2631 2632 #: admin/assets/js/promptor-admin.js:1222 2633 msgid "You are about to select %1$d items. For performance reasons, we limit bulk selection to %2$d items. Do you want to select the first %2$d items?" 2634 msgstr "" 2635 2636 #: admin/assets/js/promptor-admin.js:1240 2637 msgid "%1$d items selected. Note: There are %2$d more items. Load them first to select all." 2638 msgstr "" 2639 2640 #: admin/settings/class-promptor-settings-knowledge-base.php:460 2641 msgid "Load More (%d remaining)" 2642 msgstr "" -
promptor/trunk/promptor.php
r3438128 r3439442 4 4 * Plugin URI: https://promptorai.com 5 5 * Description: Advanced AI-powered search, recommendation, and lead generation system for WordPress. Turn your website content into an intelligent sales assistant with Promptor. Engage visitors with AI-powered chat, recommend products & services, and generate leads effortlessly. 6 * Version: 1.1. 06 * Version: 1.1.1 7 7 * Author: Corrplus 8 8 * Author URI: https://corrplus.net … … 202 202 } 203 203 204 define( 'PROMPTOR_VERSION', '1.1. 0' );204 define( 'PROMPTOR_VERSION', '1.1.1' ); 205 205 define( 'PROMPTOR_PATH', plugin_dir_path( __FILE__ ) ); 206 206 define( 'PROMPTOR_URL', plugin_dir_url( __FILE__ ) ); -
promptor/trunk/public/ajax-handlers/class-promptor-ajax-chat-handler.php
r3438128 r3439442 79 79 'it_IT' => 'Italian', 80 80 ); 81 82 /** 83 * Convert language name to ISO 639-1 code 84 * 85 * @param string $language_name Full language name (e.g., "Turkish", "English"). 86 * @return string ISO 639-1 language code (e.g., "tr", "en"). 87 */ 88 private function get_language_code( string $language_name ): string { 89 $language_codes = array( 90 'Turkish' => 'tr', 91 'English' => 'en', 92 'German' => 'de', 93 'French' => 'fr', 94 'Spanish' => 'es', 95 'Italian' => 'it', 96 'Portuguese' => 'pt', 97 'Dutch' => 'nl', 98 'Russian' => 'ru', 99 'Chinese' => 'zh', 100 'Japanese' => 'ja', 101 'Korean' => 'ko', 102 'Arabic' => 'ar', 103 ); 104 105 $normalized = ucfirst( strtolower( trim( $language_name ) ) ); 106 return $language_codes[ $normalized ] ?? 'en'; 107 } 81 108 82 109 /** … … 1123 1150 'es' => 'Según tu pregunta, esto es lo que podría ayudarte: ', 1124 1151 ); 1125 $lang_code = strtolower( substr( $detected_language, 0, 2 ));1152 $lang_code = $this->get_language_code( $detected_language ); 1126 1153 $confidence_prefix = $confidence_prefixes[ $lang_code ] ?? $confidence_prefixes['en']; 1127 1154 } else { … … 1134 1161 'es' => 'No estoy del todo seguro, pero según lo que encontré: ', 1135 1162 ); 1136 $lang_code = strtolower( substr( $detected_language, 0, 2 ));1163 $lang_code = $this->get_language_code( $detected_language ); 1137 1164 $confidence_prefix = $confidence_prefixes[ $lang_code ] ?? $confidence_prefixes['en']; 1138 1165 } 1139 1166 1167 // Build language-aware default prompt 1140 1168 $default_prompt = sprintf( 1141 "You are a professional, helpful, and friendly sales assistant for the website '%s'. Your main goal is to understand the user's needs, analyze the provided context, and based on that context, recommend the most relevant services or products from the provided list of valid titles. Do not mention you are an AI model.", 1142 esc_html( get_bloginfo( 'name' ) ) 1143 ); 1144 1169 "You are a professional, helpful, and friendly sales assistant for the website '%s'. Your main goal is to understand the user's needs, analyze the provided context, and based on that context, recommend the most relevant services or products from the provided list of valid titles. You MUST always respond in %s (the user's language). Do not mention you are an AI model.", 1170 esc_html( get_bloginfo( 'name' ) ), 1171 esc_html( $detected_language ) 1172 ); 1173 1174 // Get system prompt (custom or default) 1145 1175 $system_prompt = trim( $api_settings['system_prompt'] ?? $default_prompt ); 1176 1177 // CRITICAL: If using custom prompt, inject language requirement at the beginning 1178 if ( ! empty( $api_settings['system_prompt'] ) && $api_settings['system_prompt'] !== $default_prompt ) { 1179 $system_prompt = sprintf( 1180 "CRITICAL INSTRUCTION: You MUST respond in %s language. All your responses must be in %s.\n\n%s", 1181 esc_html( $detected_language ), 1182 esc_html( $detected_language ), 1183 $system_prompt 1184 ); 1185 } 1186 1146 1187 $system_prompt .= sprintf( 1147 1188 "\n\n- The user's original query is '%s' and their language is %s. For semantic search, the query was translated to '%s'.", … … 1151 1192 ); 1152 1193 $system_prompt .= "\n- Your primary task is to bridge any semantic gaps between the translated query and the context provided below. Be helpful and find the best match even if the wording isn't identical."; 1153 $system_prompt .= sprintf( "\n- You MUST respond in the user's language, which is %s.", esc_html( $detected_language ) );1194 $system_prompt .= sprintf( "\n- CRITICAL: You MUST respond ONLY in %s. Never respond in English unless the user's language is English.", esc_html( $detected_language ) ); 1154 1195 1155 1196 // Add confidence-based instruction 1156 1197 if ( ! empty( $confidence_prefix ) ) { 1157 1198 $system_prompt .= sprintf( "\n- IMPORTANT: Start your explanation with this exact phrase: '%s'", $confidence_prefix ); 1199 $system_prompt .= "\n- CRITICAL: Even if you're uncertain, you MUST still recommend the most relevant services/products from the available choices. Do not leave recommendation arrays empty unless absolutely nothing matches."; 1158 1200 } 1159 1201 1160 1202 $system_prompt .= "\n\n--- AVAILABLE CHOICES (Use these exact titles in your response) ---\n" . $titles_list . "\n------------------------"; 1161 $system_prompt .= "\n\nYour response MUST be a single JSON object with the keys: 'explanation' (string), 'recommended_services' (array of strings), 'recommended_products' (array of strings), 'recommended_articles' (array of strings for blog posts), and 'recommended_faqs' (array of strings for FAQ items). The arrays must ONLY contain titles from the 'AVAILABLE CHOICES' list. The titles MUST be in their original language. If no choices are relevant, return empty arrays."; 1203 $system_prompt .= "\n\nYour response MUST be a single JSON object with the keys: 'explanation' (string), 'recommended_services' (array of strings), 'recommended_products' (array of strings), 'recommended_articles' (array of strings for blog posts), and 'recommended_faqs' (array of strings for FAQ items). The arrays must ONLY contain titles from the 'AVAILABLE CHOICES' list. The titles MUST be in their original language."; 1204 $system_prompt .= "\n\nIMPORTANT: Always try to recommend at least 1-3 most relevant items even if the match is not perfect. Only return empty arrays if the query is completely unrelated to all available choices."; 1162 1205 1163 1206 $messages = array( … … 1334 1377 */ 1335 1378 private function find_post_by_title( string $title, array $post_ids ): ?WP_Post { 1336 $args = array( 1337 'post_type' => array( 'page', 'post', 'product', 'attachment' ), 1338 'post_status' => array( 'publish', 'inherit' ), 1339 'title' => trim( $title ), 1340 'posts_per_page' => 1, 1341 'ignore_sticky_posts' => 1, 1342 'post__in' => $post_ids, 1343 ); 1344 1345 $query = new WP_Query( $args ); 1346 1347 return $query->have_posts() ? $query->posts[0] : null; 1379 if ( empty( $title ) || empty( $post_ids ) ) { 1380 return null; 1381 } 1382 1383 $normalized_title = trim( $title ); 1384 1385 // First try: exact title match within allowed post IDs 1386 foreach ( $post_ids as $post_id ) { 1387 $post = get_post( $post_id ); 1388 if ( $post && trim( $post->post_title ) === $normalized_title ) { 1389 return $post; 1390 } 1391 } 1392 1393 // Second try: case-insensitive match 1394 foreach ( $post_ids as $post_id ) { 1395 $post = get_post( $post_id ); 1396 if ( $post && strcasecmp( trim( $post->post_title ), $normalized_title ) === 0 ) { 1397 return $post; 1398 } 1399 } 1400 1401 // Third try: partial match (contains title) 1402 foreach ( $post_ids as $post_id ) { 1403 $post = get_post( $post_id ); 1404 if ( $post && stripos( trim( $post->post_title ), $normalized_title ) !== false ) { 1405 return $post; 1406 } 1407 } 1408 1409 return null; 1348 1410 } 1349 1411 -
promptor/trunk/public/assets/css/promptor-public.css
r3438128 r3439442 317 317 .promptor-contact-form input[type="tel"], 318 318 .promptor-contact-form textarea { width: 100%; background: var(--promptor-widget-bg-color, #fff); border: 1px solid #ddd; border-radius: 5px; padding: 12px; font-size: 1em; } 319 .promptor-service-label { display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; } 320 .promptor-service-label input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--promptor-primary-color, #0073aa); } 319 320 /* Service Cards (Important for theme compatibility) */ 321 .promptor-service-card { 322 background: #fff !important; 323 border: 1px solid #e0e0e0 !important; 324 border-radius: 8px !important; 325 padding: 16px !important; 326 margin-bottom: 12px !important; 327 transition: all 0.2s ease !important; 328 display: block !important; 329 box-sizing: border-box !important; 330 } 331 332 .promptor-service-card:hover { 333 border-color: var(--promptor-primary-color, #0073aa) !important; 334 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; 335 } 336 337 .promptor-service-card:last-child { 338 margin-bottom: 0 !important; 339 } 340 341 .promptor-service-label { 342 display: flex !important; 343 align-items: center !important; 344 gap: 10px !important; 345 cursor: pointer !important; 346 font-weight: 600 !important; 347 margin: 0 !important; 348 } 349 350 .promptor-service-label h4 { 351 margin: 0 !important; 352 font-size: 15px !important; 353 color: #1a1a1a !important; 354 line-height: 1.4 !important; 355 } 356 357 .promptor-service-label input[type="checkbox"] { 358 width: 18px !important; 359 height: 18px !important; 360 min-width: 18px !important; 361 min-height: 18px !important; 362 margin: 0 !important; 363 flex-shrink: 0 !important; 364 accent-color: var(--promptor-primary-color, #0073aa) !important; 365 } 366 367 .promptor-service-description { 368 margin: 8px 0 0 28px !important; 369 color: #666 !important; 370 font-size: 14px !important; 371 line-height: 1.5 !important; 372 } 321 373 322 374 /* ========================================================================== -
promptor/trunk/public/assets/js/promptor-public.js
r3438128 r3439442 268 268 <div class="promptor-drawer-header"> 269 269 <h4> 270 📌 <span>${esc( __('Selected Services', 'promptor'))}</span> (<span class="drawer-count">0</span>)270 📌 <span>${esc(i18n.selectedServices || __('Selected Services', 'promptor'))}</span> (<span class="drawer-count">0</span>) 271 271 </h4> 272 <button class="promptor-drawer-collapse-btn" aria-label="${esc( __('Toggle drawer', 'promptor'))}">−</button>272 <button class="promptor-drawer-collapse-btn" aria-label="${esc(i18n.toggleDrawer || __('Toggle drawer', 'promptor'))}">−</button> 273 273 </div> 274 274 <div class="promptor-drawer-content"> 275 275 <div class="promptor-service-chips"></div> 276 <button class="promptor-request-quote-btn">${esc( __('Request Quote', 'promptor'))}</button>276 <button class="promptor-request-quote-btn">${esc(i18n.requestQuote || __('Request Quote', 'promptor'))}</button> 277 277 </div> 278 278 </div> … … 367 367 // Determine intro text based on service count 368 368 const introText = services.length === 1 369 ? esc( __('Based on our conversation, here is the recommended service:', 'promptor'))370 : esc( __('Based on our conversation so far, you need the following services:', 'promptor'));369 ? esc(i18n.conversationRecommendedService || __('Based on our conversation, here is the recommended service:', 'promptor')) 370 : esc(i18n.conversationRecommendedServices || __('Based on our conversation so far, you need the following services:', 'promptor')); 371 371 372 372 const closingText = services.length > 1 373 ? esc( __('These services are typically handled together.', 'promptor'))373 ? esc(i18n.servicesTypicallyTogether || __('These services are typically handled together.', 'promptor')) 374 374 : ''; 375 375 … … 387 387 let buttonText; 388 388 if (selectedCount === 0) { 389 buttonText = esc( __('Select a service to request a quote', 'promptor'));389 buttonText = esc(i18n.selectServiceQuote || __('Select a service to request a quote', 'promptor')); 390 390 } else if (selectedCount === 1) { 391 buttonText = esc( __('Request Quote', 'promptor'));391 buttonText = esc(i18n.requestQuote || __('Request Quote', 'promptor')); 392 392 } else { 393 buttonText = esc( __('Request Quote for All', 'promptor'));393 buttonText = esc(i18n.requestQuoteForAll || __('Request Quote for All', 'promptor')); 394 394 } 395 395 … … 398 398 <div class="promptor-message-bubble"> 399 399 <p><strong>${introText}</strong></p> 400 <p class="promptor-summary-instruction">${esc( __('Click on a service to see details and select:', 'promptor'))}</p>400 <p class="promptor-summary-instruction">${esc(i18n.clickServiceDetails || __('Click on a service to see details and select:', 'promptor'))}</p> 401 401 <p class="promptor-chips-container">${chipsHtml}</p> 402 402 … … 419 419 $chatLog.find('.promptor-quote-form-fullwidth').remove(); 420 420 421 const nameLabel = esc( __('Your Name', 'promptor'));422 const emailLabel = esc( __('Your Email', 'promptor'));423 const phoneLabel = esc( __('Your Phone', 'promptor'));424 const notesLabel = esc( __('Anything else you would like to add?', 'promptor'));425 const submitLabel = esc( __('Submit Inquiry', 'promptor'));421 const nameLabel = esc(i18n.yourName || __('Your Name', 'promptor')); 422 const emailLabel = esc(i18n.yourEmail || __('Your Email', 'promptor')); 423 const phoneLabel = esc(i18n.yourPhone || __('Your Phone', 'promptor')); 424 const notesLabel = esc(i18n.anythingElse || __('Anything else you would like to add?', 'promptor')); 425 const submitLabel = esc(i18n.submitInquiry || __('Submit Inquiry', 'promptor')); 426 426 427 427 // List of services being requested … … 431 431 <div class="promptor-quote-form-fullwidth"> 432 432 <div class="promptor-quote-form-container"> 433 <h4>${esc( __('Request a Quote', 'promptor'))}</h4>434 <p>${esc( __('Services you are interested in:', 'promptor'))}</p>433 <h4>${esc(i18n.requestAQuote || __('Request a Quote', 'promptor'))}</h4> 434 <p>${esc(i18n.servicesInterestedIn || __('Services you are interested in:', 'promptor'))}</p> 435 435 <ul class="promptor-services-list">${servicesList}</ul> 436 436 <form class="promptor-contact-form promptor-drawer-form" data-type="drawer-inquiry" novalidate> … … 833 833 let buttonText; 834 834 if (selectedCount === 0) { 835 buttonText = esc( __('Select a service to request a quote', 'promptor'));835 buttonText = esc(i18n.selectServiceQuote || __('Select a service to request a quote', 'promptor')); 836 836 $button.prop('disabled', true); 837 837 } else if (selectedCount === 1) { 838 buttonText = esc( __('Request Quote', 'promptor'));838 buttonText = esc(i18n.requestQuote || __('Request Quote', 'promptor')); 839 839 $button.prop('disabled', false); 840 840 } else { 841 buttonText = esc( __('Request Quote for All', 'promptor'));841 buttonText = esc(i18n.requestQuoteForAll || __('Request Quote for All', 'promptor')); 842 842 $button.prop('disabled', false); 843 843 } … … 975 975 $app.on('click', '.promptor-new-conversation-btn', function () { 976 976 // Confirm before clearing 977 const confirmMsg = __('Are you sure you want to start a new conversation? This will clear your chat history and selected services.', 'promptor');977 const confirmMsg = i18n.confirmNewConversation || __('Are you sure you want to start a new conversation? This will clear your chat history and selected services.', 'promptor'); 978 978 979 979 if (confirm(confirmMsg)) { -
promptor/trunk/public/class-promptor-public.php
r3438128 r3439442 172 172 ); 173 173 174 if ( function_exists( 'wp_set_script_translations' ) ) {175 wp_set_script_translations( $this->plugin_name, 'promptor', PROMPTOR_PATH . 'languages' );176 }174 // Note: We don't use wp_set_script_translations() because all translations 175 // are embedded directly via wp_localize_script's i18n object. This ensures 176 // translations work regardless of plugin folder name or JSON file paths. 177 177 178 178 self::$assets_enqueued = true; … … 285 285 ), 286 286 'i18n' => array( 287 // Cart & Feedback 287 288 'addToCart' => __( 'Add to Cart', 'promptor' ), 288 289 'isHelpful' => __( 'Is this conversation helpful so far?', 'promptor' ), … … 290 291 'badResponse' => __( 'Bad response', 'promptor' ), 291 292 'thankYou' => __( 'Thank you for your feedback!', 'promptor' ), 293 294 // Service Recommendations 295 'conversationRecommendedService' => __( 'Based on our conversation, here is the recommended service:', 'promptor' ), 296 'conversationRecommendedServices' => __( 'Based on our conversation so far, you need the following services:', 'promptor' ), 297 'servicesTypicallyTogether' => __( 'These services are typically handled together.', 'promptor' ), 298 'clickServiceDetails' => __( 'Click on a service to see details and select:', 'promptor' ), 299 300 // Service Selection & Quote 301 'selectServiceQuote' => __( 'Select a service to request a quote', 'promptor' ), 302 'requestQuote' => __( 'Request Quote', 'promptor' ), 303 'requestQuoteForAll' => __( 'Request Quote for All', 'promptor' ), 304 'requestAQuote' => __( 'Request a Quote', 'promptor' ), 305 'servicesInterestedIn' => __( 'Services you are interested in:', 'promptor' ), 306 307 // Form Labels 308 'yourName' => __( 'Your Name', 'promptor' ), 309 'yourEmail' => __( 'Your Email', 'promptor' ), 310 'yourPhone' => __( 'Your Phone', 'promptor' ), 311 'anythingElse' => __( 'Anything else you would like to add?', 'promptor' ), 312 'submitInquiry' => __( 'Submit Inquiry', 'promptor' ), 313 314 // Drawer & Products 315 'selectedServices' => __( 'Selected Services', 'promptor' ), 316 'toggleDrawer' => __( 'Toggle drawer', 'promptor' ), 317 'recommendedProducts' => __( 'Recommended Products', 'promptor' ), 318 'relatedArticles' => __( 'Related Articles', 'promptor' ), 319 'download' => __( 'Download', 'promptor' ), 320 'off' => __( 'OFF', 'promptor' ), 321 'price' => __( 'Price', 'promptor' ), 322 323 // Errors & Validation 324 'chatLoadError' => __( 'Chat could not be loaded. (Context Error)', 'promptor' ), 325 'securityValidationFailed' => __( 'Security validation failed. Please refresh the page.', 'promptor' ), 326 'configError' => __( 'Configuration error. Please contact administrator.', 'promptor' ), 327 'messageTooLong' => __( 'Your message is too long. Please shorten it and try again.', 'promptor' ), 328 'networkError' => __( 'Network error. Please check your connection.', 'promptor' ), 329 'genericError' => __( 'Sorry, an error occurred. Please try again.', 'promptor' ), 330 'feedbackSaveError' => __( 'An error occurred while saving feedback.', 'promptor' ), 331 'added' => __( 'Added', 'promptor' ), 332 'errorOccurred' => __( 'An error occurred.', 'promptor' ), 333 'networkErrorOccurred' => __( 'A network error occurred.', 'promptor' ), 334 335 // Form Validation 336 'selectAtLeastOne' => __( 'Please select at least one service.', 'promptor' ), 337 'fillNameEmail' => __( 'Please fill in your name and email.', 'promptor' ), 338 'validEmail' => __( 'Please enter a valid email address.', 'promptor' ), 339 'sending' => __( 'Sending...', 'promptor' ), 340 'thankYouReceived' => __( 'Thank you! We received your inquiry.', 'promptor' ), 341 'errorTryAgain' => __( 'An error occurred. Please try again.', 'promptor' ), 342 'networkErrorTryAgain' => __( 'A network error occurred. Please try again.', 'promptor' ), 343 'failedInitChat' => __( 'Failed to initialize chat. Please refresh the page.', 'promptor' ), 344 345 // New Conversation Confirmation 346 'confirmNewConversation' => __( 'Are you sure you want to start a new conversation? This will clear your chat history and selected services.', 'promptor' ), 292 347 ), 293 348 ) -
promptor/trunk/readme.txt
r3438128 r3439442 5 5 Tested up to: 6.9 6 6 Requires PHP: 7.4 7 Stable tag: 1.1. 07 Stable tag: 1.1.1 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 93 93 == Changelog == 94 94 95 = 1.1.1 = 96 * **Fixed:** JavaScript translation system completely rebuilt - all UI text now translates correctly 97 * **Fixed:** Translation loading issues with Freemius folder renaming resolved 98 * **Fixed:** "Request Quote" and "Request Quote for All" buttons now translate properly 99 * **Fixed:** New conversation confirmation dialog now translates correctly 100 * **Improved:** Removed unreliable JSON translation files - now uses embedded translations 101 * **Improved:** Translation system now works regardless of plugin folder name 102 * **Improved:** Faster translation loading - no additional HTTP requests needed 103 * **Enhanced:** Simplified translation workflow for developers - only .pot, .po, and .mo files needed 104 95 105 = 1.1.0 = 96 106 * **NEW:** Conversation Memory - Chat history persists across page navigations (WOW moment!) … … 137 147 == Upgrade Notice == 138 148 149 = 1.1.1 = 150 Critical translation fix! All UI text now translates correctly. Improved translation system works reliably across all WordPress configurations. Highly recommended for multilingual sites. 151 139 152 = 1.1.0 = 140 153 Major update with conversation memory, improved AI responses, enhanced PDF support (Pro), analytics insights (Pro), better mobile experience, and comprehensive UI/UX enhancements. Highly recommended for all users! -
promptor/trunk/uninstall.php
r3423434 r3439442 1 1 <?php 2 2 /** 3 * Fired when the plugin is uninstalled. 3 * Promptor Uninstall Script 4 * 5 * This file is executed when the plugin is deleted via the WordPress admin interface. 6 * It cleans up all database tables, options, and metadata created by Promptor. 4 7 * 5 8 * @package Promptor 9 * @since 1.1.0 6 10 */ 7 11 8 if ( ! defined('WP_UNINSTALL_PLUGIN') ) { 9 exit; 12 // Exit if accessed directly or not during uninstall process 13 if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { 14 exit; 10 15 } 11 16 12 17 global $wpdb; 13 18 14 // Uninstall işlemi sırasında, tüm veri tabanı ve ayarlar siliniyor. 15 // Bu noktada WordPress cache mekanizması kullanılmaz, çünkü tüm veri ve tablolar kaldırılıyor. 16 // Plugin Check uyarıları burada göz ardı edilebilir. Açıklama ve wp_cache_delete eklenmiştir. 19 // 1. Drop custom database tables 20 $tables = array( 21 $wpdb->prefix . 'promptor_queries', 22 $wpdb->prefix . 'promptor_submissions', 23 $wpdb->prefix . 'promptor_query_products', 24 ); 17 25 18 function promptor_uninstall_cleanup_single_site() { 19 global $wpdb; 20 21 // Doğrudan tablo silme sorguları - uninstall için gereklidir. 22 // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange 23 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}promptor_submissions" ); 24 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}promptor_queries" ); 25 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}promptor_embeddings" ); 26 // phpcs:enable 27 28 $site_options = array( 29 'promptor_db_version', 30 'promptor_query_count', 31 'promptor_limit_reset_date', 32 'promptor_contexts', 33 'promptor_api_settings', 34 'promptor_ui_settings', 35 'promptor_notification_settings', 36 'promptor_crawler_settings', 37 'promptor_license_settings', 38 ); 39 foreach ( $site_options as $opt ) { 40 delete_option( $opt ); 41 wp_cache_delete($opt, 'options'); // Cache temizliği eklendi 42 } 43 44 delete_transient('promptor_activation_redirect'); 45 wp_cache_delete('promptor_activation_redirect', 'transient'); 46 47 // Aşağıdaki toplu silme işlemleri uninstall için gereklidir. 48 // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery 49 $like1 = $wpdb->esc_like('_transient_promptor_') . '%'; 50 $like2 = $wpdb->esc_like('_transient_timeout_promptor_') . '%'; 51 $like3 = $wpdb->esc_like('_transient_promptor_rl_') . '%'; 52 $like4 = $wpdb->esc_like('_transient_timeout_promptor_rl_') . '%'; 53 $wpdb->query( 54 $wpdb->prepare( 55 "DELETE FROM {$wpdb->options} 56 WHERE option_name LIKE %s OR option_name LIKE %s 57 OR option_name LIKE %s OR option_name LIKE %s", 58 $like1, $like2, $like3, $like4 59 ) 60 ); 61 // phpcs:enable 62 63 wp_clear_scheduled_hook('promptor_daily_license_check'); 26 foreach ( $tables as $table ) { 27 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange 28 $wpdb->query( "DROP TABLE IF EXISTS `{$table}`" ); 64 29 } 65 30 31 // 2. Delete all Promptor options 32 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 33 $wpdb->query( "DELETE FROM `{$wpdb->options}` WHERE `option_name` LIKE 'promptor_%'" ); 66 34 67 function promptor_uninstall_cleanup_network() { 68 global $wpdb; 35 // 3. Delete all Promptor transients 36 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 37 $wpdb->query( "DELETE FROM `{$wpdb->options}` WHERE `option_name` LIKE '_transient_promptor_%' OR `option_name` LIKE '_transient_timeout_promptor_%'" ); 69 38 70 $network_options = array( 71 'promptor_db_version', 72 'promptor_query_count', 73 'promptor_limit_reset_date', 74 'promptor_contexts', 75 'promptor_api_settings', 76 'promptor_ui_settings', 77 'promptor_notification_settings', 78 'promptor_crawler_settings', 79 'promptor_license_settings', 80 ); 81 foreach ( $network_options as $opt ) { 82 delete_site_option( $opt ); 83 wp_cache_delete($opt, 'site-options'); // Cache temizliği eklendi 84 } 39 // 4. Delete post metadata (indexed content markers) 40 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 41 $wpdb->query( "DELETE FROM `{$wpdb->postmeta}` WHERE `meta_key` LIKE 'promptor_%'" ); 85 42 86 delete_site_transient('promptor_license_status_check'); 87 wp_cache_delete('promptor_license_status_check', 'site-transient');43 // 5. Clear any remaining cache 44 wp_cache_flush(); 88 45 89 // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery 90 $like1 = $wpdb->esc_like('_site_transient_promptor_') . '%'; 91 $like2 = $wpdb->esc_like('_site_transient_timeout_promptor_') . '%'; 92 $like3 = $wpdb->esc_like('_site_transient_promptor_rl_') . '%'; 93 $like4 = $wpdb->esc_like('_site_transient_timeout_promptor_rl_') . '%'; 94 $wpdb->query( 95 $wpdb->prepare( 96 "DELETE FROM {$wpdb->sitemeta} 97 WHERE meta_key LIKE %s OR meta_key LIKE %s 98 OR meta_key LIKE %s OR meta_key LIKE %s", 99 $like1, $like2, $like3, $like4 100 ) 101 ); 102 // phpcs:enable 46 // 6. Delete Freemius options (if exists) 47 if ( function_exists( 'promptor_fs' ) ) { 48 // Let Freemius handle its own cleanup 49 // Freemius SDK will clean up its own options automatically 103 50 } 104 51 105 106 if ( is_multisite() ) { 107 108 promptor_uninstall_cleanup_network(); 109 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- Local variable in uninstall scope 110 $site_ids = get_sites( array( 'fields' => 'ids' ) ); 111 if ( ! empty( $site_ids ) ) { 112 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- Local variable in loop 113 foreach ( $site_ids as $site_id ) { 114 switch_to_blog( (int) $site_id ); 115 promptor_uninstall_cleanup_single_site(); 116 restore_current_blog(); 117 } 118 } else { 119 120 promptor_uninstall_cleanup_single_site(); 121 } 122 } else { 123 124 promptor_uninstall_cleanup_single_site(); 52 // Optional: Log uninstall for debugging (only in development) 53 if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { 54 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log 55 error_log( 'Promptor: Plugin uninstalled and all data removed.' ); 125 56 }
Note: See TracChangeset
for help on using the changeset viewer.