Ciao a tutti. Vorrei tradurre in italiano i messaggi che mi torna il chronoforms. Ovvero sostituire ad esempio il messaggio "required" con l'equivalente italiano "Campo obbligatorio" e via dicendo... Premetto che sto utilizzando la versione 3.1 di Chronoforms. Girando per il forum ho trovato questo post molto utile
http://forum.joomla.it/index.php?topic=54864.0Ho quindi aperto il file
mooValidation.js contenuto nella directory components/com_chronocontact/js e ho modificato la parte di codice di interesse inserendo il testo in italiano nella seguente maniera:
Validation.addAllThese([
['required', 'Campo obbligatorio', function(v) {
return !Validation.get('IsEmpty').test(v);
}],
['validate-number', 'Utilizzare solo caratteri numerici', function(v) {
return Validation.get('IsEmpty').test(v) || (!isNaN(v) && !/^\s+$/.test(v));
}],
['validate-digits', 'Utilizzare solo caratteri numerici, evitare spazi o altri caratteri speciali', function(v) {
return Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v);
}],
['validate-alpha', 'Utilizzare solo lettere [a-z A-Z]', function (v) {
return Validation.get('IsEmpty').test(v) || /^[a-zA-Z]+$/.test(v)
}],
['validate-alphanum', 'Utilizzare solo lettere (a-z) o numeri(0-9). Non inserire spazi', function(v) {
return Validation.get('IsEmpty').test(v) || !/\W/.test(v)
}],
['validate-date', 'Inserire una data valida', function(v) {
var test = new Date(v);
return Validation.get('IsEmpty').test(v) || !isNaN(test);
}],
['validate-email', 'Inserire un indirizzo e-mail valido. Ad esempio dario@dominio.com', function (v) {
return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)
}],
['validate-url', 'Inserire una URL valida', function (v) {
return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
}],
['validate-date-au', 'Inserire la data nel seguente formato: dd/mm/yyyy', function(v) {
if(Validation.get('IsEmpty').test(v)) return true;
var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/;
if(!regex.test(v)) return false;
var d = new Date(v.replace(regex, '$2/$1/$3'));
return ( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) &&
(parseInt(RegExp.$1, 10) == d.getDate()) &&
(parseInt(RegExp.$3, 10) == d.getFullYear() );
}],
['validate-currency-dollar', 'Utilizzare il carattere €. Ad esempio 100.00 €', function(v) {
// [$]1[##][,###]+[.##]
// [$]1###+[.##]
// [$]0.##
// [$].##
return Validation.get('IsEmpty').test(v) || /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v)
}],
['validate-selection', 'Scegli una opzione', function(v,elm){
return elm.options ? elm.selectedIndex > 0 : !Validation.get('IsEmpty').test(v);
}],
['validate-one-required', 'Scegli una opzione.', function (v,elm) {
var p = elm.parentNode;
var options = p.getElementsByTagName('INPUT');
for(i=0; i<options.length; i++){
if(options[i].checked == true) {
return true;
}
}
}]
]);
Ho salvato e liberato la cache ma non era cambiato niente.
Ho allora aperto anche il file
jsvalidation2.js e modificato la seguente parte di codice inserendo il testo in italiano:
$ES('input', $(chronoformname)).each(function(field){
var message_required = 'Campo obbligatorio';
var message_validate_number = 'Utilizzare solo caratteri numerici';
var message_validate_digits = 'Utilizzare solo caratteri numerici, evitare spazi o altri caratteri speciali';
var message_validate_alpha = 'Utilizzare solo lettere [a-z A-Z]';
var message_validate_alphanum = 'Utilizzare solo lettere (a-z) o numeri(0-9). Non inserire spazi';
var message_validate_date = 'Inserire una data valida';
var message_validate_email = 'Inserire un indirizzo e-mail valido. Ad esempio dario@dominio.com';
var message_validate_url = 'Inserire una URL valida';
var message_validate_date_au = 'Inserire la data nel seguente formato: dd/mm/yyyy';
var message_validate_currency_dollar = 'Utilizzare il carattere €. Ad esempio 100.00 €';
var message_validate_match = 'Assicurati che i due campi coincidano';
var message_validate_one_required = 'Scegli una opzione';
var message_validate_selection = 'Scegli una opzione';
E questa volta qualcosa è cambiato, ma non proprio tutto. Nel senso che alcuni messaggi appaiono correttamente in italiano (tipo "Campo obbligatorio", "Inserire indirizzo e-mail valido..." etc), altri invece no. In particolare nel campo TELEFONO del mio form (che da wizard di chronoforms ho configurato come "only numbers") se provo a inserire lettere o spazi mi appare il seguente messaggio in inglese "Must be number" anziché l'equivalente italiano da me inserito "Inserire solo caratteri numerici"
Stessa cosa per quanto riguarda il campo MESSAGGIO del mio form dove appare il testo "Can't be empty" se non compongo il messaggio.
La cosa che non riesco a capire è che i messaggi "Must be number" e "Can't be empty" non li trovo presenti all'interno di nessuno dei due file .js
Come faccio a ottenere integralmente la lingua italiana?
Sto sbagliando qualcosa o semplicemente c'è un altro modo?
Grazie mille