jlauriol Posted July 29, 2004 Posted July 29, 2004 In my server the setlocal function is not properly installed and any date display is in english form. I'm french, my customers is french, german, italian, ... and english. My problem is frequent in europa. I have a solution : in file '/catalog/includes/functions/general.php' function 'tep_date_long' : ligne 493 remplace code by : // Output a raw date string in the selected locale date format // $raw_date needs to be in this format: YYYY-MM-DD HH:MM:SS // Ajout traduction ind?pendante de l'installation du systeme function tep_date_long($raw_date) { if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false; $year = (int)substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); $datefmt = DATE_FORMAT_LONG; $tab_day_of_week = array(DATE_DAY_00,DATE_DAY_01,DATE_DAY_02,DATE_DAY_03,DATE_DAY_04,DATE_DAY_05,DATE _DAY_06); $tab_month = array(DATE_MONTH_01,DATE_MONTH_02,DATE_MONTH_03,DATE_MONTH_04,DATE_MONTH_05,DATE_M ONTH_06,DATE_MONTH_07,DATE_MONTH_08,DATE_MONTH_09,DATE_MONTH_10,DATE_MONTH_11,DAT E_MONTH_12); $timestamp = mktime($hour,$minute,$second,$month,$day,$year); $date = ereg_replace('%[aA]', $tab_day_of_week[(int)strftime('%w', $timestamp)], $datefmt); $date = ereg_replace('%[bB]', $tab_month[(int)strftime('%m', $timestamp)-1], $date); return strftime($date, $timestamp); } in file language 'french.php', 'english.php', ... ( folders catalog/includes/language' ) Append : define('DATE_DAY_00', 'Dimanche'); define('DATE_DAY_01', 'Lundi'); define('DATE_DAY_02', 'Mardi'); define('DATE_DAY_03', 'Mercredi'); define('DATE_DAY_04', 'Jeudi'); define('DATE_DAY_05', 'Vendredi'); define('DATE_DAY_06', 'Samedi'); define('DATE_MONTH_01', 'Janvier'); define('DATE_MONTH_02', 'F?vrier'); define('DATE_MONTH_03', 'Mars'); define('DATE_MONTH_04', 'Avril'); define('DATE_MONTH_05', 'Mai'); define('DATE_MONTH_06', 'Juin'); define('DATE_MONTH_07', 'Juillet'); define('DATE_MONTH_08', 'Ao?t'); define('DATE_MONTH_09', 'Septembre'); define('DATE_MONTH_10', 'Octobre'); define('DATE_MONTH_11', 'Novembre'); define('DATE_MONTH_12', 'D?cembre'); or ( in english ) define('DATE_DAY_00', 'Sunday'); define('DATE_DAY_01', 'Monday'); define('DATE_DAY_02', 'Tuesday'); define('DATE_DAY_03', 'Wednesday'); define('DATE_DAY_04', 'Thursday'); define('DATE_DAY_05', 'Friday'); define('DATE_DAY_06', 'Saturday'); define('DATE_MONTH_01', 'January'); define('DATE_MONTH_02', 'February'); define('DATE_MONTH_03', 'March'); define('DATE_MONTH_04', 'April'); define('DATE_MONTH_05', 'May'); define('DATE_MONTH_06', 'June'); define('DATE_MONTH_07', 'July'); define('DATE_MONTH_08', 'August'); define('DATE_MONTH_09', 'September'); define('DATE_MONTH_10', 'October'); define('DATE_MONTH_11', 'November'); define('DATE_MONTH_12', 'December'); PS : This code run, but all display use not the function 'tep_date_long'. A modification of the code is nessessary ! Example : In footer.php <!-- JL07/04 ? remplacer <td class="footer"> <?php echo strftime(DATE_FORMAT_LONG); ?> </td> --> <td class="footer"> <?php echo tep_date_long(date('Y-m-d H:i:s',mktime())); ?> </td> includes/functions/html_ouput.php line 329 (function tep_draw_date_pull_down_menu() ) // months pull down menu // JL07/04+ $tab_month = array(DATE_MONTH_01,DATE_MONTH_02,DATE_MONTH_03,DATE_MONTH_04,DATE_MONTH_05,DATE_M ONTH_06,DATE_MONTH_07,DATE_MONTH_08,DATE_MONTH_09,DATE_MONTH_10,DATE_MONTH_11,DAT E_MONTH_12); // JL07/04- $months_array = array(); for ($i=1; $i<=12; $i++) { // JL07/04+ // $months_array[] = array('id' => $i, // 'text' => (($use_month_names === true) ? strftime('%B', mktime(0, 0, 0, $i)) : $i)); $months_array[] = array('id' => $i, 'text' => (($use_month_names === true) ? $tab_month[$i-1] : $i)); // JL07/04- } in includes/modules/services/simple_counter.php (for the fun !) line 50 ( function start() ) // JL07/04+ // $counter_startdate_formatted = strftime(DATE_FORMAT_LONG, mktime(0, 0, 0, substr($counter_startdate, 4, 2), substr($counter_startdate, -2), substr($counter_startdate, 0, 4))); $counter_startdate_formatted = tep_date_long(date('Y-m-d H:i:s',mktime(0, 0, 0, substr($counter_startdate, 4, 2), substr($counter_startdate, -2), substr($counter_startdate, 0, 4)))); // JL07/04- I'm very happy, my code run. Why not in CVS ! (Hello developpers ! ) Sorry for my english, i'm french.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.