Warum wird die Sprache des Körperfelds nicht in derselben Sprache wie der Knoten gespeichert?

9

Ich habe ein Problem, bei dem der Benutzer neue Knoten erstellt und Textkörper eingibt, die Knoten jedoch für die Sprache auf "sprachneutral" setzt. Wenn jedoch der Knoten gespeichert wird, wird die Sprache des Körperfelds auf Englisch gesetzt. Warum sollte das passieren? Was würde das verursachen?

Auf dieser Seite haben wir sowohl Englisch als auch Französisch aktiviert und konfiguriert. Diese Seite ist D7 mit i18n.

Dies ähnelt dem leeren Textkörper auf der Knotenbearbeitungsseite, außer dass ich wissen möchte, wie das Feld überhaupt eine andere Sprache als der Knoten erhalten würde.

Patrick
quelle

Antworten:

4

Standardmäßig setzt drupal 'und' als Feldsprache, dh LANGUAGE_NONE. Wenn Sie also print_r($node)ein Feld mit so etwas wie sehen$node->field_name['und'][0]['value']

Wenn Sie nun die Übersetzung in diesem Feld aktivieren, wird das 'und' durch den Sprachcode ersetzt und die $nodeStruktur sieht irgendwie so aus, als wäre $node->field_name['en'][0]['value']'en' der Sprachcode. Ihr Körperfeld hat jetzt 'en' als Sprache und ist beim Rendern nicht mehr leer

Für Ihre Frage oben:

Ich habe ein Problem, bei dem der Benutzer neue Knoten erstellt und Textkörper eingibt, die Knoten jedoch für die Sprache auf "sprachneutral" setzt. Wenn jedoch der Knoten gespeichert wird, wird die Sprache des Körperfelds auf Englisch gesetzt. Warum sollte das passieren? Was würde das verursachen?

Überprüfen Sie die Standardsprache Ihrer Website. Wenn diese auf Englisch eingestellt ist, wird wahrscheinlich die Sprachsprache Neutral die Standardsprache Ihrer Website verwenden.

gauravjeet
quelle
1
Wäre ein bisschen besser, wenn Sie erklären könnten, wie die Übersetzung in Feldern aktiviert wird, da Sie anscheinend wissen, wie es geht, und es nicht offensichtlich ist.
Mołot
1
@ Mołot, Laden Sie das i18n-Modul herunter und installieren Sie es von: [ drupal.org/project/i18n] . Gehen Sie nun zu Struktur> Inhaltstypen> 'Name des Inhaltstyps'> Felder verwalten> 'Feld bearbeiten'. Sie erhalten eine Option zum Aktivieren der Übersetzung , Damit können Sie die Übersetzung für jedes Feld
aktivieren
Ich meinte, ich kann es schaffen, aber Ihre Antwort zu bearbeiten (für zukünftige Leser, viele davon frisch und grün), könnte eine gute Idee sein. Wenn Sie sich die Mühe machen können, es zu tun. Sie haben sowieso meine Zustimmung zur Erklärung.
Mołot