prefix . '_languages'; $translations = wp_get_available_translations(); $installed = get_available_languages(); $installed[] = 'en_US'; $installed = array_unique($installed); $languages = [ 'en_US' => [ 'language' => 'en_US', 'english_name' => 'English', 'native_name' => 'English', ], ]; foreach ($translations as $locale => $translation) { $languages[$locale] = $translation; } $selected = get_user_meta( get_current_user_id(), $key, true ); if (!is_array($selected)) { $selected = []; } $selected = array_values( array_intersect( $selected, $installed ) ); echo '
'; echo '

Admin Language

'; echo '

'; echo 'Enjoying the plugin? '; echo 'Consider supporting its development. '; echo ''; echo '♥ Support the developer'; echo ''; echo '

'; echo '
'; wp_nonce_field('admin_language_save'); echo '

'; submit_button( 'Save', 'primary', $this->prefix . '_save', false ); echo '

'; echo '

Installed languages

'; echo '
'; foreach ($installed as $locale) { if (!isset($languages[$locale])) { continue; } $language = $languages[$locale]; echo ''; } echo '
'; echo '

Available languages

'; echo '
'; foreach ($languages as $locale => $language) { if (in_array($locale, $installed, true)) { continue; } echo '
'; echo ''; $url = add_query_arg( $this->prefix . '_download', $locale ); $url = wp_nonce_url( $url, $this->prefix . '_download_language' ); echo ''; echo 'Download'; echo ''; echo '
'; } echo '
'; echo '
'; echo '
';