Making WordPress.org


Ignore:
Timestamp:
05/15/2015 07:19:57 PM (11 years ago)
Author:
ocean90
Message:

Translate: "Locales & Languages" page:

  • Copy GlotPress' locale template to our theme.
  • Move index and locale routes do its own files.
  • Register routes for /language/$locale/$set/$project.

see #994.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/translate.wordpress.org/includes/gp-plugins/wporg-routes/wporg-routes.php

    r1530 r1586  
    55 * @author ocean90
    66 */
     7
     8require_once __DIR__ . '/routes/index.php';
     9require_once __DIR__ . '/routes/locale.php';
     10
    711class GP_WPorg_Routes extends GP_Plugin {
    812    public $id = 'wporg-routes';
     
    1418
    1519    public function init() {
     20        $locale = '(' . implode( '|', array_map( function( $locale ) { return $locale->slug; }, GP_Locales::locales() ) ) . ')';
     21        $set_slug = '(' . implode( '|', GP::$translation_set->existing_slugs() ) . ')';
     22
    1623        /*
    1724         * Unset default routes.
     
    1926         */
    2027        unset( GP::$router->urls['/'] );
     28        unset( GP::$router->urls["get:/languages/$locale/$set_slug"] );
     29        unset( GP::$router->urls["get:/languages/$locale"] );
    2130        unset( GP::$router->urls['get:/languages'] );
    2231
    23         GP::$router->add( '/', array( 'GP_WPorg_Route_Index', 'index' ) );
    24         GP::$router->add( '/languages', array( 'GP_WPorg_Route_Locale', 'locales_get' ) );
    25     }
    26 }
    27 
    28 class GP_WPorg_Route_Locale extends GP_Route {
    29 
    30     public function locales_get() {
    31         $locales = array();
    32         $existing_locales = GP::$translation_set->existing_locales();
    33         foreach ( $existing_locales as $locale ) {
    34             $locales[] = GP_Locales::by_slug( $locale );
    35         }
    36         usort( $locales, array( $this, 'sort_locales') );
    37         unset( $existing_locales );
    38 
    39         $contributors_count = wp_cache_get( 'contributors-count', 'wporg-translate' );
    40         if ( false === $contributors_count ) {
    41             $contributors_count = array();
    42         }
    43 
    44         $translation_status = wp_cache_get( 'translation-status', 'wporg-translate' );
    45         if ( false === $translation_status ) {
    46             $translation_status = array();
    47         }
    48 
    49         $this->tmpl( 'locales', get_defined_vars() );
    50     }
    51 
    52     private function sort_locales( $a, $b ) {
    53         return $a->english_name > $b->english_name;
    54     }
    55 }
    56 
    57 class GP_WPorg_Route_Index extends GP_Route {
    58 
    59     public function index() {
    60         $this->redirect( gp_url( '/languages' ) );
     32        GP::$router->add( '/', array( 'GP_WPorg_Route_Index', 'get_index' ) );
     33        GP::$router->add( '/languages', array( 'GP_WPorg_Route_Locale', 'get_locales' ) );
     34        GP::$router->add( "/languages/$locale/$set_slug/(.+?)", array( 'GP_WPorg_Route_Locale', 'get_locale_projects' ) );
     35        GP::$router->add( "/languages/$locale/$set_slug", array( 'GP_WPorg_Route_Locale', 'get_locale_projects' ) );
     36        GP::$router->add( "/languages/$locale", array( 'GP_WPorg_Route_Locale', 'get_locale_projects' ) );
    6137    }
    6238}
Note: See TracChangeset for help on using the changeset viewer.