Hallo zusammen,
ich hab ein Problem mit dem Feld und Tabellennamen. Bei mir steht fast überall undefined.
Warum ist das so und wie kann ich das beheben.
Ich hab die Version 8.10.2
Hallo zusammen,
ich hab ein Problem mit dem Feld und Tabellennamen. Bei mir steht fast überall undefined.
Warum ist das so und wie kann ich das beheben.
Ich hab die Version 8.10.2
Hallo Werner,
teste bitte mal das System auf Englisch - sind die Spaltennamen dann auch noch undefined?
Falls ja, könnte es mit Dateiberechtigungen auf dem Server zusammen hängen.
Hattest du zuletzt ein neues Sprachpaket aktualisiert?
Da gingen einige Übersetzungen verloren:
Und im Endeffekt:
Du kannst einfach neue Übersetzungen hinterlegen:
Wenn dabei irgendwas nicht funktionieren sollte, schau noch mal in die Error Logs & ggf. Berechtigungen:
Run ./bin/console cache:clear from root or Repair and Rebuild from the Admin Menu.
Findest du etwas im Fehler log?
Das CRM läuft auf einer Subdomain und public steht nicht im URL Pfad?
In der Browser Dev Konsole ist alles fehlerfrei - sowohl in der Konsole als auch im Network Tab?
Falls das alles gut aussieht, probier noch mal Cache / Reset der Berechtigungen.
Und was passiert, wenn du manuell eine Übersetzung hinzufügst übers Studio?
Hallo Bastian,
Danke für deine tolle Hilfe.
Ja hab was gefunden und hab nochmal eine aktuelle Sprachdatei installiert.
Jetzt kommt die Meldung noch und die Ansicht
hat sich nicht geändert.
Die Fehlermeldung stammt von hier:
Wie bist du dahin gekommen?
Nehmen wir das Label: LBL_KD_NR_C kannst du das Feld kontrollieren?
Existiert es in der DB / im Studio?
Heißt es auf DB Seite so in der Art wie das Label?
Existiert eine DE und EN Übersetzung im Studio?
Existieren die Deutschen Dateien unter:
public/legacy/custom/modules/Cases/Ext/Language/
public/legacy/custom/Extension/modules/Cases/Ext/Language/
Lösen sich die Probleme, wenn du dort manuell das Label hinzufügst?
Irgendwas trifft wahrscheinlich nicht zu - dann ist die Frage, wieso das so ist / wie sich das lösen lässt.
Hattest du Feldnamen geändert?
Hattest du Feld-Label geändert?
Sind das ggf. alte Berichte, die auf alte Felder zeigen und du hast neue Felder erstellt?
o. Ä.?
Hallo Bastian,
ich hab was festgestellt, das hier gibt’s nur in der Deutschen Sprache, wenn ich english umstelle finde ich die Tabelle nicht.
Wie hast du das Feld erstellt?
Übers Studio und das in Deutsch?
In manchen Fällen, wird dann nur die DE “Übersetzung” angelegt und keine Strings in EN.
Wenn du oben rechts in deinem Screenshot “Alle Bezeichnungen” auswählst, ist das Feld dann in EN vorhanden?
Hallo Bastian,
Ja ich hab das im Studio auf Deutsch erstellt.
Ich finde es in Englisch nicht auch nicht, wenn ich alles anzeige.
Evtl. ist während der Erstellung irgendwas fehlgeschlagen. Z. B. mit Dateiberechtigungen o. Ä.
Du hast die Reparatur durchgeführt?
Sind schon Daten in dem Feld gespeichert?
Falls nein, probiere einfach noch mal zu löschen und neu zu erstellen.
Falls ja, erstelle mal ein zusätzliches Feld und teste, ob das alles funktioniert.
Funktioniert es generell in anderen Modulen?
Wann hat es das letzte Mal funktioniert?
Und wenn du in einem anderen Modul / Feld etwas funktionierendes gefunden hast, dann kannst du auf der Server-Ebene dir die Unterschiede anschauen.
Welche Dateien werden geschrieben?
Welche Berechtigungen / User haben diese?
Wie sind die Unterschiede zu den Feldern/Modulen, bei denen es nicht funktioniert?
Das Problem ist erst seit dem wir das Update auf die 8.10.2 durchgeführt haben. Mit der 8.9.x war das nicht so.
Kann das sein das ich es nur richtig ins System bekomme, wenn ich es in Englischen mache und das System legt es dann auch auf Deutsch an?
Mache ich das in Deutsch ist das in Englisch nicht verfügbar.
Das ist sehr verwirrend.
Hi,
I have checked the source code and this is what I found.
Since you are discussing this topic in German and I’m not fluent in German, I’ve also prepared the German version below. I’m not 100% sure whether my German wording conveys exactly the same meaning, so please compare it with the English version above if anything is unclear.
Why this happens (the mechanism, in plain terms):
When you add a field in Studio, SuiteCRM saves its label only for the language your interface is set to at that moment. The “Add Field” screen has no language selector, so it simply uses whatever language you’re currently working in. If that’s German, the label gets stored as a German-only label — no English version is ever created.
When SuiteCRM later needs to display a label, it builds them up in layers: it always loads English first as the foundation, then lays the default language on top, and finally the language you’re currently viewing on top of that. Each layer only covers over the one beneath it.
The key point is that this stacking only works in one direction — toward English. A label can fall back to English, but English never falls back to another language. So:
A field created in English has an English label at the foundation layer. Every other language loads that foundation first, so the field shows up everywhere — in German you simply see the English text as a fallback. That’s why it looked like the system “created the German version automatically.”
A field created in German only exists on the top layer, which is loaded only while you’re viewing in German. The moment you switch to English, that layer isn’t loaded and there’s no English foundation underneath — so there’s nothing to display, and you get undefined.
In short: SuiteCRM only falls back to the default language (English), never the other way around — but Studio saves the label in whatever language you happen to be using. So a field created while the interface is in German simply never gets an English label to fall back on.
Warum das passiert (der Mechanismus, einfach erklärt):
Wenn du ein Feld in Studio anlegst, speichert SuiteCRM das Label nur für die Sprache, in der deine Oberfläche in diesem Moment eingestellt ist. Die “Feld hinzufügen”-Maske hat keine Sprachauswahl, es wird also einfach die Sprache verwendet, in der du gerade arbeitest. Ist das Deutsch, wird das Label nur als deutsches Label gespeichert — eine englische Version wird nie erzeugt.
Wenn SuiteCRM später ein Label anzeigen muss, baut es diese in Schichten auf: Zuerst wird immer Englisch als Grundlage geladen, darauf kommt die Standardsprache, und ganz oben die aktuell angezeigte Sprache. Jede Schicht überdeckt nur die darunterliegende.
Entscheidend ist: Dieses Stapeln funktioniert nur in eine Richtung — hin zu Englisch. Ein Label kann auf Englisch zurückfallen, aber Englisch fällt nie auf eine andere Sprache zurück. Also:
Ein auf Englisch angelegtes Feld hat sein Label in der Grundschicht. Jede andere Sprache lädt diese Grundlage zuerst, also erscheint das Feld überall — auf Deutsch siehst du einfach den englischen Text als Fallback. Deshalb wirkte es so, als hätte das System “die deutsche Version automatisch erstellt”.
Ein auf Deutsch angelegtes Feld existiert nur in der obersten Schicht, die nur geladen wird, solange du auf Deutsch schaust. Sobald du auf Englisch wechselst, wird diese Schicht nicht geladen, und darunter gibt es keine englische Grundlage — also gibt es nichts anzuzeigen, und du bekommst undefined.
Kurz gesagt: SuiteCRM fällt nur auf die Standardsprache (Englisch) zurück, niemals umgekehrt — aber Studio speichert das Label in der Sprache, die du gerade verwendest. Ein Feld, das angelegt wird, während die Oberfläche auf Deutsch steht, bekommt daher nie ein englisches Label, auf das es zurückfallen könnte.
Kannst du die Schritte genau auflisten?
In den meisten Projekten mache ich erst EN Felder im EN Admin und füge dann die DE Übersetzung hinzu. So funktioiert auch der Standard + Sprachpaket.
Es gibt aber genügend Mix-Installationen in denen Admins auch in sowohl/als auch DE und EN gearbeitet haben.
Sollte beides funktionieren.
Und du schreibst von verschiedenen Versionen:
Kann es sein, dass bei dem Upgrade selbst irgendwas nicht funktioniert hat?
Hallo Bastian,
das ist doch schon recht seltsam. Ich bin angemeldet in Englisch und dort im Studio ab ich Felder die undefined sind.
Ich hab mit der englischen Anmeldung ein Feld erstellt.
Dieses ist vorhanden auch in Deutsch.
Ich hab mich jetzt auf Deutsch angemeldet.
Das Feld von vorher ist auch da.
Ich mache jetzt ein neues Feld mit der Deutschen Anmeldung.
Interessant ist ja das dort Feld Überschriften in Englisch sind.
In Deutsch
Feld ist da in Deutsch und Deutschen Anmeldung.
In Englisch mit Deutschen Anmeldung fehlt das Feld.
Es fehlt auch bei Englischer Anmeldung und in Englisch.
Mit der Englischer Anmeldung und Sprache auf Deutsch ist das Feld da.
Es ist doch vielleicht die neue sprach Datei
Probier mal ein älteres Sprachpaket zu installieren.
Das hat bei mir bei einigem geholfen:
Das Thema mit den Feldern ist tatsächlich so. Manche Felder / Einstellungen / Optionen werden in DE angezeigt, aber nicht in EN. Schlimmer wird es, wenn man Studio und Module Builder in abwechselnd und in unterschiedlichen Sprachen verwendet. Felder ohne EN Übersetzung können tatsächlich fehlen.
Die sicherste Variante ist es, das System komplett als Admin in EN zu nutzen und dann auf DE zu übersetzen. (so wie im Standard angedacht - funktioniert aber auch komplett auf DE).
Die Spaltenüberschriften kann ich allerdings nicht reproduzieren bei mir.
Ich hatte mal etwas ähnliches in einer früheren 8.x Version (3 oder 4).
Damals hing es zusammen mit dem legacy Unterordner und den .htaccess Dateien da drin + der mod_rewrite Erweiterung des Server bzw. deren Konfig in der VHost.
Da war aber deutlich mehr “undefined” sichtbar - ist wahrscheinlich etwas anderes.
Hast du ein zweites System / Test-System, frisch und korrekt installiert?
Kannst du das da nachstellen?
Ich würde jetzt hier in die Logdateien einsteigen und diese genauer analysieren:
Darüber hinaus die Developer Tools im Browser.
Hallo Bastian,
ich hab ein paar andere Sprache Dateien ausprobiert, leider ohne Erfolg.
Wir haben allerdings ein Test System mit halbwegs gleichen Daten.
Dort funktioniert alles.
Irgendwie hab ich den Verdacht das unser System nicht richtig aufgesetzt ist.
Das klingt danach, ja.
Du kannst die Systeme vergleichen und somit herausfinden, wo die Unterschiede liegen bzw. was die Probleme verursacht.
Alternativ dazu, sag gern Bescheid und wir schnüren ein kleines Analysepaket und ich schaue aufs System drauf.