array( 'ne_NP' => __( 'Nepali', 'af-translate' ), 'hi_IN' => __( 'Hindi', 'af-translate' ), 'ja' => __( 'Japanese', 'af-translate' ), 'ko_KR' => __( 'Korean', 'af-translate' ), 'zh_CN' => __( 'Chinese (China)', 'af-translate' ), 'zh_TW' => __( 'Chinese (Taiwan)', 'af-translate' ), 'zh_HK' => __( 'Chinese (Hong Kong)', 'af-translate' ), 'th' => __( 'Thai', 'af-translate' ), 'vi' => __( 'Vietnamese', 'af-translate' ), 'id_ID' => __( 'Indonesian', 'af-translate' ), 'as' => __( 'Assamese', 'af-translate' ), 'bn_BD' => __( 'Bengali (Bangladesh)', 'af-translate' ), 'bo' => __( 'Tibetan', 'af-translate' ), 'ceb' => __( 'Cebuano', 'af-translate' ), 'dzo' => __( 'Dzongkha', 'af-translate' ), 'gu' => __( 'Gujarati', 'af-translate' ), 'haz' => __( 'Hazaragi', 'af-translate' ), 'jv' => __( 'Javanese', 'af-translate' ), 'ka_GE' => __( 'Georgian', 'af-translate' ), 'kn' => __( 'Kannada', 'af-translate' ), 'lo' => __( 'Lao', 'af-translate' ), 'ml_IN' => __( 'Malayalam', 'af-translate' ), 'mn' => __( 'Mongolian', 'af-translate' ), 'mr' => __( 'Marathi', 'af-translate' ), 'ms_MY' => __( 'Malay', 'af-translate' ), 'my_MM' => __( 'Myanmar (Burmese)', 'af-translate' ), 'pa_IN' => __( 'Panjabi (India)', 'af-translate' ), 'si_LK' => __( 'Sinhala', 'af-translate' ), 'skr' => __( 'Saraiki', 'af-translate' ), 'ta_IN' => __( 'Tamil', 'af-translate' ), 'ta_LK' => __( 'Tamil (Sri Lanka)', 'af-translate' ), 'te' => __( 'Telugu', 'af-translate' ), 'tl' => __( 'Tagalog', 'af-translate' ), 'tah' => __( 'Tahitian', 'af-translate' ), 'ug_CN' => __( 'Uighur', 'af-translate' ), 'ur' => __( 'Urdu', 'af-translate' ), 'uz_UZ' => __( 'Uzbek', 'af-translate' ), ), __( 'Europe', 'af-translate' ) => array( 'de_DE' => __( 'German', 'af-translate' ), 'de_CH' => __( 'German (Switzerland)', 'af-translate' ), 'de_AT' => __( 'German (Austria)', 'af-translate' ), 'de_DE_formal' => __( 'German (Formal)', 'af-translate' ), 'de_CH_informal' => __( 'German (Switzerland, Informal)', 'af-translate' ), 'fr_FR' => __( 'French (France)', 'af-translate' ), 'fr_BE' => __( 'French (Belgium)', 'af-translate' ), 'it_IT' => __( 'Italian', 'af-translate' ), 'pl_PL' => __( 'Polish', 'af-translate' ), 'es_ES' => __( 'Spanish (Spain)', 'af-translate' ), 'sv_SE' => __( 'Swedish', 'af-translate' ), 'uk' => __( 'Ukrainian', 'af-translate' ), 'nl_NL' => __( 'Dutch', 'af-translate' ), 'nl_BE' => __( 'Dutch (Belgium)', 'af-translate' ), 'nl_NL_formal' => __( 'Dutch (Formal)', 'af-translate' ), 'pt_PT' => __( 'Portuguese (Portugal)', 'af-translate' ), 'pt_PT_ao90' => __( 'Portuguese (Portugal, AO90)', 'af-translate' ), 'ru_RU' => __( 'Russian', 'af-translate' ), 'fi' => __( 'Finnish', 'af-translate' ), 'da_DK' => __( 'Danish', 'af-translate' ), 'nb_NO' => __( 'Norwegian (Bokmål)', 'af-translate' ), 'nn_NO' => __( 'Norwegian (Nynorsk)', 'af-translate' ), 'el' => __( 'Greek', 'af-translate' ), 'an' => __( 'Aragonese', 'af-translate' ), 'az' => __( 'Azerbaijani', 'af-translate' ), 'be_BY' => __( 'Belarusian', 'af-translate' ), 'bg_BG' => __( 'Bulgarian', 'af-translate' ), 'bs_BA' => __( 'Bosnian', 'af-translate' ), 'ca' => __( 'Catalan', 'af-translate' ), 'cs_CZ' => __( 'Czech', 'af-translate' ), 'cy' => __( 'Welsh', 'af-translate' ), 'dsb' => __( 'Lower Sorbian', 'af-translate' ), 'hsb' => __( 'Upper Sorbian', 'af-translate' ), 'eo' => __( 'Esperanto', 'af-translate' ), 'et' => __( 'Estonian', 'af-translate' ), 'eu' => __( 'Basque', 'af-translate' ), 'fur' => __( 'Friulian', 'af-translate' ), 'fy' => __( 'Frisian', 'af-translate' ), 'gd' => __( 'Scottish Gaelic', 'af-translate' ), 'gl_ES' => __( 'Galician', 'af-translate' ), 'hr' => __( 'Croatian', 'af-translate' ), 'hu_HU' => __( 'Hungarian', 'af-translate' ), 'hy' => __( 'Armenian', 'af-translate' ), 'is_IS' => __( 'Icelandic', 'af-translate' ), 'lt_LT' => __( 'Lithuanian', 'af-translate' ), 'lv' => __( 'Latvian', 'af-translate' ), 'mk_MK' => __( 'Macedonian', 'af-translate' ), 'oc' => __( 'Occitan', 'af-translate' ), 'ro_RO' => __( 'Romanian', 'af-translate' ), 'sah' => __( 'Sakha', 'af-translate' ), 'sk_SK' => __( 'Slovak', 'af-translate' ), 'sl_SI' => __( 'Slovenian', 'af-translate' ), 'sq' => __( 'Albanian', 'af-translate' ), 'sr_RS' => __( 'Serbian', 'af-translate' ), 'szl' => __( 'Silesian', 'af-translate' ), 'tr_TR' => __( 'Turkish', 'af-translate' ), 'tt_RU' => __( 'Tatar', 'af-translate' ), ), __( 'Americas', 'af-translate' ) => array( 'en_US' => __( 'English (United States)', 'af-translate' ), 'en_CA' => __( 'English (Canada)', 'af-translate' ), 'fr_CA' => __( 'French (Canada)', 'af-translate' ), 'es_MX' => __( 'Spanish (Mexico)', 'af-translate' ), 'es_PE' => __( 'Spanish (Peru)', 'af-translate' ), 'es_VE' => __( 'Spanish (Venezuela)', 'af-translate' ), 'es_EC' => __( 'Spanish (Ecuador)', 'af-translate' ), 'es_DO' => __( 'Spanish (Dominican Republic)', 'af-translate' ), 'es_UY' => __( 'Spanish (Uruguay)', 'af-translate' ), 'es_PR' => __( 'Spanish (Puerto Rico)', 'af-translate' ), 'es_GT' => __( 'Spanish (Guatemala)', 'af-translate' ), 'es_CL' => __( 'Spanish (Chile)', 'af-translate' ), 'es_CR' => __( 'Spanish (Costa Rica)', 'af-translate' ), 'es_AR' => __( 'Spanish (Argentina)', 'af-translate' ), 'es_CO' => __( 'Spanish (Colombia)', 'af-translate' ), 'pt_BR' => __( 'Portuguese (Brazil)', 'af-translate' ), ), __( 'Middle East & Africa', 'af-translate' ) => array( 'ar' => __( 'Arabic', 'af-translate' ), 'ara_MA' => __( 'Moroccan Arabic', 'af-translate' ), 'azb' => __( 'South Azerbaijani', 'af-translate' ), 'he_IL' => __( 'Hebrew', 'af-translate' ), 'fa_IR' => __( 'Persian', 'af-translate' ), 'fa_AF' => __( 'Persian (Afghanistan)', 'af-translate' ), 'af' => __( 'Afrikaans', 'af-translate' ), 'am' => __( 'Amharic', 'af-translate' ), 'kab' => __( 'Kabyle', 'af-translate' ), 'kk' => __( 'Kazakh', 'af-translate' ), 'km' => __( 'Khmer', 'af-translate' ), 'ky_KG' => __( 'Kyrgyz', 'af-translate' ), 'ps' => __( 'Pashto', 'af-translate' ), 'pt_AO' => __( 'Portuguese (Angola)', 'af-translate' ), 'snd' => __( 'Sindhi', 'af-translate' ), 'sw' => __( 'Swahili', 'af-translate' ), 'yo' => __( 'Yoruba', 'af-translate' ), 'en_NZ' => __( 'English (New Zealand)', 'af-translate' ), 'en_AU' => __( 'English (Australia)', 'af-translate' ), 'en_ZA' => __( 'English (South Africa)', 'af-translate' ), 'en_GB' => __( 'English (UK)', 'af-translate' ), 'rhg' => __( 'Rohingya', 'af-translate' ), ) ); /** * Allows third-party extensions to securely add, modify, or extend regional localized arrays. */ return apply_filters( 'af_translate_grouped_locales', $locales ); } /** * Flattened map interface utility layer for back-compat row tracking conversions. * * @return array Flat key-value pair translation schema tracking list. */ public static function get_locales() { $flat = array(); foreach ( self::get_grouped_locales() as $region => $langs ) { foreach ( $langs as $code => $name ) { $flat[$code] = $name; } } return $flat; } /** * Checks what dynamic localization languages are actually installed inside standard system roots. * Hardened to run natively via core APIs rather than relying on heavy file-system glob lookups. * * @return array Unique list of clean locale handles. */ public static function get_installed_site_locales() { // Safe standard fallback defaults initialization $installed = array( 'en_US' ); $current_site_lang = get_locale(); if ( ! empty( $current_site_lang ) ) { $installed[] = $current_site_lang; } // Harness native core caching engine calculations instead of raw file system scans $core_available_languages = get_available_languages(); if ( ! empty( $core_available_languages ) && is_array( $core_available_languages ) ) { foreach ( $core_available_languages as $locale_slug ) { // Filter out non-standard setup file names safely matching your legacy architecture filtering if ( ! empty( $locale_slug ) && 'admin' !== substr( $locale_slug, 0, 5 ) ) { $installed[] = $locale_slug; } } } return array_unique( array_filter( $installed ) ); } }