| @@ -18,9 +18,9 @@ | ||
| 18 | 18 | 'bg_BG' => __( 'Bulgarian', 'bogo' ), |
| 19 | 19 | 'bn_BD' => __( 'Bangla', 'bogo' ), |
| 20 | 20 | 'bn_IN' => __( 'Indian Bengali', 'bogo' ), |
| 21 | 21 | 'bo' => __( 'Tibetan', 'bogo' ), |
| 22 | - 'bs' => __( 'Bosnian', 'bogo' ), | |
| 22 | + 'bs_BA' => __( 'Bosnian', 'bogo' ), | |
| 23 | 23 | 'ca' => __( 'Catalan', 'bogo' ), |
| 24 | 24 | 'ckb' => __( 'Central Kurdish', 'bogo' ), |
| 25 | 25 | 'co' => __( 'Corsican', 'bogo' ), |
| 26 | 26 | 'cs_CZ' => __( 'Czech', 'bogo' ), |
| @@ -28,24 +28,24 @@ | ||
| 28 | 28 | 'da_DK' => __( 'Danish', 'bogo' ), |
| 29 | 29 | 'de_DE' => __( 'German', 'bogo' ), |
| 30 | 30 | 'dv' => __( 'Dhivehi', 'bogo' ), |
| 31 | 31 | 'el' => __( 'Greek', 'bogo' ), |
| 32 | - 'en_US' => __( 'English', 'bogo' ), | |
| 33 | - 'en_AU' => __( 'Australian English', 'bogo' ), | |
| 34 | - 'en_CA' => __( 'Canadian English', 'bogo' ), | |
| 35 | - 'en_GB' => __( 'British English', 'bogo' ), | |
| 32 | + 'en_US' => __( 'English (United States)', 'bogo' ), | |
| 33 | + 'en_AU' => __( 'English (Australia)', 'bogo' ), | |
| 34 | + 'en_CA' => __( 'English (Canada)', 'bogo' ), | |
| 35 | + 'en_GB' => __( 'English (UK)', 'bogo' ), | |
| 36 | 36 | 'eo' => __( 'Esperanto', 'bogo' ), |
| 37 | - 'es_ES' => __( 'Spanish', 'bogo' ), | |
| 38 | - 'es_CL' => __( 'Chilean Spanish', 'bogo' ), | |
| 37 | + 'es_ES' => __( 'Spanish (Spain)', 'bogo' ), | |
| 38 | + 'es_CL' => __( 'Spanish (Chile)', 'bogo' ), | |
| 39 | 39 | 'es_MX' => __( 'Mexican Spanish', 'bogo' ), |
| 40 | - 'es_PE' => __( 'Peruvian Spanish', 'bogo' ), | |
| 41 | - 'es_VE' => __( 'Venezuelan Spanish', 'bogo' ), | |
| 40 | + 'es_PE' => __( 'Spanish (Peru)', 'bogo' ), | |
| 41 | + 'es_VE' => __( 'Spanish (Venezuela)', 'bogo' ), | |
| 42 | 42 | 'et' => __( 'Estonian', 'bogo' ), |
| 43 | 43 | 'eu' => __( 'Basque', 'bogo' ), |
| 44 | 44 | 'fa_IR' => __( 'Persian', 'bogo' ), |
| 45 | 45 | 'fi' => __( 'Finnish', 'bogo' ), |
| 46 | 46 | 'fo' => __( 'Faroese', 'bogo' ), |
| 47 | - 'fr_FR' => __( 'French', 'bogo' ), | |
| 47 | + 'fr_FR' => __( 'French (France)', 'bogo' ), | |
| 48 | 48 | 'fy' => __( 'Frisian', 'bogo' ), |
| 49 | 49 | 'ga' => __( 'Irish', 'bogo' ), |
| 50 | 50 | 'gd' => __( 'Scottish Gaelic', 'bogo' ), |
| 51 | 51 | 'gl_ES' => __( 'Galician', 'bogo' ), |
| @@ -77,9 +77,9 @@ | ||
| 77 | 77 | 'mr' => __( 'Marathi', 'bogo' ), |
| 78 | 78 | 'ms_MY' => __( 'Malay', 'bogo' ), |
| 79 | 79 | 'mt_MT' => __( 'Maltese', 'bogo' ), |
| 80 | 80 | 'my_MM' => __( 'Burmese', 'bogo' ), |
| 81 | - 'nb_NO' => __( 'Norwegian', 'bogo' ), | |
| 81 | + 'nb_NO' => __( 'Norwegian (Bokmål)', 'bogo' ), | |
| 82 | 82 | 'ne_NP' => __( 'Nepali', 'bogo' ), |
| 83 | 83 | 'ni_ID' => __( 'Nias', 'bogo' ), |
| 84 | 84 | 'nl_NL' => __( 'Dutch', 'bogo' ), |
| 85 | 85 | 'os' => __( 'Ossetic', 'bogo' ), |
| @@ -84,10 +84,10 @@ | ||
| 84 | 84 | 'nl_NL' => __( 'Dutch', 'bogo' ), |
| 85 | 85 | 'os' => __( 'Ossetic', 'bogo' ), |
| 86 | 86 | 'pa_IN' => __( 'Punjabi', 'bogo' ), |
| 87 | 87 | 'pl_PL' => __( 'Polish', 'bogo' ), |
| 88 | - 'pt_BR' => __( 'Brazilian Portuguese', 'bogo' ), | |
| 89 | - 'pt_PT' => __( 'Portuguese', 'bogo' ), | |
| 88 | + 'pt_BR' => __( 'Portuguese (Brazil)', 'bogo' ), | |
| 89 | + 'pt_PT' => __( 'Portuguese (Portugal)', 'bogo' ), | |
| 90 | 90 | 'ro_RO' => __( 'Romanian', 'bogo' ), |
| 91 | 91 | 'ru_RU' => __( 'Russian', 'bogo' ), |
| 92 | 92 | 'sa_IN' => __( 'Sanskrit', 'bogo' ), |
| 93 | 93 | 'si_LK' => __( 'Sinhala', 'bogo' ), |
| @@ -110,12 +110,14 @@ | ||
| 110 | 110 | 'uk' => __( 'Ukrainian', 'bogo' ), |
| 111 | 111 | 'ur' => __( 'Urdu', 'bogo' ), |
| 112 | 112 | 'uz_UZ' => __( 'Uzbek', 'bogo' ), |
| 113 | 113 | 'vi' => __( 'Vietnamese', 'bogo' ), |
| 114 | - 'zh_CN' => __( 'Chinese', 'bogo' ), | |
| 115 | - 'zh_TW' => __( 'Traditional Chinese', 'bogo' ) | |
| 114 | + 'zh_CN' => __( 'Chinese (China)', 'bogo' ), | |
| 115 | + 'zh_TW' => __( 'Chinese (Taiwan)', 'bogo' ) | |
| 116 | 116 | ); |
| 117 | 117 | |
| 118 | + asort( $languages, SORT_STRING ); | |
| 119 | + | |
| 118 | 120 | $languages = apply_filters( 'bogo_languages', $languages ); |
| 119 | 121 | |
| 120 | 122 | return $languages; |
| 121 | 123 | } |
| @@ -129,21 +131,32 @@ | ||
| 129 | 131 | return null; |
| 130 | 132 | } |
| 131 | 133 | |
| 132 | 134 | function bogo_get_default_locale() { |
| 133 | - if ( defined( 'WPLANG' ) ) | |
| 135 | + if ( defined( 'WPLANG' ) ) { | |
| 134 | 136 | $locale = WPLANG; |
| 137 | + } | |
| 135 | 138 | |
| 136 | 139 | if ( is_multisite() ) { |
| 137 | - if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) ) | |
| 140 | + if ( defined( 'WP_INSTALLING' ) | |
| 141 | + || ( false === $ms_locale = get_option( 'WPLANG' ) ) ) { | |
| 138 | 142 | $ms_locale = get_site_option( 'WPLANG' ); |
| 143 | + } | |
| 139 | 144 | |
| 140 | - if ( $ms_locale !== false ) | |
| 145 | + if ( $ms_locale !== false ) { | |
| 141 | 146 | $locale = $ms_locale; |
| 147 | + } | |
| 148 | + } else { | |
| 149 | + $db_locale = get_option( 'WPLANG' ); | |
| 150 | + | |
| 151 | + if ( $db_locale !== false ) { | |
| 152 | + $locale = $db_locale; | |
| 153 | + } | |
| 142 | 154 | } |
| 143 | 155 | |
| 144 | - if ( empty( $locale ) ) | |
| 156 | + if ( empty( $locale ) ) { | |
| 145 | 157 | $locale = 'en_US'; |
| 158 | + } | |
| 146 | 159 | |
| 147 | 160 | return $locale; |
| 148 | 161 | } |
| 149 | 162 | |
| @@ -221,9 +234,19 @@ | ||
| 221 | 234 | return $langs; |
| 222 | 235 | } |
| 223 | 236 | |
| 224 | 237 | function bogo_is_available_locale( $locale ) { |
| 225 | - return ! empty( $locale ) && in_array( $locale, bogo_available_locales() ); | |
| 238 | + if ( empty( $locale ) ) { | |
| 239 | + return false; | |
| 240 | + } | |
| 241 | + | |
| 242 | + static $available_locales = array(); | |
| 243 | + | |
| 244 | + if ( empty( $available_locales ) ) { | |
| 245 | + $available_locales = bogo_available_locales(); | |
| 246 | + } | |
| 247 | + | |
| 248 | + return in_array( $locale, $available_locales ); | |
| 226 | 249 | } |
| 227 | 250 | |
| 228 | 251 | function bogo_filter_locales( $locales, $filter = 'available' ) { |
| 229 | 252 | return array_intersect( $locales, bogo_available_locales() ); |