PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.13.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.13.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 Pages 3 years ago PostTypes 2 years ago Shortcodes 2 years ago Sitemap 2 years ago Templates 2 years ago Users 3 years ago ActionsService.php 3 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 3 years ago
TranslationsServiceProvider.php
131 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 if ( is_string( $file ) ) {
62 if ( false !== strpos( $file, SURECART_PLUGIN_DIR_NAME . '/languages/' ) ) {
63 $first_part = substr( $file, 0, strpos( $file, SURECART_PLUGIN_DIR_NAME . '/languages/' ) );
64 $file = $first_part . SURECART_PLUGIN_DIR_NAME . '/languages/surecart-' . get_locale() . '.json';
65 } else {
66 $first_part = substr( $file, 0, strpos( $file, 'plugins/surecart-' ) );
67 $file = $first_part . 'plugins/surecart-' . get_locale() . '.json';
68 }
69 }
70
71 if ( false === $file ) {
72 $file = SURECART_LANGUAGE_DIR . '/surecart-' . get_locale() . '.json';
73 }
74
75 if ( ! file_exists( $file ) && file_exists( WP_LANG_DIR . '/loco/plugins/surecart-' . get_locale() . '.json' ) ) {
76 $file = WP_LANG_DIR . '/loco/plugins/surecart-' . get_locale() . '.json';
77 }
78 }
79 return $file;
80 }
81
82 /**
83 * This is needed for Loco translate to work properly.
84 */
85 public function loadPluginTextDomain() {
86 // Default languages directory for CartFlows Pro.
87 $lang_dir = trailingslashit( SURECART_LANGUAGE_DIR );
88
89 /**
90 * Filters the languages directory path to use for CartFlows Pro.
91 *
92 * @param string $lang_dir The languages directory path.
93 */
94 $lang_dir = apply_filters( 'surecart_languages_directory', $lang_dir );
95
96 // Traditional WordPress plugin locale filter.
97 global $wp_version;
98
99 $get_locale = get_locale();
100
101 if ( $wp_version >= 4.7 ) {
102 $get_locale = get_user_locale();
103 }
104
105 /**
106 * Language Locale for CartFlows Pro
107 *
108 * @var $get_locale The locale to use.
109 * Uses get_user_locale()` in WordPress 4.7 or greater,
110 * otherwise uses `get_locale()`.
111 */
112 $locale = apply_filters( 'plugin_locale', $get_locale, 'surecart' );
113 $mofile = sprintf( '%1$s-%2$s.mo', 'surecart', $locale );
114
115 // Setup paths to current locale file.
116 $mofile_local = $lang_dir . $mofile;
117 $mofile_global = WP_LANG_DIR . '/plugins/' . $mofile;
118
119 if ( file_exists( $mofile_global ) ) {
120 // Look in global /wp-content/languages/plugins/ folder.
121 load_textdomain( 'surecart', $mofile_global );
122 } elseif ( file_exists( $mofile_local ) ) {
123 // Look in local /wp-content/plugins/surecart/languages/ folder.
124 load_textdomain( 'surecart', $mofile_local );
125 } else {
126 // Load the default language files.
127 load_plugin_textdomain( 'surecart', false, $lang_dir );
128 }
129 }
130 }
131