Localizzazione dei contenuti: manuale e automatica con Discourse AI

In questa guida, ti illustreremo le funzionalità di Localizzazione dei Contenuti e come abilitarle. Le funzionalità sono suddivise in due parti: ciò che è disponibile di default in Discourse; e Discourse AI per le traduzioni automatiche.

:warning: Per un accesso rapido alle sezioni rilevanti, utilizza le intestazioni della wiki :backhand_index_pointing_right:t2:

Localizzazione dei Contenuti della Tua Community

Discourse ti dà accesso a diverse funzionalità di localizzazione configurabili in:

  • <your-site-url>/admin/site_settings/category/content_localization
Localizzazione dei Contenuti nelle Impostazioni del Sito 📸

Preparazione

Innanzitutto, è utile raccogliere alcune informazioni sulla tua community tramite Data Explorer.

Lingua tramite preferenze utente

La seguente query può darti un’idea di quanti utenti potrebbero aver impostato la propria lingua in /my/preferences/interface.

SELECT locale, count(*) as count
FROM users
WHERE (locale IS NOT null AND locale <> '')
GROUP BY locale
ORDER BY count DESC
Esempio di risultati da Data Explorer

Da dove provengono i tuoi utenti

Una soluzione migliore, se hai abilitato Browser pageview events (impostazione del sito), è questa query che ti indica da quale paese proviene il tuo utente:

SELECT
  e.country_code AS country_code,
  COUNT(*) AS pageviews
FROM browser_pageview_events e
WHERE e.country_code IS NOT NULL
  AND e.country_code <> ''
GROUP BY e.country_code
ORDER BY pageviews DESC
Esempio di risultati

Configurazione

Con le informazioni sopra, ora sei più informato su quali lingue la tua community dovrebbe supportare.

In <your-site-url>/admin/site_settings/category/content_localization, inizia a configurare.

  • Content localization enabled - attiva la funzionalità che sostituisce il contenuto scritto originale con il contenuto localizzato. Continua a leggere per le modalità di localizzazione automatica (AI) e manuale (umana).
  • Content localization supported locales - l’elenco delle lingue supportate dal tuo sito
  • Content localization crawler param - trattato nella sezione crawler qui sotto
  • Content localization language switcher - trattato qui sotto
Elenco delle lingue nelle Impostazioni del Sito 📸

Selettore lingua

Abilitando l’impostazione successiva Content localization language switcher, puoi anche rendere la tua community più accessibile agli utenti non connessi mostrando l’elenco delle lingue che hai scelto nell’elenco delle lingue supportate:

Selettore lingua in alto a destra nella pagina

Visualizzazione dei contenuti localizzati

Per i visualizzatori di contenuti localizzati (tutti i visitatori del sito), possono passare il cursore sull’indicatore accanto alla data del post per visualizzare la lingua originale del post. Questo indicatore appare solo se il post non è nella loro lingua. Possono semplicemente toccare l’indicatore per vedere anche il post originale.

Per i nostri visualizzatori multilingue connessi, possono indicare che comprendono più lingue, quindi i contenuti in quelle lingue non verranno tradotti.

Traduzioni automatiche con Discourse AI :sparkles:

Discourse AI è fondamentale per la funzionalità di localizzazione e elimina la necessità di effettuare traduzioni manuali.

Come amministratore, vorrai recarti nella nostra area dedicata in Discourse AI per le Traduzioni. Questa area dedicata copre:

  • progresso della traduzione
  • impostazioni AI
  • impostazioni lingua dell’app

Per coprire alcune impostazioni e raccomandazioni importanti:

  • AI translation backfill hourly rate - questa impostazione di default è 50 - il tuo sito tradurrà 50 post, 50 topic, 50 categorie, 50 tag all’ora, nelle lingue che hai impostato in Content localization supported locales. Mantieni questo numero basso all’inizio.
  • AI translation category scope - di default Categorie pubbliche. Puoi cambiarlo in tutte le categorie o in una selezione specifica.
  • AI translation personal messages e AI translation include bot content sono autoesplicativi.
  • AI translation backfill start date - questo valore è vuoto di default. Se abiliti la funzionalità di traduzione AI “oggi”, la data è impostata automaticamente su “oggi - 5 giorni”
  • AI translation post raw translator agent (e altri agenti) - In community più formali, gli amministratori possono scegliere di creare il proprio agente. Questo ti permette di impostare un prompt più raffinato per la lingua o il vocabolario che preferisci.

Puoi fare riferimento a AI bot - Agents su come configurare agenti adatti e affinare i prompt per ciascuna funzione.

Localizzazione manuale

Poiché la localizzazione è una funzionalità fondamentale in Discourse, forniamo la possibilità di compilare e modificare le localizzazioni manualmente nel caso in cui le traduzioni automatiche con Discourse AI non siano disponibili.

Di default, amministratori e moderatori sono impostati per modificare le localizzazioni.

Attualmente, abbiamo localizzazioni per il contenuto del post, titolo del topic, nome della categoria, descrizione della categoria, nome del tag, descrizione del tag e sidebar. Le sezioni successive qui sotto ti mostreranno come funzionano.

Localizzazione delle categorie

Le categorie localizzate sono visibili nelle seguenti aree, con sia il nome che la descrizione della categoria localizzati:

Luoghi in cui le categorie sono localizzate 📸
  1. Homepage, sidebar e menu a tendina delle categorie
  1. Pagina delle categorie
  1. Una categoria specifica con sottocategorie

Come amministratore, dovresti essere in grado di accedere alle impostazioni della categoria come al solito e trovare la nuova voce di navigazione “Localizzazioni” a sinistra.

Modifica delle localizzazioni delle categorie nelle Impostazioni della Categoria 📸

Localizzazione di Topic e Post

Dalle screenshot sopra in Localizzazione delle categorie, potresti aver notato che i titoli dei topic e gli estratti sono localizzati.

Ci sono alcune impostazioni prerequisito

  • Assicurati che il tuo utente sia in content localization allowed groups
  • Il pulsante addTranslation viene aggiunto automaticamente a post menu e post menu hidden items quando Content localization enabled è attivato. Questo permette alla :globe_with_meridians: di comparire nel menu del post per gli utenti in content localization allowed groups.
  • Content localization allow author localization è abilitato di default e permette agli autori dei post di localizzare i propri contenuti utilizzando lo stesso menu del post sopra.
impostazione menu post

Modifica di un post localizzato

Nel caso in cui l’utente stia visualizzando un post localizzato e voglia modificarlo, apparirà una finestra di dialogo per chiedere quale versione preferisce modificare:

Apparirà l’editor appropriato dopo la decisione.

Localizzazione della sidebar personalizzata

Le sezioni della sidebar che sono “visibili a tutti” mostrano anche controlli di traduzione aggiuntivi:

Crawler

Puoi consentire ai crawler di vedere il tuo sito nelle varie lingue che hai configurato in Content localization supported locales. L’impostazione del sito risiede nella sezione “Content localization” come Content localization crawler param:

Il risultato sarà che i crawler possono vedere il seguente, dove ogni lingua supportata ha un hreflang corrispondente nell’head di ogni topic:

Per prova / verifica extra

Abbiamo testato estensivamente questa funzionalità e possiamo confermare di essere indicizzati correttamente dopo l’introduzione di X numero di lingue supportate

FAQ

Ho configurato tutto, ma la traduzione automatica non funziona ancora per me
Conferma se hai configurato questi elementi

  • Content localization supported locales ha almeno una lingua
  • Content localization enabled è :check_mark:
    • Allow user locale è :check_mark: (abilitato di default)
    • Set locale from cookie è :check_mark:
  • Ai translation enabled è :check_mark:
  • Devi avere un LLM funzionante impostato per ogni agente di traduzione

Se tutto il resto fallisce, puoi abilitare SiteSetting.ai_translation_verbose_logs.

Le traduzioni automatiche sono salvate, o vengono inviate al LLM ogni volta che qualcuno visualizza un topic?
Le traduzioni sono salvate, ogni post viene inviato solo una volta per lingua e le traduzioni vengono riutilizzate.

Se il mio forum supporta inglese e giapponese (tramite Content localization supported locales), e qualcuno scrive in spagnolo, il suo post verrà tradotto?
Sì. Tutti i topic e i post verranno tradotti in inglese e giapponese, indipendentemente dalla lingua scritta.

Se il post originale viene modificato, viene ritradotto?
Sì – con un massimo di 2 volte al giorno. Quando un post viene modificato, viene inviato per la ritraduzione dopo un ritardo maggiore tra 5 minuti e SiteSetting.editing_grace_period per tenere conto delle modifiche ninja. Gli utenti autorizzati in Content localization allowed groups hanno l’opzione di inviare un post per la ritraduzione immediata.

Le traduzioni verranno eliminate se cambio l’Agente o il LLM?
No, le traduzioni tipicamente persistono attraverso i cambiamenti delle impostazioni a meno che non vengano esplicitamente eliminate utilizzando la voce del menu del post o l’editor di traduzione.


25 Mi Piace
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
Übersetzung wie hier auf Meta
Anonymous user language selector for Discourse
Update or Replace Header Locale Selector for New Discourse Header (widgets-end-of-life) – Is Built-in Support Available?
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`?
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
AI translation of all PMs
Content localization language switcher doesn't work
This Meta Branded theme is special. Can I use it on my forum too?
Feature Request: Translation of FAQ/Terms of Service/Privacy
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

Ci sono raccomandazioni per farlo in blocco per le categorie esistenti? Nel peggiore dei casi, magari tramite API?

2 Mi Piace

Ottima domanda. Mi assicurerò che la documentazione API venga aggiornata per l’endpoint di aggiornamento della categoria. :memo:

4 Mi Piace

Ci sarà un supporto per moderatore per lingua? Sto pensando a meta – dove potrei fare volontariato per controllare i post in una lingua specifica e aggiornarli manualmente. Specialmente la documentazione che potrebbe accogliere alcuni tocchi umani. Ma dici solo i moderatori possono farlo che probabilmente non sarò mai.

3 Mi Piace

Ottimo suggerimento. Penso che si possa fare, ma dovremo pensare ai dettagli su come impostarlo.

3 Mi Piace

Come posso accedervi? Potresti fornire un comando per favore?

Sidekiq ha qualche job collegato? È possibile avviarlo manualmente?

1 Mi Piace
2 Mi Piace

Per aggiungere al post di Moin sopra, è sufficiente SiteSetting. ai_translation_backfill_hourly_rate una volta raggiunto la console. Il job viene eseguito ogni cinque minuti e la limitazione della velocità è di conseguenza.

3 Mi Piace

Ora vedo che la localizzazione è disponibile nella documentazione. Grazie @nat!

3 Mi Piace

È meraviglioso, complimenti al team! Lo sto testando proprio ora e condividerò i miei pensieri e la mia esperienza generale.

Ci manca l’esperanto nell’elenco; può essere semplicemente aggiunto, o deve prima essere integrato in discourse-languages?

Wow, sei sul pezzo – stavo giusto per segnalarlo qui. :laughing:

Sì, più o meno. Vogliamo un’esperienza completamente localizzata in cui i controlli (pulsanti, etichette, ecc.) siano tradotti in modo appropriato e sufficiente (il 70% sarebbe davvero buono) tramite Crowdin (vedi Translations - Discourse Meta), e con ciò possiamo fornire supporto alla lingua.

2 Mi Piace

La localizzazione dei contenuti funziona con le categorie di documentazione? Mi sembra che il contenuto della barra laterale non venga tradotto, anche se localizzo l’argomento dell’indice.

Ho anche notato uno strano comportamento. Quando vedo un argomento localizzato nella lingua originale e aggiorno, passa alla versione localizzata. Devo passare di nuovo manualmente alla versione originale.

3 Mi Piace

Oh fantastica osservazione, sì, non funziona ancora, ma @nat se ne occuperà!

Mi chiedo se questo sia un catalizzatore per arrivare a un’astrazione/modello dati migliore per i link dei documenti nella barra laterale.

2 Mi Piace

Sì, è corretto: ci sono molti punti in Discourse che richiederanno una traduzione esplicita, quindi li sto registrando man mano. Più di recente, abbiamo localizzato anche le notifiche per i titoli degli argomenti. Questo è un esempio di un argomento di funzionalità che ho creato: Show translated user bios.

Creerò un nuovo argomento e ti @ menzionerò in modo da assicurarci di coprire tutte le basi nella barra laterale.

MODIFICA: @tvavrda coperto qui: Translate sidebar documentation links. Per favore, dai un’occhiata e vedi se ha senso.

Cosa intendi con “passare di nuovo”?

Ti dispiacerebbe condividere una registrazione video (includi la barra degli indirizzi) la prossima volta che succede? :folded_hands:t2: Sentiti libero di inviarmi un messaggio privato per questo caso se il contenuto non è adatto al pubblico. Inoltre, eri connesso? Tecnicamente parlando, queste cose sono tracciate dai cookie, quindi è un po’ sconcertante per me.

1 Mi Piace

Ti ho inviato un video.

Un’altra osservazione: non posso vedere le differenze del contenuto tradotto, giusto? Potrebbe essere utile se ci fossero aggiornamenti. Non è super importante, ma avrebbe senso, immagino.

E un’altra: i backlink sotto l’argomento non mostrano un nome di argomento localizzato.

E una domanda: qual è il senso di localizzare le descrizioni delle categorie nelle impostazioni delle categorie? La descrizione della categoria dovrebbe provenire dalla versione localizzata dell’argomento “Informazioni”, non credi? La versione localizzata non supporta il markdown, quindi non posso usare un link, cosa che vorrei fare.

1 Mi Piace

Beh… il vecchio componente GitHub - discourse/discourse-docs-sidebar rispetta effettivamente la localizzazione :slight_smile: Mi sono temporaneamente spostato su quello.

Sì, anche questo al momento non è supportato e sarebbe un’impresa non da poco.

Abbiamo un piccolo indicatore di colore speciale (simile all’indicatore di modifica del post accanto ad esso) quando una traduzione potrebbe essere obsoleta poiché la versione del post è cambiata.

1 Mi Piace

Vedo anche contenuti non tradotti negli abstract degli argomenti bloccati. Vedo quindi un elenco di argomenti nella lingua tradotta, ma l’abstract dell’argomento bloccato mostra l’originale.

1 Mi Piace

Possiamo fare o correggere manualmente le traduzioni, ma possiamo attivare manualmente la creazione delle traduzioni? Una specie di lavoro su richiesta.

Quello che sto pensando è che ho permesso la traduzione per argomenti vecchi di un anno. Ma se quell’anno viene contato dalla data corrente, quel limite si sposterà continuamente verso contenuti già tradotti. Ma la maggiore richiesta riguarda contenuti più vecchi e di valore che vorrei raggiungere velocemente e senza azioni massive piuttosto lente.

Sono curioso, qualcuno ha delle cifre sui costi dopo aver attivato le traduzioni? Il nostro sito esiste da un po’ di tempo e, sebbene mi piacerebbe tradurre l’intero sito, se possibile, il costo è sicuramente una preoccupazione. Quindi, se qualcuno avesse un’idea approssimativa dei costi dalla propria esperienza, ad esempio 1000 post con un costo di 1 dollaro, ciò aiuterebbe enormemente a farsi un’idea dei costi approssimativi.

La localizzazione dei contenuti viene eseguita una sola volta e poi archiviata da qualche parte, cioè non su richiesta? Se sì, c’è qualcosa che mi impedisce di avviare Ollama e un LLM open source sul mio desktop come Llama 3 o Deepseek 3 e lasciare che il lavoro venga eseguito finché non è finito?

Modifica: Suppongo che possa funzionare per ridurre il costo iniziale della traduzione, ma non funzionerà per i post più recenti a meno che non si decida di mantenere l’LLM locale in esecuzione perpetuamente.