- Issue created by @marc.bau
- 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
Das Ist leider kein Fehler der Übersetzung sondern ein Fehler im Design von Drupal. Wir suchen den Fehler schon seit Jahren und können ihn zumindest hier auf dem Server lässt sich das weder finden noch fixen.
Würden wir das hier auf dem Server finden, wäre der Fehler bereits behoben und wüssten auch wer den „Mist" freigeschalten hat. Ich bin aber sehr sicher, dass die fehlende Großschreibung über eine Eigenschaft im Css erzwungen wird, weil sich die entsprechenden Strings hier nicht zu finden sind.
- 🇩🇪Germany marc.bau
Die Links sind oben...
Ich finde nur den Letzten nicht... bin jetzt bis hier gekommen... finde aber nicht warum das Wort "ansicht" klein ist.
$type_name = mb_strtolower($this->mapperManager()->createInstance($this->pluginDefinition['config_translation_plugin_id'])->getTypeLabel()); return $this->t('Translate @type_name', ['@type_name' => $type_name]);
- 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
Das ist seltsam. Man könnte jetzt mal z. B. Spanish installieren und nachsehen ob es da auch klein ist. Sonst müssen wir das debugen
- 🇩🇪Germany marc.bau
Magst Du die Übersetzungen in #2 freischalten? :-)
Dann sind zumindest die ersten Zwei schon mal gefixt... der Dritte geht nur mit Debugging.
- 🇩🇪Germany marc.bau
Übrigens denke ich, dass solche Übersetzungs-Fehler noch öfter vorhanden sind:
FALSCH:
<span class="visually-hidden">@type</span> hinzufügen
RICHTIG:
Hinzufügen <span class="visually-hidden">von @type</span>
Vieleicht sollte man mal nach
<span class="visually-hidden">
am Anfang von Strings suchen. Ganz so einfach kann man sich das dann mit der Übersetzung wohl nicht machen. - 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
Hab ich gemacht sollte in 30 - 45 Minuten
live sein. Was ist denn die 3.?https://localize.drupal.org/translate/languages/de/translate?sid=1736588
https://localize.drupal.org/translate/languages/de/translate?sid=1736598 - 🇩🇪Germany marc.bau
Hab mal die hidden spans geprüft und zwei Fehler gefunden:
- 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
Im Grunde muss es einer dieser Beiden Strings sein.
Ich gehe schwer davon aus, dass die entsprechende PO-Datei seit Jahren nicht mehr gerendert wurde, weswegen ich beide Strings durch ein Suffix ergänzt habe. Sollte das funktionieren und sich die Zeichenfolge ändern, können wir das Suffix wieder entfernen und der Bug ist endlich raus. Ich glaub noch nicht dran, aber einen Versuch ist es wert.
https://localize.drupal.org/translate/languages/de/translate?sid=1908103
https://localize.drupal.org/translate/languages/de/translate?sid=1205799 - 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
Also ich hab jetzt mal in den Code gesehen.
Die Zeichenfolge, die hier verwendet wird ist https://localize.drupal.org/translate/languages/de/translate?sid=2066288
Jetzt muss ich bloß noch rausbekommen, wo die Type-Names sind und warum zum Geier der Type-Name für Ansicht klein geschrieben wurde. Ich drehe erst mal die fälschlicherweise verdächtigten Zeichenfolgen wieder zurück - 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
Ha,
da kann ich lang in der UI suchen. In /home/joachim/cms/web/core/modules/config_translation/src/Plugin/Menu/LocalTask/ConfigTranslationLocalTask.php steht von Zeile 25 - 33 folgender Code:
public function getTitle(?Request $request = NULL) { // Take custom 'config_translation_plugin_id' plugin definition key to // retrieve title. We need to retrieve a runtime title (as opposed to // storing the title on the plugin definition for the link) because // it contains translated parts that we need in the runtime language. $type_name = mb_strtolower($this->mapperManager()->createInstance($this->pluginDefinition['config_translation_plugin_id'])->getTypeLabel()); return $this->t('Translate @type_name', ['@type_name' => $type_name]); }
Die Zeile 31 Im speziellen enthält die Funktion mb_strtolower Und die sorgt dafür dass dass wort Ansicht kleingeschrieben wird.
Funktion und Zweck von mb_strtolower
mb_strtolower ist eine PHP-Funktion, die alle Buchstaben einer Zeichenkette in Kleinbuchstaben umwandelt – und zwar unter Berücksichtigung von Multibyte-Zeichencodierungen wie UTF-8. Das ist besonders wichtig für Sprachen und Zeichen, die außerhalb des klassischen ASCII-Bereichs liegen, etwa Umlaute (ä, ö, ü), kyrillische oder griechische Buchstaben.Unterschiede zu strtolower
Die Standardfunktion strtolower() funktioniert nur zuverlässig mit einfachen ASCII-Zeichen. Sie wandelt beispielsweise das deutsche "Ä" nicht korrekt in "ä" um, wenn der String in UTF-8 kodiert ist. Hier versagt strtolower() und gibt das Zeichen entweder unverändert zurück oder es entstehen fehlerhafte Zeichen.mb_strtolower() hingegen erkennt die Zeichenkodierung (z.B. UTF-8) und kann so auch mehrbyte-Zeichen korrekt umwandeln. Das macht die Funktion unverzichtbar für internationale Anwendungen und alle Strings, die nicht nur aus einfachen lateinischen Buchstaben bestehen.
Syntax
php
mb_strtolower(string $string, ?string $encoding = null): string
$string: Die umzuwandelnde Zeichenkette.$encoding (optional): Die Zeichencodierung, z.B. "UTF-8". Wird kein Wert angegeben, wird die interne Standardcodierung verwendet.
Beispiel
php
$str = 'ÄäÖöÜü';
echo mb_strtolower($str, 'UTF-8'); // Gibt aus: ääööüü
Im Gegensatz dazu würde strtolower($str) das Ergebnis "ÄäÖöÜü" liefern, also keine Umwandlung der Umlaute.Typische Anwendungsfälle
Verarbeitung von Benutzereingaben (z.B. E-Mail-Adressen, Suchbegriffe)Einheitliche Speicherung von Daten in der Datenbank
Internationalisierte Anwendungen, bei denen verschiedene Zeichensätze vorkommen
Hinweise
Die Funktion ist nur verfügbar, wenn die PHP-Erweiterung mbstring installiert ist.Die Umwandlung ist unabhängig von den lokalen Einstellungen (Locale) und funktioniert für alle Zeichen, die laut Unicode einen Kleinbuchstaben besitzen.
Performance
Multibyte-Funktionen wie mb_strtolower() sind langsamer als die Standardfunktionen, da sie komplexere Zeichencodierungen unterstützen. Wo ausschließlich ASCII-Zeichen verarbeitet werden, kann weiterhin strtolower() verwendet werden.Zusammenfassung
mb_strtolower wandelt eine Zeichenkette unter Berücksichtigung von Multibyte-Zeichencodierungen wie UTF-8 in Kleinbuchstaben um. Sie ist essenziell für die korrekte Verarbeitung internationaler Zeichen und sollte immer dann eingesetzt werden, wenn Zeichen außerhalb des ASCII-Bereichs vorkommenDas bedeutet, dass wir hier von unserer Seite aus nichts machen können. Es sei denn wir ürofen dass und finden heraus, dass die Funton an der Stelle nicht gebruacht wird.
- 🇩🇪Germany c-logemann Frankfurt/M, Germany
Das ist ein Rätsel, das sich mir zumindest nicht ad hoc erschließt. Eine weitere "Überarbeitung" nach Anwendung von t() habe ich auch nicht gesehen. Ich denke, da hat jemand versucht zwei Sachen miteinander zu verknüpfen als schnelle Lösung um z.B. den Title auch in einen Kontext zu verwenden, bei dem Großbuchstaben Problem verursachen und das wurde dann vllt. vergessen/übersehen, weil es nur bei Sprachen wie Deutsch auffällt. Das könnte aber auch bedeuten, daß es nicht damit getan ist, das "mb_strtolower" einfach zu entfernen. Aber ich denke, das ist eine Core-Issue wert, falls es dies noch nicht dazu gibt.