Groß- und Kleinschreibungsfehler "ansicht übersetzen"

Created on 6 October 2024, 8 months ago

Problem/Motivation

Wer schaltet solch einen Mist wie "ansicht übersetzen" eigentlich frei? War Jahrelang richtig mit "Ansicht übersetzen". Egal wo man in Views reinschaut, überall ist der erste Buchstabe klein geschrieben.

  • "ansicht übersetzen"
  • "hinzufügen"
  • "umsortieren"

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

🐛 Bug report
Status

Active

Component

PO files

Created by

🇩🇪Germany marc.bau

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • 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 marc.bau

    Der dritte Bug ist "ansicht übersetzen"

  • 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺

    Ist zugelassen. Vielen Dank

  • 🇩🇪Germany joachim namyslo Kulmbach 🇩🇪 🇪🇺
  • 🇩🇪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 🇩🇪 🇪🇺
  • 🇩🇪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 vorkommen

    Das 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.

Production build 0.71.5 2024