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