Make a multi-language forum

Recently I saw a talk from Massimo Banzi. He have argued that even if it is a bit the mess, people should have the right to speak in their own language and not in english. Actually, the Arduino community is quite successful and has a multi-language forum/documentation so it seems to work.

Here there are discussions about having multi-forum per language or multi-language for this forum but I did not find any people feedback about enabling multi-language discussions on one forum.

So what is for you, the best and efficient way to do it with Discourse?
Basically, do you think it is better to use category per language or tag/language ? Or several english categories + languages categories (similar to the arduino forum) ?

I would need at least English-French-Spanish-Italian-German.


We have a site setting to enable per-user-locale you could use that. It was contributed by the community so your mileage may vary.

I do worry about this kind of community though, lots of duplication / confusion can ensue.


Yep I saw that while looking on meta, it is a great feature.

Me too and until now we enforced english in our forum. Yet our community is more and more composed by education people (instructor and students) and they are not confortable with english, therefore they do not dare to participate. So it is better to have no contribution or duplication ?

I can beta-test the multi-language discourse if you want :slight_smile:

I’m really interested too, I can do some test if you want :slight_smile:

I have set up the “multi-language” by adding extra categories for non-english people on our forum but I am not yet convinced… It is a bit weird to have a “whatever category” for non-english people and thematic categories for english.

Yet here are the features we have added:

1 Like

You’re right, it’s weird :-/

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?


Our community is most base on non-english speakers (almost italian) and this feature can do the job very well. How can I contribute to this?

Anyone interested? The only way is use a category named “Italian”, isn’it?

The second I think. I quote every word :wink:


In my opinion and in practice, a multi-language forum works perfectly well if the software supports it. I have a multi-language forum running on Drupal, and the language part of it is handled extremely well by Drupal. (I wish the same could be said of the forum functionality…) Drupal uses “taxonomy” terms for the forum categories, and it allows the same term numbers to be used across all languages, and only the name and description of the term needs to be translated. Then, based on the subdomain (,, etc.) it switches the site language and filters the terms (categories) and nodes (posts) to only show the ones in the appropriate language. I have moderators for each language, and it works like a charm.


I think the work on tagging will be very useful in this effort.


Can we expand a bit? How can I use category and subcategory for not be “a bit weird”
Any experience or example?

I’m currently giving a try with the tag plugins so we can keep normal categories but add tag option to specify the language used.
In addition it allows using multiple langage in the same topic, so people can translate their own posts…

I do not know if it will work or not …

example with country flags:

I like what you have going on at the poppy-project. Interesting side effect using chrome, it recognized that the post was in French and offered to translate. That worked perfectly and form then on… the rest of all of the pages automatically were translated until I manually clicked the translate option to get it to show the original again. I also think it may have been translating some of the English posts (moved around some of the text). But overall it gave me the sense that the entire community could seamlessly participate in the conversation.

Do you have the per-user-locale enabled on your site?


Yes but very few people goes in the setting.

Maybe a complementary option would be to add a field at the sign up to let user specify its preferred language.


Hi, I am interested in how this is going.

It seems to me the most obvious usage is to

  • Have a tag for the languages
  • Keep the categories the same
  • Use “reply as linked” to create English version of a question not yet answered in English (requires a translator)
  • Use a link in the text to refer to and translate an already answered question (requires a translator)

It strikes me that this is related to This topic about marking posts as SOLVED because the translator should not have to search too much, only translate.

I would be interested to hammer out a process for this (here is an example of a process) which can be recycled. I could make a diagram :smiley:

1 Like

For me the use of tags allows having multiple language so you can directly have multiple content in the same topic.

sorry I posted in wrong place, moved it now

We are working on something like this here: It is just getting started. There is not much to see yet.

We are going to try to have Dari (Persian) and English of the same forum. My hope is that we can create a ‘translation’ tag, and use that in direct replies to posts. The translations will be set as wikis to be edited by the community.

We have some issues to work out with mixing left-to-right and right-to-left layouts in the same forum.