[SOLVED] Data in italiano e option select

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

[SOLVED] Data in italiano e option select

Post by nervino »

Ciao a tutti,
ho iniziato ad usare CMSMS ed avrei un paio di domande per le quali non ho trovato risposte in giro.

1) Le date vengono mostrate, sia lato admin sia frontend, in inglese (es.: Sun 28 December 2008) ma le vorrei in italiano.
Come posso fare? Nelle impostazioni globali ho specificato la stringa per il formato data: %d %m %Y ma non ho trovato il modo per impostare i nomi dei giorni e dei mesi in italiano.

2) Ho visto che in FormBuilder c'è la possibilità di scegliere una SELECT che carica i nomi delle nazioni. È possibile creare delle SELECT simili con altri dati (ad esempio un elenco di marche di autovetture), magari importandoli da un db o un file?
Dove sono memorizzati i nomi delle nazioni che trovo in FormBuilder?

Grazie
Last edited by nervino on Mon Dec 29, 2008 5:55 pm, edited 1 time in total.
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Data in italiano e option select

Post by protempore »

nervino wrote: 1) Le date vengono mostrate, sia lato admin sia frontend, in inglese (es.: Sun 28 December 2008) ma le vorrei in italiano.
Come posso fare? Nelle impostazioni globali ho specificato la stringa per il formato data: %d %m %Y ma non ho trovato il modo per impostare i nomi dei giorni e dei mesi in italiano.
la "localizzazione" della data non dipende tanto dalla configurazione di CMSMadeSimple quanto dal PHP e dalle sue librerie... in genere, però, configurando il CMSMS come "it_IT" la formattazione delle date va a posto...
In "config.php" quindi modifica la riga:
$config['locale'] = 'it_IT';

se lo hai già fatto e non hai sortito risultato allora la vedo dura... in ogni caso io ho avuto problemi con le accentate (venerdì, giovedì... etc.) che ho risolto con "accrocchi" di questo tipo:

Code: Select all

{$entry->postdate|cms_date_format|replace:"lun,":"Lunedì,"|replace:"mar,":"Martedì,"|replace:"mer,":"Mercoledì,"|replace:"gio,":"Giovedì,"|replace:"ven,":"Venerdì,"|replace:"sab,":"Sabato,"|replace:"dom,":"Domenica,"}
cioè ho chiesto che venisse proposto un giorno della settimana "ridotto" (lun, mar, mer.... etc.) e l'ho sostituito con il corrispondente "esteso"...

questa è anche una strada (extrema ratio) per risolvere il problema nel caso tu non riesca proprio ad ottenere la localizzazione italiana della data...
nervino wrote: 2) Ho visto che in FormBuilder c'è la possibilità di scegliere una SELECT che carica i nomi delle nazioni. È possibile creare delle SELECT simili con altri dati (ad esempio un elenco di marche di autovetture), magari importandoli da un db o un file?
Dove sono memorizzati i nomi delle nazioni che trovo in FormBuilder?
ho abbastanza litigato con FormBuilder... e sto litigando... tanto che forse sarebbe più opportuno non darti consigli...  ;)
però credo che la domanda posta abbia una semplice risposta... devi solo impostare un campo a tendina e creare le opzioni che ti servono... non mi sembra che si possano importare valori da tabelle esterne... i dati di impostazione dei campi del form sono registrati nelle tabelle "cms_module_fb_field" e "cms_module_fb_field_opt"
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: Data in italiano e option select

Post by nervino »

Ciao protempore, grazie per la risposta.
protempore wrote: in ogni caso io ho avuto problemi con le accentate (venerdì, giovedì... etc.) che ho risolto con "accrocchi" di questo tipo:

Code: Select all

{$entry->postdate|cms_date_format|replace:"lun,":"Lunedì,"|replace:"mar,":"Martedì,"|replace:"mer,":"Mercoledì,"|replace:"gio,":"Giovedì,"|replace:"ven,":"Venerdì,"|replace:"sab,":"Sabato,"|replace:"dom,":"Domenica,"}
Scusa, non ho capito dove inserisci il codice qui sopra, puoi dirmi in quale file?

(Riguardo alla localizzazione, ho approfondito e credo sia un problema del mio server linux: ho reimpostato la localizzazione italiana ma il sistema mi dà sempre quella inglese. Ci smanetterò finché non risolvo...)

protempore wrote: ho abbastanza litigato con FormBuilder... e sto litigando... tanto che forse sarebbe più opportuno non darti consigli...  ;)
però credo che la domanda posta abbia una semplice risposta... devi solo impostare un campo a tendina e creare le opzioni che ti servono... non mi sembra che si possano importare valori da tabelle esterne... i dati di impostazione dei campi del form sono registrati nelle tabelle "cms_module_fb_field" e "cms_module_fb_field_opt"
In effetti cercavo un modo per creare un set di dati da avere sempre a disposizione come scelta nel "Fast field adder" di FormBuilder (come la selezione delle nazioni o delle provincie canadesi).

In giro non ho trovato documentazione in proposito (è anche vero che non ho letto completamente il wiki di sviluppo dei moduli...), ma credo di aver risolto, e lo spiego qui in caso serva a qualcuno.

Ho fatto così:

Bisogna creare una nuova classe di Formbuilder con un array contenente i dati che ci interessano, e modificare i file della lingua.

Nell'esempio creeremo una nuova classe contenente le marche di autovetture, prendendo come modello il file
"modules\FormBuilder\classes\ProvincePickerField.class.php" e modificandolo.

1) Copiare il file delle provincie canadesi (modules\FormBuilder\classes\ProvincePickerField.class.php) e modificare parte del nome che deve avere la desinenza "PickerField.class.php"
esempio: modules\FormBuilder\classes\MarchePickerField.class.php

2) Modificare i nomi della classe e delle variabili (Ad esempio, si può usare una funzione di sostituzione di un qualsiasi html editor, sostituendo la parola "Province" con una nuova, ad esempio "Marche") del nuovo file MarchePickerField.class.php

3) Modificare il contenuto dell'array che carica i dati nella select (nel nostro esempio:

Code: Select all

$this->Provinces = array("No Default"=>'',"Alberta"=>"AB",...........);)
inserendo i dati che ci interessano, quindi ad esempio:

         

Code: Select all

$this->Marche = array($mod->Lang('no_default')=>'','Ac'=>'AC',
'Fiat'=>'fiat','BMW'=>'bmw','Ferrari'=>'Fe',........);

4) Nel file modules\FormBuilder\lang\en_US.php aggiungere le seguenti righe:

$lang['field_type_MarchePickerField'] = 'Select Vehicle Brand';

$lang['title_select_default_Marche']='Default Selection';


5) Nel file modules\FormBuilder\lang\en_US.php aggiungere le seguenti righe:

$lang['field_type_MarchePickerField'] = 'Selezione Marca Auto';

$lang['title_select_default_Marche'] = 'Selezione predefinita';

(Ovviamente le variabili qui sopra andranno inserite anche nelle altre lingue, se utilizzate)


A questo punto, dopo aver selezionato il link della modalità avanzata del "Fast field adder" di FormBuilder, dovrebbe comparire l'opzione "Selezione Marca Auto".


Ciao e Buon Anno
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Data in italiano e option select

Post by protempore »

nervino wrote: Scusa, non ho capito dove inserisci il codice qui sopra, puoi dirmi in quale file?
nei template delle news... ovunque hai la necessità di mostrare la data della news nel modo desiderato...
;)
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
reneh
Dev Team Member
Dev Team Member
Posts: 446
Joined: Tue Nov 28, 2006 8:39 pm

Re: [SOLVED] Data in italiano e option select

Post by reneh »

This post may be of interest:
http://forum.cmsmadesimple.org/index.ph ... 196.0.html

{$entry->postdate|cms_date_format:"%A %e %B %Y"|htmlentities}
It solved the wrong encoded norwegian chars (æøå) in the weekday names at least....
Last edited by reneh on Sat Jun 06, 2009 3:02 pm, edited 1 time in total.
ReneH 8-)
A search will save you hours waiting for an answer! Image
Post Reply

Return to “Italian - Italiano”