{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 (
@@ -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) => {
diff --git a/browser/main/TopBar/index.js b/browser/main/TopBar/index.js
index 86cc6b2a..ae4d9664 100644
--- a/browser/main/TopBar/index.js
+++ b/browser/main/TopBar/index.js
@@ -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()
}
diff --git a/browser/main/global.styl b/browser/main/global.styl
index 1b40587c..613c7611 100644
--- a/browser/main/global.styl
+++ b/browser/main/global.styl
@@ -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
diff --git a/browser/main/index.js b/browser/main/index.js
index d9c7456e..ae906538 100644
--- a/browser/main/index.js
+++ b/browser/main/index.js
@@ -64,7 +64,9 @@ ReactDOM.render((
-
+
+
+
diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js
index 4d67d4e7..3e1a2162 100644
--- a/browser/main/lib/ConfigManager.js
+++ b/browser/main/lib/ConfigManager.js
@@ -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) {
diff --git a/browser/main/lib/dataApi/resolveStorageNotes.js b/browser/main/lib/dataApi/resolveStorageNotes.js
index 5684f06e..fa3f19ae 100644
--- a/browser/main/lib/dataApi/resolveStorageNotes.js
+++ b/browser/main/lib/dataApi/resolveStorageNotes.js
@@ -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)
}
diff --git a/lib/main-window.js b/lib/main-window.js
index 4ac60797..86b85a24 100644
--- a/lib/main-window.js
+++ b/lib/main-window.js
@@ -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()) {
diff --git a/lib/main.html b/lib/main.html
index 830d3b48..5e5d13c3 100644
--- a/lib/main.html
+++ b/lib/main.html
@@ -85,6 +85,7 @@
+
@@ -92,6 +93,11 @@
+
+
+
+
+
diff --git a/locales/en.json b/locales/en.json
index 8a4a8eff..b8250ea7 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -111,6 +111,7 @@
"Updated": "Updated",
"Created": "Created",
"Alphabetically": "Alphabetically",
+ "Counter": "Counter",
"Default View": "Default View",
"Compressed View": "Compressed View",
"Search": "Search",
diff --git a/locales/es-ES.json b/locales/es-ES.json
new file mode 100644
index 00000000..ea20641b
--- /dev/null
+++ b/locales/es-ES.json
@@ -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"
+}
diff --git a/locales/es.json b/locales/es.json
deleted file mode 100644
index 51f975d9..00000000
--- a/locales/es.json
+++ /dev/null
@@ -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": "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",
- "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"
-}
diff --git a/locales/hu.json b/locales/hu.json
index 37c19e48..74cd5d04 100644
--- a/locales/hu.json
+++ b/locales/hu.json
@@ -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",
diff --git a/locales/pt-BR.json b/locales/pt-BR.json
new file mode 100644
index 00000000..10fade1f
--- /dev/null
+++ b/locales/pt-BR.json
@@ -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"
+}
diff --git a/locales/pt.json b/locales/pt-PT.json
similarity index 100%
rename from locales/pt.json
rename to locales/pt-PT.json
diff --git a/locales/zh-CN.json b/locales/zh-CN.json
old mode 100644
new mode 100755
index 01a6fe0b..b736520d
--- a/locales/zh-CN.json
+++ b/locales/zh-CN.json
@@ -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": "Default",
+ "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标签"
}
diff --git a/locales/zh-TW.json b/locales/zh-TW.json
old mode 100644
new mode 100755
index 01a6fe0b..06f40608
--- a/locales/zh-TW.json
+++ b/locales/zh-TW.json
@@ -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": "Default",
+ "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標籤"
}
diff --git a/package.json b/package.json
index ccd0b84c..038d4c00 100644
--- a/package.json
+++ b/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)$": "/__mocks__/fileMock.js",
+ "\\.(css|less|styl)$": "identity-obj-proxy"
+ },
+ "setupFiles": [
+ "/tests/jest.js",
+ "jest-localstorage-mock"
+ ]
}
}
diff --git a/tests/components/TagListItem.snapshot.test.js b/tests/components/TagListItem.snapshot.test.js
new file mode 100644
index 00000000..8bea2ccb
--- /dev/null
+++ b/tests/components/TagListItem.snapshot.test.js
@@ -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()
+
+ expect(tagListItem.toJSON()).toMatchSnapshot()
+})
diff --git a/tests/components/__snapshots__/TagListItem.snapshot.test.js.snap b/tests/components/__snapshots__/TagListItem.snapshot.test.js.snap
new file mode 100644
index 00000000..0805edcd
--- /dev/null
+++ b/tests/components/__snapshots__/TagListItem.snapshot.test.js.snap
@@ -0,0 +1,19 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`TagListItem renders correctly 1`] = `
+
+`;
diff --git a/tests/jest.js b/tests/jest.js
new file mode 100644
index 00000000..6f830c67
--- /dev/null
+++ b/tests/jest.js
@@ -0,0 +1,12 @@
+// Here you can mock the libraries connected through direct insertion