PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.4.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.4.1
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 All 281 releases
surecart / app / src / Support / Interval.php
Interval.php
101 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Support;
4
5 /**
6 * Handles interval translations
7 */
8 class Interval {
9 /**
10 * Translate the interval.
11 *
12 * @param int $amount The interval amount.
13 * @param string $interval The interval type (e.g., "day", "week").
14 * @param string $prefix (optional) The prefix to use before the interval. Default: "every".
15 * @param string $fallback (optional) The fallback text for non-standard intervals. Default: "once".
16 * @param bool $showSingle (optional) Whether to use singular forms for amounts (e.g., "1 day" instead of "1 days"). Default: false.
17 * @return string The translated interval string.
18 */
19 public static function translate(
20 int $amount,
21 string $interval,
22 string $prefix = 'every',
23 string $fallback = 'once',
24 bool $showSingle = false
25 ) {
26 switch ( $interval ) {
27 case 'day':
28 $text = sprintf(
29 $showSingle ? _n( '%d day', '%d days', $amount, 'surecart' ) : _n( 'day', '%d days', $amount, 'surecart' ),
30 $amount
31 );
32 return "$prefix $text";
33 case 'week':
34 $text = sprintf(
35 $showSingle ? _n( '%d week', '%d weeks', $amount, 'surecart' ) : _n( 'week', '%d weeks', $amount, 'surecart' ),
36 $amount
37 );
38 return "$prefix $text";
39 case 'month':
40 $text = sprintf(
41 $showSingle ? _n( '%d month', '%d months', $amount, 'surecart' ) : _n( 'month', '%d months', $amount, 'surecart' ),
42 $amount
43 );
44 return "$prefix $text";
45 case 'year':
46 $text = sprintf(
47 $showSingle ? _n( '%d year', '%d years', $amount, 'surecart' ) : _n( 'year', '%d years', $amount, 'surecart' ),
48 $amount
49 );
50 return "$prefix $text";
51 default:
52 return $fallback;
53 }
54 }
55
56 /**
57 * Translate abbreviated interval.
58 *
59 * @param int $amount The interval amount.
60 * @param string $interval The interval type (e.g., "day", "week").
61 * @param string $fallback (optional) The fallback text for non-standard intervals. Default: "once".
62 * @param bool $showSingle (optional) Whether to use singular forms for amounts (e.g., "1 day" instead of "1 days"). Default: false.
63 * @return string The translated and abbreviated interval string.
64 */
65 function translateAbbreviatedInterval(
66 int $amount,
67 string $interval,
68 string $fallback = 'once',
69 bool $showSingle = false
70 ) {
71 switch ( $interval ) {
72 case 'day':
73 $text = sprintf(
74 $showSingle ? _n( '%d d', '%d d', $amount, 'surecart' ) : _n( 'd', '%d d', $amount, 'surecart' ),
75 $amount
76 );
77 return " / $text";
78 case 'week':
79 $text = sprintf(
80 $showSingle ? _n( '%d wk', '%d wks', $amount, 'surecart' ) : _n( 'wk', '%d wks', $amount, 'surecart' ),
81 $amount
82 );
83 return " / $text";
84 case 'month':
85 $text = sprintf(
86 $showSingle ? _n( '%d mo', '%d mos', $amount, 'surecart' ) : _n( 'mo', '%d mos', $amount, 'surecart' ),
87 $amount
88 );
89 return " / $text";
90 case 'year':
91 $text = sprintf(
92 $showSingle ? _n( '%d yr', '%d yrs', $amount, 'surecart' ) : _n( 'yr', '%d yrs', $amount, 'surecart' ),
93 $amount
94 );
95 return " / $text";
96 default:
97 return $fallback;
98 }
99 }
100 }
101