Pourquoi la langue du champ corporel ne serait-elle pas enregistrée dans la même langue que le nœud?

9

J'ai un problème où l'utilisateur crée de nouveaux nœuds et saisit le corps du texte, mais définit les nœuds sur "langue neutre" pour la langue. Pourtant, lorsqu'il enregistre le nœud, la langue du champ corporel est définie sur l'anglais. Pourquoi cela arriverait-il? Qu'est-ce qui provoquerait cela?

Sur ce site, nous avons activé et configuré l'anglais et le français. Ce site est D7 exécutant i18n.

Ceci est similaire au corps vide dans la page d'édition du nœud, sauf que je veux savoir comment le champ obtiendrait une langue différente de celle du nœud en premier lieu.

Patrick
la source

Réponses:

4

Par défaut, drupal définit «und» comme langue de champ, c'est-à-dire LANGUAGE_NONE. Donc, quand vous print_r($node), vous verrez un champ avec quelque chose comme$node->field_name['und'][0]['value']

Maintenant, lorsque vous activez la traduction sur ce champ, le «und» sera remplacé par le code de langue et, d'une manière ou d'une autre, la $nodestructure ressemblera à l' $node->field_name['en'][0]['value']endroit où «en» est le code de langue. Votre champ corporel aura désormais 'en' comme langue et ne sera plus vide lors du rendu

Pour votre question ci-dessus:

J'ai un problème où l'utilisateur crée de nouveaux nœuds et saisit le corps du texte, mais définit les nœuds sur "langue neutre" pour la langue. Pourtant, lorsqu'il enregistre le nœud, la langue du champ corporel est définie sur l'anglais. Pourquoi cela arriverait-il? Qu'est-ce qui provoquerait cela?

Vérifiez la langue par défaut de votre site, si elle est définie sur l'anglais, alors probablement Language Neutral prendra la langue par défaut de votre site.

gauravjeet
la source
1
Ce serait un peu mieux si vous pouviez expliquer comment activer la traduction sur les champs, car il semble que vous savez comment le faire, et ce n'est pas évident.
Mołot
1
@ Mołot, téléchargez et installez le module i18n à partir de: [ drupal.org/project/i18n] , allez maintenant dans Structure> Types de contenu> 'Nom du type de contenu'> Gérer les champs> 'Modifier un champ' Vous aurez une option pour activer la traduction , Avec cela, vous pouvez activer la traduction sur n'importe quel domaine donné
gauravjeet
Je voulais dire que je peux le faire, mais modifier votre réponse (pour les futurs lecteurs, beaucoup d'entre eux frais et verts) peut être une bonne idée. Si vous pouvez prendre la peine de le faire. Vous avez quand même mon vote positif pour l'explication.
Mołot