Re: [Spip-it] Domanda sul multilinguismo

From : renatoformato@... , the 17th November 2005 20:59

Salve a tutti! Sto cercando di creare un sito multilingue con selezione preliminare   della lingua desiderata (la pagina iniziale definisce 3 opzioni e   cliccando su ognuna di queste si finisce nel sito con la lingua   desiderata) Ho proceduto in questo modo: 1 - ho attivato il multilinguismo sull'admin di SPIP scegliendo come   lingue l'italiano, l'inglese e il francese; dopodiché ho settato   l'italiano come lingua di default 2 - ho attivato la gestione delle lingue sulle rubriche e sugli   articoli nell'apposito box
Hai deciso come gestire il multilinguismo? Ad esempio, ogni rubrica di primo livello corrisponde al contenuto di una lingua, oppure ogni rubrica, indipendentemente da dove si trovi nella gerarchia, può avere una lingua diversa? Gli articoli possono avere una lingua diversa da quella della rubrica in cui si trovano? Se non decidi come organizzare il sito non potrai configurare SPIP adeguatamente e scrivere i modelli di conseguenza.
3 - ho aggiunto il file lingua local_it.php3 dentro ecrire/lang per   aggiustare alcune traduzioni ed inserirne di nuove e l'ho scelto,   nell'admin di spip, come file di riferimento per le traduzioni degli   elementi dell'interfaccia
Va bene anche se, a mio avviso, i file di lingua andrebbero salvati nella cartella squelettes in modo da non sovrascrivere i file originali di SPIP e di non perdere le modifiche nel momento in cui effettui un aggiornamento.
4 - ho creato i miei articoli nelle varie lingue per poi settare per   ogni articolo la lingua in cui è redatto
Vedi la risposta ai punti 1 e 2. Potrebbe non essere affatto utile.
5 - ho creato delle rubriche in varie lingue, settando anche per   queste le lingue relative
Idem. Forse ti basta impostare la lingua per le rubriche di primo livello
Pubblicando il sito notavo che nell'elenco delle rubriche apparivano   sia quelle in italiano sia quelle in inglese e francese. Stesso   discorso per gli articoli. Ho provato a cambiare la lingua del mio   sistema operativo e delle mie applicazioni settando di volta in volta   inglese, francese e italiano: mi aspettavo cambiasse qualcosa ma   evidentemente sbagliavo.
Usa il criterio {lang} nei cicli di selezione delle rubriche e passa il parametro lang nell'url
Leggendo la documentazione mi sono persuaso che era necessario creare   dei template ad hoc. Così ho creato template per la home, le   rubriche, l'articolo, le brevi... in una parola, tutto il sito! Per   ottenere i miei risultati pensavo che fosse necessario: 1 - modificare nei file i tag "#LANG" e "LANG_DIR" nella riga   "" in "it" per la home in italiano,   "en" per quella inglese, "fr" per qulla francese; a quanto pare,   invece, non basta... Carica gli articoli nella lingua giusta ma non   cambia gli elementi dell'interfaccia (quelli indicati con i tag   )
Il tag #LANG non fa altro che scrivere il nome della lingua corrente nel modello. Non serve a selezionare una lingua. i tag  vengono visualizzati nella lingua presente nel contesto del modello. Prova a richiamare un URL con il parametro lang impostato, www.miosito.it/?lang=en o www.miosito.it/?lang=it. Le scritte dovrebbero cambiare a meno che non si trovino all'interno di cicli che selezionano, a loro volta, lingue diverse. All'interno di una rubrica inglese i tag saranno tradotti in inglese, all'interno di un articolo francese in francese e così via.
2 - la procedura descritta sopra ha invece funzionato con gli   articoli che caricano i testi nella lingua giusta e aggiornano   correttamente gli elementi dell'interfaccia
La lingua del contesto è quella dell'articolo in questo caso.
3 - per fare in modo che nelle varie rubriche e articoli non   comparissero tutti gli elementi nel DB ma solo quelli della lingua   scelta ho filtrato i cicli BOUCLE con il parametro (lang = it / lang   = en / lang = fr)
Perfetto
4 - Il risultato del procedimento descritto sopra è ottimo se non   fosse per il fatto che, comunque, le varie voci che vengono generate   puntanto sempre al file rubrique.php3 (che la versione "italiana"   della rubrica) e non ai files rubrique_en.php3 e rubrique_it.php3...
Nella documentazione è spiegato come fare. O usi i file di lingua (in cui descrivi i tag ), oppure fai un modello per lingua. In tal caso SPIP si occupa di selezionare in automatico il modello  per la lingua del contesto in cui ti trovi. Quindi non è un problema se l'url è rubrique.php3 Funziona un pò come per i modelli degli articoli contenuti in una rubrica. Richiami sempre article.php2?id_article=xx ma se SPIP trova un modello article-23.html lo userà al posto del modello standard degli articoli se l'articolo si trova nella rubrica 23 o in una delle sue rubriche figlie.
Insomma, come avrete capito, la coperta è troppo corta: tirando da un   lato se ne scopre un altro... Mi chiedevo se ci fosse un metodo   semplice ed efficacie per fare in modo che: 1 - sia possibile caricare home con lingue differenti, a seconda di   una selezione preliminare, che abbiano i vari elementi   dell'interfaccia tradotti (header, footer, titoli dei menu etc.)
Certo. E' complicato da spiegare in 2 parole ma è sicuramente fattibile. Hai provato ad usare il tag #MENU_LANG?
2 - sia possibile caricare dinamicamente, all'interno di template con   lingue diverse, solo articoli, rubriche e brevi di una data lingua e   fare in modo che le voci generate puntino non a rubrique.php3,   article.php3 etc. ma ai template linguisticamente corretti (ad es.   rubrique_en.php3 etc.)
Stessa storia. Se usi i file di lingua è inutile creare un modello per lingua. Se crei un modello per lingua, è inutile creare i file di lingua.  Ti stai addentrando in una delle funzionalità più potenti e, di conseguenza, un po più complesse di SPIP. Senza avere una conoscenza di base delle possibilità offerte sotto questo aspetto, rischi di fare un po di confusione. Per iniziare a comprendere la parte che riguarda come configurare SPIP per il multilinguismo ti consiglio di leggere http://www.spip.net/it_article2835.html Quando avrai le idee chiare su come configurare il multilinguismo puoi passare alla lettura di http://www.spip.net/it_article2770.html  In questo articolo vedrai che vengono presentati 3 metodi di internazionalizzazione (file di lingua, un modello per lingua, i tag multi). Sarebbe consigliabile che tu ne scegliessi uno solo, in base alle tue esigenze. Solo in casi veramente eccezionali è davvero necessario usarne più di uno contemporaneamente.  Spero di esserti stato utile Ciao Renato PS: Ma quel famoso sito non l'hai finito più? :)