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