diff --git a/customize.dist/messages.js b/customize.dist/messages.js index 579dcd31e..0fb495bb2 100755 --- a/customize.dist/messages.js +++ b/customize.dist/messages.js @@ -35,11 +35,10 @@ var getStoredLanguage = function () { return localStorage && localStorage.getIte var getBrowserLanguage = function () { return navigator.language || navigator.userLanguage || ''; }; var getLanguage = Messages._getLanguage = function () { if (window.cryptpadLanguage) { return window.cryptpadLanguage; } - try { - if (getStoredLanguage()) { return getStoredLanguage(); } - } catch (e) { console.log(e); } var l = getBrowserLanguage(); - // Edge returns 'fr-FR' --> transform it to 'fr' and check again + try { + l = getStoredLanguage() || getBrowserLanguage(); + } catch (e) { console.log(e); } return map[l] ? l : (map[l.split('-')[0]] ? l.split('-')[0] : (map[l.split('_')[0]] ? l.split('_')[0] : 'en')); diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 5184833c7..dfa949eb6 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -1671,6 +1671,10 @@ define([ var lang = (window.cryptpadLanguage || navigator.language || navigator.userLanguage || '').slice(0,2); + let username = Util.find(privateData, ['integrationConfig', 'user', 'name']) + || metadataMgr.getUserData().name + || Messages.anonymous; + // Config APP.ooconfig = { "document": { @@ -1694,8 +1698,8 @@ define([ }, "user": { "id": String(myOOId), //"c0c3bf82-20d7-4663-bf6d-7fa39c598b1d", - "firstname": metadataMgr.getUserData().name || Messages.anonymous, - "name": metadataMgr.getUserData().name || Messages.anonymous, + "firstname": username, + "name": username }, "mode": "edit", "lang": lang diff --git a/www/common/sframe-app-outer.js b/www/common/sframe-app-outer.js index b1210796f..b634f51b4 100644 --- a/www/common/sframe-app-outer.js +++ b/www/common/sframe-app-outer.js @@ -17,7 +17,9 @@ define([ nThen(function (waitFor) { DomReady.onReady(waitFor()); }).nThen(function (waitFor) { - var obj = SFCommonO.initIframe(waitFor, true, integration.pathname); + let lang = integration && integration.config && integration.config.editorConfig + && integration.config.editorConfig.lang; + var obj = SFCommonO.initIframe(waitFor, true, integration.pathname, lang); href = obj.href; hash = obj.hash; if (isIntegration) { diff --git a/www/cryptpad-api.js b/www/cryptpad-api.js index cdbf7f8dd..d7d2ac7e2 100644 --- a/www/cryptpad-api.js +++ b/www/cryptpad-api.js @@ -116,7 +116,8 @@ application: config.documentType, document: blob, ext: config.document.fileType, - autosave: config.autosave || 10 + autosave: config.autosave || 10, + editorConfig: config.editorConfig || {} }, function (obj) { if (obj && obj.error) { reject(obj.error); return console.error(obj.error); } resolve({}); diff --git a/www/integration/main.js b/www/integration/main.js index fe3ffd010..a09592d3b 100644 --- a/www/integration/main.js +++ b/www/integration/main.js @@ -155,7 +155,12 @@ define([ chan.on('START', function (data) { console.warn('INNER START', data); var href = Hash.hashToHref(data.key, data.application); - console.error(Hash.hrefToHexChannelId(href)); + + if (data.editorConfig.lang) { + var LS_LANG = "CRYPTPAD_LANG"; + localStorage.setItem(LS_LANG, data.editorConfig.lang); + } + window.CP_integration_outer = { pathname: `/${data.application}/`, hash: data.key, @@ -163,7 +168,8 @@ define([ initialState: data.document, config: { fileType: data.ext, - autosave: data.autosave + autosave: data.autosave, + user: data.editorConfig.user }, utils: { onReady: onReady,