Plugin multilingue 🌐

Il plugin Multilingua rende possibile per gli amministratori di un forum multilingue creare un ambiente ricco e comprensibile per tutti gli utenti e gli ospiti, anche se non parlano la lingua predefinita o maggioritaria del forum.

:page_facing_up: Ottieni il codice

:book: Leggi la documentazione


Panoramica delle funzionalità

Il plugin Multilingua estende l’attuale sistema di localizzazione di Discourse per fornirti:

  1. un’interfaccia di amministrazione per tutte le lingue utilizzate nel tuo forum;

  2. un sistema di lingua dei contenuti che ti permette a te e ai tuoi utenti di filtrare i contenuti nel forum per lingua;

  3. un’integrazione con il plugin Discourse Translator, che automatizza aspetti del sistema di lingua dei contenuti;

  4. la possibilità di tradurre nomi delle categorie, tag e altro testo semi-statico nel tuo forum;

  5. la possibilità di disabilitare l’uso delle lingue dell’interfaccia esistenti nel tuo forum;

  6. la possibilità di aggiungere lingue dell’interfaccia personalizzate (‘locali’) direttamente al tuo forum;

  7. funzionalità avanzate per la lingua degli ospiti, incluso un selettore di lingua dell’interfaccia per ospiti (‘locale’) (come barra di piè di pagina o menu); e

  8. campi opzionali per la lingua dell’interfaccia e dei contenuti durante la registrazione (in arrivo).


:point_right: Nota importante

Tutte le funzionalità sopra elencate funzionano sopra l’attuale sistema di localizzazione di Discourse e operano in conjunction con tutte le funzionalità di tale sistema (vedi la spiegazione più dettagliata qui).

Se desideri aggiungere lingue dell’interfaccia (‘locali’) a Discourse, il modo migliore è seguire i passaggi descritti qui: How to add a new language. Puoi anche aggiungere un locale tramite un plugin, come descritto qui.

La possibilità di farlo tramite l’interfaccia di amministrazione di questo plugin dovrebbe essere considerata solo dopo aver esaurito i metodi supportati da Discourse. Qualsiasi lingua aggiunta a Discourse tramite i metodi supportati da Discourse sarà automaticamente disponibile per tutte le funzionalità di questo plugin.


Esempi di schermate

Interfaccia di amministrazione

Traduzioni del testo semi-statico (e selettore locale per ospiti)

Sistema di lingua dei contenuti

Screen Shot 2020-02-25 at 2.24.51 PM

Integrazione con il plugin Traduttore per la lingua dei contenuti


Crediti

Questo plugin è stato reso possibile grazie al supporto della Wikimedia Foundation, con particolare contributo da @Elena_Lappen e @icaria36, che hanno avuto un ruolo significativo nella progettazione delle funzionalità.

Per ulteriori discussioni sul ragionamento alla base di questo plugin, vedi:

Structuring a multilingual community

68 Mi Piace

Wow! Sei stato molto impegnato. :slight_smile: Ottimo lavoro, @angus! Non vedo l’ora di vedere esempi di questo in azione. Fammi sapere se hai bisogno di qualcuno come me per esaminarlo e fornire feedback.

Una lacuna è stata la mancanza di una funzionalità che permetta allo staff di migliorare le traduzioni dei post forniti dal plugin di traduzione: sarà parte di questo sforzo?

10 Mi Piace

Mmh. Non lo escludo, ma probabilmente rientra più nell’ambito del plugin di traduzione.

Una funzionalità in qualche modo correlata, che ho sviluppato in passato per un altro progetto, è una piccola icona con un numero che appare per gli utenti quando la lingua che stanno utilizzando fa ricorso a quella predefinita perché manca una traduzione. Cliccando sull’icona si visualizza:

“x traduzioni mancanti per questa pagina. Aiutateci a tradurle qui: (link a Transifex di Discourse).”

7 Mi Piace

Fantastico lavoro come sempre, Angus! L’ho testato sul mio sito e ho rilevato alcuni piccoli problemi e ho alcune domande.

Problemi

  1. Quando modifichi un argomento esistente, il testo del menu a tendina non segue i colori del tema:

  1. L’impostazione della lingua del contenuto diventa molto difficile da usare oltre un paio di lingue a causa della riga singola

Domande

  1. Sembra che molti dei nostri vecchi argomenti stiano ricevendo retroattivamente il tag della lingua, il che è desiderabile, ma solo una manciata finora. Verrà eseguita una job per applicare il tag a tutti i post esistenti alla fine? In caso contrario, esiste un modo per applicare un tag della lingua a tutti i post esistenti? Il nostro sito è stato solo in inglese fino a questo punto, quindi voglio che tutti i post esistenti abbiano il tag en.
  2. Quando hai più lingue impostate sotto le lingue del contenuto, dovresti essere in grado di filtrare per una lingua individuale? Attualmente, quando faccio clic su una delle lingue nel menu a tendina, non succede nulla.
2 Mi Piace

Grazie per il feedback, David, e per aver provato questa funzionalità. Ho apportato diverse modifiche che, tra l’altro, risolvono i due problemi che hai menzionato sopra.

Non ancora. Attualmente, solo i post tradotti dal plugin Traduttore riceveranno automaticamente un’etichetta di contenuto in retroattiva (se il plugin Traduttore è abilitato e la funzione di sincronizzazione è attiva).

Posso aggiungere un’attività del genere, ma dovrà richiedere una lingua specifica come parametro ed essere eseguita su un ambito definito. Oltre a un ambito ‘globale del sito’, potrei effettuarla per categoria o per etichetta (non di contenuto), ovvero applicare questa etichetta di contenuto a tutti gli argomenti in una determinata categoria o con un’altra etichetta specifica. Cosa ti funzionerebbe meglio?

No, l’elenco serve solo a mostrarti quali sono attualmente le lingue dei contenuti impostate. Potresti spiegarmi come ti aspetti (o preferisci) che si comporti questa funzione?

2 Mi Piace

Grazie Angus, hai risolto i miei problemi.

Idealmente, vorrei che il tag en venisse applicato a tutti i post esistenti che non hanno un tag di lingua. È troppo ampio? Il problema è che se un utente imposta la propria lingua di contenuto su, ad esempio, inglese e spagnolo, vedrà solo i post con il tag di lingua, non le migliaia di post senza tag.

Poiché c’è un elenco e gli elementi si evidenziano al passaggio del mouse, si crea l’impressione che siano cliccabili. In tal caso, mi aspetto che cliccando su uno di essi i tuoi post vengano filtrati per quella lingua. Penso che potrebbe essere una funzionalità utile per filtrare per lingua, ma non è qualcosa per cui sono disposto a morire.

A proposito: mi piacerebbe avere la possibilità di spostare il pulsante della lingua. Ho già molti elementi nella barra di navigazione e sta iniziando a diventare affollata. Inoltre, il pulsante evidenziato sembra fuori posto sopra il pulsante “Nuovo argomento”, costringendo quest’ultimo a spostarsi sotto. Immagino non sia possibile spostarlo all’inizio della barra di navigazione, ad esempio prima di Ultime? Oppure potrebbe essere fissato in un angolo come ho sulla mia homepage di WordPress https://naturephotographers.network , o potrebbe essere inserito nell’intestazione, simile all’opzione presente nel plugin di traduzione.

Capisco il tuo ragionamento per averlo inserito nella barra di navigazione, poiché stai filtrando in modo simile agli altri pulsanti, ma il punto è che lo imposti una sola volta e poi lo dimentichi. Non è come se filtrassi regolarmente per lingue diverse.

Grazie ancora, questo plugin insieme a quello di traduzione è un vero cambiamento di gioco.

3 Mi Piace

Per me, questo è il comportamento desiderato. Gli utenti non devono vedere post in una lingua straniera. Se non ci sono post nella loro lingua, devono non vedere nessun post.

Tuttavia, come opzione, una funzione di “etichettatura in blocco” sarebbe utile.

2 Mi Piace

Concordo: la soluzione che ho proposto su Pavilion è che, se la lingua predefinita corrisponde a una delle lingue del topic selezionate, vengano mostrati tutti i post senza tag. Ma la taggatura in blocco sarebbe l’opzione migliore.

@angus, non sono sicuro al 100% se questo sia legato al tuo plugin o a una modifica nel core, ma potrebbe esserci un bug che ho riscontrato. Quando modifico un post esistente, apportare alcune modifiche e provo a salvare, ricevo questo errore: Nessuno dei tag selezionati può essere utilizzato. Non ci sono tag impostati tranne il tag en, e il numero minimo di tag richiesti in un topic è impostato su 0. Hai idee?

2 Mi Piace

Ho riscontrato un altro problema oggi, Angus. In precedenza avevo un tag ig (abbreviazione di Instagram) che è stato eliminato dal plugin per fare spazio alla lingua igbo. Immagino non ci sia modo di recuperarlo? Ho provato a disattivare il plugin sperando che fosse ancora lì, ma purtroppo sembra essere scomparso da tempo. So che è un rischio che si corre quando si testano i plugin. Forse dovresti aggiungere un avviso che specificherà l’eliminazione di eventuali tag con lo stesso nome.

3 Mi Piace

Ti scriverò in privato a riguardo (è improbabile che sia andato perso)

Le altre utili suggerimenti e feedback li rivedrò domani.

3 Mi Piace

Oddio! Sei fantastico!
Voglio dire, ti ammiro davvero. Anche se spero che questo post non distolga l’attenzione delle persone dal tuo lavoro meraviglioso.

7 Mi Piace

Solo una nota: io e David abbiamo risolto questo problema e ripristinato i tag ig esistenti.

Se c’è un conflitto tra un tag preesistente e un tag di lingua del contenuto, la lingua non sarà disponibile come lingua del contenuto fino alla risoluzione del conflitto. Potrai vederlo nella sezione amministrazione delle lingue.

Nella prossima settimana mi occuperò di eventuali altri problemi e richieste di nuove funzionalità.

9 Mi Piace

Caro Angus, è possibile utilizzare solo l’interruttore di lingua per gli ospiti? Non ho bisogno di utilizzare tutte le funzioni di questo sistema: mi serve solo la possibilità di cambiare la lingua dell’interfaccia per gli ospiti.

2 Mi Piace

Ogni funzionalità del plugin funziona in modo indipendente.

Installa il plugin e attiva semplicemente l’interruttore delle lingue: Pavilion.

Attualmente utilizziamo questo plugin per questo scopo su thepavilion.io.

4 Mi Piace

Lavoro fantastico, @angus!

Abbiamo installato il plugin, ma ora nessun contenuto è visibile agli utenti, nemmeno allo staff. Tuttavia, quando modifichi una categoria e provi a eliminarla, otteniamo il seguente avviso:

L’unico modo per accedere a un argomento è seguire il link nel messaggio di avviso o conoscere l’URL dell’argomento. Se accediamo all’argomento (RIO Paris) e aggiungiamo un tag di lingua, ad esempio “english”, allora diventa visibile come previsto. Il nostro sospetto è che il plugin Multilingua funzioni correttamente: vengono visualizzati solo i contenuti associati a un tag. Tuttavia, troviamo fuorviante e confuso il fatto che le persone non possano vedere tutti gli argomenti correlati senza associare un tag di lingua. Abbiamo migliaia di argomenti pubblicati in precedenza che sono invisibili. Esiste una soluzione per assegnare rapidamente un tag di lingua a questi argomenti, dato che al momento non vediamo un elenco?

Vi preghiamo gentilmente di consigliarci.

Aggiornamento: Ho risolto il problema di visibilità taggando tutti gli argomenti di determinate categorie in base alla lingua che dovevano utilizzare, in Rails:

  1. cd /var/discourse poi ./launcher enter app
  2. Ottenere gli ID delle categorie con rake categories:list
  3. Se una categoria che dovrebbe contenere solo argomenti in tedesco ha l’ID 245, allora rake tags:bulk_tag_category["de",245]
1 Mi Piace

Dopo aver eseguito
./launcher rebuild app
ottengo una pagina vuota.

Ho scoperto che è causata da questo plugin. Non riesco ad aprire il sito né la parte di amministrazione.
Ho attivato solo il contenuto multilingue, ma non ho compilato nulla.

Come posso reimpostare le impostazioni di questo plugin nel database?

Funziona il tuo.website.com/safe-mode?

Ho disattivato questo plugin. I problemi sono iniziati con la scomparsa dell’elenco dei plugin nel pannello di amministrazione. Dopo di ciò, ho provato a ricostruire l’app, ma dopo la ricostruzione il sito non si apriva. Ora si apre, ma con questo plugin disattivato.

@angus, puoi verificare il tuo plugin con una versione fresca di Discourse?

in modalità sicura senza plugin non ufficiali vedo questa pagina senza l’elenco dei plugin:

modalità sicura senza tutti i plugin:

È possibile reimpostare le impostazioni di questo plugin nel database?

In quel momento nessun modalità poteva risolvere il problema (sicura, senza non ufficiali, senza tutto) - in tutte le modalità non ho visto un elenco di plugin installati nel sistema.

1 Mi Piace