If you enable the
allow user locale and
set locale from accept language header Discourse settings (both are found near the top of the “Basic Setup” settings) users will have their language automatically set to the locale that is set on their web browser when they first register on the site. For many cases this would work to set the proper language for a user.
Discourse doesn’t have an option to allow users to manually select their language when they register their account. I can see how this would be a useful feature for some sites though.
As long as the
allow user locale site setting is enabled, users can change their locale after signing up for the site. This is done from the Interface section of the user’s preferences page:
There are some existing discussions on Meta about multi-lingual sites. There are a few ideas in this topic that could be helpful: How to structure a multilingual community.