[ Index ]

WordPress Cross Reference

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          if ( 'rtl' === $this->text_direction && strpos( $GLOBALS['wp_version'], '-src' ) ) {
 188              $this->text_direction = 'ltr';
 189              add_action( 'all_admin_notices', array( $this, 'rtl_src_admin_notice' ) );
 190          }
 191      }
 192  
 193  	function rtl_src_admin_notice() {
 194          echo '<div class="error"><p>' . 'The <code>build</code> directory of the develop repository must be used for RTL.' . '</p></div>';
 195      }
 196  
 197      /**
 198       * Retrieve the full translated weekday word.
 199       *
 200       * Week starts on translated Sunday and can be fetched
 201       * by using 0 (zero). So the week starts with 0 (zero)
 202       * and ends on Saturday with is fetched by using 6 (six).
 203       *
 204       * @since 2.1.0
 205       * @access public
 206       *
 207       * @param int $weekday_number 0 for Sunday through 6 Saturday
 208       * @return string Full translated weekday
 209       */
 210  	function get_weekday($weekday_number) {
 211          return $this->weekday[$weekday_number];
 212      }
 213  
 214      /**
 215       * Retrieve the translated weekday initial.
 216       *
 217       * The weekday initial is retrieved by the translated
 218       * full weekday word. When translating the weekday initial
 219       * pay attention to make sure that the starting letter does
 220       * not conflict.
 221       *
 222       * @since 2.1.0
 223       * @access public
 224       *
 225       * @param string $weekday_name
 226       * @return string
 227       */
 228  	function get_weekday_initial($weekday_name) {
 229          return $this->weekday_initial[$weekday_name];
 230      }
 231  
 232      /**
 233       * Retrieve the translated weekday abbreviation.
 234       *
 235       * The weekday abbreviation is retrieved by the translated
 236       * full weekday word.
 237       *
 238       * @since 2.1.0
 239       * @access public
 240       *
 241       * @param string $weekday_name Full translated weekday word
 242       * @return string Translated weekday abbreviation
 243       */
 244  	function get_weekday_abbrev($weekday_name) {
 245          return $this->weekday_abbrev[$weekday_name];
 246      }
 247  
 248      /**
 249       * Retrieve the full translated month by month number.
 250       *
 251       * The $month_number parameter has to be a string
 252       * because it must have the '0' in front of any number
 253       * that is less than 10. Starts from '01' and ends at
 254       * '12'.
 255       *
 256       * You can use an integer instead and it will add the
 257       * '0' before the numbers less than 10 for you.
 258       *
 259       * @since 2.1.0
 260       * @access public
 261       *
 262       * @param string|int $month_number '01' through '12'
 263       * @return string Translated full month name
 264       */
 265  	function get_month($month_number) {
 266          return $this->month[zeroise($month_number, 2)];
 267      }
 268  
 269      /**
 270       * Retrieve translated version of month abbreviation string.
 271       *
 272       * The $month_name parameter is expected to be the translated or
 273       * translatable version of the month.
 274       *
 275       * @since 2.1.0
 276       * @access public
 277       *
 278       * @param string $month_name Translated month to get abbreviated version
 279       * @return string Translated abbreviated month
 280       */
 281  	function get_month_abbrev($month_name) {
 282          return $this->month_abbrev[$month_name];
 283      }
 284  
 285      /**
 286       * Retrieve translated version of meridiem string.
 287       *
 288       * The $meridiem parameter is expected to not be translated.
 289       *
 290       * @since 2.1.0
 291       * @access public
 292       *
 293       * @param string $meridiem Either 'am', 'pm', 'AM', or 'PM'. Not translated version.
 294       * @return string Translated version
 295       */
 296  	function get_meridiem($meridiem) {
 297          return $this->meridiem[$meridiem];
 298      }
 299  
 300      /**
 301       * Global variables are deprecated. For backwards compatibility only.
 302       *
 303       * @deprecated For backwards compatibility only.
 304       * @access private
 305       *
 306       * @since 2.1.0
 307       */
 308  	function register_globals() {
 309          $GLOBALS['weekday']         = $this->weekday;
 310          $GLOBALS['weekday_initial'] = $this->weekday_initial;
 311          $GLOBALS['weekday_abbrev']  = $this->weekday_abbrev;
 312          $GLOBALS['month']           = $this->month;
 313          $GLOBALS['month_abbrev']    = $this->month_abbrev;
 314      }
 315  
 316      /**
 317       * Constructor which calls helper methods to set up object variables
 318       *
 319       * @uses WP_Locale::init()
 320       * @uses WP_Locale::register_globals()
 321       * @since 2.1.0
 322       *
 323       * @return WP_Locale
 324       */
 325  	function __construct() {
 326          $this->init();
 327          $this->register_globals();
 328      }
 329  
 330      /**
 331       * Checks if current locale is RTL.
 332       *
 333       * @since 3.0.0
 334       * @return bool Whether locale is RTL.
 335       */
 336  	function is_rtl() {
 337          return 'rtl' == $this->text_direction;
 338      }
 339  
 340      /**
 341       * Register date/time format strings for general POT.
 342       *
 343       * Private, unused method to add some date/time formats translated
 344       * on wp-admin/options-general.php to the general POT that would
 345       * otherwise be added to the admin POT.
 346       *
 347       * @since 3.6.0
 348       */
 349  	function _strings_for_pot() {
 350          /* translators: localized date format, see http://php.net/date */
 351          __( 'F j, Y' );
 352          /* translators: localized time format, see http://php.net/date */
 353          __( 'g:i a' );
 354          /* translators: localized date and time format, see http://php.net/date */
 355          __( 'F j, Y g:i a' );
 356      }
 357  }
 358  
 359  /**
 360   * Checks if current locale is RTL.
 361   *
 362   * @since 3.0.0
 363   * @return bool Whether locale is RTL.
 364   */
 365  function is_rtl() {
 366      global $wp_locale;
 367      return $wp_locale->is_rtl();
 368  }


Generated: Tue Mar 25 01:41:18 2014 WordPress honlapkészítés: online1.hu