We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 8471
    • 333 Posts
    Salve! Qualcuno sa come si possono tradurre le date per esempio generate da ditto? credo che siano legate al parametro setlocale ma non saprei proprio dove andarlo a cercare.
    grazie a tutti
      Sorry for my bad English grin
      • 15896
      • 80 Posts
      Credo che il problema si presenti solo per l’archivio di Ditto, perche per i post del blog è sufficiente impostare la lingua per avere la data secondo modello italiano.

      Per quanto riguarda l’archivio devi invece cambiare la funzione generateArchive in ditto.class.inc.php come segue:
      function generateArchive($archiveText, $archivePlaceholder, $stop, $total, &$resource, $dateFormatType, $dateFormat, $archiveDateType, $templates, $debug) {
      
      		global $modx;
      
      		$lastCategory = "";
      
      		$archivehtml = "";
      
      		$archiveHTML .= "<h3>$archiveText</h3><div id=\"ditto_archivelist\"><ul>";
      
      		setlocale(LC_TIME,"it_IT"); //devi aggiungere questa riga
      
      		for ($i = $stop; $i < $total; $i++) {
                      ...//tutto il resto lascialo intatto
      
        • 8471
        • 333 Posts
        garzie kimu! ma il problema mi si verifica anche nelle news listate con ditto non solo nell’archivio undecided
          Sorry for my bad English grin
          • 15896
          • 80 Posts
          Con la vecchia versione di ditto effettivamente me lo faceva anche a me se non ricordo male. la vecchia versione era bella piena di bug.
          Non so quale versione tu stia usando, comunque il problema dovrebbe risolversi andando nel file della lingua italian.php e assicurandosi che questa riga sia come segue:
          $_lang['date_format'] = "%d/%m/%Y %H:%M";
          


          Se è cosi e non funziona lo stesso, allora forzala mettendo nella chiamata a ditto
          &dateFormat=`%d/%m/%Y %H:%M`
          


          Ciao
            • 8471
            • 333 Posts
            Uso la ultima beta di ditto, la 1.1 .
            Con il sistema che dici te effettivamente si aggira il problema perché si usano i numeri al posto delle parole per i mesi... Ma a me piaceva tanto vedere le letterine grin
            Grazie ancora gentilissimo!
              Sorry for my bad English grin
              • 16429
              • 254 Posts
              Il problema si può risolvere usando PHx per formattare la data come vuoi tu e usando il plugin WordsReplace per rimpiazzare i nomi inglesi di mesi e giorni con quelli italiani.
                kudo
                www.kudolink.com - webdesign (surprised?)

                [img]http://www.kudolink.com/kudolinkcom.png[/img] [sup]proudly uses[/sup] [img]http://www.kudolink.com/modx.png[/img]
                • 15896
                • 80 Posts
                Uau, quanta roba per una data. Esistono delle stringe di formattazione per le date piuttosto semplici da usare.

                le riporto
                %a - Nome del giorno della settimana abbreviato in accordo con i parametri locali 
                 %A - Nome completo del giorno della settimana in accordo con i parametri locali 
                 %b - Nome del mese abbreviato in accordo con i parametri locali 
                 %B - Nome completo del mese in accordo con i parametri locali 
                 %c - Rappresentazione preferita di data e orario per le attuali impostazioni locali 
                 %C - numero del secolo (l'anno diviso 100 e troncato in un intero, intervallo tra 00 e 99) 
                 %d - giorno del mese come numero decimale (intervallo tra 01 e 31) 
                 %D - come %m/%d/%y 
                 %e - giorno del mese come numero decimale, un singolo carattere è preceduto da uno spapzio (intervallo tra ' 1' e '31') 
                 %g - come %G, ma senza il secolo. 
                 %G - L'anno a 4 cifre corrispondente al numero di setitmana ISO (vedi %V). Questa ha lo stesso formato e valore di %Y, eccetto che se il numero di settimana ISO appartiene al precedente o prossimo anno, è invece utilizzato l'anno attuale. 
                 %h - come %b 
                 %H - ora come numero decimale usando il sistema a 24 ore (intervallo tra 00 e 23) 
                 %I - ora come numero decimale usando il sistema a 12 ore (intervallo tra 01 e 12) 
                 %j - giorno dell'anno come numero decimale (intervallo tra 001 e 366) 
                 %m - mese come numero decimale (intervallo tra 01 e 12) 
                 %M - minuto come numero decimale 
                 %n - carattere di nuova linea 
                 %p - entrambi `am' o `pm' accordati a un valore di tempo dato, o alle stringhe corrispondenti per le impostazioni locali 
                 %r - orario in notazione a.m. e p.m 
                 %R - orario nella notazione a 24 ore 
                 %S - secondi come numero decimale 
                 %t - Carattere di tabella 
                 %T - orario attuale, identico a %H:%M:%S 
                 %u - giorno della settimana come numero decimale [1,7], dove 1 rappresenta il Lunedì
                %U - numero della settimana dell'anno in corso come numero decimale, iniziando dalla prima Domenica come primo giorno della prima settimana 
                 %V - Il numero di settimana ISO 8601:1988 dell'anno attuale come numero decimale, intervallo tra 01 e 53, dove la settimana 1 è la prima settimana che ha almeno 4 giorni dell'attuale anno, e con il Lunedì come primo giorno della settimana. (Utilizza %G o %g per l'anno componente che corrisponde al numero di settimana per il timestamp specificato.) 
                 %W - numero della settimana dell'attuale anno come numero decimale, partendo con il primo Lunedì come primo giorno della prima settimana 
                 %w - giorno della settimana come decimale, dove la Domenica è 0 
                 %x - visualizzazione della data preferita dalle impostazioni del sistema locale senza orario 
                 %X - visualizzazione dell'orario preferito dalle impostazioni del sistema locale senza data 
                 %y - anno come numero decimale senza secolo (intervallo tra 00 e 99) 
                 %Y - anno come numero decimale incluso il secolo 
                 %Z - fuso orario o abbreviazione 
                 %% - il carattere `%' 
                


                Combinali a tuo piacimento. Ditto accetta una combinazione fatta con questi parametri per formattare la data. Chiaramente se vuoi avere il nome del giorno della settimana o del mese in italiano, da qualche parte nella pagina, non forzatamente in Ditto (quindi può essere anche uno snippet da te creato e chiamato prima di Ditto) devi collocare:
                setlocale(LC_TIME,"it_IT");

                Ciao
                  • 16429
                  • 254 Posts
                  Quote from: kimu at Nov 01, 2006, 06:28 PM

                  Uau, quanta roba per una data. Esistono delle stringe di formattazione per le date piuttosto semplici da usare.

                  Hai assolutamente ragione, però tutta questa roba ha il vantaggio che continua a funzionare anche con un aggiornamento di Ditto, mentre se fai modifiche devi riapplicarle ogni volta che aggiorni.

                  Anche io la prima volta settai il locale per avere le date corrette, ma già al secondo aggiornamento optai per questo sistema che mi risolveva il problema degli aggiornamenti.

                  Punti di vista wink
                    kudo
                    www.kudolink.com - webdesign (surprised?)

                    [img]http://www.kudolink.com/kudolinkcom.png[/img] [sup]proudly uses[/sup] [img]http://www.kudolink.com/modx.png[/img]
                    • 15896
                    • 80 Posts
                    Su questo hai ragione, io sono un fan di meno calcolo, più efficienza. Insomma, mi piace l’ottimizzazione.

                    Il fatto è che anche la mia soluzione funziona in caso di aggiornamento di Ditto.
                    Il paramentro dateFormat rimarrà sempre un parametro di Ditto e quindi la chiamata a Ditto di per se stessa non cambierà e non cambierà la stringa di formattazione che gli hai passato.

                    Se setlocale(LC_TIME,"it_IT") lo piazzi in uno snippet richiamato nel template prima di ogni altra chiamata, quindi presente in ogni pagina, sei sicuro che verrà adottato per tutto il php processato in quella pagina. Quindi non hai nessuna necessità di andare a cambiare il codice di Ditto ogni volta che aggiorna.
                    IMHO è più efficiente e meno laboriosa di adottare un plugin e far fare tanto calcolo per qualcosa che php è già in grado di fare bene da solo. wink
                      • 8471
                      • 333 Posts
                      Ho provato questa soluzione e non funziona http://modxcms.com/forums/index.php/topic,3824.0.html e neppure questa: http://modxcms.com/forums/index.php/topic,3129.0.html

                      Mi sa che la cosa più semplice a questo punto è usare il wordsreplace
                        Sorry for my bad English grin