Dieses zentrale Repository stellt Metainformationen für die Pakete innerhalb des Contao Managers bereit.
Es erlaubt das Übersetzen und Anreichern von Paketinformationen jedes beliebigen Composer Pakets. Daher können
auch Pakete, die nicht vom Typ contao-bundle
sind (wie bspw. eine allgemeine PHP Excel Exportbibliothek), übersetzt
werden.
Die Metadaten werden im YAML-Format gespeichert und es kann ein Logo im SVG-Format angegeben werden. Es wird empfohlen, das Logo beispielsweise mittels SVGO bzw. dem GUI-Tool SVGOMG entsprechend zu optimieren.
meta/[vendor]/[paket-name]
- de.yml
- en.yml
- ru.yml
- ...
- logo.svg (optional)
- composer.json (nur für private Pakete und optional. [Details](#öffentliche-vs-privateproprietäre-pakete))
Hinweis: Das logo.svg
kann auch direkt innerhalb von [vendor]
liegen, es wird dann als Fallback für alle Pakete
dieses [vendor]
verwendet, sofern kein Logo für das explizite Paket angegeben wurde.
de:
title: Titel des Bundles oder des Moduls
description: >
Lange Beschreibung des Bundles oder des Moduls mit Zeilenumbrüchen.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum.
keywords:
- keyword1
- lorem ipsum
- keyword2
...
support:
issues: https://github.com/demo/demo/issues
docs: https://example.org/demo/de/docs
suggest:
vendor/package: Dieses Package ermöglicht XLSX-Export
Bitte verwendet 4 Leerzeichen zum Einrücken oder Verschachteln und sprecht den Nutzer mit "du" an. Für weitere Informationen zum Dateiformat, sieh dir die Transifex Dokumentation an.
In der YAML-Datei können die folgenden Keywörter definiert werden:
title | Der Titel der Extension |
description | Lange Beschreibung der Extension, die in der Detailansicht erscheint |
keywords | Liste von Keywörtern für die Suche |
dependency | Bei true wird die Extension nicht über die Suche gefunden. Dies ist der Fall für Extensions, die nicht für Anwendende gedacht sind (Standard: false ) |
support | Übersetzung bzw. Angabe von sprach-spezifischen Support-Links der composer.json . Key-Value-Syntax: Unterstützte Keys |
suggest | Übersetzung der Texte für empfohlene Pakete (suggest -Abschnitt) |
homepage | Homepage-Link für private Pakete, welche diese Information nicht per composer.json zur Verfügung stellen. |
Das Metadaten-Repository füttert den Suchindex des Contao Managers und erlaubt die Suche sowohl nach öffentlichen als auch nach privaten bzw. proprietären Paketen. Entsprechend kannst du für beide Pakettypen Beschreibungen einreichen. Die Definition eines öffentlichen Pakets ist dessen Verfügbarkeit via packagist.org. Für private Pakete bietet der Contao Manager aktuell noch keinen automatisierten Installationsprozess. Deshalb ist eine "homepage" Pflichtangabe und soll Angaben zur Installation und ggf. zum Erwerb eines Lizenzschlüssels etc. enthalten.
Der Contao Manager zeigt für jedes Paket hilfreiche Informationen an, darunter eine Auflistung von Abhängigkeiten des
Pakets. Diese Informationen werden über die composer.json
bereitgestellt und sind aufgrund dessen nur für öffentliche
Pakete verfügbar. Um diese Informationen für private Pakete bereitzustellen, kann den Metadaten eine composer.json
ergänzt
werden.
Die Metadaten werden automatisch auf korrekte Rechtschreibung überprüft. Wenn die Überprüfung fehlschlägt, du dir aber sicher bist,
dass das Wort korrekt ist, musst du womöglich die Allow-Lists aktualisieren. Diese werden im Ordner linter/allowlists
nach Sprache
gepflegt. Eigennamen und andere Begriffe, die in jeder Sprache identisch sind, werden in default.txt
gepflegt.
Siehe https://github.com/contao/contao-manager/blob/1.3/src/i18n/locales.js
- Klone das Repo
- Wähle ein vorhandenes Paket oder erstelle einen neuen Ordner für ein nicht existierendes Paket wie "meta/vendor/package"
- Erstelle einen Pull Request
- Dein Pull Request wird automatisch überprüft.
- Sobald alle Checks grün sind, kann ein Mitglied des Review-Teams deinen Pull Request freigeben.
Da die Prüfungen nicht immer direkt automatisch ablaufen und um insgesamt Zeit zu sparen, solltest du den Linter lokal ausführen. Das folgende sollte auf einem Debian-basierten System funktionieren, muss aber adaptiert werden:
sudo apt install aspell aspell-cs aspell-de aspell-en aspell-es
composer install --working-dir=linter
php linter/lint meta/yourvendor/yourpackage/*.yml
Wenn du Inhaber eines Namespaces bist, also zuständig für einen Ordner der Package-Metadata, kannst du deinen GitHub Benutzer in der Datei CODEOWNERS entsprechend eintragen. Du wirst dann automatisch über alle Änderungen an diesem Ordner informiert und kannst diese freigeben oder ablehnen.