Plugin_Loader
Description
Source
File: inc/lib/utm-analytics/plugin-loader.php
class Plugin_Loader { /** * Instance * * @access private * @var object Class Instance. * @since 0.0.1 */ private static $instance; /** * Initiator * * @since 0.0.1 * @return object initialized object of class. */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Autoload classes. * * @param string $class class name. */ public function autoload( $class ) { if ( 0 !== strpos( $class, __NAMESPACE__ ) ) { return; } $class_to_load = $class; $filename = strtolower( preg_replace( [ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ], [ '', '$1-$2', '-', DIRECTORY_SEPARATOR ], $class_to_load ) ); $file = BSF_UTM_ANALYTICS_DIR . $filename . '.php'; // if the file readable, include it. if ( is_readable( $file ) ) { require_once $file; } } /** * Constructor * * @since 0.0.1 */ public function __construct() { spl_autoload_register( [ $this, 'autoload' ] ); add_action( 'plugins_loaded', [ $this, 'load_textdomain' ] ); } /** * Load Plugin Text Domain. * This will load the translation textdomain depending on the file priorities. * 1. Global Languages /wp-content/languages/bsf-utm-analytics/ folder * 2. Local directory /wp-content/plugins/bsf-utm-analytics/languages/ folder * * @since 0.0.1 * @return void */ public function load_textdomain() { // Default languages directory. $lang_dir = BSF_UTM_ANALYTICS_DIR . 'languages/'; /** * Filters the languages directory path to use for plugin. * * @param string $lang_dir The languages directory path. */ $lang_dir = apply_filters( 'bsf_utm_analytics_languages_directory', $lang_dir ); // Traditional WordPress plugin locale filter. global $wp_version; $get_locale = get_locale(); if ( $wp_version >= 4.7 ) { $get_locale = get_user_locale(); } /** * Language Locale for plugin * * @var $get_locale The locale to use. * Uses get_user_locale()` in WordPress 4.7 or greater, * otherwise uses `get_locale()`. */ $locale = apply_filters( 'plugin_locale', $get_locale, 'bsf-utm-analytics' ); $mofile = sprintf( '%1$s-%2$s.mo', 'bsf-utm-analytics', $locale ); // Setup paths to current locale file. $mofile_global = WP_LANG_DIR . '/plugins/' . $mofile; $mofile_local = $lang_dir . $mofile; if ( file_exists( $mofile_global ) ) { // Look in global /wp-content/languages/bsf-utm-analytics/ folder. load_textdomain( 'bsf-utm-analytics', $mofile_global ); } elseif ( file_exists( $mofile_local ) ) { // Look in local /wp-content/plugins/bsf-utm-analytics/languages/ folder. load_textdomain( 'bsf-utm-analytics', $mofile_local ); } else { // Load the default language files. load_plugin_textdomain( 'bsf-utm-analytics', false, $lang_dir ); } } }
Expand full source code Collapse full source code View on Trac
Changelog
Version | Description |
---|---|
0.0.1 | Introduced. |
Methods
- __construct — Constructor
- autoload — Autoload classes.
- get_instance — Initiator
- load_textdomain — Load Plugin Text Domain.