Content-Lokalisierung – Manuell und automatisch mit Discourse AI

In diesem Thema führen wir Sie durch die Funktionen zur Inhaltslokalisierung und zeigen Ihnen, wie Sie diese aktivieren. Die Funktionen sind in zwei Teile unterteilt: Was standardmäßig in Discourse verfügbar ist, und Discourse AI für automatische Übersetzungen.

:warning: Für schnellen Zugriff auf die relevanten Abschnitte verwenden Sie die Wiki-Überschriften :backhand_index_pointing_right:t2:

Lokalisierung des Inhalts Ihrer Community

Eine aktualisierte Version von Discourse (3.5.0.beta7-dev) bietet Ihnen Zugriff auf mehrere Lokalisierungsfunktionen, die unter folgender Adresse konfigurierbar sind:

  • <your-site-url>/admin/site_settings/category/content_localization
Neue Inhaltslokalisierung in den Site-Einstellungen 📸

Informationen über Ihre Benutzer sammeln

Zunächst ist es ratsam, einige Informationen über Ihre Community zu sammeln. Die folgende Data Explorer-Abfrage gibt Ihnen einen Überblick darüber, wie viele Benutzer ihre Spracheinstellung unter /my/preferences/interface festgelegt haben.

SELECT locale, count(*) as count
FROM users
WHERE (locale IS NOT null AND locale <> '')
GROUP BY locale
ORDER BY count DESC
Beispielhafte Ergebnisse aus dem Data Explorer

Festlegen der von Ihrer Community unterstützten Sprachen

Mit den oben genannten Informationen sind wir nun besser darüber informiert, welche Sprachen Ihre Community unterstützen sollte.

Unter <your-site-url>/admin/site_settings/category/content_localization können Sie unterstützte Sprachen auswählen.

  • Content localization enabled – aktiviert die Funktion, die ursprünglich verfasste Benutzerinhalte durch lokalisierte Inhalte ersetzt. Lesen Sie weiter, um mehr über automatische und manuelle Lokalisierungsmodi zu erfahren.
  • Content localization supported locales – die Liste der Sprachen, die Ihre Site unterstützt
  • Content localization crawler param – wird im folgenden Abschnitt über Crawler behandelt
  • Content localization language switcher – wird im nächsten Abschnitt behandelt
Liste der Sprachen in den Site-Einstellungen 📸

Durch Aktivieren der nachfolgenden Einstellung Content localization language switcher können Sie Ihre Community auch für nicht angemeldete Benutzer zugänglicher machen, indem Sie die Liste der von Ihnen ausgewählten Sprachen in der Liste der unterstützten Sprachen anzeigen:

Sprachumschalter oben rechts auf der Seite

Lokalisierte Inhalte anzeigen


Lokalisierter Willkommensbeitrag auf meta.discourse.org

Für Betrachter lokalisierter Inhalte (alle Site-Besucher) können sie mit dem Mauszeiger über den Indikator neben dem Datum des Beitrags fahren, um die Originalsprache des Beitrags anzuzeigen. Dieser Indikator wird nur angezeigt, wenn der Beitrag nicht in ihrer Sprache verfasst ist.

Wenn ein Benutzer nur Originalinhalte sehen möchte, kann er den Schalter über der Zeitachse des Themas verwenden, um Lokalisierungen für die gesamte Site zu deaktivieren.

Automatische Übersetzungen mit Discourse AI :sparkles:

Discourse AI sind die essentiellen Vitamine für die Lokalisierungsfunktion und machen manuelle Übersetzungen überflüssig.

Als Administrator sollten Sie zu unserem neuen Bereich für KI-Funktionen für Übersetzungen gehen.

Discourse AI-Funktionen in den Admin-Einstellungen 📸

Nach unten scrollen in /admin/plugins/discourse-ai/ai-features

Hier einige wichtige Einstellungen und Empfehlungen:

  • AI translation backfill hourly rate – diese Einstellung ist standardmäßig auf 50 festgelegt. Bei einer Rate von 50 übersetzt Ihre Site 50 Beiträge, 50 Themen und 50 Kategorien pro Stunde in die unter Content localization supported locales festgelegten Sprachen. Halten Sie diesen Wert beim Start niedrig.
  • AI translation target categories – standardmäßig sind keine Kategorien ausgewählt. Nur Inhalte in den ausgewählten Kategorien werden übersetzt. Unterkategorien müssen separat hinzugefügt werden. Lassen Sie das Feld leer, um die Übersetzung von Themen in Kategorien zu deaktivieren.
  • AI translation personal messages – standardmäßig auf none gesetzt. Steuert, welche persönlichen Nachrichten übersetzt werden. ‘none’ deaktiviert die Übersetzung von PMs. ‘group’ übersetzt nur Gruppen-PMs. ‘all’ übersetzt alle PMs.
  • AI translation include bot content – standardmäßig auf false gesetzt. Wenn aktiviert, werden auch Beiträge von Bot-Benutzern (Benutzer-ID < 0) übersetzt. Standardmäßig ist Bot-Inhalt von der Übersetzung ausgeschlossen.
  • AI translation max post length – standardmäßig auf 10000 gesetzt. Dies ist eine Sicherheitsmaßnahme und verhindert, dass Beiträge über einer bestimmten Länge übersetzt werden.
  • AI translation backfill max age days – standardmäßig auf 5 gesetzt. Das bedeutet, dass Themen und Beiträge, die älter als 5 Tage sind, nicht übersetzt werden. Sie können diesen Wert auf eine große Zahl erhöhen, um alle Themen und Beiträge zu übersetzen.
  • AI translation post raw translator agent (und andere Agents) – In formelleren Communities können Administratoren ihren eigenen Agenten erstellen. Dies ermöglicht es Ihnen, einen Prompt zu festzulegen, der besser auf die gewünschte Sprache oder den Wortschatz abgestimmt ist.

Sie können unter AI bot - Agents nachlesen, wie Sie geeignete Agents konfigurieren und Prompts für jede Funktion feinabstimmen.

Übersetzungsfortschritt

Weitere Informationen zum Fortschritt der automatischen Übersetzungen finden Sie im Diagramm “Übersetzungsfortschritt” unter /admin/plugins/discourse-ai/ai-translations.

Dieses Diagramm wird angezeigt, wenn:

  • alle Übersetzungs-Agenten über ein gültiges LLM verfügen
  • discourse ai enabled :check_mark:
  • ai translation enabled :check_mark:
  • content localization supported locales ausgefüllt ist
  • ai translation backfill max age days größer als 0 ist
  • ai translation backfill hourly rate größer als 0 ist

Manuelle Lokalisierung

Da Lokalisierung eine Kernfunktion in Discourse ist, bieten wir Ihnen die Möglichkeit, Lokalisierungen manuell auszufüllen und zu bearbeiten, falls automatische Übersetzungen mit Discourse AI nicht verfügbar sind.

Standardmäßig sind Administratoren und Moderatoren so eingerichtet, dass sie Lokalisierungen bearbeiten können.

Zulässige Gruppen für Lokalisierung in den Site-Einstellungen 📸


Admin-Site-Einstellung für Inhaltslokalisierung

Derzeit unterstützen wir Lokalisierungen für Beitragsinhalte, Thementitel, Kategorienamen, Kategorienbeschreibungen und Tags. Die folgenden Abschnitte zeigen Ihnen, wie diese funktionieren.

Lokalisierung von Kategorien

Lokalisierte Kategorien sind in folgenden Bereichen sichtbar, wobei sowohl der Kategorienname als auch die Beschreibung lokalisiert sind:

Orte, an denen Kategorien lokalisiert sind 📸
  1. Startseite, Seitenleiste und Kategorien-Auswahlliste
  1. Kategorien-Seite
  1. Eine bestimmte Kategorie mit Unterkategorien

Als Administrator sollten Sie wie üblich auf die Kategorieeinstellungen zugreifen und den neuen Navigationspunkt “Lokalisierungen” links finden.

Bearbeitung von Kategorien-Lokalisierungen in den Kategorieeinstellungen 📸

Lokalisierung von Themen und Beiträgen

Aus den obigen Screenshots unter Kategorielokalisierung haben Sie möglicherweise bemerkt, dass Thementitel und Auszüge lokalisiert werden.

Es gibt einige Voraussetzungen:

  • Stellen Sie sicher, dass Ihr Benutzer in den content localization allowed groups enthalten ist.
  • Der Button addTranslation wird automatisch zum post menu und zu post menu hidden items hinzugefügt, wenn Content localization enabled aktiviert ist. Dies ermöglicht das Anzeigen des :globe_with_meridians: im Beitragsmenü für Benutzer in den content localization allowed groups.
  • Content localization allow author localization ist standardmäßig aktiviert und ermöglicht es Beitragsautoren, ihre eigenen Inhalte mit demselben Beitragsmenü wie oben zu lokalisieren.
3 Site-Einstellungen 📸


:backhand_index_pointing_down:t2:

Wie bereits erwähnt, befindet sich die Liste der lokalisierbaren Sprachen in der oben genannten Einstellung Content localization supported locales.

Bearbeiten eines lokalisierten Beitrags

Falls ein Benutzer einen lokalisierten Beitrag ansieht und den Beitrag bearbeiten möchte, erscheint ein Dialogfeld, das fragt, welche Version sie bearbeiten möchten:

Der entsprechende Editor erscheint nach der Auswahl.

Löschen der Übersetzung eines Beitrags für eine bestimmte Sprache

Wenn Sie die oben genannten Anweisungen zur Einstellung post menu korrekt befolgt haben, sollten Sie Folgendes tun können, wenn Sie in den Content localization allowed groups sind:

Crawler

Sie können Crawlern ermöglichen, Ihre Site in den verschiedenen Sprachen anzuzeigen, die Sie unter Content localization supported locales konfiguriert haben. Die Site-Einstellung befindet sich im Abschnitt “Inhaltslokalisierung” als Content localization crawler param:

Das Ergebnis ist, dass Crawler Folgendes sehen können, wobei jede unterstützte Sprache ein entsprechendes hreflang im Head jedes Themas hat:

Für zusätzlichen Beweis / zur Verifizierung

Wir haben diese Funktion umfassend getestet und können bestätigen, dass wir nach der Einführung einer bestimmten Anzahl unterstützter Sprachen korrekt indiziert werden.

FAQ

Ich habe alles eingerichtet, aber die automatische Übersetzung funktioniert immer noch nicht für mich
Überprüfen Sie, ob Folgendes eingerichtet ist:

  • Content localization supported locales enthält mindestens eine Sprache
  • Content localization enabled ist :check_mark:
    • Allow user locale ist :check_mark: (standardmäßig aktiviert)
    • Set locale from cookie ist :check_mark:
  • Ai translation enabled ist :check_mark:
  • Ai translation backfill max age days ist nicht 0
  • Ai translation backfill hourly rate ist größer als 12
  • Sie müssen für jeden Übersetzungs-Agenten ein funktionierendes LLM eingerichtet haben

Wenn alles andere fehlschlägt, können Sie SiteSetting.ai_translation_verbose_logs aktivieren.

Wird jeder Beitrag übersetzt?
Wenn AI translation backfill limit to public content :check_mark: ist, werden alle Beiträge in öffentlichen Kategorien übersetzt. Standardmäßig sind Bot-Beiträge (Benutzer-ID < 0) ausgeschlossen, es sei denn, AI translation include bot content ist aktiviert.

Werden die automatischen Übersetzungen gespeichert oder wird sie jedes Mal an das LLM gesendet, wenn jemand ein Thema ansieht?
Die Übersetzungen werden gespeichert. Jeder Beitrag wird nur einmal pro Sprache gesendet, und die Übersetzungen werden wiederverwendet.

Wenn mein Forum Englisch und Japanisch unterstützt (via Content localization supported locales) und jemand auf Spanisch schreibt, wird ihr Beitrag übersetzt?
Ja. Alle Themen und Beiträge werden ins Englische und Japanische übersetzt, unabhängig von der verfassten Sprache.

Wenn der Originalbeitrag bearbeitet wird, wird er neu übersetzt?
Ja – mit einem Maximum von 2 Mal pro Tag. Wenn ein Beitrag bearbeitet wird, wird er nach einer Verzögerung von mindestens 5 Minuten oder dem SiteSetting.editing_grace_period, um Ninja-Bearbeitungen zu berücksichtigen, zur Neuübersetzung gesendet. Berechtigte Benutzer in den Content localization allowed groups haben die Möglichkeit, einen Beitrag sofort zur Neuübersetzung zu senden.

Werden Übersetzungen gelöscht, wenn ich den Agenten oder das LLM ändere?
Nein, Übersetzungen bleiben in der Regel bei Änderungen der Einstellungen erhalten, es sei denn, sie werden explizit über das Beitragsmenü oder den Übersetzungs-Editor gelöscht.


24 „Gefällt mir“
Content Localization and Automatic Translations for Your Community
I can't find discourse AI as a provider in the discourse translator plugin
2 language site
Machine-translate messages so users can read without knowing sender's language
Update or Replace Header Locale Selector for New Discourse Header (widgets-end-of-life) – Is Built-in Support Available?
Anonymous user language selector for Discourse
Übersetzung wie hier auf Meta
Translate Discourse automatically (without a button)
Help which plugin is in the screenshot
About auto translation
Auto Country Translation
How to Add Automatic Multilingual Translation Interface in Discourse?
3.6.0.beta2: Built-in palette editing, live AI translation progress, and better wiki tracking
The usage problem after using AI translation
AI translation backfill not working after all settings configured
AI translation backfill not working after all settings configured
Single post/header only partially translated -issue
Language Switcher Problem, Not Translating Posts
配置好 ai 翻译后,帖子已经被自动翻译,但是在帖子顶部和右侧没有显示语言切换按钮
Feature Request: Allow Users to Localize Only Their Own Topics
How to configure ai translate of `Ai translation backfill hourly rate`?
AI translation of all PMs
Seeking experience: Supporting a multilingual Discourse community
Ongoing translation in threads
I need help to configure LLM DeepSeek R1 0528 - free for Automatic translations with Discourse AI
I need help to configure LLM DeepSeek R1 0528 - free for Automatic translations with Discourse AI
Not sure how to juggle languages while setting up my francophone community
Structuring a multilingual community
Why is Discourse AI translation not working
How to set up Discourse AI for internal-only usage
Single post/header only partially translated -issue
Header Locale Selector
为啥的布署的discourse不支持修改语言
Topic list is shown in a language (DE) but has one (DE) topic not translated
If topic info is too long, tags are cut off and create a blank line
Content Localization and Automatic Translations for Your Community
Images break when the page is auto-translated by a browser translation extension (S3/R2 + CDN is configured correctly)
Bearbeitung von Übersetzen Beiträgen verbessern
Why Is the Discourse AI Translation Icon Not Appearing?
Why are posts in Swedish un-translated to Finnish, default locale?
Discourse AI Translator, Planet Icon Missing
Language switcher and language content
Multilingual user feedback on Automatic Translations
Sharing approaches to using automation to send messages to members

Gibt es Empfehlungen, dies für bestehende Kategorien in großen Mengen zu tun? Im schlimmsten Fall, vielleicht über die API?

2 „Gefällt mir“

Hmm, gute Frage. Ich werde dafür sorgen, dass die API-Dokumentation für den Endpunkt zur Kategorieaktualisierung aktualisiert wird. :memo:

4 „Gefällt mir“

Wird es Unterstützung für Moderatoren pro Sprache geben? Ich denke an Meta – wo ich mich vielleicht freiwillig für die Überprüfung von Beiträgen in einer bestimmten Sprache und deren manuelle Aktualisierung melden würde. Insbesondere Dokumentationen, die einige menschliche Berührungen vertragen könnten. Aber Sie sagen, nur Moderatoren können es tun, was ich wahrscheinlich nie sein werde.

3 „Gefällt mir“

Gute Idee. Ich denke, das kann gemacht werden, aber wir müssen über die Details nachdenken, wie es eingerichtet werden kann.

3 „Gefällt mir“

Wie greife ich darauf zu? Könnten Sie bitte einen Befehl angeben?

Hat Sidekiq einen Job damit verknüpft? Ist es möglich, ihn manuell auszulösen?

1 „Gefällt mir“
2 „Gefällt mir“

Um Moin’s Beitrag oben zu ergänzen: Es ist einfach SiteSetting. ai_translation_backfill_hourly_rate, sobald Sie die Konsole erreicht haben. Der Job läuft alle fünf Minuten und die Ratenbegrenzung erfolgt entsprechend.

3 „Gefällt mir“

Ich sehe, dass die Lokalisierung jetzt in der Dokumentation verfügbar ist. Danke, @nat!

3 „Gefällt mir“

Das ist wunderbar, Lob an das Team! Ich teste es gerade und werde meine Gedanken und meine Gesamterfahrung teilen.

Esperanto fehlt auf der Liste; kann es ‘einfach’ hinzugefügt werden, oder muss es zuerst in discourse-languages integriert werden?

Wow, du bist ja auf Zack – ich wollte das gerade melden. :laughing:

Ja, irgendwie schon. Wir wollen ein vollständiges lokalisiertes Erlebnis, bei dem die Steuerelemente (Schaltflächen, Beschriftungen usw.) ordnungsgemäß und ausreichend (70 % wären wirklich gut) über Crowdin übersetzt werden (siehe Translations - Discourse Meta), und damit können wir die Unterstützung für die Sprache anbieten.

2 „Gefällt mir“

Funktioniert die Inhaltslokalisierung mit Dokumentationskategorien? Mir scheint, dass der Seitenleisteninhalt nicht übersetzt wird, obwohl ich das Index-Thema lokalisiere.

Außerdem ist mir ein seltsames Verhalten aufgefallen. Wenn ich ein lokalisiertes Thema in der Originalsprache sehe und aktualisiere, wechselt es zur lokalisierten Version. Ich muss manuell wieder zur Originalversion wechseln.

3 „Gefällt mir“

Oh, fantastischer Fang, ja, es funktioniert noch nicht, aber @nat wird sich darum kümmern!

Ich frage mich, ob dies ein Katalysator für die Entwicklung einer besseren Abstraktion / eines besseren Datenmodells für die Sidebar-Dokumentationslinks ist.

2 „Gefällt mir“

Ja, das stimmt – es gibt viele Stellen in Discourse, die eine explizite Übersetzung benötigen, daher protokolliere ich sie nach und nach. Zuletzt haben wir auch Benachrichtigungen für Themenüberschriften lokalisiert. Dies ist ein Beispiel für ein Feature-Thema, das ich erstellt habe - Show translated user bios.

Ich werde ein neues Thema erstellen und dich @erwähnen, damit wir sicherstellen, dass wir alle Bereiche im Sidebar abdecken.

EDIT: @tvavrda wurde hier behandelt - Translate sidebar documentation links. Bitte schau es dir an und sieh, ob es Sinn ergibt.

Was meinst du mit „wieder wechseln“?

Könntest du bitte das nächste Mal, wenn es passiert, eine Videoaufnahme (einschließlich der Adressleiste) teilen? :folded_hands:t2: Fühle dich frei, mir in diesem Fall eine Direktnachricht zu senden, wenn der Inhalt nicht für die Öffentlichkeit geeignet ist. Warst du auch eingeloggt? Technisch gesehen werden diese Dinge über Cookies verfolgt, daher ist es für mich etwas rätselhaft.

1 „Gefällt mir“

Ich habe dir ein Video geschickt.

Eine weitere Beobachtung – ich kann die Unterschiede der übersetzten Inhalte nicht sehen, oder? Das könnte nützlich sein, wenn es Aktualisierungen dazu gibt. Nicht sehr wichtig, aber es wäre sinnvoll, denke ich.

Und noch eine – die Backlinks unter dem Thema zeigen keinen lokalisierten Themennamen an.

Und eine Frage: Was bringt es, Kategoriebeschreibungen in den Kategorieeinstellungen zu lokalisieren? Die Kategoriebeschreibung sollte von der lokalisierten Version des „Über uns“-Themas stammen, oder? Die lokalisierte Version unterstützt kein Markdown, daher kann ich keinen Link verwenden, was ich gerne tun würde.

1 „Gefällt mir“

Nun… die alte GitHub - discourse/discourse-docs-sidebar Komponente respektiert tatsächlich die Lokalisierung :slight_smile: Ich bin vorübergehend zu dieser gewechselt.

Ja, das wird derzeit auch nicht unterstützt und wäre ein ziemlicher Aufwand.

Wir haben eine kleine speziell farbige Anzeige (ähnlich der Anzeige für Beitragsbearbeitungen daneben), wenn eine Übersetzung veraltet sein könnte, da sich die Beitragsversion geändert hat.

1 „Gefällt mir“

Ich sehe auch einen unübersetzten Inhalt in den Zusammenfassungen angehefteter Themen. Ich sehe also eine Themenliste in der übersetzten Sprache, aber die Zusammenfassung des angehefteten Themas zeigt das Original.

1 „Gefällt mir“

Wir können Übersetzungen manuell durchführen oder korrigieren, aber können wir den Aufbau von Übersetzungen manuell auslösen? So eine Art On-Demand-Job.

Was ich mir vorstelle, ist, dass ich Übersetzungen für ein Jahr alte Themen zugelassen habe. Aber wenn dieses Jahr ab dem aktuellen Datum gezählt wird, wird sich diese Grenze ständig in Richtung bereits übersetzter Inhalte verschieben. Aber die größte Nachfrage besteht nach älteren wertvollen Inhalten, die ich schnell und ohne ziemlich langsame Massenaktionen erreichen möchte.

Ich bin neugierig, hat jemand Kostenschätzungen, nachdem die Übersetzungen aktiviert wurden? Unsere Seite existiert schon eine Weile, und obwohl ich die gesamte Seite übersetzen möchte, wenn möglich, sind die Kosten definitiv ein Anliegen. Wenn also jemand eine grobe Vorstellung von den Kosten aus seiner Erfahrung hat, z. B. 1000 Beiträge kosten 1 $, würde das enorm helfen, um eine ungefähre Kostenschätzung zu erhalten.

Wird die Inhaltlokalisierung einmal durchgeführt und dann irgendwo gespeichert, d. h. nicht nach Bedarf? Wenn ja, hindert mich etwas daran, Ollama und ein Open-Source-LLM auf meinem Desktop wie Llama 3 oder Deepseek 3 zu starten und den Job einfach laufen zu lassen, bis er fertig ist?

Bearbeitung: Ich schätze, es könnte funktionieren, um die anfänglichen Übersetzungskosten zu senken, aber es wird nicht für neuere Beiträge funktionieren, es sei denn, man beschließt, das lokale LLM dauerhaft laufen zu lassen.