Zum Inhalt

Installation

Per Composer

composer require netthinks/nt-lingua

Extension aktivieren:

vendor/bin/typo3 extension:setup
vendor/bin/typo3 cache:flush

Schema-Änderungen prüfen: Admin Tools → Maintenance → Analyze Database Structure.

Nach der Installation

1. TypoScript einbinden

Im Sitepackage-Setup:

@import 'EXT:nt_lingua/Configuration/TypoScript/setup.typoscript'

2. Sprachen konfigurieren

packages/nt-lingua/Configuration/Languages.php anpassen:

return [
    'en' => ['name' => 'English', 'rtl' => false, 'mode' => 'native',
             'sysLanguageUid' => 1, 'url' => '/en/'],
    'tr' => ['name' => 'Türkçe', 'rtl' => false, 'mode' => 'dom'],
    'ar' => ['name' => 'العربية', 'rtl' => true,  'mode' => 'dom'],
];
Schlüssel Pflicht Beschreibung
name Ja Anzeigename im Sprachwähler.
rtl Ja true für Rechts-nach-links-Schriften (Arabisch, Hebräisch, Persisch). Setzt dir="rtl" und spiegelt das Layout.
mode Ja native — echte TYPO3-Site-Sprache (server-gerendert, SEO-indexiert, eigene URL). dom — client-seitige Ersetzung (sofort, kein Seitenneulade, nicht indexiert).
sysLanguageUid nur native UID der TYPO3-Site-Sprache. Nachschlagen unter Sites → Site → Sprachen.
url nur native URL-Präfix aus der TYPO3-Site-Konfiguration (z. B. /en/). Muss mit dem base-Feld der Site-Sprache übereinstimmen.

3. Sprachwähler einbinden

Option A — Sitepackage-Integration (Navbar):

<f:render partial="Navigation/Language" section="Navbar" arguments="{_all}"/>

Der LinguaProcessor stellt linguaNativeLanguages und linguaDomLanguages bereit.

Option B — Schwebender Widget (Standalone-Betrieb):

Die Extension rendert automatisch einen fixen Globus-Button (rechts unten, z-index 9990). Sitepackages, die den Sprachwähler selbst in die Navbar integrieren, deaktivieren das Widget:

page.99 >

4. Content-Felder mit Fluid-Wrapper versehen

In den Fluid-Template-Overrides übersetzbare Felder mit data-ntlingua-*-Attributen umschließen:

<div data-ntlingua-uid="{data.uid}" data-ntlingua-field="bodytext">
    <f:format.html>{data.bodytext}</f:format.html>
</div>

5. Disclaimer-Banner einfügen

Nach </main> im Page-Layout:

<div class="nt-lingua-disclaimer" hidden aria-live="polite">
    <div class="container">
        <p class="nt-lingua-disclaimer__text">
            Automatically translated. No warranty for completeness or accuracy.
        </p>
    </div>
</div>