diff --git a/includes/class-init.php b/includes/class-init.php index 886697f8..a8005d2a 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -236,37 +236,18 @@ if ( ! class_exists( 'UM' ) ) { } /** - * Loading UM textdomain + * Loading UM textdomain. * - * 'ultimate-member' by default + * Note: 'ultimate-member' is a default textdomain. + * + * @since 2.8.5 WordPress native functions are used to make this function clear. */ public function localize() { - // The function `get_user_locale()` will return `get_locale()` result by default if user or its locale is empty. - $language_locale = get_user_locale(); - - /** - * Filters the language locale before loading textdomain. - * - * @since 1.3.x - * @hook um_language_locale - * - * @param {string} $language_locale Current language locale. - * - * @return {string} Maybe changed language locale. - * - * @example Change UM language locale. - * function my_um_language_locale( $language_locale ) { - * $language_locale = 'es_ES'; - * return $language_locale; - * } - * add_filter( 'um_language_locale', 'my_um_language_locale' ); - */ - $language_locale = apply_filters( 'um_language_locale', $language_locale ); - + $default_domain = dirname( plugin_basename( UM_PLUGIN ) ); /** * Filters the plugin's textdomain. * - * @param {string} $textdomain Plugin's textdomain. + * @param {string} $domain Plugin's textdomain. * * @return {string} Maybe changed plugin's textdomain. * @@ -274,40 +255,19 @@ if ( ! class_exists( 'UM' ) ) { * @hook um_language_textdomain * * @example Change UM language locale. - * function my_um_language_textdomain( $textdomain ) { - * $language_locale = 'ultimate-member-custom'; - * return $textdomain; + * function my_um_language_textdomain( $domain ) { + * $domain = 'ultimate-member-custom'; + * return $domain; * } * add_filter( 'um_language_textdomain', 'my_um_language_textdomain' ); */ - $language_domain = apply_filters( 'um_language_textdomain', 'ultimate-member' ); - - $language_file = WP_LANG_DIR . '/plugins/' . $language_domain . '-' . $language_locale . '.mo'; - - /** - * Filters the path to the language file (*.mo). - * - * @param {string} $language_file Default path to the language file. - * - * @return {string} Language file path. - * - * @since 1.3.x - * @hook um_language_file - * - * @example Change UM language file path. - * function my_um_language_file( $language_file ) { - * $language_file = '{path-to-language-file}'; - * return $language_file; - * } - * add_filter( 'um_language_file', 'my_um_language_file' ); - */ - $language_file = apply_filters( 'um_language_file', $language_file ); + $domain = apply_filters( 'um_language_textdomain', $default_domain ); // Unload textdomain if it has already loaded. - if ( is_textdomain_loaded( $language_domain ) ) { - unload_textdomain( $language_domain, true ); + if ( is_textdomain_loaded( $domain ) ) { + unload_textdomain( $domain, true ); } - load_textdomain( $language_domain, $language_file ); + load_plugin_textdomain( $domain, false, $default_domain . '/languages' ); } /** diff --git a/includes/um-deprecated-hooks.php b/includes/um-deprecated-hooks.php new file mode 100644 index 00000000..86a01327 --- /dev/null +++ b/includes/um-deprecated-hooks.php @@ -0,0 +1,47 @@ +Change UM language locale. + * function my_um_language_locale( $language_locale ) { + * $language_locale = 'es_ES'; + * return $language_locale; + * } + * add_filter( 'um_language_locale', 'my_um_language_locale' ); + */ + +/** + * Filters the path to the language file (*.mo). + * + * @param {string} $language_file Default path to the language file. + * + * @return {string} Language file path. + * + * @since 1.3.x + * @depecated 2.8.5 Used WordPress native `load_plugin_textdomain()`. And can be replaced via WordPress native hook 'load_textdomain_mofile'. + * @hook um_language_file + * + * @example Change UM language file path. + * function my_um_language_file( $language_file ) { + * $language_file = '{path-to-language-file}'; + * return $language_file; + * } + * add_filter( 'um_language_file', 'my_um_language_file' ); + */