How to add "server" locales
-
I haven't tried that myself, however you should not change the locale on the server as such. It will also have no effect on the app instance in question. You would have to change it inside the container and it looks like, that the app package needs some tweaking to support changing it in a persistent way as well as regenerating locale assets after changing.
-
@nebulon indeed I've added the nl_NL.UTF-8 locale as an extra locale to the server (not the default!):
sudo locale-gen nl_NL.UTF-8 Generating locales (this might take a while)... nl_NL.UTF-8... done Generation complete.
Restarted the app and same issue.
Inside the app command line I did a
locale -a
and the result is:/app/code# locale -a C C.UTF-8 POSIX
-
@nebulon said in How to add "server" locales:
You would have to change it inside the container and it looks like, that the app package needs some tweaking to support changing it
Its probably easier to just define some focus languages and to add them directly into the base image. There are some other applications that also depend on system locales so it would imho make not much sense to have an individual locale selection in all apps.
-
@fbartels said in How to add "server" locales:
Its probably easier to just define some focus languages and to add them directly into the base image
Yes, this is the approach I have taken with some of the packages where I just hardcoded the popular locales (and just add new ones if someone requests it).
-
We found that there is a locales-all package that magically has all the locales. Bloats the base image a bit but it benefits all apps.
@imc67 Just testing the new base image with a few apps, will publish moodle once we have the required 'confidence' with the new image.
-
@imc67 Maybe this post - https://moodle.org/mod/forum/discuss.php?d=312709 . Which led me to this bug - https://tracker.moodle.org/browse/MDL-50364 (it's still not fixed)
-
@girish in the Moodle forum every question regarding this issue seemed to be solved, so it doesn’t look like there is a Moodle issue:
https://moodle.org/mod/forum/discuss.php?d=390750
I tried some of the solutions but of course get stuck on the ReadOnly situation in the app.
-
@girish I see Bitnami solved this in their Docker container with this:
https://github.com/bitnami/bitnami-docker-moodle/commit/16f468b9b78528df529c6314043d25a96b690d53
It’s too technical for me but perhaps you can find out if this is also a solution for Cloudron?
-
@imc67 said in How to add "server" locales:
@girish in the Moodle forum every question regarding this issue seemed to be solved, so it doesn’t look like there is a Moodle issue:
Correct me if I am wrong but I think there are two separate issues we are talking about here. One is there being a warning about "Your server does not support the following languages" (also reported in the forum post you linked). This is the issue you initially had and in the latest base image this should be fixed. I tried installing some language package on moodle and I did not see that warning. Are you still seeing this warning?
The second issue is calendar not being translated. I think this is a moodle issue. Atleast that's what https://tracker.moodle.org/browse/MDL-50364 is about. Do you have happen to have a bitnami install where you can check if the calendar is indeed translated. Also, to clarify, for me here only the month names are not translated. Everything else including day of the week is translated to dutch.
-
@imc67 OK, I found more info here
https://github.com/bitnami/bitnami-docker-moodle/issues/120
https://docs.moodle.org/dev/Translation_FAQ#The_month_names_and_days_are_displayed_in_English._How_can_I_translate_them.3FThose do point to some Cloudron package issue after all. Let me investigate.
-
@imc67 I have narrowed down the problem atleast. Something is making the whole locale system to not work in the image.
<?php setlocale(LC_TIME, "C"); echo strftime("%A"); setlocale(LC_TIME, "fi_FI"); echo strftime(" in Finnish is %A,"); setlocale(LC_TIME, "fr_FR"); echo strftime(" in French %A and"); setlocale(LC_TIME, "de_DE"); echo strftime(" in German %A.\n"); ?>
The above code simply doesn't translate anything and everything is in english. The code works let's say in https://www.codephponline.com/ correctly.
I have to debug tomorrow as to why php is not detecting locale data properly.
-
In the base image, the locale date is clearly there.. So, it's something PHP related.
root@bc1f77223f4e:/# date Mi 10. Feb 08:53:44 UTC 2021 root@bc1f77223f4e:/# export LC_ALL=fi_FI root@bc1f77223f4e:/# date ke 10.2.2021 08.54.01 +0000 root@bc1f77223f4e:/# export LC_ALL=fr_FR root@bc1f77223f4e:/# date mer. 10 f�vr. 2021 08:54:10 UTC