Re: [Spip-it] Menu multilingue?

From : renatoformato@... , the 4th June 2006 18:30
  • 2006-06-04 18:30:23 — renatoformato@... - Re: [Spip-it] Menu multilingue?

Carlo ha scritto:
  Il giorno 31/mag/06, alle 20:26, Carlo ha scritto:     mi rispondo, a metà, da solo  
  ho  un menù a tendina  di 218 nazioni in inglese :=(   Uso anche tavole esterne a SPIP, e il testo del menù viene preso da   queste... tutto funziona perfettamente.     Ora vorrei che le 218 nazioni fossero per l'utente presentate secondo   la lingua scelta (5 lingue):    
    no, non si può trattare quanto viene dal db come fosse : con 
questi simboli SPIP traduce SOLO quanto è già hardcoded sul modello. Questa questione è già stata affrontata altre volte. Il php  eventualmente presente nel modello viene eseguito DOPO la compilazione  da parte di SPIP del modello. Di conseguenza nessun tag di SPIP, se  costruito dinamicamente con del codice php nel modello, potrà funzionare  in tal modo.
  Bisogna fare un filtro che traduca il segnaposto, prendendo la 
traduzione da local.xx.
  Ora quindi la domanda è: che voi sappiate ne esistono già fatti, o 
simili da modificare (cercai ma non trovai)?
  Se no, ci sono funzioni in inc_lang che posso usare?   Se no, qualcuno ha intenzione di farlo? ;=)   Se no, due dritte, perfavore... non ho molto tempo, ne è la cosa 
principale del mio lavoro... ma sarebbe più carino.
    Carlo  
Con un filtro dovrebbe andare. La funzione che traduce i tag di lingua   è _T("tag"). La questione ora diventa come passare il parametro  a questa funzione, e cioè la variabile $nazione. Infatti non puoi  applicare il filtro alla variabile php $nazione nel modello. Per fare le  cose fatte bene, l'ideale sarebbe creare un ciclo per la tua tabella  inti_nazioni, per cui ti troveresti la variabile $nazione come tag  #NAZIONE, a cui puoi applicare tranquillamente il filtro. Supponendo creato il ciclo dovresti scrivere una cosa del genere: [(#NAZIONE|traduzione)] In filtro è semplicissimo : function traduzione($txt) {      return _T($txt); } Il tutto è tutto puramente teorico, visto che non ho fatto alcun test :) Spero possa esserti d'aiuto. Ciao Renato