Drupal est-il vraiment utilisable pour un site multilingue ???

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.

Bonjour,

je me suis mis à Drupal il y a quelque mois. Je précise que je suis belge, ce qui a son importance car ici, quasi tous les sites se font en 2, voir 3 langues, et parfois plus.

J'ai récemment installé un Drupal 6.10 tout neuf, et je suis confronté à plusieurs problèmes, plus ou moins grave, qui rendent à mon sens Drupal inutilisable pour du multilingue.

Le premier soucis que j'ai est que quand je crée un contenu, une page par exemple, la langue par défaut qui est utilisée est Neutral. Malgré mes recherches, je ne trouve pas le moyen de désactivé cette langue neutre qui à vrai dire ne me sert à rien. Si j'étais le seul à encoder, passe encore, mais le but à terme est de livré cela à un client qui n'est pas spécialement expert en web et cms.
Et je me vois mal lui expliquer qu'il ne faut surtout pas oublié de sélectionner une langue lorsqu'il encode un contenu, sous peine de ne plus pouvoir le traduire ensuite (oui, c'est un des problème du neutral). Donc source d'erreur et de confusion assurée.

Ensuite, si je parcours le site en EN, mais que je crée un contenu en FR, l'arborescence des menu qui est proposée est en EN ! Autre source d'erreur pour "monsieur tout le monde".

Enfin, et c'est le plus grave, j'ai un bug avec cette toute nouvelle installation. Je crée un page en EN, en créant un menu et un path alias. Puis je traduis cette page en FR, j'ajuste les contenu, le nom du menu, et l'alias.
Jusque là tout va bien. Ensuite, je réédite le contenu FR, pour changer quelque chose dans le texte par exemple, et là, surprise, le nom du menu et le path alias ont les valeurs EN, et pas FR. Moi, je le sais, je peux corriger (chiant de devoir le faire à chaque fois quand même), mais encore une fois, c'est inacceptable pour un client lambda.

Et enfin(bis), Drupal permet en principe de synchroniser certaines infos via Synchronize translations (author, status, promote, moderate, ...), cool à priori, mais ce système foire complètement avec les path alias, si je veux qu'une page ait le même url en FR et en EN, impossible si il y a ne fut-ce qu'une info synchronisée.

Bref, j'ai l'impression que ce CMS, que j'aime beaucoup du reste, et dans lequel j'avais mis beaucoup d'espoir, n'est pas (encore) adapté pour les sites multilingue.

Mais j'espère de tout coeur que l'on va me contredire, et me donner des astuces pour résoudres ces problèmes.

Merci

Version de Drupal : 

Si, justement le premier ministre belge, lui, il fait du multilangue et du drupal ;)
http://www.premier.fgov.be/

Très rapide (j'ai pas le temps), sur le point
Le premier soucis que j'ai est que quand je crée un contenu, une page par exemple, la langue par défaut qui est utilisée est Neutral. Malgré mes recherches, je ne trouve pas le moyen de désactivé cette langue neutre qui à vrai dire ne me sert à rien.
Un petit module maison pour rectifier ce comportement

moduleName.install

<?php
function moduleName_install() {
 
 
// Set module weight for it to run after i18n module
 
db_query("UPDATE {system} SET weight = 20 WHERE name = 'moduleName' AND type = 'module'");
 
}
?>

moduleName.module

<?php
/**
 * Implementation of hook_form_alter().
 */

function moduleName_form_alter(&$form, $form_state, $form_id) {
  
//disable "language neutral"
 
if ($form_id == $form['#node']->type . '_node_form') {
   
$default = language_default();
    if (isset(
$form['#id']) && $form['#id'] == 'node-form') {
      if (isset(
$form['#node']->type)  && variable_get('language_content_type_'. $form['#node']->type, 0) ) {
       
$form['language']['#options'] = locale_language_list('name');
       
$form['#default_value'] = $form['#node']->language ? $form['#node']->language : $default->language;
       
$form['language']['#options'] = locale_language_list('name');
      }
    }
  }
}
?>

Merci beaucoup Haza, je vais essayer cela très vite.

Reste le problème de nom de menu qui se remet d'office sur le premier nom encodé (si je crée la page en FR, en mettant un nom de menu, chaque fois que j'irai éditer la version EN, c'est le nom du menu FR qu'il me propose), mais là je crois que c'est vraiment un bug récent, car je n'avais pas ça sur mes précédentes install.

Merci encore.

Entre temps, je pense avoir partiellement résolu le problème pour le nom des menus.

En fait si je désactive le sous-module "Menu translation" dans i18n, ce problème disparaît, par contre je n'ai plus la possibilité de choisir la langue d'une menu item.
Mais ça ne semble pas gênant pour l'instant, puisque les menus s'affichent uniquement si ils pointent vers un contenu qui est encodé dans la langue en cours (y a t'il quelqu'un qui comprenne ce que je dis, pas évident à décrire...).

Mais je redoute que cette limitation soit bloquante tôt ou tard...