Hi everyone. This is going to be a long post as I try to be specific about the details so the problem is clear. Sorry and thanks for any replies in advance! : )
Recently I’ve faced the issue of having users with different languages that I want to show openedx to them in their own language. Yes we can set the language of the course but I need to land the user on an openedx site with his language so the user sees everything in his own language and doesn’t need to set language from profile.
As we are using an SSO, the signup process is happening outside of openedx, so we know the language of each user. For registering users in openedx, we’re relying on the auto enroll feature and SSO but we never face users with openedx login / register page. The entire auth and payment process happens outside of openedx.
So, until the user hasn’t clicked on a course link (which we give him somewhere outside of openedx) for the first time, he just exists in the course allowed enrollments as his user still does not exist in openedx. But when he just once clicks on a course link, he is redirected to openedx, his account is created, and is enrolled and redirected to the course automatically.
Now I need to set language of the user somewhere in this process. As far as I know SAML can’t do this and as I’m not sure whether the user exists at the point of getting redirected to openedx or not, using the /api/user/v1/preferences/{username}/{preference_key}
endpoint can’t be a solution. Also sending headers like edx-lang-preference
and Content-Language
on the redirect request, only apply to one page and not to the entire site.
Looking for solution I came across this topic that introduced me to openedx sites which sounds like a good solution but I’m not sure how this works with tutor.
So, any opinions on how multiple sites work with Tutor? Is it right? What if we want to go for a SaaS like solution?
Or am I entirely in the wrong path and my original issue with multiple languages can be solved in a better way without multiple sites?