PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
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 5 days ago Assets 3 weeks ago CLI 2 years ago Cache 3 weeks ago Pages 11 months ago PostTypes 2 months ago Posts 1 year ago Shortcodes 5 days ago Taxonomies 1 year ago Templates 1 year ago Users 2 months ago ActionsService.php 4 years ago CompatibilityService.php 4 months ago CurrencyService.php 5 months ago GoogleMapApiService.php 3 months ago HealthService.php 2 months ago LineItemStateService.php 2 years ago PluginActionLinksService.php 1 year ago PluginService.php 1 year ago PluginServiceProvider.php 1 year ago RecaptchaValidationService.php 2 years ago StateService.php 7 months ago ThemeService.php 4 months ago ThemeServiceProvider.php 7 months ago TranslationsServiceProvider.php 3 months ago UpgradeNoticeService.php 1 year ago
TranslationsServiceProvider.php
121 lines
1 <?php
2
3 namespace SureCart\WordPress;
4
5 use SureCartCore\ServiceProviders\ServiceProviderInterface;
6
7 /**
8 * Register translations.
9 */
10 class TranslationsServiceProvider implements ServiceProviderInterface {
11 /**
12 * Register all dependencies in the IoC container.
13 *
14 * @param \Pimple\Container $container Service container.
15 * @return void
16 */
17 public function register( $container ) {
18 // Nothing to register.
19 }
20
21 /**
22 * Bootstrap the service.
23 *
24 * @param \Pimple\Container $container Service container.
25 * @return void
26 */
27 public function bootstrap( $container ) {
28 add_filter( 'loco_compile_single_json', [ $this, 'compileSingleJSON' ], 999, 2 );
29 add_filter( 'load_script_translation_file', [ $this, 'loadSingleTranslationFile' ], 999, 3 );
30 add_action( 'init', [ $this, 'loadPluginTextDomain' ], 0 );
31 }
32
33 /**
34 * Compile javascript translations as a single file.
35 * We need to do this since we lazy load a lot of our scripts.
36 *
37 * @param string $path Path for the json file.
38 * @param string $po_path Path of the po.
39 *
40 * @return string
41 */
42 public function compileSingleJSON( $path, $po_path ) {
43 $info = pathinfo( $po_path );
44 if ( 'surecart' === substr( $info['filename'], 0, 8 ) ) {
45 $path = $info['dirname'] . '/' . $info['filename'] . '.json';
46 }
47 return $path;
48 }
49
50 /**
51 * Load the single translation file when the domain loads.
52 *
53 * @param string $file The file.
54 * @param string $handle The script handle.
55 * @param string $domain The domain.
56 *
57 * @return string
58 */
59 public function loadSingleTranslationFile( $file, $handle, $domain ) {
60 if ( 'surecart' === $domain ) {
61 $locale = apply_filters( 'plugin_locale', determine_locale(), 'surecart' );
62
63 if ( ! file_exists( $file ) && file_exists( WP_LANG_DIR . '/loco/plugins/surecart-' . $locale . '.json' ) ) {
64 return WP_LANG_DIR . '/loco/plugins/surecart-' . $locale . '.json';
65 }
66 if ( file_exists( WP_LANG_DIR . '/plugins/surecart-' . $locale . '.json' ) ) {
67 return WP_LANG_DIR . '/plugins/surecart-' . $locale . '.json';
68 }
69 if ( is_string( $file ) ) {
70 if ( false !== strpos( $file, SURECART_PLUGIN_DIR_NAME . '/languages/' ) ) {
71 $first_part = substr( $file, 0, strpos( $file, SURECART_PLUGIN_DIR_NAME . '/languages/' ) );
72 $file = $first_part . SURECART_PLUGIN_DIR_NAME . '/languages/surecart-' . $locale . '.json';
73 } else {
74 $first_part = substr( $file, 0, strpos( $file, 'plugins/surecart-' ) );
75 $file = $first_part . 'plugins/surecart-' . $locale . '.json';
76 }
77 }
78
79 if ( false === $file ) {
80 $file = SURECART_LANGUAGE_DIR . '/surecart-' . $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 SureCart.
91 $lang_dir = trailingslashit( SURECART_LANGUAGE_DIR );
92
93 /**
94 * Filters the languages directory path to use for SureCart.
95 *
96 * @param string $lang_dir The languages directory path.
97 */
98 $lang_dir = apply_filters( 'surecart_languages_directory', $lang_dir );
99
100 // Use determine_locale() which returns user locale in admin, site locale on frontend.
101 // Allow plugins/themes to override via 'plugin_locale' filter.
102 $locale = apply_filters( 'plugin_locale', determine_locale(), 'surecart' );
103 $mofile = sprintf( '%1$s-%2$s.mo', 'surecart', $locale );
104
105 // Setup paths to current locale file.
106 $mofile_local = $lang_dir . $mofile;
107 $mofile_global = WP_LANG_DIR . '/plugins/' . $mofile;
108
109 if ( file_exists( $mofile_global ) ) {
110 // Look in global /wp-content/languages/plugins/ folder.
111 load_textdomain( 'surecart', $mofile_global );
112 } elseif ( file_exists( $mofile_local ) ) {
113 // Look in local /wp-content/plugins/surecart/languages/ folder.
114 load_textdomain( 'surecart', $mofile_local );
115 } else {
116 // Load the default language files.
117 load_plugin_textdomain( 'surecart', false, $lang_dir );
118 }
119 }
120 }
121