PluginProbe ʕ •ᴥ•ʔ
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / 2.12.3
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz v2.12.3
2.12.5 2.12.4 2.12.3 2.12.2 2.12.1 2.12.0 2.11.1 2.11.0 2.10.1 2.10.0 2.9.1 2.9.0 2.8.2 2.8.1 2.7.0 2.7.1 2.8.0 trunk 0.0.10 0.0.11 0.0.12 0.0.13 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8 0.0.9 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.1.0 1.1.1 1.1.2 1.10.0 1.10.1 1.11.0 1.12.0 1.12.1 1.12.2 1.12.3 1.13.0 1.13.1 1.13.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.5.0 1.5.1 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.8.0 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.2 2.6.0
sureforms / inc / translatable.php
sureforms / inc Last commit date
abilities 3 weeks ago admin 3 months ago ai-form-builder 1 month ago blocks 2 months ago compatibility 3 weeks ago database 3 weeks ago email 3 weeks ago fields 3 weeks ago global-settings 1 month ago lib 1 month ago migrator 2 months ago page-builders 3 weeks ago payments 3 weeks ago single-form-settings 2 months ago traits 2 months ago activator.php 1 year ago admin-ajax.php 2 months ago background-process.php 9 months ago create-new-form.php 3 months ago duplicate-form.php 3 months ago entries.php 3 weeks ago events-scheduler.php 2 years ago export.php 3 months ago field-validation.php 3 weeks ago form-restriction.php 2 months ago form-styling.php 1 month ago form-submit.php 3 weeks ago forms-data.php 5 months ago frontend-assets.php 1 month ago generate-form-markup.php 3 weeks ago gutenberg-hooks.php 3 weeks ago helper.php 3 weeks ago learn.php 4 months ago onboarding.php 2 months ago post-types.php 1 month ago rest-api.php 3 weeks ago smart-tags.php 4 months ago submit-token.php 4 months ago translatable.php 1 month ago updater-callbacks.php 3 weeks ago updater.php 3 weeks ago
translatable.php
162 lines
1 <?php
2 /**
3 * Translatable Class file for Sureforms.
4 *
5 * @package Sureforms
6 * @since 1.0.5
7 */
8
9 namespace SRFM\Inc;
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit; // Exit if accessed directly.
13 }
14
15 /**
16 * Sureforms Translatable Class
17 *
18 * A helper class providing an interface for handling translation of text elements, specifically
19 * frontend validation messages, used in the Sureforms plugin. This class enables dynamic and
20 * reusable translated strings to enhance user experience across different languages.
21 *
22 * @since 1.0.5
23 */
24 class Translatable {
25 /**
26 * Retrieve default frontend validation messages.
27 *
28 * Returns an array of validation messages, each identified by a unique key. Messages are
29 * translated for frontend display, with placeholders included for dynamically populated values.
30 *
31 * @since 1.0.5
32 * @return array<string, string> Associative array of translated validation messages for frontend use.
33 */
34 public static function get_frontend_validation_messages() {
35 $translatable_array = self::dynamic_validation_messages();
36
37 /**
38 * Filter for frontend validation messages.
39 *
40 * This filter allows developers to add or modify the default validation messages.
41 * Primarily intended for enabling custom validation messages and supporting pro functionality.
42 *
43 * @internal This filter is primarily used for internal purposes and pro functionality.
44 */
45 return apply_filters( 'srfm_frontend_validation_messages', $translatable_array );
46 }
47
48 /**
49 * Retrieve default dynamic validation messages.
50 *
51 * @since 1.2.1
52 * @return array<string, string> Associative array of translated validation messages for dynamic use.
53 */
54 public static function dynamic_validation_messages() {
55 $translatable_array = self::dynamic_messages();
56
57 /**
58 * Filter for dynamic validation messages.
59 *
60 * The `srfm_dynamic_validation_messages` filter allows developers to add or modify
61 * the default dynamic validation messages.
62 * This is primarily intended for enabling custom validation messages and supporting pro functionality.
63 *
64 * @internal This filter is primarily used for internal purposes and pro functionality.
65 */
66 $filtered_array = apply_filters( 'srfm_dynamic_validation_messages', $translatable_array );
67
68 $dynamic_options = get_option( 'srfm_default_dynamic_block_option', [] );
69 if ( ! empty( $dynamic_options ) && is_array( $dynamic_options ) ) {
70 foreach ( $dynamic_options as $key => $value ) {
71 if ( isset( $filtered_array[ $key ] ) ) {
72 $filtered_array[ $key ] = $value;
73 }
74 }
75 }
76
77 return $filtered_array;
78 }
79
80 /**
81 * Dynamic messages array
82 *
83 * @since 1.2.1
84 * @return array<string, string> Associative array of translated dynamic messages.
85 */
86 public static function dynamic_messages() {
87 return [
88 'srfm_valid_phone_number' => __( 'Enter a valid phone number.', 'sureforms' ),
89 'srfm_valid_url' => __( 'Enter a valid URL.', 'sureforms' ),
90 'srfm_confirm_email_same' => __( 'Confirmation email does not match.', 'sureforms' ),
91 'srfm_valid_email' => __( 'Enter a valid email address.', 'sureforms' ),
92
93 /* translators: %s represents the minimum number of characters required */
94 'srfm_textarea_min_chars' => __( 'Please enter at least %s characters.', 'sureforms' ),
95
96 /* translators: %s: maximum characters allowed before the @ symbol. */
97 'srfm_email_local_max_length' => __( 'The part before @ may not exceed %s characters.', 'sureforms' ),
98
99 /* translators: %s: maximum characters allowed after the @ symbol. */
100 'srfm_email_domain_max_length' => __( 'The part after @ may not exceed %s characters.', 'sureforms' ),
101
102 /* translators: %s represents the minimum acceptable value */
103 'srfm_input_min_value' => __( 'Minimum value is %s.', 'sureforms' ),
104
105 /* translators: %s represents the maximum acceptable value */
106 'srfm_input_max_value' => __( 'Maximum value is %s.', 'sureforms' ),
107
108 /* translators: %s represents the minimum number of options to select */
109 'srfm_dropdown_min_selections' => __( 'Select at least %s options.', 'sureforms' ),
110
111 /* translators: %s represents the maximum number of options that can be selected */
112 'srfm_dropdown_max_selections' => __( 'You can select up to %s options.', 'sureforms' ),
113
114 /* translators: %s represents the minimum number of options to select */
115 'srfm_multi_choice_min_selections' => __( 'Select at least %s options.', 'sureforms' ),
116
117 /* translators: %s represents the maximum number of options that can be selected */
118 'srfm_multi_choice_max_selections' => __( 'You can select up to %s options.', 'sureforms' ),
119 ];
120 }
121
122 /**
123 * Source (untranslated) versions of every dynamic validation message.
124 *
125 * Used by the multilingual integration to register a stable English key with
126 * the active provider (e.g., WPML String Translation) regardless of the
127 * site's current WP locale. The keys match {@see dynamic_messages()}; the
128 * values are the raw English source strings without any `__()` wrapping,
129 * so they don't shift when the site locale changes.
130 *
131 * @since 2.11.0
132 * @return array<string, string>
133 */
134 public static function dynamic_messages_source() {
135 return [
136 'srfm_valid_phone_number' => 'Enter a valid phone number.',
137 'srfm_valid_url' => 'Enter a valid URL.',
138 'srfm_confirm_email_same' => 'Confirmation email does not match.',
139 'srfm_valid_email' => 'Enter a valid email address.',
140 'srfm_textarea_min_chars' => 'Please enter at least %s characters.',
141 'srfm_email_local_max_length' => 'The part before @ may not exceed %s characters.',
142 'srfm_email_domain_max_length' => 'The part after @ may not exceed %s characters.',
143 'srfm_input_min_value' => 'Minimum value is %s.',
144 'srfm_input_max_value' => 'Maximum value is %s.',
145 'srfm_dropdown_min_selections' => 'Select at least %s options.',
146 'srfm_dropdown_max_selections' => 'You can select up to %s options.',
147 'srfm_multi_choice_min_selections' => 'Select at least %s options.',
148 'srfm_multi_choice_max_selections' => 'You can select up to %s options.',
149 ];
150 }
151
152 /**
153 * Get default form restriction message.
154 *
155 * @since 1.10.1
156 * @return string Translated default form restriction message.
157 */
158 public static function get_default_form_restriction_message() {
159 return __( 'This form is now closed as we have reached the maximum number of entries.', 'sureforms' );
160 }
161 }
162