Superbug in Sprache, wenn man diese umbenennt?

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Superbug in Sprache, wenn man diese umbenennt?

Beitrag von Faar » Fr 11. Dez 2020, 11:09

Also,
ich habe eine Sprache umbenannt, weil die erste Sprache nicht deutsch ist.
Eigentlich müsste man denken, das ginge einfach so, weil ja die Sprach-ID das Maßgebliche ist und die bleibt ja gleich. Nur die Bennenung ändert sich.
Nun stelle ich fest, dass sich die Modulübersetzung an den Namen der Sprache hält und behauptet, für die Sprache gäbe es keine Übersetzung.
Die Übersetzung finde ich nun in der zweiten Sprache wieder, die ich als "deutsch" benannt habe.
Die hält sich also nicht an die Sprach-ID.

Kein großes Problem, mag einer denken, aber in Contenido wurde darauf verzichtet, beispielhafte Sätze einzubauen, sondern sowas:
"MSG_RESULTS_FOUND"
Aha...
Dahinter verbirgt sich dieser Satz:
"Your search for '%s' returned %d hits:"

Das ist nicht mehr sichtbar, nur in der 2. Sprache die jetzt deutsch ist.
Manche Templates haben viele Sätze zu übersetzen und da kann es bei einer Seite mit vielen Modulen recht schwer werden, heraus zu finden, was denn nun in die Labels wie "MSG_RANGE" hineingeschrieben gehört und wo %s zu setzen wäre.

Was heißt das nun genau?
Contenido kann nur mit Deutsch als erste Sprache betrieben werden oder gibts da einen Trick?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Superbug in Sprache, wenn man diese umbenennt?

Beitrag von Faar » Fr 11. Dez 2020, 11:15

Ich habe die Sprachen wieder umbenannt, so wie es von der Installation her war und alles ist wieder an Ort und Stelle.
Ich frage mich gerade, was die zusätzlichen Einstellungen von Sprache und Land genau bewirken.
Wenn ich da Englisch und Deutschland stehen habe, was genau macht das?
Einen en_DE Eintrag?
Wenn die Sprache Englisch ist, aber das Land Deutschland, stimmt das dann so?
Wenn ich Englisch habe aber das Land ist nicht USA?
Und wie geht die Übersetzung damit um?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Superbug in Sprache, wenn man diese umbenennt?

Beitrag von xmurrix » Fr 11. Dez 2020, 13:52

Die Modulübersetzungen werden, so wie die Gettext-Übersetzungen im Backend und in Plugins, mit der Locale gespeichert, also de_DE, en_US, usw.

Wenn du nun die Sprache änderst, kann dir CONTENIDO die Texte nicht automatisch übersetzen. Falls nicht vorhanden, wird die Übersetzungsdatei im Modulverzeichnis generiert, das müsste bei der erstmaligen Verwendung des Moduls im Frontend geschehen, und du kannst die Übersetzungsdatei pflegen.

Zu "MSG_RESULTS_FOUND":
Das ist der Schlüssel der Übersetzung. Es steht nirgends geschrieben, dass der Schlüssel der Text sein muss. In diesem Fall ist es ein technischer Schlüssel. Wenn dir der Schlüssel „MSG_RESULTS_FOUND“ nicht gefällt, kannst du es auch ändern.

Natürlich kann man CONTENIDO auch mit einer anderen Sprache als Deutsch als erste Sprache betreiben. CONTENIDO wird nur mit in Deutsch (locale = de_DE) und in Englisch (locale = en_US) gepflegten Sprachdateien entwickelt, es ist aber möglich, dass nicht alle Übersetzungen in Englisch (locale = en_US) vorhanden sind. Bei einer Verwendung einer anderen Locale, muss du selber dafür sorgen, dass alle Modulübersetzungen auch dafür vorhanden sind, eventuell auch die gettext Übersetzungen im Backend und in Plugins.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Superbug in Sprache, wenn man diese umbenennt?

Beitrag von xmurrix » Fr 11. Dez 2020, 14:11

...Wenn ich da Englisch und Deutschland stehen habe, was genau macht das?
Einen en_DE Eintrag?...
Ja, die Locale wird dann en_DE.
...Wenn die Sprache Englisch ist, aber das Land Deutschland, stimmt das dann so?...
Ich kenne mich zwar mit den Spezifikationen nicht genug aus, aber vermutlich stimmt das so. Wenn man das so konfiguriert, kommt es auch so raus.
...Wenn ich Englisch habe aber das Land ist nicht USA?...
Bei United Kingdom ("en_GB") z. B. kann man alle Modul-Übersetzungsdateien (lang_en_US.txt) jeweils in lang_en_GB.txt, kopieren, und bei Bedarf die Backend-Übersetzung unter data/locale/en_US in data/locale/en_GB kopieren, auch die Plugin-Übersetzungen.
...Und wie geht die Übersetzung damit um?...
Vermutlich gibt es einen Fehler oder Hinweise, dass die Übersetzungen fehlen.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Superbug in Sprache, wenn man diese umbenennt?

Beitrag von Faar » Fr 11. Dez 2020, 14:36

Hallo Murat,
danke, diese Erklärung fehlte mir.
xmurrix hat geschrieben:
Fr 11. Dez 2020, 13:52
Die Modulübersetzungen werden, so wie die Gettext-Übersetzungen im Backend und in Plugins, mit der Locale gespeichert, also de_DE, en_EN, usw.
Ich hatte also tatsächlich sowas wie en_DE erzeugt und dafür war dann natürlicherweise nichts da.
Ich hab es wieder zurück auf de_DE aber so wie ich dich verstanden habe, könnte ich tatsächlich aus "deutsch" ein "english" machen ohne dass sich da was ändert? Im Grunde genommen geht es darum, dass Google die Seite immer als englischsprachig erkennt und bei den Redakteuren keine Fragezeichen entstehen, wenn sie sich in der Sprache Deutsch befinden aber in Englisch schreiben.
Wenn du nun die Sprache änderst, kann dir CONTENIDO die Texte nicht automatisch übersetzen. Falls nicht vorhanden, wird die Übersetzungsdatei im Modulverzeichnis generiert, das müsste bei der erstmaligen Verwendung des Moduls im Frontend geschehen, und du kannst die Übersetzungsdatei pflegen.
Ja, das hat es getan, eine Datei Namens lang_en_DE ist nun vorhanden.
Das heißt, wenn ich die Sprache anders benenne und auch die beiden anderen Einstellungen, dann muss ich lediglich die Datei nachher umbennen, damit ich wieder die Übersetzung sehe.
Aber das könnte ein Rattenschwanz an Arbeit auslösen.
Und nur die Sprache "englisch" zu nennen, aber es de_DE zu lassen, würde irgendwann doch zu Verwirrung führen.
Hätte ich also irgendwie von Anfang an als erste Sprache (mit ID=1) "English" nehmen sollen... aber wie? Die ist doch automatisch die ID=2, oder?
Zu "MSG_RESULTS_FOUND":
Das ist der Schlüssel der Übersetzung. Es steht nirgends geschrieben, dass der Schlüssel der Text sein muss. In diesem Fall ist es ein technischer Schlüssel. Wenn dir der Schlüssel „MSG_RESULTS_FOUND“ nicht gefällt, kannst du es auch ändern.
Der Schlüssel ist gar nicht so gut wie manche denken mögen, weil er kein Beispiel ist.
Ohne das Textbeispiel in Deutsch wüsste ich nicht, dass irgendwo %s dazwischen kommen.
Und ohne template weiß man oft nicht, was genau mit dem Schlüssel eigentlich zusammen hängt.
Ein Beispiel-Satz sagt mehr als ein Schlüssel.
Ich könnte keinen Übersetzer an die Übersetzung lassen, der nicht den deutschen Beispielsatz hätte.
Natürlich kann man CONTENIDO auch mit einer anderen Sprache als Deutsch als erste Sprache betreiben.
Und wie genau?
Wird nicht immer Deutsch als erste Sprache in die DB eingetragen?
In meinem Fall sollte Englisch die erste Sprache sein und auch mit der ID=1.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Superbug in Sprache, wenn man diese umbenennt?

Beitrag von Faar » Fr 11. Dez 2020, 14:41

xmurrix hat geschrieben:
Fr 11. Dez 2020, 14:11
Bei United Kingdom ("en_GB") z. B. kann man alle Modul-Übersetzungsdateien (lang_en_US.txt) jeweils in lang_en_GB.txt, kopieren, und bei Bedarf die Backend-Übersetzung unter data/locale/en_US in data/locale/en_GB kopieren, auch die Plugin-Übersetzungen.
Vermutlich gibt es einen Fehler oder Hinweise, dass die Übersetzungen fehlen.
Das habe ich inzwischen im Modul unter lang gefunden, aber es würde im Arbeit ausarten.
Mit schnell mal Sprache umbenennen ist es also nicht getan.
Und ja, die Übersetzung fehlte.

Ich habe im Dokument <html lang=en> stehen, das muss vorerst reichen für Google und die Redakteure müssen erstmal damit klar kommen, dass sie in "deutsch" auf Englisch schreiben.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten