Une page d'accueil différente par langue

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

http://drupal.org/node/133977

Avec le module i18n je peux récupérer les translations directes
via le menu

http://www.monsite/fr
http://www.monsite/en
http://www.monsite/de

Je tombe sur une page avec la home traduite. Or, les views générées ne correspondent pas à ce que je souhaite voir (lire plus devrait être traduit read more champ d'une view Node: Link to node) et j'aimerais au final afficher une page avec des blocks différents selon la langue.

En fr : Par exemple voir le block edito sans le block international

En eng : que le block international sans le block edito

Ma question revient à savoir comment obtenir
- une page par défault pour chacune des langues
- une home différente pour chacune des langues

Je n'ai rien trouvé de très signifiant sur la doc d'i18n

//

J'utilise à présent ce code pour créer des pages templates par taxonomy

/* load up the taxonomy terms for this node and page */

$terms = taxonomy_node_get_terms($node->nid);
rsort($terms);

/**
* Check to see if the taxonomy term matches your query and load
* a custom page-termname.tpl.php layout file
*/

if ($terms[0]->name == 'edito') {include 'page-edito.tpl.php';
return; }

/*If the taxonomy term name doesn't match, load the page-default.tpl.php */

else {include 'page-default.tpl.php';
return;}
?>

Version de Drupal : 

Le pb s'est posé à d'autres personnes sans réponse
http://drupal.org/node/137315

Je ne voudrais pas rediriger chaque page d'accueil sur un node particulier mais bien sur un template en particulier exemple : frontpage_fr frontpage_en frontpage_de.

Je ne vois pas bien ce que le handbook veut dire
The first one is to add 'site_frontpage' to language dependent variables, and then define a different path for each language.

http://drupal.org/node/134003

A mon avis, ce qu'il veut dire par

en/home --> en/node/1
es/home --> es/node/2

c'est qu'il faut faire des alias different au niveau du module path.
Ainsi ta premiere page est la meme mais comme le module i18n ajoute un prefixe a tous les paths, alors ta page de garde va changer car le nouveau path de la home va etre en/home et comme tu auras crees un alias vers node/1 ca ira sur cette page...

Pas super claire l'explication mais a mon avis faut essayer.

Sinon vu que je connais pas i18n, je sais pas ou on definit les variables...

Salut,

Apparement le module I18n est en cours de débuggage concernant la page de garde par défaut qui ne se transforme pas en "This is a multilingual variable", même si tu ajoutes la variable indiquée dans template.php

drupal.org/project/i18n

du coup j'ai recréé un menu avec des puces (drapeaux) qui pointent vers des nodes particuliers par exemple
lphb/en/node/155 pour l'anglais
lphb/de/node/156 pour l'allemand

J'ai créé un include entete.tpl pour chaque langue ou j'ajoute
au chemin du logo le lien direct vers le node concerné 155 ou 156 ici : de cette manière si je suis sur un article de la version anglaise en cliquant sur le logo je reviens sur le node qui m'intéresse (en guise de home par langue).

Pas trouvé mieux pour le moment en attendant drupal 6 ou cette correction d'I18n.

Stéphane

Ma question revient à savoir comment obtenir
- une page par défault pour chacune des langues
- une home différente pour chacune des langues

Hello,

Pas sûr de comprendre la différence entre "page par défaut" et "home".

Pour avoir une home différente pour chaque langue, il faut en effet déclarer que la variable persistante qui contient le path de la home est multilingue. Pour cela, il faut ajouter le code suivant dans /sites/default/settings.php :

<?php
$conf
['i18n_variables'] = array(
 
'site_frontpage,
);
?>

Ensuite, tu vas sur la page de l'admin où tu peux configurer la home pour le site anglais (en/admin/settings/site-information), tu saisis le chemin et tu enregistres.

Tu recommences l'opération en allant sur la page de config de la home française (fr/admin/settings/site-information), tu saisis le chemin et tu enregistres.

Et ainsi de suite pour chaque langue.

Oui Vincent, mais je peux t'assurer que même en mettant

<?php
$conf
['i18n_variables'] = array(
 
'site_frontpage',
);
?>

le champ Page de garde par défaut dans :
fr/admin/settings/site-information
en/admin/settings/site-information

ne se transforme pas en This is a multilingual variable.

:-(

J'ai pas remarqué qu'il s'écrivait "This is a multilingual variable" sur l'écran. Simplement, tu peux saisir une valeur différente pour chaque langue (en l'occurrence, pour la langue avec laquelle tu es en train de regarder le site).

Cela dit, le site multilingue que j'ai fait était sous Drupal 4.7. Peut-être que le comportement est différent sous Drupal 5.