mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-14 02:06:29 +00:00
Compare commits
53 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b9cf775ff | ||
|
|
56879924bd | ||
|
|
6142f2d641 | ||
|
|
0d53f799b7 | ||
|
|
65e77e9669 | ||
|
|
2c8f3b56ae | ||
|
|
8ab190affc | ||
|
|
4fcc9af933 | ||
|
|
e2b4ac6ee8 | ||
|
|
c151049cc2 | ||
|
|
ac778d3f65 | ||
|
|
1aed0cb4b9 | ||
|
|
5836b65aad | ||
|
|
46f750efba | ||
|
|
b33c9e23ce | ||
|
|
14694f1cb0 | ||
|
|
75575348cd | ||
|
|
f6ad0a235c | ||
|
|
bbf6c60888 | ||
|
|
f5915f3e10 | ||
|
|
c90a878c9e | ||
|
|
6943b06a88 | ||
|
|
27a9def88c | ||
|
|
254c8816f1 | ||
|
|
0dfb14962a | ||
|
|
d493df4295 | ||
|
|
90f21f4ed1 | ||
|
|
646ebe592e | ||
|
|
b098a15e9c | ||
|
|
9590559b81 | ||
|
|
24bd2eddf1 | ||
|
|
f4ba06c401 | ||
|
|
cd405d1df9 | ||
|
|
9d6dbc1a6f | ||
|
|
6d57712fca | ||
|
|
080448af3a | ||
|
|
6e2272d043 | ||
|
|
71078dea4f | ||
|
|
333f0be879 | ||
|
|
3b0f664a3b | ||
|
|
2a23d19321 | ||
|
|
5ee4237510 | ||
|
|
bdb906c26d | ||
|
|
02095ac155 | ||
|
|
80d1ca81ac | ||
|
|
3bbabbc80b | ||
|
|
f8ff3d4bf5 | ||
|
|
3a40f9ebd6 | ||
|
|
cf776088e6 | ||
|
|
145ae10a79 | ||
|
|
4f9a0b0040 | ||
|
|
aae584106a | ||
|
|
5f5a7880a6 |
2
.babelrc
2
.babelrc
@@ -5,7 +5,7 @@
|
||||
"presets": ["react-hmre"]
|
||||
},
|
||||
"test": {
|
||||
"presets": ["react", "es2015"],
|
||||
"presets": ["env" ,"react", "es2015"],
|
||||
"plugins": [
|
||||
[ "babel-plugin-webpack-alias", { "config": "${PWD}/webpack.config.js" } ]
|
||||
]
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
"lineNumber": true
|
||||
},
|
||||
"sortBy": "UPDATED_AT",
|
||||
"sortTagsBy": "ALPHABETICAL",
|
||||
"ui": {
|
||||
"defaultNote": "ALWAYS_ASK",
|
||||
"disableDirectWrite": false,
|
||||
|
||||
7
__mocks__/electron.js
Normal file
7
__mocks__/electron.js
Normal file
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
require: jest.genMockFunction(),
|
||||
match: jest.genMockFunction(),
|
||||
app: jest.genMockFunction(),
|
||||
remote: jest.genMockFunction(),
|
||||
dialog: jest.genMockFunction()
|
||||
}
|
||||
@@ -109,6 +109,8 @@ export default class CodeEditor extends React.Component {
|
||||
scrollPastEnd: this.props.scrollPastEnd,
|
||||
inputStyle: 'textarea',
|
||||
dragDrop: false,
|
||||
foldGutter: true,
|
||||
gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],
|
||||
autoCloseBrackets: true,
|
||||
extraKeys: {
|
||||
Tab: function (cm) {
|
||||
@@ -275,11 +277,16 @@ export default class CodeEditor extends React.Component {
|
||||
|
||||
handleDropImage (e) {
|
||||
e.preventDefault()
|
||||
const imagePath = e.dataTransfer.files[0].path
|
||||
const filename = path.basename(imagePath)
|
||||
const ValidImageTypes = ['image/gif', 'image/jpeg', 'image/png']
|
||||
|
||||
copyImage(imagePath, this.props.storageKey).then((imagePath) => {
|
||||
const imageMd = `})`
|
||||
const file = e.dataTransfer.files[0]
|
||||
const filePath = file.path
|
||||
const filename = path.basename(filePath)
|
||||
const fileType = file['type']
|
||||
|
||||
copyImage(filePath, this.props.storageKey).then((imagePath) => {
|
||||
var showPreview = ValidImageTypes.indexOf(fileType) > 0
|
||||
const imageMd = `${showPreview ? '!' : ''}[${filename}](${path.join('/:storage', imagePath)})`
|
||||
this.insertImageMd(imageMd)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import htmlTextHelper from 'browser/lib/htmlTextHelper'
|
||||
import copy from 'copy-to-clipboard'
|
||||
import mdurl from 'mdurl'
|
||||
import exportNote from 'browser/main/lib/dataApi/exportNote'
|
||||
import {escapeHtmlCharacters} from 'browser/lib/utils'
|
||||
|
||||
const { remote } = require('electron')
|
||||
const { app } = remote
|
||||
@@ -208,7 +209,7 @@ export default class MarkdownPreview extends React.Component {
|
||||
const {fontFamily, fontSize, codeBlockFontFamily, lineNumber, codeBlockTheme} = this.getStyleParams()
|
||||
|
||||
const inlineStyles = buildStyle(fontFamily, fontSize, codeBlockFontFamily, lineNumber, codeBlockTheme, lineNumber)
|
||||
const body = this.markdown.render(noteContent)
|
||||
const body = this.markdown.render(escapeHtmlCharacters(noteContent))
|
||||
const files = [this.GetCodeThemeLink(codeBlockTheme), ...CSS_FILES]
|
||||
|
||||
files.forEach((file) => {
|
||||
@@ -394,6 +395,9 @@ export default class MarkdownPreview extends React.Component {
|
||||
|
||||
_.forEach(this.refs.root.contentWindow.document.querySelectorAll('a'), (el) => {
|
||||
this.fixDecodedURI(el)
|
||||
el.href = this.markdown.normalizeLinkText(el.href)
|
||||
if (!/\/:storage/.test(el.href)) return
|
||||
el.href = `file:///${this.markdown.normalizeLinkText(path.join(storagePath, 'images', path.basename(el.href)))}`
|
||||
el.addEventListener('click', this.anchorClickHandler)
|
||||
})
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import CSSModules from 'browser/lib/CSSModules'
|
||||
import { getTodoStatus } from 'browser/lib/getTodoStatus'
|
||||
import styles from './NoteItem.styl'
|
||||
import TodoProcess from './TodoProcess'
|
||||
import i18n from 'browser/lib/i18n'
|
||||
|
||||
/**
|
||||
* @description Tag element component.
|
||||
@@ -76,7 +77,7 @@ const NoteItem = ({
|
||||
<div styleName='item-title'>
|
||||
{note.title.trim().length > 0
|
||||
? note.title
|
||||
: <span styleName='item-title-empty'>Empty</span>
|
||||
: <span styleName='item-title-empty'>{i18n.__('Empty note')}</span>
|
||||
}
|
||||
</div>
|
||||
{['ALL', 'STORAGE'].includes(viewType) && <div styleName='item-middle'>
|
||||
@@ -93,7 +94,7 @@ const NoteItem = ({
|
||||
<div styleName='item-bottom-tagList'>
|
||||
{note.tags.length > 0
|
||||
? TagElementList(note.tags)
|
||||
: <span style={{ fontStyle: 'italic', opacity: 0.5 }} styleName='item-bottom-tagList-empty'>No tags</span>
|
||||
: <span style={{ fontStyle: 'italic', opacity: 0.5 }} styleName='item-bottom-tagList-empty'>{i18n.__('No tags')}</span>
|
||||
}
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -5,6 +5,7 @@ import PropTypes from 'prop-types'
|
||||
import React from 'react'
|
||||
import CSSModules from 'browser/lib/CSSModules'
|
||||
import styles from './NoteItemSimple.styl'
|
||||
import i18n from 'browser/lib/i18n'
|
||||
|
||||
/**
|
||||
* @description Note item component when using simple display mode.
|
||||
@@ -45,7 +46,7 @@ const NoteItemSimple = ({
|
||||
}
|
||||
{note.title.trim().length > 0
|
||||
? note.title
|
||||
: <span styleName='item-simple-title-empty'>Empty</span>
|
||||
: <span styleName='item-simple-title-empty'>{i18n.__('Empty note')}</span>
|
||||
}
|
||||
{isAllNotesView && <div styleName='item-simple-right'>
|
||||
<span styleName='item-simple-right-storageName'>
|
||||
|
||||
@@ -2,6 +2,7 @@ import React from 'react'
|
||||
import CSSModules from 'browser/lib/CSSModules'
|
||||
import styles from './SnippetTab.styl'
|
||||
import context from 'browser/lib/context'
|
||||
import i18n from 'browser/lib/i18n'
|
||||
|
||||
class SnippetTab extends React.Component {
|
||||
constructor (props) {
|
||||
@@ -28,7 +29,7 @@ class SnippetTab extends React.Component {
|
||||
handleContextMenu (e) {
|
||||
context.popup([
|
||||
{
|
||||
label: 'Rename',
|
||||
label: i18n.__('Rename'),
|
||||
click: (e) => this.handleRenameClick(e)
|
||||
}
|
||||
])
|
||||
@@ -114,7 +115,7 @@ class SnippetTab extends React.Component {
|
||||
{snippet.name.trim().length > 0
|
||||
? snippet.name
|
||||
: <span styleName='button-unnamed'>
|
||||
Unnamed
|
||||
{i18n.__('Unnamed')}
|
||||
</span>
|
||||
}
|
||||
</button>
|
||||
|
||||
@@ -10,8 +10,8 @@ import CSSModules from 'browser/lib/CSSModules'
|
||||
* @param {Array} storgaeList
|
||||
*/
|
||||
|
||||
const StorageList = ({storageList}) => (
|
||||
<div styleName='storageList'>
|
||||
const StorageList = ({storageList, isFolded}) => (
|
||||
<div styleName={isFolded ? 'storageList-folded' : 'storageList'}>
|
||||
{storageList.length > 0 ? storageList : (
|
||||
<div styleName='storgaeList-empty'>No storage mount.</div>
|
||||
)}
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
top 180px
|
||||
overflow-y auto
|
||||
|
||||
.storageList-folded
|
||||
@extend .storageList
|
||||
width 44px
|
||||
|
||||
.storageList-empty
|
||||
padding 0 10px
|
||||
margin-top 15px
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
const path = require('path')
|
||||
const { remote } = require('electron')
|
||||
const { app } = remote
|
||||
|
||||
// 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', 'hu', 'ja', 'ko', 'no', 'pl', 'pt', 'es'],
|
||||
locales: ['en', 'sq', 'zh-CN', 'zh-TW', 'da', 'fr', 'de', 'hu', 'ja', 'ko', 'no', 'pl', 'pt', 'es-ES'],
|
||||
extension: '.json',
|
||||
directory: process.env.NODE_ENV === 'production'
|
||||
? path.join(app.getAppPath(), './locales')
|
||||
: path.resolve('./locales'),
|
||||
devMode: false
|
||||
})
|
||||
|
||||
|
||||
@@ -4,39 +4,28 @@ export default function searchFromNotes (notes, search) {
|
||||
if (search.trim().length === 0) return []
|
||||
const searchBlocks = search.split(' ').filter(block => { return block !== '' })
|
||||
|
||||
let foundNotes = findByWord(notes, searchBlocks[0])
|
||||
let foundNotes = notes
|
||||
searchBlocks.forEach((block) => {
|
||||
foundNotes = findByWord(foundNotes, block)
|
||||
if (block.match(/^#.+/)) {
|
||||
foundNotes = foundNotes.concat(findByTag(notes, block))
|
||||
}
|
||||
foundNotes = findByWordOrTag(foundNotes, block)
|
||||
})
|
||||
return foundNotes
|
||||
}
|
||||
|
||||
function findByTag (notes, block) {
|
||||
const tag = block.match(/#(.+)/)[1]
|
||||
const regExp = new RegExp(_.escapeRegExp(tag), 'i')
|
||||
function findByWordOrTag (notes, block) {
|
||||
let tag = block
|
||||
if (tag.match(/^#.+/)) {
|
||||
tag = tag.match(/#(.+)/)[1]
|
||||
}
|
||||
const tagRegExp = new RegExp(_.escapeRegExp(tag), 'i')
|
||||
const wordRegExp = new RegExp(_.escapeRegExp(block), 'i')
|
||||
return notes.filter((note) => {
|
||||
if (!_.isArray(note.tags)) return false
|
||||
return note.tags.some((_tag) => {
|
||||
return _tag.match(regExp)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function findByWord (notes, block) {
|
||||
const regExp = new RegExp(_.escapeRegExp(block), 'i')
|
||||
return notes.filter((note) => {
|
||||
if (_.isArray(note.tags) && note.tags.some((_tag) => {
|
||||
return _tag.match(regExp)
|
||||
})) {
|
||||
if (_.isArray(note.tags) && note.tags.some((_tag) => _tag.match(tagRegExp))) {
|
||||
return true
|
||||
}
|
||||
if (note.type === 'SNIPPET_NOTE') {
|
||||
return note.description.match(regExp)
|
||||
return note.description.match(wordRegExp)
|
||||
} else if (note.type === 'MARKDOWN_NOTE') {
|
||||
return note.content.match(regExp)
|
||||
return note.content.match(wordRegExp)
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
@@ -6,6 +6,55 @@ export function lastFindInArray (array, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
lastFindInArray
|
||||
export function escapeHtmlCharacters (text) {
|
||||
const matchHtmlRegExp = /["'&<>]/
|
||||
const str = '' + text
|
||||
const match = matchHtmlRegExp.exec(str)
|
||||
|
||||
if (!match) {
|
||||
return str
|
||||
}
|
||||
|
||||
let escape
|
||||
let html = ''
|
||||
let index = 0
|
||||
let lastIndex = 0
|
||||
|
||||
for (index = match.index; index < str.length; index++) {
|
||||
switch (str.charCodeAt(index)) {
|
||||
case 34: // "
|
||||
escape = '"'
|
||||
break
|
||||
case 38: // &
|
||||
escape = '&'
|
||||
break
|
||||
case 39: // '
|
||||
escape = '''
|
||||
break
|
||||
case 60: // <
|
||||
escape = '<'
|
||||
break
|
||||
case 62: // >
|
||||
escape = '>'
|
||||
break
|
||||
default:
|
||||
continue
|
||||
}
|
||||
|
||||
if (lastIndex !== index) {
|
||||
html += str.substring(lastIndex, index)
|
||||
}
|
||||
|
||||
lastIndex = index + 1
|
||||
html += escape
|
||||
}
|
||||
|
||||
return lastIndex !== index
|
||||
? html + str.substring(lastIndex, index)
|
||||
: html
|
||||
}
|
||||
|
||||
export default {
|
||||
lastFindInArray,
|
||||
escapeHtmlCharacters
|
||||
}
|
||||
|
||||
@@ -175,8 +175,8 @@ class Main extends React.Component {
|
||||
i18n.setLocale('pt')
|
||||
} else if (config.ui.language === 'ru') {
|
||||
i18n.setLocale('ru')
|
||||
} else if (config.ui.language === 'es') {
|
||||
i18n.setLocale('es')
|
||||
} else if (config.ui.language === 'es-ES') {
|
||||
i18n.setLocale('es-ES')
|
||||
} else {
|
||||
i18n.setLocale('en')
|
||||
}
|
||||
|
||||
@@ -326,8 +326,10 @@ class NoteList extends React.Component {
|
||||
}
|
||||
|
||||
if (location.pathname.match(/\/searched/)) {
|
||||
const searchInputText = document.getElementsByClassName('searchInput')[0].value
|
||||
if (searchInputText === '') {
|
||||
const searchInputText = params.searchword
|
||||
const allNotes = data.noteMap.map((note) => note)
|
||||
this.contextNotes = allNotes
|
||||
if (searchInputText === undefined || searchInputText === '') {
|
||||
return this.sortByPin(this.contextNotes)
|
||||
}
|
||||
return searchFromNotes(this.contextNotes, searchInputText)
|
||||
@@ -481,50 +483,53 @@ class NoteList extends React.Component {
|
||||
const openBlogLabel = i18n.__('Open Blog')
|
||||
|
||||
const menu = new Menu()
|
||||
if (!location.pathname.match(/\/starred|\/trash/)) {
|
||||
menu.append(new MenuItem({
|
||||
label: pinLabel,
|
||||
click: this.pinToTop
|
||||
}))
|
||||
}
|
||||
|
||||
if (location.pathname.match(/\/trash/)) {
|
||||
menu.append(new MenuItem({
|
||||
label: restoreNote,
|
||||
click: this.restoreNote
|
||||
}))
|
||||
}
|
||||
|
||||
menu.append(new MenuItem({
|
||||
label: deleteLabel,
|
||||
click: this.deleteNote
|
||||
}))
|
||||
menu.append(new MenuItem({
|
||||
label: cloneNote,
|
||||
click: this.cloneNote.bind(this)
|
||||
}))
|
||||
menu.append(new MenuItem({
|
||||
label: copyNoteLink,
|
||||
click: this.copyNoteLink(note)
|
||||
}))
|
||||
if (note.type === 'MARKDOWN_NOTE') {
|
||||
if (note.blog && note.blog.blogLink && note.blog.blogId) {
|
||||
menu.append(new MenuItem({
|
||||
label: deleteLabel,
|
||||
click: this.deleteNote
|
||||
}))
|
||||
} else {
|
||||
if (!location.pathname.match(/\/starred/)) {
|
||||
menu.append(new MenuItem({
|
||||
label: updateLabel,
|
||||
click: this.publishMarkdown.bind(this)
|
||||
}))
|
||||
menu.append(new MenuItem({
|
||||
label: openBlogLabel,
|
||||
click: () => this.openBlog.bind(this)(note)
|
||||
}))
|
||||
} else {
|
||||
menu.append(new MenuItem({
|
||||
label: publishLabel,
|
||||
click: this.publishMarkdown.bind(this)
|
||||
label: pinLabel,
|
||||
click: this.pinToTop
|
||||
}))
|
||||
}
|
||||
menu.append(new MenuItem({
|
||||
label: deleteLabel,
|
||||
click: this.deleteNote
|
||||
}))
|
||||
menu.append(new MenuItem({
|
||||
label: cloneNote,
|
||||
click: this.cloneNote.bind(this)
|
||||
}))
|
||||
menu.append(new MenuItem({
|
||||
label: copyNoteLink,
|
||||
click: this.copyNoteLink(note)
|
||||
}))
|
||||
if (note.type === 'MARKDOWN_NOTE') {
|
||||
if (note.blog && note.blog.blogLink && note.blog.blogId) {
|
||||
menu.append(new MenuItem({
|
||||
label: updateLabel,
|
||||
click: this.publishMarkdown.bind(this)
|
||||
}))
|
||||
menu.append(new MenuItem({
|
||||
label: openBlogLabel,
|
||||
click: () => this.openBlog.bind(this)(note)
|
||||
}))
|
||||
} else {
|
||||
menu.append(new MenuItem({
|
||||
label: publishLabel,
|
||||
click: this.publishMarkdown.bind(this)
|
||||
}))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
menu.popup()
|
||||
}
|
||||
|
||||
@@ -650,7 +655,7 @@ class NoteList extends React.Component {
|
||||
.createNote(storage.key, {
|
||||
type: firstNote.type,
|
||||
folder: folder.key,
|
||||
title: firstNote.title + ' copy',
|
||||
title: firstNote.title + ' ' + i18n.__('copy'),
|
||||
content: firstNote.content
|
||||
})
|
||||
.then((note) => {
|
||||
|
||||
@@ -30,11 +30,33 @@
|
||||
display flex
|
||||
flex-direction column
|
||||
|
||||
.tag-title
|
||||
padding-left 15px
|
||||
padding-bottom 13px
|
||||
p
|
||||
color $ui-button-default-color
|
||||
.tag-control
|
||||
display flex
|
||||
height 30px
|
||||
line-height 25px
|
||||
overflow hidden
|
||||
.tag-control-title
|
||||
padding-left 15px
|
||||
padding-bottom 13px
|
||||
flex 1
|
||||
p
|
||||
color $ui-button-default-color
|
||||
.tag-control-sortTagsBy
|
||||
user-select none
|
||||
font-size 12px
|
||||
color $ui-inactive-text-color
|
||||
margin-left 12px
|
||||
margin-right 12px
|
||||
.tag-control-sortTagsBy-select
|
||||
appearance: none;
|
||||
margin-left 5px
|
||||
color $ui-inactive-text-color
|
||||
padding 0
|
||||
border none
|
||||
background-color transparent
|
||||
outline none
|
||||
cursor pointer
|
||||
font-size 12px
|
||||
|
||||
.tagList
|
||||
overflow-y auto
|
||||
|
||||
@@ -82,7 +82,7 @@ class SideNav extends React.Component {
|
||||
}
|
||||
|
||||
SideNavComponent (isFolded, storageList) {
|
||||
const { location, data } = this.props
|
||||
const { location, data, config } = this.props
|
||||
|
||||
const isHomeActive = !!location.pathname.match(/^\/home$/)
|
||||
const isStarredActive = !!location.pathname.match(/^\/starred$/)
|
||||
@@ -108,15 +108,30 @@ class SideNav extends React.Component {
|
||||
handleFilterButtonContextMenu={this.handleFilterButtonContextMenu.bind(this)}
|
||||
/>
|
||||
|
||||
<StorageList storageList={storageList} />
|
||||
<StorageList storageList={storageList} isFolded={isFolded} />
|
||||
<NavToggleButton isFolded={isFolded} handleToggleButtonClick={this.handleToggleButtonClick.bind(this)} />
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
component = (
|
||||
<div styleName='tabBody'>
|
||||
<div styleName='tag-title'>
|
||||
<p>{i18n.__('Tags')}</p>
|
||||
<div styleName='tag-control'>
|
||||
<div styleName='tag-control-title'>
|
||||
<p>{i18n.__('Tags')}</p>
|
||||
</div>
|
||||
<div styleName='tag-control-sortTagsBy'>
|
||||
<i className='fa fa-angle-down' />
|
||||
<select styleName='tag-control-sortTagsBy-select'
|
||||
title={i18n.__('Select filter mode')}
|
||||
value={config.sortTagsBy}
|
||||
onChange={(e) => this.handleSortTagsByChange(e)}
|
||||
>
|
||||
<option title='Sort alphabetically'
|
||||
value='ALPHABETICAL'>{i18n.__('Alphabetically')}</option>
|
||||
<option title='Sort by update time'
|
||||
value='COUNTER'>{i18n.__('Counter')}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div styleName='tagList'>
|
||||
{this.tagListComponent(data)}
|
||||
@@ -129,17 +144,21 @@ class SideNav extends React.Component {
|
||||
}
|
||||
|
||||
tagListComponent () {
|
||||
const { data, location } = this.props
|
||||
const tagList = _.sortBy(data.tagNoteMap.map((tag, name) => {
|
||||
return { name, size: tag.size }
|
||||
}), ['name'])
|
||||
const { data, location, config } = this.props
|
||||
let tagList = _.sortBy(data.tagNoteMap.map(
|
||||
(tag, name) => ({name, size: tag.size})),
|
||||
['name']
|
||||
)
|
||||
if (config.sortTagsBy === 'COUNTER') {
|
||||
tagList = _.sortBy(tagList, item => (0 - item.size))
|
||||
}
|
||||
return (
|
||||
tagList.map(tag => {
|
||||
return (
|
||||
<TagListItem
|
||||
name={tag.name}
|
||||
handleClickTagListItem={this.handleClickTagListItem.bind(this)}
|
||||
isActive={this.getTagActive(location.pathname, tag)}
|
||||
isActive={this.getTagActive(location.pathname, tag.name)}
|
||||
key={tag.name}
|
||||
count={tag.size}
|
||||
/>
|
||||
@@ -159,6 +178,20 @@ class SideNav extends React.Component {
|
||||
router.push(`/tags/${name}`)
|
||||
}
|
||||
|
||||
handleSortTagsByChange (e) {
|
||||
const { dispatch } = this.props
|
||||
|
||||
const config = {
|
||||
sortTagsBy: e.target.value
|
||||
}
|
||||
|
||||
ConfigManager.set(config)
|
||||
dispatch({
|
||||
type: 'SET_CONFIG',
|
||||
config
|
||||
})
|
||||
}
|
||||
|
||||
emptyTrash (entries) {
|
||||
const { dispatch } = this.props
|
||||
const deletionPromises = entries.map((note) => {
|
||||
|
||||
@@ -28,6 +28,14 @@ class TopBar extends React.Component {
|
||||
}
|
||||
|
||||
componentDidMount () {
|
||||
const { params } = this.props
|
||||
const searchWord = params.searchword
|
||||
if (searchWord !== undefined) {
|
||||
this.setState({
|
||||
search: searchWord,
|
||||
isSearching: true
|
||||
})
|
||||
}
|
||||
ee.on('top:focus-search', this.focusSearchHandler)
|
||||
ee.on('code:init', this.codeInitHandler)
|
||||
}
|
||||
@@ -97,9 +105,10 @@ class TopBar extends React.Component {
|
||||
this.setState({
|
||||
isConfirmTranslation: true
|
||||
})
|
||||
router.push('/searched')
|
||||
const keyword = this.refs.searchInput.value
|
||||
router.push(`/searched/${encodeURIComponent(keyword)}`)
|
||||
this.setState({
|
||||
search: this.refs.searchInput.value
|
||||
search: keyword
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -108,7 +117,7 @@ class TopBar extends React.Component {
|
||||
const { router } = this.context
|
||||
const keyword = this.refs.searchInput.value
|
||||
if (this.state.isAlphabet || this.state.isConfirmTranslation) {
|
||||
router.push('/searched')
|
||||
router.push(`/searched/${encodeURIComponent(keyword)}`)
|
||||
} else {
|
||||
e.preventDefault()
|
||||
}
|
||||
|
||||
@@ -108,6 +108,21 @@ body[data-theme="dark"]
|
||||
background #B1D7FE
|
||||
::selection
|
||||
background #B1D7FE
|
||||
.CodeMirror-foldmarker
|
||||
font-family: arial
|
||||
|
||||
.CodeMirror-foldgutter
|
||||
width: .7em
|
||||
|
||||
.CodeMirror-foldgutter-open,
|
||||
.CodeMirror-foldgutter-folded
|
||||
cursor: pointer
|
||||
|
||||
.CodeMirror-foldgutter-open:after
|
||||
content: "\25BE"
|
||||
|
||||
.CodeMirror-foldgutter-folded:after
|
||||
content: "\25B8"
|
||||
|
||||
.sortableItemHelper
|
||||
z-index modalZIndex + 5
|
||||
|
||||
@@ -64,7 +64,9 @@ ReactDOM.render((
|
||||
<IndexRedirect to='/home' />
|
||||
<Route path='home' />
|
||||
<Route path='starred' />
|
||||
<Route path='searched' />
|
||||
<Route path='searched'>
|
||||
<Route path=':searchword' />
|
||||
</Route>
|
||||
<Route path='trashed' />
|
||||
<Route path='alltags' />
|
||||
<Route path='tags'>
|
||||
|
||||
@@ -16,6 +16,7 @@ export const DEFAULT_CONFIG = {
|
||||
listWidth: 280,
|
||||
navWidth: 200,
|
||||
sortBy: 'UPDATED_AT', // 'CREATED_AT', 'UPDATED_AT', 'APLHABETICAL'
|
||||
sortTagsBy: 'ALPHABETICAL', // 'ALPHABETICAL', 'COUNTER'
|
||||
listStyle: 'DEFAULT', // 'DEFAULT', 'SMALL'
|
||||
amaEnabled: true,
|
||||
hotkey: {
|
||||
@@ -138,37 +139,7 @@ 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 === 'hu') {
|
||||
i18n.setLocale('hu')
|
||||
} 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')
|
||||
}
|
||||
i18n.setLocale(newConfig.ui.language)
|
||||
|
||||
let editorTheme = document.getElementById('editorTheme')
|
||||
if (editorTheme == null) {
|
||||
|
||||
@@ -27,9 +27,12 @@ function resolveStorageNotes (storage) {
|
||||
data.storage = storage.key
|
||||
return data
|
||||
} catch (err) {
|
||||
console.error(notePath)
|
||||
console.error(`error on note path: ${notePath}, error: ${err}`)
|
||||
}
|
||||
})
|
||||
.filter(function filterOnlyNoteObject (noteObj) {
|
||||
return typeof noteObj === 'object'
|
||||
})
|
||||
|
||||
return Promise.resolve(notes)
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ class CreateFolderModal extends React.Component {
|
||||
<button styleName='control-confirmButton'
|
||||
onClick={(e) => this.handleConfirmButtonClick(e)}
|
||||
>
|
||||
Create
|
||||
{i18n.__('Create')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -151,12 +151,12 @@ class FolderItem extends React.Component {
|
||||
<button styleName='folderItem-right-confirmButton'
|
||||
onClick={(e) => this.handleConfirmButtonClick(e)}
|
||||
>
|
||||
Confirm
|
||||
{i18n.__('Confirm')}
|
||||
</button>
|
||||
<button styleName='folderItem-right-button'
|
||||
onClick={(e) => this.handleCancelButtonClick(e)}
|
||||
>
|
||||
Cancel
|
||||
{i18n.__('Cancel')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -120,8 +120,8 @@ class HotkeyTab extends React.Component {
|
||||
onClick={(e) => this.handleHintToggleButtonClick(e)}
|
||||
>
|
||||
{this.state.isHotkeyHintOpen
|
||||
? 'Hide Help'
|
||||
: 'Help'
|
||||
? i18n.__('Hide Help')
|
||||
: i18n.__('Help')
|
||||
}
|
||||
</button>
|
||||
<button styleName='group-control-rightButton'
|
||||
@@ -131,7 +131,7 @@ class HotkeyTab extends React.Component {
|
||||
</div>
|
||||
{this.state.isHotkeyHintOpen &&
|
||||
<div styleName='group-hint'>
|
||||
<p>Available Keys</p>
|
||||
<p>{i18n.__('Available Keys')}</p>
|
||||
<ul>
|
||||
<li><code>0</code> to <code>9</code></li>
|
||||
<li><code>A</code> to <code>Z</code></li>
|
||||
|
||||
@@ -23,7 +23,7 @@ class StorageItem extends React.Component {
|
||||
handleNewFolderButtonClick (e) {
|
||||
const { storage } = this.props
|
||||
const input = {
|
||||
name: 'Untitled',
|
||||
name: i18n.__('New Folder'),
|
||||
color: consts.FOLDER_COLORS[Math.floor(Math.random() * 7) % 7]
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ class RenameFolderModal extends React.Component {
|
||||
<button styleName='control-confirmButton'
|
||||
onClick={(e) => this.handleConfirmButtonClick(e)}
|
||||
>
|
||||
Confirm
|
||||
{i18n.__('Confirm')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -40,7 +40,7 @@ mainWindow.webContents.sendInputEvent({
|
||||
keyCode: '\u0008'
|
||||
})
|
||||
|
||||
if (process.platform === 'darwin' || process.env.DESKTOP_SESSION === 'cinnamon') {
|
||||
if (process.platform === 'darwin') {
|
||||
mainWindow.on('close', function (e) {
|
||||
e.preventDefault()
|
||||
if (mainWindow.isFullScreen()) {
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
<script src="../extra_scripts/boost/boostNewLineIndentContinueMarkdownList.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/edit/closebrackets.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/edit/matchbrackets.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/search/search.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/search/searchcursor.js"></script>
|
||||
@@ -92,6 +93,11 @@
|
||||
<script src="../node_modules/codemirror/addon/scroll/scrollpastend.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/search/matchesonscrollbar.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/search/jump-to-line.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/fold/brace-fold.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/fold/foldgutter.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/fold/foldcode.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/dialog/dialog.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/display/rulers.js"></script>
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
|
||||
177
locales/de.json
177
locales/de.json
@@ -3,8 +3,8 @@
|
||||
"Tags": "Tags",
|
||||
"Preferences": "Einstellungen",
|
||||
"Make a note": "Notiz erstellen",
|
||||
"Ctrl": "Ctrl",
|
||||
"Ctrl(^)": "Ctrl",
|
||||
"Ctrl": "Strg",
|
||||
"Ctrl(^)": "Strg",
|
||||
"to create a new note": "um eine neue Notiz zu erstellen",
|
||||
"Toggle Mode": "Modus umschalten",
|
||||
"Trash": "Papierkorb",
|
||||
@@ -18,21 +18,21 @@
|
||||
".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",
|
||||
"Print": "Drucken",
|
||||
"Your preferences for Boostnote": "Boostnote Einstellungen",
|
||||
"Storages": "Speicherverwaltung",
|
||||
"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",
|
||||
"Interface": "Darstellung",
|
||||
"Interface Theme": "Stil",
|
||||
"Default": "Standard",
|
||||
"White": "Weiß",
|
||||
"White": "Hell",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
"Dark": "Dunkel",
|
||||
"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",
|
||||
@@ -41,34 +41,34 @@
|
||||
"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",
|
||||
"When Editor Blurred": "Wenn Editor nicht fokusiert",
|
||||
"When Editor Blurred, Edit On Double Click": "Mit Doppelklick bearbeiten, wenn Editor in Vorschaumodus",
|
||||
"On Right Click": "Mit Rechtsklick",
|
||||
"Editor Keymap": "Editor Tastenbelegung",
|
||||
"default": "standard",
|
||||
"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",
|
||||
"Bring in web page title when pasting URL on editor": "Titel der Website beim Einfügen in den Editor anzeigen",
|
||||
"Preview": "Vorschau",
|
||||
"Preview Font Size": "Vorschau Schriftgröße",
|
||||
"Preview Font Family": "Vorschau Schriftart",
|
||||
"Code block Theme": "Code block Theme",
|
||||
"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",
|
||||
"LaTeX Inline Open Delimiter": "LaTeX Inline Beginn Kennzeichen",
|
||||
"LaTeX Inline Close Delimiter": "LaTeX Inline Ende Kennzeichen",
|
||||
"LaTeX Block Open Delimiter": "LaTeX Block Beginn Kennzeichen",
|
||||
"LaTeX Block Close Delimiter": "LaTeX Block Ende Kennzeichen",
|
||||
"Community": "Community",
|
||||
"Subscribe to Newsletter": "Newsletter abonnieren",
|
||||
"GitHub": "GitHub",
|
||||
"Blog": "Blog",
|
||||
"Facebook Group": "Facebook Group",
|
||||
"Facebook Group": "Facebook Gruppe",
|
||||
"Twitter": "Twitter",
|
||||
"About": "About",
|
||||
"About": "Über",
|
||||
"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",
|
||||
@@ -77,42 +77,42 @@
|
||||
"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.",
|
||||
"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. Persönliche Informationen, wie z.B. der Inhalt deiner Notizen, werden dabei nicht erfasst.",
|
||||
"You can see how it works on ": "Wie das funktioniert, kannst du dir hier ansehen ",
|
||||
"You can choose to enable or disable this option.": "Du kannst wählen, ob du diese Option aktivieren oder daektivieren möchtest.",
|
||||
"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",
|
||||
"Dear everyone,": "Hallo,",
|
||||
"Thank you for using Boostnote!": "Danke, dass du Boostnote verwendest.",
|
||||
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote wird in über 200 verschiedenen Ländern von einer großartigen Community von Entwicklern verwendet.",
|
||||
"To continue supporting this growth, and to satisfy community expectations,": "Um die Erwartungen der Community weiterhin erfüllen zu können und die Verbreitung von Boostnote weiter voranzutreiben,",
|
||||
"we would like to invest more time and resources in this project.": "würden wir gern mehr Zeit und Resourcen in dieses Projekt investieren.",
|
||||
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Wenn dir dieses Projekt gefällt und du sein Potential erkennst, kannst du uns gern mit OpenCollective unterstützen!",
|
||||
"Thanks,": "Vielen Dank,",
|
||||
"Boostnote maintainers": "Dein Boostnote Team",
|
||||
"Support via OpenCollective": "Unterstützen mit OpenCollective",
|
||||
"Language": "Sprache",
|
||||
"English": "Englisch",
|
||||
"German": "Deutsch",
|
||||
"French": "Französisch",
|
||||
"Show \"Saved to Clipboard\" notification when copying": "\"Auf Clipboard gespeichert\" Benachrichtigungen beim kopieren anzeigen",
|
||||
"Show \"Saved to Clipboard\" notification when copying": "\"Auf Clipboard gespeichert\" Benachrichtigungen beim Kopieren anzeigen",
|
||||
"All Notes": "Alle Notizen",
|
||||
"Starred": "Starred",
|
||||
"Starred": "Markiert",
|
||||
"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.",
|
||||
"This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "Mit diesem Format kannst du einzelne Textdokumente erstellen. Dabei stehen dir Checklisten, Code- & Latex-Blöcke zur Verfügung.",
|
||||
"Snippet Note": "Codeschnipsel",
|
||||
"This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "Mit diesem Format kannst du mehrere Codeschnipsel erstellen und sie in einer Notiz zusammenfassen.",
|
||||
"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",
|
||||
"Compressed View": "Kompaktansicht",
|
||||
"Search": "Suchen",
|
||||
"Blog Type": "Blog-Typ",
|
||||
"Blog Address": "Blog Adresse",
|
||||
@@ -122,34 +122,87 @@
|
||||
"JWT": "JWT",
|
||||
"USER": "BENUTZER",
|
||||
"Token": "Token",
|
||||
"Storage": "Speicherorte",
|
||||
"Hotkeys": "Hotkeys",
|
||||
"Storage": "Speicher",
|
||||
"Hotkeys": "Tastenkürzel",
|
||||
"Show/Hide Boostnote": "Boostnote anzeigen/verstecken",
|
||||
"Restore": "Restore",
|
||||
"Permanent Delete": "Dauerhaft Löschen",
|
||||
"Restore": "Wiederherstellen",
|
||||
"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",
|
||||
"This will permanently remove this note.": "Diese Notiz wird dauerhaft gelöscht.",
|
||||
"You have to save!": "Speichern notwendig!",
|
||||
"Albanian": "Albanisch",
|
||||
"Danish": "Dänisch",
|
||||
"Japanese": "Japanisch",
|
||||
"Korean": "Koreanisch",
|
||||
"Norwegian": "Norwegisch",
|
||||
"Polish": "Polnish",
|
||||
"Polish": "Polnisch",
|
||||
"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",
|
||||
"Command(⌘)": "Command(⌘)",
|
||||
"Editor Rulers": "Editor Rulers",
|
||||
"Enable": "Enable",
|
||||
"Disable": "Disable",
|
||||
"Chinese (zh-CN)": "Chinesisch (China)",
|
||||
"Chinese (zh-TW)": "Chinesisch (Taiwan)",
|
||||
"Successfully applied!": "Erfolgreich gespeichert!",
|
||||
"UserName": "Benutzername",
|
||||
"Password": "Passwort",
|
||||
"Russian": "Russisch",
|
||||
"Command(⌘)": "Befehlstaste(⌘)",
|
||||
"Editor Rulers": "Editor Trennline",
|
||||
"Enable": "Aktiviert",
|
||||
"Disable": "Deaktiviert",
|
||||
"Sanitization": "Sanitization",
|
||||
"Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)",
|
||||
"Allow styles": "Allow styles",
|
||||
"Allow dangerous html tags": "Allow dangerous html tags"
|
||||
"Only allow secure html tags (recommended)": "Erlaube nur sichere HTML Tags (empfohlen)",
|
||||
"Allow styles": "Erlaube Styles",
|
||||
"Allow dangerous html tags": "Erlaube gefähliche HTML Tags",
|
||||
"Select filter mode": "Wähle Filter Modus",
|
||||
"Add tag...": "Tag hinzufügen...",
|
||||
"Star": "Markieren",
|
||||
"Fullscreen": "Vollbild",
|
||||
"Info": "Info",
|
||||
"Remove pin": "Pin entfernen",
|
||||
"Pin to Top": "Notiz anpinnen",
|
||||
"Delete Note": "Notiz löschen",
|
||||
"Clone Note": "Notiz duplizieren",
|
||||
"Restore Note": "Notiz wiederherstellen",
|
||||
"Copy Note Link": "Link zur Notiz kopieren",
|
||||
"Publish Blog": "Auf Blog veröffentlichen",
|
||||
"Update Blog": "Blog aktualisieren",
|
||||
"Open Blog": "Blog öffnen",
|
||||
"Empty Trash": "Papierkorb leeren",
|
||||
"Rename Folder": "Ordner umbenennen",
|
||||
"Export Folder": "Ordner exportieren",
|
||||
"Export as txt": "Exportieren als txt",
|
||||
"Export as md": "Exportieren als md",
|
||||
"Delete Folder": "Ordner löschen",
|
||||
"Select directory": "Ordner auswählen",
|
||||
"Select a folder to export the files to": "Wähle einen Ordner zum Export der Dateien",
|
||||
"Description...": "Beschreibung...",
|
||||
"Publish Failed": "Veröffentlichung fehlgeschlagen",
|
||||
"Check and update your blog setting and try again.": "Prüfe und aktualisiere deine Blog Einstellungen und versuche es noch einmal.",
|
||||
"Delete a snippet": "Codeschnipsel löschen",
|
||||
"This work cannot be undone.": "Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"Help": "Hilfe",
|
||||
"Hungarian": "Ungarisch",
|
||||
"Hide Help": "Hilfe verstecken",
|
||||
"wordpress": "Wordpress",
|
||||
"Add Storage": "Speicher hinzufügen",
|
||||
"Name": "Name",
|
||||
"Type": "Typ",
|
||||
"File System": "Dateisystem",
|
||||
"Setting up 3rd-party cloud storage integration:": "Integration von Cloudspeicher externer Anbieter einrichten:",
|
||||
"Cloud-Syncing-and-Backup": "Cloud-Syncing-and-Backup",
|
||||
"Location": "Ort",
|
||||
"Add": "Hinzufügen",
|
||||
"Available Keys": "Verfügbare Tasten",
|
||||
"Select Directory": "Ordner auswählen",
|
||||
"copy": "Kopie",
|
||||
"Create new folder": "Ordner erstellen",
|
||||
"Folder name": "Ordnername",
|
||||
"Create": "Erstellen",
|
||||
"Untitled": "Neuer Ordner",
|
||||
"Unlink Storage": "Speicherverknüpfung aufheben",
|
||||
"Unlinking removes this linked storage from Boostnote. No data is removed, please manually delete the folder from your hard drive if needed.": "Die Verknüpfung des Speichers mit Boostnote wird entfernt. Es werden keine Daten gelöscht. Um die Daten dauerhaft zu löschen musst du den Ordner auf der Festplatte manuell entfernen.",
|
||||
"Empty note": "Leere Notiz",
|
||||
"Unnamed": "Unbenannt",
|
||||
"Rename": "Umbenennen",
|
||||
"Folder Name": "Ordnername",
|
||||
"No tags": "Keine Tags"
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
@@ -111,6 +111,7 @@
|
||||
"Updated": "Updated",
|
||||
"Created": "Created",
|
||||
"Alphabetically": "Alphabetically",
|
||||
"Counter": "Counter",
|
||||
"Default View": "Default View",
|
||||
"Compressed View": "Compressed View",
|
||||
"Search": "Search",
|
||||
@@ -152,4 +153,4 @@
|
||||
"Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)",
|
||||
"Allow styles": "Allow styles",
|
||||
"Allow dangerous html tags": "Allow dangerous html tags"
|
||||
}
|
||||
}
|
||||
|
||||
153
locales/es-ES.json
Normal file
153
locales/es-ES.json
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"Notes": "Notas",
|
||||
"Tags": "Etiquetas",
|
||||
"Preferences": "Preferencias",
|
||||
"Make a note": "Tomar una nota",
|
||||
"Ctrl": "Ctrl",
|
||||
"Ctrl(^)": "Ctrl",
|
||||
"to create a new note": "para crear una nueva nota",
|
||||
"Toggle Mode": "Alternar modo",
|
||||
"Trash": "Basura",
|
||||
"MODIFICATION DATE": "FECHA DE MODIFICACIÓN",
|
||||
"Words": "Palabras",
|
||||
"Letters": "Letras",
|
||||
"STORAGE": "ALMACENAMIENTO",
|
||||
"FOLDER": "CARPETA",
|
||||
"CREATION DATE": "FECHA DE CREACIÓN",
|
||||
"NOTE LINK": "ENLACE A LA NOTA",
|
||||
".md": ".md",
|
||||
".txt": ".txt",
|
||||
".html": ".html",
|
||||
"Print": "Imprimir",
|
||||
"Your preferences for Boostnote": "Tus preferencias para Boostnote",
|
||||
"Storages": "Almacenamientos",
|
||||
"Add Storage Location": "Añadir ubicación de almacenamiento",
|
||||
"Add Folder": "Añadir carpeta",
|
||||
"Open Storage folder": "Añadir carpeta de almacenamiento",
|
||||
"Unlink": "Desvincular",
|
||||
"Edit": "Editar",
|
||||
"Delete": "Eliminar",
|
||||
"Interface": "Interfaz",
|
||||
"Interface Theme": "Tema de la interfaz",
|
||||
"Default": "Por defecto",
|
||||
"White": "Blanco",
|
||||
"Solarized Dark": "Solarizado oscuro",
|
||||
"Dark": "Oscuro",
|
||||
"Show a confirmation dialog when deleting notes": "Requerir confirmación al eliminar nota",
|
||||
"Editor Theme": "Tema del editor",
|
||||
"Editor Font Size": "Tamaño de fuente del editor",
|
||||
"Editor Font Family": "Fuente del editor",
|
||||
"Editor Indent Style": "Estilo de indentado del editor",
|
||||
"Spaces": "Espacios",
|
||||
"Tabs": "Tabulación",
|
||||
"Switch to Preview": "Cambiar a Previsualización",
|
||||
"When Editor Blurred": "Cuando el editor pierde el foco",
|
||||
"When Editor Blurred, Edit On Double Click": "Cuando el editor pierde el foco, editar con doble clic",
|
||||
"On Right Click": "Al hacer clic derecho",
|
||||
"Editor Keymap": "Mapeo de teclas del editor",
|
||||
"default": "por defecto",
|
||||
"vim": "vim",
|
||||
"emacs": "emacs",
|
||||
"⚠️ Please restart boostnote after you change the keymap": "⚠️ Reinicie boostnote después de cambiar el mapeo de teclas",
|
||||
"Show line numbers in the editor": "Mostrar números de línea en el editor",
|
||||
"Allow editor to scroll past the last line": "Permitir al editor desplazarse más allá de la última línea",
|
||||
"Bring in web page title when pasting URL on editor": "Al pegar una URL en el editor, insertar el título de la web automáticamente",
|
||||
"Preview": "Previsualización",
|
||||
"Preview Font Size": "Previsualizar tamaño de la fuente",
|
||||
"Preview Font Family": "Previsualizar fuente",
|
||||
"Code block Theme": "Tema de los bloques de código",
|
||||
"Allow preview to scroll past the last line": "Permitir a la previsualización desplazarse más allá de la última línea",
|
||||
"Show line numbers for preview code blocks": "Mostar números de línea al previsualizar bloques de código",
|
||||
"LaTeX Inline Open Delimiter": "Delimitador de apertura LaTeX en línea",
|
||||
"LaTeX Inline Close Delimiter": "Delimitador de cierre LaTeX en línea",
|
||||
"LaTeX Block Open Delimiter": "Delimitado de apertura bloque LaTeX",
|
||||
"LaTeX Block Close Delimiter": "Delimitador de cierre bloque LaTeX",
|
||||
"Community": "Comunidad",
|
||||
"Subscribe to Newsletter": "Suscribirse al boletín",
|
||||
"GitHub": "GitHub",
|
||||
"Blog": "Blog",
|
||||
"Facebook Group": "Grupo de Facebook",
|
||||
"Twitter": "Twitter",
|
||||
"About": "Sobre",
|
||||
"Boostnote": "Boostnote",
|
||||
"An open source note-taking app made for programmers just like you.": "Una aplicación para tomar notas de código abieto para programadores como tú.",
|
||||
"Website": "Página web",
|
||||
"Development": "Desarrollo",
|
||||
" : Development configurations for Boostnote.": " : Configuraciones de desarrollo para Boostnote.",
|
||||
"Copyright (C) 2017 - 2018 BoostIO": "Copyright (C) 2017 - 2018 BoostIO",
|
||||
"License: GPL v3": "Licencia: GPL v3",
|
||||
"Analytics": "Analítica",
|
||||
"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 recopila datos anónimos con el único propósito de mejorar la aplicación. No recopila ninguna información personal, como puede ser el contenido de sus notas.",
|
||||
"You can see how it works on ": "Puedes ver cómo funciona en ",
|
||||
"You can choose to enable or disable this option.": "Puedes elegir activar o desactivar esta opción.",
|
||||
"Enable analytics to help improve Boostnote": "Activa analítica para ayudar a mejorar Boostnote",
|
||||
"Crowdfunding": "Crowdfunding",
|
||||
"Dear everyone,": "Hola a todos,",
|
||||
"Thank you for using Boostnote!": "Gracias por usar Boostnote!",
|
||||
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote es utilizado en alrededor de 200 países y regiones diferentes por una increíble comunidad de desarrolladores.",
|
||||
"To continue supporting this growth, and to satisfy community expectations,": "Para continuar apoyando este crecimiento y satisfacer las expectativas de la comunidad,",
|
||||
"we would like to invest more time and resources in this project.": "nos gustaría invertir más tiempo y recursos en este proyecto.",
|
||||
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Si te gusta este proyecto y ves potencial en él, ¡puedes ayudar apoyándonos en OpenCollective!",
|
||||
"Thanks,": "Gracias,",
|
||||
"Boostnote maintainers": "Equipo de Boostnote",
|
||||
"Support via OpenCollective": "Contribuir vía OpenCollective",
|
||||
"Language": "Idioma",
|
||||
"English": "Inglés",
|
||||
"German": "Alemán",
|
||||
"French": "Francés",
|
||||
"Show \"Saved to Clipboard\" notification when copying": "Mostrar la notificaión \"Guardado en Portapapeles\" al copiar",
|
||||
"All Notes": "Todas las notas",
|
||||
"Starred": "Destacado",
|
||||
"Are you sure to ": "Estás seguro de ",
|
||||
" delete": " eliminar",
|
||||
"this folder?": "esta carpeta?",
|
||||
"Confirm": "Confirmar",
|
||||
"Cancel": "Cancelar",
|
||||
"Markdown Note": "Nota Markdown",
|
||||
"This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "Formato para crear documentos de texto. Permite utilizar listas, bloques de código y LaTeX.",
|
||||
"Snippet Note": "Nota Snippet",
|
||||
"This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "Formato para fragmentos de código. Múltiples fragmentos se pueden agrupar en una sola nota.",
|
||||
"Tab to switch format": "Tabulador para cambiar formato",
|
||||
"Updated": "Actualizado",
|
||||
"Created": "Creado",
|
||||
"Alphabetically": "Alfabéticamente",
|
||||
"Default View": "Vista por defecto",
|
||||
"Compressed View": "Vista comprimida",
|
||||
"Search": "Buscar",
|
||||
"Blog Type": "Tipo de blog",
|
||||
"Blog Address": "Dirección del blog",
|
||||
"Save": "Guardar",
|
||||
"Auth": "Auth",
|
||||
"Authentication Method": "Método de autentificación",
|
||||
"JWT": "JWT",
|
||||
"USER": "USUARIO",
|
||||
"Token": "Token",
|
||||
"Storage": "Almacenamiento",
|
||||
"Hotkeys": "Atajos de teclado",
|
||||
"Show/Hide Boostnote": "Mostrar/Ocultar Boostnote",
|
||||
"Restore": "Restaurar",
|
||||
"Permanent Delete": "Eliminar permanentemente",
|
||||
"Confirm note deletion": "Confirmar eliminación de nota",
|
||||
"This will permanently remove this note.": "La nota se eliminará permanentemente.",
|
||||
"Successfully applied!": "Aplicado con éxito!",
|
||||
"Albanian": "Albanés",
|
||||
"Chinese (zh-CN)": "Chino - China",
|
||||
"Chinese (zh-TW)": "Chino - Taiwan",
|
||||
"Danish": "Danés",
|
||||
"Japanese": "Japonés",
|
||||
"Korean": "Coreano",
|
||||
"Norwegian": "Noruego",
|
||||
"Polish": "Polaco",
|
||||
"Portuguese": "Portugues",
|
||||
"Spanish": "Español",
|
||||
"You have to save!": "Tienes que guardar!",
|
||||
"Russian": "Ruso",
|
||||
"Command(⌘)": "Command(⌘)",
|
||||
"Editor Rulers": "Reglas del editor",
|
||||
"Enable": "Activar",
|
||||
"Disable": "Desactivar",
|
||||
"Sanitization": "Saneamiento",
|
||||
"Only allow secure html tags (recommended)": "Solo permitir etiquetas html seguras (recomendado)",
|
||||
"Allow styles": "Permitir estilos",
|
||||
"Allow dangerous html tags": "Permitir etiques html peligrosas"
|
||||
}
|
||||
153
locales/es.json
153
locales/es.json
@@ -1,153 +0,0 @@
|
||||
{
|
||||
"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": "Preview",
|
||||
"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",
|
||||
"Command(⌘)": "Command(⌘)",
|
||||
"Editor Rulers": "Editor Rulers",
|
||||
"Enable": "Enable",
|
||||
"Disable": "Disable",
|
||||
"Sanitization": "Sanitization",
|
||||
"Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)",
|
||||
"Allow styles": "Allow styles",
|
||||
"Allow dangerous html tags": "Allow dangerous html tags"
|
||||
}
|
||||
@@ -111,6 +111,7 @@
|
||||
"Updated": "Módosítás",
|
||||
"Created": "Létrehozás",
|
||||
"Alphabetically": "Ábécé sorrendben",
|
||||
"Counter": "Számláló",
|
||||
"Default View": "Alapértelmezett Nézet",
|
||||
"Compressed View": "Tömörített Nézet",
|
||||
"Search": "Keresés",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
|
||||
152
locales/pt-BR.json
Normal file
152
locales/pt-BR.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"Notes": "Notas",
|
||||
"Tags": "Etiquetas",
|
||||
"Preferences": "Preferências",
|
||||
"Make a note": "Fazer uma nota",
|
||||
"Ctrl": "Ctrl",
|
||||
"Ctrl(^)": "Ctrl",
|
||||
"to create a new note": "para criar uma nova nota",
|
||||
"Toggle Mode": "Modo de alternância",
|
||||
"Trash": "Lixeira",
|
||||
"MODIFICATION DATE": "DATA DE MODIFICAÇÃO",
|
||||
"Words": "Palavras",
|
||||
"Letters": "Letras",
|
||||
"STORAGE": "ARMAZENAMENTO",
|
||||
"FOLDER": "PASTA",
|
||||
"CREATION DATE": "DATA DE CRIAÇÃO",
|
||||
"NOTE LINK": "VÍNCULO DA NOTA",
|
||||
".md": ".md",
|
||||
".txt": ".txt",
|
||||
".html": ".html",
|
||||
"Print": "Imprimir",
|
||||
"Your preferences for Boostnote": "Suas preferências para o Boostnote",
|
||||
"Storages": "Armazenamentos",
|
||||
"Add Storage Location": "Adicionar Local de Armazenamento",
|
||||
"Add Folder": "Adicionar Pasta",
|
||||
"Open Storage folder": "Abrir Local de Armazenamento",
|
||||
"Unlink": "Desvincular",
|
||||
"Edit": "Editar",
|
||||
"Delete": "Apagar",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Tema da Interface",
|
||||
"Default": "Padrão",
|
||||
"White": "Branco",
|
||||
"Solarized Dark": "Escuro Solarizado",
|
||||
"Dark": "Escuro",
|
||||
"Show a confirmation dialog when deleting notes": "Mostrar um diálogo de confirmação ao escluir notas",
|
||||
"Editor Theme": "Tema do Editor",
|
||||
"Editor Font Size": "Tamanho da Fonte do Editor",
|
||||
"Editor Font Family": "Família da Fonte do Editor",
|
||||
"Editor Indent Style": "Estílo de Indentação do Editor",
|
||||
"Spaces": "Espaços",
|
||||
"Tabs": "Tabulação",
|
||||
"Switch to Preview": "Mudar para a Pré-Visualização",
|
||||
"When Editor Blurred": "Quando o Editor Obscurece",
|
||||
"When Editor Blurred, Edit On Double Click": "Quando o Editor Obscurece, Editar com Duplo Clique",
|
||||
"On Right Click": "Ao Clicar Com o Botão Direito",
|
||||
"Editor Keymap": "Mapa de Teclado do Editor",
|
||||
"default": "padrão",
|
||||
"vim": "vim",
|
||||
"emacs": "emacs",
|
||||
"⚠️ Please restart boostnote after you change the keymap": "⚠️ Por favor, reinicie o boostnote depois de alterar o mapa de teclado",
|
||||
"Show line numbers in the editor": "Mostrar os números das linhas no editor",
|
||||
"Allow editor to scroll past the last line": "Permitir ao editor rolar além da última linha",
|
||||
"Bring in web page title when pasting URL on editor": "Trazer o título da página da Web ao colar a URL no editor",
|
||||
"Preview": "Pré-Visualização",
|
||||
"Preview Font Size": "Tamanho da Fonte da Pré-Visualização",
|
||||
"Preview Font Family": "Família da Fonte da Pré-Visualização",
|
||||
"Code block Theme": "Tema do Bloco de Código",
|
||||
"Allow preview to scroll past the last line": "Permitir à pré-visualização rolar além da última linha",
|
||||
"Show line numbers for preview code blocks": "Mostrar os números das linhas na pré-visualização dos blocos de código",
|
||||
"LaTeX Inline Open Delimiter": "Delimitador em Linha Aberto do LaTeX",
|
||||
"LaTeX Inline Close Delimiter": "Delimitador em Linha Fechado do LaTeX",
|
||||
"LaTeX Block Open Delimiter": "Delimitador de Bloco Aberto do LaTeX",
|
||||
"LaTeX Block Close Delimiter": "Delimitador de Bloco Fechado do LaTeX",
|
||||
"Community": "Comunidade",
|
||||
"Subscribe to Newsletter": "Subscrever à Newsletter",
|
||||
"GitHub": "GitHub",
|
||||
"Blog": "Blog",
|
||||
"Facebook Group": "Grupo do Facebook",
|
||||
"Twitter": "Twitter",
|
||||
"About": "Sobre",
|
||||
"Boostnote": "Boostnote",
|
||||
"An open source note-taking app made for programmers just like you.": "Um aplicativo de anotações de código aberto feito para programadores como você.",
|
||||
"Website": "Website",
|
||||
"Development": "Desenvolvimento",
|
||||
" : Development configurations for Boostnote.": " : Configurações de desenvolvimento para o Boostnote.",
|
||||
"Copyright (C) 2017 - 2018 BoostIO": "Direitos Autorais (C) 2017 - 2018 BoostIO",
|
||||
"License: GPL v3": "Licença: GPL v3",
|
||||
"Analytics": "Técnicas analíticas",
|
||||
"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.": "O Boostnote coleta dados anônimos com o único propósito de melhorar o aplicativo e de modo algum coleta qualquer informação pessoal, bem como o conteúdo de suas anotações.",
|
||||
"You can see how it works on ": "Você pode ver como funciona ",
|
||||
"You can choose to enable or disable this option.": "Você pode optar por ativar ou desativar essa opção.",
|
||||
"Enable analytics to help improve Boostnote": "Ativar técnicas analíticas para ajudar a melhorar o Boostnote",
|
||||
"Crowdfunding": "Financiamento Coletivo",
|
||||
"Dear everyone,": "Caros(as),",
|
||||
"Thank you for using Boostnote!": "Obrigado por usar o Boostnote!",
|
||||
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "O Boostnote é usado em cerca de 200 países e regiões diferentes por uma incrível comunidade de desenvolvedores.",
|
||||
"To continue supporting this growth, and to satisfy community expectations,": "Para continuar apoiando o crescimento e satisfazer as expectativas da comunidade,",
|
||||
"we would like to invest more time and resources in this project.": "gostaríamos de investir mais tempo e recursos neste projeto.",
|
||||
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Se você gosta deste projeto e vê o seu potencial, você pode nos ajudar apoiando-nos no OpenCollective!",
|
||||
"Thanks,": "Obrigado,",
|
||||
"Boostnote maintainers": "Mantenedores do Boostnote",
|
||||
"Support via OpenCollective": "Suporte via OpenCollective",
|
||||
"Language": "Idioma",
|
||||
"English": "Inglês",
|
||||
"German": "Alemão",
|
||||
"French": "Francês",
|
||||
"Show \"Saved to Clipboard\" notification when copying": "Mostrar a notificação \"Armazenado na Área de Transferência\" ao copiar",
|
||||
"All Notes": "Todas as Notas",
|
||||
"Starred": "Com Estrela",
|
||||
"Are you sure to ": "Tem certeza que gostaría de ",
|
||||
" delete": " apagar",
|
||||
"this folder?": "essa pasta?",
|
||||
"Confirm": "Confirmar",
|
||||
"Cancel": "Cancelar",
|
||||
"Markdown Note": "Nota em Markdown",
|
||||
"This format is for creating text documents. Checklists, code blocks and Latex blocks are available.": "Este formato permite a criação de documentos de texto. Listas de verificação, blocos de código e blocos Latex estão disponíveis.",
|
||||
"Snippet Note": "Fragmento de Nota",
|
||||
"This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "Este formato é para criar trechos de código. Vários trechos podem ser agrupados em uma única nota.",
|
||||
"Tab to switch format": "Tabule para mudar o formato",
|
||||
"Updated": "Atualizado",
|
||||
"Created": "Criado",
|
||||
"Alphabetically": "Alfabeticamente",
|
||||
"Default View": "Visualização Padrão",
|
||||
"Compressed View": "Visualização Comprimida",
|
||||
"Search": "Procura",
|
||||
"Blog Type": "Tipo do Blog",
|
||||
"Blog Address": "Endereço do Blog",
|
||||
"Save": "Salvar",
|
||||
"Auth": "Auth",
|
||||
"Authentication Method": "Método de Autenticação",
|
||||
"JWT": "JWT",
|
||||
"USER": "USUÁRIO",
|
||||
"Token": "Token",
|
||||
"Storage": "Armazenamento",
|
||||
"Hotkeys": "Teclas de Atalho",
|
||||
"Show/Hide Boostnote": "Esconder/Mostrar Boostnote",
|
||||
"Restore": "Restaurar",
|
||||
"Permanent Delete": "Excluir Permanentemente",
|
||||
"Confirm note deletion": "Confirmar exclusão da nota",
|
||||
"This will permanently remove this note.": "Isso irá excluir a nota permanentemente.",
|
||||
"Successfully applied!": "Aplicado com Sucesso!",
|
||||
"Albanian": "Albanês",
|
||||
"Chinese (zh-CN)": "Chinês (zh-CN)",
|
||||
"Chinese (zh-TW)": "Chinês (zh-TW)",
|
||||
"Danish": "Dinamarquês",
|
||||
"Japanese": "Japonês",
|
||||
"Korean": "Coreano",
|
||||
"Norwegian": "Norueguês",
|
||||
"Polish": "Polonês",
|
||||
"Portuguese": "Português (pt-BR)",
|
||||
"Spanish": "Espanhol",
|
||||
"You have to save!": "Você precisa salvar!",
|
||||
"Russian": "Russo",
|
||||
"Editor Rulers": "Réguas do Editor",
|
||||
"Enable": "Habilitado",
|
||||
"Disable": "Desabilitado",
|
||||
"Sanitization": "Sanitização",
|
||||
"Only allow secure html tags (recommended)": "Permitir apenas tags html seguras (recomendado)",
|
||||
"Allow styles": "Permitir estilos",
|
||||
"Allow dangerous html tags": "Permitir tags html perigosas"
|
||||
}
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
@@ -29,7 +29,7 @@
|
||||
"Delete": "Delete",
|
||||
"Interface": "Interface",
|
||||
"Interface Theme": "Interface Theme",
|
||||
"Default": "Delete",
|
||||
"Default": "Default",
|
||||
"White": "White",
|
||||
"Solarized Dark": "Solarized Dark",
|
||||
"Dark": "Dark",
|
||||
|
||||
232
locales/zh-CN.json
Normal file → Executable file
232
locales/zh-CN.json
Normal file → Executable file
@@ -1,138 +1,138 @@
|
||||
{
|
||||
"Notes": "Notes",
|
||||
"Tags": "Tags",
|
||||
"Preferences": "Preferences",
|
||||
"Make a note": "Make a note",
|
||||
"Notes": "笔记",
|
||||
"Tags": "标签",
|
||||
"Preferences": "首选项",
|
||||
"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",
|
||||
"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": "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",
|
||||
"Print": "打印",
|
||||
"Your preferences for Boostnote": "个性设置",
|
||||
"Storages": "本地存储",
|
||||
"Add Storage Location": "添加一个本地存储位置",
|
||||
"Add Folder": "新建文件夹",
|
||||
"Open Storage folder": "打开本地存储位置",
|
||||
"Unlink": "取消链接",
|
||||
"Edit": "编辑",
|
||||
"Delete": "删除",
|
||||
"Interface": "界面",
|
||||
"Interface Theme": "主题",
|
||||
"Default": "默认",
|
||||
"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",
|
||||
"Show a confirmation dialog when deleting notes": "删除笔记的时候,显示确认框",
|
||||
"Editor Theme": "编辑器主题",
|
||||
"Editor Font Size": "编辑器字号",
|
||||
"Editor Font Family": "编辑器字体",
|
||||
"Editor Indent Style": "缩进风格",
|
||||
"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",
|
||||
"Switch to Preview": "快速切换到预览界面",
|
||||
"When Editor Blurred": "当编辑器失去焦点的时候,切换到预览界面",
|
||||
"When Editor Blurred, Edit On Double Click": "当编辑器失去焦点的时候预览,双击切换到编辑界面",
|
||||
"On Right Click": "右键点击切换两个界面",
|
||||
"Editor Keymap": "编辑器 Keymap",
|
||||
"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": "Preview",
|
||||
"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",
|
||||
"⚠️ 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": "粘贴网页链接的时候,显示为网页标题",
|
||||
"Preview": "预览器",
|
||||
"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": "LaTeX 单行开头分隔符",
|
||||
"LaTeX Inline Close Delimiter": "LaTeX 单行结尾分隔符",
|
||||
"LaTeX Block Open Delimiter": "LaTeX 多行开头分隔符",
|
||||
"LaTeX Block Close Delimiter": "LaTeX 多行结尾分隔符",
|
||||
"Community": "社区",
|
||||
"Subscribe to Newsletter": "订阅邮件",
|
||||
"GitHub": "GitHub",
|
||||
"Blog": "Blog",
|
||||
"Blog": "博客",
|
||||
"Facebook Group": "Facebook Group",
|
||||
"Twitter": "Twitter",
|
||||
"About": "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.",
|
||||
"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": "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",
|
||||
"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.": "大约有200个不同的国家和地区的优秀开发者们都在使用Boostnote!",
|
||||
"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!": "如果你喜欢这款软件并且看好它的潜力, 请在OpenCollective上支持我们!",
|
||||
"Thanks,": "十分感谢!",
|
||||
"Boostnote maintainers": "Boostnote的维护人员",
|
||||
"Support via OpenCollective": "在OpenCollective上支持我们",
|
||||
"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",
|
||||
"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": "代码笔记",
|
||||
"This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "创建代码片段,支持多种语法代码片段",
|
||||
"Tab to switch format": "使用Tab键切换格式",
|
||||
"Updated": "更新时间",
|
||||
"Created": "创建时间",
|
||||
"Alphabetically": "A~Z排序",
|
||||
"Default View": "默认视图",
|
||||
"Compressed View": "列表视图",
|
||||
"Search": "搜索",
|
||||
"Blog Type": "博客类型",
|
||||
"Blog Address": "博客地址",
|
||||
"Save": "保存",
|
||||
"Auth": "Auth",
|
||||
"Authentication Method": "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!",
|
||||
"Storage": "本地存储",
|
||||
"Hotkeys": "快捷键",
|
||||
"Show/Hide Boostnote": "显示/隐藏 Boostnote",
|
||||
"Restore": "恢复",
|
||||
"Permanent Delete": "永久删除",
|
||||
"Confirm note deletion": "确认删除笔记",
|
||||
"This will permanently remove this note.": "永久地删除这条笔记",
|
||||
"Successfully applied!": "设置成功",
|
||||
"Albanian": "Albanian",
|
||||
"Chinese (zh-CN)": "Chinese (zh-CN)",
|
||||
"Chinese (zh-TW)": "Chinese (zh-TW)",
|
||||
"Chinese (zh-CN)": "简体中文",
|
||||
"Chinese (zh-TW)": "繁體中文",
|
||||
"Danish": "Danish",
|
||||
"Japanese": "Japanese",
|
||||
"Korean": "Korean",
|
||||
@@ -140,13 +140,13 @@
|
||||
"Polish": "Polish",
|
||||
"Portuguese": "Portuguese",
|
||||
"Spanish": "Spanish",
|
||||
"You have to save!": "You have to save!",
|
||||
"You have to save!": "你必须保存一下!",
|
||||
"Russian": "Russian",
|
||||
"Editor Rulers": "Editor Rulers",
|
||||
"Enable": "Enable",
|
||||
"Disable": "Disable",
|
||||
"Sanitization": "Sanitization",
|
||||
"Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)",
|
||||
"Allow styles": "Allow styles",
|
||||
"Allow dangerous html tags": "Allow dangerous html tags"
|
||||
"Enable": "开启",
|
||||
"Disable": "关闭",
|
||||
"Sanitization": "代码处理",
|
||||
"Only allow secure html tags (recommended)": "只允许安全的html标签(推荐)",
|
||||
"Allow styles": "允许样式",
|
||||
"Allow dangerous html tags": "允许危险的html标签"
|
||||
}
|
||||
|
||||
232
locales/zh-TW.json
Normal file → Executable file
232
locales/zh-TW.json
Normal file → Executable file
@@ -1,138 +1,138 @@
|
||||
{
|
||||
"Notes": "Notes",
|
||||
"Tags": "Tags",
|
||||
"Preferences": "Preferences",
|
||||
"Make a note": "Make a note",
|
||||
"Notes": "筆記",
|
||||
"Tags": "標籤",
|
||||
"Preferences": "首選項",
|
||||
"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",
|
||||
"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": "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",
|
||||
"Print": "列印",
|
||||
"Your preferences for Boostnote": "個性設置",
|
||||
"Storages": "本地儲存",
|
||||
"Add Storage Location": "添加一個本地儲存位置",
|
||||
"Add Folder": "新建資料夾",
|
||||
"Open Storage folder": "打開一個本地儲存位置",
|
||||
"Unlink": "取消鏈接",
|
||||
"Edit": "編輯",
|
||||
"Delete": "刪除",
|
||||
"Interface": "界面",
|
||||
"Interface Theme": "主題",
|
||||
"Default": "默認",
|
||||
"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",
|
||||
"Show a confirmation dialog when deleting notes": "刪除筆記的時候,顯示確認框",
|
||||
"Editor Theme": "編輯器主題",
|
||||
"Editor Font Size": "編輯器字型大小",
|
||||
"Editor Font Family": "編輯器字體",
|
||||
"Editor Indent Style": "縮進風格",
|
||||
"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",
|
||||
"Switch to Preview": "快速切換到預覽界面",
|
||||
"When Editor Blurred": "當編輯器失去焦點的時候,切換到預覽界面",
|
||||
"When Editor Blurred, Edit On Double Click": "當編輯器失去焦點的時候預覽,雙擊切換到編輯界面",
|
||||
"On Right Click": "右鍵點擊切換兩個界面",
|
||||
"Editor Keymap": "編輯器 Keymap",
|
||||
"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": "Preview",
|
||||
"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",
|
||||
"⚠️ 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": "粘貼網頁鏈接的時候,顯示為網頁標題",
|
||||
"Preview": "預覽器",
|
||||
"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": "LaTeX 單行開頭分隔符",
|
||||
"LaTeX Inline Close Delimiter": "LaTeX 單行結尾分隔符",
|
||||
"LaTeX Block Open Delimiter": "LaTeX 多行開頭分隔符",
|
||||
"LaTeX Block Close Delimiter": "LaTeX 多行結尾分隔符",
|
||||
"Community": "社區",
|
||||
"Subscribe to Newsletter": "訂閱郵件",
|
||||
"GitHub": "GitHub",
|
||||
"Blog": "Blog",
|
||||
"Blog": "部落格",
|
||||
"Facebook Group": "Facebook Group",
|
||||
"Twitter": "Twitter",
|
||||
"About": "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.",
|
||||
"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": "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",
|
||||
"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.": "大約有200個不同的國家和地區的優秀開發者們都在使用Boostnote!",
|
||||
"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!": "如果你喜歡這款軟體並且看好它的潛力, 請在OpenCollective上支持我們!",
|
||||
"Thanks,": "十分感謝!",
|
||||
"Boostnote maintainers": "Boostnote的維護人員",
|
||||
"Support via OpenCollective": "在OpenCollective上支持我們",
|
||||
"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",
|
||||
"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": "代碼筆記",
|
||||
"This format is for creating code snippets. Multiple snippets can be grouped into a single note.": "創建代碼片段,支持多種語法代碼片段",
|
||||
"Tab to switch format": "使用Tab鍵切換格式",
|
||||
"Updated": "更新時間",
|
||||
"Created": "創建時間",
|
||||
"Alphabetically": "A~Z排序",
|
||||
"Default View": "默認視圖",
|
||||
"Compressed View": "列表視圖",
|
||||
"Search": "搜索",
|
||||
"Blog Type": "部落格類型",
|
||||
"Blog Address": "部落格地址",
|
||||
"Save": "保存",
|
||||
"Auth": "Auth",
|
||||
"Authentication Method": "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!",
|
||||
"Storage": "本地儲存",
|
||||
"Hotkeys": "快捷鍵",
|
||||
"Show/Hide Boostnote": "顯示/隱藏 Boostnote",
|
||||
"Restore": "恢復",
|
||||
"Permanent Delete": "永久刪除",
|
||||
"Confirm note deletion": "確認刪除筆記",
|
||||
"This will permanently remove this note.": "永久地刪除這條筆記",
|
||||
"Successfully applied!": "設置成功",
|
||||
"Albanian": "Albanian",
|
||||
"Chinese (zh-CN)": "Chinese (zh-CN)",
|
||||
"Chinese (zh-TW)": "Chinese (zh-TW)",
|
||||
"Chinese (zh-CN)": "简体中文",
|
||||
"Chinese (zh-TW)": "繁體中文",
|
||||
"Danish": "Danish",
|
||||
"Japanese": "Japanese",
|
||||
"Korean": "Korean",
|
||||
@@ -140,13 +140,13 @@
|
||||
"Polish": "Polish",
|
||||
"Portuguese": "Portuguese",
|
||||
"Spanish": "Spanish",
|
||||
"You have to save!": "You have to save!",
|
||||
"You have to save!": "你必須儲存一下!",
|
||||
"Russian": "Russian",
|
||||
"Editor Rulers": "Editor Rulers",
|
||||
"Enable": "Enable",
|
||||
"Disable": "Disable",
|
||||
"Sanitization": "Sanitization",
|
||||
"Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)",
|
||||
"Allow styles": "Allow styles",
|
||||
"Allow dangerous html tags": "Allow dangerous html tags"
|
||||
"Enable": "開啟",
|
||||
"Disable": "關閉",
|
||||
"Sanitization": "代碼處理",
|
||||
"Only allow secure html tags (recommended)": "只允許安全的html標籤(推薦)",
|
||||
"Allow styles": "允許樣式",
|
||||
"Allow dangerous html tags": "允許危險的html標籤"
|
||||
}
|
||||
|
||||
21
package.json
21
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "boost",
|
||||
"productName": "Boostnote",
|
||||
"version": "0.11.3",
|
||||
"version": "0.11.4",
|
||||
"main": "index.js",
|
||||
"description": "Boostnote",
|
||||
"license": "GPL-3.0",
|
||||
@@ -11,6 +11,7 @@
|
||||
"webpack": "webpack-dev-server --hot --inline --config webpack.config.js",
|
||||
"compile": "grunt compile",
|
||||
"test": "PWD=$(pwd) NODE_ENV=test ava --serial",
|
||||
"jest": "jest",
|
||||
"fix": "npm run lint --fix",
|
||||
"lint": "eslint .",
|
||||
"dev-start": "concurrently --kill-others \"npm run webpack\" \"npm run hot\""
|
||||
@@ -96,11 +97,13 @@
|
||||
"devDependencies": {
|
||||
"ava": "^0.25.0",
|
||||
"babel-core": "^6.14.0",
|
||||
"babel-jest": "^22.4.3",
|
||||
"babel-loader": "^6.2.0",
|
||||
"babel-plugin-react-transform": "^2.0.0",
|
||||
"babel-plugin-webpack-alias": "^2.1.1",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"babel-preset-es2015": "^6.3.13",
|
||||
"babel-preset-react": "^6.3.13",
|
||||
"babel-preset-react": "^6.24.1",
|
||||
"babel-preset-react-hmre": "^1.0.1",
|
||||
"babel-register": "^6.11.6",
|
||||
"browser-env": "^3.2.5",
|
||||
@@ -120,6 +123,9 @@
|
||||
"grunt": "^0.4.5",
|
||||
"grunt-electron-installer": "2.1.0",
|
||||
"history": "^1.17.0",
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
"jest": "^22.4.3",
|
||||
"jest-localstorage-mock": "^2.2.0",
|
||||
"jsdom": "^9.4.2",
|
||||
"json-loader": "^0.5.4",
|
||||
"merge-stream": "^1.0.0",
|
||||
@@ -130,6 +136,7 @@
|
||||
"react-input-autosize": "^1.1.0",
|
||||
"react-router": "^2.4.0",
|
||||
"react-router-redux": "^4.0.4",
|
||||
"react-test-renderer": "^15.6.2",
|
||||
"standard": "^8.4.0",
|
||||
"style-loader": "^0.12.4",
|
||||
"stylus": "^0.52.4",
|
||||
@@ -152,5 +159,15 @@
|
||||
"./tests/helpers/setup-electron-mock.js"
|
||||
],
|
||||
"babel": "inherit"
|
||||
},
|
||||
"jest": {
|
||||
"moduleNameMapper": {
|
||||
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
|
||||
"\\.(css|less|styl)$": "identity-obj-proxy"
|
||||
},
|
||||
"setupFiles": [
|
||||
"<rootDir>/tests/jest.js",
|
||||
"jest-localstorage-mock"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
9
tests/components/TagListItem.snapshot.test.js
Normal file
9
tests/components/TagListItem.snapshot.test.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import React from 'react'
|
||||
import renderer from 'react-test-renderer'
|
||||
import TagListItem from 'browser/components/TagListItem'
|
||||
|
||||
it('TagListItem renders correctly', () => {
|
||||
const tagListItem = renderer.create(<TagListItem name='Test' handleClickTagListItem={jest.fn()} />)
|
||||
|
||||
expect(tagListItem.toJSON()).toMatchSnapshot()
|
||||
})
|
||||
@@ -0,0 +1,19 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`TagListItem renders correctly 1`] = `
|
||||
<button
|
||||
className="tagList-item"
|
||||
onClick={[Function]}
|
||||
>
|
||||
<span
|
||||
className="tagList-item-name"
|
||||
>
|
||||
# Test
|
||||
<span
|
||||
className="tagList-item-count"
|
||||
>
|
||||
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
`;
|
||||
12
tests/jest.js
Normal file
12
tests/jest.js
Normal file
@@ -0,0 +1,12 @@
|
||||
// Here you can mock the libraries connected through direct insertion <script src="" >
|
||||
global.Raphael = {
|
||||
setWindow: jest.fn(),
|
||||
registerFont: jest.fn(),
|
||||
fn: function () {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
global._ = {
|
||||
extend: jest.genMockFunction()
|
||||
}
|
||||
@@ -23,6 +23,7 @@
|
||||
"lineNumber": true
|
||||
},
|
||||
"sortBy": "UPDATED_AT",
|
||||
"sortTagsBy": "ALPHABETICAL",
|
||||
"ui": {
|
||||
"defaultNote": "ALWAYS_ASK",
|
||||
"disableDirectWrite": false,
|
||||
|
||||
@@ -20,18 +20,25 @@ test.before(t => {
|
||||
notes = [note1, note2, note3]
|
||||
})
|
||||
|
||||
test('it can find notes by tags or words', t => {
|
||||
test('it can find notes by tags and words', t => {
|
||||
// [input, expected content (Array)]
|
||||
const testCases = [
|
||||
const testWithTags = [
|
||||
['#tag1', [note1.content, note2.content, note3.content]],
|
||||
['#tag1 #tag2', [note2.content]],
|
||||
['#tag2 #tag1', [note2.content]],
|
||||
['#tag1 #tag2 #tag3', []],
|
||||
['content1', [note1.content, note2.content]],
|
||||
['content1 content2', [note2.content]],
|
||||
['content1 content2 content3', []],
|
||||
['#content4', [note3.content]]
|
||||
['#content4', [note3.content]],
|
||||
['#tag2 content1', [note2.content]],
|
||||
['content1 #tag2', [note2.content]]
|
||||
]
|
||||
const testWithTagsWithoutHash = testWithTags.map(function (testCase) {
|
||||
return [testCase[0].replace(/#/g, ''), testCase[1]]
|
||||
})
|
||||
|
||||
const testCases = testWithTags.concat(testWithTagsWithoutHash)
|
||||
testCases.forEach((testCase) => {
|
||||
const [input, expectedContents] = testCase
|
||||
const results = searchFromNotes(notes, input)
|
||||
|
||||
Reference in New Issue
Block a user