Rise - Language and labels editing

I have two questions regarding labels and course language.

First, the language - I'm making course in my native language (PL in this case). I select labels for my language in rise course process making. It works almost as it should - my labels are (mostly) polish in published course.

However, the html lang is set to en. I rememeber that changing this by hand to lang="pl-PL" solved the problem earlier. Now it doesn't work. I've found in the main.bundle.js file that this is now dynamically updated from label "iso639Code". That's the issue because for example Chrome automatic translation is based on this, so I'm getting a notice that I can translate my polish course to polish from english.

And now we are moving swiftly to second problem (which will solve the first one) - the labelSet. Labels are set when making course in rise, that's why most of the course is properly translated (like buttons, lesson x of y etc.). Labels are stored in three places:
1) The default, english ones inside main.bundle.js, I guess in case something goes wrong.
2) In plain text inside index.html, in window.labelSet
3) In encoded base64 text in window.courseData - and that is the set that is used by default.

Now my question is, if you don't want to dig deeper, can you make Rise use the window.labelSet plain text instead of the window.courseData labelSet?

Now to elaborate more:
The 3) labels set is being used by default. That means, if you change something within encoded base64, it will occur inside your course. For example, you can decode the whole courseData, change the iso639Code to "pl-PL" in that decoded output, encode it again, replace inside index.html and woosh, the course has now proper lang="pl-PL" (for my case of course).

But that's neckbreaking, if you need to do it for every course. And also, you can notice I wrote "my labels are (mostly) polish in published course" - because some of them are not. For example, aria-labels for Accessible courses. Take the Video player explaination - it is written in english, in case 1) 2) and 3), and you cannot change that when producing course on Rise platform. You must decode the courseData and change that inside labelSet. Man, that's a lot of time and there's high chance that you will make a mistake and break your course.

So my idea is simple - make Rise use 2) instead of 3) for labels. You can change labels in plain text, which is easy for even beginner user. Can this be somehow achieved?

4 Replies
Mateusz Szuter

There's no need to upload any file, really. It's not file specific this case :) There are missing translations that are not easily accessible to translate.

You can easily look up the content of index.html file after publishing rise. There are labels that aren't translatable directly in Rise webapp.

In line 84 in index.html file there is window.labelSet variable, which has some labels translated that shows in Rise Webapp, for example "result":"wynik","search":"szukaj" and then there are some labels that are not translated like "audioPlayerGroup":"Audio player. You can use the space bar to toggle playback and arrow keys to scrub." or even "buttonGroup":"Button" (all buttons in course will be read as button, in english, not as a translated "przycisk" like I'd love to) and these are not present in labels settings in Rise webapp.

That's normally not a big problem, but if you want your course to be accessible (WCAG standard), these labels are being read by NVDA/JAWS reader. So, these cannot be translated via Rise webapp and I end with half polish half english course. BTW it's more than a half of labels that aren't translated.


All that could be manually translated by me, but the window.labelSet in line 84 is ignored, because labels are once again stored in window.courseData. They are encrypted to base64. Thus it's really painful to edit them.

What I'd like to do is to tell 'published rise' to use window.labelSet translation instead of the encrypted one in window.courseData. This way I can easily change the labels.

I really understand why not every of these label is directly translatable via Rise Webapp, there are MANY of them. And most cases it's not even necessary.

Proper html language matter is tied to this. The label "iso639Code" is set default to "en", with window.labelSet it could be easily set to whatever I want.

There should probably be some developer way to switch to using window.labelSet instead the hardcoded ones, yes?