Closed blairdrummond closed 3 years ago
Looked into this while waiting for my image to build. Using one of my older images for testing Jupyter which had the Lang env variables set to French, as well as the French locale being installed I found that most of it was able to be internationalized with video demonstrating some of the options here.
I've taken a look through what we base this proj on as well as the actual noVNC project and there's almost nothing on i18n.
Having said that for the noVNC proj there are some language files (no French file, but it is pretty short) and these correspond to a few of the extra messages such as "Connected (encrypted) to" "Failed to connect to server" etc. Users would probably run into around 10 of the translations that are provided by the po file.
This matches with what Nancy was thinking of doing before she ran into issues with running and testing her changes
IF this approach is wanted, it is very likely a small change that fits with #48 as well as what Wendy has talked to me about PodDefaults and getting a language through there. I still need to check exactly which ENV needs to be set to French or English for the language to be applied but it may be a change in the init.sh to then change LANG
to fr_FR.utf8
or en_US.utf8
through an env var set through the PodDefault
Commenting for future Jose / whoever
Aside from the comment above, to get the vscode instance inside novnc remote desktop to display in French, similar to vscode in browser you need to add an argv.json
file but the path is now /home/jovyan/.vscode/argv.json
. If that file is there with say "locale":"fr"
then upon starting up you will be greeted with vscode, but in French
7/12/2020: This file does not matter. It gets covered by the export LANG..etc
phrases. The user can still change the display language to English if they want. But the default is determined by the start-vnc-server
file where once a user hits the landing page, the browser language is checked, if it does not match 'en' then vnc needs to be killed, and then restarted to get to French.
Similar to other implementations of i18n in remote desktop, to have the noVNC change language (as seen in the video above) while the user is connected is to have some sort of export LC_ALL=fr_FR
or en_EN in the start-vnc-server. This would likely again read from the argv.json
file used by vscode.
The service would just need to be killed when the browser language and a refresh on the landing page followed by an auto-restart courtesy of supervisord. The 'kill' of the service is a shell command of kill $(lsof -t -i:5901)
where5901 is the port that the vnc_server runs on. The default signal sent by kill
is the SIGTERM
which is trap
ped by line 33 to have the shutdown signal be sent.
All apps so Vscode, Firefox, LibreOffice Calc, Netdata should be starting in French. Again leverage Wendy's work on passing an environment variable in. For now, test with manually setting environment variables to French and seeing what else needs to be done
VSCODE: Requires the LANG to be fr_FR
Firefox: Requires an if in firefox.sh
to get the right installation of FF, if LANG == fr_fr... then French install else English
Netdata: No plans for multilingual support and as noted by the comments, they have moved away from the localization project which is now a read-only repo
LibreOffice: pretty simple. just need to add apt-get install libreoffice-help-fr libreoffice-l10n-fr
after the apt-get install libreoffice...
area and the locales will take care of it. I have made the locales "english" while keeping the apt-get install
line in and it was English (and with locales being French it would start in French)
Programs which have translations and I know how to access
Programs which have translations but I don't know how to leverage them yet
These are essentially the programs whose projects have a .po
file for the French langauge
Programs which do not have translations
Netdata: see above comment, no planned support
glogg: log explorer, has not been updated in 2 years a PR adding Chinese has 0 activity
Some extra messages which currently do not have FR translations here. Would need to create and put this json under resources/novnc/app/locale/fr.json in the container
Attempting to set the locales of the ENV at a deeper level because when I replaced the en_US with fr_FR some configuration settings stayed "English"
The item that I thought was the big cheese was when you ran debconf-show locales
and the result would be
"None" for default_environment_locale
However, even after getting it to show up as "fr_CA" applications continued to stay in English
As well as looking at /etc/locale.gen where fr_CA is uncommented out and of course in /etc/default/locale
Sources tried were wiki.debian (did not try the optional part). Looked again at the SO post in the code, confirming checking locale in the env and going through files
Set up my own xfce4 in a vm and was able to get it into French by selecting "French" at install and it modified the two files I expected. still has the application menu in French Locales
Grasping a bit and looked at novnc. I don't think there's anything here unless there's some setting in our setup that has the current novnc installation take precedence over the xfce4 variables in the remote desktop that makes thunar and them not be localized
Update, it appears that the localization will work on Ubuntu:16.04 but will not on Ubuntu:18.04. I found this out after checking Blair's image (which uses 16.04) with the current "locale" setting method and then trying it with the exact same image except using ubuntu:18.04.
Upon suggestion by Blair/Brendan will check about gtk2, gtk3, check out ubuntu:20.04 (should be updating anyways), KDE
Ok, well gtk2 support is dropped in xfce 4.16 so for now I'm going to try and update to that version (as well as Ubuntu 20.04) in my own smaller remote desktop project (goodbye insanely long build times) and see if that resolves it first. Edit: at least on ubuntu packages, for 20.04 its just version 4.14 for now. 4.16 was just released at the end of last year. Ubuntu 18 also only has packages up to 4.12
Have a way to get something like Thunar translated for sure. Just to try out I copied over an mo
file from my ubuntu:16.04
installation using Blair's image placing it in the /usr/share/locale-langpack/fr/LC_MESSAGES
folder
The mo
file can also be placed in the /usr/share/locale/fr_LC_MESSAGES
folder (in fact the mo
file for tigervnc is here) and it would have the same effect.
Also wild, I can use msgfmt messages.po -o messages.mo
for some applications that for whatever reason did not generate a mo
file in my ubuntu:16.04
(in my case it was gdebi).
I took the po
file from the gdebi project listed above, downloaded the fr.po
, ran it through doing msgfmt fr.po -o gdebi.mo
and copied it over and bam I have gdebi in French.
The total size of an mo
folder containing the translations would be around 2 mb.
Regarding the r and geomatics images Rstudio here is in a similar spot where the UI is not translated, only the console is. Geomatics with QGIS will work if the environment variables are set to French
Few outstanding areas of note related to these applications; Baobab (disk usage analyzer), EOG (Eye Of Gnome image viewer), DB Browser for SQLite.
For DB Browser, just the title is untranslated, everything else is IMO this is fine as it is the name of the application.
Baobab and EOG have the same issue where again the application title is in English only in the access area. Note that the descriptions for these two applications in the "Search for applications" area here is in English as well. I have the same feeling here as from above.
Things I have tried:
I have tried installing from a ppa repo to find a more "up to date" version but it did not help, I have tried giving the applications the most up to date mo
file and again no luck.
These are very easy to remove so if its not wanted gone.
See if we can configure bilingualism options in the remote desktop image.