What are best practices for providing change language options on multilingual site

My site has a multilingual audience. The site (WatStory) is a writing/ blogging and reading community and supports 3 languages (English, Hindi, Bengali) right now. Content is largely user generated.

I am offering a "Change Language" button in the top bar which can be used by the users.

If "non-logged" user selects a language from this option, the site copy/ menus are changed to user chosen language and only content/posts that have been originally created in that language and associated tags are shown.The user can read the posts created in selected language.

If the user logs in for the first time, the language defaults to English even if user was using site in some other language before login (Think this is okay as users know English). (Seen Facebook do the same as site viewing language initially before login may be different than user setting language)

Post login user can use the same "Change Language" option in the top bar to select the language to write or read in. The next time user logs in the language defaults to the language they were using at time of last logout.

I am segregating the user generated content across languages and content is not being translated due to the kind of content. There is no separate option for user to specify language in user settings, the top bar "Change Language" is it. Need to understand if there are any UX best practices to offer these change language options and provide good UX for multilingual experience.