Spracherkennung: Dynamische mehrsprachige Unterstützung

Dieser Artikel erklärt, wie wir automatisch die bevorzugte Sprache des Nutzers erkennen und Inhalte in dieser Sprache bereitstellen.

Das Problem: Globale Nutzer bedienen

Nutzer kommen aus verschiedenen Ländern und sprechen verschiedene Sprachen:

  • Indien: Hindi, Bengali, Tamil, Telugu, Gujarati, Marathi, Kannada, Malayalam, Punjabi, Urdu

  • Europa: Deutsch, Französisch, Spanisch, Italienisch, Portugiesisch, Russisch

  • Asien: Japanisch, Koreanisch, Chinesisch

Wir müssen ihre Sprachpräferenz erkennen und automatisch übersetzte Inhalte bereitstellen.

Erkennungspriorität

Wir prüfen mehrere Quellen in dieser Reihenfolge:

1. URL-Parameter (?lang=de)

2. Sitzung (gespeichert nach der ersten Erkennung)

3. Cookie (translation_lang oder lang)

4. Browser Accept-Language-Header (zukünftig)

5. Standard (Englisch)

Warum diese Reihenfolge?

URL-Parameter zuerst: Ermöglicht expliziten Sprachwechsel

Sitzung zweitens: Bleibt während der Browsing-Sitzung erhalten

Cookie drittens: Bleibt über Sitzungen hinweg erhalten (30 Tage)

Standard zuletzt: Fallback für neue Nutzer

Implementierung

def get_locale():
    # 1. Check URL parameter
    lang_param = request.args.get("lang")
    if lang_param in valid_langs:
        return lang_param

    # 2. Check session
    if "translation_lang" in session:
        return session["translation_lang"]

    # 3. Check cookie
    # ... (implementation details omitted)

Sprachwechsel

Nutzer können die Sprache über die URL wechseln:

/p/Treo-N100-8-256?lang=de

Dies löst aus:

1. Sitzung setzen: session["translation_lang"] = "de"

2. Cookie setzen: translation_lang=de; Max-Age=2592000 (30 Tage)

3. Umleiten: lang-Parameter aus der URL entfernen

Vorteil: Saubere URLs nach der Sprachauswahl

Unterstützte Sprachen

Wir unterstützen 20 Sprachen:

Indische Sprachen (10):

  • Hindi (hi)

  • Bengali (bn)

  • Tamil (ta)

  • Telugu (te)

  • Gujarati (gu)

  • Marathi (mr)

  • Kannada (kn)

  • Malayalam (ml)

  • Punjabi (pa)

  • Urdu (ur)

Europäische Sprachen (7):

  • Deutsch (de)

  • Französisch (fr)

  • Spanisch (es)

  • Italienisch (it)

  • Portugiesisch (pt)

  • Russisch (ru)

Asiatische Sprachen (3):

  • Japanisch (ja)

  • Koreanisch (ko)

  • Chinesisch (zh)

Inhaltsübersetzung

Verschiedene Inhaltstypen verwenden verschiedene Übersetzungsmethoden:

Statische Vorlagen (Flask-Babel)

Navigation, Buttons, Beschriftungen werden über .po-Dateien übersetzt:

{{ _('Add to Cart') }}  → "In den Warenkorb" (Deutsch)

Dynamische Inhalte (TranslationManager)

Produktnamen, Features werden über Phrasentabellen übersetzt:

"Mini PC" → "Mini-PC" (Deutsch)

Lange Inhalte (DeepSeek AI)

Produktbeschreibungen, Artikel werden über KI übersetzt:

"Compact office computer..." → "Kompakter Bürocomputer..." (Deutsch)

Siehe: Übersetzungssystem für Details

Regionale Formatierung

Die Sprachauswahl beeinflusst auch die Formatierung:

Zahlenformat

Englisch: 1,234.56

Europäisch: 1.234,56 (umgekehrte Trennzeichen)

Indisch: 1,23,456 (Lakhs/Crores-Gruppierung)

Datumsformat

Englisch: Feb 18, 2026

Europäisch: 18.02.2026

Indisch: 18/02/2026

Währung

Englisch: ₹1,234

Europäisch: €1.234

International: $1,234

Sprachauswahl-Benutzeroberfläche

Nutzer können die Sprache über ein Dropdown-Menü wechseln:

Position: Obere Navigationsleiste

Anzeige: Flaggen-Symbol + Sprachname

Verhalten: Seite mit ?lang=<code> neu laden

SEO-Überlegungen

URL-Struktur

Wir verwenden eine einzelne URL für alle Sprachen (keine /de/, /fr/-Präfixe):

Vorteil: Einfachere Architektur, keine Probleme mit doppelten Inhalten

Nachteil: Geringerer SEO-Wert pro Sprache

Hreflang-Tags

Wir fügen alternative Sprachlinks hinzu:

<link rel="alternate" hreflang="en" href="https://www.thinvent.in/p/Treo-N100">
<link rel="alternate" hreflang="hi" href="https://www.thinvent.in/p/Treo-N100?lang=hi">
<link rel="alternate" hreflang="de" href="https://www.thinvent.in/p/Treo-N100?lang=de">

Vorteil: Google weiß, welche Sprachversion angezeigt werden soll

Fallback-Strategie

Wenn eine Übersetzung für die ausgewählte Sprache fehlt:

1. Englisch versuchen: Die meisten Inhalte haben eine englische Version

2. Original anzeigen: Besser als nichts

3. Zur Übersetzung einreihen: Zur Übersetzungswarteschlange für die Stapelverarbeitung hinzufügen

Leistung

Caching

Übersetzungen werden im Arbeitsspeicher zwischengespeichert:

Phrasentabellen: Einmal beim Start geladen

KI-Übersetzungen: In der Datenbank zwischengespeichert

Vorteil: Keine Übersetzungslast pro Anfrage

Lazy Loading

Übersetzungen werden nur bei Bedarf geladen:

Produktbeschreibungen: Bei Aufruf der Produktseite geladen

Inhalte der Abfrageseite: Bei Aufruf der Abfrageseite geladen

Vorteil: Schnellerer anfänglicher Seitenaufbau

Referenzen

Technische Konzepte

Bibliotheken

Verwandte Artikel

Zusammenfassung

Die Spracherkennung verwendet ein Prioritätensystem:

Erkennungsreihenfolge:

  • ✅ URL-Parameter (?lang=de)

  • ✅ Sitzung (während des Browsings)

  • ✅ Cookie (30 Tage)

  • ✅ Standard (Englisch)

Unterstützt:

  • ✅ 20 Sprachen (10 indische, 7 europäische, 3 asiatische)

  • ✅ Regionale Formatierung (Zahlen, Datum, Währung)

  • ✅ SEO hreflang-Tags

Übersetzungsmethoden:

  • ✅ Flask-Babel (statische Vorlagen)

  • ✅ TranslationManager (Produktnamen, Features)

  • ✅ DeepSeek AI (Beschreibungen, Artikel)

Leistung:

  • ✅ In-Memory-Caching

  • ✅ Lazy Loading

  • ✅ Datenbank-Caching für KI-Übersetzungen

Dies ermöglicht automatische Spracherkennung und ein nahtloses mehrsprachiges Erlebnis.


← Zurück zum Dokumentationsindex