Visualizzazione dei risultati da 1 a 5 su 5

Discussione: mese in italiano

  1. #1

    mese in italiano

    Salve a tutti, sono un novellino ecco il mio quesito:
    ho scopiazzato uno script per un calendario con gli impegni ma il mese mi viene visualizzato in inglese, con il poco php che conosco ho modificato lo script inserendo queste 2 righe:
    $mesi = array(1=>'gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre','dicembre');
    $monthName = $mesi[(date('m', mktime(0, 0, 0, $month, 1, $year)))];

    al posto di questa riga originale:
    $monthName = (date('F', mktime(0, 0, 0, $month, 1, $year)))

    Sembra funzionare tutto bene ma quando scorro il calendario ad anno nuovo mi sparisce il nome del mese.

    Dove ho sbagliato? Sono sufficienti queste info per aiutarmi?

    Grazie

  2. #2
    No. Stai usando le funzioni a caso.

    Allora. Ti suggerisco di cominciare a guardare la funzione setlocale ed iniziare a provare con quella. Però, se il server non è configurato correttamente, è possibile che non funziona.
    In questo caso, il ragionamento corretto é:

    Codice PHP:
    // definire un array con i mesi:

    $mesi = array("zero""gennaio""febbraio", ....); 

    $meseattualeInItaliano $mesi[date("n")]; 
    Date "n" mi restituisce il mese in numerico dunque se é 1 corrisponde alla chiave 1 dell'array cioé gennaio.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    No, la funzione setlocale non funziona (è una funzione ma non funziona ), ti ringrazio per la risposta ma il problema non sta nel mancato funzionamento della funzione, mi spiego meglio,
    originariamente il mese veniva generato così:
    Codice PHP:
    $monthName date('F'mktime(000$month1$year)); 
    io ho provato a sostituire 'F' con 'm' ed ho ottenuto il mese sottoforma di numero e quindi ho pensato bene di usare un array per trasformare il numero in mese italiano:
    Codice PHP:
    $mesi = array('zero''gennaio''febbraio''marzo''aprile''maggio''giugno''luglio''agosto''settembre''ottobre''novembre','dicembre'); 
    $monthName $mesi[(date('m'mktime(000$month1$year)))]; 
    Questo espediente funziona ma quando sfoglio il calendario scorrendo i mesi, quando cambia anno mi sparisce il mese ed ho scoperto ce non mette più il nome del mese neppure se vado prima di ottobre... insomma siamo a Novembre, mi spostao a Dicembre e funziona, vado a gennaio e sparisce il mese, torno indietro e rileggo dicembre, novembre, ottobre ma a settembre torna vuoto

    Se può esserti utile ti invio tutto il codice:
    Codice PHP:
    <?php include('cp/config.php'); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="tr" lang="tr" dir="ltr">
    <head>
    <title>Calendar Script</title>
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="-1" />
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="robots" content="ALL" />
    <meta name="robots" content="INDEX, FOLLOW" />
    <meta name="robots" content="NOARCHIVE" />
    <meta name="author" content="Bahadir Kocaoglu" />
    <meta name="copyright" content="(C) 2007 Eggdrop Inc." />
    <meta name="generator" content="Eggdrop Inc. - Free Calendar Script" />
    <meta name="description" content="Eggdrop Inc. - Free Calendar Script" />
    <meta name="keywords" content="calendar script" />
    <style type="text/css" media="all">@import "style.css";</style>
    <script language="JavaScript" type="text/javascript">
        window.defaultStatus="Calendar Script";
    </script>
    <script type="text/JavaScript">
    function popupEvent(day, month, year, w, h) {
        var winl = (screen.width - w) / 2;
        var wint = (screen.height - h) / 2;
        win = window.open("popup.php?day=" + day + "&month=" + month + "&year=" + year + "","Calendar","scrollbars=yes, status=yes, location=no, toolbar=no, menubar=no, directories=no, resizable=yes, width=" + w + ", height=" + h + ", top=" + wint + ", left=" + winl + "");
        if (parseInt(navigator.appVersion) >= 4) {
            win.window.focus();
        }
    }
    </script>
    </head>
    <body bgcolor="#55B9FF" text="#003399">
    <script type="text/JavaScript">
      var ol_width=140;
      var ol_delay=10;
      var ol_fgcolor="#FFFFFF";
      var ol_bgcolor="#AAAAAA";
      var ol_offsetx=10;
      var ol_offsety=10;
      var ol_border=1;
      var ol_vauto=1;
    </script>
    <div id="overDiv" style="position: absolute; visibility: hidden; z-index: 1000;"></div>
    <script type="text/JavaScript" src="overlib_mini.js"></script>
    <center>

    <?php

    if (empty($_GET['month'])) {
        
    $month date('m');
    } else {
        
    $month $_GET['month'];
    }

    if (empty(
    $_GET['year'])) {
        
    $year date('Y');
    } else {
        
    $year $_GET['year'];
    }

    $theday date('w'mktime(000$month1$year));

    $daysinmonth date("t"mktime(000$month1$year));
    ?>

    <table cellspacing="1" cellpadding="0" border="0" class="mainTable">
        <tr>
            <td align="center" colspan="7" class="monthRow">
                [url="<?php echo $_SERVER['PHP_SELF']; if ($month == '01') { $prevmonth '12'$prevyear $year 1; echo '?month=' $prevmonth; echo '&year=' $prevyear; } else { $prevmonth $month 1; echo '?month=' $prevmonth; echo '&year=' $year; } ?>"]&laquo;[/url]
                <?php
    $mesi 
    = array('zero''gennaio''febbraio''marzo''aprile''maggio''giugno''luglio''agosto''settembre''ottobre''novembre','dicembre');  
                    
    $monthName $mesi[(date('m'mktime(000$month1$year)))];
                    
    $yearName date('Y'mktime(000$month1$year));
                    echo 
    $monthName ' ' $yearName;
                
    ?>
                [url="<?php echo $_SERVER['PHP_SELF']; if ($month == '12') { $nextmonth '01'$nextyear $year 1; echo '?month=' $nextmonth; echo '&year=' $nextyear; } else { $nextmonth $month 1; echo '?month=' $nextmonth; echo '&year=' $year; } ?>"]&raquo;[/url]
            </td>
        </tr>
        <tr class="dayNamesText">
            <td class="dayNamesRow" width="25" align="center">D</td>
            <td class="dayNamesRow" width="25" align="center">L</td>
            <td class="dayNamesRow" width="25" align="center">M</td>
            <td class="dayNamesRow" width="25" align="center">M</td>
            <td class="dayNamesRow" width="25" align="center">G</td>
            <td class="dayNamesRow" width="25" align="center">V</td>
            <td class="dayNamesRow" width="25" align="center">S</td>
        </tr>

        <tr class="rows">
        <?php
        
    for ($i 0$i $theday$i++) {
        
    ?>
            <td></td>
        <?php
        
    }
        for (
    $list_day 1$list_day <= $daysinmonth$list_day++) {
            
    $tm date("U"mktime(000$month$list_day$year)) - 86400// Bir gün önce
            
    $tn date("U"mktime(000$month$list_day$year)); // O gün ...
            
    $tp date("U"mktime(000$month$list_day$year)) + 86400// Bir gün sonra
            
    $Q sprintf("SELECT * FROM `events` WHERE `date` > '%s' AND `date` < '%s' AND `day` = '%s';"$tm$tp$list_day);
            
    $R mysql_query($Q);
            
    $D mysql_fetch_assoc($R);
            
    $S mysql_num_rows($R);
            
    $Y $D['date'];
            
    $TheDay date('d'$Y);
            
    $TheMon date('F'$Y);
            
    $TheYea date('Y'$Y);
            
    mysql_free_result($R);
            if (
    $S) {
            
    ?>
                <td align="center" onclick="popupEvent(<?php echo $D['day']; ?><?php echo $D['month']; ?><?php echo $D['year']; ?>, 400, 500)" style="background-color: #CCFF00; color: #333333; cursor: pointer;" onmouseover="return overlib('&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; class=&quot;popupDateTable&quot;&gt;&lt;tr&gt;&lt;td align=&quot;center&quot; class=&quot;popupDate&quot;&gt;<?php echo $TheDay?> <?php echo $TheMon?> <?php echo $TheYea?>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;popupEventTitle s23&quot;&gt;<?php echo $S?> Record(s)&lt;/div&gt;');" onmouseout="return nd();" title="">
            <?php
            
    } elseif ($tn $tm AND $tn $tp AND date('j') == $list_day AND date('m') == $month AND date('Y') == $year) {
            
    ?>
                <td align="center" style="background-color: #FFC18A; color: #CF0000; cursor: pointer;" onmouseover="return overlib('&lt;div style=&quot;background-color: #FFC18A; color: #CF0000; padding: 4px;&quot;&gt;Today&lt;/div&gt;');" onmouseout="return nd();">
            <?php
            
    } elseif ($theday == or $theday == 0) {
            
    ?>
                <td align="center" style="background-color: #EEEEEE; color: #666666;">
            <?php
            
    } else {
            
    ?>
                <td align="center" style="background-color: #CCCCCC; color: #333333;">
            <?php
            
    }

            echo 
    $list_day;

            echo 
    '</td>';

            if (
    $theday == 6) {
                echo 
    '</tr>';
                echo 
    '<tr class="rows">';
                
    $theday = -1;
            }
        
    $theday++;
    }
    ?>
        </tr>
    </table>

    </center>
    </body>
    </html>

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    nell' array dei mesi italiani, prova a mettere come chiave NON 1 ma 02, 03 , 04 ecc...

    quindi
    Codice PHP:
    $mesi = array('01'=>'Gennaio','02'=>'Febbraio'..) ecc... 
    dvrebbe funzionare lasciando inalterate le tue modifiche

    non mi sono dicumentato in merito, ma a giudicare dal tuo problema (su quello che hai fatto in origine) hai il problema solo quando il mese è < 10 .. il chè chiama in causa lo 0 ..


    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Miiiii !!!! dottwatson sei un mito!!!!

    Era come dicevi tu, come avevo fatto a non pensarci prima....

    Mitico dottwatson, Grazie mille e a presto.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.