Make WordPress Core

Changeset 11332


Ignore:
Timestamp:
05/14/2009 06:58:37 PM (15 years ago)
Author:
ryan
Message:

Sort tz continents and cities by translated names. Load translations from separate mo to avoid cluttering default pot. Props Denis-de-Bernardy. see #9794

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/functions.php

    r11329 r11332  
    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');
     3112
     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    }
    31103120
    31113121    $all = timezone_identifiers_list();
     
    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   
     
    31523168
    31533169        if ( !empty($city) ) {
    3154             if ( !empty($subcity) ) {
    3155                 $city = $city . '/'. $subcity;
    3156             }
    31573170            $display = str_replace('_',' ',$city);
    31583171            $display = translate($display);
     3172            if ( !empty($subcity) ) {
     3173                $display_subcity = str_replace('_', ' ', $subcity);
     3174                $display_subcity = translate($display_subcity);
     3175                $city = $city . '/'. $subcity;
     3176                $display = $display . '/' . $display_subcity;
     3177            }
    31593178            if ( $continent == 'Etc' )
    31603179                $display = strtr($display, '+-', '-+');
Note: See TracChangeset for help on using the changeset viewer.