2010-01-14 4 views
2

J'ai un site web multilingue dans Drupal, mais tout le contenu n'est pas traduit. Je souhaite que le bloc de sélection de langue apparaisse dans une page de contenu uniquement s'il existe une traduction pour ce contenu.Drupal: afficher un sélecteur de langue uniquement lorsque le contenu est traduit

Le bloc de sélection de langue utilise la fonction translation_path_get_translations pour obtenir le chemin de la version traduite du contenu en cours de visualisation. S'il n'y a pas de chemins traduits, le bloc n'imprime pas le commutateur. Le problème est que parfois la version traduite est sous le même chemin que le contenu d'origine (par exemple quand c'est une vue ou un contenu généré par un module). Dans ce cas, bien que translation_path_get_translations ne renvoie aucun chemin traduit, le commutateur de langue doit être imprimé, car la vue ou le module s'occupera de la traduction.

Par exemple, ce sont les chemins d'un contenu traduit:

english/content-path-here 
portuguese/conteudo-aqui 

Et ce sont des chemins d'un contenu généré par une vue ou un module:

english/foobar 
portuguese/foobar 

Alors, est-il un moyen résoudre cela? Peut-être un moyen de déterminer si un chemin donné est un "vrai contenu" (et non une vue/un module)?

Merci.

+0

Comment allez-vous déterminer si une vue est traduit? – googletorp

+0

googletorp, dans ce projet particulier les vues ont toujours du contenu traduit à montrer. Le problème est avec des nœuds uniques. –

Répondre

2

hmm, je pense que c'est possible seulement manuellement par les chemins.
Peut être aider ceci:


if ((arg(0) == 'node') && is_numeric(arg(1))) { 
    // that show you are on single node, and you can show block for translation 
} 
+0

Merci! Pas une solution parfaite, mais fonctionne dans mon projet :) –

Questions connexes