-
-
Notifications
You must be signed in to change notification settings - Fork 2k
OpenRefine displaying IDs instead of German translation #5750
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Could this possibly be related to missing entries at https://github.com/OpenRefine/OpenRefine/tree/master/main/resources/com/google/refine? If I use another language such as Greek ("el") or Filipino ("fil"), both of which have no entries under the above directory, then the same error occurs. In particular, the entries ".../grel/ControlDescription_XY.properties", ".../messages/OpenRefineMessage_XY.properties" and ".../operations/OperationDescription_XY.properties" are missing. |
Those files are only used for localization of the strings produced in the backend, but that's a just a fraction of the text you see in the interface. According to your screenshot the frontend translations are missing and that's the main problem. I can also reproduce it on my side and I get this log:
Normally the text should fall back on English if the desired language is not available, but that's not happening in your case. It's a pretty serious bug so I would be keen to fix it and release it in 3.7.2 soon. |
I think I can see the problem: it is indeed caused by extensions not having a German translation file. That should normally not be a problem, but here is what is happening:
|
This prevents failing i18n loads for extensions from changing the language of the rest of the interface, resulting in untranslated text (falling back to the message codes themselves). Closes OpenRefine#5750.
@wetneb why is it normally a problem? Also on this:
Why can't we load them all the time (as a default) so that English strings can be readily available when needed as a fallback? I thought we did it like that before, no? Did that change or is that a core bug? |
Good catch, I was missing a negation there. Fixed. |
The backend will insert the English translations as fallback when any other language is requested. The frontend does not know about this so it will treat all returned strings as belonging to the desired language instead. So if the frontend itself looks in its own cache for strings in English, it will not find those. It's quite messy indeed! One could remove the fallback mechanism from the backend and make sure it only happens in the frontend. But then we should make sure we don't create more HTTP requests for that language loading since it's already a pretty lengthy process to load them (and is happening in a synchronous way, so with a significant impact on page loading time). |
Hmm, we probably need to make the frontend... aware | smarter. And that way the fallback mechanism in backend can stay. |
* Fix locale loading in the frontend This prevents failing i18n loads for extensions from changing the language of the rest of the interface, resulting in untranslated text (falling back to the message codes themselves). Closes #5750. * Turn global variables into local ones
* Fix locale loading in the frontend This prevents failing i18n loads for extensions from changing the language of the rest of the interface, resulting in untranslated text (falling back to the message codes themselves). Closes #5750. * Turn global variables into local ones
OpenRefine doesn't display the German translation, instead the IDs are shown.
To Reproduce
Steps to reproduce the behavior:
OpenRefine 3.7.1
Language Settings
Deutsch
core-index/slogan
is written instead of the sloganCurrent Results
I'm seeing translation ids
Expected Behavior
I see the translation
Screenshots
Versions
The text was updated successfully, but these errors were encountered: