mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
Added strings in notifications
This commit is contained in:
@@ -26,6 +26,7 @@ import InfoButton from './InfoButton'
|
|||||||
import InfoPanel from './InfoPanel'
|
import InfoPanel from './InfoPanel'
|
||||||
import InfoPanelTrashed from './InfoPanelTrashed'
|
import InfoPanelTrashed from './InfoPanelTrashed'
|
||||||
import { formatDate } from 'browser/lib/date-formatter'
|
import { formatDate } from 'browser/lib/date-formatter'
|
||||||
|
import i18n from 'browser/lib/i18n'
|
||||||
|
|
||||||
function pass (name) {
|
function pass (name) {
|
||||||
switch (name) {
|
switch (name) {
|
||||||
@@ -264,9 +265,9 @@ class SnippetNoteDetail extends React.Component {
|
|||||||
if (this.state.note.snippets[index].content.trim().length > 0) {
|
if (this.state.note.snippets[index].content.trim().length > 0) {
|
||||||
const dialogIndex = dialog.showMessageBox(remote.getCurrentWindow(), {
|
const dialogIndex = dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Delete a snippet',
|
message: i18n.__('Delete a snippet'),
|
||||||
detail: 'This work cannot be undone.',
|
detail: i18n.__('This work cannot be undone.'),
|
||||||
buttons: ['Confirm', 'Cancel']
|
buttons: [ i18n.__('Confirm'), i18n.__('Cancel')]
|
||||||
})
|
})
|
||||||
if (dialogIndex === 0) {
|
if (dialogIndex === 0) {
|
||||||
this.deleteSnippetByIndex(index)
|
this.deleteSnippetByIndex(index)
|
||||||
@@ -507,8 +508,8 @@ class SnippetNoteDetail extends React.Component {
|
|||||||
showWarning () {
|
showWarning () {
|
||||||
dialog.showMessageBox(remote.getCurrentWindow(), {
|
dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Sorry!',
|
message: i18n.__('Sorry!'),
|
||||||
detail: 'md/text import is available only a markdown note.',
|
detail: i18n.__('md/text import is available only a markdown note.'),
|
||||||
buttons: ['OK']
|
buttons: ['OK']
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ class Detail extends React.Component {
|
|||||||
|
|
||||||
const alertConfig = {
|
const alertConfig = {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Confirm note deletion',
|
message: i18n.__('Confirm note deletion'),
|
||||||
detail: 'This will permanently remove this note.',
|
detail: i18n.__('This will permanently remove this note.'),
|
||||||
buttons: ['Confirm', 'Cancel']
|
buttons: [ i18n.__('Confirm'), i18n.__('Cancel')]
|
||||||
}
|
}
|
||||||
|
|
||||||
const dialogueButtonIndex = dialog.showMessageBox(remote.getCurrentWindow(), alertConfig)
|
const dialogueButtonIndex = dialog.showMessageBox(remote.getCurrentWindow(), alertConfig)
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { hashHistory } from 'react-router'
|
|||||||
import copy from 'copy-to-clipboard'
|
import copy from 'copy-to-clipboard'
|
||||||
import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig'
|
import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig'
|
||||||
import markdown from '../../lib/markdown'
|
import markdown from '../../lib/markdown'
|
||||||
|
import i18n from 'browser/lib/i18n'
|
||||||
|
|
||||||
const { remote } = require('electron')
|
const { remote } = require('electron')
|
||||||
const { Menu, MenuItem, dialog } = remote
|
const { Menu, MenuItem, dialog } = remote
|
||||||
@@ -996,13 +997,13 @@ class NoteList extends React.Component {
|
|||||||
value={config.sortBy}
|
value={config.sortBy}
|
||||||
onChange={(e) => this.handleSortByChange(e)}
|
onChange={(e) => this.handleSortByChange(e)}
|
||||||
>
|
>
|
||||||
<option title='Sort by update time' value='UPDATED_AT'>Updated</option>
|
<option title='Sort by update time' value='UPDATED_AT'>{i18n.__('Updated')}</option>
|
||||||
<option title='Sort by create time' value='CREATED_AT'>Created</option>
|
<option title='Sort by create time' value='CREATED_AT'>{i18n.__('Created')}</option>
|
||||||
<option title='Sort alphabetically' value='ALPHABETICAL'>Alphabetically</option>
|
<option title='Sort alphabetically' value='ALPHABETICAL'>{i18n.__('Alphabetically')}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div styleName='control-button-area'>
|
<div styleName='control-button-area'>
|
||||||
<button title='Default View' styleName={config.listStyle === 'DEFAULT'
|
<button title={i18n.__('Default View')} styleName={config.listStyle === 'DEFAULT'
|
||||||
? 'control-button--active'
|
? 'control-button--active'
|
||||||
: 'control-button'
|
: 'control-button'
|
||||||
}
|
}
|
||||||
@@ -1010,7 +1011,7 @@ class NoteList extends React.Component {
|
|||||||
>
|
>
|
||||||
<img styleName='iconTag' src='../resources/icon/icon-column.svg' />
|
<img styleName='iconTag' src='../resources/icon/icon-column.svg' />
|
||||||
</button>
|
</button>
|
||||||
<button title='Compressed View' styleName={config.listStyle === 'SMALL'
|
<button title={i18n.__('Compressed View')} styleName={config.listStyle === 'SMALL'
|
||||||
? 'control-button--active'
|
? 'control-button--active'
|
||||||
: 'control-button'
|
: 'control-button'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,9 +43,9 @@ class StorageItem extends React.Component {
|
|||||||
handleUnlinkStorageClick (e) {
|
handleUnlinkStorageClick (e) {
|
||||||
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Unlink Storage',
|
message: i18n.__('Unlink Storage'),
|
||||||
detail: 'This work will just detatches a storage from Boostnote. (Any data won\'t be deleted.)',
|
detail: i18n.__('This work will just detatches a storage from Boostnote. (Any data won\'t be deleted.)'),
|
||||||
buttons: ['Confirm', 'Cancel']
|
buttons: [i18n.__('Confirm'), i18n.__('Cancel')]
|
||||||
})
|
})
|
||||||
|
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
@@ -159,9 +159,9 @@ class StorageItem extends React.Component {
|
|||||||
handleFolderDeleteClick (e, folder) {
|
handleFolderDeleteClick (e, folder) {
|
||||||
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Delete Folder',
|
message: i18n.__('Delete Folder'),
|
||||||
detail: 'This will delete all notes in the folder and can not be undone.',
|
detail: i18n.__('This will delete all notes in the folder and can not be undone.'),
|
||||||
buttons: ['Confirm', 'Cancel']
|
buttons: [i18n.__('Confirm'), i18n.__('Cancel')]
|
||||||
})
|
})
|
||||||
|
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ class StatusBar extends React.Component {
|
|||||||
updateApp () {
|
updateApp () {
|
||||||
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Update Boostnote',
|
message: i18n.__('Update Boostnote'),
|
||||||
detail: 'New Boostnote is ready to be installed.',
|
detail: i18n.__('New Boostnote is ready to be installed.'),
|
||||||
buttons: ['Restart & Install', 'Not Now']
|
buttons: [i18n.__('Restart & Install'), i18n.__('Not Now')]
|
||||||
})
|
})
|
||||||
|
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ class TopBar extends React.Component {
|
|||||||
onChange={(e) => this.handleSearchChange(e)}
|
onChange={(e) => this.handleSearchChange(e)}
|
||||||
onKeyDown={(e) => this.handleKeyDown(e)}
|
onKeyDown={(e) => this.handleKeyDown(e)}
|
||||||
onKeyUp={(e) => this.handleKeyUp(e)}
|
onKeyUp={(e) => this.handleKeyUp(e)}
|
||||||
placeholder='Search'
|
placeholder={i18n.__('Search')}
|
||||||
type='text'
|
type='text'
|
||||||
className='searchInput'
|
className='searchInput'
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { Router, Route, IndexRoute, IndexRedirect, hashHistory } from 'react-rou
|
|||||||
import { syncHistoryWithStore } from 'react-router-redux'
|
import { syncHistoryWithStore } from 'react-router-redux'
|
||||||
require('./lib/ipcClient')
|
require('./lib/ipcClient')
|
||||||
require('../lib/customMeta')
|
require('../lib/customMeta')
|
||||||
|
import i18n from 'browser/lib/i18n'
|
||||||
|
|
||||||
const electron = require('electron')
|
const electron = require('electron')
|
||||||
|
|
||||||
@@ -46,9 +47,9 @@ function notify (...args) {
|
|||||||
function updateApp () {
|
function updateApp () {
|
||||||
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Update Boostnote',
|
message: i18n.__('Update Boostnote'),
|
||||||
detail: 'New Boostnote is ready to be installed.',
|
detail: i18n.__('New Boostnote is ready to be installed.'),
|
||||||
buttons: ['Restart & Install', 'Not Now']
|
buttons: [i18n.__('Restart & Install'), i18n.__('Not Now')]
|
||||||
})
|
})
|
||||||
|
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import ConfigManager from 'browser/main/lib/ConfigManager'
|
|||||||
import store from 'browser/main/store'
|
import store from 'browser/main/store'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
|
import i18n from 'browser/lib/i18n'
|
||||||
|
|
||||||
const electron = require('electron')
|
const electron = require('electron')
|
||||||
const { shell } = electron
|
const { shell } = electron
|
||||||
@@ -36,7 +37,7 @@ class Blog extends React.Component {
|
|||||||
this.handleSettingDone = () => {
|
this.handleSettingDone = () => {
|
||||||
this.setState({BlogAlert: {
|
this.setState({BlogAlert: {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: 'Successfully applied!'
|
message: i18n.__('Successfully applied!')
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
this.handleSettingError = (err) => {
|
this.handleSettingError = (err) => {
|
||||||
@@ -99,10 +100,10 @@ class Blog extends React.Component {
|
|||||||
return (
|
return (
|
||||||
<div styleName='root'>
|
<div styleName='root'>
|
||||||
<div styleName='group'>
|
<div styleName='group'>
|
||||||
<div styleName='group-header'>Blog</div>
|
<div styleName='group-header'>{i18n.__('Blog')}</div>
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>
|
<div styleName='group-section-label'>
|
||||||
Blog Type
|
{i18n.__('Blog Type')}
|
||||||
</div>
|
</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<select
|
<select
|
||||||
@@ -115,7 +116,7 @@ class Blog extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>Blog Address</div>
|
<div styleName='group-section-label'>{i18n.__('Blog Address')}</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<input styleName='group-section-control-input'
|
<input styleName='group-section-control-input'
|
||||||
onChange={(e) => this.handleBlogChange(e)}
|
onChange={(e) => this.handleBlogChange(e)}
|
||||||
@@ -127,16 +128,16 @@ class Blog extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
<div styleName='group-control'>
|
<div styleName='group-control'>
|
||||||
<button styleName='group-control-rightButton'
|
<button styleName='group-control-rightButton'
|
||||||
onClick={(e) => this.handleSaveButtonClick(e)}>Save
|
onClick={(e) => this.handleSaveButtonClick(e)}>{i18n.__('Save')}
|
||||||
</button>
|
</button>
|
||||||
{blogAlertElement}
|
{blogAlertElement}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div styleName='group-header2'>Auth</div>
|
<div styleName='group-header2'>{i18n.__('Auth')}</div>
|
||||||
|
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>
|
<div styleName='group-section-label'>
|
||||||
Authentication Method
|
{i18n.__('Authentication Method')}
|
||||||
</div>
|
</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<select
|
<select
|
||||||
@@ -144,14 +145,14 @@ class Blog extends React.Component {
|
|||||||
ref='authMethodDropdown'
|
ref='authMethodDropdown'
|
||||||
onChange={(e) => this.handleBlogChange(e)}
|
onChange={(e) => this.handleBlogChange(e)}
|
||||||
>
|
>
|
||||||
<option value='JWT' key='JWT'>JWT</option>
|
<option value='JWT' key='JWT'>{i18n.__('JWT')}</option>
|
||||||
<option value='USER' key='USER'>USER</option>
|
<option value='USER' key='USER'>{i18n.__('USER')}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{ config.blog.authMethod === 'JWT' &&
|
{ config.blog.authMethod === 'JWT' &&
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>Token</div>
|
<div styleName='group-section-label'>{i18n.__('Token')}</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<input styleName='group-section-control-input'
|
<input styleName='group-section-control-input'
|
||||||
onChange={(e) => this.handleBlogChange(e)}
|
onChange={(e) => this.handleBlogChange(e)}
|
||||||
@@ -164,7 +165,7 @@ class Blog extends React.Component {
|
|||||||
{ config.blog.authMethod === 'USER' &&
|
{ config.blog.authMethod === 'USER' &&
|
||||||
<div>
|
<div>
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>UserName</div>
|
<div styleName='group-section-label'>{i18n.__('UserName')}</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<input styleName='group-section-control-input'
|
<input styleName='group-section-control-input'
|
||||||
onChange={(e) => this.handleBlogChange(e)}
|
onChange={(e) => this.handleBlogChange(e)}
|
||||||
@@ -174,7 +175,7 @@ class Blog extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>Password</div>
|
<div styleName='group-section-label'>{i18n.__('Password')}</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<input styleName='group-section-control-input'
|
<input styleName='group-section-control-input'
|
||||||
onChange={(e) => this.handleBlogChange(e)}
|
onChange={(e) => this.handleBlogChange(e)}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import styles from './ConfigTab.styl'
|
|||||||
import ConfigManager from 'browser/main/lib/ConfigManager'
|
import ConfigManager from 'browser/main/lib/ConfigManager'
|
||||||
import store from 'browser/main/store'
|
import store from 'browser/main/store'
|
||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
|
import i18n from 'browser/lib/i18n'
|
||||||
|
|
||||||
const electron = require('electron')
|
const electron = require('electron')
|
||||||
const ipc = electron.ipcRenderer
|
const ipc = electron.ipcRenderer
|
||||||
@@ -23,7 +24,7 @@ class HotkeyTab extends React.Component {
|
|||||||
this.handleSettingDone = () => {
|
this.handleSettingDone = () => {
|
||||||
this.setState({keymapAlert: {
|
this.setState({keymapAlert: {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: 'Successfully applied!'
|
message: i18n.__('Successfully applied!')
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
this.handleSettingError = (err) => {
|
this.handleSettingError = (err) => {
|
||||||
@@ -77,7 +78,7 @@ class HotkeyTab extends React.Component {
|
|||||||
this.props.haveToSave({
|
this.props.haveToSave({
|
||||||
tab: 'Hotkey',
|
tab: 'Hotkey',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'You have to save!'
|
message: i18n.__('You have to save!')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -102,9 +103,9 @@ class HotkeyTab extends React.Component {
|
|||||||
return (
|
return (
|
||||||
<div styleName='root'>
|
<div styleName='root'>
|
||||||
<div styleName='group'>
|
<div styleName='group'>
|
||||||
<div styleName='group-header'>Hotkeys</div>
|
<div styleName='group-header'>{i18n.__('Hotkeys')}</div>
|
||||||
<div styleName='group-section'>
|
<div styleName='group-section'>
|
||||||
<div styleName='group-section-label'>Show/Hide Boostnote</div>
|
<div styleName='group-section-label'>{i18n.__('Show/Hide Boostnote')}</div>
|
||||||
<div styleName='group-section-control'>
|
<div styleName='group-section-control'>
|
||||||
<input styleName='group-section-control-input'
|
<input styleName='group-section-control-input'
|
||||||
onChange={(e) => this.handleHotkeyChange(e)}
|
onChange={(e) => this.handleHotkeyChange(e)}
|
||||||
@@ -124,7 +125,7 @@ class HotkeyTab extends React.Component {
|
|||||||
}
|
}
|
||||||
</button>
|
</button>
|
||||||
<button styleName='group-control-rightButton'
|
<button styleName='group-control-rightButton'
|
||||||
onClick={(e) => this.handleSaveButtonClick(e)}>Save
|
onClick={(e) => this.handleSaveButtonClick(e)}>{i18n.__('Save')}
|
||||||
</button>
|
</button>
|
||||||
{keymapAlertElement}
|
{keymapAlertElement}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -39,11 +39,11 @@ class InfoTab extends React.Component {
|
|||||||
if (!newConfig.amaEnabled) {
|
if (!newConfig.amaEnabled) {
|
||||||
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('DISABLE_AMA')
|
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('DISABLE_AMA')
|
||||||
this.setState({
|
this.setState({
|
||||||
amaMessage: 'We hope we will gain your trust'
|
amaMessage: i18n.__('We hope we will gain your trust')
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
amaMessage: 'Thank\'s for trust us'
|
amaMessage: i18n.__('Thank\'s for trust us')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ class InfoTab extends React.Component {
|
|||||||
type='checkbox'
|
type='checkbox'
|
||||||
/>
|
/>
|
||||||
{i18n.__('Enable analytics to help improve Boostnote')}<br />
|
{i18n.__('Enable analytics to help improve Boostnote')}<br />
|
||||||
<button styleName='policy-submit' onClick={(e) => this.handleSaveButtonClick(e)}>Save</button>
|
<button styleName='policy-submit' onClick={(e) => this.handleSaveButtonClick(e)}>{i18n.__('Save')}</button>
|
||||||
<br />
|
<br />
|
||||||
{this.infoMessage()}
|
{this.infoMessage()}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ class StorageItem extends React.Component {
|
|||||||
handleUnlinkButtonClick (e) {
|
handleUnlinkButtonClick (e) {
|
||||||
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
const index = dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'Unlink Storage',
|
message: i18n.__('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.',
|
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: ['Unlink', 'Cancel']
|
buttons: [i18n.__('Unlink'), i18n.__('Cancel')]
|
||||||
})
|
})
|
||||||
|
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class UiTab extends React.Component {
|
|||||||
this.handleSettingDone = () => {
|
this.handleSettingDone = () => {
|
||||||
this.setState({UiAlert: {
|
this.setState({UiAlert: {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: 'Successfully applied!'
|
message: i18n.__('Successfully applied!')
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
this.handleSettingError = (err) => {
|
this.handleSettingError = (err) => {
|
||||||
@@ -108,7 +108,7 @@ class UiTab extends React.Component {
|
|||||||
this.props.haveToSave({
|
this.props.haveToSave({
|
||||||
tab: 'UI',
|
tab: 'UI',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
message: 'You have to save!'
|
message: i18n.__('You have to save!')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -474,7 +474,7 @@ class UiTab extends React.Component {
|
|||||||
|
|
||||||
<div styleName='group-control'>
|
<div styleName='group-control'>
|
||||||
<button styleName='group-control-rightButton'
|
<button styleName='group-control-rightButton'
|
||||||
onClick={(e) => this.handleSaveUIClick(e)}>Save
|
onClick={(e) => this.handleSaveUIClick(e)}>{i18n.__('Save')}
|
||||||
</button>
|
</button>
|
||||||
{UiAlertElement}
|
{UiAlertElement}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -118,12 +118,12 @@ class Preferences extends React.Component {
|
|||||||
const content = this.renderContent()
|
const content = this.renderContent()
|
||||||
|
|
||||||
const tabs = [
|
const tabs = [
|
||||||
{target: 'STORAGES', label: 'Storage'},
|
{target: 'STORAGES', label: i18n.__('Storage')},
|
||||||
{target: 'HOTKEY', label: 'Hotkeys', Hotkey: this.state.HotkeyAlert},
|
{target: 'HOTKEY', label: i18n.__('Hotkeys'), Hotkey: this.state.HotkeyAlert},
|
||||||
{target: 'UI', label: 'Interface', UI: this.state.UIAlert},
|
{target: 'UI', label: i18n.__('Interface'), UI: this.state.UIAlert},
|
||||||
{target: 'INFO', label: 'About'},
|
{target: 'INFO', label: i18n.__('About')},
|
||||||
{target: 'CROWDFUNDING', label: 'Crowdfunding'},
|
{target: 'CROWDFUNDING', label: i18n.__('Crowdfunding')},
|
||||||
{target: 'BLOG', label: 'Blog', Blog: this.state.BlogAlert}
|
{target: 'BLOG', label: i18n.__('Blog'), Blog: this.state.BlogAlert}
|
||||||
]
|
]
|
||||||
|
|
||||||
const navButtons = tabs.map((tab) => {
|
const navButtons = tabs.map((tab) => {
|
||||||
|
|||||||
@@ -88,8 +88,8 @@
|
|||||||
"we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.",
|
"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!",
|
"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,",
|
"Thanks,": "Thanks,",
|
||||||
"Boostnote maintainers": "Boostnote maintainers",
|
"Boostnote maintainers": "Boostnote Betreuer",
|
||||||
"Support via OpenCollective": "Support via OpenCollective",
|
"Support via OpenCollective": "Support per OpenCollective",
|
||||||
"Language": "Sprache",
|
"Language": "Sprache",
|
||||||
"English": "Englisch",
|
"English": "Englisch",
|
||||||
"German": "Deutsch",
|
"German": "Deutsch",
|
||||||
@@ -106,5 +106,26 @@
|
|||||||
"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.",
|
"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",
|
"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.",
|
"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"
|
"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"
|
||||||
}
|
}
|
||||||
114
locales/en.json
114
locales/en.json
@@ -1,6 +1,13 @@
|
|||||||
{
|
{
|
||||||
|
"Notes": "Notes",
|
||||||
|
"Tags": "Tags",
|
||||||
|
"Preferences": "Preferences",
|
||||||
|
"Make a note": "Make a note",
|
||||||
|
"Ctrl": "Ctrl",
|
||||||
"Ctrl(^)": "Ctrl",
|
"Ctrl(^)": "Ctrl",
|
||||||
"to create a new note": "to create a new note",
|
"to create a new note": "to create a new note",
|
||||||
|
"Toggle Mode": "Toggle Mode",
|
||||||
|
"Trash": "Trash",
|
||||||
"MODIFICATION DATE": "MODIFICATION DATE",
|
"MODIFICATION DATE": "MODIFICATION DATE",
|
||||||
"Words": "Words",
|
"Words": "Words",
|
||||||
"Letters": "Letters",
|
"Letters": "Letters",
|
||||||
@@ -12,57 +19,20 @@
|
|||||||
".txt": ".txt",
|
".txt": ".txt",
|
||||||
".html": ".html",
|
".html": ".html",
|
||||||
"Print": "Print",
|
"Print": "Print",
|
||||||
"Toggle Mode": "Toggle Mode",
|
|
||||||
"Trash": "Trash",
|
|
||||||
"Your preferences for Boostnote": "Your preferences for Boostnote",
|
"Your preferences for Boostnote": "Your preferences for Boostnote",
|
||||||
"Edit": "Edit",
|
|
||||||
"Delete": "Delete",
|
|
||||||
"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",
|
|
||||||
"Make a note": "Make a note",
|
|
||||||
"Ctrl": "Ctrl",
|
|
||||||
"Notes": "Notes",
|
|
||||||
"Tags": "Tags",
|
|
||||||
"Preferences": "Preferences",
|
|
||||||
"Storages": "Storages",
|
"Storages": "Storages",
|
||||||
"Add Storage Location": "Add Storage Location",
|
"Add Storage Location": "Add Storage Location",
|
||||||
"Add Folder": "Add Folder",
|
"Add Folder": "Add Folder",
|
||||||
"Open Storage folder": "Open Storage folder",
|
"Open Storage folder": "Open Storage folder",
|
||||||
"Unlink": "Unlink",
|
"Unlink": "Unlink",
|
||||||
"Community": "Community",
|
"Edit": "Edit",
|
||||||
"Subscribe to Newsletter": "Subscribe to Newsletter",
|
"Delete": "Delete",
|
||||||
"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",
|
|
||||||
"Interface": "Interface",
|
"Interface": "Interface",
|
||||||
"Interface Theme": "Interface Theme",
|
"Interface Theme": "Interface Theme",
|
||||||
"Default": "Default",
|
"Default": "Delete",
|
||||||
"White": "White",
|
"White": "White",
|
||||||
"Solarized Dark": "Solarized Dark",
|
"Solarized Dark": "Solarized Dark",
|
||||||
"Dark": "Dark",
|
"Dark": "Dark",
|
||||||
"Show "Saved to Clipboard" notification when copying": "Show "Saved to Clipboard" notification when copying",
|
|
||||||
"Show a confirmation dialog when deleting notes": "Show a confirmation dialog when deleting notes",
|
"Show a confirmation dialog when deleting notes": "Show a confirmation dialog when deleting notes",
|
||||||
"Editor Theme": "Editor Theme",
|
"Editor Theme": "Editor Theme",
|
||||||
"Editor Font Size": "Editor Font Size",
|
"Editor Font Size": "Editor Font Size",
|
||||||
@@ -91,11 +61,71 @@
|
|||||||
"LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter",
|
"LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter",
|
||||||
"LaTeX Block Open Delimiter": "LaTeX Block Open Delimiter",
|
"LaTeX Block Open Delimiter": "LaTeX Block Open Delimiter",
|
||||||
"LaTeX Block Close Delimiter": "LaTeX Block Close Delimiter",
|
"LaTeX Block Close Delimiter": "LaTeX Block Close Delimiter",
|
||||||
"Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying",
|
"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",
|
"Language": "Language",
|
||||||
"English": "English",
|
"English": "English",
|
||||||
"German": "German",
|
"German": "German",
|
||||||
"French": "French",
|
"French": "French",
|
||||||
|
"Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying",
|
||||||
"All Notes": "All Notes",
|
"All Notes": "All Notes",
|
||||||
"Starred": "Starred"
|
"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."
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
"Preferences": "Preferences",
|
"Preferences": "Preferences",
|
||||||
"Make a note": "Make a note",
|
"Make a note": "Make a note",
|
||||||
"Ctrl": "Ctrl",
|
"Ctrl": "Ctrl",
|
||||||
|
"Ctrl(^)": "Ctrl",
|
||||||
|
"to create a new note": "to create a new note",
|
||||||
"Toggle Mode": "Toggle Mode",
|
"Toggle Mode": "Toggle Mode",
|
||||||
"Trash": "Trash",
|
"Trash": "Trash",
|
||||||
"MODIFICATION DATE": "MODIFICATION DATE",
|
"MODIFICATION DATE": "MODIFICATION DATE",
|
||||||
@@ -18,17 +20,19 @@
|
|||||||
".html": ".html",
|
".html": ".html",
|
||||||
"Print": "Print",
|
"Print": "Print",
|
||||||
"Your preferences for Boostnote": "Your preferences for Boostnote",
|
"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": "Interface",
|
||||||
"Interface Theme": "Interface Theme",
|
"Interface Theme": "Interface Theme",
|
||||||
"Default": "Default",
|
"Default": "Delete",
|
||||||
"White": "White",
|
"White": "White",
|
||||||
"Solarized Dark": "Solarized Dark",
|
"Solarized Dark": "Solarized Dark",
|
||||||
"Dark": "Dark",
|
"Dark": "Dark",
|
||||||
"Language": "Language",
|
|
||||||
"English": "English",
|
|
||||||
"German": "German",
|
|
||||||
"French": "French",
|
|
||||||
"Show \"Saved to Clipboard\" notification when copying": "Show \"Saved to Clipboard\" notification when copying",
|
|
||||||
"Show a confirmation dialog when deleting notes": "Show a confirmation dialog when deleting notes",
|
"Show a confirmation dialog when deleting notes": "Show a confirmation dialog when deleting notes",
|
||||||
"Editor Theme": "Editor Theme",
|
"Editor Theme": "Editor Theme",
|
||||||
"Editor Font Size": "Editor Font Size",
|
"Editor Font Size": "Editor Font Size",
|
||||||
@@ -56,5 +60,72 @@
|
|||||||
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
|
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
|
||||||
"LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter",
|
"LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter",
|
||||||
"LaTeX Block Open Delimiter": "LaTeX Block Open Delimiter",
|
"LaTeX Block Open Delimiter": "LaTeX Block Open Delimiter",
|
||||||
"LaTeX Block Close Delimiter": "LaTeX Block Close 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."
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user