PluginProbe ʕ •ᴥ•ʔ
SureForms – Drag & Drop Contact Form & Form Builder, Payment Form, Survey, Quiz & Calculator / 2.12.1
SureForms – Drag & Drop Contact Form & Form Builder, Payment Form, Survey, Quiz & Calculator v2.12.1
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 1 week ago admin 1 month ago ai-form-builder 1 week ago blocks 1 month ago compatibility 3 weeks ago database 3 weeks ago email 3 months ago fields 3 weeks ago global-settings 1 week ago lib 1 week ago migrator 3 weeks ago page-builders 3 weeks ago payments 1 week ago single-form-settings 1 month ago traits 1 month ago activator.php 1 year ago admin-ajax.php 3 weeks ago background-process.php 8 months ago create-new-form.php 2 months ago duplicate-form.php 1 month ago entries.php 3 weeks ago events-scheduler.php 2 years ago export.php 1 month ago field-validation.php 1 week ago form-restriction.php 1 month ago form-styling.php 3 months ago form-submit.php 3 weeks ago forms-data.php 3 months ago frontend-assets.php 1 week ago generate-form-markup.php 3 weeks ago gutenberg-hooks.php 1 month ago helper.php 3 weeks ago learn.php 3 months ago onboarding.php 1 month ago post-types.php 1 month ago rest-api.php 1 week ago smart-tags.php 2 months ago submit-token.php 3 months ago translatable.php 1 week ago updater-callbacks.php 1 year ago updater.php 1 year 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