English is an international language.
Everyone who is willing to participating an international discource should speak English at least little.
In the same time, a community launched in a non-English speaking country, has a different language, local to the territory.
This makes me think that bilingual forums are a special case and deserve special attention when compared to multilingual forums (3 and more languages).
… this also fits perfectly my case
We have recently discovered that English-speaking goat farmers have great interest in how Ukrainian goat farmers make cheeses. In the same time, our farmers are interested in professional breeding that English-speaking farmers are good at.
We are now faced with a challenge: keep our forum comfortable for Ukrainian goat farmers (as it always has been), and in the same time make it easy for English people to participate in some bilingual topics for knowledge and experience exchange.
So let me share my thoughts on a possible implementation.
An important note is that this is a professional community, so Google / Bing translations will not work. I experimented auto-translating some topics and it was a disaster. Not only some slang was an issue, but also grammatical errors in key words. This lead us to the idea that we would rather spend some resources on manual translation on the topics of interest only, and keep other topics Ukrainian/Russian only.
We’ve launched an experimental Q/A Session where both sides can ask questions and give answers.
People can write using their own language, while we translate their messages, so every message in this topic is bilingual:
These translations are curated / assisted, give it any name, but the point is that we do not translate automatically. There are some delays, but the quality goes up and the topic promises to be quite interesting. I invited some other users from English-speaking communities to participate, and some of them already expressed real interest in some topics in PMs and wish to participate.
This seems to be an interesting attempt, to start with. But now we need the UI to be improved just a little!
1. Collapsable sections per language
Discourse does already have a plugin to hide/show sections in posts. It would be great if there was a way to optionally assign some locale per section (an attribute in Markdown markup).
- If no locale assigned, it is always collapsed (the current default behaviour).
- If locale is assigned but is the only one section with locale in the message, it is expanded by default.
- If a few sections with locale are present, than only one is expanded by default - the one with the current user locale.
- In anonymous mode, all sections with locale are expanded by default.
- If no one section has the same locale as the current user’s one, the one with default website’s locale is expanded only by default.
- If no user locale matches, nor global setting locale matches, all sections with locales are expanded by default.
2. Add locale class to collapsable sections
.section-locale-ru {...}
.section-locale-en {...}
While on this, add locale class to the body
element as well
<body class="user-locale-ru">...</body>
This will allow to apply styles to sections that match current user locale only:
body.user-locale-ru .section-locale-ru {...}
3. Add language switcher in the header
This language switcher would allow to switch to English quickly before even trying to find Signup button. It would also assign the selected default language to user profile. As a workaround, we created a how-to topic to which we link from the original Q/A session topic. However, upon signup, new users receive Ukrainian welcome message, which is not good experience.
4. Make categories and topic names translatable by mods
This is more advanced feature.
As a workaround, we just named the topic in both languages:
(en) Q/A with Ukrainian goat farmers. (рус) Вопрос-ответ с англоязычными козоводами
Result
As a result:
- users can switch languages easily before registering
- users will see only sections in their languages expanded, while others collapsed
- if no translation available, the original section is expanded
The only thing I’m not sure about is how it will affect SEO.
Anyone keen on implementing such a functionality?
I would make it with pleasure on my own, but I’m nowhere near being a ruby programmer.