@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
Ne pensez-vous pas qu’il serait formidable d’afficher tout le contenu et l’interface aux utilisateurs dans leur langue maternelle ?
AirBnB le fait depuis des années : chacun écrit dans sa propre langue et voit les réponses dans la langue dans laquelle il écrit.
Cela pourrait être facilement réalisé techniquement avec l’API Google Translate, que, pour être honnête, je trouve vraiment impressionnante par sa qualité.
Je pense que les suggestions ainsi que le « plugin multilingue », si j’ai bien compris sa fonction, ne font que renforcer la ségrégation au lieu de supprimer les barrières linguistiques.
Bien sûr, mais d’après ce que je peux dire, cela ne traduit les publications qu’après avoir cliqué dessus - ou est-ce que cela fonctionne aussi automatiquement et je n’ai pas encore trouvé comment ?