Make a multi-language forum

We implemented a multi-lingual forum for our community. It currently supports 6 languages. We have seriously considered moving to Discourse, and I have explained to @codinghorror that we would pay for this feature. Based on some of the off-topic uses cases in this thread, it looks like others have the same need.

Many of our most active contributors use our forums in multiple languages. But most of our most informed users only speak English. We want to encourage participation in the non-English forums by users who also speak English in order increase the level of informed content. When someone asks a question in the non-English forums, we want to encourage multi-lingual users to translate the answer from the English forum into that language.

So users should have a single account across all the languages with a single score for reputation. Accumulation to badges should be based on participation in topics in any language. We want a single interface for watched threads and direct messages. The result is that people are recognized for their work translating answers between languages, and users who only speak one language benefit.

We used to have multiple installs of phpBB. Not only was it a maintenance nightmare, it didn’t encourage quality discourse the way our current system does.

We architected our solution in Drupal as follows:

  • Allow the user to select the language to see in the UI. Discourse can do this now.
  • Allow the user to select languages in which they want to see content.
  • Filter the forums that are displayed based on their language setting. In Discourse this would probably be a special tag.
  • When content is posted in a forum, it inherits the language of that forum.
  • Moderators can be assigned for specific languages. In practice, I think this turned out to be an anti-feature.

To implement this in Discourse, I think you would:

  • Create a special type of tag called Language, and require one per post.
  • Modify the user profile to track “languages undestood”.
  • Filter the UI based on the “languages understood” and the Language tags.

When broken down in this manner, I think it can be implemented in a way that doesn’t disrupt the rest of the system.

My team is evaluating deploying Discourse in 2015, and could either implement this, or pay to have it implemented. I think this feature is the last obstacle to my being able to commit the team to move forward with Discourse. We currently have no experience with developing on Discourse or its component technologies, so if someone experienced wants us to sponsor their work on this feature please contact me with a proposal.

Can we add the “Feature” tag to this topic?

9 Likes