WordPress.org

Make WordPress Core

Ticket #9794: 9794.2.diff

File 9794.2.diff, 1.6 KB (added by ryan, 9 years ago)

Sort by translated names, load continents-cities mo file

  • wp-includes/functions.php

     
    31063106 *
    31073107 */
    31083108function wp_timezone_choice($selectedzone) {
     3109        static $mo_loaded = false;
     3110
    31093111        $continents = array('Africa', 'America', 'Antarctica', 'Arctic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Indian', 'Pacific', 'Etc');
    31103112
     3113        // Load translations for continents and cities
     3114        if ( ! $mo_loaded ) {
     3115                $locale = get_locale();
     3116                $mofile = WP_LANG_DIR . "/continents-cities-$locale.mo";
     3117                load_textdomain('default', $mofile);
     3118                $mo_loaded = true;
     3119        }
     3120
    31113121        $all = timezone_identifiers_list();
    31123122
    31133123        $i = 0;
     
    31233133
    31243134        usort($zonen, create_function(
    31253135                '$a, $b', '
    3126                 if ( $a["continent"] == $b["continent"] && $a["city"] == $b["city"] )
    3127                         return strnatcasecmp($a["subcity"], $b["subcity"]);
    3128                 elseif ( $a["continent"] == $b["continent"] )
    3129                         return strnatcasecmp($a["city"], $b["city"]);
     3136                $a_continent = translate($a["continent"]);
     3137                $b_continent = translate($b["continent"]);
     3138                $a_city = translate($a["city"]);
     3139                $b_city = translate($b["city"]);
     3140                $a_subcity = translate($a["subcity"]);
     3141                $b_subcity = translate($b["subcity"]);
     3142                if ( $a_continent == $b_continent && $a_city == $b_city )
     3143                        return strnatcasecmp($a_subcity, $b_subcity);
     3144                elseif ( $a_continent == $b_continent )
     3145                        return strnatcasecmp($a_city, $b_city);
    31303146                else
    3131                         return strnatcasecmp($a["continent"], $b["continent"]);
     3147                        return strnatcasecmp($a_continent, $b_continent);
    31323148                '));
    31333149       
    31343150        $structure = '';