_get_path_to_translation_from_lang_dir

The timeline below displays how wordpress function _get_path_to_translation_from_lang_dir has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Gets the path to a translation file in the languages directory for the current locale.
 *
 * Holds a cached list of available .mo files to improve performance.
 *
 * @since 4.7.0
 * @deprecated 6.1.0
 * @access private
 *
 * @see _get_path_to_translation()
 *
 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 * @return string|false The path to the translation file or false if no translation file was found.
 */
function _get_path_to_translation_from_lang_dir($domain)
{
    _deprecated_function(__FUNCTION__, '6.1.0', 'WP_Textdomain_Registry');
    static $cached_mofiles = null;
    if (null === $cached_mofiles) {
        $cached_mofiles = array();
        $locations = array(WP_LANG_DIR . '/plugins', WP_LANG_DIR . '/themes');
        foreach ($locations as $location) {
            $mofiles = glob($location . '/*.mo');
            if ($mofiles) {
                $cached_mofiles = array_merge($cached_mofiles, $mofiles);
            }
        }
    }
    $locale = determine_locale();
    $mofile = "{$domain}-{$locale}.mo";
    $path = WP_LANG_DIR . '/plugins/' . $mofile;
    if (in_array($path, $cached_mofiles, true)) {
        return $path;
    }
    $path = WP_LANG_DIR . '/themes/' . $mofile;
    if (in_array($path, $cached_mofiles, true)) {
        return $path;
    }
    return false;
}

WordPress Version: 5.5

/**
 * Gets the path to a translation file in the languages directory for the current locale.
 *
 * Holds a cached list of available .mo files to improve performance.
 *
 * @since 4.7.0
 * @access private
 *
 * @see _get_path_to_translation()
 *
 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 * @return string|false The path to the translation file or false if no translation file was found.
 */
function _get_path_to_translation_from_lang_dir($domain)
{
    static $cached_mofiles = null;
    if (null === $cached_mofiles) {
        $cached_mofiles = array();
        $locations = array(WP_LANG_DIR . '/plugins', WP_LANG_DIR . '/themes');
        foreach ($locations as $location) {
            $mofiles = glob($location . '/*.mo');
            if ($mofiles) {
                $cached_mofiles = array_merge($cached_mofiles, $mofiles);
            }
        }
    }
    $locale = determine_locale();
    $mofile = "{$domain}-{$locale}.mo";
    $path = WP_LANG_DIR . '/plugins/' . $mofile;
    if (in_array($path, $cached_mofiles, true)) {
        return $path;
    }
    $path = WP_LANG_DIR . '/themes/' . $mofile;
    if (in_array($path, $cached_mofiles, true)) {
        return $path;
    }
    return false;
}

WordPress Version: 5.1

/**
 * Gets the path to a translation file in the languages directory for the current locale.
 *
 * Holds a cached list of available .mo files to improve performance.
 *
 * @since 4.7.0
 * @access private
 *
 * @see _get_path_to_translation()
 * @staticvar array $cached_mofiles
 *
 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 * @return string|false The path to the translation file or false if no translation file was found.
 */
function _get_path_to_translation_from_lang_dir($domain)
{
    static $cached_mofiles = null;
    if (null === $cached_mofiles) {
        $cached_mofiles = array();
        $locations = array(WP_LANG_DIR . '/plugins', WP_LANG_DIR . '/themes');
        foreach ($locations as $location) {
            $mofiles = glob($location . '/*.mo');
            if ($mofiles) {
                $cached_mofiles = array_merge($cached_mofiles, $mofiles);
            }
        }
    }
    $locale = determine_locale();
    $mofile = "{$domain}-{$locale}.mo";
    $path = WP_LANG_DIR . '/plugins/' . $mofile;
    if (in_array($path, $cached_mofiles)) {
        return $path;
    }
    $path = WP_LANG_DIR . '/themes/' . $mofile;
    if (in_array($path, $cached_mofiles)) {
        return $path;
    }
    return false;
}

WordPress Version: 5.0

/**
 * Gets the path to a translation file in the languages directory for the current locale.
 *
 * Holds a cached list of available .mo files to improve performance.
 *
 * @since 4.7.0
 * @access private
 *
 * @see _get_path_to_translation()
 *
 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 * @return string|false The path to the translation file or false if no translation file was found.
 */
function _get_path_to_translation_from_lang_dir($domain)
{
    static $cached_mofiles = null;
    if (null === $cached_mofiles) {
        $cached_mofiles = array();
        $locations = array(WP_LANG_DIR . '/plugins', WP_LANG_DIR . '/themes');
        foreach ($locations as $location) {
            $mofiles = glob($location . '/*.mo');
            if ($mofiles) {
                $cached_mofiles = array_merge($cached_mofiles, $mofiles);
            }
        }
    }
    $locale = determine_locale();
    $mofile = "{$domain}-{$locale}.mo";
    $path = WP_LANG_DIR . '/plugins/' . $mofile;
    if (in_array($path, $cached_mofiles)) {
        return $path;
    }
    $path = WP_LANG_DIR . '/themes/' . $mofile;
    if (in_array($path, $cached_mofiles)) {
        return $path;
    }
    return false;
}

WordPress Version: 4.7

/**
 * Gets the path to a translation file in the languages directory for the current locale.
 *
 * Holds a cached list of available .mo files to improve performance.
 *
 * @since 4.7.0
 * @access private
 *
 * @see _get_path_to_translation()
 *
 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 * @return string|false The path to the translation file or false if no translation file was found.
 */
function _get_path_to_translation_from_lang_dir($domain)
{
    static $cached_mofiles = null;
    if (null === $cached_mofiles) {
        $cached_mofiles = array();
        $locations = array(WP_LANG_DIR . '/plugins', WP_LANG_DIR . '/themes');
        foreach ($locations as $location) {
            $mofiles = glob($location . '/*.mo');
            if ($mofiles) {
                $cached_mofiles = array_merge($cached_mofiles, $mofiles);
            }
        }
    }
    $locale = is_admin() ? get_user_locale() : get_locale();
    $mofile = "{$domain}-{$locale}.mo";
    $path = WP_LANG_DIR . '/plugins/' . $mofile;
    if (in_array($path, $cached_mofiles)) {
        return $path;
    }
    $path = WP_LANG_DIR . '/themes/' . $mofile;
    if (in_array($path, $cached_mofiles)) {
        return $path;
    }
    return false;
}