Contao 4 Crashkurs
Ergebnis 1 bis 7 von 7

Thema: package-metadata lokal mit lint/aspell prüfen (Rechtschreibung)

  1. #1
    Contao-Urgestein Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    9.927
    User beschenken
    Wunschliste

    Standard package-metadata lokal mit lint/aspell prüfen (Rechtschreibung)

    Die im Repository contao/package-metadata abgelegten Beschreibungen der einzelnen Bundles werden ja seit neustem automatisch, bei einem Pullrequest, auf korrekte Rechtschreibung überprüft.
    Dazu wird über eine PHP App "lint" ein Kommandozeilen Tool "aspell" aufgerufen. Dieses kann man wiederum mit Wörterbüchern füttern.

    Zusätzlich wird ein Wörterbuch (Whitelist) je Sprache (ab 9.1.2019) im Repository contao/package-metadata/linter/whitelists/ mitgeliefert.
    Für Eigennamen, die in jeder Sprache identisch sind, gibt es die default.txt im selben Verzeichnis. (ab 9.1.2019)

    Wie man das ganze normalerweise nutzt ist ja hier beschrieben: https://github.com/contao/package-me...s/de/README.md

    Ich hatte nun die Idee, man könnte ja die Rechtschreibung vorab lokal prüfen lassen. Dann könnte man notfalls gleich die angepasste Whitelist mitliefern und muss nicht erst auf Travis warten nach anlegen eines Pullrequestes, ob alles funktioniert oder was fehlt.

    Hier mal grob unter Linux meine Schritte dazu (Linux Mint in meinem Fall), mit einigen Erläuterungen. Ich denke jeder Entwickler wird das nachvollziehen können.

    Nach Fork des originalen contao/package-metadata Repository in den eigenen GitHub Account erfolgt ein
    Code:
    git clone git@github.com:dein-github-vendor-name/package-metadata.git
    Jetzt folgen einige notwendige zusätzliche Installationen:
    Code:
    cd package-metadata/linter
    composer install
    (die composer.lock bzw. json geht von einem vorhandenem PHP 7.2 aus)

    Jetzt aspell installieren, falls nötig und mal schauen welche Wörterbücher installiert sind:
    Code:
    sudo apt-get install aspell 
    aspell dicts
    Bei mir war aspell bereits installiert mit deutschen und englischen Wörterbüchern.
    Da einer der Entwickler bereits eine Übersetzung für eine weitere Sprache in den Metadaten mitbrachte, musste ich noch mindestens eine nachinstallieren, ich habe gleich einige mehr installiert.
    (sonst kommt die Meldung weiter unten bei Aufruf von php lint: The language "cs" is not supported. Make sure the aspell package is loaded.

    In dem Aufruf Beispiel ist deutsch noch mit dabei, falls es fehlen sollte:
    Code:
    sudo apt install aspell-de aspell-br aspell-cs aspell-es aspell-fa aspell-fr aspell-lv aspell-nl aspell-pl aspell-ru
    Hier kommen eventuell einige Warnings, die ignorieren wir mal ganz cool. (Warnung: »The word "Nr." is invalid. ....)


    Immer noch im Verzeichnis package-metadata/linter rufen wir nun auf:
    Code:
    php lint
    Es sollte nun diese Ausgabe kommen:
    Code:
    Contao Package metadata linter
    ==============================
    
                                                                                                                            
     [OK] All checks successful!
    Jetzt können wir anfangen eigene Beschreibungen hinzuzufügen oder anzupassen.
    Ist man damit fertig ruft man das ganze wieder auf, dabei kam beispielsweise bei mir folgendes:
    Code:
    Contao Package metadata linter
    ==============================
                                                                                                                            
     [ERROR] [Package: bugbuster/contao-botdetection-bundle; Language: de]: Property "title" does not pass the spell        
             checker. Either update the whitelist or fix the spelling :) Errors: Detection                                  
                                                                                                                            
     [ERROR] [Package: bugbuster/contao-botdetection-bundle; Language: de]: The YAML file contains invalid data.
    Das bedeutet also, in meiner deutschen Beschreibung ist das Wort "Detection" im Titel, welches das (deutsche) Wörterbuch von aspell sowie die Whitelist von package-metadata nicht kennt.
    Also editiert man nun die Datei "package-metadata/linter/whitelist.txt" und fügt das fehlende Wort ein, ich habe es gleich passend alphabetisch einsortiert.
    Update 9.1.2019: Da dieses Wort nicht übersetzt wird (Eigenname "Bot Detection"), editiert man hier nun die Datei package-metadata/linter/whitelists/default.txt und fügt das fehlende Wort ein. Wäre es ein deutsches Wort, käme die Änderung in die Datei package-metadata/linter/whitelists/de.txt

    Hinweis: Der Umbau ist derzeit noch sehr "grob" was die Whitelists betrifft, daher sind in den sprachabhängigen Listen noch Wörter andere Sprachen enthalten. Vielleicht räumt das ja mal jemand auf

    Das macht man so lange, bis keine Fehlermeldungen mehr wegen fehlender Wörter auftauchen.
    Aufpassen! Es könnte sich auch um ein Schreibfehler handeln den man gemacht hat, also vorher sicher sein

    Ist man fertig, dann alles mit "git commit ..." sichern, mit "git push ..." zu GitHub schieben und dort dann ein Pullrequest erstellen wie beschrieben in der originalen Anleitung.

    Happy Matadata Editing
    Geändert von BugBuster (10.01.2019 um 00:37 Uhr) Grund: Anpassungen wegen "Localized whitelists" ab 9.1.2019
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.044

    Standard

    Danke für die Anleitung!

    Was ich mich gerade frage, ist, ob es sinnvoll ist, englische Begriffe, die inline in deutschsprachigen Texten verwendet werden als Ausnahmen in eine Whitelist aufzunehmen. Bsp.: Bei "Whitelist" aus dem vorherigen Satz würde ich sagen ist OK, bei "Title" aus der Beschreibung eines Pakets "Title-Tags" würde ich es unschön finden, denn damit könnte man keine Buchstabendreher in einem "Titel" mehr finden.

    Wäre es also möglich, die Texte, die fremdsprachliche Bestandteile beinhalten in etwas so auszuzeichnen?

    Code:
    Mit dem Bundle <span lang="en">Bot Detection</span> können Sie ...

    • Kann aspell mit so einer Info etwas anfangen? (Dazu habe ich bisher noch nichts gefunden)
    • Wäre so ein <span lang="en">Markup</span> für den Contao-Manager tauglich?
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.609
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Die Whitelist sollte individuell per Sprache gepflegt werden. Ggf. Noch eine andere allgemeine für Eigennamen. Dies habe ich bereits hier https://github.com/contao/package-me...841051angeregt. Bei Gelegenheit folgt der PR.

    Das Auslesen von Sprachauszeichnung im HTML würde es noch komplizierter machen, da man wohl erst das HTML Parsen müsste.
    Geändert von webstar (05.01.2019 um 09:22 Uhr)

  4. #4
    Contao-Urgestein Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    9.927
    User beschenken
    Wunschliste

    Standard

    Beim trennen der Whitelist nach Sprache sollte "lint/aspell" aber trotzdem alle zur Überprüfung heranziehen. Sonst könnte man keine englischen Namen z.B. im Titel einer deutschen Beschreibung nutzen.
    Es gibt halt Dinge die keinen Sinn machen diese zu übersetzten.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  5. #5
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    570

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    [...]
    Bei Gelegenheit folgt der PR.
    [...]
    Bei Gelegenheit heisst bei Dir also ne knappe Stunde später???

    Oder lese ich den PR falsch?

  6. #6
    Contao-Urgestein Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    9.927
    User beschenken
    Wunschliste

    Standard

    Wegen den Anpassungen für die "Localized whitelists" ab 9.1.2019 habe ich die Anleitung oben leicht angepasst.
    Betrifft den Pfad wo die nun liegen, die Namen und den Hinweis zur default.txt.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  7. #7
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.609
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von PaddySD Beitrag anzeigen
    Bei Gelegenheit heisst bei Dir also ne knappe Stunde später???

    Oder lese ich den PR falsch?
    Normalerweise nicht. Im konkreten Fall hatte sich dies ergeben und ich die Idee halt in 20 Minuten als PR niedergeschrieben.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •