diff --git a/browser/components/SideNavFilter.js b/browser/components/SideNavFilter.js index 2f839a84..06cfc19a 100644 --- a/browser/components/SideNavFilter.js +++ b/browser/components/SideNavFilter.js @@ -5,6 +5,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './SideNavFilter.styl' +import i18n from 'browser/lib/i18n' /** * @param {boolean} isFolded @@ -31,7 +32,7 @@ const SideNavFilter = ({ } /> - All Notes + {i18n.__('All Notes')} {counterTotalNote} @@ -45,7 +46,7 @@ const SideNavFilter = ({ } /> - Starred + {i18n.__('Starred')} {counterStarredNote} @@ -59,7 +60,7 @@ const SideNavFilter = ({ } /> - Trash + {i18n.__('Trash')} {counterDelNote} diff --git a/browser/lib/i18n.js b/browser/lib/i18n.js new file mode 100644 index 00000000..1f3c95c5 --- /dev/null +++ b/browser/lib/i18n.js @@ -0,0 +1,8 @@ +// load package for localization +const i18n = new (require('i18n-2'))({ + // setup some locales - other locales default to the first locale + locales: ['en', 'sq', 'zh-CN', 'zh-TW', 'da', 'fr', 'de', 'ja', 'ko', 'no', 'pl', 'pt', 'es'], + extension: '.json' +}) + +export default i18n diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 5c887b3d..ee38c27d 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -7,8 +7,6 @@ import ConfigManager from 'browser/main/lib/ConfigManager' import katex from 'katex' import {lastFindInArray} from './utils' -const config = ConfigManager.get() - function createGutter (str, firstLineNumber) { if (Number.isNaN(firstLineNumber)) firstLineNumber = 1 const lastLineNumber = (str.match(/\n/g) || []).length + firstLineNumber - 1 @@ -21,8 +19,9 @@ function createGutter (str, firstLineNumber) { class Markdown { constructor (options = {}) { + const config = ConfigManager.get() const defaultOptions = { - typographer: true, + typographer: config.preview.smartQuotes, linkify: true, html: true, xhtmlOut: true, diff --git a/browser/main/Detail/InfoPanel.js b/browser/main/Detail/InfoPanel.js index 44b9f09a..4ce610fa 100644 --- a/browser/main/Detail/InfoPanel.js +++ b/browser/main/Detail/InfoPanel.js @@ -3,6 +3,7 @@ import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './InfoPanel.styl' import copy from 'copy-to-clipboard' +import i18n from 'browser/lib/i18n' class InfoPanel extends React.Component { copyNoteLink () { @@ -19,7 +20,7 @@ class InfoPanel extends React.Component {

{updatedAt}

-

MODIFICATION DATE

+

{i18n.__('MODIFICATION DATE')}


@@ -29,11 +30,11 @@ class InfoPanel extends React.Component { :

{wordCount}

-

Words

+

{i18n.__('Words')}

{letterCount}

-

Letters

+

{i18n.__('Letters')}

} @@ -45,17 +46,17 @@ class InfoPanel extends React.Component {

{storageName}

-

STORAGE

+

{i18n.__('STORAGE')}

{folderName}

-

FOLDER

+

{i18n.__('FOLDER')}

{createdAt}

-

CREATION DATE

+

{i18n.__('CREATION DATE')}

@@ -63,7 +64,7 @@ class InfoPanel extends React.Component { -

NOTE LINK

+

{i18n.__('NOTE LINK')}


@@ -71,22 +72,22 @@ class InfoPanel extends React.Component {
diff --git a/browser/main/Detail/InfoPanelTrashed.js b/browser/main/Detail/InfoPanelTrashed.js index 6e86b884..db64a284 100644 --- a/browser/main/Detail/InfoPanelTrashed.js +++ b/browser/main/Detail/InfoPanelTrashed.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './InfoPanel.styl' +import i18n from 'browser/lib/i18n' const InfoPanelTrashed = ({ storageName, folderName, updatedAt, createdAt, exportAsMd, exportAsTxt, exportAsHtml @@ -9,24 +10,24 @@ const InfoPanelTrashed = ({

{updatedAt}

-

MODIFICATION DATE

+

{i18n.__('MODIFICATION DATE')}


{storageName}

-

STORAGE

+

{i18n.__('STORAGE')}

Trash{folderName}

-

FOLDER

+

{i18n.__('FOLDER')}

{createdAt}

-

CREATION DATE

+

{i18n.__('CREATION DATE')}

diff --git a/browser/main/Detail/PermanentDeleteButton.js b/browser/main/Detail/PermanentDeleteButton.js index fd5c731b..fa00ef17 100644 --- a/browser/main/Detail/PermanentDeleteButton.js +++ b/browser/main/Detail/PermanentDeleteButton.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './TrashButton.styl' +import i18n from 'browser/lib/i18n' const PermanentDeleteButton = ({ onClick @@ -10,7 +11,7 @@ const PermanentDeleteButton = ({ onClick={(e) => onClick(e)} > - Permanent Delete + {i18n.__('Permanent Delete')} ) diff --git a/browser/main/Detail/RestoreButton.js b/browser/main/Detail/RestoreButton.js index 0f9c992e..5d0186db 100644 --- a/browser/main/Detail/RestoreButton.js +++ b/browser/main/Detail/RestoreButton.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './RestoreButton.styl' +import i18n from 'browser/lib/i18n' const RestoreButton = ({ onClick @@ -10,7 +11,7 @@ const RestoreButton = ({ onClick={onClick} > - Restore + {i18n.__('Restore')} ) diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index d1557ba5..485728d7 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -26,6 +26,7 @@ import InfoButton from './InfoButton' import InfoPanel from './InfoPanel' import InfoPanelTrashed from './InfoPanelTrashed' import { formatDate } from 'browser/lib/date-formatter' +import i18n from 'browser/lib/i18n' function pass (name) { switch (name) { @@ -264,9 +265,9 @@ class SnippetNoteDetail extends React.Component { if (this.state.note.snippets[index].content.trim().length > 0) { const dialogIndex = dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Delete a snippet', - detail: 'This work cannot be undone.', - buttons: ['Confirm', 'Cancel'] + message: i18n.__('Delete a snippet'), + detail: i18n.__('This work cannot be undone.'), + buttons: [i18n.__('Confirm'), i18n.__('Cancel')] }) if (dialogIndex === 0) { this.deleteSnippetByIndex(index) @@ -507,8 +508,8 @@ class SnippetNoteDetail extends React.Component { showWarning () { dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Sorry!', - detail: 'md/text import is available only a markdown note.', + message: i18n.__('Sorry!'), + detail: i18n.__('md/text import is available only a markdown note.'), buttons: ['OK'] }) } diff --git a/browser/main/Detail/ToggleModeButton.js b/browser/main/Detail/ToggleModeButton.js index e2d143d4..c414a3e5 100644 --- a/browser/main/Detail/ToggleModeButton.js +++ b/browser/main/Detail/ToggleModeButton.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './ToggleModeButton.styl' +import i18n from 'browser/lib/i18n' const ToggleModeButton = ({ onClick, editorType @@ -13,7 +14,7 @@ const ToggleModeButton = ({
onClick('EDITOR_PREVIEW')}>
- Toggle Mode + {i18n.__('Toggle Mode')}
) diff --git a/browser/main/Detail/TrashButton.js b/browser/main/Detail/TrashButton.js index 474eb9e5..473c2d0b 100644 --- a/browser/main/Detail/TrashButton.js +++ b/browser/main/Detail/TrashButton.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './TrashButton.styl' +import i18n from 'browser/lib/i18n' const TrashButton = ({ onClick @@ -10,7 +11,7 @@ const TrashButton = ({ onClick={(e) => onClick(e)} > - Trash + {i18n.__('Trash')} ) diff --git a/browser/main/Detail/index.js b/browser/main/Detail/index.js index 2ae62514..df38132c 100644 --- a/browser/main/Detail/index.js +++ b/browser/main/Detail/index.js @@ -7,6 +7,7 @@ import MarkdownNoteDetail from './MarkdownNoteDetail' import SnippetNoteDetail from './SnippetNoteDetail' import ee from 'browser/main/lib/eventEmitter' import StatusBar from '../StatusBar' +import i18n from 'browser/lib/i18n' const OSX = global.process.platform === 'darwin' @@ -40,9 +41,9 @@ class Detail extends React.Component { const alertConfig = { type: 'warning', - message: 'Confirm note deletion', - detail: 'This will permanently remove this note.', - buttons: ['Confirm', 'Cancel'] + message: i18n.__('Confirm note deletion'), + detail: i18n.__('This will permanently remove this note.'), + buttons: [i18n.__('Confirm'), i18n.__('Cancel')] } const dialogueButtonIndex = dialog.showMessageBox(remote.getCurrentWindow(), alertConfig) @@ -67,7 +68,7 @@ class Detail extends React.Component { tabIndex='0' >
-
{OSX ? 'Command(⌘)' : 'Ctrl(^)'} + N
to create a new note
+
{OSX ? i18n.__('Command(⌘)') : i18n.__('Ctrl(^)')} + N
{i18n.__('to create a new note')}
this.handleNewNoteButtonClick(e)}> - Make a note {OSX ? '⌘' : 'Ctrl'} + N + {i18n.__('Make a note')} {OSX ? '⌘' : i18n.__('Ctrl')} + N
diff --git a/browser/main/NoteList/index.js b/browser/main/NoteList/index.js index 06880bab..b8a915d5 100644 --- a/browser/main/NoteList/index.js +++ b/browser/main/NoteList/index.js @@ -1,3 +1,4 @@ +/* global electron */ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' @@ -16,11 +17,11 @@ import { hashHistory } from 'react-router' import copy from 'copy-to-clipboard' import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig' import Markdown from '../../lib/markdown' +import i18n from 'browser/lib/i18n' const { remote } = require('electron') const { Menu, MenuItem, dialog } = remote const WP_POST_PATH = '/wp/v2/posts' -const markdown = new Markdown() function sortByCreatedAt (a, b) { return new Date(b.createdAt) - new Date(a.createdAt) @@ -709,6 +710,7 @@ class NoteList extends React.Component { authToken = `Bearer ${token}` } const contentToRender = firstNote.content.replace(`# ${firstNote.title}`, '') + const markdown = new Markdown() const data = { title: firstNote.title, content: markdown.render(contentToRender), @@ -994,13 +996,13 @@ class NoteList extends React.Component { value={config.sortBy} onChange={(e) => this.handleSortByChange(e)} > - - - + + +
- - ) diff --git a/browser/main/SideNav/PreferenceButton.js b/browser/main/SideNav/PreferenceButton.js index 9f483a28..187171f4 100644 --- a/browser/main/SideNav/PreferenceButton.js +++ b/browser/main/SideNav/PreferenceButton.js @@ -2,13 +2,14 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './PreferenceButton.styl' +import i18n from 'browser/lib/i18n' const PreferenceButton = ({ onClick }) => ( ) diff --git a/browser/main/SideNav/StorageItem.js b/browser/main/SideNav/StorageItem.js index 0589276e..92222d27 100644 --- a/browser/main/SideNav/StorageItem.js +++ b/browser/main/SideNav/StorageItem.js @@ -44,9 +44,9 @@ class StorageItem extends React.Component { handleUnlinkStorageClick (e) { const index = dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Unlink Storage', - detail: 'This work will just detatches a storage from Boostnote. (Any data won\'t be deleted.)', - buttons: ['Confirm', 'Cancel'] + message: i18n.__('Unlink Storage'), + detail: i18n.__('This work will just detatches a storage from Boostnote. (Any data won\'t be deleted.)'), + buttons: [i18n.__('Confirm'), i18n.__('Cancel')] }) if (index === 0) { @@ -160,9 +160,9 @@ class StorageItem extends React.Component { handleFolderDeleteClick (e, folder) { const index = dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Delete Folder', - detail: 'This will delete all notes in the folder and can not be undone.', - buttons: ['Confirm', 'Cancel'] + message: i18n.__('Delete Folder'), + detail: i18n.__('This will delete all notes in the folder and can not be undone.'), + buttons: [i18n.__('Confirm'), i18n.__('Cancel')] }) if (index === 0) { diff --git a/browser/main/SideNav/TagButton.js b/browser/main/SideNav/TagButton.js index 87d92c49..d91ae2c4 100644 --- a/browser/main/SideNav/TagButton.js +++ b/browser/main/SideNav/TagButton.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './SwitchButton.styl' +import i18n from 'browser/lib/i18n' const TagButton = ({ onClick, isTagActive @@ -12,7 +13,7 @@ const TagButton = ({ : '../resources/icon/icon-tag.svg' } /> - Tags + {i18n.__('Tags')} ) diff --git a/browser/main/StatusBar/index.js b/browser/main/StatusBar/index.js index 49c1b40c..e5f5ae1a 100644 --- a/browser/main/StatusBar/index.js +++ b/browser/main/StatusBar/index.js @@ -3,6 +3,7 @@ import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './StatusBar.styl' import ZoomManager from 'browser/main/lib/ZoomManager' +import i18n from 'browser/lib/i18n' const electron = require('electron') const { remote, ipcRenderer } = electron @@ -14,9 +15,9 @@ class StatusBar extends React.Component { updateApp () { const index = dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Update Boostnote', - detail: 'New Boostnote is ready to be installed.', - buttons: ['Restart & Install', 'Not Now'] + message: i18n.__('Update Boostnote'), + detail: i18n.__('New Boostnote is ready to be installed.'), + buttons: [i18n.__('Restart & Install'), i18n.__('Not Now')] }) if (index === 0) { @@ -62,7 +63,7 @@ class StatusBar extends React.Component { {status.updateReady ? : null } diff --git a/browser/main/TopBar/index.js b/browser/main/TopBar/index.js index 246ef614..86cc6b2a 100644 --- a/browser/main/TopBar/index.js +++ b/browser/main/TopBar/index.js @@ -5,6 +5,7 @@ import styles from './TopBar.styl' import _ from 'lodash' import ee from 'browser/main/lib/eventEmitter' import NewNoteButton from 'browser/main/NewNoteButton' +import i18n from 'browser/lib/i18n' class TopBar extends React.Component { constructor (props) { @@ -176,7 +177,7 @@ class TopBar extends React.Component { onChange={(e) => this.handleSearchChange(e)} onKeyDown={(e) => this.handleKeyDown(e)} onKeyUp={(e) => this.handleKeyUp(e)} - placeholder='Search' + placeholder={i18n.__('Search')} type='text' className='searchInput' /> @@ -185,7 +186,7 @@ class TopBar extends React.Component { onClick={(e) => this.handleSearchClearButton(e)} > - Clear Search + {i18n.__('Clear Search')} }
diff --git a/browser/main/index.js b/browser/main/index.js index d7ed7bfd..d9c7456e 100644 --- a/browser/main/index.js +++ b/browser/main/index.js @@ -8,6 +8,7 @@ import { Router, Route, IndexRoute, IndexRedirect, hashHistory } from 'react-rou import { syncHistoryWithStore } from 'react-router-redux' require('./lib/ipcClient') require('../lib/customMeta') +import i18n from 'browser/lib/i18n' const electron = require('electron') @@ -46,9 +47,9 @@ function notify (...args) { function updateApp () { const index = dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Update Boostnote', - detail: 'New Boostnote is ready to be installed.', - buttons: ['Restart & Install', 'Not Now'] + message: i18n.__('Update Boostnote'), + detail: i18n.__('New Boostnote is ready to be installed.'), + buttons: [i18n.__('Restart & Install'), i18n.__('Not Now')] }) if (index === 0) { diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index 1c4d955b..40b89198 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' @@ -21,6 +22,7 @@ export const DEFAULT_CONFIG = { toggleMain: OSX ? 'Cmd + Alt + L' : 'Super + Alt + E' }, ui: { + language: 'en', theme: 'default', showCopyNotification: true, disableDirectWrite: false, @@ -133,6 +135,36 @@ function set (updates) { document.body.setAttribute('data-theme', 'default') } + if (newConfig.ui.language === 'sq') { + i18n.setLocale('sq') + } else if (newConfig.ui.language === 'zh-CN') { + i18n.setLocale('zh-CN') + } else if (newConfig.ui.language === 'zh-TW') { + i18n.setLocale('zh-TW') + } else if (newConfig.ui.language === 'da') { + i18n.setLocale('da') + } else if (newConfig.ui.language === 'fr') { + i18n.setLocale('fr') + } else if (newConfig.ui.language === 'de') { + i18n.setLocale('de') + } else if (newConfig.ui.language === 'ja') { + i18n.setLocale('ja') + } else if (newConfig.ui.language === 'ko') { + i18n.setLocale('ko') + } else if (newConfig.ui.language === 'no') { + i18n.setLocale('no') + } else if (newConfig.ui.language === 'pl') { + i18n.setLocale('pl') + } else if (newConfig.ui.language === 'pt') { + i18n.setLocale('pt') + } else if (newConfig.ui.language === 'ru') { + i18n.setLocale('ru') + } else if (newConfig.ui.language === 'es') { + i18n.setLocale('es') + } else { + i18n.setLocale('en') + } + let editorTheme = document.getElementById('editorTheme') if (editorTheme == null) { editorTheme = document.createElement('link') diff --git a/browser/main/modals/NewNoteModal.js b/browser/main/modals/NewNoteModal.js index 84f510c4..c959000c 100644 --- a/browser/main/modals/NewNoteModal.js +++ b/browser/main/modals/NewNoteModal.js @@ -6,6 +6,7 @@ import { hashHistory } from 'react-router' import ee from 'browser/main/lib/eventEmitter' import ModalEscButton from 'browser/components/ModalEscButton' import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig' +import i18n from 'browser/lib/i18n' class NewNoteModal extends React.Component { constructor (props) { @@ -122,8 +123,8 @@ class NewNoteModal extends React.Component {
- Markdown Note
- This format is for creating text documents. Checklists, code blocks and Latex blocks are available. + {i18n.__('Markdown Note')}
+ {i18n.__('This format is for creating text documents. Checklists, code blocks and Latex blocks are available.')} -
Tab to switch format
+
{i18n.__('Tab to switch format')}
) diff --git a/browser/main/modals/PreferencesModal/Blog.js b/browser/main/modals/PreferencesModal/Blog.js index 675455f7..87ee9dcc 100644 --- a/browser/main/modals/PreferencesModal/Blog.js +++ b/browser/main/modals/PreferencesModal/Blog.js @@ -5,6 +5,7 @@ import ConfigManager from 'browser/main/lib/ConfigManager' import store from 'browser/main/store' import PropTypes from 'prop-types' import _ from 'lodash' +import i18n from 'browser/lib/i18n' const electron = require('electron') const { shell } = electron @@ -36,7 +37,7 @@ class Blog extends React.Component { this.handleSettingDone = () => { this.setState({BlogAlert: { type: 'success', - message: 'Successfully applied!' + message: i18n.__('Successfully applied!') }}) } this.handleSettingError = (err) => { @@ -99,10 +100,10 @@ class Blog extends React.Component { return (
-
Blog
+
{i18n.__('Blog')}
- Blog Type + {i18n.__('Blog Type')}
this.handleBlogChange(e)} @@ -127,16 +128,16 @@ class Blog extends React.Component {
{blogAlertElement}
-
Auth
+
{i18n.__('Auth')}
- Authentication Method + {i18n.__('Authentication Method')}
{ config.blog.authMethod === 'JWT' &&
-
Token
+
{i18n.__('Token')}
this.handleBlogChange(e)} @@ -164,7 +165,7 @@ class Blog extends React.Component { { config.blog.authMethod === 'USER' &&
-
UserName
+
{i18n.__('UserName')}
this.handleBlogChange(e)} @@ -174,7 +175,7 @@ class Blog extends React.Component {
-
Password
+
{i18n.__('Password')}
this.handleBlogChange(e)} diff --git a/browser/main/modals/PreferencesModal/Crowdfunding.js b/browser/main/modals/PreferencesModal/Crowdfunding.js index 048520b0..196c1cb3 100644 --- a/browser/main/modals/PreferencesModal/Crowdfunding.js +++ b/browser/main/modals/PreferencesModal/Crowdfunding.js @@ -1,6 +1,7 @@ import React from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './Crowdfunding.styl' +import i18n from 'browser/lib/i18n' const electron = require('electron') const { shell } = electron @@ -21,22 +22,22 @@ class Crowdfunding extends React.Component { render () { return (
-
Crowdfunding
-

Dear everyone,

+
{i18n.__('Crowdfunding')}
+

{i18n.__('Dear everyone,')}


-

Thank you for using Boostnote!

-

Boostnote is used in about 200 different countries and regions by an awesome community of developers.

+

{i18n.__('Thank you for using Boostnote!')}

+

{i18n.__('Boostnote is used in about 200 different countries and regions by an awesome community of developers.')}


-

To continue supporting this growth, and to satisfy community expectations,

-

we would like to invest more time and resources in this project.

+

{i18n.__('To continue supporting this growth, and to satisfy community expectations,')}

+

{i18n.__('we would like to invest more time and resources in this project.')}


-

If you like this project and see its potential, you can help by supporting us on OpenCollective!

+

{i18n.__('If you like this project and see its potential, you can help by supporting us on OpenCollective!')}


-

Thanks,

-

Boostnote maintainers

+

{i18n.__('Thanks,')}

+

{i18n.__('Boostnote maintainers')}


) diff --git a/browser/main/modals/PreferencesModal/FolderItem.js b/browser/main/modals/PreferencesModal/FolderItem.js index 9d1cd08f..50d28013 100644 --- a/browser/main/modals/PreferencesModal/FolderItem.js +++ b/browser/main/modals/PreferencesModal/FolderItem.js @@ -7,6 +7,7 @@ import dataApi from 'browser/main/lib/dataApi' import store from 'browser/main/store' import { SketchPicker } from 'react-color' import { SortableElement, SortableHandle } from 'react-sortable-hoc' +import i18n from 'browser/lib/i18n' class FolderItem extends React.Component { constructor (props) { @@ -179,18 +180,18 @@ class FolderItem extends React.Component { return (
- Are you sure to delete this folder? + {i18n.__('Are you sure to ')} {i18n.__(' delete')} {i18n.__('this folder?')}
@@ -231,12 +232,12 @@ class FolderItem extends React.Component {
diff --git a/browser/main/modals/PreferencesModal/HotkeyTab.js b/browser/main/modals/PreferencesModal/HotkeyTab.js index 32552d48..91473c3b 100644 --- a/browser/main/modals/PreferencesModal/HotkeyTab.js +++ b/browser/main/modals/PreferencesModal/HotkeyTab.js @@ -5,6 +5,7 @@ import styles from './ConfigTab.styl' import ConfigManager from 'browser/main/lib/ConfigManager' import store from 'browser/main/store' import _ from 'lodash' +import i18n from 'browser/lib/i18n' const electron = require('electron') const ipc = electron.ipcRenderer @@ -23,7 +24,7 @@ class HotkeyTab extends React.Component { this.handleSettingDone = () => { this.setState({keymapAlert: { type: 'success', - message: 'Successfully applied!' + message: i18n.__('Successfully applied!') }}) } this.handleSettingError = (err) => { @@ -77,7 +78,7 @@ class HotkeyTab extends React.Component { this.props.haveToSave({ tab: 'Hotkey', type: 'warning', - message: 'You have to save!' + message: i18n.__('You have to save!') }) } } @@ -102,9 +103,9 @@ class HotkeyTab extends React.Component { return (
-
Hotkeys
+
{i18n.__('Hotkeys')}
-
Show/Hide Boostnote
+
{i18n.__('Show/Hide Boostnote')}
this.handleHotkeyChange(e)} @@ -124,7 +125,7 @@ class HotkeyTab extends React.Component { } {keymapAlertElement}
diff --git a/browser/main/modals/PreferencesModal/InfoTab.js b/browser/main/modals/PreferencesModal/InfoTab.js index 57385f28..1b2d55bb 100644 --- a/browser/main/modals/PreferencesModal/InfoTab.js +++ b/browser/main/modals/PreferencesModal/InfoTab.js @@ -5,6 +5,7 @@ import ConfigManager from 'browser/main/lib/ConfigManager' import store from 'browser/main/store' import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig' import _ from 'lodash' +import i18n from 'browser/lib/i18n' const electron = require('electron') const { shell, remote } = electron @@ -38,11 +39,11 @@ class InfoTab extends React.Component { if (!newConfig.amaEnabled) { AwsMobileAnalyticsConfig.recordDynamicCustomEvent('DISABLE_AMA') this.setState({ - amaMessage: 'We hope we will gain your trust' + amaMessage: i18n.__('We hope we will gain your trust') }) } else { this.setState({ - amaMessage: 'Thanks for trusting us' + amaMessage: i18n.__('Thank\'s for trusting us') }) } @@ -69,48 +70,48 @@ class InfoTab extends React.Component { return (
-
Community
+
{i18n.__('Community')}

-
About
+
{i18n.__('About')}
-
Boostnote {appVersion}
+
{i18n.__('Boostnote')} {appVersion}
- An open source note-taking app made for programmers just like you. + {i18n.__('An open source note-taking app made for programmers just like you.')}
@@ -120,35 +121,35 @@ class InfoTab extends React.Component {
  • this.handleLinkClick(e)} - >Website + >{i18n.__('Website')}
  • this.handleLinkClick(e)} - >Development : Development configurations for Boostnote. + >{i18n.__('Development')}{i18n.__(' : Development configurations for Boostnote.')}
  • - Copyright (C) 2017 - 2018 BoostIO + {i18n.__('Copyright (C) 2017 - 2018 BoostIO')}
  • - License: GPL v3 + {i18n.__('License: GPL v3')}

  • -
    Analytics
    -
    Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.
    -
    You can see how it works on this.handleLinkClick(e)}>GitHub.
    +
    {i18n.__('Analytics')}
    +
    {i18n.__('Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.')}
    +
    {i18n.__('You can see how it works on ')} this.handleLinkClick(e)}>GitHub.

    -
    You can choose to enable or disable this option.
    +
    {i18n.__('You can choose to enable or disable this option.')}
    this.handleConfigChange(e)} checked={this.state.config.amaEnabled} ref='amaEnabled' type='checkbox' /> - Enable analytics to help improve Boostnote
    - + {i18n.__('Enable analytics to help improve Boostnote')}
    +
    {this.infoMessage()}
    diff --git a/browser/main/modals/PreferencesModal/StorageItem.js b/browser/main/modals/PreferencesModal/StorageItem.js index f2092835..bbd082c6 100644 --- a/browser/main/modals/PreferencesModal/StorageItem.js +++ b/browser/main/modals/PreferencesModal/StorageItem.js @@ -6,6 +6,7 @@ import consts from 'browser/lib/consts' import dataApi from 'browser/main/lib/dataApi' import store from 'browser/main/store' import FolderList from './FolderList' +import i18n from 'browser/lib/i18n' const { shell, remote } = require('electron') const { dialog } = remote @@ -46,9 +47,9 @@ class StorageItem extends React.Component { handleUnlinkButtonClick (e) { const index = dialog.showMessageBox(remote.getCurrentWindow(), { type: 'warning', - message: 'Unlink Storage', - detail: 'Unlinking removes this linked storage from Boostnote. No data is removed, please manually delete the folder from your hard drive if needed.', - buttons: ['Unlink', 'Cancel'] + message: i18n.__('Unlink Storage'), + detail: i18n.__('Unlinking removes this linked storage from Boostnote. No data is removed, please manually delete the folder from your hard drive if needed.'), + buttons: [i18n.__('Unlink'), i18n.__('Cancel')] }) if (index === 0) { @@ -127,7 +128,7 @@ class StorageItem extends React.Component { Add Folder + >{i18n.__('Add Folder')}
    diff --git a/browser/main/modals/PreferencesModal/StoragesTab.js b/browser/main/modals/PreferencesModal/StoragesTab.js index f66a617e..d666b02a 100644 --- a/browser/main/modals/PreferencesModal/StoragesTab.js +++ b/browser/main/modals/PreferencesModal/StoragesTab.js @@ -4,6 +4,7 @@ import CSSModules from 'browser/lib/CSSModules' import styles from './StoragesTab.styl' import dataApi from 'browser/main/lib/dataApi' import StorageItem from './StorageItem' +import i18n from 'browser/lib/i18n' const electron = require('electron') const { shell, remote } = electron @@ -69,16 +70,16 @@ class StoragesTab extends React.Component { }) return (
    -
    Storages
    +
    {i18n.__('Storages')}
    {storageList.length > 0 ? storageList - :
    No storage found.
    + :
    {i18n.__('No storage found.')}
    }
    @@ -140,13 +141,13 @@ class StoragesTab extends React.Component { return (
    -
    Add Storage
    +
    {i18n.__('Add Storage')}
    - Name + {i18n.__('Name')}
    -
    Type
    +
    {i18n.__('Type')}
    - Setting up 3rd-party cloud storage integration:{' '} + {i18n.__('Setting up 3rd-party cloud storage integration:')}{' '} this.handleLinkClick(e)} - >Cloud-Syncing-and-Backup + >{i18n.__('Cloud-Syncing-and-Backup')}
    -
    Location +
    {i18n.__('Location')}
    + >{i18n.__('Add')} + >{i18n.__('Cancel')}
    diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index ddffe6d9..deb70c06 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -9,6 +9,7 @@ import ReactCodeMirror from 'react-codemirror' import CodeMirror from 'codemirror' import 'codemirror-mode-elixir' import _ from 'lodash' +import i18n from 'browser/lib/i18n' const OSX = global.process.platform === 'darwin' @@ -29,7 +30,7 @@ class UiTab extends React.Component { this.handleSettingDone = () => { this.setState({UiAlert: { type: 'success', - message: 'Successfully applied!' + message: i18n.__('Successfully applied!') }}) } this.handleSettingError = (err) => { @@ -61,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 @@ -107,7 +109,7 @@ class UiTab extends React.Component { this.props.haveToSave({ tab: 'UI', type: 'warning', - message: 'You have to save!' + message: i18n.__('You have to save!') }) } }) @@ -152,22 +154,48 @@ class UiTab extends React.Component { return (
    -
    Interface
    +
    {i18n.__('Interface')}
    - Interface Theme + {i18n.__('Interface Theme')}
    + +
    + {i18n.__('Language')} +
    + +
    +
    +
    @@ -185,7 +213,7 @@ class UiTab extends React.Component { ref='confirmDeletion' type='checkbox' />  - Show a confirmation dialog when deleting notes + {i18n.__('Show a confirmation dialog when deleting notes')}
    { @@ -207,7 +235,7 @@ class UiTab extends React.Component {
    - Editor Theme + {i18n.__('Editor Theme')}
    - Editor Font Family + {i18n.__('Editor Font Family')}
    - Editor Indent Style + {i18n.__('Editor Indent Style')}
    - Switch to Preview + {i18n.__('Switch to Preview')}
    - Editor Keymap + {i18n.__('Editor Keymap')}
    -

    ⚠️ Please restart boostnote after you change the keymap

    +

    {i18n.__('⚠️ Please restart boostnote after you change the keymap')}

    @@ -315,7 +343,7 @@ class UiTab extends React.Component { ref='editorDisplayLineNumbers' type='checkbox' />  - Show line numbers in the editor + {i18n.__('Show line numbers in the editor')}
    @@ -326,7 +354,7 @@ class UiTab extends React.Component { ref='scrollPastEnd' type='checkbox' />  - Allow editor to scroll past the last line + {i18n.__('Allow editor to scroll past the last line')}
    @@ -337,14 +365,14 @@ class UiTab extends React.Component { ref='editorFetchUrlTitle' type='checkbox' />  - Bring in web page title when pasting URL on editor + {i18n.__('Bring in web page title when pasting URL on editor')}
    Preview
    - Preview Font Size + {i18n.__('Preview Font Size')}
    - Preview Font Family + {i18n.__('Preview Font Family')}
    -
    Code block Theme
    +
    {i18n.__('Code block Theme')}
    - LaTeX Inline Close Delimiter + {i18n.__('LaTeX Inline Close Delimiter')}
    - LaTeX Block Open Delimiter + {i18n.__('LaTeX Block Open Delimiter')}
    - LaTeX Block Close Delimiter + {i18n.__('LaTeX Block Close Delimiter')}
    {UiAlertElement}
    diff --git a/browser/main/modals/PreferencesModal/index.js b/browser/main/modals/PreferencesModal/index.js index 09ca9a4e..70e25a88 100644 --- a/browser/main/modals/PreferencesModal/index.js +++ b/browser/main/modals/PreferencesModal/index.js @@ -12,6 +12,7 @@ import CSSModules from 'browser/lib/CSSModules' import styles from './PreferencesModal.styl' import RealtimeNotification from 'browser/components/RealtimeNotification' import _ from 'lodash' +import i18n from 'browser/lib/i18n' class Preferences extends React.Component { constructor (props) { @@ -117,12 +118,12 @@ class Preferences extends React.Component { const content = this.renderContent() const tabs = [ - {target: 'STORAGES', label: 'Storage'}, - {target: 'HOTKEY', label: 'Hotkeys', Hotkey: this.state.HotkeyAlert}, - {target: 'UI', label: 'Interface', UI: this.state.UIAlert}, - {target: 'INFO', label: 'About'}, - {target: 'CROWDFUNDING', label: 'Crowdfunding'}, - {target: 'BLOG', label: 'Blog', Blog: this.state.BlogAlert} + {target: 'STORAGES', label: i18n.__('Storage')}, + {target: 'HOTKEY', label: i18n.__('Hotkeys'), Hotkey: this.state.HotkeyAlert}, + {target: 'UI', label: i18n.__('Interface'), UI: this.state.UIAlert}, + {target: 'INFO', label: i18n.__('About')}, + {target: 'CROWDFUNDING', label: i18n.__('Crowdfunding')}, + {target: 'BLOG', label: i18n.__('Blog'), Blog: this.state.BlogAlert} ] const navButtons = tabs.map((tab) => { @@ -151,7 +152,7 @@ class Preferences extends React.Component { onKeyDown={(e) => this.handleKeyDown(e)} >
    -

    Your preferences for Boostnote

    +

    {i18n.__('Your preferences for Boostnote')}

    this.handleEscButtonClick(e)} />
    diff --git a/browser/main/modals/RenameFolderModal.js b/browser/main/modals/RenameFolderModal.js index bb08f36d..f4197196 100644 --- a/browser/main/modals/RenameFolderModal.js +++ b/browser/main/modals/RenameFolderModal.js @@ -5,6 +5,7 @@ import styles from './RenameFolderModal.styl' import dataApi from 'browser/main/lib/dataApi' import store from 'browser/main/store' import ModalEscButton from 'browser/components/ModalEscButton' +import i18n from 'browser/lib/i18n' class RenameFolderModal extends React.Component { constructor (props) { @@ -72,7 +73,7 @@ class RenameFolderModal extends React.Component { onKeyDown={(e) => this.handleKeyDown(e)} >
    -
    Rename Folder
    +
    {i18n.__('Rename Folder')}
    this.handleCloseButtonClick(e)} /> diff --git a/locales/da.json b/locales/da.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/da.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/de.json b/locales/de.json new file mode 100644 index 00000000..fb2b6b11 --- /dev/null +++ b/locales/de.json @@ -0,0 +1,146 @@ +{ + "Notes": "Notizen", + "Tags": "Tags", + "Preferences": "Einstellungen", + "Make a note": "Notiz erstellen", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "um eine neue Notiz zu erstellen", + "Toggle Mode": "Modus umschalten", + "Trash": "Papierkorb", + "MODIFICATION DATE": "ÄNDERUNGSDATUM", + "Words": "Wörter", + "Letters": "Buchstaben", + "STORAGE": "SPEICHERORT", + "FOLDER": "ORDNER", + "CREATION DATE": "ERSTELLUNGSDATUM", + "NOTE LINK": "NOTIZ LINK", + ".md": ".md", + ".txt": ".txt", + ".html": ".html", + "Print": "Print", + "Your preferences for Boostnote": "Deine Boostnote Einstellungen", + "Storages": "Speicherorte", + "Add Storage Location": "Speicherort Hinzufügen", + "Add Folder": "Ordner Hinzufügen", + "Open Storage folder": "Speicherort Öffnen", + "Unlink": "Verknüpfung aufheben", + "Edit": "Bearbeiten", + "Delete": "Löschen", + "Interface": "Interface", + "Interface Theme": "Interface-Thema", + "Default": "Standard", + "White": "Weiß", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "Show a confirmation dialog when deleting notes": "Bestätigungsdialog beim Löschen von Notizen anzeigen", + "Editor Theme": "Editor Theme", + "Editor Font Size": "Editor Schriftgröße", + "Editor Font Family": "Editor Schriftart", + "Editor Indent Style": "Editor Einrückestil", + "Spaces": "Leerzeichen", + "Tabs": "Tabs", + "Switch to Preview": "Zur Vorschau wechseln", + "When Editor Blurred": "Wenn Editor verschwommen ist", + "When Editor Blurred, Edit On Double Click": "Mit Doppelklick bearbeiten, wenn Editor verschwommen ist", + "On Right Click": "Mit Rechtsklcik", + "Editor Keymap": "Editor Tastenbelegung", + "default": "standard", + "vim": "vim", + "emacs": "emacs", + "⚠️ Please restart boostnote after you change the keymap": "⚠️ Boostnote nach Änderung der Tastenbelegung neu starten", + "Show line numbers in the editor": "Zeilennummern im Editor anzeigen", + "Allow editor to scroll past the last line": "Editor das Scrollen über das Ende hinaus erlauben", + "Bring in web page title when pasting URL on editor": "Websitetitel beim Einfügen in den Editor anzeigen", + "Preview Font Size": "Vorschau Schriftgröße", + "Preview Font Family": "Vorschau Schriftart", + "Code block Theme": "Code block Theme", + "Allow preview to scroll past the last line": "Vorschau das Scrollen über das Ende hinaus erlauben", + "Show line numbers for preview code blocks": "Zeilennummern in Vorschau-Code-Blöcken anzeigen", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Newsletter abonnieren", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "Eine OpenSource-Notizapp für Programmierer wie du und ich.", + "Website": "Website", + "Development": "Entwicklung", + " : Development configurations for Boostnote.": " : Entwicklungseinstellungen für Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote sammelt anonyme Daten, um die App zu verbessern und nicht persönliche Informationen, wie z.B. der Inhalt deiner Notizen.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "Du kannst wählen, ob du diese Option aktivierst oder daektivierst.", + "Enable analytics to help improve Boostnote": "Datenerhebung zur Verbesserung von Boostnote aktivieren", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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 Betreuer", + "Support via OpenCollective": "Support per OpenCollective", + "Language": "Sprache", + "English": "Englisch", + "German": "Deutsch", + "French": "Französisch", + "Show \"Saved to Clipboard\" notification when copying": "\"Auf Clipboard gespeichert\" Benachrichtigungen beim kopieren anzeigen", + "All Notes": "Alle Notizen", + "Starred": "Starred", + "Are you sure to ": "Sind sie sicher ", + " delete": " zu löschen", + "this folder?": "diesen Ordner?", + "Confirm": "Bestätigen", + "Cancel": "Abbrechen", + "Markdown Note": "Markdown Notiz", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "Dieses Format dient der Erstellung von Text Dokumenten. Checklisten, Code-Blöcke und Latex-Blöcke sind verfügbar.", + "Snippet Note": "Snippet Notiz", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "Dieses Format dient der Erstellung von Code-Schnipslen. Mehrere snippets können zu einer Notiz zusammengefasst werden.", + "Tab to switch format": "Tab drücken, um das Format zu wechseln", + "Updated": "Bearbeitet", + "Created": "Erstellt", + "Alphabetically": "Alphabetisch", + "Default View": "Standardansicht", + "Compressed View": "Komprimierte Ansicht", + "Search": "Suchen", + "Blog Type": "Blog-Typ", + "Blog Address": "Blog Adresse", + "Save": "Speichern", + "Auth": "Authentifizierung", + "Authentication Method": "Authentifizierungsmethode", + "JWT": "JWT", + "USER": "BENUTZER", + "Token": "Token", + "Storage": "Speicherorte", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Boostnote anzeigen/verstecken", + "Restore": "Restore", + "Permanent Delete": "Dauerhaft Löschen", + "Confirm note deletion": "Löschen bestätigen", + "This will permanently remove this note.": "Notiz wird dauerhaft gelöscht", + "You have to save!": "Es muss gespeichert werden", + "Albanian": "Albanisch", + "Danish": "Dänisch", + "Japanese": "Japanisch", + "Korean": "Koreanisch", + "Norwegian": "Norwegisch", + "Polish": "Polnish", + "Portuguese": "Portugiesisch", + "Spanish": "Spanisch", + "Chinese (zh-CN)": "Chinesisch (zh-CN)", + "Chinese (zh-TW)": "Chinesisch (zh-TW)", + "Successfully applied!": "Erfolgreich angewendet!", + "UserName": "UserName", + "Password": "Password", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/en.json b/locales/en.json new file mode 100644 index 00000000..91cb7f18 --- /dev/null +++ b/locales/en.json @@ -0,0 +1,146 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "UserName": "UserName", + "Password": "Password", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/es.json b/locales/es.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/es.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/fr.json b/locales/fr.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/fr.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/ja.json b/locales/ja.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/ja.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/ko.json b/locales/ko.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/ko.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/no.json b/locales/no.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/no.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/pl.json b/locales/pl.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/pl.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/pt.json b/locales/pt.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/pt.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/ru.json b/locales/ru.json new file mode 100644 index 00000000..798f9c8d --- /dev/null +++ b/locales/ru.json @@ -0,0 +1,146 @@ +{ + "Notes": "Записи", + "Tags": "Теги", + "Preferences": "Настройки", + "Make a note": "Добавить запись", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "создать новую запись", + "Toggle Mode": "Переключить режим", + "Trash": "Корзина", + "MODIFICATION DATE": "Дата изменения", + "Words": "Слова", + "Letters": "Буквы", + "STORAGE": "Хранилище", + "FOLDER": "Папка", + "CREATION DATE": "Дата создания", + "NOTE LINK": "Ссылка на запись", + ".md": ".md", + ".txt": ".txt", + ".html": ".html", + "Print": "Print", + "Your preferences for Boostnote": "Настройки Boostnote", + "Storages": "Хранилища", + "Add Storage Location": "Добавить хранилище", + "Add Folder": "Добавить папку", + "Open Storage folder": "Открыть хранилище", + "Unlink": "Удалить", + "Edit": "Редактировать", + "Delete": "Удалить", + "Interface": "Интерфейс", + "Interface Theme": "Тема оформления", + "Default": "По умолчанию", + "White": "Светлая", + "Solarized Dark": "Solarized Dark", + "Dark": "Темная", + "Show a confirmation dialog when deleting notes": "Спрашивать подтверждение перед удалением записей?", + "Editor Theme": "Тема", + "Editor Font Size": "Размер шрифта", + "Editor Font Family": "Шрифт", + "Editor Indent Style": "Отступы", + "Spaces": "Пробелы", + "Tabs": "Табуляция", + "Switch to Preview": "Переключать на превью", + "When Editor Blurred": "При снятии фокуса с редактора", + "When Editor Blurred, Edit On Double Click": "При снятии фокуса, редактировать двойным кликом", + "On Right Click": "По правому клику", + "Editor Keymap": "Горячие клавиши", + "default": "по умолчанию", + "vim": "vim", + "emacs": "emacs", + "⚠️ Please restart boostnote after you change the keymap": "⚠️ Перезапустите Boostnote, чтобы применить изменения", + "Show line numbers in the editor": "Показывать номера строк в редакторе", + "Allow editor to scroll past the last line": "Разрешить прокрутку дальше последней строки в редакторе", + "Bring in web page title when pasting URL on editor": "Копировать заголовок страницы при вставке URL-ссылки в редакторе", + "Preview Font Size": "Размер шрифта", + "Preview Font Family": "Шрифт", + "Code block Theme": "Тема оформления кода", + "Allow preview to scroll past the last line": "Разрешить прокрутку дальше последней строки в превью", + "Show line numbers for preview code blocks": "Показывать номера строк в блоках кода", + "LaTeX Inline Open Delimiter": "Символ начала inline записи в LaTeX", + "LaTeX Inline Close Delimiter": "Символ окончания inline записи в LaTeX", + "LaTeX Block Open Delimiter": "Символ начала блока LaTeX", + "LaTeX Block Close Delimiter": "Символ окончания блока LaTeX", + "Community": "Сообщество", + "Subscribe to Newsletter": "Подпишитесь на рассылку", + "GitHub": "GitHub", + "Blog": "Блог", + "Facebook Group": "Группа в Фейсбуке", + "Twitter": "Твиттер", + "About": "О нас", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "Приложение для программерских и научных заметок с открытым кодом", + "Website": "Сайт", + "Development": "Разработка", + " : Development configurations for Boostnote.": " : Разработческие конфигурации для Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Аналитика", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote собирает анонимные данные о пользовании приложением для того, чтобы улучшать пользовательский опыт. Мы не собираем личную информацию и содержание ваших записей.", + "You can see how it works on ": "Посмотрите исходный код на ", + "You can choose to enable or disable this option.": "Вы можете отказаться от передачи анонимной информации разработчикам.", + "Enable analytics to help improve Boostnote": "Отправлять анонимные данные, чтобы сделать Boostnote еще лучше", + "Crowdfunding": "Краудфандинг", + "Dear everyone,": "Привет,", + "Thank you for using Boostnote!": "Спасибо за использование Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote используется в 200 странах и регионов дружным сообществом разработчиков.", + "To continue supporting this growth, and to satisfy community expectations,": "Чтобы продукт развивался и удовлетворял ожиданиям пользователей,", + "we would like to invest more time and resources in this project.": "мы хотим выделять больше времени и ресурсов проекту.", + "If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Если вам нравится Boostnote и его сообщество, вы можете профинансировать проект на OpenCollective!", + "Thanks,": "Спасибо,", + "Boostnote maintainers": "разработчики Boostnote", + "Support via OpenCollective": "Старница проекта на OpenCollective", + "Language": "Язык", + "English": "Английский", + "German": "Немецкий", + "French": "Французский", + "Show \"Saved to Clipboard\" notification when copying": "Показывать уведомление \"Скопировано в буфер\" при копировании?", + "All Notes": "Все записи", + "Starred": "Избранное", + "Are you sure to ": "Вы уверены, что хотите ", + " delete": " удалить", + "this folder?": "эту папку?", + "Confirm": "Да", + "Cancel": "Отмена", + "Markdown Note": "Markdown", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "Этот формат подходит для создания текстовых документов. Сюда вы можете добавлять чек-листы, блоки кода и блоки в LaTeX.", + "Snippet Note": "Snippet", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "Этот формат подходит для хранения кусков кода. Внутри одной записи можно создать несколько сниппетов.", + "Tab to switch format": "Tab для переключения формата", + "Updated": "По дате изменения", + "Created": "По дате создания", + "Alphabetically": "По алфавиту", + "Default View": "Стандартный вид", + "Compressed View": "Сокращенный вид", + "Search": "Поиск", + "Blog Type": "Тип блога", + "Blog Address": "Адрес блога", + "Save": "Сохранить", + "Auth": "Авторизоваться", + "Authentication Method": "Метод авторизации", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Хранилище", + "Hotkeys": "Горячие клавиши", + "Show/Hide Boostnote": "Показать/скрыть Boostnote", + "Restore": "Восстановить", + "Permanent Delete": "Удалить без восстановления", + "Confirm note deletion": "Подтвердите удаление", + "This will permanently remove this note.": "Это действие приведет к полному удалению записи. Восстановить запись будет невозможно.", + "Successfully applied!": "Успешно!", + "Albanian": "Албанский", + "Chinese (zh-CN)": "Китайский (zh-CN)", + "Chinese (zh-TW)": "Китайский (zh-TW)", + "Danish": "Датский", + "Japanese": "Японский", + "Korean": "Корейский", + "Norwegian": "Норвежский", + "Polish": "Польский", + "Portuguese": "Португальский", + "Spanish": "Испанский", + "You have to save!": "Нужно сохранить!", + "UserName": "Имя пользователя", + "Password": "Пароль", + "Russian": "Русский" +} diff --git a/locales/sq.json b/locales/sq.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/sq.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/zh-CN.json b/locales/zh-CN.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/zh-CN.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/locales/zh-TW.json b/locales/zh-TW.json new file mode 100644 index 00000000..60201b34 --- /dev/null +++ b/locales/zh-TW.json @@ -0,0 +1,144 @@ +{ + "Notes": "Notes", + "Tags": "Tags", + "Preferences": "Preferences", + "Make a note": "Make a note", + "Ctrl": "Ctrl", + "Ctrl(^)": "Ctrl", + "to create a new note": "to create a new note", + "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", + "Storages": "Storages", + "Add Storage Location": "Add Storage Location", + "Add Folder": "Add Folder", + "Open Storage folder": "Open Storage folder", + "Unlink": "Unlink", + "Edit": "Edit", + "Delete": "Delete", + "Interface": "Interface", + "Interface Theme": "Interface Theme", + "Default": "Delete", + "White": "White", + "Solarized Dark": "Solarized Dark", + "Dark": "Dark", + "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", + "Community": "Community", + "Subscribe to Newsletter": "Subscribe to Newsletter", + "GitHub": "GitHub", + "Blog": "Blog", + "Facebook Group": "Facebook Group", + "Twitter": "Twitter", + "About": "About", + "Boostnote": "Boostnote", + "An open source note-taking app made for programmers just like you.": "An open source note-taking app made for programmers just like you.", + "Website": "Website", + "Development": "Development", + " : Development configurations for Boostnote.": " : Development configurations for Boostnote.", + "Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO", + "License: GPL v3": "License: GPL v3", + "Analytics": "Analytics", + "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.": "Boostnote collects anonymous data for the sole purpose of improving the application, and strictly does not collect any personal information such the contents of your notes.", + "You can see how it works on ": "You can see how it works on ", + "You can choose to enable or disable this option.": "You can choose to enable or disable this option.", + "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", + "Crowdfunding": "Crowdfunding", + "Dear everyone,": "Dear everyone,", + "Thank you for using Boostnote!": "Thank you for using Boostnote!", + "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", + "To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", + "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", + "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", + "Language": "Language", + "English": "English", + "German": "German", + "French": "French", + "Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying", + "All Notes": "All Notes", + "Starred": "Starred", + "Are you sure to ": "Are you sure to ", + " delete": " delete", + "this folder?": "this folder?", + "Confirm": "Confirm", + "Cancel": "Cancel", + "Markdown Note": "Markdown Note", + "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "This format is for creating text documents. Checklists, code blocks and Latex blocks are available.", + "Snippet Note": "Snippet Note", + "This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "This format is for creating code snippets. Multiple snippets can be grouped into a single note.", + "Tab to switch format": "Tab to switch format", + "Updated": "Updated", + "Created": "Created", + "Alphabetically": "Alphabetically", + "Default View": "Default View", + "Compressed View": "Compressed View", + "Search": "Search", + "Blog Type": "Blog Type", + "Blog Address": "Blog Address", + "Save": "Save", + "Auth": "Auth", + "Authentication Method": "Authentication Method", + "JWT": "JWT", + "USER": "USER", + "Token": "Token", + "Storage": "Storage", + "Hotkeys": "Hotkeys", + "Show/Hide Boostnote": "Show/Hide Boostnote", + "Restore": "Restore", + "Permanent Delete": "Permanent Delete", + "Confirm note deletion": "Confirm note deletion", + "This will permanently remove this note.": "This will permanently remove this note.", + "Successfully applied!": "Successfully applied!", + "Albanian": "Albanian", + "Chinese (zh-CN)": "Chinese (zh-CN)", + "Chinese (zh-TW)": "Chinese (zh-TW)", + "Danish": "Danish", + "Japanese": "Japanese", + "Korean": "Korean", + "Norwegian": "Norwegian", + "Polish": "Polish", + "Portuguese": "Portuguese", + "Spanish": "Spanish", + "You have to save!": "You have to save!", + "Russian": "Russian" +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..8150228b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,35 @@ +{ + "name": "boost", + "version": "0.10.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "i18n-2": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/i18n-2/-/i18n-2-0.7.2.tgz", + "integrity": "sha512-Rdh6vfpNhL7q61cNf27x7QGULTi1TcGLVdFb5OJ6dOiJo+EkOTqEg0+3xgyeEMgYhopUBsh2IiSkFkjM+EhEmA==", + "requires": { + "debug": "3.1.0", + "sprintf": "0.1.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "sprintf": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.5.tgz", + "integrity": "sha1-j4PjmpMXwaUCy324BQ5Rxnn27c8=" + } + } +} diff --git a/package.json b/package.json index 71a000dd..3aec6b60 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "electron-gh-releases": "^2.0.2", "flowchart.js": "^1.6.5", "font-awesome": "^4.3.0", + "i18n-2": "^0.7.2", "iconv-lite": "^0.4.19", "immutable": "^3.8.1", "js-sequence-diagrams": "^1000000.0.6", diff --git a/yarn.lock b/yarn.lock index e85c298d..a0d51546 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2143,7 +2143,7 @@ debug@^2.6.8: dependencies: ms "2.0.0" -debug@^3.0.1: +debug@^3.0.1, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -3861,6 +3861,13 @@ humanize-plus@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/humanize-plus/-/humanize-plus-1.8.2.tgz#a65b34459ad6367adbb3707a82a3c9f916167030" +i18n-2@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/i18n-2/-/i18n-2-0.7.2.tgz#7efb1a7adc67869adea0688951577464aa793aaf" + dependencies: + debug "^3.1.0" + sprintf "^0.1.5" + iconv-lite@0.4.13, iconv-lite@~0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -6857,6 +6864,10 @@ sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" +sprintf@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/sprintf/-/sprintf-0.1.5.tgz#8f83e39a9317c1a502cb7db8050e51c679f6edcf" + srcset@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz#a5669de12b42f3b1d5e83ed03c71046fc48f41ef"