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.
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 (en.example.com, es.example.com, 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’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 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?
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.
What I’d love to see is facebook-like inline translation of posts, so users can choose their locale (ideally at signup) and then translate in line when they see something in another language that they want translated.
Something like this was built but doesn’t seem to be working/active.
I just had a thought. What if a (special) tag could be set as a site-wide filter, invisible as anything other than a setting. The setting being your standard language selection menu in a corner somewhere:
Here’s how you would use tags on a multi-lingual site
Imagine a website with two languages: English and French.
The site’s default language is English. As a result, by default, all new topics are tagged lang:en, and you can only see topics tagged lang:en. This isn’t a tag you can find and select from the taglist yourself.
If you change the site language to French however, two things happen:
Any new topic you make while the French language setting is turned on will be tagged with lang:fr.
You will only be able to see topics tagged lang:fr
What if all languages were together on the same page, but the user could expand and collapse posts based on their language tag? So if a user selected ‘German’ they would see full posts that were in German or had been translated to German. All other posts would be displayed as titles.
There could also be a tag for posts that are in need of translation.
It would be nice to have the option to create translations through different methods. Machine translation of Persian and Arabic doesn’t seem to be very good
As someone who was involved in that earlier debate, I am really excited to see this level of UX sophistication being applied to this concept.
I love the idea of language tags to identify the language of the post, but I think the default behavior of such a site should be multi-lingual. All posts are displayed for all users by default, and users could choose to mute out posts of one language or another. But it wouldn’t make sense to mute out a langauge in my context (montreal) because people want to be able to converse in both languages interchangably.
The question of a translation feature - automatic or contributed - i think is separate but related. The best UX for post translation i’ve seen is Facebook’s: a small ‘see translation’ link underneath a post that displays an automatic translation when clicked. I don’t know if that would make sense for a multi-lingual Discourse.