The get_available_languages WordPress PHP filter allows you to modify the list of available language codes in your WordPress site.
Usage
add_filter('get_available_languages', 'your_custom_function', 10, 2);
function your_custom_function($languages, $dir) {
// your custom code here
return $languages;
}
Parameters
$languages(string[]): An array of available language codes.$dir(string): The directory where the language files were found.
More information
See WordPress Developer Resources: get_available_languages
Examples
Add a custom language
Add a custom language code to the list of available languages.
add_filter('get_available_languages', 'add_custom_language', 10, 2);
function add_custom_language($languages, $dir) {
$languages[] = 'my-custom-language';
return $languages;
}
Remove a specific language
Remove the Spanish language code from the list of available languages.
add_filter('get_available_languages', 'remove_spanish_language', 10, 2);
function remove_spanish_language($languages, $dir) {
if(($key = array_search('es_ES', $languages)) !== false) {
unset($languages[$key]);
}
return $languages;
}
Only allow specific languages
Restrict the list of available languages to English and French.
add_filter('get_available_languages', 'allow_specific_languages', 10, 2);
function allow_specific_languages($languages, $dir) {
return array('en_US', 'fr_FR');
}
Change language directory
Change the directory where the language files are found.
add_filter('get_available_languages', 'change_language_directory', 10, 2);
function change_language_directory($languages, $dir) {
$new_dir = '/your/new/directory';
return get_available_languages($new_dir);
}
Sort languages alphabetically
Sort the list of available languages alphabetically.
add_filter('get_available_languages', 'sort_languages_alphabetically', 10, 2);
function sort_languages_alphabetically($languages, $dir) {
sort($languages);
return $languages;
}