PluginProbe
The Innovative Form Builder – IvyForms / 1.5
The Innovative Form Builder – IvyForms v1.5
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
← All changes | backend/src/Services/Translations/BackendStrings.php +158 -2 1.4.1 → 1.5 View file →
@@ -50,8 +50,9 @@
50 50 'form_updated' => __('Form updated successfully', 'ivyforms'),
51 51 'increase_value' => __('Increase value', 'ivyforms'),
52 52 'invalid_form_id' => __('Invalid form ID.', 'ivyforms'),
53 53 'invalid_request_data' => __('Invalid request data.', 'ivyforms'),
54 + 'invalid_middleware_signature' => __('Invalid middleware signature', 'ivyforms'),
54 55 'enable' => __('Enable', 'ivyforms'),
55 56 'leave' => __('Leave', 'ivyforms'),
56 57 'learn_more' => __('Learn more', 'ivyforms'),
57 58 'limit_min_max_date' => __('Limit min and/or max date', 'ivyforms'),
@@ -115,9 +116,9 @@
115 116 'imported_form' => __('Imported form', 'ivyforms'),
116 117 'import_forms_instructions' => __('Upload your JSON file to import forms into this site. Imported forms are always created as new forms.', 'ivyforms'),
117 118 'import_compatibility_title' => __('Your form is ready to be imported into IvyForms.', 'ivyforms'),
118 119 'import_compatibility_notice' => __('All supported fields, settings, and configurations will be imported automatically. Platform-specific fields or features that do not have a direct IvyForms equivalent may be skipped or adjusted during the import process. We recommend reviewing your form after import to ensure everything is configured as expected.', 'ivyforms'),
119 - 'unsupported_import_file' => __('Unsupported file. Please upload a JSON export from IvyForms, WS Form, or Fluent Forms.', 'ivyforms'),
120 + 'unsupported_import_file' => __('Unsupported file. Please upload a JSON export from IvyForms, WS Form, Fluent Forms, WPForms, or Gravity Forms.', 'ivyforms'),
120 121 'export_forms_instructions' => __('Export your forms, fields, settings, styles, confirmations, and notifications so you can easily import them on another site.', 'ivyforms'),
121 122 'select_file' => __('Select file', 'ivyforms'),
122 123 'choose_ivyforms_file' => __('Choose a form export file', 'ivyforms'),
123 124 'maximum_file_size' => __('Maximum file size is 5 MB', 'ivyforms'),
@@ -280,8 +281,10 @@
280 281 'awesome' => __('Awesome', 'ivyforms'),
281 282 'build' => __('Build', 'ivyforms'),
282 283 'button_label' => __('Button label', 'ivyforms'),
283 284 'button_position' => __('Button position', 'ivyforms'),
285 + 'calculate' => __('Calculate Field', 'ivyforms'),
286 + 'calculated_field' => __('Calculated Field', 'ivyforms'),
284 287 'center' => __('Center', 'ivyforms'),
285 288 'characters' => __('Characters', 'ivyforms'),
286 289 'checkbox' => __('Checkbox', 'ivyforms'),
287 290 'choose_date' => __('Choose date', 'ivyforms'),
@@ -773,8 +776,10 @@
773 776 'mailchimp_integration_settings' => __('Mailchimp integration settings', 'ivyforms'),
774 777 'message' => __('Message', 'ivyforms'),
775 778 'message_tooltip' => __('Message displayed to the user after a successful form submission.', 'ivyforms'),
776 779 'new_notification' => __('New notification', 'ivyforms'),
780 + 'attach_uploaded_files' => __('Attach uploaded file(s) to this notification', 'ivyforms'),
781 + 'attach_uploaded_files_description' => __('Uploading large files may affect deliverability.', 'ivyforms'),
777 782 'notification_deleted' => __('Notification deleted successfully', 'ivyforms'),
778 783 'notification_duplicated' => __('Notification duplicated successfully', 'ivyforms'),
779 784 'notification_loaded' => __('Notifications loaded successfully', 'ivyforms'),
780 785 'notifications' => __('Notifications', 'ivyforms'),
@@ -1037,8 +1042,13 @@
1037 1042 'google_sheets_limit_reached' => __('Lite plan supports {limit} Google Sheet per form. Upgrade to connect multiple sheets.', 'ivyforms'),
1038 1043 'spreadsheet_name' => __('Spreadsheet Name', 'ivyforms'),
1039 1044 'worksheet_name' => __('Worksheet Name', 'ivyforms'),
1040 1045 'spreadsheet' => __('Spreadsheet', 'ivyforms'),
1046 + 'select_spreadsheet' => __('Select spreadsheet', 'ivyforms'),
1047 + 'change_spreadsheet' => __('Change spreadsheet', 'ivyforms'),
1048 + 'choose_spreadsheet' => __('Choose a spreadsheet', 'ivyforms'),
1049 + 'google_sheets_picker_not_configured' => __('Google Sheets picker is not configured. Please contact support.', 'ivyforms'),
1050 + 'google_sheets_picker_error' => __('Could not open Google Drive picker. Reconnect your Google account and try again.', 'ivyforms'),
1041 1051 'choose_value' => __('Choose Value', 'ivyforms'),
1042 1052 'map_fields' => __('Map Fields', 'ivyforms'),
1043 1053 'map_fields_description' => __('Map form fields to spreadsheet columns.', 'ivyforms'),
1044 1054 'form_fields' => __('Form fields', 'ivyforms'),
@@ -1059,12 +1069,130 @@
1059 1069 'delete_google_sheet_subtitle' => __('This will stop syncing submissions to this spreadsheet.', 'ivyforms'),
1060 1070 'zapier' => __('Zapier', 'ivyforms'),
1061 1071 'zapier_label' => __('Zapier', 'ivyforms'),
1062 1072 'zapier_description' => __('Connect your forms to 5,000+ apps with Zapier automation workflows', 'ivyforms'),
1073 + 'square_label' => __('Square', 'ivyforms'),
1074 + 'square_description' => __('Accept card payments on your forms with Square', 'ivyforms'),
1075 + 'stripe_label' => __('Stripe', 'ivyforms'),
1076 + 'stripe_description' => __('Accept card payments on your forms with Stripe', 'ivyforms'),
1077 + 'paypal_label' => __('PayPal', 'ivyforms'),
1078 + 'paypal_description' => __('Accept PayPal Checkout payments on your forms', 'ivyforms'),
1063 1079 ];
1064 1080 }
1065 1081
1066 1082 /**
1083 + * Payment and Square integration strings.
1084 + *
1085 + * @return mixed[]
1086 + */
1087 + public static function getPaymentStrings(): array
1088 + {
1089 + return [
1090 + 'payments' => __('Payments', 'ivyforms'),
1091 + 'payment' => __('Payment', 'ivyforms'),
1092 + 'payment_method' => __('Payment method', 'ivyforms'),
1093 + 'payment_method_field' => __('Payment Method', 'ivyforms'),
1094 + 'connect_with_square' => __('Connect with Square', 'ivyforms'),
1095 + 'disconnect_square' => __('Disconnect Square', 'ivyforms'),
1096 + 'square_connected' => __('Square connected', 'ivyforms'),
1097 + 'square_disconnected' => __('Square disconnected', 'ivyforms'),
1098 + 'square_not_connected' => __('Square is not connected. Connect Square in Settings → Payment.', 'ivyforms'),
1099 + 'square_connect_description' => __('Connect your Square account below to accept card payments on your forms.', 'ivyforms'),
1100 + 'square_auth_url_failed' => __('Could not start Square authorization.', 'ivyforms'),
1101 + 'square_service_unavailable' => __(
1102 + 'Square is temporarily unavailable. Please try again in a few minutes.',
1103 + 'ivyforms'
1104 + ),
1105 + 'square_connect_failed' => __('Square connection failed. Please try again.', 'ivyforms'),
1106 + 'square_disconnect_email_subject' => __('Square disconnected from IvyForms', 'ivyforms'),
1107 + 'square_disconnect_email_body' => __('Your Square account was disconnected from IvyForms.', 'ivyforms'),
1108 + 'connect_with_stripe' => __('Connect with Stripe', 'ivyforms'),
1109 + 'switch_stripe_account' => __('Switch account', 'ivyforms'),
1110 + 'disconnect_stripe' => __('Disconnect Stripe', 'ivyforms'),
1111 + 'stripe_connected' => __('Stripe connected', 'ivyforms'),
1112 + 'stripe_disconnected' => __('Stripe disconnected', 'ivyforms'),
1113 + 'unable_to_disconnect_stripe' => __('Unable to disconnect Stripe', 'ivyforms'),
1114 + 'stripe_connect_description' => __('Connect your Stripe account below to accept card payments on your forms.', 'ivyforms'),
1115 + 'stripe_auth_url_failed' => __('Could not start Stripe authorization.', 'ivyforms'),
1116 + 'stripe_disconnected_warning' => __('Stripe is disconnected. Connect Stripe to accept payments on this form.', 'ivyforms'),
1117 + 'stripe_currency_mismatch_warning' => __('This form\'s currency does not match your Stripe account currency.', 'ivyforms'),
1118 + 'stripe_account_name' => __('Account name', 'ivyforms'),
1119 + 'stripe_account_id' => __('Account ID', 'ivyforms'),
1120 + 'send_stripe_receipt_email' => __('Send Stripe receipt email', 'ivyforms'),
1121 + 'connect_with_paypal' => __('Connect with PayPal', 'ivyforms'),
1122 + 'disconnect_paypal' => __('Disconnect PayPal', 'ivyforms'),
1123 + 'paypal_connected' => __('PayPal connected', 'ivyforms'),
1124 + 'paypal_disconnected' => __('PayPal disconnected', 'ivyforms'),
1125 + 'paypal_connect_description' => __('Connect your PayPal Business account to accept Checkout payments on your forms.', 'ivyforms'),
1126 + 'paypal_auth_url_failed' => __('Could not start PayPal authorization.', 'ivyforms'),
1127 + 'paypal_disconnected_warning' => __('PayPal is disconnected. Connect PayPal to accept payments on this form.', 'ivyforms'),
1128 + 'paypal_account_name' => __('Account name', 'ivyforms'),
1129 + 'paypal_merchant_id' => __('Merchant ID', 'ivyforms'),
1130 + 'paypal_environment' => __('Environment', 'ivyforms'),
1131 + 'paypal_sandbox' => __('Sandbox', 'ivyforms'),
1132 + 'paypal_live' => __('Live', 'ivyforms'),
1133 + 'paypal' => __('PayPal', 'ivyforms'),
1134 + 'paypal_complete_payment' => __('Complete PayPal checkout to continue.', 'ivyforms'),
1135 + 'paypal_complete_form' => __('Fill in the required fields before paying with PayPal.', 'ivyforms'),
1136 + 'view_in_paypal' => __('View in PayPal', 'ivyforms'),
1137 + 'view_in_stripe' => __('View in Stripe', 'ivyforms'),
1138 + 'send_paypal_receipt_email' => __('Send PayPal receipt email', 'ivyforms'),
1139 + 'payment_failed' => __('Payment could not be processed. Please check your card and try again.', 'ivyforms'),
1140 + 'payment_token_missing' => __('Payment details are missing. Please refresh and try again.', 'ivyforms'),
1141 + 'payment_gateway_unavailable' => __('The selected payment method is not available.', 'ivyforms'),
1142 + 'duplicate_payment_transaction' => __('This payment was already recorded. Please do not submit again.', 'ivyforms'),
1143 + 'invalid_payment_amount' => __('Payment amount must be greater than zero.', 'ivyforms'),
1144 + 'currency_mismatch' => __('Form currency does not match your Square account currency.', 'ivyforms'),
1145 + 'currency_mismatch_warning' => __('This form\'s currency does not match your Square account currency.', 'ivyforms'),
1146 + 'square_disconnected_warning' => __('Square is disconnected. Connect Square to accept payments on this form.', 'ivyforms'),
1147 + 'transaction_id' => __('Transaction ID', 'ivyforms'),
1148 + 'view_in_square' => __('View in Square', 'ivyforms'),
1149 + 'payment_description' => __('Payment description', 'ivyforms'),
1150 + 'buyer_email_field' => __('Buyer email field', 'ivyforms'),
1151 + 'billing_name_field' => __('Billing name field', 'ivyforms'),
1152 + 'billing_address_field' => __('Billing address field', 'ivyforms'),
1153 + 'merchant_name' => __('Merchant name', 'ivyforms'),
1154 + 'location' => __('Location', 'ivyforms'),
1155 + 'amount' => __('Amount', 'ivyforms'),
1156 + 'date' => __('Date', 'ivyforms'),
1157 + 'form_name' => __('Form name', 'ivyforms'),
1158 + 'square_card' => __('Square Card', 'ivyforms'),
1159 + 'card_number' => __('Card number', 'ivyforms'),
1160 + 'expiration_date' => __('Expiration date', 'ivyforms'),
1161 + 'cvv' => __('CVV', 'ivyforms'),
1162 + 'postal_code' => __('Postal code', 'ivyforms'),
1163 + 'transactions' => __('Transactions', 'ivyforms'),
1164 + 'search_payments' => __('Search Payments', 'ivyforms'),
1165 + 'export_csv' => __('Export CSV', 'ivyforms'),
1166 + 'charge' => __('Charge', 'ivyforms'),
1167 + 'type' => __('Type', 'ivyforms'),
1168 + 'customer' => __('Customer', 'ivyforms'),
1169 + 'source' => __('Source', 'ivyforms'),
1170 + 'coupons' => __('Coupons', 'ivyforms'),
1171 + 'payment_methods' => __('Payment Methods', 'ivyforms'),
1172 + 'payment_methods_tooltip' => __(
1173 + 'Select which payment providers are available on this field. Only connected providers can be used.',
1174 + 'ivyforms'
1175 + ),
1176 + 'go_to_global_settings' => __('Go to Global Settings', 'ivyforms'),
1177 + 'hide_title' => __('Hide Title', 'ivyforms'),
1178 + 'hide_labels' => __('Hide Labels', 'ivyforms'),
1179 + 'square' => __('Square', 'ivyforms'),
1180 + 'stripe' => __('Stripe', 'ivyforms'),
1181 + 'empty_state_payments_title' => __('No payments yet', 'ivyforms'),
1182 + 'empty_state_payments_subtitle' => __(
1183 + 'Successful payments from your forms will appear here.',
1184 + 'ivyforms'
1185 + ),
1186 + 'empty_state_filters_payments_title' => __('No payments match your filters', 'ivyforms'),
1187 + 'empty_state_filters_payments_subtitle' => __(
1188 + 'Try adjusting your search, date range, or form filter.',
1189 + 'ivyforms'
1190 + ),
1191 + ];
1192 + }
1193 +
1194 + /**
1067 1195 * Returns the array for the "Security" page strings
1068 1196 *
1069 1197 * @return mixed[]
1070 1198 */
@@ -1347,8 +1475,10 @@
1347 1475 'product_type_checkbox' => __('Checkbox', 'ivyforms'),
1348 1476 'product_type_radio' => __('Radio', 'ivyforms'),
1349 1477 'product_type_select' => __('Select', 'ivyforms'),
1350 1478 'product_type_user_defined' => __('User defined', 'ivyforms'),
1479 + 'product_min_amount' => __('Minimum amount', 'ivyforms'),
1480 + 'product_max_amount' => __('Maximum amount', 'ivyforms'),
1351 1481 'product_choice_layout' => __('Layout', 'ivyforms'),
1352 1482 'product_layout_inline' => __('Inline', 'ivyforms'),
1353 1483 'product_layout_columns' => __('Columns', 'ivyforms'),
1354 1484 'product_layout_button' => __('Button-style layout', 'ivyforms'),
@@ -1488,9 +1618,9 @@
1488 1618 'invalid_request_data' => __('Invalid request data.', 'ivyforms'),
1489 1619 'invalid_or_missing_ids' => __('Invalid or missing IDs', 'ivyforms'),
1490 1620 'no_form_ids_for_export' => __('No form IDs provided for export.', 'ivyforms'),
1491 1621 'no_import_data_provided' => __('No import data provided.', 'ivyforms'),
1492 - 'unsupported_import_format' => __('Unsupported import file. Please upload a JSON export from IvyForms, WS Form, or Fluent Forms.', 'ivyforms'),
1622 + 'unsupported_import_format' => __('Unsupported import file. Please upload a JSON export from IvyForms, WS Form, Fluent Forms, WPForms, or Gravity Forms.', 'ivyforms'),
1493 1623 'import_no_supported_fields' => __('No supported fields were found in the import file. Nothing was imported.', 'ivyforms'),
1494 1624 'invalid_import_data_structure' => __('Invalid import data structure.', 'ivyforms'),
1495 1625 'import_structure_form_missing' => __('Invalid import structure: missing form section.', 'ivyforms'),
1496 1626 'import_structure_form_invalid' => __('Invalid import structure: form section must be an object.', 'ivyforms'),
@@ -1612,8 +1742,34 @@
1612 1742 'ai_update_wordpress' => __('Update WordPress', 'ivyforms'),
1613 1743 'ai_install_plugin' => __('Install AI plugin', 'ivyforms'),
1614 1744 'ai_open_connectors' => __('Open Connectors', 'ivyforms'),
1615 1745 'ai_default_page_label' => __('Page %d', 'ivyforms'),
1746 + 'ai_choices_prompt_title' => __('Describe your choices', 'ivyforms'),
1747 + 'ai_choices_prompt_subtitle' => __('Describe the choices you would like to create or use one of the examples below to get started.', 'ivyforms'),
1748 + 'ai_choices_learn_more' => __('Learn more about IvyForms AI', 'ivyforms'),
1749 + 'ai_choices_prompt_placeholder' => __('e.g. top 50 books of all time', 'ivyforms'),
1750 + 'ai_choices_suggestion_books' => __('Top 50 books of all time', 'ivyforms'),
1751 + 'ai_choices_suggestion_genres' => __('Top 50 movie genres', 'ivyforms'),
1752 + 'ai_choices_suggestion_dogs' => __('Top 30 dog breeds', 'ivyforms'),
1753 + 'ai_choices_suggestion_industries' => __('List of industries', 'ivyforms'),
1754 + 'ai_choices_generate' => __('Generate choices', 'ivyforms'),
1755 + 'ai_choices_try_again' => __('Try again', 'ivyforms'),
1756 + 'ai_choices_insert' => __('Insert Choices', 'ivyforms'),
1757 + 'ai_choices_close' => __('Close', 'ivyforms'),
1758 + 'ai_choices_edit' => __('Edit choices', 'ivyforms'),
1759 + 'ai_choices_save' => __('Save choices', 'ivyforms'),
1760 + 'ai_choices_generating_title' => __('Generating your choices', 'ivyforms'),
1761 + 'ai_choices_generating_step_searching' => __('Searching most popular…', 'ivyforms'),
1762 + 'ai_choices_generating_step_collecting' => __('Collecting options…', 'ivyforms'),
1763 + 'ai_choices_generating_step_finalizing' => __('Almost done…', 'ivyforms'),
1764 + 'ai_choices_prompt_required' => __('Please enter a prompt describing the choices.', 'ivyforms'),
1765 + 'ai_choices_prompt_not_understood' => __('We couldn\'t understand that description. Try describing the list of choices you need.', 'ivyforms'),
1766 + 'ai_choices_generation_failed' => __('Failed to generate choices. Please try again.', 'ivyforms'),
1767 + 'ai_choices_default_title' => __('Generated choices', 'ivyforms'),
1768 + 'ai_choices_overwrite_title' => __('Replace existing choices?', 'ivyforms'),
1769 + 'ai_choices_overwrite_message' => __('Inserting these choices will replace the current options for this field.', 'ivyforms'),
1770 + 'ai_choices_overwrite_confirm' => __('Replace choices', 'ivyforms'),
1771 + 'ai_choices_locked_title' => __('AI choice generation is locked', 'ivyforms'),
1616 1772 ];
1617 1773 }
1618 1774
1619 1775 /**