Discourse-multilingual-post

discourse-multilingual-post

Un plugin Discourse permettant d’inclure plusieurs versions localisées du contenu d’un message.

Ce plugin est une preuve de concept : sans la possibilité de localiser les titres des sujets, il n’est pas très utile.

Comment l’utiliser

Dans un message, utilisez des blocs [lang=xx] :

[lang=fr]
Bonjour le monde !
[/lang]
[lang=en]
Hello World!
[/lang]
[lang=de]
Hallo Welt !
[/lang]

Résultat :

Bonjour le monde !

Les codes pays doivent comporter 2 lettres (les régions ne sont pas prises en charge).

Fonctionnement

Lors du rendu d’un message, le plugin recherche un bloc [lang=xx] à afficher. Il arrête sa recherche dès qu’il a trouvé :

  1. le bloc défini pour la langue de l’utilisateur (telle que sélectionnée par Discourse)
  2. le bloc défini pour la langue par défaut de l’instance Discourse
  3. le premier bloc

Dépôt

https://github.com/sylque/discourse-multilingual-post

13 « J'aime »

Équipe Discourse, avez-vous une idée de comment je pourrais localiser les titres de sujets ?

Ce que je voudrais faire, c’est :

  • Définir un ordre de langues, par exemple « en,fr,de »
  • Permettre aux utilisateurs d’écrire des titres de sujets comme ceci : Hello World#Bonjour monde#Hallo Welt
  • Lorsque Discourse affiche un titre de sujet, le modifier pour ne garder que la bonne langue

Cependant, je n’ai trouvé aucun point d’accroche côté client pour modifier le titre. Une idée ?

6 « J'aime »

Avez-vous envisagé de gérer les titres dans Rails ? La langue par défaut est celle qui existe déjà, tandis que les titres supplémentaires sont des champs de sujet personnalisés. Ensuite, vous modifiez les sérialiseurs pour envoyer le titre de la langue sélectionnée dans le payload.

8 « J'aime »

Excellent travail !

Je rejoins cet avis. Je pense que la gestion côté serveur est la meilleure approche pour les titres.

Je suis d’ailleurs en train de développer un plugin multilingue (presque terminé) qui permet la traduction de :

  1. Des tags
  2. Des noms de catégories
  3. Des descriptions de catégories

Ainsi que d’un panneau d’administration pour gérer les langues et les paramètres régionaux, ainsi que d’autres fonctionnalités comme les filtres de contenu linguistique spécifiques aux utilisateurs.

Il serait possible de combiner nos efforts sur ce projet.

14 « J'aime »

Bonjour ! J’adore ce plugin et sa simplicité. Je pense qu’il serait encore plus utile s’il prenait en charge la personnalisation des pages Discourse (FAQ/Règles, CGU, Politique de confidentialité), puisque les titres sont déjà traduits de toute façon. J’ai essayé de faire un fork et de l’étendre moi-même, mais pour être honnête, je suis un véritable débutant. J’ai l’impression, cependant, qu’il faudrait le réécrire autour de decorateWidget() plutôt que de decorateCooked().

1 « J'aime »

Personnaliser une page statique Discourse (FAQ/Règles, CGU, Politique de confidentialité) serait une excellente fonctionnalité. Cependant, je ne suis pas sûr que decorateWidget ait un point d’accès pour les pages statiques. Quelqu’un aurait-il un indice à ce sujet ?