Plugin Directory

Changeset 3439442


Ignore:
Timestamp:
01/14/2026 11:25:27 AM (3 months ago)
Author:
corrplus
Message:

Remove translation JSON files from languages folder

Location:
promptor/trunk
Files:
2 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • promptor/trunk/languages/promptor.pot

    r3438128 r3439442  
    33msgstr ""
    44"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"
    66"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    77"Last-Translator: \n"
     
    2121"X-Poedit-SearchPathExcluded-0: *.min.js\n"
    2222
    23 #: admin/assets/js/promptor-admin.js:30 admin/assets/js/promptor-admin.js:41
     23#: admin/assets/js/promptor-admin.js:30
    2424#, javascript-format
    2525msgid "%d items selected"
    2626msgstr ""
    2727
    28 #: admin/assets/js/promptor-admin.js:114 admin/class-promptor-dashboard-page.php:460 public/class-promptor-public.php:251
     28#: admin/assets/js/promptor-admin.js:103 admin/class-promptor-dashboard-page.php:448 public/class-promptor-public.php:251
    2929msgid "AI Assistant"
    3030msgstr ""
    3131
    32 #: admin/assets/js/promptor-admin.js:115 public/class-promptor-public.php:252
     32#: admin/assets/js/promptor-admin.js:104 public/class-promptor-public.php:252
    3333msgid "Typically replies in minutes"
    3434msgstr ""
    3535
    36 #: admin/assets/js/promptor-admin.js:116 public/class-promptor-public.php:253
     36#: admin/assets/js/promptor-admin.js:105 public/class-promptor-public.php:253
    3737msgid "Ask a question..."
    3838msgstr ""
    3939
    40 #: admin/assets/js/promptor-admin.js:252
     40#: admin/assets/js/promptor-admin.js:241
    4141msgid "Select Image"
    4242msgstr ""
    4343
    44 #: admin/assets/js/promptor-admin.js:253
     44#: admin/assets/js/promptor-admin.js:242
    4545msgid "Use This Image"
    4646msgstr ""
    4747
    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
    5049#, javascript-format
    5150msgid "You are using Promptor Lite. You can select a maximum of %d content items. Please upgrade to Pro for unlimited selections."
    5251msgstr ""
    5352
    54 #: admin/assets/js/promptor-admin.js:347
     53#: admin/assets/js/promptor-admin.js:336
    5554msgid "Success!"
    5655msgstr ""
    5756
    58 #: admin/assets/js/promptor-admin.js:347 public/assets/js/promptor-public.js:778
     57#: admin/assets/js/promptor-admin.js:336 public/assets/js/promptor-public.js:405
    5958msgid "An unknown error occurred."
    6059msgstr ""
    6160
    62 #: admin/assets/js/promptor-admin.js:352
     61#: admin/assets/js/promptor-admin.js:341
    6362msgid "An AJAX error occurred. Please try again."
    6463msgstr ""
    6564
    66 #: admin/assets/js/promptor-admin.js:373
     65#: admin/assets/js/promptor-admin.js:362
    6766msgid "Verifying…"
    6867msgstr ""
    6968
    70 #: admin/assets/js/promptor-admin.js:386 admin/assets/js/promptor-admin.js:422 admin/assets/js/promptor-admin.js:450
    71 #: admin/assets/js/promptor-admin.js:520
     69#: 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
    7271msgid "An unknown server error occurred."
    7372msgstr ""
    7473
    75 #: admin/assets/js/promptor-admin.js:403
     74#: admin/assets/js/promptor-admin.js:392
    7675msgid "Please enter a name for the knowledge base."
    7776msgstr ""
    7877
    79 #: admin/assets/js/promptor-admin.js:417 admin/assets/js/promptor-admin.js:445
     78#: admin/assets/js/promptor-admin.js:406 admin/assets/js/promptor-admin.js:434
    8079msgid "Error: "
    8180msgstr ""
    8281
    83 #: admin/assets/js/promptor-admin.js:430
     82#: admin/assets/js/promptor-admin.js:419
    8483msgid "Are you sure you want to delete this knowledge base?"
    8584msgstr ""
    8685
    87 #: admin/assets/js/promptor-admin.js:515
     86#: admin/assets/js/promptor-admin.js:493
    8887msgid "Saved."
    8988msgstr ""
    9089
    91 #: admin/assets/js/promptor-admin.js:515 admin/assets/js/promptor-admin.js:1114
     90#: admin/assets/js/promptor-admin.js:493 admin/assets/js/promptor-admin.js:1064
    9291msgid "Unknown error"
    9392msgstr ""
    9493
    95 #: admin/assets/js/promptor-admin.js:548
     94#: admin/assets/js/promptor-admin.js:526
    9695#, javascript-format
    9796msgid "Are you sure you want to clear the index for \"%s\"?"
    9897msgstr ""
    9998
    100 #: admin/assets/js/promptor-admin.js:556
     99#: admin/assets/js/promptor-admin.js:534
    101100msgid "Please select a knowledge base and provide a sitemap URL."
    102101msgstr ""
    103102
    104 #: admin/assets/js/promptor-admin.js:559
     103#: admin/assets/js/promptor-admin.js:537
    105104#, javascript-format
    106105msgid "Sitemap will be crawled for \"%s\". Continue?"
    107106msgstr ""
    108107
    109 #: admin/assets/js/promptor-admin.js:565
     108#: admin/assets/js/promptor-admin.js:543
    110109#, javascript-format
    111110msgid "Are you sure you want to sync manual content for \"%s\"?"
    112111msgstr ""
    113112
    114 #: admin/assets/js/promptor-admin.js:574
     113#: admin/assets/js/promptor-admin.js:552
    115114#, javascript-format
    116115msgid "Starting process for \"%s\"…"
    117116msgstr ""
    118117
    119 #: admin/assets/js/promptor-admin.js:587
     118#: admin/assets/js/promptor-admin.js:565
    120119#, javascript-format
    121120msgid "%d item found."
     
    124123msgstr[1] ""
    125124
     125#: admin/assets/js/promptor-admin.js:573
     126msgid "No new items to process. Knowledge base is up to date."
     127msgstr ""
     128
     129#: admin/assets/js/promptor-admin.js:580
     130msgid "ERROR: "
     131msgstr ""
     132
     133#: admin/assets/js/promptor-admin.js:581
     134msgid "Operation failed."
     135msgstr ""
     136
     137#: admin/assets/js/promptor-admin.js:587 admin/assets/js/promptor-admin.js:669
     138msgid "Server error."
     139msgstr ""
     140
    126141#: 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:602
    131 msgid "ERROR: "
    132 msgstr ""
    133 
    134 #: admin/assets/js/promptor-admin.js:603
    135 msgid "Operation failed."
    136 msgstr ""
    137 
    138 #: admin/assets/js/promptor-admin.js:609 admin/assets/js/promptor-admin.js:691
    139 msgid "Server error."
    140 msgstr ""
    141 
    142 #: admin/assets/js/promptor-admin.js:617
    143142msgid "All items processed!"
    144143msgstr ""
    145144
    146 #: admin/assets/js/promptor-admin.js:622 admin/settings/class-promptor-settings-knowledge-base.php:111
     145#: admin/assets/js/promptor-admin.js:600 admin/settings/class-promptor-settings-knowledge-base.php:111
    147146#: admin/settings/class-promptor-settings-knowledge-base.php:181
    148147msgid "Crawler"
    149148msgstr ""
    150149
    151 #: admin/assets/js/promptor-admin.js:628
     150#: admin/assets/js/promptor-admin.js:606
    152151#, javascript-format
    153152msgid "ID %d"
    154153msgstr ""
    155154
    156 #: admin/assets/js/promptor-admin.js:631
     155#: admin/assets/js/promptor-admin.js:609
    157156#, javascript-format
    158157msgid "Processing item %1$d/%2$d (%3$s): %4$s…"
    159158msgstr ""
    160159
    161 #: admin/assets/js/promptor-admin.js:646
     160#: admin/assets/js/promptor-admin.js:624
    162161msgid "OK"
    163162msgstr ""
    164163
    165 #: admin/assets/js/promptor-admin.js:647
     164#: admin/assets/js/promptor-admin.js:625
    166165msgid "ERROR:"
    167166msgstr ""
    168167
    169 #: admin/assets/js/promptor-admin.js:651
     168#: admin/assets/js/promptor-admin.js:629
    170169#, javascript-format
    171170msgid " -> SERVER ERROR: Could not process item %s."
    172171msgstr ""
    173172
    174 #: admin/assets/js/promptor-admin.js:685 admin/assets/js/promptor-admin.js:716 admin/assets/js/promptor-admin.js:747
    175 #: admin/assets/js/promptor-admin.js:1070 admin/assets/js/promptor-admin.js:1113 admin/assets/js/promptor-admin.js:1232
     173#: 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
    176175#, javascript-format
    177176msgid "Error: %s"
    178177msgstr ""
    179178
    180 #: admin/assets/js/promptor-admin.js:686
     179#: admin/assets/js/promptor-admin.js:664
    181180msgid "Unknown error."
    182181msgstr ""
    183182
    184 #: admin/assets/js/promptor-admin.js:701
     183#: admin/assets/js/promptor-admin.js:679
    185184msgid "Please enter an Order ID."
    186185msgstr ""
    187186
    188 #: admin/assets/js/promptor-admin.js:721 admin/assets/js/promptor-admin.js:752
     187#: admin/assets/js/promptor-admin.js:699 admin/assets/js/promptor-admin.js:730
    189188msgid "Unknown server error."
    190189msgstr ""
    191190
    192 #: admin/assets/js/promptor-admin.js:851 admin/class-promptor-dashboard-page.php:142 admin/class-promptor-list-table-pages.php:33
     191#: admin/assets/js/promptor-admin.js:811 admin/class-promptor-dashboard-page.php:141 admin/class-promptor-list-table-pages.php:33
    193192msgid "Queries"
    194193msgstr ""
    195194
    196 #: admin/assets/js/promptor-admin.js:859 admin/class-promptor-admin.php:107 admin/class-promptor-dashboard-page.php:144
     195#: admin/assets/js/promptor-admin.js:819 admin/class-promptor-admin.php:106 admin/class-promptor-dashboard-page.php:142
    197196#: admin/class-promptor-submissions-table.php:46
    198197msgid "Submissions"
    199198msgstr ""
    200199
    201 #: admin/assets/js/promptor-admin.js:867 admin/assets/js/promptor-admin.js:926 admin/class-promptor-dashboard-page.php:145
     200#: admin/assets/js/promptor-admin.js:827 admin/assets/js/promptor-admin.js:876 admin/class-promptor-dashboard-page.php:143
    202201msgid "Revenue"
    203202msgstr ""
    204203
    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
    210205msgid "Leads"
    211206msgstr ""
    212207
    213 #: admin/assets/js/promptor-admin.js:957
     208#: admin/assets/js/promptor-admin.js:907
    214209msgid "Saving settings…"
    215210msgstr ""
    216211
    217 #: admin/assets/js/promptor-admin.js:967
     212#: admin/assets/js/promptor-admin.js:917
    218213#, javascript-format
    219214msgid "Error saving settings: %s"
    220215msgstr ""
    221216
    222 #: admin/assets/js/promptor-admin.js:974
     217#: admin/assets/js/promptor-admin.js:924
    223218msgid "Settings saved. Sending test…"
    224219msgstr ""
    225220
    226 #: admin/assets/js/promptor-admin.js:980
     221#: admin/assets/js/promptor-admin.js:930
    227222msgid "Server error during test."
    228223msgstr ""
    229224
    230 #: admin/assets/js/promptor-admin.js:988
     225#: admin/assets/js/promptor-admin.js:938
    231226msgid "Server error while saving settings."
    232227msgstr ""
    233228
    234 #: admin/assets/js/promptor-admin.js:1033
     229#: admin/assets/js/promptor-admin.js:983
    235230msgid "Please choose a bulk action."
    236231msgstr ""
    237232
    238 #: admin/assets/js/promptor-admin.js:1043
     233#: admin/assets/js/promptor-admin.js:993
    239234msgid "Please select at least one item to proceed."
    240235msgstr ""
    241236
    242 #: admin/assets/js/promptor-admin.js:1074 admin/assets/js/promptor-admin.js:1120 admin/assets/js/promptor-admin.js:1236
    243 #: admin/assets/js/promptor-admin.js:1425
     237#: 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
    244239msgid "A server error occurred. Please try again."
    245240msgstr ""
    246241
    247 #: admin/assets/js/promptor-admin.js:1223
     242#: admin/assets/js/promptor-admin.js:1173
    248243msgid "✓ Questions generated successfully!"
    249244msgstr ""
    250245
    251 #: admin/assets/js/promptor-admin.js:1232
     246#: admin/assets/js/promptor-admin.js:1182
    252247msgid "Failed to generate questions"
    253248msgstr ""
    254249
    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
    266251#, javascript-format
    267252msgid "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?"
    268253msgstr ""
    269254
    270 #: admin/assets/js/promptor-admin.js:1365
     255#: admin/assets/js/promptor-admin.js:1244
    271256#, javascript-format
    272257msgid "%1$d items selected. Note: There are %2$d more items. Load them first to select all."
     
    274259
    275260#. translators: %d: Number of remaining items to load
    276 #: admin/assets/js/promptor-admin.js:1414 admin/settings/class-promptor-settings-knowledge-base.php:477
    277 #: admin/settings/class-promptor-settings-knowledge-base.php:499
     261#: 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
    278263#, javascript-format, php-format
    279264msgid "Load More (%d remaining)"
    280265msgstr ""
    281266
    282 #: admin/assets/js/promptor-admin.js:1421
     267#: admin/assets/js/promptor-admin.js:1299
    283268msgid "Failed to load more content."
    284269msgstr ""
     
    303288msgstr ""
    304289
    305 #: admin/class-promptor-admin.php:106 admin/class-promptor-list-table-pages.php:829
    306 msgid "AI Conversations"
    307 msgstr ""
    308 
    309 #: admin/class-promptor-admin.php:108 admin/class-promptor-settings-page.php:77 admin/class-promptor-welcome-page.php:84
     290#: admin/class-promptor-admin.php:107
     291msgid "Queries Log"
     292msgstr ""
     293
     294#: admin/class-promptor-admin.php:108 admin/class-promptor-settings-page.php:73 admin/class-promptor-welcome-page.php:84
    310295#: admin/class-promptor-welcome-page.php:102
    311296msgid "Settings"
    312297msgstr ""
    313298
    314 #: admin/class-promptor-admin.php:111 admin/class-promptor-changelog-page.php:16 admin/class-promptor-welcome-page.php:214
     299#: admin/class-promptor-admin.php:111 admin/class-promptor-changelog-page.php:14 admin/class-promptor-welcome-page.php:214
    315300#: admin/class-promptor-welcome-page.php:269
    316301msgid "Changelog"
    317302msgstr ""
    318303
    319 #: admin/class-promptor-admin.php:191
     304#: admin/class-promptor-admin.php:189
    320305msgid "Are you sure you want to permanently delete all indexed data for this knowledge base?"
    321306msgstr ""
    322307
    323 #: admin/class-promptor-admin.php:192
     308#: admin/class-promptor-admin.php:190
    324309msgid "Are you sure you want to delete this knowledge base? This action cannot be undone."
    325310msgstr ""
    326311
    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
    332313msgid "Back to Welcome"
    333314msgstr ""
    334315
    335 #: admin/class-promptor-changelog-page.php:34
     316#: admin/class-promptor-changelog-page.php:29
    336317msgid "Changelog could not be loaded. Please check the readme.txt file."
    337318msgstr ""
     
    339320#: admin/class-promptor-dashboard-page.php:31 admin/class-promptor-settings-page.php:37 admin/settings/class-promptor-settings-knowledge-base.php:30
    340321#: 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:231
     322#: admin/settings/class-promptor-settings-ui.php:230
    342323msgid "You do not have permission to access this page."
    343324msgstr ""
     
    354335#: admin/class-promptor-submissions-table.php:346 admin/settings/class-promptor-settings-knowledge-base.php:54
    355336#: 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:504
     337#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:192 public/ajax-handlers/class-promptor-ajax-admin-handler.php:477
    357338msgid "Security check failed."
    358339msgstr ""
     
    362343msgstr ""
    363344
    364 #: admin/class-promptor-dashboard-page.php:114 admin/class-promptor-dashboard-page.php:487 admin/class-promptor-submissions-table.php:119
     345#: admin/class-promptor-dashboard-page.php:114 admin/class-promptor-dashboard-page.php:475 admin/class-promptor-submissions-table.php:119
    365346#: admin/class-promptor-submissions-table.php:576 public/ajax-handlers/class-promptor-ajax-admin-handler.php:125
    366347msgid "Pending"
    367348msgstr ""
    368349
    369 #: admin/class-promptor-dashboard-page.php:115 admin/class-promptor-dashboard-page.php:488 admin/class-promptor-submissions-table.php:122
     350#: admin/class-promptor-dashboard-page.php:115 admin/class-promptor-dashboard-page.php:476 admin/class-promptor-submissions-table.php:122
    370351#: admin/class-promptor-submissions-table.php:580 public/ajax-handlers/class-promptor-ajax-admin-handler.php:126
    371352msgid "Contacted"
    372353msgstr ""
    373354
    374 #: admin/class-promptor-dashboard-page.php:116 admin/class-promptor-dashboard-page.php:489 admin/class-promptor-submissions-table.php:125
     355#: admin/class-promptor-dashboard-page.php:116 admin/class-promptor-dashboard-page.php:477 admin/class-promptor-submissions-table.php:125
    375356#: admin/class-promptor-submissions-table.php:584 public/ajax-handlers/class-promptor-ajax-admin-handler.php:127
    376357msgid "Converted"
    377358msgstr ""
    378359
    379 #: admin/class-promptor-dashboard-page.php:117 admin/class-promptor-dashboard-page.php:490 admin/class-promptor-submissions-table.php:128
     360#: admin/class-promptor-dashboard-page.php:117 admin/class-promptor-dashboard-page.php:478 admin/class-promptor-submissions-table.php:128
    380361#: admin/class-promptor-submissions-table.php:588 public/ajax-handlers/class-promptor-ajax-admin-handler.php:128
    381362msgid "Rejected"
    382363msgstr ""
    383364
    384 #: admin/class-promptor-dashboard-page.php:165
     365#: admin/class-promptor-dashboard-page.php:163
    385366msgid "Performance Dashboard"
    386367msgstr ""
    387368
    388369#. translators: %s: current period label
    389 #: admin/class-promptor-dashboard-page.php:171
     370#: admin/class-promptor-dashboard-page.php:169
    390371#, php-format
    391372msgid "Showing data for: %s"
    392373msgstr ""
    393374
    394 #: admin/class-promptor-dashboard-page.php:177
     375#: admin/class-promptor-dashboard-page.php:175
    395376msgid "Refresh Data"
    396377msgstr ""
    397378
    398 #: admin/class-promptor-dashboard-page.php:184 admin/settings/class-promptor-settings-knowledge-base.php:320
     379#: admin/class-promptor-dashboard-page.php:182 admin/settings/class-promptor-settings-knowledge-base.php:320
    399380msgid "Daily"
    400381msgstr ""
    401382
    402 #: admin/class-promptor-dashboard-page.php:188 admin/settings/class-promptor-settings-knowledge-base.php:320
     383#: admin/class-promptor-dashboard-page.php:186 admin/settings/class-promptor-settings-knowledge-base.php:320
    403384msgid "Weekly"
    404385msgstr ""
    405386
    406 #: admin/class-promptor-dashboard-page.php:192
     387#: admin/class-promptor-dashboard-page.php:190
    407388msgid "Monthly"
    408389msgstr ""
    409390
    410 #: admin/class-promptor-dashboard-page.php:196
     391#: admin/class-promptor-dashboard-page.php:194
    411392msgid "Yearly"
    412393msgstr ""
    413394
    414 #: admin/class-promptor-dashboard-page.php:206
     395#: admin/class-promptor-dashboard-page.php:204
    415396msgid "Total AI Queries"
    416397msgstr ""
    417398
    418 #: admin/class-promptor-dashboard-page.php:213
     399#: admin/class-promptor-dashboard-page.php:211
    419400msgid "Total Leads"
    420401msgstr ""
    421402
    422 #: admin/class-promptor-dashboard-page.php:220
     403#: admin/class-promptor-dashboard-page.php:218
    423404msgid "Lead Conversion Rate"
    424405msgstr ""
    425406
    426 #: admin/class-promptor-dashboard-page.php:227
     407#: admin/class-promptor-dashboard-page.php:225
    427408msgid "Products Added to Cart"
    428409msgstr ""
    429410
    430 #: admin/class-promptor-dashboard-page.php:236
     411#: admin/class-promptor-dashboard-page.php:234
    431412msgid "AI-driven Revenue"
    432413msgstr ""
    433414
    434 #: admin/class-promptor-dashboard-page.php:245
     415#: admin/class-promptor-dashboard-page.php:243
    435416msgid "Satisfaction Rate"
    436417msgstr ""
    437418
    438 #: admin/class-promptor-dashboard-page.php:252
     419#: admin/class-promptor-dashboard-page.php:250
    439420msgid "Avg. Response Time"
    440421msgstr ""
    441422
    442 #: admin/class-promptor-dashboard-page.php:259
     423#: admin/class-promptor-dashboard-page.php:257
    443424msgid "Indexed Docs"
    444425msgstr ""
    445426
    446 #: admin/class-promptor-dashboard-page.php:266
     427#: admin/class-promptor-dashboard-page.php:264
    447428msgid "WooCommerce Products"
    448429msgstr ""
    449430
    450 #: admin/class-promptor-dashboard-page.php:277
     431#: admin/class-promptor-dashboard-page.php:272
    451432msgid "Daily Performance"
    452433msgstr ""
    453434
    454 #: admin/class-promptor-dashboard-page.php:290
     435#: admin/class-promptor-dashboard-page.php:280
    455436msgid "Lead Pipeline Distribution"
    456437msgstr ""
    457438
    458 #: admin/class-promptor-dashboard-page.php:306
     439#: admin/class-promptor-dashboard-page.php:294
    459440msgid "Top Converting Services (Manual Leads)"
    460441msgstr ""
    461442
    462 #: admin/class-promptor-dashboard-page.php:317
     443#: admin/class-promptor-dashboard-page.php:305
    463444msgid "conversions"
    464445msgstr ""
    465446
    466 #: admin/class-promptor-dashboard-page.php:323
     447#: admin/class-promptor-dashboard-page.php:311
    467448msgid "No service conversions recorded yet."
    468449msgstr ""
    469450
    470 #: admin/class-promptor-dashboard-page.php:333
     451#: admin/class-promptor-dashboard-page.php:321
    471452msgid "Top Selling Products via AI"
    472453msgstr ""
    473454
    474 #: admin/class-promptor-dashboard-page.php:353
     455#: admin/class-promptor-dashboard-page.php:341
    475456msgid "sales"
    476457msgstr ""
    477458
    478 #: admin/class-promptor-dashboard-page.php:360
     459#: admin/class-promptor-dashboard-page.php:348
    479460msgid "No AI-driven sales recorded in this period yet."
    480461msgstr ""
    481462
    482 #: admin/class-promptor-dashboard-page.php:370 admin/class-promptor-list-table-pages.php:980
     463#: admin/class-promptor-dashboard-page.php:358 admin/class-promptor-list-table-pages.php:965
    483464msgid "Recent Submissions"
    484465msgstr ""
    485466
    486 #: admin/class-promptor-dashboard-page.php:377 admin/settings/class-promptor-settings-knowledge-base.php:127
     467#: admin/class-promptor-dashboard-page.php:365 admin/settings/class-promptor-settings-knowledge-base.php:127
    487468msgid "Name"
    488469msgstr ""
    489470
    490 #: admin/class-promptor-dashboard-page.php:378 admin/class-promptor-submissions-table.php:291
     471#: admin/class-promptor-dashboard-page.php:366 admin/class-promptor-submissions-table.php:291
    491472msgid "Status"
    492473msgstr ""
    493474
    494 #: admin/class-promptor-dashboard-page.php:379 admin/class-promptor-dashboard-page.php:425 admin/class-promptor-list-table-pages.php:247
    495 #: admin/class-promptor-list-table-pages.php:1000 admin/class-promptor-submissions-table.php:292
    496 #: admin/settings/class-promptor-settings-knowledge-base.php:477 admin/settings/class-promptor-settings-knowledge-base.php:495
     475#: 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
    497478msgid "Date"
    498479msgstr ""
    499480
    500 #: admin/class-promptor-dashboard-page.php:399 admin/class-promptor-list-table-pages.php:1006
     481#: admin/class-promptor-dashboard-page.php:387 admin/class-promptor-list-table-pages.php:991
    501482msgid "No submissions yet."
    502483msgstr ""
    503484
    504 #: admin/class-promptor-dashboard-page.php:408
     485#: admin/class-promptor-dashboard-page.php:396
    505486msgid "View All Submissions"
    506487msgstr ""
    507488
    508 #: admin/class-promptor-dashboard-page.php:417
     489#: admin/class-promptor-dashboard-page.php:405
    509490msgid "Recent Queries"
    510491msgstr ""
    511492
    512 #: admin/class-promptor-dashboard-page.php:424 admin/class-promptor-list-table-pages.php:240
     493#: admin/class-promptor-dashboard-page.php:412 admin/class-promptor-list-table-pages.php:240
    513494msgid "User Query"
    514495msgstr ""
    515496
    516 #: admin/class-promptor-dashboard-page.php:440
     497#: admin/class-promptor-dashboard-page.php:428
    517498msgid "No queries yet."
    518499msgstr ""
    519500
    520 #: admin/class-promptor-dashboard-page.php:449
     501#: admin/class-promptor-dashboard-page.php:437
    521502msgid "View All Queries"
    522503msgstr ""
    523504
    524 #: admin/class-promptor-dashboard-page.php:457
     505#: admin/class-promptor-dashboard-page.php:445
    525506msgid "System Status:"
    526507msgstr ""
    527508
    528 #: admin/class-promptor-dashboard-page.php:464
     509#: admin/class-promptor-dashboard-page.php:452
    529510msgid "WooCommerce"
    530511msgstr ""
    531512
    532 #: admin/class-promptor-dashboard-page.php:468
     513#: admin/class-promptor-dashboard-page.php:456
    533514msgid "Knowledge Base"
    534515msgstr ""
    535516
    536 #: admin/class-promptor-dashboard-page.php:472
     517#: admin/class-promptor-dashboard-page.php:460
    537518msgid "Analytics Live"
    538519msgstr ""
    539520
     521#: admin/class-promptor-dashboard-page.php:501
     522msgid "(Today)"
     523msgstr ""
     524
     525#: admin/class-promptor-dashboard-page.php:505
     526msgid "(Last 7 Days)"
     527msgstr ""
     528
     529#: admin/class-promptor-dashboard-page.php:509
     530msgid "(Last 30 Days)"
     531msgstr ""
     532
    540533#: admin/class-promptor-dashboard-page.php:513
    541 msgid "(Today)"
    542 msgstr ""
    543 
    544 #: admin/class-promptor-dashboard-page.php:517
    545 msgid "(Last 7 Days)"
    546 msgstr ""
    547 
    548 #: admin/class-promptor-dashboard-page.php:521
    549 msgid "(Last 30 Days)"
    550 msgstr ""
    551 
    552 #: admin/class-promptor-dashboard-page.php:525
    553534msgid "(Last Year)"
    554535msgstr ""
     
    666647msgstr ""
    667648
    668 #: admin/class-promptor-list-table-pages.php:831
    669 msgid "View and analyze all AI-powered conversations with your website visitors."
    670 msgstr ""
    671 
    672 #: admin/class-promptor-list-table-pages.php:844
     649#: admin/class-promptor-list-table-pages.php:825
     650msgid "AI Queries Log"
     651msgstr ""
     652
     653#: admin/class-promptor-list-table-pages.php:836
    673654#, php-format
    674655msgid "%s query has been deleted."
     
    678659
    679660#. translators: 1: queries used, 2: query limit
    680 #: admin/class-promptor-list-table-pages.php:875
     661#: admin/class-promptor-list-table-pages.php:867
    681662#, php-format
    682663msgid "Monthly Query Limit: %1$d / %2$d used"
     
    684665
    685666#. translators: 1: percentage, 2: upgrade URL
    686 #: admin/class-promptor-list-table-pages.php:896
     667#: admin/class-promptor-list-table-pages.php:888
    687668#, php-format
    688669msgid ""
     
    691672msgstr ""
    692673
    693 #: admin/class-promptor-list-table-pages.php:913
     674#: admin/class-promptor-list-table-pages.php:905
    694675msgid "Search Queries"
    695676msgstr ""
    696677
    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
     679msgid "Form Submissions"
    703680msgstr ""
    704681
    705682#. translators: %s: upgrade URL
    706 #: admin/class-promptor-list-table-pages.php:987
     683#: admin/class-promptor-list-table-pages.php:972
    707684#, php-format
    708685msgid ""
     
    712689msgstr ""
    713690
    714 #: admin/class-promptor-list-table-pages.php:997 admin/class-promptor-submissions-table.php:287
     691#: admin/class-promptor-list-table-pages.php:982 admin/class-promptor-submissions-table.php:287
    715692msgid "Submitter"
    716693msgstr ""
    717694
    718 #: admin/class-promptor-list-table-pages.php:998 admin/class-promptor-submissions-table.php:288
     695#: admin/class-promptor-list-table-pages.php:983 admin/class-promptor-submissions-table.php:288
    719696msgid "Contact Details"
    720697msgstr ""
    721698
    722 #: admin/class-promptor-list-table-pages.php:999 admin/class-promptor-submissions-table.php:290 public/assets/js/promptor-public.js:241
     699#: admin/class-promptor-list-table-pages.php:984 admin/class-promptor-submissions-table.php:290
    723700msgid "Selected Services"
    724701msgstr ""
    725702
    726 #: admin/class-promptor-list-table-pages.php:1018 admin/class-promptor-submissions-table.php:470
     703#: admin/class-promptor-list-table-pages.php:1003 admin/class-promptor-submissions-table.php:470
    727704msgid "Email hidden"
    728705msgstr ""
    729706
    730 #: admin/class-promptor-list-table-pages.php:1026
     707#: admin/class-promptor-list-table-pages.php:1011
    731708msgid "No phone"
    732709msgstr ""
    733710
    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
    739712msgid "Knowledge Bases"
    740713msgstr ""
    741714
    742 #: admin/class-promptor-settings-page.php:91
     715#: admin/class-promptor-settings-page.php:83
    743716msgid "API Settings"
    744717msgstr ""
    745718
    746 #: admin/class-promptor-settings-page.php:96
     719#: admin/class-promptor-settings-page.php:88
    747720msgid "UI Settings"
    748721msgstr ""
    749722
    750 #: admin/class-promptor-settings-page.php:102
     723#: admin/class-promptor-settings-page.php:94
    751724msgid "Notifications"
    752725msgstr ""
     
    14701443msgstr ""
    14711444
    1472 #: admin/settings/class-promptor-settings-knowledge-base.php:441
     1445#: admin/settings/class-promptor-settings-knowledge-base.php:439
    14731446msgid "PDF Files"
    14741447msgstr ""
    14751448
     1449#: admin/settings/class-promptor-settings-knowledge-base.php:449 admin/settings/class-promptor-settings-knowledge-base.php:467
     1450msgid "Select bulk action"
     1451msgstr ""
     1452
     1453#: admin/settings/class-promptor-settings-knowledge-base.php:451 admin/settings/class-promptor-settings-knowledge-base.php:469
     1454msgid "Bulk actions"
     1455msgstr ""
     1456
     1457#: admin/settings/class-promptor-settings-knowledge-base.php:452 admin/settings/class-promptor-settings-knowledge-base.php:470
     1458msgid "Change role to: Service"
     1459msgstr ""
     1460
     1461#: admin/settings/class-promptor-settings-knowledge-base.php:453 admin/settings/class-promptor-settings-knowledge-base.php:471
     1462msgid "Change role to: Product"
     1463msgstr ""
     1464
     1465#: admin/settings/class-promptor-settings-knowledge-base.php:454 admin/settings/class-promptor-settings-knowledge-base.php:472
     1466msgid "Change role to: Blog Post"
     1467msgstr ""
     1468
     1469#: admin/settings/class-promptor-settings-knowledge-base.php:455 admin/settings/class-promptor-settings-knowledge-base.php:473
     1470msgid "Change role to: FAQ"
     1471msgstr ""
     1472
     1473#: admin/settings/class-promptor-settings-knowledge-base.php:457 admin/settings/class-promptor-settings-knowledge-base.php:475
     1474msgid "Apply"
     1475msgstr ""
     1476
     1477#: admin/settings/class-promptor-settings-knowledge-base.php:460 admin/settings/class-promptor-settings-knowledge-base.php:478
     1478msgid "items selected"
     1479msgstr ""
     1480
     1481#: admin/settings/class-promptor-settings-knowledge-base.php:461 admin/settings/class-promptor-settings-knowledge-base.php:479
     1482msgid "Select This Page"
     1483msgstr ""
     1484
    14761485#: admin/settings/class-promptor-settings-knowledge-base.php:462 admin/settings/class-promptor-settings-knowledge-base.php:480
    1477 msgid "Select bulk action"
     1486msgid "Select All"
     1487msgstr ""
     1488
     1489#: admin/settings/class-promptor-settings-knowledge-base.php:463
     1490msgid "Search content..."
     1491msgstr ""
     1492
     1493#: admin/settings/class-promptor-settings-knowledge-base.php:464
     1494msgid "Title"
    14781495msgstr ""
    14791496
    14801497#: 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:483
    1485 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:484
    1489 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:485
    1493 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:486
    1497 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:488
    1501 msgid "Apply"
    1502 msgstr ""
    1503 
    1504 #: admin/settings/class-promptor-settings-knowledge-base.php:473 admin/settings/class-promptor-settings-knowledge-base.php:491
    1505 msgid "items selected"
    1506 msgstr ""
    1507 
    1508 #: admin/settings/class-promptor-settings-knowledge-base.php:474 admin/settings/class-promptor-settings-knowledge-base.php:492
    1509 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:493
    1513 msgid "Select All"
    1514 msgstr ""
    1515 
    1516 #: admin/settings/class-promptor-settings-knowledge-base.php:476
    1517 msgid "Search content..."
    1518 msgstr ""
    1519 
    1520 #: admin/settings/class-promptor-settings-knowledge-base.php:477
    1521 msgid "Title"
    1522 msgstr ""
    1523 
    1524 #: admin/settings/class-promptor-settings-knowledge-base.php:477 admin/settings/class-promptor-settings-knowledge-base.php:495
    15251498msgid "Content Role"
    15261499msgstr ""
    15271500
    1528 #: admin/settings/class-promptor-settings-knowledge-base.php:477
     1501#: admin/settings/class-promptor-settings-knowledge-base.php:464
    15291502msgid "Word Count"
    15301503msgstr ""
    15311504
    1532 #: admin/settings/class-promptor-settings-knowledge-base.php:477
     1505#: admin/settings/class-promptor-settings-knowledge-base.php:464
    15331506msgid "No content found for this post type."
    15341507msgstr ""
    15351508
    1536 #: admin/settings/class-promptor-settings-knowledge-base.php:494
     1509#: admin/settings/class-promptor-settings-knowledge-base.php:481
    15371510msgid "Search PDFs..."
    15381511msgstr ""
    15391512
    1540 #: admin/settings/class-promptor-settings-knowledge-base.php:495
     1513#: admin/settings/class-promptor-settings-knowledge-base.php:482
    15411514msgid "File Name"
    15421515msgstr ""
    15431516
    1544 #: admin/settings/class-promptor-settings-knowledge-base.php:498 admin/settings/class-promptor-settings-knowledge-base.php:580
    1545 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1188
     1517#: 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
    15461519msgid "Service"
    15471520msgstr ""
    15481521
    1549 #: admin/settings/class-promptor-settings-knowledge-base.php:498 admin/settings/class-promptor-settings-knowledge-base.php:581
    1550 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1189
     1522#: 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
    15511524msgid "Product"
    15521525msgstr ""
    15531526
    1554 #: admin/settings/class-promptor-settings-knowledge-base.php:498 admin/settings/class-promptor-settings-knowledge-base.php:582
    1555 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1190
     1527#: 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
    15561529msgid "Blog Post"
    15571530msgstr ""
    15581531
    1559 #: admin/settings/class-promptor-settings-knowledge-base.php:498 admin/settings/class-promptor-settings-knowledge-base.php:583
    1560 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1191
     1532#: 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
    15611534msgid "FAQ"
    15621535msgstr ""
    15631536
    1564 #: admin/settings/class-promptor-settings-knowledge-base.php:503 admin/settings/class-promptor-settings-knowledge-base.php:507
     1537#: admin/settings/class-promptor-settings-knowledge-base.php:490 admin/settings/class-promptor-settings-knowledge-base.php:494
    15651538msgid "Example Questions"
    15661539msgstr ""
    15671540
    1568 #: admin/settings/class-promptor-settings-knowledge-base.php:509
     1541#: admin/settings/class-promptor-settings-knowledge-base.php:496
    15691542msgid "e.g. I want to build a corporate website."
    15701543msgstr ""
    15711544
    1572 #: admin/settings/class-promptor-settings-knowledge-base.php:510
     1545#: admin/settings/class-promptor-settings-knowledge-base.php:497
    15731546msgid "Enter one example question per line. These will be shown to the user as suggestions."
    15741547msgstr ""
    15751548
    1576 #: admin/settings/class-promptor-settings-knowledge-base.php:514
     1549#: admin/settings/class-promptor-settings-knowledge-base.php:501
    15771550msgid "Generate with AI"
    15781551msgstr ""
    15791552
     1553#: admin/settings/class-promptor-settings-knowledge-base.php:512
     1554msgid "Automation Settings (Pro)"
     1555msgstr ""
     1556
     1557#: admin/settings/class-promptor-settings-knowledge-base.php:516
     1558msgid "Auto-Sync on Publish"
     1559msgstr ""
     1560
     1561#: admin/settings/class-promptor-settings-knowledge-base.php:522
     1562msgid "Automatically add and index newly published content to this knowledge base."
     1563msgstr ""
     1564
    15801565#: 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:529
    1585 msgid "Auto-Sync on Publish"
    1586 msgstr ""
    1587 
    1588 #: admin/settings/class-promptor-settings-knowledge-base.php:535
    1589 msgid "Automatically add and index newly published content to this knowledge base."
    1590 msgstr ""
    1591 
    1592 #: admin/settings/class-promptor-settings-knowledge-base.php:538
    15931566msgid "This is a Pro feature."
    15941567msgstr ""
    15951568
    1596 #: admin/settings/class-promptor-settings-knowledge-base.php:549
     1569#: admin/settings/class-promptor-settings-knowledge-base.php:536
    15971570msgid "Save Changes"
    15981571msgstr ""
     
    17851758
    17861759#: 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:986
    1788 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1123
     1760#: 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
    17891762msgid "Permission denied."
    17901763msgstr ""
    17911764
    1792 #: admin/settings/class-promptor-settings-ui.php:210
     1765#: admin/settings/class-promptor-settings-ui.php:209
    17931766msgid "Settings saved successfully."
    17941767msgstr ""
    17951768
    1796 #: admin/settings/class-promptor-settings-ui.php:259
     1769#: admin/settings/class-promptor-settings-ui.php:258
    17971770msgid "UI Customization Target"
    17981771msgstr ""
    17991772
    1800 #: admin/settings/class-promptor-settings-ui.php:261
     1773#: admin/settings/class-promptor-settings-ui.php:260
    18011774msgid "Select which chat interface you want to customize."
    18021775msgstr ""
    18031776
    1804 #: admin/settings/class-promptor-settings-ui.php:268
     1777#: admin/settings/class-promptor-settings-ui.php:267
    18051778msgid "Global Popup Settings"
    18061779msgstr ""
    18071780
    18081781#. translators: %s: Knowledge base name
    1809 #: admin/settings/class-promptor-settings-ui.php:279
     1782#: admin/settings/class-promptor-settings-ui.php:278
    18101783#, php-format
    18111784msgid "Inline: %s Knowledge Base"
     
    18131786
    18141787#. translators: %s: Upgrade URL
    1815 #: admin/settings/class-promptor-settings-ui.php:297
     1788#: admin/settings/class-promptor-settings-ui.php:296
    18161789#, php-format
    18171790msgid ""
     
    18201793msgstr ""
    18211794
    1822 #: admin/settings/class-promptor-settings-ui.php:308
     1795#: admin/settings/class-promptor-settings-ui.php:307
    18231796msgid "Chat Widget Mode"
    18241797msgstr ""
    18251798
    1826 #: admin/settings/class-promptor-settings-ui.php:310
     1799#: admin/settings/class-promptor-settings-ui.php:309
    18271800msgid ""
    18281801"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)."
    18291802msgstr ""
    18301803
    1831 #: admin/settings/class-promptor-settings-ui.php:314
     1804#: admin/settings/class-promptor-settings-ui.php:313
    18321805msgid "Knowledge Base for Popup"
    18331806msgstr ""
    18341807
    1835 #: admin/settings/class-promptor-settings-ui.php:329
     1808#: admin/settings/class-promptor-settings-ui.php:328
    18361809msgid "Select which knowledge base the floating popup chat will use."
    18371810msgstr ""
    18381811
    1839 #: admin/settings/class-promptor-settings-ui.php:337
     1812#: admin/settings/class-promptor-settings-ui.php:336
    18401813msgid "Chat Position"
    18411814msgstr ""
    18421815
     1816#: admin/settings/class-promptor-settings-ui.php:341
     1817msgid "Inline (via Shortcode)"
     1818msgstr ""
     1819
    18431820#: admin/settings/class-promptor-settings-ui.php:342
    1844 msgid "Inline (via Shortcode)"
     1821msgid "Popup - Bottom Right (Pro)"
    18451822msgstr ""
    18461823
    18471824#: 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:344
    18521825msgid "Popup - Bottom Left (Pro)"
    18531826msgstr ""
    18541827
    1855 #: admin/settings/class-promptor-settings-ui.php:346
     1828#: admin/settings/class-promptor-settings-ui.php:345
    18561829msgid "Choose how the chat widget appears. Popup mode is a Pro feature."
    18571830msgstr ""
    18581831
    1859 #: admin/settings/class-promptor-settings-ui.php:352
     1832#: admin/settings/class-promptor-settings-ui.php:351
    18601833msgid "Hide Header (Inline only)"
    18611834msgstr ""
    18621835
    1863 #: admin/settings/class-promptor-settings-ui.php:356
     1836#: admin/settings/class-promptor-settings-ui.php:355
    18641837msgid "Hide the header for a more compact view."
    18651838msgstr ""
    18661839
    1867 #: admin/settings/class-promptor-settings-ui.php:366
     1840#: admin/settings/class-promptor-settings-ui.php:365
    18681841msgid "General Appearance"
    18691842msgstr ""
    18701843
    1871 #: admin/settings/class-promptor-settings-ui.php:368
     1844#: admin/settings/class-promptor-settings-ui.php:367
    18721845msgid "Adjust general appearance settings like font size and corner radius to match your sites design."
    18731846msgstr ""
    18741847
     1848#: admin/settings/class-promptor-settings-ui.php:369
     1849msgid "Font Size"
     1850msgstr ""
     1851
    18751852#: admin/settings/class-promptor-settings-ui.php:370
    1876 msgid "Font Size"
    1877 msgstr ""
    1878 
    1879 #: admin/settings/class-promptor-settings-ui.php:371
    18801853msgid "Border Radius"
    18811854msgstr ""
    18821855
    1883 #: admin/settings/class-promptor-settings-ui.php:376
     1856#: admin/settings/class-promptor-settings-ui.php:375
    18841857msgid "Avatars"
    18851858msgstr ""
    18861859
    1887 #: admin/settings/class-promptor-settings-ui.php:378
     1860#: admin/settings/class-promptor-settings-ui.php:377
    18881861msgid "Customize the avatars to give your AI assistant more personality."
    18891862msgstr ""
    18901863
    1891 #: admin/settings/class-promptor-settings-ui.php:380 admin/settings/class-promptor-settings-ui.php:467 public/class-promptor-public.php:418
     1864#: admin/settings/class-promptor-settings-ui.php:379 admin/settings/class-promptor-settings-ui.php:445 public/class-promptor-public.php:414
    18921865msgid "Bot Avatar"
    18931866msgstr ""
    18941867
    1895 #: admin/settings/class-promptor-settings-ui.php:387
     1868#: admin/settings/class-promptor-settings-ui.php:386
    18961869msgid "Colors"
    18971870msgstr ""
    18981871
    1899 #: admin/settings/class-promptor-settings-ui.php:389
     1872#: admin/settings/class-promptor-settings-ui.php:388
    19001873msgid "Set the chat widgets color palette to perfectly match your brand identity."
    19011874msgstr ""
    19021875
     1876#: admin/settings/class-promptor-settings-ui.php:392
     1877msgid "Primary Color"
     1878msgstr ""
     1879
     1880#: admin/settings/class-promptor-settings-ui.php:392
     1881msgid "Header, Ask button."
     1882msgstr ""
     1883
    19031884#: 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."
     1885msgid "User Message Bubble"
    19091886msgstr ""
    19101887
    19111888#: admin/settings/class-promptor-settings-ui.php:394
    1912 msgid "User Message Bubble"
    1913 msgstr ""
    1914 
    1915 #: admin/settings/class-promptor-settings-ui.php:395
    19161889msgid "User Message Text"
    19171890msgstr ""
    19181891
     1892#: admin/settings/class-promptor-settings-ui.php:399
     1893msgid "Widget Background"
     1894msgstr ""
     1895
    19191896#: admin/settings/class-promptor-settings-ui.php:400
    1920 msgid "Widget Background"
     1897msgid "AI Message Bubble"
    19211898msgstr ""
    19221899
    19231900#: admin/settings/class-promptor-settings-ui.php:401
    1924 msgid "AI Message Bubble"
     1901msgid "AI Message Text"
    19251902msgstr ""
    19261903
    19271904#: admin/settings/class-promptor-settings-ui.php:402
    1928 msgid "AI Message Text"
    1929 msgstr ""
    1930 
    1931 #: admin/settings/class-promptor-settings-ui.php:403
    19321905msgid "Input Focus Border"
    19331906msgstr ""
    19341907
    1935 #: admin/settings/class-promptor-settings-ui.php:411
     1908#: admin/settings/class-promptor-settings-ui.php:410
    19361909msgid "Content & Language"
    19371910msgstr ""
    19381911
    1939 #: admin/settings/class-promptor-settings-ui.php:413
     1912#: admin/settings/class-promptor-settings-ui.php:412
    19401913msgid "Edit the default text that appears in sections of the chat widget, such as the header and input placeholder."
    19411914msgstr ""
    19421915
     1916#: admin/settings/class-promptor-settings-ui.php:414
     1917msgid "Header Title"
     1918msgstr ""
     1919
    19431920#: admin/settings/class-promptor-settings-ui.php:415
    1944 msgid "Header Title"
     1921msgid "Header Subtitle"
    19451922msgstr ""
    19461923
    19471924#: admin/settings/class-promptor-settings-ui.php:416
    1948 msgid "Header Subtitle"
    1949 msgstr ""
    1950 
    1951 #: admin/settings/class-promptor-settings-ui.php:417
    19521925msgid "Input Placeholder"
    19531926msgstr ""
    19541927
    1955 #: admin/settings/class-promptor-settings-ui.php:421
     1928#: admin/settings/class-promptor-settings-ui.php:420
    19561929msgid "Popup Animation"
    19571930msgstr ""
    19581931
     1932#: admin/settings/class-promptor-settings-ui.php:425
     1933msgid "None"
     1934msgstr ""
     1935
    19591936#: admin/settings/class-promptor-settings-ui.php:426
    1960 msgid "None"
     1937msgid "Fade"
    19611938msgstr ""
    19621939
    19631940#: admin/settings/class-promptor-settings-ui.php:427
    1964 msgid "Fade"
    1965 msgstr ""
    1966 
    1967 #: admin/settings/class-promptor-settings-ui.php:428
    19681941msgid "Slide Up"
    19691942msgstr ""
    19701943
    1971 #: admin/settings/class-promptor-settings-ui.php:430
     1944#: admin/settings/class-promptor-settings-ui.php:429
    19721945msgid "Popup window open/close animation style."
    19731946msgstr ""
    19741947
    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
    19961949msgid "Live Preview"
    19971950msgstr ""
    19981951
    1999 #: admin/settings/class-promptor-settings-ui.php:474
     1952#: admin/settings/class-promptor-settings-ui.php:452
    20001953msgid "Hello! How can I help you today?"
    20011954msgstr ""
    20021955
    2003 #: admin/settings/class-promptor-settings-ui.php:476
     1956#: admin/settings/class-promptor-settings-ui.php:454
    20041957msgid "I have a question about your services."
    20051958msgstr ""
    20061959
    2007 #: admin/settings/class-promptor-settings-ui.php:481
     1960#: admin/settings/class-promptor-settings-ui.php:459
    20081961msgid "Send"
    20091962msgstr ""
    20101963
    2011 #: admin/settings/class-promptor-settings-ui.php:553
     1964#: admin/settings/class-promptor-settings-ui.php:531
    20121965msgid "Upload"
    20131966msgstr ""
     
    20201973#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:228 public/ajax-handlers/class-promptor-ajax-admin-handler.php:268
    20211974#: 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:573
    2023 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:625 public/ajax-handlers/class-promptor-ajax-admin-handler.php:697
    2024 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:740 public/ajax-handlers/class-promptor-ajax-admin-handler.php:793
     1975#: 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
    20251978#: public/ajax-handlers/class-promptor-ajax-indexing-handler.php:226 public/ajax-handlers/class-promptor-ajax-indexing-handler.php:326
    20261979#: public/ajax-handlers/class-promptor-ajax-indexing-handler.php:535 public/ajax-handlers/class-promptor-ajax-indexing-handler.php:794
     
    20662019msgstr ""
    20672020
    2068 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:290 public/ajax-handlers/class-promptor-ajax-admin-handler.php:964
    2069 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1081
     2021#: 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
    20702023msgid "Connection Error: "
    20712024msgstr ""
     
    21072060msgstr ""
    21082061
    2109 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:407 public/ajax-handlers/class-promptor-ajax-admin-handler.php:992
     2062#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:407 public/ajax-handlers/class-promptor-ajax-admin-handler.php:965
    21102063msgid "Context key is missing."
    21112064msgstr ""
    21122065
    2113 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:412 public/ajax-handlers/class-promptor-ajax-admin-handler.php:753
    2114 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:806 public/ajax-handlers/class-promptor-ajax-admin-handler.php:997
     2066#: 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
    21152068msgid "Context not found."
    21162069msgstr ""
     
    21202073msgstr ""
    21212074
    2122 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:471
     2075#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:444
    21232076msgid "Content settings saved successfully!"
    21242077msgstr ""
    21252078
    2126 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:533
     2079#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:506
    21272080msgid "Query not found."
    21282081msgstr ""
    21292082
    2130 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:553
     2083#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:526
    21312084msgid "Query Details"
    21322085msgstr ""
    21332086
    2134 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:555
     2087#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:528
    21352088msgid "User's Query:"
    21362089msgstr ""
    21372090
    2138 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:557
     2091#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:530
    21392092msgid "Full AI Response:"
    21402093msgstr ""
    21412094
    2142 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:629 public/ajax-handlers/class-promptor-ajax-form-handler.php:239
     2095#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:602 public/ajax-handlers/class-promptor-ajax-form-handler.php:239
    21432096msgid "WooCommerce is not active."
    21442097msgstr ""
    21452098
    2146 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:636 public/ajax-handlers/class-promptor-ajax-admin-handler.php:702
     2099#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:609 public/ajax-handlers/class-promptor-ajax-admin-handler.php:675
    21472100msgid "Invalid data."
    21482101msgstr ""
    21492102
    2150 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:641
     2103#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:614
    21512104msgid "Order not found."
    21522105msgstr ""
    21532106
    21542107#. translators: %s: Order number with link
    2155 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:682
     2108#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:655
    21562109#, php-format
    21572110msgid "Linked to Order %s"
    21582111msgstr ""
    21592112
    2160 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:684
     2113#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:657
    21612114msgid "Unlink"
    21622115msgstr ""
    21632116
    2164 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:724
     2117#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:697
    21652118msgid "Order ID"
    21662119msgstr ""
    21672120
    2168 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:725
     2121#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:698
    21692122msgid "Link"
    21702123msgstr ""
    21712124
    2172 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:748
     2125#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:721
    21732126msgid "Incomplete data sent."
    21742127msgstr ""
    21752128
    2176 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:773
     2129#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:746
    21772130#, php-format
    21782131msgid "%d content role successfully updated."
     
    21812134msgstr[1] ""
    21822135
    2183 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:801
     2136#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:774
    21842137msgid "Missing data."
    21852138msgstr ""
    21862139
    2187 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:820
     2140#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:793
    21882141msgid "Role updated successfully."
    21892142msgstr ""
    21902143
    2191 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:951
     2144#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:924
    21922145msgid "Invalid Slack Webhook URL."
    21932146msgstr ""
    21942147
    2195 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:974
     2148#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:947
    21962149msgid "Slack API returned an error: "
    21972150msgstr ""
    21982151
    2199 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1018
     2152#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:991
    22002153msgid "No indexed content found. Please sync some content first."
    22012154msgstr ""
    22022155
    2203 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1035
     2156#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1008
    22042157msgid "OpenAI API key not configured."
    22052158msgstr ""
    22062159
    2207 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1089
     2160#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1062
    22082161msgid "Failed to generate questions."
    22092162msgstr ""
    22102163
    2211 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1109
     2164#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1082
    22122165msgid "Questions generated successfully!"
    22132166msgstr ""
    22142167
    2215 #: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1131
     2168#: public/ajax-handlers/class-promptor-ajax-admin-handler.php:1104
    22162169msgid "Invalid parameters."
    22172170msgstr ""
     
    22472200msgstr ""
    22482201
    2249 #: public/ajax-handlers/class-promptor-ajax-chat-handler.php:334 public/assets/js/promptor-public.js:1000
     2202#: public/ajax-handlers/class-promptor-ajax-chat-handler.php:334 public/assets/js/promptor-public.js:457
    22502203msgid "Could not save feedback."
    22512204msgstr ""
     
    23152268msgstr ""
    23162269
    2317 #: public/ajax-handlers/class-promptor-ajax-form-handler.php:260 public/assets/js/promptor-public.js:1019
     2270#: public/ajax-handlers/class-promptor-ajax-form-handler.php:260 public/assets/js/promptor-public.js:476
    23182271msgid "Invalid product."
    23192272msgstr ""
     
    24792432msgstr ""
    24802433
    2481 #: public/assets/js/promptor-public.js:180
     2434#: public/assets/js/promptor-public.js:58
    24822435msgid "Chat could not be loaded. (Context Error)"
    24832436msgstr ""
    24842437
     2438#: public/assets/js/promptor-public.js:81
     2439msgid "Security validation failed. Please refresh the page."
     2440msgstr ""
     2441
     2442#: public/assets/js/promptor-public.js:95
     2443msgid "Configuration error. Please contact administrator."
     2444msgstr ""
     2445
     2446#: public/assets/js/promptor-public.js:146 public/class-promptor-public.php:284
     2447msgid "Is this conversation helpful so far?"
     2448msgstr ""
     2449
     2450#: public/assets/js/promptor-public.js:147 public/class-promptor-public.php:285
     2451msgid "Good response"
     2452msgstr ""
     2453
     2454#: public/assets/js/promptor-public.js:148 public/class-promptor-public.php:286
     2455msgid "Bad response"
     2456msgstr ""
     2457
     2458#: public/assets/js/promptor-public.js:149
     2459msgid "Thank you!"
     2460msgstr ""
     2461
     2462#: public/assets/js/promptor-public.js:171
     2463msgid "Recommended Products"
     2464msgstr ""
     2465
     2466#: public/assets/js/promptor-public.js:191
     2467msgid "Price"
     2468msgstr ""
     2469
     2470#: public/assets/js/promptor-public.js:193 public/class-promptor-public.php:283
     2471msgid "Add to Cart"
     2472msgstr ""
     2473
    24852474#: 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:"
     2475msgid "Related Articles"
     2476msgstr ""
     2477
     2478#: public/assets/js/promptor-public.js:229
     2479msgid "Frequently Asked Questions"
     2480msgstr ""
     2481
     2482#: public/assets/js/promptor-public.js:230
     2483msgid "Read more…"
     2484msgstr ""
     2485
     2486#: public/assets/js/promptor-public.js:252
     2487msgid "Recommended Services"
     2488msgstr ""
     2489
     2490#: public/assets/js/promptor-public.js:253
     2491msgid "Make an Inquiry for Selected Services"
     2492msgstr ""
     2493
     2494#: public/assets/js/promptor-public.js:254
     2495msgid "Your Name"
     2496msgstr ""
     2497
     2498#: public/assets/js/promptor-public.js:255
     2499msgid "Your Email"
     2500msgstr ""
     2501
     2502#: public/assets/js/promptor-public.js:256
     2503msgid "Your Phone"
     2504msgstr ""
     2505
     2506#: public/assets/js/promptor-public.js:257
     2507msgid "Anything else you would like to add?"
     2508msgstr ""
     2509
     2510#: public/assets/js/promptor-public.js:317
     2511msgid "Here are some ideas to get you started:"
    25072512msgstr ""
    25082513
    25092514#: 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:806
    2514 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:812
    2518 msgid "Request Quote for All"
    2519 msgstr ""
    2520 
    2521 #: public/assets/js/promptor-public.js:371
    2522 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:606
    2526 msgid "Your Name"
    2527 msgstr ""
    2528 
    2529 #: public/assets/js/promptor-public.js:393 public/assets/js/promptor-public.js:607
    2530 msgid "Your Email"
    2531 msgstr ""
    2532 
    2533 #: public/assets/js/promptor-public.js:394 public/assets/js/promptor-public.js:608
    2534 msgid "Your Phone"
    2535 msgstr ""
    2536 
    2537 #: public/assets/js/promptor-public.js:395 public/assets/js/promptor-public.js:609
    2538 msgid "Anything else you would like to add?"
    2539 msgstr ""
    2540 
    2541 #: public/assets/js/promptor-public.js:396
    2542 msgid "Submit Inquiry"
    2543 msgstr ""
    2544 
    2545 #: public/assets/js/promptor-public.js:404
    2546 msgid "Request a Quote"
    2547 msgstr ""
    2548 
    2549 #: public/assets/js/promptor-public.js:405
    2550 msgid "Services you are interested in:"
    2551 msgstr ""
    2552 
    2553 #: public/assets/js/promptor-public.js:444 public/class-promptor-public.php:288
    2554 msgid "Is this conversation helpful so far?"
    2555 msgstr ""
    2556 
    2557 #: public/assets/js/promptor-public.js:445 public/class-promptor-public.php:289
    2558 msgid "Good response"
    2559 msgstr ""
    2560 
    2561 #: public/assets/js/promptor-public.js:446 public/class-promptor-public.php:290
    2562 msgid "Bad response"
    2563 msgstr ""
    2564 
    2565 #: public/assets/js/promptor-public.js:447
    2566 msgid "Thank you!"
    2567 msgstr ""
    2568 
    2569 #: public/assets/js/promptor-public.js:475
    2570 msgid "Recommended Products"
    2571 msgstr ""
    2572 
    2573 #: public/assets/js/promptor-public.js:491
    2574 msgid "OFF"
    2575 msgstr ""
    2576 
    2577 #: public/assets/js/promptor-public.js:505
    2578 msgid "Price"
    2579 msgstr ""
    2580 
    2581 #: public/assets/js/promptor-public.js:507 public/class-promptor-public.php:287
    2582 msgid "Add to Cart"
    2583 msgstr ""
    2584 
    2585 #: public/assets/js/promptor-public.js:518
    2586 msgid "Related Articles"
    2587 msgstr ""
    2588 
    2589 #: public/assets/js/promptor-public.js:549
    2590 msgid "Download"
    2591 msgstr ""
    2592 
    2593 #: public/assets/js/promptor-public.js:569
    2594 msgid "Frequently Asked Questions"
    2595 msgstr ""
    2596 
    2597 #: public/assets/js/promptor-public.js:570
    2598 msgid "Read more…"
    2599 msgstr ""
    2600 
    2601 #: public/assets/js/promptor-public.js:604
    2602 msgid "Recommended Services"
    2603 msgstr ""
    2604 
    2605 #: public/assets/js/promptor-public.js:605
    2606 msgid "Make an Inquiry for Selected Services"
    2607 msgstr ""
    2608 
    2609 #: public/assets/js/promptor-public.js:669
    2610 msgid "Here are some ideas to get you started:"
    2611 msgstr ""
    2612 
    2613 #: public/assets/js/promptor-public.js:696
    26142515msgid "Your message is too long. Please shorten it and try again."
    26152516msgstr ""
    26162517
    2617 #: public/assets/js/promptor-public.js:785
     2518#: public/assets/js/promptor-public.js:412
    26182519msgid "Network error. Please check your connection."
    26192520msgstr ""
    26202521
    2621 #: public/assets/js/promptor-public.js:786
     2522#: public/assets/js/promptor-public.js:413
    26222523msgid "Sorry, an error occurred. Please try again."
    26232524msgstr ""
    26242525
    2625 #: public/assets/js/promptor-public.js:898 public/assets/js/promptor-public.js:1075
     2526#: public/assets/js/promptor-public.js:463
     2527msgid "An error occurred while saving feedback."
     2528msgstr ""
     2529
     2530#: public/assets/js/promptor-public.js:490
     2531msgid "Added"
     2532msgstr ""
     2533
     2534#: public/assets/js/promptor-public.js:496
     2535msgid "An error occurred."
     2536msgstr ""
     2537
     2538#: public/assets/js/promptor-public.js:501
     2539msgid "A network error occurred."
     2540msgstr ""
     2541
     2542#: public/assets/js/promptor-public.js:532
    26262543msgid "Please select at least one service."
    26272544msgstr ""
    26282545
    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
    26662547msgid "Please fill in your name and email."
    26672548msgstr ""
    26682549
    2669 #: public/assets/js/promptor-public.js:1090 public/assets/js/promptor-public.js:1154
     2550#: public/assets/js/promptor-public.js:547
    26702551msgid "Please enter a valid email address."
    26712552msgstr ""
    26722553
    2673 #: public/assets/js/promptor-public.js:1094 public/assets/js/promptor-public.js:1158
     2554#: public/assets/js/promptor-public.js:551
    26742555msgid "Sending..."
    26752556msgstr ""
    26762557
    2677 #: public/assets/js/promptor-public.js:1111 public/assets/js/promptor-public.js:1175
     2558#: public/assets/js/promptor-public.js:568
    26782559msgid "Thank you! We received your inquiry."
    26792560msgstr ""
    26802561
    2681 #: public/assets/js/promptor-public.js:1117 public/assets/js/promptor-public.js:1181
     2562#: public/assets/js/promptor-public.js:574
    26822563msgid "An error occurred. Please try again."
    26832564msgstr ""
    26842565
    2685 #: public/assets/js/promptor-public.js:1123 public/assets/js/promptor-public.js:1187
     2566#: public/assets/js/promptor-public.js:580
    26862567msgid "A network error occurred. Please try again."
    26872568msgstr ""
    26882569
    2689 #: public/assets/js/promptor-public.js:1208
     2570#: public/assets/js/promptor-public.js:600
    26902571msgid "Failed to initialize chat. Please refresh the page."
    26912572msgstr ""
    26922573
    2693 #: public/class-promptor-public.php:291
     2574#: public/class-promptor-public.php:287
    26942575msgid "Thank you for your feedback!"
    26952576msgstr ""
    26962577
    2697 #: public/class-promptor-public.php:386
     2578#: public/class-promptor-public.php:382
    26982579msgid "Toggle Chat Window"
    26992580msgstr ""
    27002581
    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
    27102583msgid "Ask a question"
    27112584msgstr ""
    27122585
    2713 #: public/class-promptor-public.php:449
     2586#: public/class-promptor-public.php:435
    27142587msgid "Ask"
    27152588msgstr ""
     
    27322605msgid "https://corrplus.net"
    27332606msgstr ""
     2607
     2608#: public/assets/js/promptor-public.js:209
     2609msgid "Related Articles"
     2610msgstr ""
     2611
     2612#: public/assets/js/promptor-public.js:322
     2613msgid "Here are some ideas to get you started:"
     2614msgstr ""
     2615
     2616#: admin/assets/js/promptor-admin.js:30
     2617msgid "%d items selected"
     2618msgstr ""
     2619
     2620#: admin/settings/class-promptor-settings-knowledge-base.php:459
     2621msgid "items selected"
     2622msgstr ""
     2623
     2624#: admin/settings/class-promptor-settings-knowledge-base.php:459
     2625msgid "Select This Page"
     2626msgstr ""
     2627
     2628#: admin/settings/class-promptor-settings-knowledge-base.php:459
     2629msgid "Select All"
     2630msgstr ""
     2631
     2632#: admin/assets/js/promptor-admin.js:1222
     2633msgid "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?"
     2634msgstr ""
     2635
     2636#: admin/assets/js/promptor-admin.js:1240
     2637msgid "%1$d items selected. Note: There are %2$d more items. Load them first to select all."
     2638msgstr ""
     2639
     2640#: admin/settings/class-promptor-settings-knowledge-base.php:460
     2641msgid "Load More (%d remaining)"
     2642msgstr ""
  • promptor/trunk/promptor.php

    r3438128 r3439442  
    44 * Plugin URI:        https://promptorai.com
    55 * 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.0
     6 * Version:           1.1.1
    77 * Author:            Corrplus
    88 * Author URI:        https://corrplus.net
     
    202202}
    203203
    204 define( 'PROMPTOR_VERSION', '1.1.0' );
     204define( 'PROMPTOR_VERSION', '1.1.1' );
    205205define( 'PROMPTOR_PATH', plugin_dir_path( __FILE__ ) );
    206206define( 'PROMPTOR_URL',  plugin_dir_url( __FILE__ ) );
  • promptor/trunk/public/ajax-handlers/class-promptor-ajax-chat-handler.php

    r3438128 r3439442  
    7979        'it_IT' => 'Italian',
    8080    );
     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    }
    81108
    82109    /**
     
    11231150                'es' => 'Según tu pregunta, esto es lo que podría ayudarte: ',
    11241151            );
    1125             $lang_code = strtolower( substr( $detected_language, 0, 2 ) );
     1152            $lang_code = $this->get_language_code( $detected_language );
    11261153            $confidence_prefix = $confidence_prefixes[ $lang_code ] ?? $confidence_prefixes['en'];
    11271154        } else {
     
    11341161                'es' => 'No estoy del todo seguro, pero según lo que encontré: ',
    11351162            );
    1136             $lang_code = strtolower( substr( $detected_language, 0, 2 ) );
     1163            $lang_code = $this->get_language_code( $detected_language );
    11371164            $confidence_prefix = $confidence_prefixes[ $lang_code ] ?? $confidence_prefixes['en'];
    11381165        }
    11391166
     1167        // Build language-aware default prompt
    11401168        $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)
    11451175        $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
    11461187        $system_prompt .= sprintf(
    11471188            "\n\n- The user's original query is '%s' and their language is %s. For semantic search, the query was translated to '%s'.",
     
    11511192        );
    11521193        $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 ) );
    11541195
    11551196        // Add confidence-based instruction
    11561197        if ( ! empty( $confidence_prefix ) ) {
    11571198            $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.";
    11581200        }
    11591201
    11601202        $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.";
    11621205
    11631206        $messages = array(
     
    13341377     */
    13351378    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;
    13481410    }
    13491411
  • promptor/trunk/public/assets/css/promptor-public.css

    r3438128 r3439442  
    317317.promptor-contact-form input[type="tel"],
    318318.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}
    321373
    322374/* ==========================================================================
  • promptor/trunk/public/assets/js/promptor-public.js

    r3438128 r3439442  
    268268        <div class="promptor-drawer-header">
    269269          <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>)
    271271          </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>
    273273        </div>
    274274        <div class="promptor-drawer-content">
    275275          <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>
    277277        </div>
    278278      </div>
     
    367367      // Determine intro text based on service count
    368368      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'));
    371371
    372372      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'))
    374374        : '';
    375375
     
    387387      let buttonText;
    388388      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'));
    390390      } else if (selectedCount === 1) {
    391         buttonText = esc(__('Request Quote', 'promptor'));
     391        buttonText = esc(i18n.requestQuote || __('Request Quote', 'promptor'));
    392392      } else {
    393         buttonText = esc(__('Request Quote for All', 'promptor'));
     393        buttonText = esc(i18n.requestQuoteForAll || __('Request Quote for All', 'promptor'));
    394394      }
    395395
     
    398398          <div class="promptor-message-bubble">
    399399            <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>
    401401            <p class="promptor-chips-container">${chipsHtml}</p>
    402402
     
    419419      $chatLog.find('.promptor-quote-form-fullwidth').remove();
    420420
    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'));
    426426
    427427      // List of services being requested
     
    431431        <div class="promptor-quote-form-fullwidth">
    432432          <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>
    435435            <ul class="promptor-services-list">${servicesList}</ul>
    436436            <form class="promptor-contact-form promptor-drawer-form" data-type="drawer-inquiry" novalidate>
     
    833833      let buttonText;
    834834      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'));
    836836        $button.prop('disabled', true);
    837837      } else if (selectedCount === 1) {
    838         buttonText = esc(__('Request Quote', 'promptor'));
     838        buttonText = esc(i18n.requestQuote || __('Request Quote', 'promptor'));
    839839        $button.prop('disabled', false);
    840840      } else {
    841         buttonText = esc(__('Request Quote for All', 'promptor'));
     841        buttonText = esc(i18n.requestQuoteForAll || __('Request Quote for All', 'promptor'));
    842842        $button.prop('disabled', false);
    843843      }
     
    975975    $app.on('click', '.promptor-new-conversation-btn', function () {
    976976      // 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');
    978978
    979979      if (confirm(confirmMsg)) {
  • promptor/trunk/public/class-promptor-public.php

    r3438128 r3439442  
    172172        );
    173173
    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.
    177177
    178178        self::$assets_enqueued = true;
     
    285285                ),
    286286                'i18n'                       => array(
     287                    // Cart & Feedback
    287288                    'addToCart'    => __( 'Add to Cart', 'promptor' ),
    288289                    'isHelpful'    => __( 'Is this conversation helpful so far?', 'promptor' ),
     
    290291                    'badResponse'  => __( 'Bad response', 'promptor' ),
    291292                    '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' ),
    292347                ),
    293348            )
  • promptor/trunk/readme.txt

    r3438128 r3439442  
    55Tested up to: 6.9
    66Requires PHP: 7.4
    7 Stable tag: 1.1.0
     7Stable tag: 1.1.1
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    9393== Changelog ==
    9494
     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
    95105= 1.1.0 =
    96106* **NEW:** Conversation Memory - Chat history persists across page navigations (WOW moment!)
     
    137147== Upgrade Notice ==
    138148
     149= 1.1.1 =
     150Critical translation fix! All UI text now translates correctly. Improved translation system works reliably across all WordPress configurations. Highly recommended for multilingual sites.
     151
    139152= 1.1.0 =
    140153Major 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  
    11<?php
    22/**
    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.
    47 *
    58 * @package Promptor
     9 * @since 1.1.0
    610 */
    711
    8 if ( ! defined('WP_UNINSTALL_PLUGIN') ) {
    9     exit;
     12// Exit if accessed directly or not during uninstall process
     13if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
     14    exit;
    1015}
    1116
    1217global $wpdb;
    1318
    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);
    1725
    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');
     26foreach ( $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}`" );
    6429}
    6530
     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_%'" );
    6634
    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_%'" );
    6938
    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_%'" );
    8542
    86     delete_site_transient('promptor_license_status_check');
    87     wp_cache_delete('promptor_license_status_check', 'site-transient');
     43// 5. Clear any remaining cache
     44wp_cache_flush();
    8845
    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)
     47if ( function_exists( 'promptor_fs' ) ) {
     48    // Let Freemius handle its own cleanup
     49    // Freemius SDK will clean up its own options automatically
    10350}
    10451
    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)
     53if ( 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.' );
    12556}
Note: See TracChangeset for help on using the changeset viewer.