From a36841e501d59aa54df2b2d6bf3ebe9759b3e7c5 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 6 Mar 2018 15:04:04 +0100 Subject: [PATCH] Implemented language switch in Interface Config Tab --- browser/main/Main.js | 10 ++- browser/main/lib/ConfigManager.js | 9 +++ browser/main/modals/PreferencesModal/UiTab.js | 18 +++++- locales/de.js | 7 ++- locales/en.js | 7 ++- locales/fr.js | 61 ++++++++++++++++++- 6 files changed, 106 insertions(+), 6 deletions(-) diff --git a/browser/main/Main.js b/browser/main/Main.js index f9be6085..f05ad52d 100644 --- a/browser/main/Main.js +++ b/browser/main/Main.js @@ -14,6 +14,7 @@ import mobileAnalytics from 'browser/main/lib/AwsMobileAnalyticsConfig' import eventEmitter from 'browser/main/lib/eventEmitter' import { hashHistory } from 'react-router' import store from 'browser/main/store' +import i18n from 'browser/lib/i18n' const path = require('path') const electron = require('electron') const { remote } = electron @@ -148,7 +149,14 @@ class Main extends React.Component { } else { document.body.setAttribute('data-theme', 'default') } - + if (config.ui.language === 'en') { + i18n.setLocale('en') + } else if (config.ui.language === 'de') { + i18n.setLocale('de') + } else { + i18n.setLocale('fr') + } + // Reload all data dataApi.init() .then((data) => { diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index e7e82a9b..0d4730fe 100644 --- a/browser/main/lib/ConfigManager.js +++ b/browser/main/lib/ConfigManager.js @@ -1,5 +1,6 @@ import _ from 'lodash' import RcParser from 'browser/lib/RcParser' +import i18n from 'browser/lib/i18n' const OSX = global.process.platform === 'darwin' const win = global.process.platform === 'win32' @@ -132,6 +133,14 @@ function set (updates) { document.body.setAttribute('data-theme', 'default') } + if (newConfig.ui.language === 'en') { + i18n.setLocale('en') + } else if (newConfig.ui.language === 'de') { + i18n.setLocale('de') + } else { + i18n.setLocale('fr') + } + let editorTheme = document.getElementById('editorTheme') if (editorTheme == null) { editorTheme = document.createElement('link') diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index 2e6ae7e1..f2132bdf 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -62,6 +62,7 @@ class UiTab extends React.Component { const newConfig = { ui: { theme: this.refs.uiTheme.value, + language: this.refs.uiLanguage.value, showCopyNotification: this.refs.showCopyNotification.checked, confirmDeletion: this.refs.confirmDeletion.checked, disableDirectWrite: this.refs.uiD2w != null @@ -168,6 +169,21 @@ class UiTab extends React.Component { + +
+ {i18n.__('Language')} +
+ +
+
+
diff --git a/locales/de.js b/locales/de.js index 6bd695e0..f3adcdb7 100644 --- a/locales/de.js +++ b/locales/de.js @@ -90,5 +90,10 @@ "If you like this project and see its potential, you can help by supporting us on OpenCollective!": "If you like this project and see its potential, you can help by supporting us on OpenCollective!", "Thanks,": "Thanks,", "Boostnote maintainers": "Boostnote maintainers", - "Support via OpenCollective": "Support via OpenCollective" + "Support via OpenCollective": "Support via OpenCollective", + "Language": "Language", + "English": "Englisch", + "German": "Deutsch", + "French": "Französisch", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying" } \ No newline at end of file diff --git a/locales/en.js b/locales/en.js index d78c361f..0ea0f034 100644 --- a/locales/en.js +++ b/locales/en.js @@ -27,7 +27,6 @@ "Thanks,": "Thanks,", "Boostnote maintainers": "Boostnote maintainers", "Support via OpenCollective": "Support via OpenCollective", - "Thank you for using Boostnote!": "Thank you for using Boostnote!", "Make a note": "Make a note", "Ctrl": "Ctrl", "Notes": "Notes", @@ -92,5 +91,9 @@ "LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter", "LaTeX Block Open Delimiter": "LaTeX Block Open Delimiter", "LaTeX Block Close Delimiter": "LaTeX Block Close Delimiter", - ".html": ".html" + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French" } \ No newline at end of file diff --git a/locales/fr.js b/locales/fr.js index 9e26dfee..cfcca1a5 100644 --- a/locales/fr.js +++ b/locales/fr.js @@ -1 +1,60 @@ -{} \ No newline at end of file +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Toggle Mode": "Toggle Mode", + "Trash": "Trash", + "MODIFICATION DATE": "MODIFICATION DATE", + "Words": "Words", + "Letters": "Letters", + "STORAGE": "STORAGE", + "FOLDER": "FOLDER", + "CREATION DATE": "CREATION DATE", + "NOTE LINK": "NOTE LINK", + ".md": ".md", + ".txt": ".txt", + ".html": ".html", + "Print": "Print", + "Your preferences for Boostnote": "Your preferences for Boostnote", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Default", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "Show a confirmation dialog when deleting notes": "Show a confirmation dialog when deleting notes", + "Editor Theme": "Editor Theme", + "Editor Font Size": "Editor Font Size", + "Editor Font Family": "Editor Font Family", + "Editor Indent Style": "Editor Indent Style", + "Spaces": "Spaces", + "Tabs": "Tabs", + "Switch to Preview": "Switch to Preview", + "When Editor Blurred": "When Editor Blurred", + "When Editor Blurred, Edit On Double Click": "When Editor Blurred, Edit On Double Click", + "On Right Click": "On Right Click", + "Editor Keymap": "Editor Keymap", + "default": "default", + "vim": "vim", + "emacs": "emacs", + "⚠️ Please restart boostnote after you change the keymap": "⚠️ Please restart boostnote after you change the keymap", + "Show line numbers in the editor": "Show line numbers in the editor", + "Allow editor to scroll past the last line": "Allow editor to scroll past the last line", + "Bring in web page title when pasting URL on editor": "Bring in web page title when pasting URL on editor", + "Preview Font Size": "Preview Font Size", + "Preview Font Family": "Preview Font Family", + "Code block Theme": "Code block Theme", + "Allow preview to scroll past the last line": "Allow preview to scroll past the last line", + "Show line numbers for preview code blocks": "Show line numbers for preview code blocks", + "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", + "LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter", + "LaTeX Block Open Delimiter": "LaTeX Block Open Delimiter", + "LaTeX Block Close Delimiter": "LaTeX Block Close Delimiter" +} \ No newline at end of file