Skip to content

Sprachen und Erweiterung

Deutsch (de), Englisch (en) und Japanisch (ja) sind aktiviert. Japanisch verwendet den technischen Locale-Code ja; JP bezeichnet das Land Japan. Die Oberfläche, Sicherheitsmeldungen, Inhaltsfelder und die Dokumentübersetzung unterstützen diese drei Sprachen.

Zentrale Konfiguration

config/packages/locales.php ist die einzige Liste aktivierter Sprachen. Sie enthält je Sprache:

Einstellung Verwendung
label, short Native Bezeichnung und kompakte Anzeige im Sprachmenü
intl Zahlen-, Währungs- und Datumsformat über PHP Intl
direction Schreibrichtung des HTML-Dokuments (ltr oder rtl)
ocr Tesseract-Sprachmodelle für eingescannte PDFs
pdf_font, docx_font Schrift für Dokumentexporte

Aus dieser Liste entstehen die erlaubten URL-Sprachen, Symfony-Locale-Konfiguration, Zugriffsschutz, Sprachmenüs, mehrsprachigen Eingabefelder, KI-Übersetzungsziele, Glossarsprachen, Sitemap und CSV-Spalten. Es ist keine Datenbankmigration pro zusätzlicher Sprache nötig: mehrsprachige Inhalte sind JSON-Felder; Dokumente und Übersetzungen speichern Locale-Codes.

Beispiel: Französisch hinzufügen

In das Array $languages eine weitere Zeile einfügen:

'fr' => [
    'label' => 'Français', 'short' => 'FR', 'intl' => 'fr_FR',
    'direction' => 'ltr', 'ocr' => 'fra+eng',
    'pdf_font' => 'dejavusans', 'docx_font' => 'Calibri',
],

Danach:

  1. translations/messages.fr.yaml und translations/security.fr.yaml ergänzen und fachlich übersetzen. Die vorhandenen Kataloge zeigen die erforderlichen Schlüssel. Bis dahin greifen die konfigurierten englischen Fallbacktexte.
  2. Für französische Scans das Tesseract-Modell fra im Docker-Image installieren (tesseract-ocr-fra). Bei anderen Schriftsystemen eine passende PDF-Schrift und Systemschrift wählen. Für rechtsläufige Schriften Layout und Schrift zusätzlich am Zielgerät prüfen.
  3. Cache neu aufbauen und lang laufende Worker neu starten:

sh docker compose exec app php bin/console cache:clear --env=prod docker compose restart worker scheduler

Bei Änderung der installierten OCR-Modelle vorher das Image neu bauen.

  1. /fr/catalog öffnen, Maschineninhalte in Französisch ergänzen und Formulare, Dokumente und Exporte prüfen. In Profilen ist die neue Sprache ebenfalls auswählbar.

Weitere Codes wie pt_BR sind möglich. URLs nutzen den konfigurierten Code; HTML-lang und hreflang verwenden Bindestriche (pt-BR). Der Zugriffsschutz wird aus denselben Codes wie das Routing erzeugt und gilt damit auch für neue Sprachen.

Fallbacks und Inhalte

Die Konfiguration enthält Standardlocale de und Fallback en. Für Maschinen- und Firmentexte wird zuerst die angeforderte Sprache, dann der Fallback, die Standardsprache und schließlich eine andere aktivierte Sprache verwendet. Fehlende Produkttexte werden beim Anzeigen nicht automatisch an einen KI-Dienst geschickt.

KI-Entwürfe für Produkttexte und Dokumente entstehen erst durch die entsprechenden Aktionen und benötigen einen konfigurierten Provider sowie Einwilligung und Kontingent. Technische Dokumentübersetzungen behalten Prüfung und Freigabe; ein Sprachwechsel erteilt keine Dokumentberechtigung.

Beim Deaktivieren einer Sprache bleiben bereits gespeicherte Maschinenübersetzungen erhalten. Sie werden nicht mehr im Sprachmenü angeboten. Bestehende Dokumentübersetzungen bleiben Datensätze; vor dem Entfernen ihrer Schrift-/OCR-Konfiguration sollten deren weitere Verarbeitung und Export geplant werden.

CSV-Vorlage, Vorschau und Export erhalten automatisch name_fr, description_fr usw. Die vorhandenen drei Sprachspalten bleiben kompatibel. Neu aktivierte Sprachen erzeugen keine erfundenen Übersetzungen in Bestandsdaten.

Nachgewiesene Erweiterbarkeit

tests/AdditionalLanguageTest.php aktiviert Französisch ausschließlich in einem isolierten Testkernel. Geprüft werden Routen, Sprachmenü, englischer Textfallback, Anmeldung und Rollen, private Dokumente, Sitemap, Maschinenfelder, Speicherung, Suche und Import-/Exportspalten. Französisch ist im ausgelieferten Portal erst nach der beschriebenen Konfigurationsänderung aktiviert.