diff --git a/electron/createWindow.js b/electron/createWindow.js index 16e98327e..dd7f4d0be 100644 --- a/electron/createWindow.js +++ b/electron/createWindow.js @@ -2,10 +2,10 @@ import { WEBPACK_ELECTRON_PORT } from 'config'; import { app, BrowserWindow, dialog, shell, screen } from 'electron'; import isDev from 'electron-is-dev'; import windowStateKeeper from 'electron-window-state'; +import SUPPORTED_LANGUAGES from 'constants/supported_languages'; import setupBarMenu from './menu/setupBarMenu'; import * as PAGES from '../../ui/constants/pages'; -import setLanguage from './setLanguage'; export default appState => { // Get primary display dimensions from Electron. @@ -86,10 +86,9 @@ export default appState => { deepLinkingURI = ''; } - window.loadURL(rendererURL + deepLinkingURI); setupBarMenu(); - setLanguage(window); + window.loadURL(rendererURL + deepLinkingURI); window.on('close', event => { if (!appState.isQuitting && !appState.autoUpdateAccepted) { @@ -125,12 +124,25 @@ export default appState => { } ); }); + window.once('ready-to-show', () => { window.show(); }); window.webContents.on('did-finish-load', () => { window.webContents.session.setUserAgent(`LBRY/${app.getVersion()}`); + + // restore the user's previous language - we have to do this from here because only electron process can access app.getLocale() + window.webContents.executeJavaScript("localStorage.getItem('language')").then(storedLanguage => { + const language = + storedLanguage && storedLanguage !== 'undefined' && storedLanguage !== 'null' + ? storedLanguage + : app.getLocale().slice(0, 2); + if (language !== 'en' && SUPPORTED_LANGUAGES[language]) { + window.webContents.send('language-set', language); + } + }); + if (isDev) { window.webContents.openDevTools(); } diff --git a/src/platforms/electron/setLanguage.js b/src/platforms/electron/setLanguage.js deleted file mode 100644 index a8db87a0d..000000000 --- a/src/platforms/electron/setLanguage.js +++ /dev/null @@ -1,22 +0,0 @@ -import SUPPORTED_LANGUAGES from '../../ui/constants/supported_languages'; - -export default async function setLanguage(window) { - const storedLanguage = await window.webContents.executeJavaScript("localStorage.getItem('language')"); - const lang = storedLanguage || app.getLocale().slice(0, 2) || 'en'; - const supportedNonEnglish = Object.keys(SUPPORTED_LANGUAGES).filter(language => language !== 'en'); - - if (supportedNonEnglish.includes(lang)) { - fetch('https://lbry.com/i18n/get/lbry-desktop/app-strings/' + lang + '.json') - .then(response => response.json()) - .then(json => { - const messages = {}; - messages[lang] = json; - window.webContents.send('language-set', messages, lang); - }) - .catch(error => { - window.webContents.send('language-set', {}, lang, error); - }); - } else { - window.webContents.send('language-set', {}, lang); - } -} diff --git a/static/app-strings.json b/static/app-strings.json index fd6bb0771..1651d7378 100644 --- a/static/app-strings.json +++ b/static/app-strings.json @@ -860,5 +860,6 @@ "No results for %query%": "No results for %query%", "You haven't downloaded anything from LBRY yet.": "You haven't downloaded anything from LBRY yet.", "Explore new content": "Explore new content", - "Use this address to receive LBC.": "Use this address to receive LBC." + "Use this address to receive LBC.": "Use this address to receive LBC.", + "Embedded": "Embedded" } diff --git a/static/index-electron.html b/static/index-electron.html index 6af12eb1d..dcd2dd244 100644 --- a/static/index-electron.html +++ b/static/index-electron.html @@ -7,22 +7,6 @@
- +