PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
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 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 / WordPress / TranslationsServiceProvider.php
surecart / app / src / WordPress Last commit date
Admin 2 years ago Assets 2 years ago CLI 2 years ago Pages 2 years ago PostTypes 2 years ago Posts 2 years ago Shortcodes 2 years ago Taxonomies 2 years ago Templates 2 years ago Users 2 years ago ActionsService.php 4 years ago CompatibilityService.php 2 years ago HealthService.php 2 years ago LineItemStateService.php 2 years ago PluginService.php 3 years ago PluginServiceProvider.php 2 years ago RecaptchaValidationService.php 2 years ago StateService.php 2 years ago ThemeService.php 2 years ago ThemeServiceProvider.php 3 years ago TranslationsServiceProvider.php 2 years ago
TranslationsServiceProvider.php
143 lines
1 <?php
2
3 namespace SureCart\WordPress;
4
5 use SureCartCore\ServiceProviders\ServiceProviderInterface;
6 use function SureCartVendors\Required\Traduttore_Registry\add_project;
7
8 /**
9 * Register translations.
10 */
11 class TranslationsServiceProvider implements ServiceProviderInterface {
12 /**
13 * Register all dependencies in the IoC container.
14 *
15 * @param \Pimple\Container $container Service container.
16 * @return void
17 */
18 public function register( $container ) {
19 // Nothing to register.
20 }
21
22 /**
23 * Bootstrap the service.
24 *
25 * @param \Pimple\Container $container Service container.
26 * @return void
27 */
28 public function bootstrap( $container ) {
29 add_filter( 'loco_compile_single_json', [ $this, 'compileSingleJSON' ], 999, 2 );
30 add_filter( 'load_script_translation_file', [ $this, 'loadSingleTranslationFile' ], 999, 3 );
31 add_action( 'init', [ $this, 'loadPluginTextDomain' ], 0 );
32 }
33
34 /**
35 * Compile javascript translations as a single file.
36 * We need to do this since we lazy load a lot of our scripts.
37 *
38 * @param string $path Path for the json file.
39 * @param string $po_path Path of the po.
40 *
41 * @return string
42 */
43 public function compileSingleJSON( $path, $po_path ) {
44 $info = pathinfo( $po_path );
45 if ( 'surecart' === substr( $info['filename'], 0, 8 ) ) {
46 $path = $info['dirname'] . '/' . $info['filename'] . '.json';
47 }
48 return $path;
49 }
50
51 /**
52 * Load the single translation file when the domain loads.
53 *
54 * @param string $file The file.
55 * @param string $handle The script handle.
56 * @param string $domain The domain.
57 *
58 * @return string
59 */
60 public function loadSingleTranslationFile( $file, $handle, $domain ) {
61 if ( 'surecart' === $domain ) {
62 if ( file_exists( WP_LANG_DIR . '/plugins/surecart-' . get_locale() . '.json' ) ) {
63 return WP_LANG_DIR . '/plugins/surecart-' . get_locale() . '.json';
64 }
65 if ( is_string( $file ) ) {
66 if ( false !== strpos( $file, SURECART_PLUGIN_DIR_NAME . '/languages/' ) ) {
67 $first_part = substr( $file, 0, strpos( $file, SURECART_PLUGIN_DIR_NAME . '/languages/' ) );
68 $file = $first_part . SURECART_PLUGIN_DIR_NAME . '/languages/surecart-' . get_locale() . '.json';
69 } else {
70 $first_part = substr( $file, 0, strpos( $file, 'plugins/surecart-' ) );
71 $file = $first_part . 'plugins/surecart-' . get_locale() . '.json';
72 }
73 }
74
75 if ( false === $file ) {
76 $file = SURECART_LANGUAGE_DIR . '/surecart-' . get_locale() . '.json';
77 }
78
79 if ( ! file_exists( $file ) && file_exists( WP_LANG_DIR . '/loco/plugins/surecart-' . get_locale() . '.json' ) ) {
80 $file = WP_LANG_DIR . '/loco/plugins/surecart-' . get_locale() . '.json';
81 }
82 }
83 return $file;
84 }
85
86 /**
87 * This is needed for Loco translate to work properly.
88 */
89 public function loadPluginTextDomain() {
90 // Default languages directory for CartFlows Pro.
91 $lang_dir = trailingslashit( SURECART_LANGUAGE_DIR );
92
93 /**
94 * Filters the languages directory path to use for CartFlows Pro.
95 *
96 * @param string $lang_dir The languages directory path.
97 */
98 $lang_dir = apply_filters( 'surecart_languages_directory', $lang_dir );
99
100 // Traditional WordPress plugin locale filter.
101 global $wp_version;
102
103 $get_locale = get_locale();
104
105 if ( $wp_version >= 4.7 ) {
106 $get_locale = get_user_locale();
107 }
108
109 /**
110 * Language Locale for CartFlows Pro
111 *
112 * @var $get_locale The locale to use.
113 * Uses get_user_locale()` in WordPress 4.7 or greater,
114 * otherwise uses `get_locale()`.
115 */
116 $locale = apply_filters( 'plugin_locale', $get_locale, 'surecart' );
117 $mofile = sprintf( '%1$s-%2$s.mo', 'surecart', $locale );
118
119 // Setup paths to current locale file.
120 $mofile_local = $lang_dir . $mofile;
121 $mofile_global = WP_LANG_DIR . '/plugins/' . $mofile;
122
123 if ( file_exists( $mofile_global ) ) {
124 // Look in global /wp-content/languages/plugins/ folder.
125 load_textdomain( 'surecart', $mofile_global );
126 } elseif ( file_exists( $mofile_local ) ) {
127 // Look in local /wp-content/plugins/surecart/languages/ folder.
128 load_textdomain( 'surecart', $mofile_local );
129 } else {
130 // Load the default language files.
131 load_plugin_textdomain( 'surecart', false, $lang_dir );
132 }
133 // add translations from translate.surecart.com.
134 if ( defined( 'SURECART_TRANSLATIONS_URL' ) ) {
135 add_project(
136 'plugin',
137 'surecart-wp',
138 SURECART_TRANSLATIONS_URL
139 );
140 }
141 }
142 }
143