[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/ -> locale.php (source)

   1  <?php
   2  /**
   3   * Date and Time Locale object
   4   *
   5   * @package WordPress
   6   * @subpackage i18n
   7   */
   8  
   9  /**
  10   * Class that loads the calendar locale.
  11   *
  12   * @since 2.1.0
  13   */
  14  class WP_Locale {
  15      /**
  16       * Stores the translated strings for the full weekday names.
  17       *
  18       * @since 2.1.0
  19       * @var array
  20       * @access private
  21       */
  22      var $weekday;
  23  
  24      /**
  25       * Stores the translated strings for the one character weekday names.
  26       *
  27       * There is a hack to make sure that Tuesday and Thursday, as well
  28       * as Sunday and Saturday, don't conflict. See init() method for more.
  29       *
  30       * @see WP_Locale::init() for how to handle the hack.
  31       *
  32       * @since 2.1.0
  33       * @var array
  34       * @access private
  35       */
  36      var $weekday_initial;
  37  
  38      /**
  39       * Stores the translated strings for the abbreviated weekday names.
  40       *
  41       * @since 2.1.0
  42       * @var array
  43       * @access private
  44       */
  45      var $weekday_abbrev;
  46  
  47      /**
  48       * Stores the translated strings for the full month names.
  49       *
  50       * @since 2.1.0
  51       * @var array
  52       * @access private
  53       */
  54      var $month;
  55  
  56      /**
  57       * Stores the translated strings for the abbreviated month names.
  58       *
  59       * @since 2.1.0
  60       * @var array
  61       * @access private
  62       */
  63      var $month_abbrev;
  64  
  65      /**
  66       * Stores the translated strings for 'am' and 'pm'.
  67       *
  68       * Also the capitalized versions.
  69       *
  70       * @since 2.1.0
  71       * @var array
  72       * @access private
  73       */
  74      var $meridiem;
  75  
  76      /**
  77       * The text direction of the locale language.
  78       *
  79       * Default is left to right 'ltr'.
  80       *
  81       * @since 2.1.0
  82       * @var string
  83       * @access private
  84       */
  85      var $text_direction = 'ltr';
  86  
  87      /**
  88       * Sets up the translated strings and object properties.
  89       *
  90       * The method creates the translatable strings for various
  91       * calendar elements. Which allows for specifying locale
  92       * specific calendar names and text direction.
  93       *
  94       * @since 2.1.0
  95       * @access private
  96       */
  97  	function init() {
  98          // The Weekdays
  99          $this->weekday[0] = /* translators: weekday */ __('Sunday');
 100          $this->weekday[1] = /* translators: weekday */ __('Monday');
 101          $this->weekday[2] = /* translators: weekday */ __('Tuesday');
 102          $this->weekday[3] = /* translators: weekday */ __('Wednesday');
 103          $this->weekday[4] = /* translators: weekday */ __('Thursday');
 104          $this->weekday[5] = /* translators: weekday */ __('Friday');
 105          $this->weekday[6] = /* translators: weekday */ __('Saturday');
 106  
 107          // The first letter of each day. The _%day%_initial suffix is a hack to make
 108          // sure the day initials are unique.
 109          $this->weekday_initial[__('Sunday')]    = /* translators: one-letter abbreviation of the weekday */ __('S_Sunday_initial');
 110          $this->weekday_initial[__('Monday')]    = /* translators: one-letter abbreviation of the weekday */ __('M_Monday_initial');
 111          $this->weekday_initial[__('Tuesday')]   = /* translators: one-letter abbreviation of the weekday */ __('T_Tuesday_initial');
 112          $this->weekday_initial[__('Wednesday')] = /* translators: one-letter abbreviation of the weekday */ __('W_Wednesday_initial');
 113          $this->weekday_initial[__('Thursday')]  = /* translators: one-letter abbreviation of the weekday */ __('T_Thursday_initial');
 114          $this->weekday_initial[__('Friday')]    = /* translators: one-letter abbreviation of the weekday */ __('F_Friday_initial');
 115          $this->weekday_initial[__('Saturday')]  = /* translators: one-letter abbreviation of the weekday */ __('S_Saturday_initial');
 116  
 117          foreach ($this->weekday_initial as $weekday_ => $weekday_initial_) {
 118              $this->weekday_initial[$weekday_] = preg_replace('/_.+_initial$/', '', $weekday_initial_);
 119          }
 120  
 121          // Abbreviations for each day.
 122          $this->weekday_abbrev[__('Sunday')]    = /* translators: three-letter abbreviation of the weekday */ __('Sun');
 123          $this->weekday_abbrev[__('Monday')]    = /* translators: three-letter abbreviation of the weekday */ __('Mon');
 124          $this->weekday_abbrev[__('Tuesday')]   = /* translators: three-letter abbreviation of the weekday */ __('Tue');
 125          $this->weekday_abbrev[__('Wednesday')] = /* translators: three-letter abbreviation of the weekday */ __('Wed');
 126          $this->weekday_abbrev[__('Thursday')]  = /* translators: three-letter abbreviation of the weekday */ __('Thu');
 127          $this->weekday_abbrev[__('Friday')]    = /* translators: three-letter abbreviation of the weekday */ __('Fri');
 128          $this->weekday_abbrev[__('Saturday')]  = /* translators: three-letter abbreviation of the weekday */ __('Sat');
 129  
 130          // The Months
 131          $this->month['01'] = /* translators: month name */ __('January');
 132          $this->month['02'] = /* translators: month name */ __('February');
 133          $this->month['03'] = /* translators: month name */ __('March');
 134          $this->month['04'] = /* translators: month name */ __('April');
 135          $this->month['05'] = /* translators: month name */ __('May');
 136          $this->month['06'] = /* translators: month name */ __('June');
 137          $this->month['07'] = /* translators: month name */ __('July');
 138          $this->month['08'] = /* translators: month name */ __('August');
 139          $this->month['09'] = /* translators: month name */ __('September');
 140          $this->month['10'] = /* translators: month name */ __('October');
 141          $this->month['11'] = /* translators: month name */ __('November');
 142          $this->month['12'] = /* translators: month name */ __('December');
 143  
 144          // Abbreviations for each month. Uses the same hack as above to get around the
 145          // 'May' duplication.
 146          $this->month_abbrev[__('January')] = /* translators: three-letter abbreviation of the month */ __('Jan_January_abbreviation');
 147          $this->month_abbrev[__('February')] = /* translators: three-letter abbreviation of the month */ __('Feb_February_abbreviation');
 148          $this->month_abbrev[__('March')] = /* translators: three-letter abbreviation of the month */ __('Mar_March_abbreviation');
 149          $this->month_abbrev[__('April')] = /* translators: three-letter abbreviation of the month */ __('Apr_April_abbreviation');
 150          $this->month_abbrev[__('May')] = /* translators: three-letter abbreviation of the month */ __('May_May_abbreviation');
 151          $this->month_abbrev[__('June')] = /* translators: three-letter abbreviation of the month */ __('Jun_June_abbreviation');
 152          $this->month_abbrev[__('July')] = /* translators: three-letter abbreviation of the month */ __('Jul_July_abbreviation');
 153          $this->month_abbrev[__('August')] = /* translators: three-letter abbreviation of the month */ __('Aug_August_abbreviation');
 154          $this->month_abbrev[__('September')] = /* translators: three-letter abbreviation of the month */ __('Sep_September_abbreviation');
 155          $this->month_abbrev[__('October')] = /* translators: three-letter abbreviation of the month */ __('Oct_October_abbreviation');
 156          $this->month_abbrev[__('November')] = /* translators: three-letter abbreviation of the month */ __('Nov_November_abbreviation');
 157          $this->month_abbrev[__('December')] = /* translators: three-letter abbreviation of the month */ __('Dec_December_abbreviation');
 158  
 159          foreach ($this->month_abbrev as $month_ => $month_abbrev_) {
 160              $this->month_abbrev[$month_] = preg_replace('/_.+_abbreviation$/', '', $month_abbrev_);
 161          }
 162  
 163          // The Meridiems
 164          $this->meridiem['am'] = __('am');
 165          $this->meridiem['pm'] = __('pm');
 166          $this->meridiem['AM'] = __('AM');
 167          $this->meridiem['PM'] = __('PM');
 168  
 169          // Numbers formatting
 170          // See http://php.net/number_format
 171  
 172          /* translators: $thousands_sep argument for http://php.net/number_format, default is , */
 173          $trans = __('number_format_thousands_sep');
 174          $this->number_format['thousands_sep'] = ('number_format_thousands_sep' == $trans) ? ',' : $trans;
 175  
 176          /* translators: $dec_point argument for http://php.net/number_format, default is . */
 177          $trans = __('number_format_decimal_point');
 178          $this->number_format['decimal_point'] = ('number_format_decimal_point' == $trans) ? '.' : $trans;
 179  
 180          // Set text direction.
 181          if ( isset( $GLOBALS['text_direction'] ) )
 182              $this->text_direction = $GLOBALS['text_direction'];
 183          /* translators: 'rtl' or 'ltr'. This sets the text direction for WordPress. */
 184          elseif ( 'rtl' == _x( 'ltr', 'text direction' ) )
 185              $this->text_direction = 'rtl';
 186      }
 187  
 188      /**
 189       * Retrieve the full translated weekday word.
 190       *
 191       * Week starts on translated Sunday and can be fetched
 192       * by using 0 (zero). So the week starts with 0 (zero)
 193       * and ends on Saturday with is fetched by using 6 (six).
 194       *
 195       * @since 2.1.0
 196       * @access public
 197       *
 198       * @param int $weekday_number 0 for Sunday through 6 Saturday
 199       * @return string Full translated weekday
 200       */
 201  	function get_weekday($weekday_number) {
 202          return $this->weekday[$weekday_number];
 203      }
 204  
 205      /**
 206       * Retrieve the translated weekday initial.
 207       *
 208       * The weekday initial is retrieved by the translated
 209       * full weekday word. When translating the weekday initial
 210       * pay attention to make sure that the starting letter does
 211       * not conflict.
 212       *
 213       * @since 2.1.0
 214       * @access public
 215       *
 216       * @param string $weekday_name
 217       * @return string
 218       */
 219  	function get_weekday_initial($weekday_name) {
 220          return $this->weekday_initial[$weekday_name];
 221      }
 222  
 223      /**
 224       * Retrieve the translated weekday abbreviation.
 225       *
 226       * The weekday abbreviation is retrieved by the translated
 227       * full weekday word.
 228       *
 229       * @since 2.1.0
 230       * @access public
 231       *
 232       * @param string $weekday_name Full translated weekday word
 233       * @return string Translated weekday abbreviation
 234       */
 235  	function get_weekday_abbrev($weekday_name) {
 236          return $this->weekday_abbrev[$weekday_name];
 237      }
 238  
 239      /**
 240       * Retrieve the full translated month by month number.
 241       *
 242       * The $month_number parameter has to be a string
 243       * because it must have the '0' in front of any number
 244       * that is less than 10. Starts from '01' and ends at
 245       * '12'.
 246       *
 247       * You can use an integer instead and it will add the
 248       * '0' before the numbers less than 10 for you.
 249       *
 250       * @since 2.1.0
 251       * @access public
 252       *
 253       * @param string|int $month_number '01' through '12'
 254       * @return string Translated full month name
 255       */
 256  	function get_month($month_number) {
 257          return $this->month[zeroise($month_number, 2)];
 258      }
 259  
 260      /**
 261       * Retrieve translated version of month abbreviation string.
 262       *
 263       * The $month_name parameter is expected to be the translated or
 264       * translatable version of the month.
 265       *
 266       * @since 2.1.0
 267       * @access public
 268       *
 269       * @param string $month_name Translated month to get abbreviated version
 270       * @return string Translated abbreviated month
 271       */
 272  	function get_month_abbrev($month_name) {
 273          return $this->month_abbrev[$month_name];
 274      }
 275  
 276      /**
 277       * Retrieve translated version of meridiem string.
 278       *
 279       * The $meridiem parameter is expected to not be translated.
 280       *
 281       * @since 2.1.0
 282       * @access public
 283       *
 284       * @param string $meridiem Either 'am', 'pm', 'AM', or 'PM'. Not translated version.
 285       * @return string Translated version
 286       */
 287  	function get_meridiem($meridiem) {
 288          return $this->meridiem[$meridiem];
 289      }
 290  
 291      /**
 292       * Global variables are deprecated. For backwards compatibility only.
 293       *
 294       * @deprecated For backwards compatibility only.
 295       * @access private
 296       *
 297       * @since 2.1.0
 298       */
 299  	function register_globals() {
 300          $GLOBALS['weekday']         = $this->weekday;
 301          $GLOBALS['weekday_initial'] = $this->weekday_initial;
 302          $GLOBALS['weekday_abbrev']  = $this->weekday_abbrev;
 303          $GLOBALS['month']           = $this->month;
 304          $GLOBALS['month_abbrev']    = $this->month_abbrev;
 305      }
 306  
 307      /**
 308       * Constructor which calls helper methods to set up object variables
 309       *
 310       * @uses WP_Locale::init()
 311       * @uses WP_Locale::register_globals()
 312       * @since 2.1.0
 313       *
 314       * @return WP_Locale
 315       */
 316  	function __construct() {
 317          $this->init();
 318          $this->register_globals();
 319      }
 320  
 321      /**
 322       * Checks if current locale is RTL.
 323       *
 324       * @since 3.0.0
 325       * @return bool Whether locale is RTL.
 326       */
 327  	function is_rtl() {
 328          return 'rtl' == $this->text_direction;
 329      }
 330  }
 331  
 332  /**
 333   * Checks if current locale is RTL.
 334   *
 335   * @since 3.0.0
 336   * @return bool Whether locale is RTL.
 337   */
 338  function is_rtl() {
 339      global $wp_locale;
 340      return $wp_locale->is_rtl();
 341  }


Generated: Fri May 25 03:56:23 2012 Hosted by follow the white rabbit.