Permalink
Browse files

WP_Locale. Props Sewar. fixes #2568

git-svn-id: http://svn.automattic.com/wordpress/trunk@3676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
  • Loading branch information...
1 parent a165dc1 commit 3d2347a655c9716786aa04093e36e1385174d2f4 ryan committed Apr 2, 2006
@@ -969,7 +969,7 @@ function get_post_meta_by_id($mid) {
}
function touch_time($edit = 1, $for_post = 1) {
- global $month, $post, $comment;
+ global $wp_locale, $post, $comment;
if ( $for_post )
$edit = ( ('draft' == $post->post_status) && (!$post->post_date || '0000-00-00 00:00:00' == $post->post_date) ) ? false : true;
@@ -989,13 +989,8 @@ function touch_time($edit = 1, $for_post = 1) {
for ($i = 1; $i < 13; $i = $i +1) {
echo "\t\t\t<option value=\"$i\"";
if ($i == $mm)
- echo " selected='selected'";
- if ($i < 10) {
- $ii = "0".$i;
- } else {
- $ii = "$i";
- }
- echo ">".$month["$ii"]."</option>\n";
+ echo ' selected="selected"';
+ echo '>' . $wp_locale->get_month($i) . "</option>\n";
}
?>
</select>
@@ -1007,7 +1002,8 @@ function touch_time($edit = 1, $for_post = 1) {
<?php
if ( $edit ) {
_e('Existing timestamp');
- echo ": {$month[$mm]} $jj, $aa @ $hh:$mn";
+ //echo ': ' . $wp_locale->get_month($mm) . "$jj, $aa @ $hh:$mn";
+ echo sprintf(__(': %1$s %2$s, %3$s @ %4$s:%5$s'), $wp_locale->get_month($mm), $jj, $aa, $hh, $mn);
}
?>
</fieldset>
View
@@ -93,14 +93,15 @@
foreach ($arc_result as $arc_row) {
$arc_year = $arc_row->yyear;
$arc_month = $arc_row->mmonth;
+ $arc_month = zeroise($arc_month, 2);
- if( isset($_GET['m']) && $arc_year . zeroise($arc_month, 2) == (int) $_GET['m'] )
+ if( isset($_GET['m']) && $arc_year . $arc_month == (int) $_GET['m'] )
$default = 'selected="selected"';
else
$default = null;
- echo "<option $default value=\"" . $arc_year.zeroise($arc_month, 2) . '">';
- echo $month[zeroise($arc_month, 2)] . " $arc_year";
+ echo "<option $default value=\"" . $arc_year . $arc_month . '">';
+ echo $wp_locale->get_month($arc_month) . " $arc_year";
echo "</option>\n";
}
?>
@@ -94,9 +94,8 @@
<td><select name="start_of_week" id="start_of_week">
<?php
for ($day_index = 0; $day_index <= 6; $day_index++) :
-if ($day_index == get_settings('start_of_week')) $selected = " selected='selected'";
-else $selected = '';
-echo "\n\t<option value='$day_index' $selected>$weekday[$day_index]</option>";
+ $selected = (get_settings('start_of_week') == $day_index) ? 'selected="selected"' : '';
+ echo "\n\t<option value='$day_index' $selected>" . $wp_locale->get_weekday($day_index) . '</option>';
endfor;
?>
</select></td>
View
@@ -16,7 +16,7 @@ function get_profile($field, $user = false) {
}
function mysql2date($dateformatstring, $mysqlstring, $translate = true) {
- global $month, $weekday, $month_abbrev, $weekday_abbrev;
+ global $wp_locale;
$m = $mysqlstring;
if ( empty($m) ) {
return false;
@@ -29,16 +29,20 @@ function mysql2date($dateformatstring, $mysqlstring, $translate = true) {
if ( -1 == $i || false == $i )
$i = 0;
- if ( !empty($month) && !empty($weekday) && $translate ) {
- $datemonth = $month[date('m', $i)];
- $datemonth_abbrev = $month_abbrev[$datemonth];
- $dateweekday = $weekday[date('w', $i)];
- $dateweekday_abbrev = $weekday_abbrev[$dateweekday];
+ if ( !empty($wp_locale->month) && !empty($wp_locale->weekday) && $translate ) {
+ $datemonth = $wp_locale->get_month(date('m', $i));
+ $datemonth_abbrev = $wp_locale->get_month_abbrev($datemonth);
+ $dateweekday = $wp_locale->get_weekday(date('w', $i));
+ $dateweekday_abbrev = $wp_locale->get_weekday_abbrev($dateweekday);
+ $datemeridiem = $wp_locale->get_meridiem(date('a', $i));
+ $datemeridiem_capital = $wp_locale->get_meridiem(date('A', $i));
$dateformatstring = ' '.$dateformatstring;
$dateformatstring = preg_replace("/([^\\\])D/", "\${1}".backslashit($dateweekday_abbrev), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])F/", "\${1}".backslashit($datemonth), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])l/", "\${1}".backslashit($dateweekday), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])M/", "\${1}".backslashit($datemonth_abbrev), $dateformatstring);
+ $dateformatstring = preg_replace("/([^\\\])a/", "\${1}".backslashit($datemeridiem), $dateformatstring);
+ $dateformatstring = preg_replace("/([^\\\])A/", "\${1}".backslashit($datemeridiem_capital), $dateformatstring);
$dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1);
}
@@ -66,23 +70,28 @@ function current_time($type, $gmt = 0) {
}
function date_i18n($dateformatstring, $unixtimestamp) {
- global $month, $weekday, $month_abbrev, $weekday_abbrev;
+ global $wp_locale;
$i = $unixtimestamp;
- if ( (!empty($month)) && (!empty($weekday)) ) {
- $datemonth = $month[date('m', $i)];
- $datemonth_abbrev = $month_abbrev[$datemonth];
- $dateweekday = $weekday[date('w', $i)];
- $dateweekday_abbrev = $weekday_abbrev[$dateweekday];
+ if ( (!empty($wp_locale->month)) && (!empty($wp_locale->weekday)) ) {
+ $datemonth = $wp_locale->get_month(date('m', $i));
+ $datemonth_abbrev = $wp_locale->get_month_abbrev($datemonth);
+ $dateweekday = $wp_locale->get_weekday(date('w', $i));
+ $dateweekday_abbrev = $wp_locale->get_weekday_abbrev($dateweekday);
+ $datemeridiem = $wp_locale->get_meridiem(date('a', $i));
+ $datemeridiem_capital = $wp_locale->get_meridiem(date('A', $i));
$dateformatstring = ' '.$dateformatstring;
$dateformatstring = preg_replace("/([^\\\])D/", "\${1}".backslashit($dateweekday_abbrev), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])F/", "\${1}".backslashit($datemonth), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])l/", "\${1}".backslashit($dateweekday), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])M/", "\${1}".backslashit($datemonth_abbrev), $dateformatstring);
+ $dateformatstring = preg_replace("/([^\\\])a/", "\${1}".backslashit($datemeridiem), $dateformatstring);
+ $dateformatstring = preg_replace("/([^\\\])A/", "\${1}".backslashit($datemeridiem_capital), $dateformatstring);
+
$dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1);
}
$j = @date($dateformatstring, $i);
return $j;
- }
+}
function get_weekstartend($mysqlstring, $start_of_week) {
$my = substr($mysqlstring,0,4);
View
@@ -1,70 +1,131 @@
<?php
+
// Date and Time
-// The Weekdays
-$weekday[0] = __('Sunday');
-$weekday[1] = __('Monday');
-$weekday[2] = __('Tuesday');
-$weekday[3] = __('Wednesday');
-$weekday[4] = __('Thursday');
-$weekday[5] = __('Friday');
-$weekday[6] = __('Saturday');
-
-// The first letter of each day. The _%day%_initial suffix is a hack to make
-// sure the day initials are unique. They should be translated to a one
-// letter initial.
-$weekday_initial[__('Sunday')] = __('S_Sunday_initial');
-$weekday_initial[__('Monday')] = __('M_Monday_initial');
-$weekday_initial[__('Tuesday')] = __('T_Tuesday_initial');
-$weekday_initial[__('Wednesday')] = __('W_Wednesday_initial');
-$weekday_initial[__('Thursday')] = __('T_Thursday_initial');
-$weekday_initial[__('Friday')] = __('F_Friday_initial');
-$weekday_initial[__('Saturday')] = __('S_Saturday_initial');
-
-foreach ($weekday_initial as $weekday_ => $weekday_initial_) {
- $weekday_initial[$weekday_] = preg_replace('/_.+_initial$/', '', $weekday_initial_);
-}
+class WP_Locale {
+ var $weekday;
+ var $weekday_initial;
+ var $weekday_abbrev;
+
+ var $month;
+ var $month_abbrev;
+
+ var $meridiem;
+
+ function init() {
+ // The Weekdays
+ $this->weekday[0] = __('Sunday');
+ $this->weekday[1] = __('Monday');
+ $this->weekday[2] = __('Tuesday');
+ $this->weekday[3] = __('Wednesday');
+ $this->weekday[4] = __('Thursday');
+ $this->weekday[5] = __('Friday');
+ $this->weekday[6] = __('Saturday');
+
+ // The first letter of each day. The _%day%_initial suffix is a hack to make
+ // sure the day initials are unique.
+ $this->weekday_initial[__('Sunday')] = __('S_Sunday_initial');
+ $this->weekday_initial[__('Monday')] = __('M_Monday_initial');
+ $this->weekday_initial[__('Tuesday')] = __('T_Tuesday_initial');
+ $this->weekday_initial[__('Wednesday')] = __('W_Wednesday_initial');
+ $this->weekday_initial[__('Thursday')] = __('T_Thursday_initial');
+ $this->weekday_initial[__('Friday')] = __('F_Friday_initial');
+ $this->weekday_initial[__('Saturday')] = __('S_Saturday_initial');
+
+ foreach ($this->weekday_initial as $weekday_ => $weekday_initial_) {
+ $this->weekday_initial[$weekday_] = preg_replace('/_.+_initial$/', '', $weekday_initial_);
+ }
+
+ // Abbreviations for each day.
+ $this->weekday_abbrev[__('Sunday')] = __('Sun');
+ $this->weekday_abbrev[__('Monday')] = __('Mon');
+ $this->weekday_abbrev[__('Tuesday')] = __('Tue');
+ $this->weekday_abbrev[__('Wednesday')] = __('Wed');
+ $this->weekday_abbrev[__('Thursday')] = __('Thu');
+ $this->weekday_abbrev[__('Friday')] = __('Fri');
+ $this->weekday_abbrev[__('Saturday')] = __('Sat');
+
+ // The Months
+ $this->month['01'] = __('January');
+ $this->month['02'] = __('February');
+ $this->month['03'] = __('March');
+ $this->month['04'] = __('April');
+ $this->month['05'] = __('May');
+ $this->month['06'] = __('June');
+ $this->month['07'] = __('July');
+ $this->month['08'] = __('August');
+ $this->month['09'] = __('September');
+ $this->month['10'] = __('October');
+ $this->month['11'] = __('November');
+ $this->month['12'] = __('December');
+
+ // Abbreviations for each month. Uses the same hack as above to get around the
+ // 'May' duplication.
+ $this->month_abbrev[__('January')] = __('Jan_January_abbreviation');
+ $this->month_abbrev[__('February')] = __('Feb_February_abbreviation');
+ $this->month_abbrev[__('March')] = __('Mar_March_abbreviation');
+ $this->month_abbrev[__('April')] = __('Apr_April_abbreviation');
+ $this->month_abbrev[__('May')] = __('May_May_abbreviation');
+ $this->month_abbrev[__('June')] = __('Jun_June_abbreviation');
+ $this->month_abbrev[__('July')] = __('Jul_July_abbreviation');
+ $this->month_abbrev[__('August')] = __('Aug_August_abbreviation');
+ $this->month_abbrev[__('September')] = __('Sep_September_abbreviation');
+ $this->month_abbrev[__('October')] = __('Oct_October_abbreviation');
+ $this->month_abbrev[__('November')] = __('Nov_November_abbreviation');
+ $this->month_abbrev[__('December')] = __('Dec_December_abbreviation');
+
+ foreach ($this->month_abbrev as $month_ => $month_abbrev_) {
+ $this->month_abbrev[$month_] = preg_replace('/_.+_abbreviation$/', '', $month_abbrev_);
+ }
+
+ // The Meridiems
+ $this->meridiem['am'] = __('am');
+ $this->meridiem['pm'] = __('pm');
+ $this->meridiem['AM'] = __('AM');
+ $this->meridiem['PM'] = __('PM');
+ }
+
+ function get_weekday($weekday_number) {
+ return $this->weekday[$weekday_number];
+ }
+
+ function get_weekday_initial($weekday_name) {
+ return $this->weekday_initial[$weekday_name];
+ }
+
+ function get_weekday_abbrev($weekday_name) {
+ return $this->weekday_abbrev[$weekday_name];
+ }
+
+ function get_month($month_number) {
+ return $this->month[zeroise($month_number, 2)];
+ }
+
+ function get_month_initial($month_name) {
+ return $this->month_initial[$month_name];
+ }
+
+ function get_month_abbrev($month_name) {
+ return $this->month_abbrev[$month_name];
+ }
+
+ function get_meridiem($meridiem) {
+ return $this->meridiem[$meridiem];
+ }
+
+ // Global variables are deprecated. For backwards compatibility only.
+ function register_globals() {
+ $GLOBALS['weekday'] = $this->weekday;
+ $GLOBALS['weekday_initial'] = $this->weekday_initial;
+ $GLOBALS['weekday_abbrev'] = $this->weekday_abbrev;
+ $GLOBALS['month'] = $this->month;
+ $GLOBALS['month_abbrev'] = $this->month_abbrev;
+ }
-// Abbreviations for each day.
-$weekday_abbrev[__('Sunday')] = __('Sun');
-$weekday_abbrev[__('Monday')] = __('Mon');
-$weekday_abbrev[__('Tuesday')] = __('Tue');
-$weekday_abbrev[__('Wednesday')] = __('Wed');
-$weekday_abbrev[__('Thursday')] = __('Thu');
-$weekday_abbrev[__('Friday')] = __('Fri');
-$weekday_abbrev[__('Saturday')] = __('Sat');
-
-// The Months
-$month['01'] = __('January');
-$month['02'] = __('February');
-$month['03'] = __('March');
-$month['04'] = __('April');
-$month['05'] = __('May');
-$month['06'] = __('June');
-$month['07'] = __('July');
-$month['08'] = __('August');
-$month['09'] = __('September');
-$month['10'] = __('October');
-$month['11'] = __('November');
-$month['12'] = __('December');
-
-// Abbreviations for each month. Uses the same hack as above to get around the
-// 'May' duplication.
-$month_abbrev[__('January')] = __('Jan_January_abbreviation');
-$month_abbrev[__('February')] = __('Feb_February_abbreviation');
-$month_abbrev[__('March')] = __('Mar_March_abbreviation');
-$month_abbrev[__('April')] = __('Apr_April_abbreviation');
-$month_abbrev[__('May')] = __('May_May_abbreviation');
-$month_abbrev[__('June')] = __('Jun_June_abbreviation');
-$month_abbrev[__('July')] = __('Jul_July_abbreviation');
-$month_abbrev[__('August')] = __('Aug_August_abbreviation');
-$month_abbrev[__('September')] = __('Sep_September_abbreviation');
-$month_abbrev[__('October')] = __('Oct_October_abbreviation');
-$month_abbrev[__('November')] = __('Nov_November_abbreviation');
-$month_abbrev[__('December')] = __('Dec_December_abbreviation');
-
-foreach ($month_abbrev as $month_ => $month_abbrev_) {
- $month_abbrev[$month_] = preg_replace('/_.+_abbreviation$/', '', $month_abbrev_);
+ function WP_Locale() {
+ $this->init();
+ $this->register_globals();
+ }
}
?>
Oops, something went wrong.

0 comments on commit 3d2347a

Please sign in to comment.