Ciao a tutti.
Volevo sapere se è possibile in php capire in che lingua l'utente sta visualizzando il sito...
Ho un sito multilingua e vorrei scrivere, in funzione della lingua dell'utente, una frase su video...
esiste per caso una variabile o qualcosa che mi monitora questo parametro per fare uno scriptino del genere:
switch (variabile){
case "it": echo "ciao";
case "en": echo "hello";
case "es": echo "hola";
}
Ciao,
dipende dove vuoi printare lo script... di base, comunque, $language è la variabile che contiene tutte le informazioni dell'attuale lingua... Attenzione che, se hai abilitato i18n ho notato che ci sono delle leggere differenze rispetto al normale modulo di lingua presente nel core (o forse dipende appunto da che punto vuoi richiamare la variabile)...
Fai alcune prove con:
<pre><?php print_r($language); ?></pre>
;)
Non fare tu il lavoro che fa già Drupal!
Invece dello switch, scrivi
print t('hello');
La parola 'hello' sarà ora traducibile nella parte admin di Drupal (Amministra / Struttura del sito / Traduzione interfaccia), per tutte le lingue attive
Mi accodo a questa domandando una cosa: ho notato che a livello del template se utilizzo la funzione t() non riesco a trovare su Traduci interfaccia la stringa utilizzata... è normale? Ovviamente, ho pulito cache e tutto il necessario, ma nulla da fare: la funzione t() da modulo funziona benissimo, da template no! Anche a voi succede??
;)
Funziona anche nei template. Occhio che le stringhe incluse in t() diventano traducibili solo quando vengono richiamate la prima volta. Se si trovano in un template che non viene richiamato o in un modulo che non entra in funzione, non sono traducibili.
Si, quello per forza! Il template era attivo e funzionante solo che le stringhe richiamate con t() ho dovuto tradurle con il potx e poi importarle in Drupal...
Vabbè, farò qualche esperimento! Grazie!!
;)
grazie a entrambi.
Ho utilizzato il metodo proposto da Gioppy...
e per le pagine tutto ok!
avrei bisogno di fare la stessa cosa per una vista solo che nel file php delle viste non è passata la variabile $language...
qualcuno sa dirmi come fargliela leggere?
Ciao,
prova con un
P.S.: il metodo che ti ha suggerito Pinolo e senz'altro migliore perchè rendi il codice più pulito e più mantenibile... dipende, comunque, da quello che devi ottenre! (che a prescindere non conosco)...
;)