Gets all available languages based on the presence of *.mo and *.l10n.php files in a given directory.
Description
The default directory is WP_LANG_DIR.
Parameters
$dir
stringoptional- A directory to search for language files.
Default WP_LANG_DIR.Default:
null
Source
function get_available_languages( $dir = null ) {
global $wp_textdomain_registry;
$languages = array();
$path = is_null( $dir ) ? WP_LANG_DIR : $dir;
$lang_files = $wp_textdomain_registry->get_language_files_from_path( $path );
if ( $lang_files ) {
foreach ( $lang_files as $lang_file ) {
$lang_file = basename( $lang_file, '.mo' );
$lang_file = basename( $lang_file, '.l10n.php' );
if ( ! str_starts_with( $lang_file, 'continents-cities' ) && ! str_starts_with( $lang_file, 'ms-' ) &&
! str_starts_with( $lang_file, 'admin-' ) ) {
$languages[] = $lang_file;
}
}
}
/**
* Filters the list of available language codes.
*
* @since 4.7.0
*
* @param string[] $languages An array of available language codes.
* @param string $dir The directory where the language files were found.
*/
return apply_filters( 'get_available_languages', array_unique( $languages ), $dir );
}
Hooks
- apply_filters( ‘get_available_languages’,
string[] $languages ,string $dir ) Filters the list of available language codes.
Changelog
Version | Description |
---|---|
6.5.0 | The initial file list is now cached and also takes into account *.l10n.php files. |
4.7.0 | The results are now filterable with the 'get_available_languages' filter. |
3.0.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.