PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.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 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.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.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Support / Interval.php
surecart / app / src / Support Last commit date
Blocks 4 months ago Contracts 9 months ago Errors 1 month ago Scripts 5 days ago Arrays.php 3 years ago ColorService.php 3 years ago Currency.php 1 year ago Encryption.php 3 years ago GitHubInstaller.php 5 days ago Interval.php 7 months ago Server.php 2 years ago TimeDate.php 3 months ago Translations.php 3 years ago URL.php 2 years ago UtilityService.php 3 years ago UtilityServiceProvider.php 3 years ago kses.json 5 days ago
Interval.php
109 lines
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 // translators: %d is the number of days.
30 $showSingle ? _n( '%d day', '%d days', $amount, 'surecart' ) : _n( '%d day', '%d days', $amount, 'surecart' ),
31 $amount
32 );
33 return "$prefix $text";
34 case 'week':
35 $text = sprintf(
36 // translators: %d is the number of weeks.
37 $showSingle ? _n( '%d week', '%d weeks', $amount, 'surecart' ) : _n( '%d week', '%d weeks', $amount, 'surecart' ),
38 $amount
39 );
40 return "$prefix $text";
41 case 'month':
42 $text = sprintf(
43 // translators: %d is the number of months.
44 $showSingle ? _n( '%d month', '%d months', $amount, 'surecart' ) : _n( '%d month', '%d months', $amount, 'surecart' ),
45 $amount
46 );
47 return "$prefix $text";
48 case 'year':
49 $text = sprintf(
50 // translators: %d is the number of years.
51 $showSingle ? _n( '%d year', '%d years', $amount, 'surecart' ) : _n( '%d year', '%d years', $amount, 'surecart' ),
52 $amount
53 );
54 return "$prefix $text";
55 default:
56 return $fallback;
57 }
58 }
59
60 /**
61 * Translate abbreviated interval.
62 *
63 * @param int $amount The interval amount.
64 * @param string $interval The interval type (e.g., "day", "week").
65 * @param string $fallback (optional) The fallback text for non-standard intervals. Default: "once".
66 * @param bool $showSingle (optional) Whether to use singular forms for amounts (e.g., "1 day" instead of "1 days"). Default: false.
67 * @return string The translated and abbreviated interval string.
68 */
69 function translateAbbreviatedInterval(
70 int $amount,
71 string $interval,
72 string $fallback = 'once',
73 bool $showSingle = false
74 ) {
75 switch ( $interval ) {
76 case 'day':
77 $text = sprintf(
78 // translators: %d is the number of days (abbreviated).
79 $showSingle ? _n( '%d d', '%d d', $amount, 'surecart' ) : _n( '%d d', '%d d', $amount, 'surecart' ),
80 $amount
81 );
82 return " / $text";
83 case 'week':
84 $text = sprintf(
85 // translators: %d is the number of weeks (abbreviated).
86 $showSingle ? _n( '%d wk', '%d wks', $amount, 'surecart' ) : _n( '%d wk', '%d wks', $amount, 'surecart' ),
87 $amount
88 );
89 return " / $text";
90 case 'month':
91 $text = sprintf(
92 // translators: %d is the number of months (abbreviated).
93 $showSingle ? _n( '%d mo', '%d mos', $amount, 'surecart' ) : _n( '%d mo', '%d mos', $amount, 'surecart' ),
94 $amount
95 );
96 return " / $text";
97 case 'year':
98 $text = sprintf(
99 // translators: %d is the number of years (abbreviated).
100 $showSingle ? _n( '%d yr', '%d yrs', $amount, 'surecart' ) : _n( '%d yr', '%d yrs', $amount, 'surecart' ),
101 $amount
102 );
103 return " / $text";
104 default:
105 return $fallback;
106 }
107 }
108 }
109