@neil Sorry it’s take so long to respond, but I’ve taken advanage of your work here in a new plugin I’m building to implement the feature set I laid out above. It uses a modified version of the structure you added to require all topics carry a langauge tag if a site setting is enabled. So, thank you!
More notes the 'multilingual plugin' (in development) if anyone is interested.
Hopefully the user interface is relatively self-explanatory, but a few notes on the nomenclature and current behavior:
Type “Base” means that the language is part of the “base list” of languages. Currently the base list is the full list languages in the Discourse codebase, specifically this list: https://github.com/discourse/discourse/blob/master/config/locales/names.yml. The plugin is built in such a way that the base list can be changed at a later date if need be (albeit with some minor code changes).
You’ll notice that a number of the “Base” list languages are listed has having “no translations”. This reflects the fact that the list of supported locales in Discourse is a subset of the list of languages in names.yml. No doubt, the goal is to add more supported locales over time, however this is dependent on the translation of Discourse into different locales (managed in Transifex).
You can add new languages by uploading a .yml file in the format:
iso_code: native name
iso_code: native name
...
You can include as made languages as you like in the file. You upload the file by clicking “Upload Languages” and selecting the .yml file. The list will automatically refresh with the new language added. Languages added in this way will show as type “Custom”.
You can sort the list by any of the headings (apart from “Actions”) by clicking on the heading. You can also filter the list using the filter input in the top left (one minor issue with this is that it refreshes on every character added; I will fix this later).
The checkboxes in the Content and Locale columns denote whether the language should be used as a content filter and / or locale. The locale management functionality is not yet complete so the checkboxes in that column will not function properly (and custom languages without locale translations will show a checkbox, instead of “no translations”).
The chexboxes in the Content column will change the availability of the content languages to users, i.e if this checkbox is disabled:
There will be no content language tag for that language listed in the content language selector in the composer.
A user will not be able to select the content language in their profile.
Note also that the user’s content language and locale selectors are grouped at the top of their interface settings.
Note also that the initialization of the language selector in the composer (i.e. adding the user’s content lanaguage by default) should now be working.
Note also that the site setting multilingual require language tag determines whether a language tag is required. It has three potential values: no (not required of anyone), yes (required of everyone), non-staff (required of non-staff).
Hello, I have take a look, what is the way to have this sort of structure ?
I understand that ‘other languages’ is a catégory and the différent languages are the sub-categories ?
Is that right ?
And contributors post here according to their own languages ?
so they can post all subjects without any theme ?
thank you
Does anybody think that it would be really great is to display all content and the interface to users in their native language?
AirBnB does this for years now: everybody writes in their own language and sees the responses in the language they write in.
This could be easily done technically with the Google Translate API, which to be honest, I find really impressive in how good it is.
I think the suggestions as well as the “multilingual plugin”, if I understood its function correctly, just leads to more segregation instead of removing the language barriers.
Of course, but as far as I can tell, this only translates the posts after a click on it - or does it also work automatically and I just haven’t out found how?