| 1 |
<?php |
| 2 |
/** |
| 3 |
* @package FireBox |
| 4 |
* @version 3.1.13 Free |
| 5 |
* |
| 6 |
* @author FirePlugins <info@fireplugins.com> |
| 7 |
* @link https://www.fireplugins.com |
| 8 |
* @copyright Copyright © 2026 FirePlugins All Rights Reserved |
| 9 |
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later |
| 10 |
*/ |
| 11 |
|
| 12 |
namespace FireBox\Core\Libs; |
| 13 |
|
| 14 |
if (!defined('ABSPATH')) |
| 15 |
{ |
| 16 |
exit; // Exit if accessed directly. |
| 17 |
} |
| 18 |
|
| 19 |
class Translations |
| 20 |
{ |
| 21 |
/** |
| 22 |
* Holds all translations of the plugin. |
| 23 |
* |
| 24 |
* @var array |
| 25 |
*/ |
| 26 |
private $translations = []; |
| 27 |
|
| 28 |
/** |
| 29 |
* Stores cached translations. |
| 30 |
* |
| 31 |
* @var array |
| 32 |
*/ |
| 33 |
private $cached = []; |
| 34 |
|
| 35 |
public function __construct() |
| 36 |
{ |
| 37 |
$this->translations = $this->getTranslations(); |
| 38 |
} |
| 39 |
|
| 40 |
/** |
| 41 |
* Retrieves the translation of $text |
| 42 |
* |
| 43 |
* @param String $text |
| 44 |
* @param String $fallback |
| 45 |
* |
| 46 |
* @return String |
| 47 |
*/ |
| 48 |
public function _($text, $fallback = null) |
| 49 |
{ |
| 50 |
if (!is_string($text) && !is_int($text)) |
| 51 |
{ |
| 52 |
return ''; |
| 53 |
} |
| 54 |
|
| 55 |
if (isset($this->cached[$text])) |
| 56 |
{ |
| 57 |
return $this->cached[$text]; |
| 58 |
} |
| 59 |
|
| 60 |
if ($fallback && isset($this->cached[$fallback])) |
| 61 |
{ |
| 62 |
return $this->cached[$fallback]; |
| 63 |
} |
| 64 |
|
| 65 |
if ($translation = $this->retrieve($text, $fallback)) |
| 66 |
{ |
| 67 |
$this->cached[$translation['source']] = $translation['value']; |
| 68 |
|
| 69 |
return $translation['value']; |
| 70 |
} |
| 71 |
|
| 72 |
return $fallback ? trim($fallback) : trim($text); |
| 73 |
} |
| 74 |
|
| 75 |
/** |
| 76 |
* Retrieves translation of given text or of fallback text. |
| 77 |
* If none found, returns false |
| 78 |
* |
| 79 |
* @param string $text |
| 80 |
* @param string $fallback |
| 81 |
* |
| 82 |
* @return mixed |
| 83 |
*/ |
| 84 |
public function retrieve($text, $fallback = '') |
| 85 |
{ |
| 86 |
if (!is_string($text) && !is_numeric($text)) |
| 87 |
{ |
| 88 |
return ''; |
| 89 |
} |
| 90 |
|
| 91 |
$translationOfText = $this->findText($text); |
| 92 |
if ($translationOfText !== false) |
| 93 |
{ |
| 94 |
return [ |
| 95 |
'source' => $text, |
| 96 |
'value' => $translationOfText |
| 97 |
]; |
| 98 |
} |
| 99 |
|
| 100 |
$fallback = !empty($fallback) ? $fallback : $text; |
| 101 |
|
| 102 |
$translationOfFallback = $this->findText($fallback); |
| 103 |
if ($translationOfFallback !== false) |
| 104 |
{ |
| 105 |
return [ |
| 106 |
'source' => $fallback, |
| 107 |
'value' => $translationOfFallback |
| 108 |
]; |
| 109 |
} |
| 110 |
|
| 111 |
return false; |
| 112 |
} |
| 113 |
|
| 114 |
/** |
| 115 |
* Tries to find translation of text. Returns false if fails. |
| 116 |
* |
| 117 |
* @param string $text |
| 118 |
* |
| 119 |
* @return mixed |
| 120 |
*/ |
| 121 |
private function findText($text) |
| 122 |
{ |
| 123 |
return isset($this->translations[strtoupper(trim($text))]) ? $this->translations[strtoupper(trim($text))] : false; |
| 124 |
} |
| 125 |
|
| 126 |
/** |
| 127 |
* All Translations |
| 128 |
* |
| 129 |
* @return array |
| 130 |
*/ |
| 131 |
public function getTranslations() |
| 132 |
{ |
| 133 |
return [ |
| 134 |
'FB_PLUGIN_NAME' => __('FireBox', 'firebox'), |
| 135 |
'FB_ADD_FIREBOX' => __('Add FireBox', 'firebox'), |
| 136 |
'FB_ADD_BUTTON' => __('Add Button', 'firebox'), |
| 137 |
'FB_PLUGIN_PLULAR_NAME' => __('Campaigns', 'firebox'), |
| 138 |
'FB_NEW_CAMPAIGN' => __('New Campaign', 'firebox'), |
| 139 |
'FB_SETTINGS_PAGE_TITLE' => __('FireBox Settings', 'firebox'), |
| 140 |
'FB_SETTINGS_SHOW_COPYRIGHT' => __('Show Copyright', 'firebox'), |
| 141 |
'FB_SETTINGS_SHOW_COPYRIGHT_DESC' => __('If selected, extra copyright info will be displayed in the admin pages.', 'firebox'), |
| 142 |
'FB_SETTINGS_DEBUG' => __('Debug', 'firebox'), |
| 143 |
'FB_SETTINGS_DEBUG_DESC' => __('Debug plugin using your browser\'s Developers Console (Press F12).', 'firebox'), |
| 144 |
'FB_SETTINGS_ANALYTICS' => __('Analytics', 'firebox'), |
| 145 |
'FB_SETTINGS_ANALYTICS_DESC' => __('Log the data of your campaigns to the database. Note that deleted data, won\'t appear in the Analytics page.', 'firebox'), |
| 146 |
'FB_SETTINGS_STATS_PERIOD' => __('Maximum Storage Period', 'firebox'), |
| 147 |
'FB_SETTINGS_STATS_PERIOD_DESC' => __('Automatically delete old campaign data after a period.', 'firebox'), |
| 148 |
'FB_SETTINGS_GAT' => __('Google Analytics Tracking', 'firebox'), |
| 149 |
'FB_SETTINGS_GAT_DESC' => __('FireBox will automatically track your campaigns data with your Google Analytics ID. The events which will be tracked is the Open and Close events. Note that you will need to have Google Analytics set up already on your site.', 'firebox'), |
| 150 |
'FB_DUPLICATE_CAMPAIGN' => __('Duplicate Campaign', 'firebox'), |
| 151 |
'FB_CAMPAIGN_LIBRARY' => __('FireBox Campaign Library', 'firebox'), |
| 152 |
'FB_HIDDEN_BY_COOKIE' => __('Hidden by cookie', 'firebox'), |
| 153 |
'FB_CLEAR_COOKIE' => __('Clear Cookie', 'firebox'), |
| 154 |
'FB_USERNAME_OR_EMAIL_ADDRESS' => __('Username or Email Address', 'firebox'), |
| 155 |
'FB_CAMPAIGN_IMPORT_CONTENTS_ERROR' => __('Campaign Import could not be completed successfully. It appears it contains invalid data.', 'firebox'), |
| 156 |
'FB_LAST_7_DAYS' => __('Last 7 days', 'firebox'), |
| 157 |
'FB_MONTH_TO_DATE' => __('Month to Date', 'firebox'), |
| 158 |
'FB_YEAR_TO_DATE' => __('Year to Date', 'firebox'), |
| 159 |
'FB_ANALYTICS_PAGE_TITLE' => __('FireBox Analytics', 'firebox'), |
| 160 |
'FB_TOP_CAMPAIGNS' => __('Top Campaigns', 'firebox'), |
| 161 |
'FB_ALL_CAMPAIGNS' => __('All Campaigns', 'firebox'), |
| 162 |
'FB_SETTINGS_MEDIA_DESC' => __('Set whether to enable the FireBox CSS library as well as whether to load the campaign animations.', 'firebox'), |
| 163 |
'FB_SETTINGS_OTHER_DESC' => __('Set whether to display the copyright message or whether to enable the debug mode.', 'firebox'), |
| 164 |
'FB_PREVIEW' => __('Preview', 'firebox'), |
| 165 |
'FB_VIEW_CAMPAIGN' => __('View Campaign', 'firebox'), |
| 166 |
'FB_VIEW_CAMPAIGNS' => __('View Campaigns', 'firebox'), |
| 167 |
'FB_FIREBOX_PREVIEW_DESC' => __('This is a preview of how your FireBox campaign will look like in a page. This page is not publicly accessible.', 'firebox'), |
| 168 |
'FB_FIREBOX_CAMPAIGN_PREVIEW' => __('FireBox Campaign Preview', 'firebox'), |
| 169 |
'FB_CAMPAIGN_TYPE' => __('Campaign Type', 'firebox'), |
| 170 |
'FB_SETTINGS_SHOW_ADMIN_BAR_MENU_ITEM' => __('Show Admin Bar Menu Item', 'firebox'), |
| 171 |
'FB_SETTINGS_SHOW_ADMIN_BAR_MENU_ITEM_DESC' => __('Set whether to show the FireBox menu item in the admin bar, at the top of the page. This adds helpful links to get you to the most used pages of the FireBox plugin.', 'firebox'), |
| 172 |
'FB_SUBMISSION_CONFIRMED' => __('Confirmed', 'firebox'), |
| 173 |
'FB_SUBMISSION_UNCONFIRMED' => __('Unconfirmed', 'firebox'), |
| 174 |
'FB_SUBMISSIONS_PAGE_TITLE' => __('FireBox Submissions', 'firebox'), |
| 175 |
'FB_NO_SUBMISSIONS_FOUND' => __('No submissions found.', 'firebox'), |
| 176 |
'FB_DATE_SUBMITTED' => __('Date Submitted', 'firebox'), |
| 177 |
'FB_PLEASE_SELECT_A_FORM_CAMPAIGN' => __('- Please select a form campaign -', 'firebox'), |
| 178 |
'FB_CANNOT_UPDATE_SUBMISSION' => __('Cannot update submission', 'firebox'), |
| 179 |
'FB_THIS_IS_A_REQUIRED_FIELD' => __('This is a required field.', 'firebox'), |
| 180 |
'FB_FORM_ERROR_INVALID_RATING' => __('Please enter a valid rating.', 'firebox'), |
| 181 |
'FB_USER_SUBMITTED_DATA' => __('User Submitted Data', 'firebox'), |
| 182 |
'FB_SUBMISSION_INFO' => __('Submission Info', 'firebox'), |
| 183 |
'FB_UPDATE_SUBMISSION' => __('Update Submission', 'firebox'), |
| 184 |
'FB_BACK_TO_SUBMISSIONS' => __('Back to submissions', 'firebox'), |
| 185 |
'FB_FORM' => __('Form', 'firebox'), |
| 186 |
'FB_CREATED_DATE' => __('Created Date', 'firebox'), |
| 187 |
'FB_MODIFIED_DATE' => __('Modified Date', 'firebox'), |
| 188 |
'FB_SUBMISSIONS_UPDATED' => __('Submissions updated.', 'firebox'), |
| 189 |
'FB_HONEYPOT_FIELD_TRIGGERED' => __('Honeypot field triggered.', 'firebox'), |
| 190 |
'FB_FORM_TOO_MANY_SUBMISSIONS' => __('Too many submissions. Please wait a moment and try again.', 'firebox'), |
| 191 |
'FB_FORM_CANNOT_VERIFY_REQUEST' => __('Cannot verify request.', 'firebox'), |
| 192 |
'FB_FORM_SUBMIT_FAILED' => __('Something went wrong. Please try again.', 'firebox'), |
| 193 |
/* translators: %s: The invalid Reply-To email address. */ |
| 194 |
'FB_FORM_ERROR_REPLY_TO_EMAIL_IS_INVALID' => __('The Reply-To email address "%s" is invalid.', 'firebox'), |
| 195 |
'FB_CONVERSION_RATE_TOOLTIP' => __('<strong>Conversion Rate</strong> is the average number of conversion per the Gutenberg block "FireBox Form", shown as a percentage.', 'firebox'), |
| 196 |
'FB_JSON_API' => __('JSON API', 'firebox'), |
| 197 |
'FB_JSON_API_DESC' => __('The JSON API allows you to retrieve FireBox data using HTTP requests.', 'firebox'), |
| 198 |
'FB_ENABLE_JSON_API' => __('Enable JSON API', 'firebox'), |
| 199 |
'FB_ENABLE_JSON_API_DESC' => __('Set whether to enable the FireBox API endpoints.', 'firebox'), |
| 200 |
'FB_API_PASSWORD' => __('Password', 'firebox'), |
| 201 |
'FB_API_PASSWORD_DESC' => __('Enter a unique alphanumeric that will act as the password that will be used to authenticate all FireBox API requests.', 'firebox'), |
| 202 |
'FB_CAMPAIGNS' => __('Campaigns', 'firebox'), |
| 203 |
'FB_RECENT_CAMPAIGNS' => __('Recent Campaigns', 'firebox'), |
| 204 |
'FB_FIREBOX_CAMPAIGNS' => __('FireBox Campaigns', 'firebox'), |
| 205 |
'FB_IMPORT_CAMPAIGNS' => __('Import Campaigns', 'firebox'), |
| 206 |
'FB_PUBLISH_CAMPAIGNS' => __('Publish Campaigns', 'firebox'), |
| 207 |
'FB_UNTITLED_CAMPAIGN' => __('Untitled Campaign', 'firebox'), |
| 208 |
/* translators: %s: total campaigns that have been published */ |
| 209 |
'FB_X_CAMPAIGNS_HAVE_BEEN_PUBLISHED' => __('%s campaign(s) have been published.', 'firebox'), |
| 210 |
/* translators: %s: total campaigns that have been unpublished */ |
| 211 |
'FB_X_CAMPAIGNS_HAVE_BEEN_UNPUBLISHED' => __('%s campaign(s) have been unpublished.', 'firebox'), |
| 212 |
/* translators: %s: total campaigns that have been deleted */ |
| 213 |
'FB_X_CAMPAIGNS_HAVE_BEEN_DELETED' => __('%s campaign(s) have been deleted.', 'firebox'), |
| 214 |
/* translators: %s: total campaigns that have been exported */ |
| 215 |
'FB_X_CAMPAIGNS_HAVE_BEEN_EXPORTED' => __('%s campaign(s) have been exported.', 'firebox'), |
| 216 |
/* translators: %s: total campaigns stats that have been reset */ |
| 217 |
'FB_X_CAMPAIGNS_HAVE_BEEN_RESET' => __('%s campaign(s) stats have been reset.', 'firebox'), |
| 218 |
'FB_CAMPAIGN_DUPLICATED' => __('Campaign has been duplicated.', 'firebox'), |
| 219 |
'FB_NO_CAMPAIGNS_SELECTED' => __('No campaigns were selected.', 'firebox'), |
| 220 |
'FB_INVALID_STATUS' => __('Invalid status.', 'firebox'), |
| 221 |
/* translators: %s: campaign ID */ |
| 222 |
'FB_INVALID_CAMPAIGN_ID' => __('Invalid campaign ID: %s', 'firebox'), |
| 223 |
'FB_CAMPAIGNS_ACTION_FORBIDDEN' => __('You are not allowed to perform this action on one or more of the selected campaigns.', 'firebox'), |
| 224 |
'FB_CAMPAIGN_DUPLICATION_FAILED' => __('Campaign duplication failed.', 'firebox'), |
| 225 |
'FB_CAMPAIGN_EXPORT_FAILED' => __('Campaign export failed.', 'firebox'), |
| 226 |
'FB_CAMPAIGN_INFO' => __('Campaign info', 'firebox'), |
| 227 |
'FB_EDIT_CAMPAIGN' => __('Edit Campaign', 'firebox'), |
| 228 |
'FB_LAST_VIEWED' => __('Last Viewed', 'firebox'), |
| 229 |
'FB_ACTIVE' => __('Active', 'firebox'), |
| 230 |
'FB_CONVERSION' => __('Conversion', 'firebox'), |
| 231 |
'FB_CONVERSIONS' => __('Conversions', 'firebox'), |
| 232 |
'FB_CAMPAIGN' => __('Campaign', 'firebox'), |
| 233 |
'FB_CONVERSION_RATE' => __('Conversion Rate', 'firebox'), |
| 234 |
'FB_NO_DATA_AVAILABLE' => __('No data available.', 'firebox'), |
| 235 |
'FB_COULDNT_LOAD_DATA' => __('Couldn\'t load this data.', 'firebox'), |
| 236 |
'FB_TRY_AGAIN' => __('Try again', 'firebox'), |
| 237 |
'FB_DISMISS' => __('Dismiss', 'firebox'), |
| 238 |
'FB_VIEW' => __('View', 'firebox'), |
| 239 |
'FB_VIEWS' => __('Views', 'firebox'), |
| 240 |
'FB_PERCENTAGE_DIFFERENCE_AGAINST_PREVIOUS_PERIOD' => __('Percentage difference against previous period', 'firebox'), |
| 241 |
'FB_NO_CAMPAIGN_DATA_FOUND' => __('No campaign data found.', 'firebox'), |
| 242 |
'FB_MOST_POPULAR_CAMPAIGNS' => __('Most Popular Campaigns', 'firebox'), |
| 243 |
'FB_ALL_DAYS' => __('All Days', 'firebox'), |
| 244 |
'FB_MONDAY' => __('Monday', 'firebox'), |
| 245 |
'FB_TUESDAY' => __('Tuesday', 'firebox'), |
| 246 |
'FB_WEDNESDAY' => __('Wednesday', 'firebox'), |
| 247 |
'FB_THURSDAY' => __('Thursday', 'firebox'), |
| 248 |
'FB_FRIDAY' => __('Friday', 'firebox'), |
| 249 |
'FB_SATURDAY' => __('Saturday', 'firebox'), |
| 250 |
'FB_SUNDAY' => __('Sunday', 'firebox'), |
| 251 |
'FB_VIEW_HOURS' => __('View Hours', 'firebox'), |
| 252 |
'FB_ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_CAMPAIGN' => __('Are you sure you want to delete this campaign?', 'firebox'), |
| 253 |
'FB_VIEW_ALL' => __('View All', 'firebox'), |
| 254 |
'FB_YOU_HAVENT_CREATED_ANY_CAMPAIGNS_YET' => __('You haven’t created any campaigns yet.', 'firebox'), |
| 255 |
'FB_NUMBER_OF_VIEWS_IN_THE_LAST_30_DAYS' => __('Number of views in the last 30 days', 'firebox'), |
| 256 |
'FB_NUMBER_OF_CONVERSIONS_IN_THE_LAST_30_DAYS' => __('Number of conversions in the last 30 days', 'firebox'), |
| 257 |
'FB_CONVERSION_RATE_IN_THE_LAST_30_DAYS' => __('Conversion rate in the last 30 days', 'firebox'), |
| 258 |
'FB_LOADING_CAMPAIGNS' => __('Loading Campaigns...', 'firebox'), |
| 259 |
'FB_NO_CAMPAIGNS_FOUND' => __('No campaigns found.', 'firebox'), |
| 260 |
'FB_SEARCH_DOTS' => __('Search...', 'firebox'), |
| 261 |
'FB_TODAY' => __('Today', 'firebox'), |
| 262 |
'FB_YESTERDAY' => __('Yesterday', 'firebox'), |
| 263 |
'FB_LAST_30_DAYS' => __('Last 30 Days', 'firebox'), |
| 264 |
'FB_LAST_WEEK' => __('Last Week', 'firebox'), |
| 265 |
'FB_LAST_MONTH' => __('Last Month', 'firebox'), |
| 266 |
'FB_CUSTOM' => __('Custom', 'firebox'), |
| 267 |
'FB_READ_MORE' => __('Read More', 'firebox'), |
| 268 |
'FB_AVG_TIME_OPEN' => __('Avg Time Open', 'firebox'), |
| 269 |
'FB_CONVERSION_RATE_TOOLTIP_DESC' => __('The percentage of views that resulted in conversions. Calculated by dividing total conversions by total views, showing how effective your campaigns are at converting viewers into engaged users.', 'firebox'), |
| 270 |
'FB_CONVERSIONS_TOOLTIP_DESC' => __('The total user interactions, including form submissions and clicks on campaign elements, indicating successful engagement.', 'firebox'), |
| 271 |
'FB_VS_PREVIOUS_PERIOD' => __('vs previous period', 'firebox'), |
| 272 |
'FB_VIEWS_TOOLTIP_DESC' => __('The number of times a campaign has been displayed to your users on your site.', 'firebox'), |
| 273 |
'FB_CLICK' => __('Click', 'firebox'), |
| 274 |
'FB_CLICKS' => __('Clicks', 'firebox'), |
| 275 |
'FB_NO' => __('No', 'firebox'), |
| 276 |
'FB_DATA_AVAILABLE' => __('data available', 'firebox'), |
| 277 |
'FB_PERFORMANCE' => __('Performance', 'firebox'), |
| 278 |
'FB_SALES_FUNNEL' => __('Sales Funnel Analysis', 'firebox'), |
| 279 |
'FB_SALES_FUNNEL_LOCKED_COPY' => __('See exactly where visitors lose interest and leave. Track their journey from first view to final purchase, then optimize each step to increase sales.', 'firebox'), |
| 280 |
'FB_INTERACTIONS' => __('Interactions', 'firebox'), |
| 281 |
'FB_PURCHASE' => __('Purchase', 'firebox'), |
| 282 |
'FB_PURCHASES' => __('Purchases', 'firebox'), |
| 283 |
'FB_FUNNEL_VISUALIZATION' => __('Funnel Visualization', 'firebox'), |
| 284 |
'FB_OVERALL_CONVERSION_RATE' => __('Overall Conversion Rate', 'firebox'), |
| 285 |
'FB_REVENUE_CONVERSIONS' => __('revenue conversions', 'firebox'), |
| 286 |
'FB_FROM' => __('from', 'firebox'), |
| 287 |
'FB_OF' => __('of', 'firebox'), |
| 288 |
'FB_USERS' => __('users', 'firebox'), |
| 289 |
'FB_TOTAL' => __('total', 'firebox'), |
| 290 |
'FB_TOTAL_POPUP_IMPRESSIONS' => __('Total popup impressions', 'firebox'), |
| 291 |
'FB_TRENDING_TEMPLATES' => __('Trending Templates', 'firebox'), |
| 292 |
'FB_THERE_ARE_NO_TRENDING_TEMPLATES_TO_SHOW' => __('There are no trending templates to show.', 'firebox'), |
| 293 |
'FB_INSERT_TEMPLATE' => __('Insert Template', 'firebox'), |
| 294 |
'FB_INSERT' => __('Insert', 'firebox'), |
| 295 |
'FB_VIEW_ALL_ANALYTICS' => __('View All Analytics', 'firebox'), |
| 296 |
'FB_DAILY' => __('Daily', 'firebox'), |
| 297 |
'FB_WEEKLY' => __('Weekly', 'firebox'), |
| 298 |
'FB_MONTHLY' => __('Monthly', 'firebox'), |
| 299 |
'FB_ACTIONS' => __('Actions', 'firebox'), |
| 300 |
'FB_LOADING_DASHBOARD' => __('Loading Dashboard...', 'firebox'), |
| 301 |
'FB_LOADING_ANALYTICS' => __('Loading Analytics...', 'firebox'), |
| 302 |
'FB_UPGRADE_20_OFF' => __('Get FireBox Pro For 20% OFF!', 'firebox'), |
| 303 |
'FB_SHOWING_TOP_30_RESULTS' => __('Showing top 30 results.', 'firebox'), |
| 304 |
'FB_VIEW_CAMPAIGN_ANALYTICS' => __('View campaign analytics', 'firebox'), |
| 305 |
'FB_DAY_OF_THE_WEEK' => __('Day of the week', 'firebox'), |
| 306 |
'FB_GOOGLE_ANALYTICS_INTEGRATION_LABEL_DESC' => __('FireBox will automatically sync data to your Google Analytics account.', 'firebox'), |
| 307 |
'FB_VIEW_ANALYTICS_OF_CAMPAIGN' => __('View Analytics of campaign.', 'firebox'), |
| 308 |
'FB_PHPSCRIPTS' => __('PHP Scripts', 'firebox'), |
| 309 |
'FB_PHPSCRIPTS_SETTINGS_DESC' => __('Set whether to enable the <a href="https://www.fireplugins.com/docs/developers/php-scripts/" target="_blank">PHP Scripts</a> section when editing a campaign, allowing you execute PHP code in various events such as before/after popup renders, on open/close or form submission.', 'firebox'), |
| 310 |
'FB_ENABLE_PHPSCRIPTS' => __('Enable PHP Scripts', 'firebox'), |
| 311 |
'FB_ENABLE_PHPSCRIPTS_DESC' => __('Set whether to enable PHP Scripts.', 'firebox'), |
| 312 |
/* translators: %s: field name */ |
| 313 |
'FB_X_FIELD' => __('%s Field', 'firebox'), |
| 314 |
'FB_VALIDATION_ERRORS' => __('Validation errors', 'firebox'), |
| 315 |
'FB_CHOICE_LABEL' => __('Choice Label', 'firebox'), |
| 316 |
'FB_FORM_DETAILS_NOT_FOUND' => __('Form details not found due to form being deleted.', 'firebox'), |
| 317 |
'FB_NO_MORE_FORMS' => __('No more forms available.', 'firebox'), |
| 318 |
'FB_NO_FORMS_FOR_IDS' => __('No forms found for the given IDs.', 'firebox'), |
| 319 |
'FB_NO_FORMS_MATCH_QUERY' => __('No forms match your query.', 'firebox'), |
| 320 |
'FB_SUBMISSION_UPDATED' => __('Submission updated.', 'firebox'), |
| 321 |
'FB_USAGE_TRACKING' => __('Usage Tracking', 'firebox'), |
| 322 |
'FB_USAGE_TRACKING_DESC' => __('You can help shape FireBox by providing us with usage data about how you use our plugin.', 'firebox'), |
| 323 |
'FB_ALLOW_USAGE_TRACKING' => __('Allow Usage Tracking', 'firebox'), |
| 324 |
/* translators: %s: Documentation url */ |
| 325 |
'FB_ALLOW_USAGE_TRACKING_DESC' => __('Allow FireBox to collect and send usage data to help improve the plugin. <a href="%s" target="_blank">Learn more</a>', 'firebox'), |
| 326 |
'FB_NOTICE_IS_OUTDATED' => __('FireBox is Outdated', 'firebox'), |
| 327 |
/* translators: %d: How long the plugin has been oudated for, documentation url */ |
| 328 |
'FB_NOTICE_OUTDATED_EXTENSION' => __('Your version of FireBox is over %1$d days old and may contain bugs and security issues. Update now to the latest version to ensure optimal performance and security. <a href="%2$s" target="_blank">View Changelog</a>', 'firebox'), |
| 329 |
'FB_UPDATE_NOW' => __('Update Now', 'firebox'), |
| 330 |
/* translators: %s: plugin version, plugin release date */ |
| 331 |
'FB_NEW_VERSION_IS_AVAILABLE_DESC' => __('There\'s a new version of FireBox (v%1$s) released on %2$s. Update now to benefit from new features and bug fixes. <a href="%3$s" target="_blank">View Changelog</a>', 'firebox'), |
| 332 |
/* translators: %s: plugin version */ |
| 333 |
'FB_YOUR_USING_VERSION' => __('You\'re using %s', 'firebox'), |
| 334 |
'FB_VIEW_CHANGELOG' => __('View Changelog', 'firebox'), |
| 335 |
/* translators: %s: documentation url */ |
| 336 |
'FB_NOTICE_GEO_MAINTENANCE_DESC' => __('FireBox finds the Country of your visitor using the MaxMind GeoLite2 Country database which needs to be updated at least once every 3 months. <a href="%s" target="_blank">Read more</a>', 'firebox'), |
| 337 |
'FB_NOTICE_UPGRADE_TO_PRO_TOOLTIP' => __('You will be redirected to the pricing page with the 20% discount already applied.<br /><br />After the payment is complete you can access the Pro files on your Downloads page. To complete the upgrade, download the Pro installation zip file and install it over the free version.<br /><br />Note: You do not have to uninstall the free version first. All your content, settings will remain as it is even after switching to the Pro version. You don\'t need to redo what you have already built with the free version.', 'firebox'), |
| 338 |
/* translators: %s: discount percentage */ |
| 339 |
'FB_UPGRADE_TO_PRO_X_OFF' => __('Upgrade to PRO %s%% OFF', 'firebox'), |
| 340 |
'FB_UPGRADE_TO_PRO_NOTICE_DESC' => __('FireBox Lite only scratches the surface of what\'s possible. Upgade to PRO to unlock the full functionality.', 'firebox'), |
| 341 |
'FB_IS_MISSING' => __('Is Missing', 'firebox'), |
| 342 |
'FB_IS_INVALID' => __('Is Invalid', 'firebox'), |
| 343 |
/* translators: %s: type download key status, documentation url */ |
| 344 |
'FB_DOWNLOAD_KEY_MISSING_DESC' => __('To be able to receive updates and unlock all FireBox features you will need to enter %1$s download key. <a href="%2$s" target="_blank">Find my license key</a>', 'firebox'), |
| 345 |
/* translators: %s: download key status */ |
| 346 |
'FB_DOWNLOAD_KEY_TEXT' => __('Download Key %s', 'firebox'), |
| 347 |
'FB_YOUR' => __('your', 'firebox'), |
| 348 |
'FB_A_VALID' => __('a valid', 'firebox'), |
| 349 |
'FB_ENTER_YOUR_DOWNLOAD_KEY' => __('Enter your Download Key', 'firebox'), |
| 350 |
'FB_LICENSE_ACTIVATION_SUCCESS' => __('License Key Activated!', 'firebox'), |
| 351 |
'FB_DOWNLOAD_KEY_ENTERED_INVALID' => __('Download Key entered is invalid', 'firebox'), |
| 352 |
'FB_NOTICE_EXPIRED_TOOLTIP' => __('You will be redirected to your Subscriptions page where you will be asked to log into your account. There you will be able to view an overview of your subscriptions.<br /><br />Click Renew next to the expired subscription to renew 15% OFF.<br /><br />Note: The 15% discount is automatically applied on the checkout page.', 'firebox'), |
| 353 |
'FB_NOTICE_EXPIRING_TOOLTIP' => __('You will be redirected to your Subscriptions page and asked to log in. There, you can view your subscription overview. If a subscription is not active, click the \'Reactivate\' button next to it to restore access.', 'firebox'), |
| 354 |
'FB_FIREBOX_WILL_RENEW_SOON' => __('Your FireBox Subscription is Renewing Soon', 'firebox'), |
| 355 |
/* translators: %s: plan name, expiring date */ |
| 356 |
'FB_FIREBOX_EXPIRING_DESC' => __('Your FireBox %1$s subscription will renew automatically on %2$s. No action is needed to maintain uninterrupted access to premium features, updates, and priority support.', 'firebox'), |
| 357 |
/* translators: %s: discount percentage */ |
| 358 |
'FB_REACTIVATE_X_PERCENT_OFF' => __('Reactivate %s%% OFF', 'firebox'), |
| 359 |
'FB_ENABLE_AUTO_RENEW' => __('Enable Auto-Renew', 'firebox'), |
| 360 |
'FB_FIREBOX_EXPIRED' => __('FireBox Expired', 'firebox'), |
| 361 |
/* translators: %s: plan name, expired date */ |
| 362 |
'FB_FIREBOX_EXPIRED_DESC' => __('Your FireBox %1$s subscription expired on %2$s. Reactivate today and save 15%% to re-activate access to PRO files, updates and high priority support.', 'firebox'), |
| 363 |
'FB_RATE_FIREBOX' => __('Rate FireBox', 'firebox'), |
| 364 |
'FB_RATE_NOTICE_EXTENSION_DESC' => __('It\'s great to see you have FireBox active for a few days now. Let\'s spread the word and boost our motivation by writing a 5-star review. <a href="#" class="firebox-notice-rate-already-rated">I already did</a>', 'firebox'), |
| 365 |
'FB_I_ALREADY_DID' => __('I already did', 'firebox'), |
| 366 |
'FB_WRITE_REVIEW' => __('Write Review', 'firebox'), |
| 367 |
'FB_CAMPAIGN_HAS_BEEN_TRASHED' => __('Campaign has been trashed.', 'firebox'), |
| 368 |
'FB_CAMPAIGN_HAS_BEEN_RESTORED' => __('Campaign has been restored.', 'firebox'), |
| 369 |
'FB_CLOSE_ON_ESC' => __('Close with ESC key', 'firebox'), |
| 370 |
'FB_CLOSE_ON_ESC_DESC' => __('Enable to close the popup when the ESC key is pressed.', 'firebox'), |
| 371 |
'FB_UPGRADE_TO_FIREBOX_PRO' => __('Upgrade to FireBox Pro', 'firebox'), |
| 372 |
'FB_FIREBOX_UPDATE_AVAILABLE' => __('FireBox Update Available', 'firebox'), |
| 373 |
'FB_UPDATE_DATABASE' => __('Update Database', 'firebox'), |
| 374 |
'FB_PHONE_NUMBER_FIELD' => __('Phone Number', 'firebox'), |
| 375 |
'FB_PLEASE_ENTER_A_VALID_EMAIL_ADDRESS' => __('Please enter a valid email address.', 'firebox'), |
| 376 |
'FB_DATE_TIME_FIELD' => __('Date/Time', 'firebox'), |
| 377 |
'FB_SEARCH_CAMPAIGNS' => __('Search Campaigns', 'firebox'), |
| 378 |
'FB_FORM_ERROR_RECIPIENT_IS_MISSING' => __('Form error: Recipient is missing.', 'firebox'), |
| 379 |
/* translators: %s: email address */ |
| 380 |
'FB_FORM_ERROR_RECIPIENT_EMAIL_INVALID' => __('Form error: Recipient email is invalid: %s.', 'firebox'), |
| 381 |
'FB_FORM_ERROR_SUBJECT_IS_MISSING' => __('Form error: Subject is missing.', 'firebox'), |
| 382 |
'FB_FORM_ERROR_FROM_NAME_IS_MISSING' => __('Form error: From Name is missing.', 'firebox'), |
| 383 |
'FB_FORM_ERROR_FROM_EMAIL_IS_MISSING' => __('Form error: From Email is missing.', 'firebox'), |
| 384 |
/* translators: %s: email address */ |
| 385 |
'FB_FORM_ERROR_FROM_EMAIL_IS_INVALID' => __('Form error: From Email is invalid: %s.', 'firebox'), |
| 386 |
/* translators: %s: email address */ |
| 387 |
'FB_FORM_ERROR_CC_IS_INVALID' => __('Form error: CC is invalid: %s.', 'firebox'), |
| 388 |
/* translators: %s: email address */ |
| 389 |
'FB_FORM_ERROR_BCC_IS_INVALID' => __('Form error: BCC is invalid: %s.', 'firebox'), |
| 390 |
/* translators: %s: email attachment file path */ |
| 391 |
'FB_FORM_ERROR_ATTACHMENT_MISSING' => __('Form error: Attachment is missing: %s.', 'firebox'), |
| 392 |
'FB_FORM_ERROR_MESSAGE_MISSING' => __('Form error: Message is missing.', 'firebox'), |
| 393 |
/* translators: %s: Integration Name */ |
| 394 |
'FB_INTEGRATION_ERROR_NO_LIST_SELECTED' => __('%s error: No list has been selected.', 'firebox'), |
| 395 |
/* translators: %s: Integration Name */ |
| 396 |
'FB_INTEGRATION_ERROR_NO_API_KEY_SET' => __('%s error: No API KEY has been set.', 'firebox'), |
| 397 |
'FB_SETTINGS_INTEGRATIONS_DESC' => __('Connect your email marketing services once and reuse them in all FireBox forms.', 'firebox'), |
| 398 |
'FB_INTEGRATION_CONNECTED' => __('Connected', 'firebox'), |
| 399 |
'FB_INTEGRATION_DISCONNECTED' => __('Disconnected', 'firebox'), |
| 400 |
'FB_INTEGRATION_API_KEY' => __('API Key', 'firebox'), |
| 401 |
'FB_INTEGRATION_CONNECT' => __('Connect', 'firebox'), |
| 402 |
'FB_INTEGRATION_DISCONNECT' => __('Disconnect', 'firebox'), |
| 403 |
/* translators: %s: Integration name */ |
| 404 |
'FB_INTEGRATION_CONNECTED_SUCCESS' => __('%s connected successfully.', 'firebox'), |
| 405 |
'FB_INTEGRATION_CONNECT_FAILED' => __('The credentials could not be saved. Please try again.', 'firebox'), |
| 406 |
/* translators: %s: Integration name */ |
| 407 |
'FB_INTEGRATION_DISCONNECTED_SUCCESS' => __('%s disconnected successfully.', 'firebox'), |
| 408 |
'FB_INTEGRATION_ERROR_CONNECT' => __('Could not connect integration.', 'firebox'), |
| 409 |
'FB_INTEGRATION_ERROR_DISCONNECT' => __('Could not disconnect integration.', 'firebox'), |
| 410 |
/* translators: %s: Integration name */ |
| 411 |
'FB_INTEGRATION_CONNECTED_NO_LISTS_WARNING' => __('Connected to %s, but no lists were found in this account.', 'firebox'), |
| 412 |
/* translators: %s: Integration name */ |
| 413 |
'FB_INTEGRATION_CONNECT_FIRST_IN_SETTINGS' => __('To use %s, connect it first in FireBox Settings > Integrations.', 'firebox'), |
| 414 |
'FB_INTEGRATION_USING_LEGACY_KEY' => __('This form is using a legacy API key saved in this action.', 'firebox'), |
| 415 |
'FB_INTEGRATION_REMOVE_LEGACY_KEY' => __('Remove legacy API key', 'firebox'), |
| 416 |
'FB_INTEGRATION_CONNECTED_VIA_GLOBAL' => __('Connected via FireBox Settings > Integrations.', 'firebox'), |
| 417 |
/* translators: %s: Documentation URL */ |
| 418 |
'FB_CLOUDFLARE_TURNSTILE_DESC' => __('Configure Cloudflare Turnstile to protect your FireBox forms from spam.<br><br>To learn more about how Turnstile works, as well as a step by step setup guide, please read our <a href="%s" target="_blank">documentation</a>.', 'firebox'), |
| 419 |
'FB_SITE_KEY' => __('Site Key', 'firebox'), |
| 420 |
'FB_CLOUDFLARE_TURNSTILE_SITE_KEY_DESC' => __('Enter your Cloudflare Turnstile Site Key.', 'firebox'), |
| 421 |
'FB_SECRET_KEY' => __('Secret Key', 'firebox'), |
| 422 |
'FB_CLOUDFLARE_TURNSTILE_SECRET_KEY_DESC' => __('Enter your Cloudflare Turnstile Secret Key.', 'firebox'), |
| 423 |
'FB_USAGE_TRACKING_NOTICE_TITLE' => __('Help us improve FireBox', 'firebox'), |
| 424 |
/* translators: %s: Documentation URL */ |
| 425 |
'FB_USAGE_TRACKING_NOTICE_TITLE_DESC' => __('By allowing us to collect usage data, you help us understand how you use FireBox and how we can improve it. You can change this via our Settings page. <a href="%s" target="_blank">Learn more</a>', 'firebox'), |
| 426 |
'FB_ALLOW' => __('Allow', 'firebox'), |
| 427 |
'FB_ENTER_CLOUDFLARE_TURNSTILE_KEYS' => __('Please enter your Cloudflare Turnstile Site Key and Secret Key in the FireBox settings.', 'firebox'), |
| 428 |
/* translators: %s: Documentation URL */ |
| 429 |
'FB_HCAPTCHA_DESC' => __('Configure hCaptcha to protect your FireBox forms from spam.<br><br>To learn more about how hCaptcha works, as well as a step by step setup guide, please read our <a href="%s" target="_blank">documentation</a>.', 'firebox'), |
| 430 |
'FB_HCAPTCHA_SITE_KEY_DESC' => __('Enter your hCaptcha Site Key.', 'firebox'), |
| 431 |
'FB_HCAPTCHA_SECRET_KEY_DESC' => __('Enter your hCaptcha Secret Key.', 'firebox'), |
| 432 |
'FB_ENTER_HCAPTCHA_KEYS' => __('Please enter your hCaptcha Site Key and Secret Key in the FireBox settings.', 'firebox'), |
| 433 |
'FB_CLASSIC_EDITOR_NOT_SUPPORTED' => __('FireBox is a Gutenberg-based plugin and in order to edit a campaign, you must have the Classic Editor plugin disabled.', 'firebox'), |
| 434 |
'FB_EXPORT_SUBMISSIONS' => __('Export Submissions', 'firebox'), |
| 435 |
'FB_ADD_NEW_CAMPAIGN' => __('Add New Campaign', 'firebox'), |
| 436 |
'FB_OPEN_EVENT' => __('Open', 'firebox'), |
| 437 |
'FB_CLOSE_EVENT' => __('Close', 'firebox'), |
| 438 |
'FB_CONVERSION_EVENT' => __('Conversion', 'firebox'), |
| 439 |
'FB_REVENUE_IMPRESSION_EVENT' => __('View-Through Revenue', 'firebox'), |
| 440 |
'FB_VIEW_THROUGH_REVENUE' => __('View-Through Revenue', 'firebox'), |
| 441 |
'FB_REVENUE_CONVERSION_EVENT' => __('Conversion Revenue', 'firebox'), |
| 442 |
'FB_CONVERSION_THROUGH_REVENUE' => __('Conversion-Through Revenue', 'firebox'), |
| 443 |
'FB_REVENUE_ATTRIBUTION' => __('Revenue Attribution', 'firebox'), |
| 444 |
'FB_REVENUE_ATTRIBUTION_SECTION_DESC' => __('<a href="https://www.fireplugins.com/docs/revenue-attribution/revenue-attribution/" target="_blank">Revenue Attribution</a> helps you track the amount of revenue your campaigns have contributed to your eCommerce sales. Currently supports WooCommerce and Easy Digital Downloads, with more eCommerce solutions planned for future updates.', 'firebox'), |
| 445 |
'FB_REVENUE_ATTRIBUTION_AUTO_ENABLED_DESC' => __('Revenue Attribution will be automatically enabled when we detect your site runs WooCommerce or Easy Digital Downloads.', 'firebox'), |
| 446 |
'FB_REVENUE_ATTRIBUTION_DESC' => __('Enable Revenue Attribution to track and view the revenue contributed to your Ecommerce store by your campaigns.', 'firebox'), |
| 447 |
'FB_REVENUE' => __('Revenue', 'firebox'), |
| 448 |
'FB_REVENUE_TOOLTIP_DESC' => __('Total revenue attributed to FireBox campaigns including both view-through and conversion-through conversions.', 'firebox'), |
| 449 |
'FB_VIEW_THROUGH_REVENUE_TOOLTIP_DESC' => __('Revenue attributed to FireBox campaigns from customers who saw the campaign, did not directly convert from it, but later completed a purchase.', 'firebox'), |
| 450 |
'FB_CONVERSION_THROUGH_REVENUE_TOOLTIP_DESC' => __('Revenue attributed to FireBox campaigns from customers who saw and directly converted from the campaign and completed a purchase.', 'firebox'), |
| 451 |
'FB_REVENUE_ROI' => __('Revenue ROI', 'firebox'), |
| 452 |
'FB_REVENUE_ROI_TOOLTIP_TITLE' => __('Revenue ROI shows your return on investment vs your annual FireBox license cost.', 'firebox'), |
| 453 |
'FB_REVENUE_ROI_TOTAL_REVENUE_GENERATED' => __('Total Revenue Generated', 'firebox'), |
| 454 |
'FB_REVENUE_ROI_LITE_MESSAGE' => __('This shows the ROI you could achieve with FireBox Pro features.', 'firebox'), |
| 455 |
'FB_REVENUE_ROI_PRO_MESSAGE' => __('This demonstrates the value FireBox has delivered compared to your subscription cost.', 'firebox'), |
| 456 |
'FB_LAST_4_WEEKS' => __('Last 4 weeks', 'firebox'), |
| 457 |
'FB_LAST_6_MONTHS' => __('Last 6 months', 'firebox'), |
| 458 |
'FB_LAST_12_MONTHS' => __('Last 12 months', 'firebox'), |
| 459 |
'FB_QUARTER_TO_DATE' => __('Quarter to date', 'firebox'), |
| 460 |
'FB_AVAILABLE_IN' => __('Available in', 'firebox'), |
| 461 |
'FB_AVAILABLE_IN_PRO' => __('Available in Pro', 'firebox'), |
| 462 |
'FB_PLAN_COST' => __('Plan Cost', 'firebox'), |
| 463 |
'FB_LIFETIME_REVENUE' => __('Lifetime Revenue', 'firebox'), |
| 464 |
'FB_YOUR_ROI' => __('ROI', 'firebox'), |
| 465 |
'FB_UNLOCK_REVENUE_ROI' => __('Unlock Revenue ROI', 'firebox'), |
| 466 |
'FB_GROWTH' => __('Growth', 'firebox'), |
| 467 |
// translators: %1$s: feature name, %2$s: plan name |
| 468 |
'FB_FEATURE_AVAILABLE_IN_X_PLAN' => __('%1$s is available in the %2$s Plan', 'firebox'), |
| 469 |
'FB_PRO' => __('Pro', 'firebox'), |
| 470 |
'FB_BASIC' => __('Basic', 'firebox'), |
| 471 |
'FB_CLICK_EVENT' => __('Click', 'firebox'), |
| 472 |
'FB_REVENUE_EVENT' => __('Revenue', 'firebox'), |
| 473 |
'FB_CLICKS_TOOLTIP_DESC' => __('Track clicks on buttons, links, form input fields within your campaigns for better conversion analysis.', 'firebox'), |
| 474 |
'FB_VIEW_REVENUE' => __('View Revenue', 'firebox'), |
| 475 |
'FB_CONVERSION_REVENUE' => __('Conversion Revenue', 'firebox') |
| 476 |
]; |
| 477 |
} |
| 478 |
} |
| 479 |
|