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
-
Internationalisierung (i18n) - Wikipedia
-
Content negotiation - Wikipedia
Bibliotheken
-
Flask-Babel - Vorlagenübersetzung
-
Babel - Internationalisierungsbibliothek
Verwandte Artikel
-
Übersetzungssystem - Drei-Technologien-Hybridansatz
-
KI-Inhaltsgenerierung - DeepSeek-Übersetzungen
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.