WordPress Version: 5.4
// See "import_allow_fetch_attachments" and "import_attachment_size_limit" filters too.
/**
* Generates and displays a drop-down of available languages.
*
* @since 3.0.0
*
* @param string[] $lang_files Optional. An array of the language files. Default empty array.
* @param string $current Optional. The current language code. Default empty.
*/
function mu_dropdown_languages($lang_files = array(), $current = '')
{
$flag = false;
$output = array();
foreach ((array) $lang_files as $val) {
$code_lang = basename($val, '.mo');
if ('en_US' === $code_lang) {
// American English.
$flag = true;
$ae = __('American English');
$output[$ae] = '<option value="' . esc_attr($code_lang) . '"' . selected($current, $code_lang, false) . '> ' . $ae . '</option>';
} elseif ('en_GB' === $code_lang) {
// British English.
$flag = true;
$be = __('British English');
$output[$be] = '<option value="' . esc_attr($code_lang) . '"' . selected($current, $code_lang, false) . '> ' . $be . '</option>';
} else {
$translated = format_code_lang($code_lang);
$output[$translated] = '<option value="' . esc_attr($code_lang) . '"' . selected($current, $code_lang, false) . '> ' . esc_html($translated) . '</option>';
}
}
if (false === $flag) {
// WordPress English.
$output[] = '<option value=""' . selected($current, '', false) . '>' . __('English') . '</option>';
}
// Order by name.
uksort($output, 'strnatcasecmp');
/**
* Filters the languages available in the dropdown.
*
* @since MU (3.0.0)
*
* @param string[] $output Array of HTML output for the dropdown.
* @param string[] $lang_files Array of available language files.
* @param string $current The current language code.
*/
$output = apply_filters('mu_dropdown_languages', $output, $lang_files, $current);
echo implode("\n\t", $output);
}