When in French, parts of the interface are in English, like all the texts in the side panels or the word and character counters at the bottom below a document. I’m writing a website which embeds Collabora CODE. Did I miss something?
Hi Frasq,
Welcome here!
And the problem you describe, does exist. If some strings are not yet translated - in your example to French - the English words are displayed. Not ideal, but better then nothing I would say.
Just yesterday I was translating a few new strings to Dutch, and also saw older ones that were still not done… and as a consequence displayed in English in the product…
Hope this clarifies the situation.
Cor
What Cor described could be one reason, but more likely is that just the localization packages required for tunneled dialogs/sidebar hasn’t been installed, see the solution under Localization here:
https://sdk.collaboraonline.com/docs/installation/Installation_from_packages.html
I had the dictionary in French but I had missed the step to install the localization of the dialogs. I just did a apt install collaboraofficebasis6.4-fr
, restarted the service just in case, but the dialogs are still in English. Here is a snapshot:
The menu bar and the control bar with all the buttons are in French but the side bar, the spellcheck dialog for instance and the counters at the bottom are in English.
That must be a problem with the lang
parameter you pass in the URL when invoking CODE, then, can you share that?
This is what the UI looks like in French (except this is set to use notebookbar and not classic toolbar):
If I add lang=fr to the URL, everything is fine.
If I don’t add lang=fr to the URL, the problem shows up. If I dump $_SERVER['HTTP_ACCEPT_LANGUAGE']
in the code of the function which builds the document with the iframe, I get the string fr-FR,fr;q=0.8,en-US;q=0.5,en;q=0.3
, which seems alright.
Here is the document generated by the server:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="generator" content="iZend" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<style>
html, body {height:100%;}
body {display:flex;flex-direction:column;margin:0;padding:0;}
#collabora {display:flex;flex-direction:column;width:100%;flex-grow:1;border:none;}
@media print {
html, body {display:none !important;}
}
</style>
<title>Collabora</title>
</head>
<body>
<iframe id="collabora" name="collabora" allowfullscreen="true"></iframe>
<form action="https://collabora.local/loleaflet/dist/loleaflet.html?WOPISrc=https://local.collaboractor.com/wopi/files/525089" method="post" target="collabora" style="display:none">
<input name="access_token" value="179a5ba5d8710ccb3005d012b669c253" type="hidden" />
<input name="access_token_ttl" value="0" type="hidden" />
<input type="submit" />
</form>
<script>
document.querySelector('form').submit();
</script>
</body>
</html>
The form is submitted by the line of code in JavaScript. If I dump $_SERVER['HTTP_ACCEPT_LANGUAGE']
on the server in the code which replies to the POST, nothing!
Based on the comment in Translation volunteering - #7 by frasq I presume this is now resolved, right?
Problem solved if you consider that the lang parameter is mandatory. In my opinion, there is a bug when the appropriate language is guessed from the HTTP header of the request.