Cambiare vista in base alla lingua

25 contenuti / 0 new
Ultimo contenuto
Cambiare vista in base alla lingua

Salve,
dopo aver fatto viste con un filtro sulla lingua dell'utente, mi chiedevo se era possibile associare due viste una con i nodi in italiano e una in inglese.

Per esempio ho:
www.miosito.it/it/articoli E www.miosito.it/en/posts

Nei menu due voci una per la vista in italiano e una per la vista in inglese.

Mi chiedevo se è possibile fare in modo che se uno e nella vista in italiano e clicca inglese vada a finire nella vista in inglese.
In sostanza vorrei cambiare il path
Attualmente uso una vista sola con il filtro sulla lingua dell'utente così però che sia italiano o inglese il path finale non mi piace:

www.miosito.it/it/articoli E www.miosito.it/en/articoli

Esiste una soluzione?

Crei 1 vista per ITA con path articoli e 1 per ENG con path posts

Certo questo e quello che ho detto, però quando sono nella vista per ITA e clicco da menu di scelta lingua drupal non mi manda nella vista per ENG ma mi manda nella stessa vista per ITA cambiando il suffisso della lingua.

Quindi il comportamento è se sono in italiano:

miosito.it/ita/articoli pigio inglese e mi manda a miosito.it/en/articoli

Allo stesso modo se sono nel sito in inglese:

miosito.it/en/posts e pigio italino mi manda a miosito.it/it/posts

Come può sapere drupal che una vista è la traduzione di un'altra vista?

devi agire sulla tassonomia...

1. Crei un Vocabolario e lo associ ad un Content Type
2. Crei 2 termini (Articoli - Posts)
3. Cliccando su "Lista termini" dovrebbe apparirti il Tab "Translate" (in alto dove c'è "Edit" etc...)
4. Click su Translate in modo da assegnare/tradurre i 2 termini alle lingue desiderate
5. Crei le 2 viste e, nella sezione Filtri, aggiungi (+) "taxonomy: term" selezionando il vocabolario appena creato
6. Sempre nei Filtri, click su Taxonomy: term (dovrebbe apparirti una finestrella con i 2 termini Articoli e Posts)
7. Per la vista in ITA selezioni/annerisci "Articoli" e salvi tutto (sto andando a memoria...)
8. Cloni la vista (rinominandola) e ripeti l'operazione selezionando in Taxonomy: Term la voce in ENG "Posts"

...fai un pò di prove, non dovrebbe essere difficile...

Ricordati di dare un path a ciascuna vista selezionando Page > Impostazioni pagina > Path es. "articoli" per ITA e "posts" per ENG

Fammi sapere...

Ciao
kipper

Quote:
Come può sapere drupal che una vista è la traduzione di un'altra vista?

io uso un altro approccio: una sola vista.
modifichi l'alias del percorso (pathauto offre la possibilità di path diversi per lingua)
e nella vista inserisci un filtro node translation:current user's language.
mai avuto problemi (con i nodi, hehe)

hug!
...e te pareva se Mr. Bohz non tirava fuori una delle sue magie!!! ;-)

Grazie per la dritta...

Ciao!

@bohz
mah... tra una sigaretta e l'altra e gironzolando per casa pensando ancora a questa storia ti dovrei chiedere una cosa...

a parte i nodi, se dovresti esporre dei filtri per estrarre dei risultati (sempre in 2 lingue...), per esempio un menu a tendina con l'elenco delle città - che poi sarebbero dei termini tradotti es:
Milano - Milan
Londra - London
Etc etc...

...useresti sempre una vista? ...se si, come faresti??? ...per evitare che al click sulla bandierina quando ti trovi nell'interfaccia dell'altra lingua ti appaia tale menu/filtro esposto in "rosso" con l'avviso "Attenzione! Scelta NON valida - Contattare l'amministratore..."?

Temo un'altra mossa delle tue ;-)

Ciao
Kipper

Ciao Kipper.
tra una sigaretta e l'altra penso che l'approccio non cambierebbe: se i termini sono tradotti e se sono associati solo ai nodi di lingua corrispondente (ovvero: il termine "Links" è anch'esso tradotto con "Links" e non si usano quindi termini in una lingua sui nodi in un'altra), non dovrebbe cambiare nulla: quando cambi la lingua la vista ti mostra solo i termini (e i nodi) in quella lingua, perchè gli hai detto di filtrare solo il contenuto nella lingua selezionata dall'utente.

Ho una situazione simile in produzione dove al posto dei tuoi termini c'è un elenco di CCK nodereference, tradotti e associati solo a contenuti nel proprio linguaggio. e funziona così.

Grazie Bohz per le preziose info...

Alla prossima!

Ciao
Kipper

Grazie problema risolto.
@bohz ottima soluzione, e pathauto sia!

@bohz
Stò vedendo adesso di far funzionare 'sta cosa ma ho un problema:
Nei filtri non mi appare > Node translation: current user's language.

Appaiono solo i seguenti:
Node translation: Child translation
Node translation: Language
Node translation: Source translation
Node translation: Translation set node ID
Node translation: Translation status

Ho assegnato i rispettivi termini alla relativa lingua in Alias URL (menu a tendina...) > admin/build/path come da te suggerito ma non mi appare il filtro in questione nei filtri della vista!!!

P.S. Ovviamente i termini sono tradotti anche in Taxonomy

Cosa stò tralasciando???

Ho installato anche il modulo >>> http://drupal.org/project/select_translation ...mi sembra di aver capito che ci vuole...

Attualmente in admin/settings/language/i18n in Content selection mode: sono settato su > Current language and language neutral - devo per caso mettermi su > All content. No language conditions apply?

Mi daresti gentilmente maggiori info???

Grazie

Ciao
Kipper

la dicitura corretta è
Node translation: Language = Current user's language

ok, ora ci sono > Current user's language appare nella lista delle opzioni sotto Configure filter Node translation: Language quando vado a configurare il filtro...

Grazie

Ciao

ciao bohz ho un problema nel senso che mi appare il messaggio in "rosso" nel filtro esposto in inglese...

ho fatto tutto quello che c'era da fare... nel filtro esposto ho annerito tutti i termini ITA/ENG e aggiunto un filtro > Node translation: Language = Current user's language

quando vado a vedere la pagina tutto è ok nel senso che nonostante ho annerito/evidenziato nel filtro esposto 4 termini (2 ita e 2 eng...), nel menu a tendina del filtro esposto (interfaccia ITA...) me ne fa vedere solo 2, quelli italiani e fin qui è ok...

il problema è che quando cambio interfaccia passando a quella inglese appare il filtro esposto (con i 2 termini inglesi, che vanno bene...) però in rosso con il messaggio di scelta non valida...

dove cavolo posso aver sbagliato??? ...sto facendo prove su prove ma non riesco a risolvere

P.S. l'unico dubbio è che negli URLs semplificati ho semplicemente assegnato le rispettive lingue ai path già esistenti senza modificarli...

tu sopra hai scritto >>> modifichi l'alias del percorso (pathauto offre la possibilità di path diversi per lingua)

il fatto curioso è che se clicco su "Apply" (con i termini in rosso...) subito diventano neri/regolari e mi restituisce i risultati e continuano a rimanere tali nella lingua inglese!!!

grazie

ciao
kipper

niente... se imposto il filtro Node translation: Language = Current user's language mi fa vedere i risultati correttamente separati per lingua (tutti itermini ITA/ENG sono evidenziati in Selezionare i termini dal vocabolario test: ) ma, nonappena questo filtro lo espongo, appare il menu a tendina in rosso nell'interfaccia ENG che prima dava il giusto risultato nelle rispettive lingue al cambio delle interfacce ITA/ENG ...non vorrei apparire insistente ma secondo me questo sistema ha dei problemi nei Filtri Esposti boh... non riesco a trovare un'altra spiegazione a tutto questo... ogni operazione è stata fatta e poi, il fatto che restituisce i risultati giusti solo nella lingua in cui ci si trova nel filtro normale ma NON quando lo espongo (nonostante i termini ITA/ENG siano tutti selezionati/anneriti) qualcosa che non funziona c'è...

a te i filtri esposti funzionano perfettamete con Node translation: Language = Current user's language???

non devi selezionarli tutti (i termini), non ne devi selezionare nessuno; e spuntare Limit to selected items.
In questo modo a me funziona sia con cck che con la tassonomia.

ciao bohz,
ma se non seleziono nessun termine e imposto Limit to selected items logicamente il menu a tendina del filtro esposto non mi mostra nessun termine > Limit to selected items come lascia capire il nome dovrebbe limitare/visualizzare i termini selezionati/evidenziati...

ho provato in tutti i modi girato tutto google ma non se ne esce...

se non seleziono nessun termine e metto il flag su > Optional e Force single la vista funziona però la prima voce del filtro esposto si setta su - Any - , mostra tutti i risultati, funziona benissimo nel cambio lingua ma se tolgo "- Any -" per lasciare solo i termini che voglio es > - Seleziona - (dove non ci sono contenuti volutamente altrimenti mi mostrerebbe qualche risultato e io lo voglio lasciare vuoto di default...) quando passo all'inglese, mi da errore di scelta non valida... sotto alcune schermate che dovrebbero chiarire lo scenario.

Perchè appare quella scelta non valida??? tutto è tradotto... le scelte non valide di solito vengono visualizzate dal sistema quando un termine non è tradotto nella giusta lingua... se vedi le impostazioni con il termine "- Any -" tutto funziona bene... al cambio della lingua cambia anche la lingua dei termini in > - Select - e Apples ...se ci fosse qualche termine non tradotto o qualcos'altro, al cambio della lingua dovrebbe segnalarlo in rosso, cosa che NON avviene, segno che tutto è ok...
ma se voglio visualizzare solo i termini stabiliti da me ...mi mostra sempre l'errore in rosso!!!

P.S. Il fatto strano (e curioso...) è che la vista che mi da errore con il filtro esposto, non me lo da se lo tengo nascosto!!!

Tenendolo nascosto se imposto solo i termini "Mele" e (tradotto...) "Apples" (per esempio...) la vista è ok; cambiando l'interfaccia mi viene mostrato correttamente il contenuto dei 2 nodi (tanto per fare una prova...) in ITA/ENG tradotti associato ad un termine (in questo caso a "Mele" e "Apples") senza mostrare nessun errore di scelta non valida...

non ti seguo più...
come mai hai 2 valori per - seleziona - ??
dovrebbe essercene solo 1, tradotto dal sistema in base alla lingua.

io ho i termini tradotti con un altro termine (e non tramite interfaccia di traduzione)
lo stesso per i campi cck
e tutto funge

prova a non selezionare nulla e a non spuntare Limit to selected items

ho 2 valori/termini per "- seleziona -" come per "Mele" perchè quando li creo in taxonomy ne creo uno per lingua e poi clicco il tab Translate e tramite i 2 menu a tendina li accoppio alle lingue rispettive... è questa l'interfaccia di traduzione che dici di NON usare?

@bohz wrote:
io ho i termini tradotti con un altro termine (e non tramite interfaccia di traduzione)

come si traduce un termine in un altro termine? ...abbi pazienza - mi sa che il punto sta qua...

nelle impostazioni del vocabolario, la traduzione è impostata come: Per language terms. Different terms will be allowed for each language and they can be translated

come dicevo in #7, se hai un termine "Termine" in IT, dovresti averne un altro "Term" in EN che è impostato come traduzione del primo...

ok bohz, adesso funziona

si, il vocabolario era/è settato su > Per language terms. Different terms will be allowed for each language and they can be translated. ...e mentre prima aggiungevo 2 termini per ogni lingua (assegnandoli dal menu a tendina > Lingua per poi tradurli > Translation) adesso, inserendone uno solo senza selezionare7abbinare la lingua tutto funziona... è questa la procedura?

rimane il fatto che per esempio - Seleziona - lo devo tradurre in - Select - e così tutti i termini della lingua inglese... che a volte ne ho 200 per vocabolario... come dovrei fare?

mi trovavo comodo con la traduzione dei termini con Translation (admin/content/taxonomy/6/translation/edit/new), ogni termine lo trascrivevo nella sua lingua e poi lo abbinavo...

in ogni caso ecco la schermata con le impostazioni che funzionano: il filtro esposto funziona e non esce più l'errore di prima... in interfaccia ITA, se seleziono Mele e clikko Applica mi viene restituito il nodo in ITA e vice-versa per ENG ...le voci del menu a tendina ovviamente sono sempre in italiano...

O.oh, finalmente,
dunque "Ho Capito tutto" : se devo fare il sito per la Mele non devo selezionare niente, ma se faccio quello della Apple (?) .. uguale .!.

Lavatrice ad ultrasuoni
Sito http://www.ultrasuoni.net > Client service and contacts: [email protected]

@bohz, da quanto ho capito i termini prevedono un nome identico di default es. Mele si vede tale sia in interfaccia ITA/ENG ma in realtà è tradotto nel senso che fa sempre riferimento/appartiene alla lingua in cui ci si trova...

ma la mia domanda (visto che da quanto ho capito [o non ho capito...] NON bisogna tradurre i termini quando si creano) è: come si deve fare per tradurli... se sono in ITA devo avere Mele e vice-versa Apples nel drop down del filtro esposto... attualmente funziona perfettamente ma ho Mele sia in ITA che in ENG

ma perchè se traduco i termini (che è la cosa più logica e semplice...) nel filtro esposto mi da errore???

sorry kip, non ti capisco più.
credo che tu abbia customizzato alquanto la questione.
io ti riporto il mio caso-studio, di più non posso...

  • vocabolario impostato con Per language terms. Different terms will be allowed for each language and they can be translated
  • i termini sono tradotti: per ciascun "termine" c'è un corrispettivo "term"
  • uso views 6.x-3.x-dev
  • non ho nessun termine vuoto tipo - seleziona -
  • nella vista il filtro è taxonomy:term id, esposto
  • nelle impostazioni del filtro non ho selezionato alcun termine nell'elenco a discesa e ho spuntato limit to selected items
  • ho inserito il filtro Node translation: Language = Current user's language

ok bohz,
sono consapevole di aver customizzato alquanto la questione e ti ringrazio per la tua pazienza... ci sono delle cose che vanno bene e altre che non quadrano assolutamente (nel mio caso specifico...)

vedrò di risolvere in qualche maniera...

appena ho delle news le pubblicherò

grazie veramente

ciao