1
0
mirror of https://github.com/laurent22/joplin.git synced 2026-01-08 00:14:28 +02:00

Compare commits

...

94 Commits

Author SHA1 Message Date
Laurent Cozic
484304a592 mobile support 2022-02-06 16:37:47 +00:00
Laurent Cozic
54cf7efb88 custmo icons 2022-02-05 19:28:30 +00:00
Laurent Cozic
e8a7cf1455 custom icons 2022-02-05 19:27:15 +00:00
Laurent Cozic
31fcd0ed1d Server: Only use Stripe "customer.subscription.created" event to provision subscriptions 2022-02-05 18:32:45 +00:00
Joplin Bot
5d7d597147 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-02-05 18:12:49 +00:00
Laurent
6ebec0cbf8 Update sponsors.json 2022-02-05 14:39:10 +00:00
Laurent
f4b39633ea Delete style.min.css 2022-02-05 14:38:30 +00:00
Mr-Kanister
4c8e2fba7d All: Translation: Update de_DE.po (#6102) 2022-02-04 18:26:08 -05:00
Vincent Jo
288ae1b463 All: Add additional time format HH.mm (#6086) 2022-02-03 18:52:24 +00:00
Laurent Cozic
e3c9bcbec6 Server: Improve admin email UI 2022-02-03 11:25:13 +00:00
Laurent Cozic
49180fbf88 Remove printing of version numbers in Docker image 2022-02-03 11:25:12 +00:00
Helmut K. C. Tessarek
486ac6db7b Update translations 2022-02-02 18:42:45 -05:00
Laurent Cozic
b3fc8fbc93 Server v2.7.4 2022-02-02 19:24:50 +00:00
Laurent Cozic
980190ec09 Merge branch 'dev' into release-2.7 2022-02-02 19:22:49 +00:00
Laurent Cozic
cebf043284 Desktop release v2.7.8 2022-02-02 19:21:07 +00:00
Laurent Cozic
4c11bbf0da Server: Disable session expiration logic for now
As we do not know how many people have version 2.5+
2022-02-02 19:17:50 +00:00
Laurent Cozic
69170dd362 Server: Enabled task to automatically delete sessions every 6 hours 2022-02-01 17:57:01 +00:00
Laurent Cozic
1afcb27601 Server: Add task to automate deletion of disabled accounts 2022-02-01 17:55:14 +00:00
Laurent Cozic
68469bc1a5 Server: Temporarily save user info before deleting account 2022-02-01 15:39:25 +00:00
Laurent Cozic
a4e279270b Chore: Fixed server db types 2022-02-01 14:40:02 +00:00
Laurent Cozic
2f7ab7e92e Server: Set a timestamp when disabling a user
So that it can be used later on to decide if user data
should be automatically deleted or not.
2022-01-31 19:52:30 +00:00
Daeraxa
46202beb9b Doc: Add rich text editor limitation - lists within tables (#6072) 2022-01-30 17:16:37 -05:00
Laurent Cozic
dd705680f1 Doc: Update help 2022-01-29 19:37:27 +00:00
Laurent Cozic
00163f58d0 Server: Always display Help link even when not logged in 2022-01-29 19:31:48 +00:00
Laurent Cozic
df9c460363 Server: Make page wider only when displaying admin pages 2022-01-29 19:21:37 +00:00
Laurent Cozic
603c8338c0 Doc: Fixed news image width on mobile 2022-01-29 16:07:25 +00:00
Laurent Cozic
fca5875c21 All: Make heading 4, 5 and 6 styling more consistent 2022-01-29 15:52:32 +00:00
Laurent Cozic
2941ee0590 Doc: Fixed link 2022-01-29 12:44:49 +00:00
Dirag Biswas
5d71787835 Doc: Fixes #5947: Incorrect build instruction in documentation (#6068) 2022-01-28 18:37:31 +00:00
Caleb John
2b2070aabe All: Resolves #5808: Fixed sync scroll issue (#6059)
Remove patch for multimd, and update package instead
2022-01-28 10:36:02 +00:00
Laurent Cozic
bb464d8a59 Doc: Added document on how to write a technical spec 2022-01-27 15:13:24 +00:00
Arda Kılıçdağı
00a3014131 All: Translation: Update tr_TR.po (#6053) 2022-01-25 14:03:59 -05:00
Laurent Cozic
f51b0c6d06 Doc: Added GSoC idea "Desktop application integration testing" 2022-01-24 19:08:33 +00:00
Laurent Cozic
01825e6d3e Tools: Fixed tests 2022-01-24 19:08:32 +00:00
Aaron
b7bb5acd41 Server: Fixes #5397: Use multi-stage builds and smaller base image (#6048) 2022-01-24 18:50:01 +00:00
Kenichi Kobayashi
638905e1b8 Desktop: Fixes #6042: Scroll position is not remembered (regression) (#6043) 2022-01-24 09:55:46 +00:00
Laurent
e05c89aa11 Tools: Don't auto-close issues with "enhancement" label 2022-01-24 09:24:52 +00:00
Laurent Cozic
f5f7981dba Server: View sent emails from admin dashboard 2022-01-22 17:29:09 +00:00
qcol
23d9ba7bf1 All: Translation: Update pl_PL.po (#6046)
typo
2022-01-21 13:20:37 -05:00
Laurent Cozic
095db5d0d2 Doc: Added trademark info 2022-01-21 15:12:45 +00:00
Helmut K. C. Tessarek
5718001a33 All: Translation: Update da_DK.po (thanks ERYpTION) 2022-01-20 13:55:07 -05:00
Helmut K. C. Tessarek
91907aa5dd All: Update Mermaid 8.13.5 -> 8.13.9 and Katex dependencies (#6039) 2022-01-20 11:54:01 +00:00
Caleb John
d70dca3139 Desktop: Fixes #6035: Global search focuses text in notes so that edits overwrite highlighted text (#6040)
Co-authored-by: Kenichi Kobayashi <ken1kob@users.noreply.github.com>
2022-01-20 11:52:32 +00:00
Helmut K. C. Tessarek
630584c80e Doc: remove redundant and obsolete privacy section (from README.md)
The privacy document can be found:

- https://joplinapp.org/privacy/
- https://github.com/laurent22/joplin/blob/dev/readme/privacy.md
2022-01-19 15:01:55 -05:00
Joplin Bot
b152879086 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-19 12:16:54 +00:00
Laurent Cozic
2238ef5fd0 Desktop release v2.7.8 2022-01-19 09:05:15 +00:00
Laurent Cozic
6bb0318c2f Desktop: Disable plugin throttling for now 2022-01-19 09:03:36 +00:00
Laurent Cozic
c668bb0370 Revert "Desktop: Fixes #5850: Editor loses cursor focus when Ctrl+F search is closed (#5919)"
This reverts commit b98e64c881.

Ref: https://github.com/laurent22/joplin/issues/6035
2022-01-19 09:03:35 +00:00
Helmut K. C. Tessarek
360293949c Doc: fixed a wrong term (on-time -> app) 2022-01-18 13:17:13 -05:00
Joplin Bot
8289ce3749 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-18 18:14:50 +00:00
Laurent Cozic
1bb4c38699 Desktop release v2.7.7 2022-01-18 11:12:47 +00:00
Mayank Bondre
bc977bf43f Desktop: Fixes #5803: Fixes alt text not appearing in html (#6017) 2022-01-18 11:11:21 +00:00
HoraceYoung
c98edf89fa Update zh_CN.po (#6032) 2022-01-18 11:10:20 +00:00
Laurent Cozic
c6b67126fb Desktop: Disable plugin throttling mechanism for now 2022-01-18 11:07:19 +00:00
Laurent Cozic
c1aa57a72c Doc: Update Joplin Cloud cancellation policy 2022-01-18 11:05:37 +00:00
Joplin Bot
fdba6c076e Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-17 18:17:39 +00:00
Laurent Cozic
f8d0bb472e Desktop release v2.7.6 2022-01-17 16:24:01 +00:00
Laurent Cozic
3a18da49f3 Tools: Fix Windows build and improve CI error handling 2022-01-17 14:09:02 +00:00
Kenichi Kobayashi
5143a81749 Desktop: Fixes #5981: Scroll positions are not preserved when layout changes (#6021) 2022-01-17 10:30:09 +00:00
Laurent
f283970186 Update privacy.md 2022-01-16 17:06:25 +00:00
Laurent Cozic
abf50565cb typo 2022-01-16 17:05:13 +00:00
Laurent Cozic
287057fea6 Doc: Also mention plugin repository request in privacy policy 2022-01-16 17:03:50 +00:00
Laurent Cozic
8ac6017c02 Doc: Mention spellchecker dictionary request in privacy policy 2022-01-16 16:57:31 +00:00
Laurent Cozic
8cdb73bd65 Doc: Mention that E2EE works with the notebook sharing feature 2022-01-16 16:57:31 +00:00
Laurent Cozic
35e6aaceb7 Merge branch 'dev' into release-2.7 2022-01-16 13:09:46 +00:00
Laurent Cozic
52287c30bf Desktop release v2.7.5 2022-01-16 13:09:02 +00:00
Laurent Cozic
a9daa4f772 Desktop release v2.7.4 2022-01-16 12:37:11 +00:00
Laurent Cozic
316e31f937 Desktop release v2.7.4 2022-01-16 12:36:25 +00:00
Laurent Cozic
94f4ba3053 Merge branch 'dev' into release-2.7 2022-01-16 12:36:07 +00:00
Kenichi Kobayashi
8825133675 Desktop: Fixes #5968: Default sort order lost on exit (#6022) 2022-01-16 11:49:16 +00:00
Benjamin Weis
2fd724911d All: Translation: Update de_DE.po (#6019) 2022-01-15 18:59:33 -05:00
Laurent Cozic
12704bfb4d Desktop release v2.7.3 2022-01-15 19:27:01 +00:00
Laurent Cozic
070fd0434b Desktop release v2.7.3 2022-01-15 19:22:36 +00:00
Joplin Bot
a105306dc7 Doc: Updated Markdown files
Auto-updated using release-website.sh
2022-01-15 18:13:48 +00:00
Laurent Cozic
70035f49d1 Desktop release v2.7.2 2022-01-15 17:22:50 +00:00
Laurent Cozic
066dcbc6e4 Merge branch 'dev' into release-2.7 2022-01-15 17:22:34 +00:00
Laurent Cozic
597454d39d Desktop release v2.7.1 2022-01-15 17:20:38 +00:00
Laurent Cozic
6bc70ed8dc Desktop: Fixed order of editor search buttons 2022-01-15 17:18:52 +00:00
Laurent Cozic
cfce397df8 Update translations 2022-01-15 17:16:16 +00:00
Laurent Cozic
0274fd1790 Tools: Ignore some files when building translations 2022-01-15 17:16:04 +00:00
JCardoen
47da47e12d Translation of nl_BE.po (#6013) 2022-01-15 17:06:02 +00:00
asrient
7088be01c8 Desktop: Fixes #5953: Note list buttons do not reappear after changing app layout (#5994) 2022-01-15 17:05:31 +00:00
Stephan Dev
6a1f3ace67 Doc: Clarify where to go to enable markdown plugins (#6007) 2022-01-15 17:03:11 +00:00
Krishna Kumar
4ae3bec7e4 Desktop: Fix white space in the bottom of Add Tag Prompt dialog (#5998) 2022-01-15 17:00:42 +00:00
Felipe Kinoshita
970c1fb423 Desktop: Prevent Desktop Environments to launch a new window (#5984) 2022-01-15 16:59:50 +00:00
Laurent Cozic
810018b41f Desktop: Security: Fixes #6004: Prevent XSS in Goto Anything 2022-01-15 16:53:24 +00:00
Laurent Cozic
e0bfa0dbe6 Doc: Add sponsor 2022-01-15 16:15:25 +00:00
Laurent
ca7e68ba4b Server: Move admin pages under /admin (#6006) 2022-01-14 10:14:43 +00:00
Laurent Cozic
d6f4ebfff5 Server v2.7.3 2021-12-29 14:35:39 +01:00
Laurent Cozic
e03655bc4d Merge branch 'dev' into release-2.7 2021-12-29 14:34:51 +01:00
Laurent Cozic
b214c8e42a Server v2.7.2 2021-12-29 12:21:20 +01:00
Laurent Cozic
360ac40f50 Merge branch 'dev' into release-2.7 2021-12-29 12:20:47 +01:00
Laurent Cozic
7c00bc5d0e Server v2.7.1 2021-12-29 12:20:41 +01:00
Laurent Cozic
2748df7c61 Server v2.7.1 2021-12-29 10:51:24 +01:00
256 changed files with 11980 additions and 5799 deletions

View File

@@ -235,6 +235,9 @@ packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.js.map
packages/app-desktop/gui/ErrorBoundary.d.ts
packages/app-desktop/gui/ErrorBoundary.js
packages/app-desktop/gui/ErrorBoundary.js.map
packages/app-desktop/gui/FolderIconBox.d.ts
packages/app-desktop/gui/FolderIconBox.js
packages/app-desktop/gui/FolderIconBox.js.map
packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.d.ts
packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.js
packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.js.map
@@ -1927,6 +1930,9 @@ packages/renderer/headerAnchor.js.map
packages/renderer/htmlUtils.d.ts
packages/renderer/htmlUtils.js
packages/renderer/htmlUtils.js.map
packages/renderer/htmlUtils.test.d.ts
packages/renderer/htmlUtils.test.js
packages/renderer/htmlUtils.test.js.map
packages/renderer/index.d.ts
packages/renderer/index.js
packages/renderer/index.js.map

View File

@@ -16,7 +16,7 @@ jobs:
days-before-stale: 30
days-before-close: 7
operations-per-run: 1000
exempt-issue-labels: 'good first issue,upstream,backlog,high,medium,spec,cannot reproduce'
exempt-issue-labels: 'good first issue,upstream,backlog,high,medium,spec,cannot reproduce,enhancement'
stale-issue-label: 'stale'
close-issue-message: 'Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, feel free to create a new issue with up-to-date information.'
# Don't process pull requests at all

View File

@@ -86,10 +86,20 @@ jobs:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
# To ensure that the operations stop on failure, all commands
# should be on one line with "&&" in between.
run: |
yarn install
cd packages/app-desktop
yarn run dist
yarn install && cd packages/app-desktop && yarn run dist
# Build and package the Windows app, without publishing it, just to
# verify that the build process hasn't been broken.
- name: Build Windows app (no publishing)
if: runner.os == 'Windows' && !startsWith(github.ref, 'refs/tags/v')
env:
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
run: |
yarn install && cd packages/app-desktop && yarn run dist --publish=never
ServerDockerImage:
runs-on: ${{ matrix.os }}

6
.gitignore vendored
View File

@@ -225,6 +225,9 @@ packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.js.map
packages/app-desktop/gui/ErrorBoundary.d.ts
packages/app-desktop/gui/ErrorBoundary.js
packages/app-desktop/gui/ErrorBoundary.js.map
packages/app-desktop/gui/FolderIconBox.d.ts
packages/app-desktop/gui/FolderIconBox.js
packages/app-desktop/gui/FolderIconBox.js.map
packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.d.ts
packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.js
packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.js.map
@@ -1917,6 +1920,9 @@ packages/renderer/headerAnchor.js.map
packages/renderer/htmlUtils.d.ts
packages/renderer/htmlUtils.js
packages/renderer/htmlUtils.js.map
packages/renderer/htmlUtils.test.d.ts
packages/renderer/htmlUtils.test.js
packages/renderer/htmlUtils.test.js.map
packages/renderer/index.d.ts
packages/renderer/index.js
packages/renderer/index.js.map

View File

@@ -1,43 +0,0 @@
diff --git a/index.js b/index.js
index 85d89900d5fe575dd0c19430209fb1703b03554e..5fa68cc9a4bd2b21a7188bd263262fd9b1604ac6 100644
--- a/index.js
+++ b/index.js
@@ -145,7 +145,8 @@ module.exports = function multimd_table_plugin(md, options) {
colspan, leftToken,
rowspan, upTokens = [],
tableLines, tgroupLines,
- tag, text, range, r, c, b;
+ tag, text, range, r, c, b, t,
+ blockState;
if (startLine + 2 > endLine) { return false; }
@@ -315,18 +316,26 @@ module.exports = function multimd_table_plugin(md, options) {
/* Multiline. Join the text and feed into markdown-it blockParser. */
if (options.multiline && trToken.meta.multiline && trToken.meta.mbounds) {
- text = [ text.trimRight() ];
+ // Pad the text with empty lines to ensure the line number mapping is correct
+ text = new Array(trToken.map[0]).fill('').concat([ text.trimRight() ]);
for (b = 1; b < trToken.meta.mbounds.length; b++) {
/* Line with N bounds has cells indexed from 0 to N-2 */
if (c > trToken.meta.mbounds[b].length - 2) { continue; }
range = [ trToken.meta.mbounds[b][c] + 1, trToken.meta.mbounds[b][c + 1] ];
text.push(state.src.slice.apply(state.src, range).trimRight());
}
- state.md.block.parse(text.join('\n'), state.md, state.env, state.tokens);
+ blockState = new state.md.block.State(text.join('\n'), state.md, state.env, []);
+ blockState.level = trToken.level + 1;
+ // Start tokenizing from the actual content (trToken.map[0])
+ state.md.block.tokenize(blockState, trToken.map[0], blockState.lineMax);
+ for (t = 0; t < blockState.tokens.length; t++) {
+ state.tokens.push(blockState.tokens[t]);
+ }
} else {
token = state.push('inline', '', 0);
token.content = text.trim();
token.map = trToken.map;
+ token.level = trToken.level + 1;
token.children = [];
}

View File

@@ -672,7 +672,7 @@ footer .bottom-links-row p {
.news-page img,
.news-item-page img {
max-width: 650px;
max-width: 100%;
}
/*****************************************************************

View File

@@ -18,10 +18,9 @@ There are also a few forks of existing packages under the "fork-*" name.
## Required dependencies
- Install node 16+ - https://nodejs.org/en/
- [Enable yarn](https://yarnpkg.com/getting-started/install): `corepack enable`
- Install Node 16+. On Windows, also install the build tools - https://nodejs.org/en/
- [Enable Yarn](https://yarnpkg.com/getting-started/install): `corepack enable`
- macOS: Install Cocoapods - `brew install cocoapods`. Apple Silicon [may require libvips](https://github.com/laurent22/joplin/pull/5966#issuecomment-1007158597) - `brew install vips`.
- Windows: Install Windows Build Tools - `yarn install -g windows-build-tools --vs2015`
- Linux: Install dependencies - `sudo apt install build-essential libnss3 libsecret-1-dev python rsync`
## Building

View File

@@ -1,50 +1,41 @@
FROM node:16-bullseye
# =============================================================================
# Build stage
# =============================================================================
FROM node:16-bullseye AS builder
RUN apt-get update \
&& apt-get install -y \
python \
&& rm -rf /var/lib/apt/lists/*
# Download the init tool Tini and make it executable for use in the final image
ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static /tini
RUN chmod u+x /tini
# Enables Yarn
RUN corepack enable
RUN echo "Node: $(node --version)" \
&& echo "Npm: $(npm --version)" \
&& echo "Yarn: $(yarn --version)"
WORKDIR /build
ARG user=joplin
RUN useradd --create-home --shell /bin/bash $user
USER $user
ENV NODE_ENV production
ENV RUNNING_IN_DOCKER 1
EXPOSE ${APP_PORT}
WORKDIR /home/$user
RUN mkdir /home/$user/logs \
&& mkdir /home/$user/.yarn
COPY --chown=$user:$user .yarn/patches ./.yarn/patches
COPY --chown=$user:$user .yarn/plugins ./.yarn/plugins
COPY --chown=$user:$user .yarn/releases ./.yarn/releases
COPY --chown=$user:$user package.json .
COPY --chown=$user:$user .yarnrc.yml .
COPY --chown=$user:$user yarn.lock .
COPY --chown=$user:$user gulpfile.js .
COPY --chown=$user:$user tsconfig.json .
COPY --chown=$user:$user packages/turndown ./packages/turndown
COPY --chown=$user:$user packages/turndown-plugin-gfm ./packages/turndown-plugin-gfm
COPY --chown=$user:$user packages/fork-htmlparser2 ./packages/fork-htmlparser2
COPY --chown=$user:$user packages/server/package*.json ./packages/server/
COPY --chown=$user:$user packages/fork-sax ./packages/fork-sax
COPY --chown=$user:$user packages/fork-uslug ./packages/fork-uslug
COPY --chown=$user:$user packages/htmlpack ./packages/htmlpack
COPY --chown=$user:$user packages/renderer ./packages/renderer
COPY --chown=$user:$user packages/tools ./packages/tools
COPY --chown=$user:$user packages/lib ./packages/lib
COPY --chown=$user:$user packages/server ./packages/server
COPY .yarn/plugins ./.yarn/plugins
COPY .yarn/releases ./.yarn/releases
COPY package.json .
COPY .yarnrc.yml .
COPY yarn.lock .
COPY gulpfile.js .
COPY tsconfig.json .
COPY packages/turndown ./packages/turndown
COPY packages/turndown-plugin-gfm ./packages/turndown-plugin-gfm
COPY packages/fork-htmlparser2 ./packages/fork-htmlparser2
COPY packages/server/package*.json ./packages/server/
COPY packages/fork-sax ./packages/fork-sax
COPY packages/fork-uslug ./packages/fork-uslug
COPY packages/htmlpack ./packages/htmlpack
COPY packages/renderer ./packages/renderer
COPY packages/tools ./packages/tools
COPY packages/lib ./packages/lib
COPY packages/server ./packages/server
# For some reason there's both a .yarn/cache and .yarn/berry/cache that are
# being generated, and both have the same content. Not clear why it does this
@@ -59,10 +50,30 @@ RUN BUILD_SEQUENCIAL=1 yarn install --inline-builds \
&& yarn cache clean \
&& rm -rf .yarn/berry
# Call the command directly, without going via npm:
# https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#cmd
WORKDIR "/home/$user/packages/server"
CMD [ "node", "dist/app.js" ]
# =============================================================================
# Final stage - we copy only the relevant files from the build stage and start
# from a smaller base image.
# =============================================================================
FROM node:16-bullseye-slim
ARG user=joplin
RUN useradd --create-home --shell /bin/bash $user
USER $user
COPY --chown=$user:$user --from=builder /build/packages /home/$user/packages
COPY --chown=$user:$user --from=builder /tini /usr/local/bin/tini
ENV NODE_ENV=production
ENV RUNNING_IN_DOCKER=1
EXPOSE ${APP_PORT}
# Use Tini to start Joplin Server:
# https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals
WORKDIR /home/$user/packages/server
ENTRYPOINT ["tini", "--"]
CMD ["node", "dist/app.js"]
# Build-time metadata
# https://github.com/opencontainers/image-spec/blob/master/annotations.md

View File

@@ -219,7 +219,8 @@ then
Type=Application
Categories=Office;
MimeType=x-scheme-handler/joplin;
X-GNOME-SingleWindow=true
X-GNOME-SingleWindow=true // should be removed eventually as it was upstream to be an XDG specification
SingleMainWindow=true
EOF
# Update application icons

View File

@@ -10,6 +10,11 @@ under that directory is licensed under the default license, which is MIT.
* * *
Joplin® is a trademark of Cozic Ltd registered in the European Union, with
filing number 018544315.
* * *
Logo and Icon License
The Joplin logos and icons are copyright (c) Laurent Cozic, all rights reserved,

104
README.md
View File

@@ -4,7 +4,7 @@
* * *
<img width="64" src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/LinuxIcons/256x256.png" align="left" /> **Joplin** is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](#markdown).
<img width="64" src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/LinuxIcons/256x256.png" align="left" /> **Joplin**® is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](#markdown).
Notes exported from Evernote via .enex files [can be imported](#importing) into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.
@@ -76,9 +76,10 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
| <img width="50" src="https://avatars2.githubusercontent.com/u/215668?s=96&v=4"/></br>[avanderberg](https://github.com/avanderberg) | <img width="50" src="https://avatars2.githubusercontent.com/u/3061769?s=96&v=4"/></br>[c-nagy](https://github.com/c-nagy) | <img width="50" src="https://avatars2.githubusercontent.com/u/70780798?s=96&v=4"/></br>[cabottech](https://github.com/cabottech) | <img width="50" src="https://avatars2.githubusercontent.com/u/67130?s=96&v=4"/></br>[chr15m](https://github.com/chr15m) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/4862947?s=96&v=4"/></br>[chrootlogin](https://github.com/chrootlogin) | <img width="50" src="https://avatars2.githubusercontent.com/u/82579431?s=96&v=4"/></br>[clmntsl](https://github.com/clmntsl) | <img width="50" src="https://avatars2.githubusercontent.com/u/808091?s=96&v=4"/></br>[cuongtransc](https://github.com/cuongtransc) | <img width="50" src="https://avatars2.githubusercontent.com/u/1307332?s=96&v=4"/></br>[dbrandonjohnson](https://github.com/dbrandonjohnson) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1439535?s=96&v=4"/></br>[fbloise](https://github.com/fbloise) | <img width="50" src="https://avatars2.githubusercontent.com/u/38898566?s=96&v=4"/></br>[h4sh5](https://github.com/h4sh5) | <img width="50" src="https://avatars2.githubusercontent.com/u/3266447?s=96&v=4"/></br>[iamwillbar](https://github.com/iamwillbar) | <img width="50" src="https://avatars2.githubusercontent.com/u/37297218?s=96&v=4"/></br>[Jesssullivan](https://github.com/Jesssullivan) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1248504?s=96&v=4"/></br>[joesfer](https://github.com/joesfer) | <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) | <img width="50" src="https://avatars2.githubusercontent.com/u/42319182?s=96&v=4"/></br>[marcdw1289](https://github.com/marcdw1289) | <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) | <img width="50" src="https://avatars2.githubusercontent.com/u/1168659?s=96&v=4"/></br>[nicholashead](https://github.com/nicholashead) | <img width="50" src="https://avatars2.githubusercontent.com/u/5782817?s=96&v=4"/></br>[piccobit](https://github.com/piccobit) | <img width="50" src="https://avatars2.githubusercontent.com/u/47742?s=96&v=4"/></br>[ravenscroftj](https://github.com/ravenscroftj) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) | <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) | | |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1248504?s=96&v=4"/></br>[joesfer](https://github.com/joesfer) | <img width="50" src="https://avatars2.githubusercontent.com/u/5588131?s=96&v=4"/></br>[kianenigma](https://github.com/kianenigma) | <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) | <img width="50" src="https://avatars2.githubusercontent.com/u/42319182?s=96&v=4"/></br>[marcdw1289](https://github.com/marcdw1289) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) | <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) | <img width="50" src="https://avatars2.githubusercontent.com/u/1168659?s=96&v=4"/></br>[nicholashead](https://github.com/nicholashead) | <img width="50" src="https://avatars2.githubusercontent.com/u/5782817?s=96&v=4"/></br>[piccobit](https://github.com/piccobit) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/47742?s=96&v=4"/></br>[ravenscroftj](https://github.com/ravenscroftj) | <img width="50" src="https://avatars2.githubusercontent.com/u/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) | <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) |
| | | | |
<!-- SPONSORS-GITHUB -->
<!-- TOC -->
@@ -125,6 +126,7 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
- Development
- [How to build the apps](https://github.com/laurent22/joplin/blob/dev/BUILD.md)
- [Writing a technical spec](https://github.com/laurent22/joplin/blob/dev/readme/technical_spec.md)
- [End-to-end encryption spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/e2ee.md)
- [Note History spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/history.md)
- [Sync Lock spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_lock.md)
@@ -472,24 +474,6 @@ Notes are sorted by "relevance". Currently it means the notes that contain the r
In the desktop application, press <kbd>Ctrl+P</kbd> or <kbd>Cmd+P</kbd> and type a note title or part of its content to jump to it. Or type <kbd>#</kbd> followed by a tag name, or <kbd>@</kbd> followed by a notebook name.
# Privacy
Joplin values your privacy and security by giving you complete control over your information and digital footprint.
Joplin applications do not send any data to any service without your authorisation. Any data that Joplin saves, such as notes or images, are saved to your own device and you are free to delete this data at any time.
Joplin has many modern features, some of which use third-party services. You can disable any or all of these features in the application settings. These features are:
|Feature | Description | Default|
|--------|-------------|--------|
|Auto-update|Joplin periodically connects to GitHub to check for new releases.|Enabled|
|Geo-location|Joplin saves geo-location information in note properties when you create a note.|Enabled|
|Synchronisation|Joplin supports synchronisation of your notes across multiple devices. If you choose to synchronise with a third-party, such as OneDrive, the notes will be sent to your OneDrive account, in which case the third-party privacy policy applies.|Disabled|
Joplin is developed as an open-source application and the source code is freely available online to inspect.
For any question about Joplin privacy, please leave a message on the [Joplin Forum](https://discourse.joplinapp.org/).
# Donations
Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.
@@ -530,47 +514,47 @@ Current translations:
<!-- LOCALE-TABLE-AUTO-GENERATED -->
&nbsp; | Language | Po File | Last translator | Percent done
---|---|---|---|---
<img src="https://joplinapp.org/images/flags/country-4x3/arableague.png" width="16px"/> | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ar.po) | [Whaell O](mailto:Whaell@protonmail.com) | 93%
<img src="https://joplinapp.org/images/flags/es/basque_country.png" width="16px"/> | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 27%
<img src="https://joplinapp.org/images/flags/country-4x3/ba.png" width="16px"/> | Bosnian (Bosna i Hercegovina) | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 67%
<img src="https://joplinapp.org/images/flags/country-4x3/bg.png" width="16px"/> | Bulgarian (България) | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bg_BG.po) | | 53%
<img src="https://joplinapp.org/images/flags/es/catalonia.png" width="16px"/> | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ca.po) | [Xavi Ivars](mailto:xavi.ivars@gmail.com) | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/hr.png" width="16px"/> | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Milo Ivir](mailto:mail@milotype.de) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/cz.png" width="16px"/> | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Michal Stanke](mailto:michal@stanke.cz) | 89%
<img src="https://joplinapp.org/images/flags/country-4x3/dk.png" width="16px"/> | Dansk (Danmark) | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/da_DK.po) | ERYpTION | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [MrKanister](mailto:s.robin@tutanota.de) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/ee.png" width="16px"/> | Eesti Keel (Eesti) | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/et_EE.po) | | 51%
<img src="https://joplinapp.org/images/flags/country-4x3/arableague.png" width="16px"/> | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ar.po) | [Whaell O](mailto:Whaell@protonmail.com) | 91%
<img src="https://joplinapp.org/images/flags/es/basque_country.png" width="16px"/> | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 26%
<img src="https://joplinapp.org/images/flags/country-4x3/ba.png" width="16px"/> | Bosnian (Bosna i Hercegovina) | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 65%
<img src="https://joplinapp.org/images/flags/country-4x3/bg.png" width="16px"/> | Bulgarian (България) | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bg_BG.po) | | 51%
<img src="https://joplinapp.org/images/flags/es/catalonia.png" width="16px"/> | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ca.po) | [Xavi Ivars](mailto:xavi.ivars@gmail.com) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/hr.png" width="16px"/> | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Milo Ivir](mailto:mail@milotype.de) | 95%
<img src="https://joplinapp.org/images/flags/country-4x3/cz.png" width="16px"/> | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Michal Stanke](mailto:michal@stanke.cz) | 87%
<img src="https://joplinapp.org/images/flags/country-4x3/dk.png" width="16px"/> | Dansk (Danmark) | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/da_DK.po) | ERYpTION | 98%
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [Benjamin Weis](mailto:benjamin.weis@gmx.com) | 98%
<img src="https://joplinapp.org/images/flags/country-4x3/ee.png" width="16px"/> | Eesti Keel (Eesti) | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/et_EE.po) | | 50%
<img src="https://joplinapp.org/images/flags/country-4x3/gb.png" width="16px"/> | English (United Kingdom) | [en_GB](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_GB.po) | | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/us.png" width="16px"/> | English (United States of America) | [en_US](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_US.po) | | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/es.png" width="16px"/> | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Francisco Mora](mailto:francisco.m.collao@gmail.com) | 99%
<img src="https://joplinapp.org/images/flags/esperanto.png" width="16px"/> | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eo.po) | Marton Paulo | 30%
<img src="https://joplinapp.org/images/flags/country-4x3/fi.png" width="16px"/> | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | mrkaato | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/fr.png" width="16px"/> | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 100%
<img src="https://joplinapp.org/images/flags/es/galicia.png" width="16px"/> | Galician (España) | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 34%
<img src="https://joplinapp.org/images/flags/country-4x3/id.png" width="16px"/> | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [eresytter](mailto:42007357+eresytter@users.noreply.github.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/it.png" width="16px"/> | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Albano Battistella](mailto:albano_battistella@hotmail.com) | 90%
<img src="https://joplinapp.org/images/flags/country-4x3/hu.png" width="16px"/> | Magyar (Magyarország) | [hu_HU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hu_HU.po) | [Magyari Balázs](mailto:balmag@gmail.com) | 78%
<img src="https://joplinapp.org/images/flags/country-4x3/be.png" width="16px"/> | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 81%
<img src="https://joplinapp.org/images/flags/country-4x3/nl.png" width="16px"/> | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MetBril](mailto:metbril@users.noreply.github.com) | 85%
<img src="https://joplinapp.org/images/flags/country-4x3/no.png" width="16px"/> | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | Alexander Dawson | 90%
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 64%
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [konhi](mailto:hello.konhi@gmail.com) | 84%
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Felipe Viggiano](mailto:felipeviggiano@gmail.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 84%
<img src="https://joplinapp.org/images/flags/country-4x3/ro.png" width="16px"/> | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 59%
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/es.png" width="16px"/> | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Francisco Mora](mailto:francisco.m.collao@gmail.com) | 97%
<img src="https://joplinapp.org/images/flags/esperanto.png" width="16px"/> | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eo.po) | Marton Paulo | 29%
<img src="https://joplinapp.org/images/flags/country-4x3/fi.png" width="16px"/> | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | mrkaato | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/fr.png" width="16px"/> | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 98%
<img src="https://joplinapp.org/images/flags/es/galicia.png" width="16px"/> | Galician (España) | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 33%
<img src="https://joplinapp.org/images/flags/country-4x3/id.png" width="16px"/> | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [eresytter](mailto:42007357+eresytter@users.noreply.github.com) | 90%
<img src="https://joplinapp.org/images/flags/country-4x3/it.png" width="16px"/> | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Albano Battistella](mailto:albano_battistella@hotmail.com) | 88%
<img src="https://joplinapp.org/images/flags/country-4x3/hu.png" width="16px"/> | Magyar (Magyarország) | [hu_HU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hu_HU.po) | [Magyari Balázs](mailto:balmag@gmail.com) | 76%
<img src="https://joplinapp.org/images/flags/country-4x3/be.png" width="16px"/> | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 89%
<img src="https://joplinapp.org/images/flags/country-4x3/nl.png" width="16px"/> | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MetBril](mailto:metbril@users.noreply.github.com) | 83%
<img src="https://joplinapp.org/images/flags/country-4x3/no.png" width="16px"/> | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | Alexander Dawson | 88%
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 63%
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [konhi](mailto:hello.konhi@gmail.com) | 82%
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Felipe Viggiano](mailto:felipeviggiano@gmail.com) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 82%
<img src="https://joplinapp.org/images/flags/country-4x3/ro.png" width="16px"/> | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 58%
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/se.png" width="16px"/> | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/th.png" width="16px"/> | Thai (ประเทศไทย) | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/th_TH.po) | | 43%
<img src="https://joplinapp.org/images/flags/country-4x3/vi.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 90%
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 83%
<img src="https://joplinapp.org/images/flags/country-4x3/gr.png" width="16px"/> | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 87%
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 76%
<img src="https://joplinapp.org/images/flags/country-4x3/cn.png" width="16px"/> | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_CN.po) | [南宫小骏](mailto:jackytsu@vip.qq.com) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/tw.png" width="16px"/> | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [SiderealArt](mailto:nelson22768384@gmail.com) | 90%
<img src="https://joplinapp.org/images/flags/country-4x3/jp.png" width="16px"/> | 日本語 (日本) | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 98%
<img src="https://joplinapp.org/images/flags/country-4x3/kr.png" width="16px"/> | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 89%
<img src="https://joplinapp.org/images/flags/country-4x3/th.png" width="16px"/> | Thai (ประเทศไทย) | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/th_TH.po) | | 41%
<img src="https://joplinapp.org/images/flags/country-4x3/vn.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 88%
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 98%
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 81%
<img src="https://joplinapp.org/images/flags/country-4x3/gr.png" width="16px"/> | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 85%
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 74%
<img src="https://joplinapp.org/images/flags/country-4x3/cn.png" width="16px"/> | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_CN.po) | [horaceyoung](mailto:yonghaoharry@gmail.com) | 98%
<img src="https://joplinapp.org/images/flags/country-4x3/tw.png" width="16px"/> | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [SiderealArt](mailto:nelson22768384@gmail.com) | 88%
<img src="https://joplinapp.org/images/flags/country-4x3/jp.png" width="16px"/> | 日本語 (日本) | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 96%
<img src="https://joplinapp.org/images/flags/country-4x3/kr.png" width="16px"/> | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 87%
<!-- LOCALE-TABLE-AUTO-GENERATED -->
# Contributors

View File

@@ -78,8 +78,5 @@
"node-gyp": "^8.4.1",
"nodemon": "^2.0.9"
},
"packageManager": "yarn@3.1.1",
"resolutions": {
"markdown-it-multimd-table@4.1.1": "patch:markdown-it-multimd-table@npm:4.1.1#.yarn/patches/markdown-it-multimd-table-npm-4.1.1-47e334d4bd"
}
"packageManager": "yarn@3.1.1"
}

View File

@@ -0,0 +1,4 @@
<img src=":/39e66095b2cd427e9f13464487514d2e" alt="">
<img src=":/39e66095b2cd427e9f13464487514d2e" alt="" title="some-title">
<img src=":/39e66095b2cd427e9f13464487514d2e" alt="some-alt-text">
<img src=":/39e66095b2cd427e9f13464487514d2e" alt="some-alt-text" title="some-title">

View File

@@ -0,0 +1,4 @@
![](:/39e66095b2cd427e9f13464487514d2e)
![](:/39e66095b2cd427e9f13464487514d2e "some-title")
![some-alt-text](:/39e66095b2cd427e9f13464487514d2e)
![some-alt-text](:/39e66095b2cd427e9f13464487514d2e "some-title")

View File

@@ -9,6 +9,13 @@ interface LastSelectedPath {
directory: string;
}
interface OpenDialogOptions {
properties?: string[];
defaultPath?: string;
createDirectory?: boolean;
filters?: any[];
}
export class Bridge {
private electronWrapper_: ElectronAppWrapper;
@@ -155,14 +162,14 @@ export class Bridge {
return filePath;
}
async showOpenDialog(options: any = null) {
async showOpenDialog(options: OpenDialogOptions = null) {
const { dialog } = require('electron');
if (!options) options = {};
let fileType = 'file';
if (options.properties && options.properties.includes('openDirectory')) fileType = 'directory';
if (!('defaultPath' in options) && (this.lastSelectedPaths_ as any)[fileType]) options.defaultPath = (this.lastSelectedPaths_ as any)[fileType];
if (!('createDirectory' in options)) options.createDirectory = true;
const { filePaths } = await dialog.showOpenDialog(this.window(), options);
const { filePaths } = await dialog.showOpenDialog(this.window(), options as any);
if (filePaths && filePaths.length) {
(this.lastSelectedPaths_ as any)[fileType] = dirname(filePaths[0]);
}

View File

@@ -8,9 +8,11 @@ import StyledInput from '../style/StyledInput';
import { IconSelector, ChangeEvent } from './IconSelector';
import useAsyncEffect, { AsyncEffectEvent } from '@joplin/lib/hooks/useAsyncEffect';
import Folder from '@joplin/lib/models/Folder';
import { FolderEntity, FolderIcon } from '@joplin/lib/services/database/types';
import { FolderEntity, FolderIcon, FolderIconType } from '@joplin/lib/services/database/types';
import Button from '../Button/Button';
import bridge from '../../services/bridge';
import shim from '@joplin/lib/shim';
import FolderIconBox from '../FolderIconBox';
interface Props {
themeId: number;
@@ -93,6 +95,27 @@ export default function(props: Props) {
setFolderIcon(null);
}, []);
const onBrowseClick = useCallback(async () => {
const filePaths = await bridge().showOpenDialog();
if (filePaths.length !== 1) return;
const filePath = filePaths[0];
try {
const dataUrl = await shim.imageToDataUrl(filePath, 256);
setFolderIcon(icon => {
return {
...icon,
emoji: '',
name: '',
type: FolderIconType.DataUrl,
dataUrl,
};
});
} catch (error) {
await bridge().showErrorMessageBox(error.message);
}
}, []);
function renderForm() {
return (
<div>
@@ -105,11 +128,14 @@ export default function(props: Props) {
<div className="form-input-group">
<label>{_('Icon')}</label>
<div className="icon-selector-row">
{ folderIcon && <div className="foldericon"><FolderIconBox folderIcon={folderIcon} /></div> }
<IconSelector
title={_('Select emoji...')}
icon={folderIcon}
onChange={onFolderIconChange}
/>
<Button ml={1} title={_('Clear')} onClick={onClearClick}/>
<Button ml={1} title={_('Select file...')} onClick={onBrowseClick}/>
{ folderIcon && <Button ml={1} title={_('Clear')} onClick={onClearClick}/> }
</div>
</div>
</div>

View File

@@ -3,7 +3,7 @@ import { useEffect, useState, useCallback, useRef } from 'react';
import useAsyncEffect, { AsyncEffectEvent } from '@joplin/lib/hooks/useAsyncEffect';
import { loadScript } from '../utils/loadScript';
import Button from '../Button/Button';
import { FolderIcon } from '@joplin/lib/services/database/types';
import { FolderIcon, FolderIconType } from '@joplin/lib/services/database/types';
import bridge from '../../services/bridge';
export interface ChangeEvent {
@@ -15,6 +15,7 @@ type ChangeHandler = (event: ChangeEvent)=> void;
interface Props {
onChange: ChangeHandler;
icon: FolderIcon | null;
title: string;
}
export const IconSelector = (props: Props) => {
@@ -62,7 +63,7 @@ export const IconSelector = (props: Props) => {
});
const onEmoji = (selection: FolderIcon) => {
props.onChange({ value: selection });
props.onChange({ value: { ...selection, type: FolderIconType.Emoji } });
};
p.on('emoji', onEmoji);
@@ -78,16 +79,25 @@ export const IconSelector = (props: Props) => {
picker.togglePicker(buttonRef.current);
}, [picker]);
const buttonText = props.icon ? props.icon.emoji : '...';
// const buttonText = props.icon ? props.icon.emoji : '...';
return (
<Button
disabled={!picker}
ref={buttonRef}
onClick={onClick}
title={buttonText}
isSquare={true}
fontSize={20}
title={props.title}
/>
);
// return (
// <Button
// disabled={!picker}
// ref={buttonRef}
// onClick={onClick}
// title={buttonText}
// isSquare={true}
// fontSize={20}
// />
// );
};

View File

@@ -1,4 +1,9 @@
.icon-selector-row {
display: flex;
flex-direction: row;
align-items: center;
}
.icon-selector-row > .foldericon {
margin-right: 5px;
}

View File

@@ -0,0 +1,17 @@
import { FolderIcon, FolderIconType } from '@joplin/lib/services/database/types';
interface Props {
folderIcon: FolderIcon;
}
export default function(props: Props) {
const folderIcon = props.folderIcon;
if (folderIcon.type === FolderIconType.Emoji) {
return <span style={{ fontSize: 20 }}>{folderIcon.emoji}</span>;
} else if (folderIcon.type === FolderIconType.DataUrl) {
return <img style={{ width: 20, height: 20 }} src={folderIcon.dataUrl} />;
} else {
throw new Error(`Unsupported folder icon type: ${folderIcon.type}`);
}
}

View File

@@ -67,7 +67,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
usePluginServiceRegistration(ref);
const { resetScroll, editor_scroll, setEditorPercentScroll, setViewerPercentScroll, editor_resize, getLineScrollPercent,
const { resetScroll, editor_scroll, setEditorPercentScroll, setViewerPercentScroll, editor_resize, editor_update, getLineScrollPercent,
} = useScrollHandler(editorRef, webviewRef, props.onScroll);
const codeMirror_change = useCallback((newBody: string) => {
@@ -843,6 +843,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
onEditorPaste={onEditorPaste}
isSafeMode={props.isSafeMode}
onResize={editor_resize}
onUpdate={editor_update}
/>
</div>
);

View File

@@ -94,6 +94,7 @@ export interface EditorProps {
onEditorPaste: any;
isSafeMode: boolean;
onResize: any;
onUpdate: any;
}
function Editor(props: EditorProps, ref: any) {
@@ -148,6 +149,14 @@ function Editor(props: EditorProps, ref: any) {
event.dataTransfer.dropEffect = 'copy';
}, []);
const editor_resize = useCallback((cm: any) => {
props.onResize(cm);
}, [props.onResize]);
const editor_update = useCallback((cm: any) => {
props.onUpdate(cm);
}, [props.onUpdate]);
useEffect(() => {
if (!editorParent.current) return () => {};
@@ -190,7 +199,8 @@ function Editor(props: EditorProps, ref: any) {
cm.on('paste', editor_paste);
cm.on('drop', editor_drop);
cm.on('dragover', editor_drag);
cm.on('refresh', props.onResize);
cm.on('refresh', editor_resize);
cm.on('update', editor_update);
// It's possible for searchMarkers to be available before the editor
// In these cases we set the markers asap so the user can see them as
@@ -204,7 +214,8 @@ function Editor(props: EditorProps, ref: any) {
cm.off('paste', editor_paste);
cm.off('drop', editor_drop);
cm.off('dragover', editor_drag);
cm.off('refresh', props.onResize);
cm.off('refresh', editor_resize);
cm.off('update', editor_update);
editorParent.current.removeChild(cm.getWrapperElement());
setEditor(null);
};

View File

@@ -8,6 +8,7 @@ export default function useEditorSearch(CodeMirror: any) {
const [scrollbarMarks, setScrollbarMarks] = useState(null);
const [previousKeywordValue, setPreviousKeywordValue] = useState(null);
const [previousIndex, setPreviousIndex] = useState(null);
const [previousSearchTimestamp, setPreviousSearchTimestamp] = useState(0);
const [overlayTimeout, setOverlayTimeout] = useState(null);
const overlayTimeoutRef = useRef(null);
overlayTimeoutRef.current = overlayTimeout;
@@ -51,7 +52,7 @@ export default function useEditorSearch(CodeMirror: any) {
// Highlights the currently active found work
// It's possible to get tricky with this fucntions and just use findNext/findPrev
// but this is fast enough and works more naturally with the current search logic
function highlightSearch(cm: any, searchTerm: RegExp, index: number, scrollTo: boolean) {
function highlightSearch(cm: any, searchTerm: RegExp, index: number, scrollTo: boolean, withSelection: boolean) {
const cursor = cm.getSearchCursor(searchTerm);
let match: any = null;
@@ -64,7 +65,13 @@ export default function useEditorSearch(CodeMirror: any) {
}
if (match) {
if (scrollTo) cm.setSelection(match.from, match.to);
if (scrollTo) {
if (withSelection) {
cm.setSelection(match.from, match.to);
} else {
cm.scrollTo(match);
}
}
return cm.markText(match.from, match.to, { className: 'cm-search-marker-selected' });
}
@@ -90,7 +97,7 @@ export default function useEditorSearch(CodeMirror: any) {
CodeMirror.defineExtension('setMarkers', function(keywords: any, options: any) {
if (!options) {
options = { selectedIndex: 0 };
options = { selectedIndex: 0, searchTimestamp: 0 };
}
clearMarkers();
@@ -107,16 +114,15 @@ export default function useEditorSearch(CodeMirror: any) {
const searchTerm = getSearchTerm(keyword);
// We only want to scroll the first keyword into view in the case of a multi keyword search
const scrollTo = i === 0 && (previousKeywordValue !== keyword.value || previousIndex !== options.selectedIndex ||
// If there is only one choice, scrollTo should be true. The below is a dummy of nMatches === 1.
options.selectedIndex === 0);
const scrollTo = i === 0 && (previousKeywordValue !== keyword.value || previousIndex !== options.selectedIndex || options.searchTimestamp !== previousSearchTimestamp);
const match = highlightSearch(this, searchTerm, options.selectedIndex, scrollTo);
const match = highlightSearch(this, searchTerm, options.selectedIndex, scrollTo, !!options.withSelection);
if (match) marks.push(match);
}
setMarkers(marks);
setPreviousIndex(options.selectedIndex);
setPreviousSearchTimestamp(options.searchTimestamp);
// SEARCHOVERLAY
// We only want to highlight all matches when there is only 1 search term

View File

@@ -7,7 +7,10 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
const ignoreNextEditorScrollTime_ = useRef(Date.now());
const ignoreNextEditorScrollEventCount_ = useRef(0);
const delayedSetEditorPercentScrollTimeoutID_ = useRef(null);
const scrollTopIsUncertain_ = useRef(true);
const lastResizeHeight_ = useRef(NaN);
const lastLinesHeight_ = useRef(NaN);
const restoreEditorPercentScrollTimeoutId_ = useRef<any>(null);
// Ignores one next scroll event for a short time.
const ignoreNextEditorScrollEvent = () => {
@@ -55,23 +58,33 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
if (isCodeMirrorReady(cm)) {
// calculates editor's GUI-dependent pixel-based raw percent
const newEditorPercent = translateScrollPercentL2E(cm, scrollPercent_.current);
const oldEditorPercent = cm.getScrollPercent();
const oldEditorPercent = scrollTopIsUncertain_.current ? NaN : cm.getScrollPercent();
if (!(Math.abs(newEditorPercent - oldEditorPercent) < 1e-8)) {
ignoreNextEditorScrollEvent();
cm.setScrollPercent(newEditorPercent);
}
scrollTopIsUncertain_.current = false;
} else {
retry += 1;
if (retry <= 10) {
if (retry <= 3) {
delayedSetEditorPercentScrollTimeoutID_.current = shim.setTimeout(fn, 50);
}
scrollTopIsUncertain_.current = true;
lastResizeHeight_.current = NaN;
lastLinesHeight_.current = NaN;
}
};
fn();
};
const restoreEditorPercentScroll = () => {
if (isCodeMirrorReady(editorRef.current)) {
if (restoreEditorPercentScrollTimeoutId_.current) {
shim.clearTimeout(restoreEditorPercentScrollTimeoutId_.current);
restoreEditorPercentScrollTimeoutId_.current = null;
}
const cm = editorRef.current;
if (isCodeMirrorReady(cm)) {
lastLinesHeight_.current = cm.heightAtLine(cm.lineCount()) - cm.heightAtLine(0);
setEditorPercentScrollInternal(scrollPercent_.current);
}
};
@@ -94,20 +107,24 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
const ignored = isNextEditorScrollEventIgnored();
const cm = editorRef.current;
if (isCodeMirrorReady(cm)) {
if (scrollTopIsUncertain_.current) return;
const editorPercent = Math.max(0, Math.min(1, cm.getScrollPercent()));
if (!isNaN(editorPercent)) {
// when switching to another note, the percent can sometimes be NaN
// this is coming from `gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.ts`
// when CodeMirror returns scroll info with heigth == clientHeigth
// https://github.com/laurent22/joplin/issues/4797
// calculates GUI-independent line-based percent
const percent = translateScrollPercentE2L(cm, editorPercent);
scrollPercent_.current = percent;
if (!ignored) {
// calculates GUI-independent line-based percent
const percent = translateScrollPercentE2L(cm, editorPercent);
scrollPercent_.current = percent;
setViewerPercentScroll(percent);
}
}
} else {
scrollTopIsUncertain_.current = true;
lastResizeHeight_.current = NaN;
lastLinesHeight_.current = NaN;
}
}, [setViewerPercentScroll]);
@@ -115,18 +132,45 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
scrollPercent_.current = 0;
if (editorRef.current) {
editorRef.current.setScrollPercent(0);
scrollTopIsUncertain_.current = false;
}
}, []);
const editor_resize = useCallback((cm) => {
if (isCodeMirrorReady(cm)) {
// This handler is called when resized and refreshed.
// Only when resized, the scroll position is restored.
const info = cm.getScrollInfo();
const height = info.height - info.clientHeight;
if (height !== lastResizeHeight_.current) {
// When resized, restoring is performed immediately.
restoreEditorPercentScroll();
lastResizeHeight_.current = height;
}
} else {
scrollTopIsUncertain_.current = true;
lastResizeHeight_.current = NaN;
lastLinesHeight_.current = NaN;
}
}, []);
// When heights of lines are updated in CodeMirror, 'update' events are raised.
// If such an update event is raised, scroll position should be restored.
// See https://github.com/laurent22/joplin/issues/5981
const editor_update = useCallback((cm) => {
if (isCodeMirrorReady(cm)) {
const linesHeight = cm.heightAtLine(cm.lineCount()) - cm.heightAtLine(0);
if (lastLinesHeight_.current !== linesHeight) {
// To avoid cancelling intentional scroll position changes,
// restoring is performed in a timeout handler.
if (!restoreEditorPercentScrollTimeoutId_.current) {
restoreEditorPercentScrollTimeoutId_.current = shim.setTimeout(restoreEditorPercentScroll, 10);
}
}
} else {
scrollTopIsUncertain_.current = true;
lastResizeHeight_.current = NaN;
lastLinesHeight_.current = NaN;
}
}, []);
@@ -141,7 +185,7 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
}, []);
return {
resetScroll, setEditorPercentScroll, setViewerPercentScroll, editor_scroll, editor_resize, getLineScrollPercent,
resetScroll, setEditorPercentScroll, setViewerPercentScroll, editor_scroll, editor_resize, editor_update, getLineScrollPercent,
};
}

View File

@@ -92,6 +92,7 @@ export default function useNoteSearchBar() {
selectedIndex: localSearch.selectedIndex,
separateWordSearch: false,
searchTimestamp: localSearch.timestamp,
withSelection: true,
},
keywords: [
{

View File

@@ -4,6 +4,7 @@ interface SearchMarkersOptions {
searchTimestamp: number;
selectedIndex: number;
separateWordSearch: boolean;
withSelection?: boolean;
}
export interface SearchMarkers {

View File

@@ -167,8 +167,8 @@ class NoteSearchBarComponent extends React.Component {
type="text"
style={{ width: 200, marginRight: 5, backgroundColor: this.backgroundColor, color: theme.color }}
/>
{allowScrolling ? nextButton : null}
{allowScrolling ? previousButton : null}
{allowScrolling ? nextButton : null}
{allowScrolling ? matchesFoundString : null}
{!allowScrolling ? viewerWarning : null}
</div>

View File

@@ -56,7 +56,7 @@ class PromptDialog extends React.Component {
top: 0,
left: 0,
width: width,
height: height - paddingTop,
height: height,
backgroundColor: 'rgba(0,0,0,0.6)',
display: visible ? 'flex' : 'none',
alignItems: 'flex-start',

View File

@@ -139,6 +139,21 @@ function SearchBar(props: Props) {
}
}, [props.notesParentType, onExitSearch]);
// When the searchbar is remounted, exit the search if it was previously open
// or else other buttons stay hidden (e.g. when opening Layout Editor and closing it)
// https://github.com/laurent22/joplin/issues/5953
useEffect(() => {
if (props.notesParentType === 'Search' || props.isFocused) {
if (props.isFocused) {
props.dispatch({
type: 'FOCUS_CLEAR',
field: 'globalSearch',
});
}
void onExitSearch(true);
}
}, []);
return (
<Root className="search-bar">
<SearchInput

View File

@@ -17,11 +17,12 @@ import Folder from '@joplin/lib/models/Folder';
import Note from '@joplin/lib/models/Note';
import Tag from '@joplin/lib/models/Tag';
import Logger from '@joplin/lib/Logger';
import { FolderEntity } from '@joplin/lib/services/database/types';
import { FolderEntity, FolderIcon } from '@joplin/lib/services/database/types';
import stateToWhenClauseContext from '../../services/commands/stateToWhenClauseContext';
import { store } from '@joplin/lib/reducer';
import PerFolderSortOrderService from '../../services/sortOrder/PerFolderSortOrderService';
import { getFolderCallbackUrl, getTagCallbackUrl } from '@joplin/lib/callbackUrlUtils';
import FolderIconBox from '../FolderIconBox';
const { connect } = require('react-redux');
const shared = require('@joplin/lib/components/shared/side-menu-shared.js');
const { themeStyle } = require('@joplin/lib/theme');
@@ -77,6 +78,12 @@ function ExpandLink(props: any) {
);
}
const renderFolderIcon = (folderIcon: FolderIcon) => {
if (!folderIcon) return null;
return <div style={{ marginRight: 5, display: 'flex' }}><FolderIconBox folderIcon={folderIcon}/></div>;
};
function FolderItem(props: any) {
const { hasChildren, isExpanded, parentId, depth, selected, folderId, folderTitle, folderIcon, anchorRef, noteCount, onFolderDragStart_, onFolderDragOver_, onFolderDrop_, itemContextMenu, folderItem_click, onFolderToggleClick_, shareId } = props;
@@ -84,8 +91,6 @@ function FolderItem(props: any) {
const shareIcon = shareId && !parentId ? <StyledShareIcon className="fas fa-share-alt"></StyledShareIcon> : null;
const icon = folderIcon ? <span style={{ fontSize: 20, marginRight: 5 }}>{folderIcon.emoji}</span> : null;
return (
<StyledListItem depth={depth} selected={selected} className={`list-item-container list-item-depth-${depth} ${selected ? 'selected' : ''}`} onDragStart={onFolderDragStart_} onDragOver={onFolderDragOver_} onDrop={onFolderDrop_} draggable={true} data-folder-id={folderId}>
<ExpandLink themeId={props.themeId} hasChildren={hasChildren} folderId={folderId} onClick={onFolderToggleClick_} isExpanded={isExpanded}/>
@@ -105,7 +110,7 @@ function FolderItem(props: any) {
}}
onDoubleClick={onFolderToggleClick_}
>
{icon}<span className="title" style={{ lineHeight: 0 }}>{folderTitle}</span>
{renderFolderIcon(folderIcon)}<span className="title" style={{ lineHeight: 0 }}>{folderTitle}</span>
{shareIcon} {noteCountComp}
</StyledListItemAnchor>
</StyledListItem>

View File

@@ -277,6 +277,9 @@
let restoreAndRefreshTimeoutID_ = null;
let restoreAndRefreshTimeout_ = Date.now();
// If 'noteRenderComplete' message is ongoing, resizing should not trigger a 'percentScroll' messsage.
let noteRenderCompleteMessageIsOngoing_ = false;
// A callback anonymous function invoked when the scroll height changes.
const onRendering = observeRendering((cause, height, heightChanged) => {
if (!alreadyAllImagesLoaded && !scrollmap.isPresent()) {
@@ -285,6 +288,7 @@
alreadyAllImagesLoaded = true;
scrollmap.refresh();
restorePercentScroll();
noteRenderCompleteMessageIsOngoing_ = true;
ipcProxySendToHost('noteRenderComplete');
return;
}
@@ -293,6 +297,8 @@
const restoreAndRefresh = () => {
scrollmap.refresh();
restorePercentScroll();
// To ensures Editor's scroll position is synced with Viewer's
if (!noteRenderCompleteMessageIsOngoing_) ipcProxySendToHost('percentScroll', percentScroll_);
};
const now = Date.now();
if (now < restoreAndRefreshTimeout_) {
@@ -343,11 +349,13 @@
if (scrollmap.isPresent()) {
// Now, ready to receive scrollToHash/setPercentScroll from Editor.
noteRenderCompleteMessageIsOngoing_ = true;
ipcProxySendToHost('noteRenderComplete');
}
}
ipc.setPercentScroll = (event) => {
noteRenderCompleteMessageIsOngoing_ = false;
setPercentScroll(event.percent);
}

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/app-desktop",
"version": "2.7.0",
"version": "2.7.8",
"description": "Joplin for Desktop",
"main": "main.js",
"private": true,

View File

@@ -19,6 +19,7 @@ const { mergeOverlappingIntervals } = require('@joplin/lib/ArrayUtils.js');
import markupLanguageUtils from '../utils/markupLanguageUtils';
import focusEditorIfEditorCommand from '@joplin/lib/services/commands/focusEditorIfEditorCommand';
import Logger from '@joplin/lib/Logger';
import { MarkupToHtml } from '@joplin/renderer';
const logger = Logger.create('GotoAnything');
@@ -81,7 +82,7 @@ class Dialog extends React.PureComponent<Props, State> {
private inputRef: any;
private itemListRef: any;
private listUpdateIID_: any;
private markupToHtml_: any;
private markupToHtml_: MarkupToHtml;
private userCallback_: any = null;
constructor(props: Props) {

View File

@@ -1,5 +1,4 @@
import Logger from '@joplin/lib/Logger';
import time from '@joplin/lib/time';
const logger = Logger.create('BackOffHandler');
@@ -52,13 +51,21 @@ export default class BackOffHandler {
this.waitCount_++;
// For now don't actually apply a backoff and don't abort.
logger.warn(`Plugin ${this.pluginId_}: Applying a backoff of ${interval} seconds due to frequent plugin API calls. Consider reducing the number of calls, caching the data, or requesting more data per call. API call was: `, path, args, `[Wait count: ${this.waitCount_}]`);
if (this.waitCount_ > this.maxWaitCount_) throw new Error(`Plugin ${this.pluginId_}: More than ${this.maxWaitCount_} API alls are waiting - aborting. Please consider queuing the API calls in your plugins to reduce the load on the application.`);
await time.sleep(interval);
if (this.waitCount_ > this.maxWaitCount_) logger.error(`Plugin ${this.pluginId_}: More than ${this.maxWaitCount_} API alls are waiting - aborting. Please consider queuing the API calls in your plugins to reduce the load on the application.`);
this.waitCount_--;
// if (this.waitCount_ > this.maxWaitCount_) throw new Error(`Plugin ${this.pluginId_}: More than ${this.maxWaitCount_} API alls are waiting - aborting. Please consider queuing the API calls in your plugins to reduce the load on the application.`);
// await time.sleep(interval);
// this.waitCount_--;
}
}

View File

@@ -40,6 +40,7 @@ export default class PerFolderSortOrderService {
this.loadSharedSortOrder();
eventManager.appStateOn('notesParentType', this.onFolderSelectionMayChange.bind(this, 'notesParentType'));
eventManager.appStateOn('selectedFolderId', this.onFolderSelectionMayChange.bind(this, 'selectedFolderId'));
this.previousFolderId = Setting.value('activeFolderId');
}
public static isSet(folderId: string): boolean {

View File

@@ -30,7 +30,10 @@ function convertJsx(path) {
if (fileIsNewerThan(jsxPath, jsPath)) {
console.info(`Compiling ${jsxPath}...`);
const result = spawnSync('yarn', ['run', 'babel', '--presets', 'react', '--out-file', jsPath, jsxPath]);
// { shell: true } is needed to get it working on Windows:
// https://discourse.joplinapp.org/t/attempting-to-build-on-windows/22559/12
const result = spawnSync('yarn', ['run', 'babel', '--presets', 'react', '--out-file', jsPath, jsxPath], { shell: true });
if (result.status !== 0) {
const msg = [];
if (result.stdout) msg.push(result.stdout.toString());

View File

@@ -1,6 +1,6 @@
const React = require('react');
const Component = React.Component;
const { Easing, Animated, TouchableOpacity, Text, StyleSheet, ScrollView, View, Alert } = require('react-native');
const { Easing, Animated, TouchableOpacity, Text, StyleSheet, ScrollView, View, Alert, Image } = require('react-native');
const { connect } = require('react-redux');
const Icon = require('react-native-vector-icons/Ionicons').default;
const Folder = require('@joplin/lib/models/Folder').default;
@@ -74,7 +74,7 @@ class SideMenuContentComponent extends Component {
styles.folderButton = Object.assign({}, styles.button);
styles.folderButton.paddingLeft = 0;
styles.folderButtonText = Object.assign({}, styles.buttonText);
styles.folderButtonText = Object.assign({}, styles.buttonText, { paddingLeft: 0 });
styles.folderButtonSelected = Object.assign({}, styles.folderButton);
styles.folderButtonSelected.backgroundColor = theme.selectedColor;
styles.folderIcon = Object.assign({}, theme.icon);
@@ -219,6 +219,18 @@ class SideMenuContentComponent extends Component {
if (actionDone === 'auth') this.props.dispatch({ type: 'SIDE_MENU_CLOSE' });
}
renderFolderIcon(theme, folderIcon) {
if (!folderIcon) return null;
if (folderIcon.type === 1) { // FolderIconType.Emoji
return <Text style={{ fontSize: theme.fontSize, marginRight: 4 }}>{folderIcon.emoji}</Text>;
} else if (folderIcon.type === 2) { // FolderIconType.DataUrl
return <Image style={{ width: 20, height: 20, marginRight: 4, resizeMode: 'contain' }} source={{ uri: folderIcon.dataUrl }}/>;
} else {
throw new Error(`Unsupported folder icon type: ${folderIcon.type}`);
}
}
renderFolderItem(folder, selected, hasChildren, depth) {
const theme = themeStyle(this.props.themeId);
@@ -228,6 +240,7 @@ class SideMenuContentComponent extends Component {
height: 36,
alignItems: 'center',
paddingRight: theme.marginRight,
paddingLeft: 10,
};
if (selected) folderButtonStyle.backgroundColor = theme.selectedColor;
folderButtonStyle.paddingLeft = depth * 10 + theme.marginLeft;
@@ -253,7 +266,6 @@ class SideMenuContentComponent extends Component {
);
const folderIcon = Folder.unserializeIcon(folder.icon);
const icon = folderIcon ? `${folderIcon.emoji} ` : '';
return (
<View key={folder.id} style={{ flex: 1, flexDirection: 'row' }}>
@@ -267,8 +279,9 @@ class SideMenuContentComponent extends Component {
}}
>
<View style={folderButtonStyle}>
{this.renderFolderIcon(theme, folderIcon)}
<Text numberOfLines={1} style={this.styles().folderButtonText}>
{icon + Folder.displayTitle(folder)}
{Folder.displayTitle(folder)}
</Text>
</View>
</TouchableOpacity>

View File

@@ -1 +1 @@
module.exports = `cHJlIGNvZGUuaGxqc3tkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0bztwYWRkaW5nOjFlbX1jb2RlLmhsanN7cGFkZGluZzozcHggNXB4fS5obGpze2NvbG9yOiNhYmIyYmY7YmFja2dyb3VuZDojMjgyYzM0fS5obGpzLWtleXdvcmQsLmhsanMtb3BlcmF0b3IsLmhsanMtcGF0dGVybi1tYXRjaHtjb2xvcjojZjkyNjcyfS5obGpzLWZ1bmN0aW9uLC5obGpzLXBhdHRlcm4tbWF0Y2ggLmhsanMtY29uc3RydWN0b3J7Y29sb3I6IzYxYWVlZX0uaGxqcy1mdW5jdGlvbiAuaGxqcy1wYXJhbXN7Y29sb3I6I2E2ZTIyZX0uaGxqcy1mdW5jdGlvbiAuaGxqcy1wYXJhbXMgLmhsanMtdHlwaW5ne2NvbG9yOiNmZDk3MWZ9LmhsanMtbW9kdWxlLWFjY2VzcyAuaGxqcy1tb2R1bGV7Y29sb3I6IzdlNTdjMn0uaGxqcy1jb25zdHJ1Y3Rvcntjb2xvcjojZTJiOTNkfS5obGpzLWNvbnN0cnVjdG9yIC5obGpzLXN0cmluZ3tjb2xvcjojOWNjYzY1fS5obGpzLWNvbW1lbnQsLmhsanMtcXVvdGV7Y29sb3I6I2IxOGViMTtmb250LXN0eWxlOml0YWxpY30uaGxqcy1kb2N0YWcsLmhsanMtZm9ybXVsYXtjb2xvcjojYzY3OGRkfS5obGpzLWRlbGV0aW9uLC5obGpzLW5hbWUsLmhsanMtc2VjdGlvbiwuaGxqcy1zZWxlY3Rvci10YWcsLmhsanMtc3Vic3R7Y29sb3I6I2UwNmM3NX0uaGxqcy1saXRlcmFse2NvbG9yOiM1NmI2YzJ9LmhsanMtYWRkaXRpb24sLmhsanMtYXR0cmlidXRlLC5obGpzLW1ldGEgLmhsanMtc3RyaW5nLC5obGpzLXJlZ2V4cCwuaGxqcy1zdHJpbmd7Y29sb3I6Izk4YzM3OX0uaGxqcy1idWlsdF9pbiwuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwuaGxqcy10aXRsZS5jbGFzc197Y29sb3I6I2U2YzA3Yn0uaGxqcy1hdHRyLC5obGpzLW51bWJlciwuaGxqcy1zZWxlY3Rvci1hdHRyLC5obGpzLXNlbGVjdG9yLWNsYXNzLC5obGpzLXNlbGVjdG9yLXBzZXVkbywuaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSwuaGxqcy10eXBlLC5obGpzLXZhcmlhYmxle2NvbG9yOiNkMTlhNjZ9LmhsanMtYnVsbGV0LC5obGpzLWxpbmssLmhsanMtbWV0YSwuaGxqcy1zZWxlY3Rvci1pZCwuaGxqcy1zeW1ib2wsLmhsanMtdGl0bGV7Y29sb3I6IzYxYWVlZX0uaGxqcy1lbXBoYXNpc3tmb250LXN0eWxlOml0YWxpY30uaGxqcy1zdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfS5obGpzLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0=`;
module.exports = `LyoKCkF0b20gT25lIERhcmsgV2l0aCBzdXBwb3J0IGZvciBSZWFzb25NTCBieSBHaWRpIE1vcnJpcywgYmFzZWQgb2ZmIHdvcmsgYnkgRGFuaWVsIEdhbWFnZQoKT3JpZ2luYWwgT25lIERhcmsgU3ludGF4IHRoZW1lIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2F0b20vb25lLWRhcmstc3ludGF4CgoqLwouaGxqcyB7CiAgY29sb3I6ICNhYmIyYmY7CiAgYmFja2dyb3VuZDogIzI4MmMzNDsKfQouaGxqcy1rZXl3b3JkLCAuaGxqcy1vcGVyYXRvciB7CiAgY29sb3I6ICNGOTI2NzI7Cn0KLmhsanMtcGF0dGVybi1tYXRjaCB7CiAgY29sb3I6ICNGOTI2NzI7Cn0KLmhsanMtcGF0dGVybi1tYXRjaCAuaGxqcy1jb25zdHJ1Y3RvciB7CiAgY29sb3I6ICM2MWFlZWU7Cn0KLmhsanMtZnVuY3Rpb24gewogIGNvbG9yOiAjNjFhZWVlOwp9Ci5obGpzLWZ1bmN0aW9uIC5obGpzLXBhcmFtcyB7CiAgY29sb3I6ICNBNkUyMkU7Cn0KLmhsanMtZnVuY3Rpb24gLmhsanMtcGFyYW1zIC5obGpzLXR5cGluZyB7CiAgY29sb3I6ICNGRDk3MUY7Cn0KLmhsanMtbW9kdWxlLWFjY2VzcyAuaGxqcy1tb2R1bGUgewogIGNvbG9yOiAjN2U1N2MyOwp9Ci5obGpzLWNvbnN0cnVjdG9yIHsKICBjb2xvcjogI2UyYjkzZDsKfQouaGxqcy1jb25zdHJ1Y3RvciAuaGxqcy1zdHJpbmcgewogIGNvbG9yOiAjOUNDQzY1Owp9Ci5obGpzLWNvbW1lbnQsIC5obGpzLXF1b3RlIHsKICBjb2xvcjogI2IxOGViMTsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KLmhsanMtZG9jdGFnLCAuaGxqcy1mb3JtdWxhIHsKICBjb2xvcjogI2M2NzhkZDsKfQouaGxqcy1zZWN0aW9uLCAuaGxqcy1uYW1lLCAuaGxqcy1zZWxlY3Rvci10YWcsIC5obGpzLWRlbGV0aW9uLCAuaGxqcy1zdWJzdCB7CiAgY29sb3I6ICNlMDZjNzU7Cn0KLmhsanMtbGl0ZXJhbCB7CiAgY29sb3I6ICM1NmI2YzI7Cn0KLmhsanMtc3RyaW5nLCAuaGxqcy1yZWdleHAsIC5obGpzLWFkZGl0aW9uLCAuaGxqcy1hdHRyaWJ1dGUsIC5obGpzLW1ldGEgLmhsanMtc3RyaW5nIHsKICBjb2xvcjogIzk4YzM3OTsKfQouaGxqcy1idWlsdF9pbiwKLmhsanMtdGl0bGUuY2xhc3NfLAouaGxqcy1jbGFzcyAuaGxqcy10aXRsZSB7CiAgY29sb3I6ICNlNmMwN2I7Cn0KLmhsanMtYXR0ciwgLmhsanMtdmFyaWFibGUsIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLCAuaGxqcy10eXBlLCAuaGxqcy1zZWxlY3Rvci1jbGFzcywgLmhsanMtc2VsZWN0b3ItYXR0ciwgLmhsanMtc2VsZWN0b3ItcHNldWRvLCAuaGxqcy1udW1iZXIgewogIGNvbG9yOiAjZDE5YTY2Owp9Ci5obGpzLXN5bWJvbCwgLmhsanMtYnVsbGV0LCAuaGxqcy1saW5rLCAuaGxqcy1tZXRhLCAuaGxqcy1zZWxlY3Rvci1pZCwgLmhsanMtdGl0bGUgewogIGNvbG9yOiAjNjFhZWVlOwp9Ci5obGpzLWVtcGhhc2lzIHsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KLmhsanMtc3Ryb25nIHsKICBmb250LXdlaWdodDogYm9sZDsKfQouaGxqcy1saW5rIHsKICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQo=`;

View File

@@ -1 +1 @@
module.exports = `cHJlIGNvZGUuaGxqc3tkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0bztwYWRkaW5nOjFlbX1jb2RlLmhsanN7cGFkZGluZzozcHggNXB4fS5obGpze2NvbG9yOiMzODNhNDI7YmFja2dyb3VuZDojZmFmYWZhfS5obGpzLWNvbW1lbnQsLmhsanMtcXVvdGV7Y29sb3I6I2EwYTFhNztmb250LXN0eWxlOml0YWxpY30uaGxqcy1kb2N0YWcsLmhsanMtZm9ybXVsYSwuaGxqcy1rZXl3b3Jke2NvbG9yOiNhNjI2YTR9LmhsanMtZGVsZXRpb24sLmhsanMtbmFtZSwuaGxqcy1zZWN0aW9uLC5obGpzLXNlbGVjdG9yLXRhZywuaGxqcy1zdWJzdHtjb2xvcjojZTQ1NjQ5fS5obGpzLWxpdGVyYWx7Y29sb3I6IzAxODRiYn0uaGxqcy1hZGRpdGlvbiwuaGxqcy1hdHRyaWJ1dGUsLmhsanMtbWV0YSAuaGxqcy1zdHJpbmcsLmhsanMtcmVnZXhwLC5obGpzLXN0cmluZ3tjb2xvcjojNTBhMTRmfS5obGpzLWF0dHIsLmhsanMtbnVtYmVyLC5obGpzLXNlbGVjdG9yLWF0dHIsLmhsanMtc2VsZWN0b3ItY2xhc3MsLmhsanMtc2VsZWN0b3ItcHNldWRvLC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLC5obGpzLXR5cGUsLmhsanMtdmFyaWFibGV7Y29sb3I6Izk4NjgwMX0uaGxqcy1idWxsZXQsLmhsanMtbGluaywuaGxqcy1tZXRhLC5obGpzLXNlbGVjdG9yLWlkLC5obGpzLXN5bWJvbCwuaGxqcy10aXRsZXtjb2xvcjojNDA3OGYyfS5obGpzLWJ1aWx0X2luLC5obGpzLWNsYXNzIC5obGpzLXRpdGxlLC5obGpzLXRpdGxlLmNsYXNzX3tjb2xvcjojYzE4NDAxfS5obGpzLWVtcGhhc2lze2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLXN0cm9uZ3tmb250LXdlaWdodDo3MDB9LmhsanMtbGlua3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQ==`;
module.exports = `LyoKCkF0b20gT25lIExpZ2h0IGJ5IERhbmllbCBHYW1hZ2UKT3JpZ2luYWwgT25lIExpZ2h0IFN5bnRheCB0aGVtZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hdG9tL29uZS1saWdodC1zeW50YXgKCmJhc2U6ICAgICNmYWZhZmEKbW9uby0xOiAgIzM4M2E0Mgptb25vLTI6ICAjNjg2Yjc3Cm1vbm8tMzogICNhMGExYTcKaHVlLTE6ICAgIzAxODRiYgpodWUtMjogICAjNDA3OGYyCmh1ZS0zOiAgICNhNjI2YTQKaHVlLTQ6ICAgIzUwYTE0ZgpodWUtNTogICAjZTQ1NjQ5Cmh1ZS01LTI6ICNjOTEyNDMKaHVlLTY6ICAgIzk4NjgwMQpodWUtNi0yOiAjYzE4NDAxCgoqLwoKLmhsanMgewogIGNvbG9yOiAjMzgzYTQyOwogIGJhY2tncm91bmQ6ICNmYWZhZmE7Cn0KCi5obGpzLWNvbW1lbnQsCi5obGpzLXF1b3RlIHsKICBjb2xvcjogI2EwYTFhNzsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCi5obGpzLWRvY3RhZywKLmhsanMta2V5d29yZCwKLmhsanMtZm9ybXVsYSB7CiAgY29sb3I6ICNhNjI2YTQ7Cn0KCi5obGpzLXNlY3Rpb24sCi5obGpzLW5hbWUsCi5obGpzLXNlbGVjdG9yLXRhZywKLmhsanMtZGVsZXRpb24sCi5obGpzLXN1YnN0IHsKICBjb2xvcjogI2U0NTY0OTsKfQoKLmhsanMtbGl0ZXJhbCB7CiAgY29sb3I6ICMwMTg0YmI7Cn0KCi5obGpzLXN0cmluZywKLmhsanMtcmVnZXhwLAouaGxqcy1hZGRpdGlvbiwKLmhsanMtYXR0cmlidXRlLAouaGxqcy1tZXRhIC5obGpzLXN0cmluZyB7CiAgY29sb3I6ICM1MGExNGY7Cn0KCi5obGpzLWF0dHIsCi5obGpzLXZhcmlhYmxlLAouaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSwKLmhsanMtdHlwZSwKLmhsanMtc2VsZWN0b3ItY2xhc3MsCi5obGpzLXNlbGVjdG9yLWF0dHIsCi5obGpzLXNlbGVjdG9yLXBzZXVkbywKLmhsanMtbnVtYmVyIHsKICBjb2xvcjogIzk4NjgwMTsKfQoKLmhsanMtc3ltYm9sLAouaGxqcy1idWxsZXQsCi5obGpzLWxpbmssCi5obGpzLW1ldGEsCi5obGpzLXNlbGVjdG9yLWlkLAouaGxqcy10aXRsZSB7CiAgY29sb3I6ICM0MDc4ZjI7Cn0KCi5obGpzLWJ1aWx0X2luLAouaGxqcy10aXRsZS5jbGFzc18sCi5obGpzLWNsYXNzIC5obGpzLXRpdGxlIHsKICBjb2xvcjogI2MxODQwMTsKfQoKLmhsanMtZW1waGFzaXMgewogIGZvbnQtc3R5bGU6IGl0YWxpYzsKfQoKLmhsanMtc3Ryb25nIHsKICBmb250LXdlaWdodDogYm9sZDsKfQoKLmhsanMtbGluayB7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0K`;

View File

@@ -1,5 +1,5 @@
module.exports = {
hash:"dd2315568bb7795f97cee26a47e9b82b", files: {
hash:"ea13a22d0df59339b671f6b5700e2914", files: {
'highlight.js/atom-one-dark-reasonable.css': { data: require('./highlight.js/atom-one-dark-reasonable.css.base64.js'), mime: 'text/css', encoding: 'base64' },
'highlight.js/atom-one-light.css': { data: require('./highlight.js/atom-one-light.css.base64.js'), mime: 'text/css', encoding: 'base64' },
'katex/fonts/KaTeX_AMS-Regular.woff2': { data: require('./katex/fonts/KaTeX_AMS-Regular.woff2.base64.js'), mime: 'application/octet-stream', encoding: 'base64' },

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
module.exports = `d09GMgABAAAAAA1oAA4AAAAAG5wAAA0RAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDAmXFxEICo8Ai1YBNgIkA14LMgAEIAWIYgeBHAx/G8kYIxFmk1QA+IsE3hD16QuQENMSYXJ4+9F5hfA6Tq6zy/sjJJn14Wlbvf8nGGYoJbd0rMKI2DAKBF2jCrfwrnG3jYsIvchWL7oh+Hb9vn4zTcBxyIHEsWbncP0PMA4b/h9t/awowdPc8MA3g9iXwbIG/p0EzeyXoqaop6tOBrfMnHeEmFZ7hJ2mYvTqERU4fVRvN6X/b660///kaK5IiskT2ApZYyazu/cymaXsAVG2hKQAFTkiUO3J+roTuq++ylTIqg5Zxn8mCgpd1yXakKZViWI5+LSbPwAo/ZkcBwdQD30AwOHy8cmHiA+Kx4Bu4Acdvv0Or1J1ijuRR15fMbJ3TUO9gblLBo41M0iSZHOLaJcGpMixIQv3n72dDgMVZBFiNdnngMvoU/RdhgncGiSFfeX1BsjCxdpLgbSBEPbl74V716abHHPU4H87/0v4T/3eH++Jb1pBkPyk7RFEC9jTNEtv/kHzeAP//JRIWhP+Kifq7Qmq3X/BNVx2aAvnPagHhTYZQBxLDBAgxycBCh2JR7Zgw6ch3IucHk53Pidv3vVOUbWVPHnZibRaRdorqxLmdkeE054WrqE4K44aHnHoRL2nC0GUhbXkfkusUQqk1ICSc3YQy9lAVTrOOcBAU8FqdyQ4biU4ifASnfcZEgdYmDevo8qlUTe3AaKUAlpHLszN594J1cv/q8tW46ohsGE7lS3X7eRk2Yu83QQxNzCPdn7PyAEFbw2g8AD/zhQSTSAodtD0BJJBYrhbQAFpKiQe/mNdKil55JVMFl8mhl5OwKBoO07jTQ84KOd2gFeUdHNiBgphtWjaByU6QiuEbYhWI6/Jw4j3ArVuomZFJBE2wZWI+e5AJQb1jgapVY6Sd+bzTR9Qo9JSRGc3CWgAiSVUfL01gjKJGXUL1qB6/IAWQgfLFfWPdVkflKBhUd8qzEVgd6LDm71U2XySL6Mu7EfAhy3YTm92z7bzQ9N37osKLfdNLbo2JIloLYNCqMaq2qF6SsjMBKNbUgHg+LAae49UT3LzBknqXkcD1DhdN2dGxTlqMzLzcNeCOPG6FThlEwhBzkC8v9YAPZYqaLSX0ErUFEkiooDWqAJJfusGy+i5e+xbq28tiqlb7lIOGFChvxUwopIymIiCmRiwEAtbiIOtxMM2UsB2EmAHKZ0RUAP5erRI+NWi4O+E9sMSarMT/dEPZbGBAKIQSAwEEQvBxEEI8RBKCggjAcJJaUYbtBBDTHhBF2tslBq7hOMQ0TFXa6wgxoi5BWIhzeWNPOvWbCpbcKrJnM+BOBedn8yIvVXOT6fpTh5kIB6d+ZPkJ0APbZaJ2vWQSFE6xAyYb18eTL+Q1J7JU1urCd54M5AEtZrbnAIK/RcKJKM51wZSyHMhPCyZMhWVutkVNT0NBEX3e3rVe+Y2t05p4XyGSBxSPJmevhlIAzDBKqySnRklbx33VpHaPk0yUHqCGjl5sBIp00TrMj9l3nb6SQ+rskPXCatbc4wmBKoP4kixWfFtEWqxmIvcE/4ZKMuRwbA7coOwO3dbZR6aJ99ddSbBBpt1a84QOIMqdGlab9HOsrW0rCw4F067c56EabBhVEoNidbinunm0JeXAxk49CAJLqRYu5bSMntDkChpJhQKj1lZfa5BeFC9HGypUWveQTu2EBzsNq/MUq9egd3Omm8Ue7xjSSj7sq3w0z1WeYme5zDj3FmWA1OD3BlnO0ltbqrVG26lonIH2VpGHsf86Q6dPyLNBDsLRqRbL7MiYNbXp23DYNlglQcKo4yCJwxzTK3ctyYyp2hUhfeqjuH4T8wjUAxBzDH7t7bmvM8TfbbTKgYkDgMqSfS2X4etDRt3eo0LaGjAsmieykUn3YZmV8nuUQUhbJLv3D0jUiGUXgqmqanRrA9KsAqVjULSpjQMKx8NeKCoYwURqGQEWEUEqhsCxVhDBGoZAdqIgL0hkI91RMDBCNBJBOobAoXYQAT2MgJsJAJNDYESbCYCLYwAW4lAW0OgANuJQAcjwE4ixV3RqxlQW90N9mrOS+vBXOgNwbTGPOgLZHJAv54JA3qmGtxgHgwFsh4wrGfBiJ4Fo3oWjEVlw7ieDRN6Nkzq2ZNMRd+uZOkbKLNgTip0rTLBVbOvK+eIAQHxetMiYRY3iAMYgfwM0M+QRG/XZg7Fssh+jAA5I8v6bzcJFqFqlyF0t/349n2ZLRInsXUSczDR5TaIphtqPm/eIPOOD3pejzJLS3Ab3niXnmZ/y77UcXb3/IokGa+v/qxpHW7bu52vhBtEzzJ52PGFy3MBmTev/OPfWlq43nCe840/bX8aFl371BBdElzuRdFjWp7b+LvubTK/Ii0Zl1zrf9nf2kfULhWR9rkMomljo+6CKxreLpvLci4804r55dpNx8red67cBh1myQi3YT/TPeFv2M67zPnmZZY3lrm4XclgCFlft59/eb0b61uWsMKvT1/CEv75r8bj7jbrcbj93pClJbhrgs9k1foMMlz2BwnRm+Y9d9Nx4QfjXDdm3p8ZFrpRd8H7W035mzUvfuJwtH0kuS0Wz/eip/VDcesFLX7zm2GbjqelBeO6fb34TmnBca20w217w7boMW3UbZTcJXpsV81xD/vc9V3Lf5vm4xavMxiWTSaHwzWPq2PJ6P7TsKgRt5DKhV1Q3AfzJJcau/FUxEFaPsD/6kDju+6mJriv85iWm10eknTON79P5s0XKmzj0oevJzcsJhiXjR3xCWsJQtTrNzF2/8TNw8k2ayZfOT3JV1sz4hc9vJnob2fYGx979oH8hexc796BT769kb/x7y3nnitMaLQ8/Wbw1ZNTfJU184fQajuE7zPK/A/5JM/p75Q+lFgSnvJViG+pTkXE6qMH/ar1v9gafvRNlBL7ee3EnVC2qHNehvDJyzl89uMXSF5R25+o4DJDywtOeWpBUP2netTZPNviUR53Duaoud8sH3rlrXa/9ZYw136fPUUidPK7VN7mLgq+i6EGc8LEh2JykapGiXy6sb7ieU/Yfveza3U+9FT8qeZd+qZEBXS0UpGmqHOmIiLgzg7daYItYmi/dmeRBE1cKV6Io1Tf1Lyr5otQHx0vJJ/lV6ziNJ81hc3O+eyuU0GL3Kmb6rGXznWEqEU+seCiSwp2aRp3II9WVSfjUi5/Q59pdLWiglcmt8fplqotCyATWlVFYt5g+bE/09Lva916Bcg4cjz/hOt6nmk42We7N/LeqP7afhshCQnc42eyTGdBewETt+DFtuNvyp89K3JME5aeuVqmOBhcv2XlqdQrf6ssYY5zk4HXJx2VVhtWy3h3yDf27I198Q2n7RU8MvvELq8/2b5/c1tPv0OnvoOC+aVfSi6x9bxQ6iqbVeufYfyf6TXUq/h7eSHw2YzEcGMY0nZ4fLziHAWUAW7EYplDiF7PLUyRw/sEzXSVQ35H/IGffL7e/dVu/S06NTTCF4Vf5PPHFF8UKDU6y/f6XL+84vU7/fyUXxRM/WWhmpIzDT63OK/k44n2fF2Kg41yAFL/UuZd7gbvvzSJu5Zh/3biaDBnuJNnCWhc1O0+ZkxmYJkSGmEayhiiBbBQykR2nQrU2Ta9RkbLEObLxajAJwMe6aLno79u0Wb9JkjMlwDw7ti/15dv+Lfz3z3ctdwNAARQgItzPJODhnqVItr77TZAkJSb/Y0E8tRyIC4F/RCvnlMHFgNSkw5/YEwrlej3OM2s0+lyuKu8/1oXIMDfzj6bmC8xknbi94BULv8eBzXrbGtRhbpuDXVmGm4dKyK5mRLjGBBWCeAKoN6BwOSKDhQa3NOBQYmnOrAIDVUHDsGRsCTf10FNu0nd+9QgKT+AQiNGuYzr06PXJFm4DhFkCeLESRdzk/FtfFmRLhP0crhjLW/Y1W+HLtFku3fOSpTePF4SpslSnWqTjPmpbTq9dIhLaYy2Pp1a1OozV5qoRldLnTKoKB1XYqRaTZbleE516VFWq3ckgyxnGTHHRUEp65Yax4FGDDt/inRpkiRLldqyCJFdVdFHsU3PMpOWWg1pa6m9+rGc5dwI/Cc5InwwL62+Acql2g5za5fRztWqzzYl46cmUJt8WpdOsr+6lFVoM7RAPhKRJMWc7GWXnuCWtRF2y5mJ4z6ZSg5i1YEdTmAnTqlOG5RsleqSkLpbWUuvNEo/l/Sly6RA9Lx9nh7Pmrusm7/uUlmbaVN9UdOw3eCSMi6qTWt6vup6+aQMoo/4JUebjN3TJ3T4To52HiurBYFBpE/8WJVKlPHFUyRj9Z5eAr/la3rvHRJU8JUjV55mrUHxJt4iDGFxNeEITxREIEoiKqaG++Li8uPKp0+MS1BO9g12dv0vYaIVEnxp64j0iHytoGlqcdqN0lH64Zka5xohR+tXycftM9418AVrQOR6UOGAewEoj2dmUPSCyTnVztW8c5wMdFKo4z7BDcLSaR02J5nc29nXoIq8h3jPHHtkjVamcZ1FAAAA`;
module.exports = `d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,6 @@
const urlUtils = require('./urlUtils.js');
const Entities = require('html-entities').AllHtmlEntities;
const htmlentities = new Entities().encode;
const htmlparser2 = require('@joplin/fork-htmlparser2');
const { escapeHtml } = require('./string-utils.js');
// [\s\S] instead of . for multiline matching
@@ -138,40 +137,6 @@ class HtmlUtils {
return output.join(' ');
}
public stripHtml(html: string) {
const output: string[] = [];
const tagStack: any[] = [];
const currentTag = () => {
if (!tagStack.length) return '';
return tagStack[tagStack.length - 1];
};
const disallowedTags = ['script', 'style', 'head', 'iframe', 'frameset', 'frame', 'object', 'base'];
const parser = new htmlparser2.Parser({
onopentag: (name: string) => {
tagStack.push(name.toLowerCase());
},
ontext: (decodedText: string) => {
if (disallowedTags.includes(currentTag())) return;
output.push(decodedText);
},
onclosetag: (name: string) => {
if (currentTag() === name.toLowerCase()) tagStack.pop();
},
}, { decodeEntities: true });
parser.write(html);
parser.end();
return output.join('').replace(/\s+/g, ' ');
}
}
export default new HtmlUtils();

View File

@@ -79,7 +79,6 @@
"Auto": "تلقائي",
"Auto-pair braces, parenthesis, quotations, etc.": "ادراج النصف الآخر للأقواس و علامات الإقتباس.",
"Automatically switch theme to match system theme": "التبديل تلقائيا للتنسيق لمطابقة تنسيق النضام",
"Automatically update the application": "تحديث التطبيق آلياً",
"Back": "عودة",
"Bold": "غامق",
"Browse all plugins": "تصفح جميع المكونات الإضافية",
@@ -485,7 +484,6 @@
"Note: Does not work in all desktop environments.": "ملاحظة: لا تعمل في كل بيئات سطح المكتب.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "ملاحظة: عند مشاركة ملاحظة ، لن يتم تشفيرها على الخادم.",
"Notebook list growth factor": "عامل نمو قائمة المفكرة",
"Notebook title:": "عنوان دفتر الملاحظات:",
"Notebook: %s": "دفتر ملاحظات: \"%s\"",
"Notebooks": "دفاتر ملاحظات",
"Notebooks cannot be named \"%s\", which is a reserved title.": "لا يمكن تسمية دفتر الملاحظات بـ \"%s\" لأنه عنوان محجوز.",

View File

@@ -40,7 +40,6 @@
"Authentication was not completed (did not receive an authentication token).": "Оторизирането не беше завършено (не получих оторизационен жетон).",
"Authorisation token:": "Оторизационен жетон:",
"Auto": "Автоматичен",
"Automatically update the application": "Автоматично обновление на приложението",
"Back": "Назад",
"Bold": "Удебелен",
"Browse...": "Търсене...",
@@ -281,7 +280,6 @@
"Note properties": "Атрибути на бележката",
"Note title": "Заглавие на бележката",
"Note: Does not work in all desktop environments.": "Внимание: Не работи с всички десктоп среди.",
"Notebook title:": "Заглавие на тетрадка:",
"Notebooks": "Тетрадки",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Тетрадки не могат да имат име \"%s\", защото това е запазено заглавие.",
"Notes and settings are stored in: %s": "Бележките и настройките са запазени в: %s",

View File

@@ -52,7 +52,6 @@
"Auto": "Automatski",
"Auto-pair braces, parenthesis, quotations, etc.": "Automatski piši u paru sve zagrade, navodnike itd.",
"Automatically switch theme to match system theme": "Automatski podesi temu prema sistemskoj",
"Automatically update the application": "Automatski ažuriraj aplikaciju",
"Back": "Nazad",
"Bold": "Masna slova",
"Browse all plugins": "Pogledaj dodatke",
@@ -353,7 +352,6 @@
"Note: Does not work in all desktop environments.": "Napomena: neće raditi na svim sistemima.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Napomena: bilješka koja se podijeli s drugima više neće biti šifrirana na serveru.",
"Notebook list growth factor": "Faktor rasta popisa bilježnica",
"Notebook title:": "Naziv bilježnice:",
"Notebook: %s": "Bilježnica: %s",
"Notebooks": "Bilježnice",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Bilježnica se ne može nazvati \"%s\", jer je to rezervisani naziv.",

View File

@@ -79,10 +79,9 @@
"Auto": "Automàtic",
"Auto-pair braces, parenthesis, quotations, etc.": "Aparellament automàtic de claus, parèntesis, cites, etc.",
"Automatically switch theme to match system theme": "Canvia de tema automàticament per a coincidir amb el tema del sistema",
"Automatically update the application": "Actualitza automàticament l'aplicació",
"Back": "Enrere",
"Bold": "Negreta",
"Browse all plugins": "Navega per tots els connectors",
"Browse all plugins": "Navega per totes les extensions",
"Browse...": "Navega...",
"Bulleted List": "Llista de pics",
"Cancel": "Cancel·la",
@@ -101,6 +100,7 @@
"Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.": "No es pot actualitzar el testimoni: manquen les dades d'autenticació. Reiniciar la sincronització pot solucionar el problema.",
"Cannot save %s \"%s\" because it is larger than the allowed limit (%s)": "No es pot desar %s «%s» perquè és més gran que el límit permès (%s)",
"Cannot save %s \"%s\" because it would go over the total allowed size (%s) for this account": "No es pot desar %s «%s» perquè se'n passaria de l'espai total (%s) d'aquest compte",
"Cannot share encrypted notebook with recipient %s because they have not enabled end-to-end encryption. They may do so from the screen Configuration > Encryption.": "No es pot compartir el bloc de notes xifrat amb el destinatari %sperquè no té habilitat el xifrat d'extrem a extrem. Pot fer-ho des de la finestra Configuració > Xifrat",
"Change application layout": "Canvia la disposició de l'aplicació",
"Change language": "Canvia la llengua",
"Characters": "Caràcters",
@@ -139,10 +139,12 @@
"Conflicted: %d": "Conflictius: %d",
"Conflicts": "Conflictes",
"Conflicts (attachments)": "Conflictes (adjunts)",
"Content provided by %s": "Contingut proporcionat per %s",
"Convert to note": "Converteix a nota",
"Convert to todo": "Converteix a llistat de tasques pendents",
"Copy": "Copia",
"Copy dev mode command to clipboard": "Copia l'ordre en mode de desenvolupament al porta-retalls",
"Copy external link": "Copia l'enllaç extern",
"Copy Link Address": "Copia l'adreça de l'enllaç",
"Copy Markdown link": "Copia l'enllaç Markdown",
"Copy path to clipboard": "Copia el camí al porta-retalls",
@@ -150,9 +152,12 @@
"Copy token": "Copia testimoni",
"Could not authorise application:\n\n%s\n\nPlease try again.": "No s'ha pogut autoritzar l'aplicació:\n\n%s\n\nTorneu-ho a provar.",
"Could not connect to Joplin Server. Please check the Synchronisation options in the config screen. Full error was:\n\n%s": "No s'ha pogut connectar amb el Joplin Server. Comproveu la configuració en la pantalla de Sincronització. L'error complet és: %s",
"Could not connect to plugin repository.": "No s'ha pogut connectar al repositori d'extensions",
"Could not export notes: %s": "No s'han pogut exportar les notes: %s",
"Could not install plugin: %s": "No s'ha pogut instal·lar el complement: %s",
"Could not install plugin: %s": "No s'ha pogut instal·lar l'extensió: %s",
"Could not respond to the invitation. Please try again, or check with the notebook owner if they are still sharing it.\n\nThe error was: \"%s\"": "No s'ha pogut contestar a la invitació. Torneu-ho a provar, o comproveu amb el propietari del bloc de notes si encara l'està compartint.\n\nL'error és \"%s\"",
"Could not upgrade master key: %s": "No s'ha pogut actualitzar la clau mestra: %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "No s'ha pogut verificar l'estat de compartició d'aquest bloc de notes - s'està avortant. Torneu a provar quan tingueu connexió a Internet.",
"Create a notebook": "Crea un bloc de notes nou",
"Created": "Creació",
"created date": "data de creació",
@@ -192,7 +197,7 @@
"Delete note?": "Voleu suprimir la nota?",
"Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.": "Voleu suprimir el bloc de notes \"%s\"? \n\nTambé se suprimiran totes les notes i els subblocs d'aquest bloc de notes.",
"Delete notebook? All notes and sub-notebooks within this notebook will also be deleted.": "Voleu suprimir el bloc de notes? També se suprimiran totes les notes i els subblocs d'aquest bloc de notes.",
"Delete plugin \"%s\"?": "Voleu suprimir el complement \"%s\"?",
"Delete plugin \"%s\"?": "Voleu suprimir l'extensió \"%s\"?",
"Delete these %d notes?": "Voleu suprimir aquestes %d notes?",
"Delete this invitation? The recipient will no longer have access to this shared notebook.": "Voleu suprimir aquesta invitació? El destinatari ja no tindrà accés a aquest quadern compartit.",
"Deleted local items: %d.": "Elements locals suprimits: %d.",
@@ -223,6 +228,7 @@
"Displays version information": "Mostra la informació de versió",
"Do it now": "Fes-ho ara",
"Do not ask for confirmation.": "No demanis confirmació.",
"Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.": "No perdeu les contrasenyes perquè, per motius de seguretat, és l'única forma de desxifrar les dades. Per habilitar el xifrat, introduïu la vostra contrasenya.",
"Download": "Baixa",
"Download and install the relevant extension for your browser:": "Descarregueu i instal·leu l'extensió adient per al vostre navegador:",
"Downloaded": "Descarregat",
@@ -274,12 +280,16 @@
"Enable Web Clipper Service": "Activa el servei del porta-retalls de webs",
"Enable ~sub~ syntax": "Activa la sintaxi ~sub~",
"Enabled": "Activat",
"Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target.": "Habilitar el xifrat significa que totes les notes i adjunts es tornaran a sincronitzar i s'enviaran de forma xifrada a la destinació de sincronització.",
"Encrypted": "Xifrat",
"Encrypted items cannot be modified": "Els elements xifrats no es poden modificar",
"Encrypted notebooks cannot be renamed": "No es pot canviar el nom dels blocs de notes xifrats",
"Encryption": "Xifratge",
"Encryption Config": "Configuració del xifratge",
"Encryption is: %s": "El xifratge és: %s",
"Encryption keys": "Claus de xifrat",
"Encryption:": "Xifrat:",
"End-to-end encryption": "Xifrat d'extrem a extrem",
"Enter code here": "Entreu el codi aquí",
"Enter master password:": "Introduïu una contrasenya mestra:",
"Enter notebook title": "Entra el títol del bloc de notes",
@@ -288,7 +298,7 @@
"Error opening note in editor: %s": "S'ha produït un error en l'obrir la nota amb l'editor: %s",
"Error. Please check that URL, username, password, etc. are correct and that the sync target is accessible. The reported error was:": "Error. Comproveu que l’URL, el nom d’usuari, la contrasenya, etc. siguin correctes i que el servei a sincronitzar sigui accessible. L'error reportat ha estat:",
"Error: %s": "Error: %s",
"Errors only": "Només els errors",
"Errors only": "Només errors",
"Evernote Export File (as HTML)": "Exporta com a fitxer de l'Evernote (com a HTML)",
"Evernote Export File (as Markdown)": "Exporta com a fitxer de l'Evernote (com a Markdown)",
"Exits the application.": "Surt de l'aplicació.",
@@ -321,11 +331,13 @@
"For information on how to customise the shortcuts please visit %s": "Per a obtenir informació sobre com personalitzar les dreceres de teclat, visiteu %s",
"For more information about End-To-End Encryption (E2EE) and advice on how to enable it please check the documentation:": "Per a més informació sobre el xifratge d'extrem a extrem (E2EE de l'anglès) i consells sobre com activar-lo, llegiu la documentació:",
"For the list of keyboard shortcuts and config options, type `help keymap`": "Per a llistar les dreceres de teclat i opcions de configuració, escriviu «help keymap»",
"Force path style": "Força l'estil del camí",
"Forward": "Endavant",
"Found: %d.": "Trobades: %d.",
"FTS enabled: %d": "FTS activat: %d",
"Full changelog": "Registre complet de canvis",
"General": "General",
"Generated": "Generat",
"Generating link...": "Generant enllaç...",
"Get it now:": "Obteniu-lo ara:",
"Get pre-releases when checking for updates": "Obtén prellançaments quan cerqui actualitzacions",
@@ -336,8 +348,10 @@
"Heading": "Capçalera",
"Help": "Ajuda",
"Hide %s": "Amaga %s",
"Hide disabled keys": "Amaga les claus deshabilitades",
"Hide Joplin": "Amaga el Joplin",
"Highlight": "Ressalta",
"Home": "Inici",
"Horizontal Rule": "Línia horitzontal",
"HTML Directory": "Directori HTML",
"HTML File": "Fitxer HTML",
@@ -375,8 +389,10 @@
"Invalid answer: %s": "La resposta no és vàlida: %s",
"Invalid command: \"%s\"": "Ordre no vàlida: «%s»",
"Invalid option value: \"%s\". Possible values are: %s.": "El valor de l'opció no és vàlid: «%s». Els valors possibles són: %s.",
"Invalid password": "Contrasenya incorrecta",
"Italic": "Cursiva",
"Item \"%s\" could not be downloaded: %s": "L'element \"%s\" no s'ha pogut descarregar: %s",
"Items": "Elements",
"Items that cannot be decrypted": "Elements que no s'han pogut desxifrar",
"Items that cannot be synchronised": "Elements que no s'han pogut sincronitzar",
"Joplin can synchronise your notes using various providers. Select one from the list below.": "Joplin pot sincronitzar les notes utilitzant diversos proveïdors. Seleccioneu-ne un de la llista inferior.",
@@ -399,12 +415,14 @@
"Keyboard Shortcut": "Drecera de teclat",
"Keyboard Shortcuts": "Dreceres de teclat",
"Keychain Supported: %s": "Clauer admès: %s",
"Keys that need upgrading": "Claus que requereixen actualització",
"Landscape": "Paisatge",
"Language": "Llengua",
"Last error: %s": "Últim error: %s",
"Later": "Més tard",
"Layout": "Disposició",
"Layout button sequence": "Seqüència del botó de disposició",
"Leave notebook...": "Surt del bloc de notes",
"Legal": "Legal",
"Letter": "Carta",
"Light": "Clar",
@@ -412,6 +430,7 @@
"Link has been copied to clipboard!": "L'enllaç s'ha copiat al porta-retalls!",
"Links with protocol \"%s\" are not supported": "Els enllaços amb el protocol %s no estan suportats",
"List item": "Element de llista",
"Loaded": "S'ha carregat",
"Location": "Ubicació",
"Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.": "El fitxer de bloqueig està ús. Si sabeu que no s'està executant cap sincronització ara mateix, podeu suprimir el fitxer de bloqueig a «%s» i reprendre l'operació.",
"Log": "Registre",
@@ -419,22 +438,30 @@
"Login below.": "Identifiqueu-vos baix.",
"Login with Dropbox": "Inicia sessió amb Dropbox",
"Login with OneDrive": "Inicia sessió amb OneDrive",
"Logout": "Desconnecta",
"Make a donation": "Donatius",
"Manage your plugins": "Gestioneu els connectors",
"Manage master password": "Gestiona la contrasenya mestra",
"Manage master password...": "Gestiona la contrasenya mestra...",
"Manage your plugins": "Gestioneu les extensions",
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file`, and `target-status`.": "Gestiona la configuració E2EE. Les ordres són `enable`, `disable`, `decrypt`, `status`, `decrypt-file`, i `target-status`.",
"Manual": "Manual",
"Markdown": "Markdown",
"Markdown + Front Matter": "Markdown + Front Matter",
"Marks a to-do as done.": "Marca un llistat de tasques pendents com a fet.",
"Marks a to-do as non-completed.": "Marca un llistat de tasques pendents com a no finalitzat.",
"Markup": "Marcatge",
"Master Key %s": "Clau mestra %s",
"Master password": "Contrasenya mestra",
"Master password:": "Contrasenya mestra:",
"Max concurrent connections": "Connexions simultànies màximes",
"Missing keys": "Claus que falten",
"Missing Master Keys": "Manquen les claus mestres",
"Missing required argument: %s": "Manca un argument requerit: %s",
"Mobile data - auto-sync disabled": "Dades mòbils - sincronització automàtica desactivada",
"More info": "Més informació",
"More information": "Més informació",
"More than one item match \"%s\". Please narrow down your query.": "Hi ha més d'un element que coincideix amb «%s». Restringiu la consulta.",
"Move %d notes to notebook \"%s\"?": "Voleu moure %d notes al bloc de notes «%s»?",
"Move %d notes to notebook \"%s\"?": "Voleu moure %dnotes al bloc de notes \"%s\"?",
"Move to notebook": "Mou al bloc de notes",
"Move to notebook...": "Mou al bloc de notes...",
"Move to notebook:": "Mou al bloc de notes:",
@@ -468,6 +495,7 @@
"Nord": "Nord",
"Not authentified with %s. Please provide any missing credentials.": "No esteu autenticats amb %s. Proporcioneu les credencials que falten.",
"Not downloaded": "No descarregat",
"Not generated": "No s'ha generat",
"note": "nota",
"Note": "Nota",
"Note area growth factor": "Factor de creixement de l'àrea de nota",
@@ -485,11 +513,12 @@
"Note&book": "&Blocs de notes",
"Note: Does not work in all desktop environments.": "Nota: no funciona en tots els entorns d'escriptori.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Nota: quan es comparteix una nota, deixa d'estar xifrada al servidor.",
"Notebook": "Bloc de notes",
"Notebook list growth factor": "Factor de creixement de la llista de blocs de notes",
"Notebook title:": "Títol del bloc de notes:",
"Notebook: %s": "Blocs de notes: %s",
"Notebooks": "Blocs de notes",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Els blocs de notes no poden tenir el nom «%s», és un títol reservat.",
"Notes": "otes",
"Notes and settings are stored in: %s": "Les notes i la configuració es desen a: %s",
"Notes can only be created within a notebook.": "Només podeu crear notes en un bloc de notes.",
"Numbered List": "Llista numerada",
@@ -522,19 +551,21 @@
"PDF File": "Fitxer PDF",
"Permission needed": "Cal permís",
"Permission to use camera": "Permís per a utilitzar la càmera",
"Please click on \"%s\" to proceed": "Feu clic a \"%s\" per a continuar",
"Please confirm that you would like to re-encrypt your complete database.": "Confirmeu que voleu tornar a xifrar la vostra base de dades completa.",
"Please enter your password in the master key list below before upgrading the key.": "Entreu la vostra contrasenya en la llista de claus mestres d'aquí a sota abans d'actualitzar la clau.",
"Please note that if it is a large notebook, it may take a few minutes for all the notes to show up on the recipient's device.": "Teniu en compte que si és un bloc de notes llarg, pot necessitar uns quants minuts fins que totes les notes es mostren al dispositiu del destinatari.",
"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.": "Obriu l'URL següent al navegador per a autenticar l'aplicació. L'aplicació crearà un directori a «Aplicacions/Joplin» i només llegirà i escriurà fitxers en aquest directory. No tindrà accés a cap fitxer fora d'aquest directori ni a cap dada personal. No es compartirà cap dada amb terceres parts.",
"Please select a notebook first.": "Cal que primer seleccioneu un bloc de notes.",
"Please select the note or notebook to be deleted first.": "Primer seleccioneu la nota o el bloc de notes que vulgueu suprimir.",
"Please select where the sync status should be exported to": "Seleccioneu on s'hauria d'exportar l'estat de la sincronització",
"Please specify import format for %s": "Indiqueu el format d'importació per a %s",
"Please specify the notebook where the notes should be imported to.": "Indiqueu el bloc de notes on s'haurien d'importar les notes.",
"Please upgrade Joplin to use this plugin": "Si us plau, actualitzeu Joplin per a utilitzar aquest connector",
"Please upgrade Joplin to use this plugin": "Si us plau, actualitzeu Joplin per a utilitzar aquesta extensió",
"Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.": "Espereu que tots els adjunts hagin estat descarregats i desxifrats. També podeu canviar a %s per a editar la nota.",
"Please wait...": "Espereu...",
"Plugin tools": "Eines dels connectors",
"Plugins": "Connectors",
"Plugin tools": "Eines de les extensions",
"Plugins": "Extensions",
"Portrait": "Retrat",
"Possible keys/values:": "Valors/claus possibles:",
"Possible values: %s.": "Valors possibles: %s.",
@@ -545,12 +576,13 @@
"Press Ctrl+D or type \"exit\" to exit the application": "Premeu Ctrl+D o escriviu «exit» per a sortir de l'aplicació",
"Press the shortcut": "Premeu la drecera",
"Press the shortcut and then press ENTER. Or, press BACKSPACE to clear the shortcut.": "Premeu la drecera i premeu RETORN. O, premeu RETROCÉS per a esborrar la drecera.",
"Press to set the decryption password.": "Premeu per a establir la contrasenya de desxifratge.",
"Press to set the decryption password.": "Premeu per a definir la contrasenya de desxifrat.",
"Previous versions of this note": "Versions prèvies d'aquesta nota",
"Print": "Imprimeix",
"Privacy Policy": "Política de privacitat",
"Profile Version: %s": "Versió del perfil: %s",
"Properties": "Propietats",
"Public-private key pair:": "Parell de claus pública-privada:",
"Publish note...": "Publica la nota...",
"Publish Notes": "Publica notes",
"Publish notes to the internet": "Publica les notes a internet",
@@ -575,6 +607,7 @@
"Rename tag:": "Canvia el nom de l'etiqueta:",
"Renames the given <item> (note or notebook) to <name>.": "Canvia el nom de la nota o bloc de notes indicat de <item> a <name>.",
"Renew token": "Renova el testimoni",
"Reset master password": "Torna a definir la contrasenya mestra",
"Resources: %d.": "Recursos: %d.",
"Restart and upgrade": "Reinicia i actualitza",
"Restart now": "Reinicia ara",
@@ -587,7 +620,13 @@
"Reverses the sorting order.": "Inverteix el criteri d'ordenació.",
"Revision: %s (%s)": "Revisió: %s (%s)",
"Runs the commands contained in the text file. There should be one command per line.": "Executa les ordres contingudes al fitxer de text. Hi ha d'haver una ordre per línia.",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "El mode segur està actiu actualment. La renderització de notes i tots els connectors estan temporalment inhabilitats.",
"S3": "S3",
"S3 access key": "Clau d'acces d'S3",
"S3 bucket": "Bucket S3",
"S3 region": "Regió S3",
"S3 secret key": "Clau secreta S3",
"S3 URL": "URL S3",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "El mode segur està actiu actualment. La renderització de notes i totes les extensions estan temporalment inhabilitades.",
"Save": "Desa",
"Save alarm": "Desa l'alarma",
"Save as...": "Anomena i desa...",
@@ -608,6 +647,7 @@
"Server is running on port %d": "El servidor està corrent en el port %d",
"Set alarm": "Estableix una alarma",
"Set alarm:": "Estableix una alarma:",
"Set it to 0 to make it take the complete available space. Recommended width is 600.": "Definiu-ho a 0 perquè ocupe tot l'espai disponible. L'amplària recomanada és 600.",
"Set the password": "Establiu la contrasenya",
"Sets the property <name> of the given <note> to the given [value]. Possible properties are:\n\n%s": "Estableix la propietat <name> de la <note> indicada al [valor] donat. Les propietats possibles són:\n\n%s",
"Share": "Comparteix",
@@ -618,7 +658,9 @@
"Show Advanced Settings": "Mostra opcions avançades",
"Show all": "Mostra-ho tot",
"Show completed to-dos": "Mostra els llistats de tasques pendents finalitzats",
"Show disabled keys": "Mostra les claus deshabilitades",
"Show note counts": "Mostra el nombre de notes",
"Show sort order buttons": "Mostra els botons de canviar l'ordenació",
"Show tray icon": "Mostra la icona a la safata",
"Sidebar": "Barra lateral",
"Size": "Mida",
@@ -629,7 +671,7 @@
"Solarised Light": "Solaritzat clar",
"Some items cannot be decrypted.": "Alguns elements no s'han pogut desxifrar.",
"Some items cannot be synchronised.": "Alguns elements no s'han pogut sincronitzar.",
"Some items cannot be synchronised. Press for more info.": "Alguns elements no s'han pogut sincronitzar. Premeu per a més informació.",
"Some items cannot be synchronised. Press for more info.": "Alguns elements no es poden sincronitzar. Premeu per a més informació.",
"Sort notebooks by": "Ordena els blocs de notes per",
"Sort notes by": "Ordena les notes per",
"Sort selected lines": "Ordena les línies seleccionades",
@@ -689,6 +731,7 @@
"Tagged: %d.": "Etiquetats: %d.",
"Tags": "Etiquetes",
"Take photo": "Fes una foto",
"Tasks": "Tasques",
"Text editor command": "Ordre de l'editor de text",
"Thank you! Your Joplin Cloud account is now setup and ready to use.": "Gràcies! El vostre compte de Joplin Cloud està preparat per a utilitzar-se.",
"The app is now going to close. Please relaunch it to complete the process.": "L'aplicació es tancarà ara. Si us plau, torneu-la a executar per a completar el procés.",
@@ -704,14 +747,19 @@
"The editor command (may include arguments) that will be used to open a note. If none is provided it will try to auto-detect the default editor.": "L'ordre de l'editor (que pot incloure arguments) que s'usarà per a obrir una nota. Si no se'n proporciona cap, es detectarà automàticament l'editor predeterminat.",
"The factor property sets how the item will grow or shrink to fit the available space in its container with respect to the other items. Thus an item with a factor of 2 will take twice as much space as an item with a factor of 1.Restart app to see changes.": "La propietat factor defineix com l’element creixerà o es reduirà per a ajustar-se a l’espai disponible al seu contenidor respecte als altres elements. Per tant, un element amb un factor de 2 ocuparà el doble d’espai que un element amb un factor d'1. Reinicieu l’aplicació per a veure els canvis.",
"The following attachments are being watched for changes:": "S'estan vigilant els següents adjunts per si hi ha canvis:",
"The following keys use an out-dated encryption algorithm and it is recommended to upgrade them. The upgraded key will still be able to decrypt and encrypt your data as usual.": "Les següents claus utilitzen un algorisme de xifrat obsolet i és recomanable actualitzar-les. La clau actualitzada podrà xifrar i desxifrar les dades com és habitual.",
"The Joplin mobile app does not currently support this type of link: %s": "L'aplicació mòbil del Joplin, ara per ara, no admet aquest tipus d'enllaç: %s",
"The Joplin team has vetted this plugin and it meets our standards for security and performance.": "L'equip de Joplin ha comprovat aquesta extensió i compleix els nostres estàndards de seguretat i rendiment.",
"The keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.": "Les claus amb aquests ID s'utilitzen per a xifrar alguns elements. Tot i això, l'aplicació no hi té accés. És probable que es baixen en algun moment via sincronització.",
"The master key has been upgraded successfully!": "La clau mestra s'ha actualitzat amb èxit!",
"The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.": "Les claus mestres amb aquests ID s'usen per a xifrar alguns dels elements. Tot i això l'aplicació actualment no hi té accés. Probablement es baixaran via sincronització.",
"The note \"%s\" has been successfully restored to the notebook \"%s\".": "La nota «%s» s'ha restaurat amb èxit en el bloc de notes «%s».",
"The notebook could not be saved: %s": "No s'ha pogut desar el bloc de notes: %s",
"The notes have been imported: %s": "Notes s'han importat: %s",
"The possible commands are:": "Les ordres possibles són:",
"The recipient could not be removed from the list. Please try again.\n\nThe error was: \"%s\"": "El destinatari no s'ha pogut eliminar de la llista. Torneu-ho a provar.\n\nL'error era \"%s\"",
"The sync target needs to be upgraded before Joplin can sync. The operation may take a few minutes to complete and the app needs to be restarted. To proceed please click on the link.": "Cal actualitzar l'objectiu de sincronització abans que Joplin pugui sincronitzar. L'operació pot trigar uns minuts a completar-se i cal reiniciar l'aplicació. Per a continuar, feu clic a l'enllaç.",
"The sync target needs to be upgraded. Press this banner to proceed.": "La destinació de sincronització s'ha d'actualitzar. Premeu aquest bàner per procedir.",
"The tag \"%s\" already exists. Please choose a different name.": "L'etiqueta \"%s\" ja existeix. Escolliu un nom diferent.",
"The target to synchronise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).": "L'objectiu on se sincronitzarà. Cada objectiu pot tenir paràmetres addicionals que s'anomenen «sync.NUM.NAME» (tots documentats a sota).",
"The Web Clipper needs your authorisation to access your data.": "El porta-retalls web necessita autorització per a accedir a les vostres dades.",
@@ -725,7 +773,7 @@
"There was an error downloading this attachment:": "Hi ha hagut un error en baixar aquest adjunt:",
"There was an error setting up your Joplin Cloud account. Please verify your email and password and try again. Error was:\n\n%s": "S'ha produït un error configurant el vostre compte de Joplin Cloud. Verifiqueu el vostre correu electrònic i la contrasenya, i proveu de nou. L'error ha sigut:\n\n%s",
"These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).": "Aquests elements es mantindran al dispositiu, però no es pujaran a la destinació de sincronització. Per a poder trobar aquests elements, podeu cercar pel títol o la ID (que es mostra entre claudàtors a sobre).",
"These plugins enhance the Markdown renderer with additional features. Please note that, while these features might be useful, they are not standard Markdown and thus most of them will only work in Joplin. Additionally, some of them are *incompatible* with the WYSIWYG editor. If you open a note that uses one of these plugins in that editor, you will lose the plugin formatting. It is indicated below which plugins are compatible or not with the WYSIWYG editor.": "Aquestes extensions milloren el renderitzador de Markdown amb funcions addicionals. Tingueu en compte que, tot i que aquestes funcions poden ser útils, no són Markdown estàndard i, per tant, la majoria només funcionaran dins de Joplin. A més, alguns d’ells són *incompatibles* amb l’editor WYSIWYG. Si obriu una nota que utilitza un d'aquests connectors en aquest editor, perdreu el format del connector. A continuació s’indica quins connectors són compatibles o no amb l’editor WYSIWYG.",
"These plugins enhance the Markdown renderer with additional features. Please note that, while these features might be useful, they are not standard Markdown and thus most of them will only work in Joplin. Additionally, some of them are *incompatible* with the WYSIWYG editor. If you open a note that uses one of these plugins in that editor, you will lose the plugin formatting. It is indicated below which plugins are compatible or not with the WYSIWYG editor.": "Aquestes extensions milloren el renderitzador de Markdown amb funcions addicionals. Tingueu en compte que, tot i que aquestes funcions poden ser útils, no són Markdown estàndard i, per tant, la majoria només funcionaran dins de Joplin. A més, alguneas d’ells són *incompatibles* amb l’editor WYSIWYG. Si obriu una nota que utilitza un d'aquestes extensions en aquest editor, perdreu el format de l'extensió. A continuació s’indica quines extensions són compatibles o no amb l’editor WYSIWYG.",
"This attachment is not downloaded or not decrypted yet": "Aquest adjunt no ha estat descarregat o desxifrat encara",
"This attachment is not downloaded or not decrypted yet.": "Aquest adjunt no s'ha descarregat o no s'ha desxifrat encara.",
"This authorisation token is only needed to allow third-party applications to access Joplin.": "Aquest testimoni d'autorització només és necessari per a permetre l'accés d'aplicacions de tercers al Joplin.",
@@ -738,10 +786,12 @@
"This service allows the browser extension to communicate with Joplin. When enabling it your firewall may ask you to give permission to Joplin to listen to a particular port.": "Aquest servei permet que l'extensió del navegador pugui comunicar-se amb el Joplin. En activar-la, el tallafoc us podria demanar de donar permís al Joplin per a escoltar un port determinat.",
"This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronised, thus reducing the number of conflicts.": "Això permetrà que Joplin s’executi en segon pla. Es recomana habilitar aquesta configuració perquè les notes se sincronitzin constantment, reduint així el nombre de conflictes.",
"This will open a new screen. Save your current changes?": "Això obrirà una nova pantalla. Voleu desar els canvis actuals?",
"This will remove the notebook from your collection and you will no longer have access to its content. Do you wish to continue?": "Això eliminarà el bloc de notes de la vostra col·lecció i no hi tindreu accés al contingut. Voleu continuar?",
"Time format": "Format horari",
"title": "títol",
"Title": "Títol",
"To allow Joplin to synchronise with Dropbox, please follow the steps below:": "Per a permetre que el Joplin sincronitzi amb el Dropbox, seguiu les passes següents:",
"To continue, please enter your master password below.": "Per a continuar, introduïu la contrasenya mestra.",
"To delete a tag, untag the associated notes.": "Per a suprimir una etiqueta, traieu l'etiqueta en les notes associades.",
"To delete: %d": "Per a suprimir: %d",
"To enter command line mode, press \":\"": "Per a anar al mode de línia d'ordres, premeu «:»",
@@ -758,8 +808,10 @@
"Toggle editors": "Canvia disposició de l'editor",
"Toggle external editing": "Activa/desactiva l'edició externa",
"Toggle note list": "Mostra o amaga llista de notes",
"Toggle own sort order": "Canvia l'ordenació",
"Toggle safe mode": "Activa/desactiva el mode segur",
"Toggle sidebar": "Mostra o amaga barra lateral",
"Toggle sort order field": "Canvia el camp d'ordenació",
"Token has been copied to the clipboard!": "El testimoni s'ha copiat al porta-retalls!",
"Tools": "Eines",
"Total: %d/%d": "Total: %d/%d",
@@ -799,6 +851,7 @@
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Utilitzeu això per a reconstruir l'índex de cerca si hi ha un problema amb la cerca. Pot trigar molt en funció del nombre de notes.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "S'utilitza per a la majoria de text a l'editor Markdown. Si no es troba, s'utilitza un tipus de lletra genèric proporcional (amplada variable).",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "S'utilitza quan es necessita un tipus de lletra d'amplada fixa per a mostrar text de manera llegible (p. ex. taules, caselles de selecció, codi). Si no es troba, s'utilitza un tipus de lletra genèric monoespai (amplada fixa).",
"Users": "Usuaris",
"Valid": "Vàlid",
"View": "Vista",
"View on map": "Mostra-ho al mapa",
@@ -828,6 +881,8 @@
"You may use the tool below to re-encrypt your data, for example if you know that some of your notes are encrypted with an obsolete encryption method.": "Podeu utilitzar l'eina següent per tornar a xifrar les vostres dades, per exemple si sabeu que algunes de les vostres notes estan xifrades amb un mètode de xifratge obsolet.",
"Your choice: ": "La vostra tria: ",
"Your data is going to be re-encrypted and synced again.": "Les vostres dades es tornaran a xifrar i sincronitzar.",
"Your master password is needed to decrypt some of your data.": "La contrasenya mestra és necessària per a desxifrar algunes dades.",
"Your password is needed to decrypt some of your data. Type `:e2ee decrypt` to set it.": "La contrasenya és necessària per a desxifrar algunes dades. Teclegeu `:e2ee decrypt` per definir-la.",
"Your permission to use your camera is required.": "Es necessita el vostre permís per a utilitzar la càmera.",
"Your version: %s": "La vostra versió: %s",
"Zoom In": "Ampliar",

View File

@@ -77,7 +77,6 @@
"Auto": "Automaticky",
"Auto-pair braces, parenthesis, quotations, etc.": "Automaticky zdvojit uvozovky, závorky, apod.",
"Automatically switch theme to match system theme": "Automaticky přepnout téma vzhledu podle nastavení systému",
"Automatically update the application": "Automaticky aktualizovat aplikaci",
"Back": "Zpět",
"Bold": "Tučně",
"Browse all plugins": "Procházet všechna rozšíření",
@@ -466,7 +465,6 @@
"Note: Does not work in all desktop environments.": "Poznámka: Nefunguje v některých desktopových prostředích.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Poznámka: pokud je poznámka sdílena, už nebude na serveru šifrována.",
"Notebook list growth factor": "Růstový faktor seznamu notebooků",
"Notebook title:": "Název zápisníku:",
"Notebook: %s": "Zápisník: %s",
"Notebooks": "Zápisníky",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován.",

View File

@@ -51,6 +51,8 @@
"Add recipient:": "Tilføj modtager:",
"Add title": "Tilføj titel",
"Add to dictionary": "Tilføj til ordbog",
"Admin": "Admin",
"Admin dashboard": "Kontrolpanel til administration",
"Advanced options": "Avancerede indstillinger",
"Advanced tools": "Avancerede værktøjer",
"All notes": "Alle noter",
@@ -78,8 +80,8 @@
"Authorisation token:": "Autoriseringstoken:",
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Auto-par klammer, parenteser, citater, etc.",
"Automatically check for updates": "Tjek automatisk efter opdateringer",
"Automatically switch theme to match system theme": "Skifter automatisk tema så det matcher systemets tema",
"Automatically update the application": "Opdater automatisk applikationen",
"Back": "Tilbage",
"Bold": "Fed",
"Browse all plugins": "Gennemse alle udvidelser",
@@ -146,6 +148,7 @@
"Copy": "Kopier",
"Copy dev mode command to clipboard": "Kopier udviklertilstand-kommando til udklipsholderen",
"Copy external link": "Kopiér eksternt link",
"Copy image": "Kopier billede",
"Copy Link Address": "Kopier linkadresse",
"Copy Markdown link": "Kopier markdown link",
"Copy path to clipboard": "Kopier sti til udklipsholder",
@@ -158,7 +161,10 @@
"Could not install plugin: %s": "Kunne ikke installere plugin: %s",
"Could not respond to the invitation. Please try again, or check with the notebook owner if they are still sharing it.\n\nThe error was: \"%s\"": "Kunne ikke svare på invitationen. Prøv venligst igen, eller kontakt ejeren af notesbogen, hvis de stadig deler den\n\nFejlen var: \"%s\"",
"Could not upgrade master key: %s": "Kunne ikke opgradere hovednøgle: %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "Kunne ikke verificere denne notesbogs status for deling - afbryder. Prøv venligst igen, når du har forbindelse til internettet.",
"Create a notebook": "Opret en notesbog",
"Create notebook": "Opret notesbog",
"Create user": "Opret bruger",
"Created": "Oprettet",
"created date": "oprettelsesdato",
"Created local items: %d.": "Oprettede lokale emner: %d.",
@@ -180,6 +186,7 @@
"Custom TLS certificates": "Brugerdefinerede TLS certifikater",
"Cut": "Klip",
"Dark": "Mørkt",
"Dashboard": "Kontrolpanel",
"Database v%s": "Database v%s",
"Date": "Dato",
"Date format": "Datoformat",
@@ -331,6 +338,7 @@
"For information on how to customise the shortcuts please visit %s": "For info om tilpasning af links, besøg %s",
"For more information about End-To-End Encryption (E2EE) and advice on how to enable it please check the documentation:": "Se dokumentationen for nærmere oplysninger om End-To-End-kryptering (E2EE) og vejledning om hvordan det skal aktiveres:",
"For the list of keyboard shortcuts and config options, type `help keymap`": "For at få vist listen af tastatur genveje og konfigurationsmuligheder, test `help keymap`",
"Force path style": "Gennemtving sti-stil",
"Forward": "Videresend",
"Found: %d.": "Fundet: %d.",
"FTS enabled: %d": "Fuld-tekst søgning slået til: %d",
@@ -345,14 +353,17 @@
"Goto Anything...": "Gå til tilfældig...",
"Grant authorisation": "Giv tilladelse",
"Heading": "Overskrift",
"Help": "Hjælp",
"Hide %s": "Skjul %s",
"Hide disabled keys": "Skjul deaktiverede nøgler",
"Hide Joplin": "Skjul Joplin",
"Highlight": "Fremhæv",
"Home": "Hjem",
"Horizontal Rule": "Vandret linje",
"HTML Directory": "HTML Indeks",
"HTML File": "HTML fil",
"Hyperlink": "Hyperlink",
"Icon": "Ikon",
"ID": "ID",
"Idle": "Ledig",
"Ignore": "Ignorér",
@@ -385,8 +396,10 @@
"Invalid answer: %s": "Forkert svar: %s",
"Invalid command: \"%s\"": "Ulovlig kommando: \"%s\"",
"Invalid option value: \"%s\". Possible values are: %s.": "Ulovlig indstillingsværdi: \"%s\". Mulige valg er: %s.",
"Invalid password": "Ugyldig adgangskode",
"Italic": "Kursiv",
"Item \"%s\" could not be downloaded: %s": "Emnet \"%s\" kunne ikke downloades: %s",
"Items": "Emner",
"Items that cannot be decrypted": "Emner der ikke kan dekrypteres",
"Items that cannot be synchronised": "Emner kan ikke synkroniseres",
"Joplin can synchronise your notes using various providers. Select one from the list below.": "Joplin kan synkronisere dine noter ved hjælp af forskellige tjenesteudbydere. Vælg en fra listen nedenfor.",
@@ -432,6 +445,8 @@
"Login below.": "Log ind nedenfor.",
"Login with Dropbox": "Log på med Dropbox",
"Login with OneDrive": "Log på med OneDrive",
"Logout": "Log ud",
"Logs": "Logfiler",
"Make a donation": "Giv en donation",
"Manage master password": "Administrer hovedadgangskode",
"Manage master password...": "Administrer hovedadgangskode...",
@@ -506,11 +521,12 @@
"Note&book": "Note&bog",
"Note: Does not work in all desktop environments.": "OBS: Virker ikke i alle skrivebordsmiljøer.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Bemærk: Når en note bliver delt, vil den ikke længere være krypteret på serveren.",
"Notebook": "Notesbog",
"Notebook list growth factor": "Notesbogsliste-vækstfaktor",
"Notebook title:": "Notesbogstitel:",
"Notebook: %s": "Notesbog: %s",
"Notebooks": "Notesbøger",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notesbøger kan ikke navngives \"%s\", da det er en reserveret titel.",
"Notes": "Noter",
"Notes and settings are stored in: %s": "Noter og indstillinger er gemt i: %s",
"Notes can only be created within a notebook.": "Noter kan kun oprettes i en notesbog.",
"Numbered List": "Nummeret liste",
@@ -572,6 +588,7 @@
"Previous versions of this note": "Tidligere udgaver af denne note",
"Print": "Udskriv",
"Privacy Policy": "Privatlivspolitik",
"Profile": "Profil",
"Profile Version: %s": "Profil-version: %s",
"Properties": "Egenskaber",
"Public-private key pair:": "Offentligt-privat nøglepar:",
@@ -612,6 +629,12 @@
"Reverses the sorting order.": "Modsat sortering.",
"Revision: %s (%s)": "Revision: %s (%s)",
"Runs the commands contained in the text file. There should be one command per line.": "Afvikler kommandoerne i tekstfilen. Der skal være én kommando pr. linje.",
"S3": "S3",
"S3 access key": "S3-adgangsnøgle",
"S3 bucket": "S3 bucket",
"S3 region": "S3-region",
"S3 secret key": "S3 hemmelig nøgle",
"S3 URL": "S3 URL",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "Fejlsikret tilstand er aktiv i øjeblikket. Notegengivelse og alle plugins er midlertidigt deaktiveret.",
"Save": "Gem",
"Save alarm": "Gem alarm",
@@ -646,6 +669,7 @@
"Show completed to-dos": "Vis færdige opgaver",
"Show disabled keys": "Vis deaktiverede nøgler",
"Show note counts": "Vis noteantal",
"Show sort order buttons": "Vis knapper til sorteringsrækkefølge",
"Show tray icon": "Vis ikon på bundbjælke",
"Sidebar": "Sidebjælke",
"Size": "Størrelse",
@@ -716,6 +740,7 @@
"Tagged: %d.": "Etiketterede: %d.",
"Tags": "Etiketter",
"Take photo": "Tag et foto",
"Tasks": "Opgaver",
"Text editor command": "Tekstredigeringskomando",
"Thank you! Your Joplin Cloud account is now setup and ready to use.": "Mange tak! Din Joplin Cloud-konto er nu indstillet og klar til brug.",
"The app is now going to close. Please relaunch it to complete the process.": "Appen lukker nu. Genstart den for at fuldføre processen.",
@@ -792,8 +817,10 @@
"Toggle editors": "Skift editorer",
"Toggle external editing": "Slå ekstern redigering til eller fra",
"Toggle note list": "Slå noteliste til eller fra",
"Toggle own sort order": "Slå egen sorteringsrækkefølge til eller fra",
"Toggle safe mode": "Slå fejlsikret tilstand til eller fra",
"Toggle sidebar": "Slå sidebar til eller fra",
"Toggle sort order field": "Slå felt for sorteringsrækkefølge til eller fra",
"Token has been copied to the clipboard!": "Din token er blevet kopieret til udklipsholderen!",
"Tools": "Værktøjer",
"Total: %d/%d": "I alt: %d/%d",
@@ -814,6 +841,7 @@
"Unsupported link or message: %s": "Ugyldigt link eller besked: %s",
"Untitled": "Uden titel",
"Update": "Opdater",
"Update profile": "Opdater profil",
"Updated": "Opdateret",
"updated date": "opdateringsdato",
"Updated local items: %d.": "Opdaterede lokale emner: %d.",
@@ -833,6 +861,8 @@
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Brug denne funktion til at genopbygge søgeindekset, hvis der er problemer med søgning. Det kan tage lang tid afhængig af antallet af noter.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Bruges til det meste tekst i markdown-editoren. Hvis ikke fundet, bruges en proportional (variabel bredde) font.",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "Bruges hvor en font med fast bredde er nødvendig for at vise læsbar tekst (f.eks. tabeller, afkrydsningsfelter, kode). Hvis ikke fundet, bruges en generisk monospatieret (fast bredde) font.",
"User deletions": "Brugersletninger",
"Users": "Brugere",
"Valid": "Gyldig",
"View": "Vis",
"View on map": "Vis på kort",
@@ -863,6 +893,7 @@
"Your choice: ": "Dit valg: ",
"Your data is going to be re-encrypted and synced again.": "Dine data bliver genkrypteret og synkroniseret igen.",
"Your master password is needed to decrypt some of your data.": "Din hovedadgangskode er nødvendig for at dekryptere nogle af dine data.",
"Your password is needed to decrypt some of your data. Type `:e2ee decrypt` to set it.": "Din adgangskode er nødvendig for at dekryptere nogle af dine data. Tast `:e2ee decrypt` for at indstille den.",
"Your permission to use your camera is required.": "Din tilladelse til at bruge kameraet er påkrævet.",
"Your version: %s": "Din version: %s",
"Zoom In": "Zoom ind",

View File

@@ -51,6 +51,8 @@
"Add recipient:": "Füge Empfänger hinzu:",
"Add title": "Titel hinzufügen",
"Add to dictionary": "Zum Wörterbuch hinzufügen",
"Admin": "Admin",
"Admin dashboard": "Admin-Übersichtsseite",
"Advanced options": "Erweiterte Optionen",
"Advanced tools": "Erweiterte Optionen",
"All notes": "Alle Notizen",
@@ -78,8 +80,8 @@
"Authorisation token:": "Berechtigungstoken:",
"Auto": "Automatisch",
"Auto-pair braces, parenthesis, quotations, etc.": "Automatisches Hinzufügen von geschweiften Klammern, runden Klammern, Anführungszeichen usw.",
"Automatically check for updates": "Automatisch auf Aktualisierungen prüfen",
"Automatically switch theme to match system theme": "Automatisch das Design ändern, um es dem System-Design anzupassen",
"Automatically update the application": "Die Anwendung automatisch aktualisieren",
"Back": "Zurück",
"Bold": "Fett",
"Browse all plugins": "Alle Erweiterungen durchsuchen",
@@ -146,6 +148,7 @@
"Copy": "Kopieren",
"Copy dev mode command to clipboard": "Entwicklermodus-Befehl in Zwischenablage kopieren",
"Copy external link": "Externen Link kopieren",
"Copy image": "Bild kopieren",
"Copy Link Address": "Link-Adresse kopieren",
"Copy Markdown link": "Markdown-Link kopieren",
"Copy path to clipboard": "Pfad in Zwischenablage kopieren",
@@ -160,6 +163,8 @@
"Could not upgrade master key: %s": "Konnte Hauptschlüssel nicht aktualisieren: %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "Der Freigabestatus dieses Notizbuchs konnte nicht überprüft werden - Vorgang wird abgebrochen. Bitte versuche es erneut, wenn eine Internetverbindung besteht.",
"Create a notebook": "Notizbuch erstellen",
"Create notebook": "Notizbuch erstellen",
"Create user": "Benutzer erstellen",
"Created": "Erstellt",
"created date": "Erstellungsdatum",
"Created local items: %d.": "Lokale Elemente erstellt: %d.",
@@ -171,7 +176,7 @@
"Creates a new note.": "Erstellt eine neue Notiz.",
"Creates a new notebook.": "Erstellt ein neues Notizbuch.",
"Creates a new to-do.": "Erstellt eine neue Aufgabe.",
"Creating new %s...": "Neue(s) %s wird erstellt ...",
"Creating new %s...": "Neue(s) %s erstellen ...",
"Creating report...": "Bericht wird erstellt ...",
"Current version is up-to-date.": "Die aktuelle Version ist auf dem neuesten Stand.",
"custom order": "Benutzerdefinierte Reihenfolge",
@@ -181,6 +186,7 @@
"Custom TLS certificates": "Benutzerdefinierte TLS-Zertifikate",
"Cut": "Ausschneiden",
"Dark": "Dunkel",
"Dashboard": "Übersichtsseite",
"Database v%s": "Datenbank v%s",
"Date": "Datum",
"Date format": "Datumsformat",
@@ -440,6 +446,7 @@
"Login with Dropbox": "Mit Dropbox anmelden",
"Login with OneDrive": "Mit OneDrive anmelden",
"Logout": "Abmelden",
"Logs": "Protokolle",
"Make a donation": "Spenden",
"Manage master password": "Master-Passwort verwalten",
"Manage master password...": "Master-Passwort verwalten...",
@@ -516,7 +523,6 @@
"Note: When a note is shared, it will no longer be encrypted on the server.": "Achtung: Wenn eine Notiz geteilt wird, wird sie auf dem Server nicht mehr verschlüsselt sein.",
"Notebook": "Notizbuch",
"Notebook list growth factor": "Notizbuch-Listenwachstumsfaktor",
"Notebook title:": "Notizbuch-Titel:",
"Notebook: %s": "Notizbuch: %s",
"Notebooks": "Notizbücher",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notizbücher können nicht „%s“ genannt werden, da dies ein reservierter Titel ist.",
@@ -582,6 +588,7 @@
"Previous versions of this note": "Vorherige Version dieser Notiz",
"Print": "Drucken",
"Privacy Policy": "Datenschutzrichtlinie",
"Profile": "Profil",
"Profile Version: %s": "Profil-Version: %s",
"Properties": "Eigenschaften",
"Public-private key pair:": "Öffentlich-Privates Schlüsselpaar:",
@@ -623,6 +630,11 @@
"Revision: %s (%s)": "Revision: %s (%s)",
"Runs the commands contained in the text file. There should be one command per line.": "Führe Befehle aus der Textdatei aus. Jede Zeile darf nur einen Befehl enthalten.",
"S3": "S3",
"S3 access key": "S3-Zugriffsschlüssel",
"S3 bucket": "S3 Bucket",
"S3 region": "S3-Region",
"S3 secret key": "S3 geheimer Sschlüssel",
"S3 URL": "S3 URL",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "Sicherer Modus aktiv. Notizdarstellung und alle Plugins werden vorübergehend deaktiviert.",
"Save": "Speichern",
"Save alarm": "Alarm speichern",
@@ -829,6 +841,7 @@
"Unsupported link or message: %s": "Nicht unterstützter Link oder Nachricht: %s",
"Untitled": "Unbenannt",
"Update": "Aktualisieren",
"Update profile": "Profil aktualisieren",
"Updated": "Aktualisiert",
"updated date": "Aktualisierungsdatum",
"Updated local items: %d.": "Lokale Elemente aktualisiert: %d.",
@@ -848,6 +861,7 @@
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Verwende dies, um den Suchindex neu aufzubauen, wenn es ein Problem mit der Suche gibt. Dies kann je nach Anzahl der Notizen eine lange Zeit dauern.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Hauptsächlich für Text im Markdown-Editor verwendet. Falls nicht vorhanden wird eine generische Proportional-Schriftart (mit variabler Breite) verwendet.",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "Verwendete Schriftart mit fester Breite, um Text lesbar zu machen (z.B. in Tabellen, Kontrollkästchen, Code). Falls nicht vorhanden wird eine Monotype-Scrhiftart (mit fester Breite) verwendet.",
"User deletions": "Benutzer-Löschungen",
"Users": "Benutzer",
"Valid": "Gültig",
"View": "Ansicht",

View File

@@ -73,7 +73,6 @@
"Auto": "Αυτόματα",
"Auto-pair braces, parenthesis, quotations, etc.": "Αυτόματη-σύζευξη αγκίστρων, παρενθέσεων, εισαγωγικών, κ.λπ.",
"Automatically switch theme to match system theme": "Αυτόματη εναλλαγή θέματος ώστε να ταιριάζει με το θέμα συστήματος",
"Automatically update the application": "Αυτόματη ενημέρωση της εφαρμογής",
"Back": "Πίσω",
"Bold": "Έντονη γραφή",
"Browse all plugins": "Αναζήτηση όλων των plugin",
@@ -457,7 +456,6 @@
"Note: Does not work in all desktop environments.": "Σημείωση: Δεν λειτουργεί σε όλα τα γραφικά περιβάλλοντα.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Σημείωση: Όταν μια σημείωση είναι κοινόχρηστη, δεν θα κρυπτογραφείται πλέον στο διακομιστή.",
"Notebook list growth factor": "Συντελεστής ανάπτυξης λίστας σημειωματάριων",
"Notebook title:": "Τίτλος σημειωματάριου:",
"Notebook: %s": "Σημειωματάριο: %s",
"Notebooks": "Σημειωματάρια",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Τα σημειωματάρια δεν μπορούν να ονομαστούν \"%s\", που είναι δεσμευμένος τίτλος.",

View File

@@ -168,7 +168,6 @@
"Note History": "Nota Historio",
"Note is not a to-do: \"%s\"": "Noto ne estas tasko: \"%s\"",
"Note properties": "Notaj atributoj",
"Notebook title:": "Notlibra titolo:",
"Notebook: %s": "Notlibro: %s",
"Notebooks": "Notlibroj",
"Notes and settings are stored in: %s": "Notoj kaj agordoj estas konservitaj en: %s",

View File

@@ -79,7 +79,6 @@
"Auto": "Automático",
"Auto-pair braces, parenthesis, quotations, etc.": "Autoemparejar llaves, paréntesis, comillas, etc.",
"Automatically switch theme to match system theme": "Cambiar automáticamente el tema para que coincida con el tema del sistema",
"Automatically update the application": "Actualizar la aplicación automáticamente",
"Back": "Retroceder",
"Bold": "Negrita",
"Browse all plugins": "Explorar todos los plugins",
@@ -516,7 +515,6 @@
"Note: When a note is shared, it will no longer be encrypted on the server.": "Nota: Cuando se comparte una nota, deja de estar cifrada en el servidor.",
"Notebook": "Libreta",
"Notebook list growth factor": "Factor de crecimiento de la lista de libretas",
"Notebook title:": "Título de libreta:",
"Notebook: %s": "Libretas: %s",
"Notebooks": "Libretas",
"Notebooks cannot be named \"%s\", which is a reserved title.": "No se puede usar el nombre «%s» para una libreta, es un título reservado.",

View File

@@ -280,7 +280,6 @@
"Note is not a to-do: \"%s\"": "Märkus ei ole ülesannete loetelu: %s",
"Note properties": "Märkme atribuudid",
"Note: Does not work in all desktop environments.": "Märkus: ei tööta kõigil töölaua keskkondades.",
"Notebook title:": "Märkmiku tiitel:",
"Notebook: %s": "Märkmik: %s",
"Notebooks": "Sülearvutid",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Märkmikke ei saa nimega \"%s\", mis on reserveeritud tiitel.",

View File

@@ -19,7 +19,6 @@
"Attach photo": "Argazkia erantsi",
"Attaches the given file to the note.": "Erantsi fitxategia notan",
"Authentication was not completed (did not receive an authentication token).": "Autentifikazioa ez da egin osorik (ez du token-ik hartu).",
"Automatically update the application": "Automatikoki eguneratu aplikazioa",
"Back": "Atzera",
"Cancel": "Utzi",
"Cancelling background synchronisation... Please wait.": "Atzeko sinkronizazioa uzten... Mesedez itxaron.",
@@ -140,7 +139,6 @@
"Note does not exist: \"%s\". Create it?": "Ez dago oharrik: \"%s\". Sortu?",
"Note has been saved.": "Oharra gorde da.",
"Note is not a to-do: \"%s\"": "Oharra ez da zeregina: \"%s\"",
"Notebook title:": "Koadernoaren izenburua: ",
"Notebooks": "Koadernoak",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka",
"Notes and settings are stored in: %s": "Oharrak eta ezarpenak hemen daude gordeta: %s",

View File

@@ -52,7 +52,6 @@
"Authorisation token:": "توکن مجوز:",
"Auto": "خودکار",
"Automatically switch theme to match system theme": "به طور خودکار پوسته هماهنگ با پوسته سیستم تغییر کند",
"Automatically update the application": "به طور خودکار نرم‌افزار را به‌روز کن",
"Back": "بازگشت",
"Bold": "پررنگ",
"Browse...": "مرور...",
@@ -340,7 +339,6 @@
"Note properties": "جزییات یادداشت",
"Note title": "عنوان یادداشت",
"Notebook list growth factor": "فاکتور رشد لیست دفترچه",
"Notebook title:": "عنوان دفترچه:",
"Notebook: %s": "دفترچه: %s",
"Notebooks": "دفترچه ها",
"Notebooks cannot be named \"%s\", which is a reserved title.": "دفترچه نمی‌تواند «%s» نام داشته باشد، این نام رزرو شده.",

View File

@@ -79,7 +79,6 @@
"Auto": "Automaattinen",
"Auto-pair braces, parenthesis, quotations, etc.": "Yhdistä sulut, sulkeet, lainaukset jne.",
"Automatically switch theme to match system theme": "Vaihda teema automaattisesti vastaamaan järjestelmän teemaa",
"Automatically update the application": "Päivitä sovellus automaattisesti",
"Back": "Takaisin",
"Bold": "Lihavoitu",
"Browse all plugins": "Selaa kaikkia laajennuksia",
@@ -486,7 +485,6 @@
"Note: Does not work in all desktop environments.": "Huomautus: Ei toimi kaikissa työpöytäympäristöissä.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Huomautus: Kun muistiinpano on jaettu, sitä ei enää salata palvelimella.",
"Notebook list growth factor": "Muistikirjaluettelon kasvutekijä",
"Notebook title:": "Muistikirjan otsikko:",
"Notebook: %s": "Muistikirja: %s",
"Notebooks": "Muistikirjat",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Muistikirjoja ei voi nimetä \"%s\", joka on varattu otsikko.",

View File

@@ -51,6 +51,8 @@
"Add recipient:": "Ajouter destinataire :",
"Add title": "Ajoutez le titre",
"Add to dictionary": "Ajouter au dictionnaire",
"Admin": "Admin",
"Admin dashboard": "Tableau de bord",
"Advanced options": "Options avancées",
"Advanced tools": "Outils avancés",
"All notes": "Toutes les notes",
@@ -78,8 +80,8 @@
"Authorisation token:": "Code d'authentification :",
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Auto‑compléter les paires de parenthèses, guillemets, etc.",
"Automatically check for updates": "Vérifier automatiquement les mises à jour…",
"Automatically switch theme to match system theme": "Changer le thème automatiquement pour correspondre au thème système",
"Automatically update the application": "Mettre à jour le logiciel automatiquement",
"Back": "Retour",
"Bold": "Gras",
"Browse all plugins": "Parcourir les plugins",
@@ -146,6 +148,7 @@
"Copy": "Copier",
"Copy dev mode command to clipboard": "Copier commande de développement dans presse papier",
"Copy external link": "Copier le lien externe",
"Copy image": "Copier image",
"Copy Link Address": "Copier l'adresse du lien",
"Copy Markdown link": "Copier lien Markdown",
"Copy path to clipboard": "Copier le chemin",
@@ -160,6 +163,8 @@
"Could not upgrade master key: %s": "Impossible de mettre la clef à niveau : %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "Impossible de vérifier l'état du partage du carnet - annulation. Veuillez réessayer lorsque vous serez connecté à internet.",
"Create a notebook": "Créer un carnet",
"Create notebook": "Créer un carnet",
"Create user": "Créer utilisateur",
"Created": "Créé",
"created date": "date de création",
"Created local items: %d.": "Objets créés localement : %d.",
@@ -181,6 +186,7 @@
"Custom TLS certificates": "Certificats TLS personnalisés",
"Cut": "Couper",
"Dark": "Sombre",
"Dashboard": "Tableau de bord",
"Database v%s": "Base de données v%s",
"Date": "Date",
"Date format": "Format de la date",
@@ -440,6 +446,7 @@
"Login with Dropbox": "Se connecter à Dropbox",
"Login with OneDrive": "Se connecter à OneDrive",
"Logout": "Se déconnecter",
"Logs": "Journal",
"Make a donation": "Faire un don",
"Manage master password": "Gestion du mot de passe maître",
"Manage master password...": "Gestion du mot de passe maître...",
@@ -516,7 +523,6 @@
"Note: When a note is shared, it will no longer be encrypted on the server.": "Note : Lorsqu'une note est partagée, elle ne sera plus chiffrée sur le serveur.",
"Notebook": "Carnet",
"Notebook list growth factor": "Facteur de croissance de la liste de carnets",
"Notebook title:": "Titre du carnet :",
"Notebook: %s": "Carnet : %s",
"Notebooks": "Carnets",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.",
@@ -582,6 +588,7 @@
"Previous versions of this note": "Versions précédentes de cette note",
"Print": "Imprimer",
"Privacy Policy": "Politique de confidentialité",
"Profile": "Profil",
"Profile Version: %s": "Version du profil : %s",
"Properties": "Propriétés",
"Public-private key pair:": "Paire de clefs publiques privées :",
@@ -834,6 +841,7 @@
"Unsupported link or message: %s": "Lien ou message non géré : %s",
"Untitled": "Sans titre",
"Update": "Mettre à jour",
"Update profile": "Mettre à jour le profil",
"Updated": "Mis à jour",
"updated date": "date de modification",
"Updated local items: %d.": "Objets màj localement : %d.",
@@ -853,6 +861,7 @@
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Utilisez ceci pour corriger l'index du moteur de recherche en cas de problème. Cela peut prendre longtemps selon le nombre de notes.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Utilisée pour la plupart du texte de l'éditeur Markdown. Par défaut, une police proportionnelle sera utilisée.",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "Utilisée lorsque une police à taille fixe est nécessaire pour afficher le texte de façon lisible (par ex. pour les tables, code source, etc.).",
"User deletions": "Suppressions d'utilisateurs",
"Users": "Utilisateurs",
"Valid": "Valide",
"View": "Affichage",

View File

@@ -20,7 +20,6 @@
"Attach photo": "Anexar foto",
"Attaches the given file to the note.": "Anexa o ficheiro dado á nota.",
"Authentication was not completed (did not receive an authentication token).": "A autenticación non foi completada (non recibiu un token de autenticación).",
"Automatically update the application": "Actualizar automaticamente o aplicativo",
"Back": "Anterior",
"Cancel": "Cancelar",
"Cancelling background synchronisation... Please wait.": "Cancelando sincronización en segundo plano... Agarde.",
@@ -173,7 +172,6 @@
"Note does not exist: \"%s\". Create it?": "A nota non existe: «%s». Desexa creala?",
"Note has been saved.": "A nota foi gardada.",
"Note is not a to-do: \"%s\"": "A nota non é unha tarefa: «%s»",
"Notebook title:": "Título do caderno:",
"Notebooks": "Cadernos",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Os cadernos non poden levar o nome «%s» porque é un título reservado.",
"Notes and settings are stored in: %s": "As notas e axustes gardáronse en: %s",

View File

@@ -79,7 +79,6 @@
"Auto": "Automatski",
"Auto-pair braces, parenthesis, quotations, etc.": "Automatski uskladi zagrade, navodnike itd.",
"Automatically switch theme to match system theme": "Automatski promijeni temu na temu sustava",
"Automatically update the application": "Automatski aktualiziraj program",
"Back": "Natrag",
"Bold": "Podebljano",
"Browse all plugins": "Pregledaj sve dodatke",
@@ -507,7 +506,6 @@
"Note: Does not work in all desktop environments.": "Napomena: Ne radi u svim radnim okruženjima.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Napomena: Kad se bilješka dijeli, više neće biti šifrirana na poslužitelju.",
"Notebook list growth factor": "Faktor povećanja popisa bilježnice",
"Notebook title:": "Naslov bilježnice:",
"Notebook: %s": "Bilježnica: %s",
"Notebooks": "Bilježnice",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Naslov „%s” je rezerviran i ne može se koristiti za bilježnice.",

View File

@@ -69,7 +69,6 @@
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Auto-párosítása az idézőjeleknek, zárójeleknek, stb.",
"Automatically switch theme to match system theme": "Automatikusan kapcsoljon olyan témára, ami egyezik a rendszer témával",
"Automatically update the application": "Automatikusan frissítse az alkalmazást",
"Back": "Vissza",
"Bold": "Félkövér",
"Browse all plugins": "Plugin-ok tallózása",
@@ -421,7 +420,6 @@
"Note title": "Jegyzet címe",
"Note: Does not work in all desktop environments.": "Megjegyzés: Nem működik minden asztali környezetben.",
"Notebook list growth factor": "Jegyzetfüzet lista növekedési faktor",
"Notebook title:": "Jegyzetfüzet címe:",
"Notebook: %s": "Jegyzetfüzet: %s",
"Notebooks": "Jegyzetfüzetek",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Jegyzetfüzet nem nevezhető \"%s\"-nak, az egy fenntartott cím.",

View File

@@ -77,7 +77,6 @@
"Auto": "Otomatis",
"Auto-pair braces, parenthesis, quotations, etc.": "Pasangkan secara otomatis kurung kurawal, tanda kurung, kutipan, dll.",
"Automatically switch theme to match system theme": "Beralih tema secara otomatis untuk menyesuaikannya dengan tema sistem",
"Automatically update the application": "Perbarui aplikasi secara otomatis",
"Back": "Kembali",
"Bold": "Tebal",
"Browse all plugins": "Lihat semua plugin",
@@ -479,7 +478,6 @@
"Note: Does not work in all desktop environments.": "Catatan: Tidak berfungsi di semua lingkungan desktop.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Catatan: Ketika sebuah catatan dibagikan, ia tidak akan dienkripsi lagi di server.",
"Notebook list growth factor": "Faktor pertumbuhan daftar buku catatan",
"Notebook title:": "Judul buku catatan:",
"Notebook: %s": "Buku catatan: %s",
"Notebooks": "Buku catatan",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Buku catatan tidak dapat dinamai \"%s\", yang merupakan judul yang telah dipesan.",

View File

@@ -41,45 +41,45 @@ locales['uk_UA'] = require('./uk_UA.json');
locales['vi'] = require('./vi.json');
locales['zh_CN'] = require('./zh_CN.json');
locales['zh_TW'] = require('./zh_TW.json');
stats['ar'] = {"percentDone":93};
stats['eu'] = {"percentDone":27};
stats['bs_BA'] = {"percentDone":67};
stats['bg_BG'] = {"percentDone":53};
stats['ca'] = {"percentDone":93};
stats['hr_HR'] = {"percentDone":97};
stats['cs_CZ'] = {"percentDone":89};
stats['da_DK'] = {"percentDone":97};
stats['de_DE'] = {"percentDone":99};
stats['et_EE'] = {"percentDone":51};
stats['ar'] = {"percentDone":91};
stats['eu'] = {"percentDone":26};
stats['bs_BA'] = {"percentDone":65};
stats['bg_BG'] = {"percentDone":51};
stats['ca'] = {"percentDone":97};
stats['hr_HR'] = {"percentDone":95};
stats['cs_CZ'] = {"percentDone":87};
stats['da_DK'] = {"percentDone":98};
stats['de_DE'] = {"percentDone":98};
stats['et_EE'] = {"percentDone":50};
stats['en_GB'] = {"percentDone":100};
stats['en_US'] = {"percentDone":100};
stats['es_ES'] = {"percentDone":99};
stats['eo'] = {"percentDone":30};
stats['fi_FI'] = {"percentDone":93};
stats['fr_FR'] = {"percentDone":100};
stats['gl_ES'] = {"percentDone":34};
stats['id_ID'] = {"percentDone":92};
stats['it_IT'] = {"percentDone":90};
stats['hu_HU'] = {"percentDone":78};
stats['nl_BE'] = {"percentDone":81};
stats['nl_NL'] = {"percentDone":85};
stats['nb_NO'] = {"percentDone":90};
stats['fa'] = {"percentDone":64};
stats['pl_PL'] = {"percentDone":84};
stats['pt_BR'] = {"percentDone":94};
stats['pt_PT'] = {"percentDone":84};
stats['ro'] = {"percentDone":59};
stats['sl_SI'] = {"percentDone":93};
stats['es_ES'] = {"percentDone":97};
stats['eo'] = {"percentDone":29};
stats['fi_FI'] = {"percentDone":91};
stats['fr_FR'] = {"percentDone":98};
stats['gl_ES'] = {"percentDone":33};
stats['id_ID'] = {"percentDone":90};
stats['it_IT'] = {"percentDone":88};
stats['hu_HU'] = {"percentDone":76};
stats['nl_BE'] = {"percentDone":89};
stats['nl_NL'] = {"percentDone":83};
stats['nb_NO'] = {"percentDone":88};
stats['fa'] = {"percentDone":63};
stats['pl_PL'] = {"percentDone":82};
stats['pt_BR'] = {"percentDone":91};
stats['pt_PT'] = {"percentDone":82};
stats['ro'] = {"percentDone":58};
stats['sl_SI'] = {"percentDone":91};
stats['sv'] = {"percentDone":97};
stats['th_TH'] = {"percentDone":43};
stats['vi'] = {"percentDone":90};
stats['tr_TR'] = {"percentDone":93};
stats['uk_UA'] = {"percentDone":83};
stats['el_GR'] = {"percentDone":87};
stats['ru_RU'] = {"percentDone":93};
stats['sr_RS'] = {"percentDone":76};
stats['zh_CN'] = {"percentDone":97};
stats['zh_TW'] = {"percentDone":90};
stats['ja_JP'] = {"percentDone":98};
stats['ko'] = {"percentDone":89};
stats['th_TH'] = {"percentDone":41};
stats['vi'] = {"percentDone":88};
stats['tr_TR'] = {"percentDone":98};
stats['uk_UA'] = {"percentDone":81};
stats['el_GR'] = {"percentDone":85};
stats['ru_RU'] = {"percentDone":91};
stats['sr_RS'] = {"percentDone":74};
stats['zh_CN'] = {"percentDone":98};
stats['zh_TW'] = {"percentDone":88};
stats['ja_JP'] = {"percentDone":96};
stats['ko'] = {"percentDone":87};
module.exports = { locales: locales, stats: stats };

View File

@@ -76,7 +76,6 @@
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Auto- accoppia parentesi graffe, parentesi, citazione, ecc.",
"Automatically switch theme to match system theme": "Usa il tema di sistema",
"Automatically update the application": "Aggiorna automaticamente l'applicazione",
"Back": "Indietro",
"Bold": "Grassetto",
"Browse all plugins": "Sfoglia tutti i plugins",
@@ -470,7 +469,6 @@
"Note: Does not work in all desktop environments.": "Nota: non funziona in tutti gli ambienti desktop.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Nota: Quando una nota è condivisa, non sarà più criptata nel server.",
"Notebook list growth factor": "Fattore di crescita del taccuino",
"Notebook title:": "Titolo del taccuino:",
"Notebook: %s": "Taccuini: %s",
"Notebooks": "Taccuini",
"Notebooks cannot be named \"%s\", which is a reserved title.": "I blocchi non possono essere chiamati \"%s\". È un titolo riservato.",

View File

@@ -79,7 +79,6 @@
"Auto": "自動",
"Auto-pair braces, parenthesis, quotations, etc.": "始めの括弧や引用符入力時に終わりの括弧や引用符を自動入力する。",
"Automatically switch theme to match system theme": "システムのテーマにあわせて自動設定",
"Automatically update the application": "アプリケーションを自動的にアップデート",
"Back": "戻る",
"Bold": "太字",
"Browse all plugins": "プラグイン一覧を参照",
@@ -512,7 +511,6 @@
"Note: When a note is shared, it will no longer be encrypted on the server.": "注意: ノートを共有すると、該当ノートはサーバー上で暗号化されなくなります。",
"Notebook": "ノートブック",
"Notebook list growth factor": "ノートブック一覧のストレッチ係数",
"Notebook title:": "ノートブックの題名:",
"Notebook: %s": "ノートブック: %s",
"Notebooks": "ノートブック",
"Notebooks cannot be named \"%s\", which is a reserved title.": "\"%s\" というノートブックの名称はシステムで使用するために予約済みです。名称の変更はできません。",

View File

@@ -76,7 +76,6 @@
"Auto": "자동",
"Auto-pair braces, parenthesis, quotations, etc.": "괄호, 중괄호, 인용 부호 등의 자동 완성.",
"Automatically switch theme to match system theme": "시스템 테마에 적합한 테마로 자동으로 변경",
"Automatically update the application": "자동으로 업데이트하기",
"Back": "뒤로 가기",
"Bold": "굵게",
"Browse all plugins": "모든 플러그인 보기",
@@ -467,7 +466,6 @@
"Note: Does not work in all desktop environments.": "참고: 모든 데스크탑 환경에서 작동하는 것은 아닙니다.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "참고: 공유된 노트는 서버에서 암호화될 수 없습니다.",
"Notebook list growth factor": "노트북 목록 증가 인수",
"Notebook title:": "노트북 제목:",
"Notebook: %s": "노트북: %s",
"Notebooks": "노트북",
"Notebooks cannot be named \"%s\", which is a reserved title.": "노트북 제목을 \"%s\" 으로 정할 수 없습니다. 이미 예약 중입니다.",

View File

@@ -77,7 +77,6 @@
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Automatisk lukk klammer, paranteser, fnutter, etc.",
"Automatically switch theme to match system theme": "Bytt tema automatisk for å matche systemtema",
"Automatically update the application": "Oppdater applikasjonen automatisk",
"Back": "Tilbake",
"Bold": "Fet",
"Browse all plugins": "Bla igjennom alle utvidelser",
@@ -472,7 +471,6 @@
"Note: Does not work in all desktop environments.": "Merk: fungerer ikke i alle skrivebordsmiljøer.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Merk: Når et notat blir delt vil det ikke lenger være kryptert på serveren.",
"Notebook list growth factor": "Notatbok liste vekst verdi",
"Notebook title:": "Tittel på notatbok:",
"Notebook: %s": "Notatbok: %s",
"Notebooks": "Notatbøker",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notatbøker kan ikke hete %s, som er en reservert tittel.",

View File

@@ -7,6 +7,7 @@
"%d notes match this pattern. Delete them?": "%d notities voldoen aan het patroon. Deze verwijderen?",
"%s %s (%s, %s)": "%s %s (%s, %s)",
"%s (%s) could not be uploaded: %s": "%s (%s) kon niet opgeladen worden: %s",
"%s (%s) would like to share a notebook with you.": "%s (%s) wil graag een notitieboek met je delen.",
"%s (%s): %s": "%s (%s): %s",
"%s (pre-release)": "%s (pre-release)",
"%s - Copy": "%s - Kopieer",
@@ -18,7 +19,7 @@
"%s: %d notes": "%s: %d notities",
"%s: %d/%d": "%s: %d/%d",
"%s: %s": "%s: %s",
"&Edit": "&Bijwerken",
"&Edit": "&Bewerken",
"&File": "&Bestand",
"&Go": "&Ga",
"&Help": "&Help",
@@ -26,6 +27,7 @@
"&Tools": "&Hulpmiddelen",
"&View": "&Weergave",
"(%s)": "(%s)",
"(None)": "(None)",
"(wysiwyg: %s)": "(wysiwyg: %s)",
"- Camera: to allow taking a picture and attaching it to a note.": "- Camera: om toe te laten een foto te maken en deze als bijlage te voegen bij een notitie.",
"- Location: to allow attaching geo-location information to a note.": "- Locatie: om toe te laten geo-locatie toe te voegen aan een notitie.",
@@ -36,10 +38,16 @@
"A4": "A4",
"A5": "A5",
"About Joplin": "Over Joplin",
"accelerator": "accelerator",
"Accelerator \"%s\" is not valid.": "Accelerator \"%s\" is ongeldig.",
"Accelerator \"%s\" is used for \"%s\" and \"%s\" commands. This may lead to unexpected behaviour.": "Accelerator \"%s\" wordt gebruikt voor \"%s\" en \"%s\" commands. Dit kan leiden tot ongewild gedrag..",
"Accept": "Aanvaarden",
"Action": "Actie",
"Active": "Actief",
"Actual Size": "Huidige grootte",
"Add body": "Body toevoegen",
"Add or remove tags:": "Tags toevoegen of verwijderen:",
"Add recipient:": "Ontvanger toevoegen:",
"Add title": "Titel toevoegen",
"Add to dictionary": "Toevoegen aan woordenboek",
"Advanced options": "Geavanceerde opties",
@@ -47,10 +55,11 @@
"All potential ports are in use - please report the issue at %s": "Alle potentiële poorten zijn in gebruik - gelieve dit te rapporteren aan %s",
"Also displays unset and hidden config variables.": "Toont ook niet-ingestelde en verborgen configuratie-opties.",
"Always": "Altijd",
"An update is available, do you want to download it now?": "Er is een update beschikbaar; wilt u die nu ophalen?",
"An update is available, do you want to download it now?": "Er is een update beschikbaar; wil je dit nu downloaden?",
"Appearance": "Weergave",
"Application": "Applicatie",
"Apply": "Toepassen",
"Are you sure you want to renew the authorisation token?": "Ben je zeker dat je de authorisatietoken wil vernieuwen?",
"Arguments:": "Argumenten:",
"Aritim Dark": "Aritim donker",
"Attach file": "Voeg bestand toe",
@@ -61,20 +70,19 @@
"Attachment download behaviour": "Modus voor ophalen van bijlages",
"Attachments": "Bijlagen",
"Attachments that could not be downloaded": "Bijlagen die niet opgehaald konden worden",
"Attention: If you change this location, make sure you copy all your content to it before syncing, otherwise all files will be removed! See the FAQ for more details: %s": "Opgelet: als u deze locatie wijzigt, zorg er dan voor dat u al uw inhoud naar deze locatie kopieert voordat u synchroniseert, anders worden alle bestanden verwijderd! Zie de FAQ voor meer details: %s",
"Authentication was not completed (did not receive an authentication token).": "Verificatie was niet voltooid (geen verificatietoken ontvangen).",
"Attention: If you change this location, make sure you copy all your content to it before syncing, otherwise all files will be removed! See the FAQ for more details: %s": "Opgelet: als je deze locatie wijzigt, zorg er dan voor dat je al je inhoud naar deze locatie kopieert voordat je synchroniseert, anders worden alle bestanden verwijderd! Zie de FAQ voor meer details: %s",
"Authentication was not completed (did not receive an authentication token).": "Authenticatie was niet voltooid (geen authenticatietoken ontvangen).",
"Authorisation token:": "Autorisatietoken:",
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Haakjes, aanhalingstekens, etc. automatisch aanvullen",
"Automatically switch theme to match system theme": "Thema automatisch wisselen overeenkomstig het systeem-thema",
"Automatically update the application": "Update de applicatie automatisch",
"Back": "Terug",
"Bold": "Vetjes",
"Browse all plugins": "Door alle plugins bladeren",
"Bold": "Vet",
"Browse all plugins": "Plugin doorbladeren",
"Browse...": "Bladeren ...",
"Bulleted List": "Opsommingstekens",
"Cancel": "Annuleer",
"Cancelling background synchronisation... Please wait.": "Achtergrond synchronisatie wordt geannuleerd... Even geduld.",
"Cancelling background synchronisation... Please wait.": "Achtergrond-synchronisatie wordt geannuleerd... Even geduld.",
"Cancelling...": "Annuleren...",
"Cancelling... Please wait.": "Annuleren.. Even geduld.",
"Cannot access %s": "Geen toegang tot %s",
@@ -82,14 +90,19 @@
"Cannot copy note to \"%s\" notebook": "Kan notitie niet naar notitieboek \"%s\" kopiëren",
"Cannot find \"%s\".": "Kan \"%s\" niet vinden.",
"Cannot initialise synchroniser.": "Kan de synchronisatie niet starten.",
"Cannot load \"%s\" module for format \"%s\" and output \"%s\"": "Kan de module \"%s\" niet laden voor formaat \"%s\" en output \"%s\"",
"Cannot load \"%s\" module for format \"%s\" and target \"%s\"": "Kan de module \"%s\" niet laden voor formaat \"%s\" en doel \"%s\"",
"Cannot move note to \"%s\" notebook": "Kan notitie niet naar notitieboek \"%s\" verplaatsen",
"Cannot move notebook to this location": "Kan notitieboek niet naar deze locatie verplaatsen",
"Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.": "Kan token niet vernieuwen: verificatiegegevens ontbreken. De synchronisatie opnieuw starten, zou het probleem kunnen oplossen.",
"Change application layout": "Verander de layout",
"Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.": "Kan token niet vernieuwen: authenticatiegegevens ontbreken. De synchronisatie opnieuw starten, zou het probleem kunnen oplossen.",
"Cannot save %s \"%s\" because it is larger than the allowed limit (%s)": "Kan %s \"%s\" niet opslaan omdat de bestandsgrootte groter is dan de toegestane limiet (%s)",
"Cannot save %s \"%s\" because it would go over the total allowed size (%s) for this account": "Kan %s \"%s\" niet opslaan omdat het groter is dan de maximum toegestane bestandsgrootte voor dit account",
"Cannot share encrypted notebook with recipient %s because they have not enabled end-to-end encryption. They may do so from the screen Configuration > Encryption.": "Kan het versleutelde notitieblok niet delen met ontvanger %s omdat ze de end-to-end versleuteling niet hebben ingesteld. Dit kan via Configuratie > Encryptie.",
"Change application layout": "Layout veranderen",
"Change language": "Taal wijzigen",
"Characters": "Tekens",
"Characters excluding spaces": "Tekens zonder spaties",
"Check for updates...": "Kijken of er updates zijn ...",
"Check for updates...": "Controleren op updates ...",
"Check synchronisation configuration": "Verifieer de configuratie van de synchronisatie",
"Checkbox": "Selectievakje",
"Checkbox list": "Selectievakjeslijst",
@@ -131,7 +144,9 @@
"Could not connect to Joplin Server. Please check the Synchronisation options in the config screen. Full error was:\n\n%s": "Kon geen verbinding maken met de Joplin Server. Controleer de Synchronisatie opties in het configuratie scherm. Volledige fout was:\n\n%s",
"Could not export notes: %s": "Kon notities niet exporteren: %s",
"Could not install plugin: %s": "Kon plugin niet installeren: %s",
"Could not respond to the invitation. Please try again, or check with the notebook owner if they are still sharing it.\n\nThe error was: \"%s\"": "Kon niet antwoorden op de uitnodiging. Probeer opnieuw, of ga na of het notitieboek nog steeds wordt gedeeld.\n\nDe foutmelding was: \"%s\"",
"Could not upgrade master key: %s": "Kon hoofdsleutel niet upgraden: %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "Kon de deelstatus van dit notitieblok niet nagaan - annuleren. Probeer opnieuw wanneer je terug een netwerkverbinding hebt.",
"Create a notebook": "Maak nieuw notitieboek aan",
"Created": "Aangemaakt",
"created date": "datum aanmaak",
@@ -148,10 +163,14 @@
"Current version is up-to-date.": "Actuele versie is up-to-date.",
"custom order": "aangepaste rangschikking",
"Custom order": "Aangepaste rangschikking",
"Custom stylesheet for Joplin-wide app styles": "Aangepaste stijlweergave voor algemene stijl",
"Custom stylesheet for rendered Markdown": "Aangepaste stijlweergave voor gerenderde Markdown",
"Custom TLS certificates": "Aangepaste TLS-certificaten",
"Cut": "Knip",
"Dark": "Donker",
"Date format": "Datumnotatie",
"Database v%s": "Databank v%s",
"Date": "Datum",
"Date format": "Datumformaat",
"days": "dagen",
"Decrypted items: %d": "Gedecrypteerde items: %d",
"Decrypted items: %s / %s": "Gedecrypteerde items: %s / %s",
@@ -161,12 +180,14 @@
"Delete": "Verwijderen",
"Delete attachment \"%s\"?": "Bijlage \"%s\" verwijderen?",
"Delete line": "Lijn verwijderen",
"Delete local data and re-download from sync target": "Verwijder lokale gegevens en download opnieuw van synchronisatie locatie",
"Delete note \"%s\"?": "Notities \"%s\" verwijderen?",
"Delete note?": "Notitie verwijderen?",
"Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.": "Notitieboek \"%s\" verwijderen?\n\nAlle notities en sub-notitieboeken in dit notitieboek zullen ook verwijderd worden.",
"Delete notebook? All notes and sub-notebooks within this notebook will also be deleted.": "Notitieboek verwijderen? Alle notities en sub-notitieboeken in dit notitieboek zullen ook verwijderd worden.",
"Delete plugin \"%s\"?": "Plugin \"%s\" verwijderen?",
"Delete these %d notes?": "Deze notities %d verwijderen?",
"Delete this invitation? The recipient will no longer have access to this shared notebook.": "Deze uitnodiging verwijderen? De ontvanger heeft niet langer toegang tot dit gedeelde notitieblok.",
"Deleted local items: %d.": "Verwijderde lokale items: %d.",
"Deleted remote items: %d.": "Verwijderde remote items: %d.",
"Deletes the given notebook.": "Verwijdert het opgegeven notitieboek.",
@@ -175,37 +196,38 @@
"Deletes the notes without asking for confirmation.": "Verwijdert de notities zonder om bevestiging te vragen.",
"Destination format: %s": "Doelformaat: %s",
"Directory": "Map",
"Directory to synchronise with (absolute path)": "Folder om mee te synchroniseren (absolute pad)",
"Directory to synchronise with (absolute path)": "Map om mee te synchroniseren (absolute pad)",
"Disable encryption": "Schakel encryptie uit",
"Disable safe mode and restart": "Veilige modues uitschakelen en opnieuw opstarten",
"Disable Web Clipper Service": "Web Clipper Service uitschakelen",
"Disabled": "Uitgeschakeld",
"Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?": "Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?",
"Discard changes": "Verwerp wijzigingen",
"Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?": "Encryptie uitschakelen betekent dat *al* je notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil je verdergaan?",
"Discard changes": "Wijzigingen annuleren",
"Dismiss": "Verwerpen",
"Displays a geolocation URL for the note.": "Toont een geo-locatie-URL voor de notitie.",
"Displays a geolocation URL for the note.": "Geeft een geo-locatie-URL voor de notitie weer.",
"Displays only the first top <num> notes.": "Toont enkel de top <num> notities.",
"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-tnt` would display notes and to-dos.": "Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (bv. `-tt` zou alleen to-do's tonen, terwijl `-tnt` notities en to-do's zou tonen).",
"Displays summary about the notes and notebooks.": "Toont een overzicht van alle notities en notitieboeken.",
"Displays the complete information about note.": "Toont de volledige informatie van een notitie.",
"Displays the given note.": "Toont de opgegeven notitie.",
"Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.": "Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.",
"Displays usage information.": "Toont gebruiksinformatie.",
"Displays version information": "Toont versie informatie",
"Displays summary about the notes and notebooks.": "Geeft een overzicht van alle notities en notitieboeken weer.",
"Displays the complete information about note.": "Geeft de volledige informatie van een notitie weer.",
"Displays the given note.": "Geeft de opgegeven notitie weer.",
"Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.": "Geeft notities in het huidige notitieboek weer. Gebruik `ls /` om een lijst van notitieboeken weer te geven.",
"Displays usage information.": "Geeft informatie over het verbruik weer.",
"Displays version information": "Weergave versie informatie",
"Do it now": "Nu doen",
"Do not ask for confirmation.": "Vraag niet om bevestiging.",
"Download": "Ophalen",
"Download and install the relevant extension for your browser:": "Ophalen en installeren van de overeenkomstige extensie voor je browser:",
"Downloaded": "Opgehaald",
"Downloaded and decrypted": "Opgehaald en gedecrypteerd",
"Downloaded and encrypted": "Opgehaald en geëncrypteerd",
"Downloading": "Ophalen ...",
"Downloading resources...": "Bijlagen ophalen ...",
"Download": "Downloaden",
"Download and install the relevant extension for your browser:": "Downloaden en installeren van de overeenkomstige extensie voor je browser:",
"Downloaded": "Gedownload",
"Downloaded and decrypted": "Gedownload en gedecrypteerd",
"Downloaded and encrypted": "Gedownload en geëncrypteerd",
"Downloading": "Aan het downloaded ...",
"Downloading resources...": "Bijlagen downloaden ...",
"Dracula": "Dracula",
"Drop notes or files here": "Sleep notities of bestanden hier naartoe",
"Dropbox": "Dropbox",
"Dropbox Login": "Dropbox Login",
"Duplicate": "Dupliceer",
"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.": "Dupliceert de notities die voldoen aan <note> in [notitieboek]. Als er geen notitieboek is gespecifeerd, zal de notitie gedupliceerd worden in het huidige notitieboek.",
"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.": "Dupliceert de notities die voldoen aan <note> in [notitieboek]. Als er geen notitieboek is gespecifieerd, zal de notitie gedupliceerd worden in het huidige notitieboek.",
"Edit": "Bewerk",
"Edit in external editor": "Bewerken in externe editor",
"Edit note.": "Bewerk notitie.",
@@ -214,10 +236,17 @@
"Editor font": "Lettertype editor",
"Editor font family": "Lettertype editor",
"Editor font size": "Lettergrootte editor",
"Editor maximum width": "Maximum breedte editor",
"Either \"text\" or \"json\"": "Of \"text\" of \"json\"",
"Emacs": "Emacs",
"emphasised text": "gemarkeerde tekst",
"Enable": "Activeer",
"Enable ++insert++ syntax": "Activeer ++insert++ syntax",
"Enable ==mark== syntax": "Activeer ==mark== syntax",
"Enable ^sup^ syntax": "Activeer ^sup^ syntax",
"Enable abbreviation syntax": "Activeer afkorting syntax",
"Enable audio player": "Audiospeler inschakelen",
"Enable deflist syntax": "Activeer definitielijst syntax",
"Enable encryption": "Schakel encryptie in",
"Enable footnotes": "Voetnoten inschakelen",
"Enable Fountain syntax support": "Ondersteuning van Fountain syntax inschakelen",
@@ -225,11 +254,15 @@
"Enable markdown emoji": "Markdown emoji inschakelen",
"Enable math expressions": "Schakel wiskundige formules in",
"Enable Mermaid diagrams support": "Ondersteuning van Mermaid diagrammen inschakelen",
"Enable multimarkdown table extension": "Activeer multimarkdown tabel extensie",
"Enable note history": "Schakel notitiehistoriek in",
"Enable PDF viewer": "Schakel PDF weergave in",
"Enable soft breaks": "Soft breaks inschakelen",
"Enable table of contents extension": "Extensie voor inhoudstafel inschakelen",
"Enable typographer support": "Schakel ondersteuning voor typograaf in",
"Enable video player": "Schakel videospeler in",
"Enable Web Clipper Service": "Web Clipper Service inschakelen",
"Enable ~sub~ syntax": "Activeer ~sub~ syntax",
"Enabled": "Ingeschakeld",
"Encrypted": "Versleuteld",
"Encrypted items cannot be modified": "Versleutelde items kunnen niet aangepast worden",
@@ -260,6 +293,7 @@
"Fail-safe": "Beveiligd tegen falen",
"Fail-safe: Do not wipe out local data when sync target is empty (often the result of a misconfiguration or bug)": "Beveiligd tegen falen: Wis de lokale data niet wanneer de synchronisatiebestemming leeg is (vaak het resultaat van een misconfiguratie of bug)",
"Fatal error:": "Fatale fout:",
"Feature flags": "Feature vlaggen",
"Fetched items: %d/%d.": "Opgehaalde items: %d/%d.",
"Fetching resources: %d/%d": "Bijlages ophalen: %d/%d",
"File": "Bestand",
@@ -275,8 +309,10 @@
"For information on how to customise the shortcuts please visit %s": "Voor informatie over hoe de snelkoppeling aan te passen, bezoek %s",
"For more information about End-To-End Encryption (E2EE) and advice on how to enable it please check the documentation:": "Voor meer informatie over End-To-End Encryptie (E2EE) en advies over hoe u dit kunt inschakelen, gelieve de documentatie te raadplegen:",
"For the list of keyboard shortcuts and config options, type `help keymap`": "Voor de lijst van snelkoppelingen en configuratieopties, typ `help keymap`",
"Force path style": "Forceer stijl van pad",
"Forward": "Verder",
"Found: %d.": "Gevonden: %d.",
"Full changelog": "Volledige log van wijzigingen",
"General": "Algemeen",
"Generating link...": "Generatie koppeling ...",
"Get it now:": "Nu ophalen:",
@@ -286,11 +322,15 @@
"Goto Anything...": "Ga naar om het even wat ...",
"Heading": "Hoofding",
"Hide %s": "Verberg %s",
"Hide disabled keys": "Uitgeschakelde toetsen verbergen",
"Hide Joplin": "Verberg Joplin",
"Highlight": "Markeren",
"Home": "Thuis",
"Horizontal Rule": "Horizontale lijn",
"HTML Directory": "HTML Map",
"HTML File": "HTML Bestand",
"Hyperlink": "Koppeling",
"Icon": "Icoon",
"ID": "ID",
"Idle": "Inactief",
"Ignore": "Negeer",
@@ -311,6 +351,7 @@
"Indent more": "Insprong vergroten",
"Information": "Informatie",
"Inline Code": "Inline-code",
"Insert": "Invoegen",
"Insert Date Time": "Datum en tijd inlassen",
"Insert Hyperlink": "Koppeling inlassen",
"Install": "Installeren",
@@ -324,8 +365,10 @@
"Invalid option value: \"%s\". Possible values are: %s.": "Ongeldige optie: \"%s\". Geldige waarden zijn: %s.",
"Italic": "Cursief",
"Item \"%s\" could not be downloaded: %s": "Item \"%s\" kon niet opgehaald worden: %s",
"Items": "Items",
"Items that cannot be decrypted": "Items die niet gedecrypteerd kunnen worden",
"Items that cannot be synchronised": "Items die niet gesynchroniseerd kunnen worden",
"Joplin can synchronise your notes using various providers. Select one from the list below.": "Joplin kan je notities synchroniseren met verscheidene providers. Selecteer een provider van onderstaande lijst.",
"Joplin Export Directory": "Joplin Exportmap",
"Joplin Export File": "Joplin Exportbestand",
"Joplin failed to decrypt these items multiple times, possibly because they are corrupted or too large. These items will remain on the device but Joplin will no longer attempt to decrypt them.": "Joplin is er meerdere malen niet in geslaagd deze items te decrypteren, mogelijk omdat ze corrupt of te groot zijn. Deze items blijven op het apparaat staan, maar Joplin zal niet langer proberen ze te decrypteren.",
@@ -335,6 +378,7 @@
"Joplin Server URL": "Joplin Server URL",
"Joplin Web Clipper allows saving web pages and screenshots from your browser to Joplin.": "Joplin Web Clipper laat toe webpagina's en schermafbeeldingen van je browser op te slaan in Joplin.",
"Joplin website": "Joplin website",
"Joplin's own sync service. Also gives access to Joplin-specific features such as publishing notes or collaborating on notebooks with others.": "Joplins eigen synchronisatie service. Geeft ook toegang tot specifieke features zoals het publiceren van notities of samenwerken aan notitieboeken met anderen.",
"Keep note history for": "Bewaar notitiehistoriek gedurende",
"Keyboard Mode": "Toetsenbordmodus",
"Keyboard Shortcut": "Sneltoets",
@@ -352,15 +396,20 @@
"Lines": "Regels",
"Link has been copied to clipboard!": "Koppeling is gekopieerd naar klembord!",
"Links with protocol \"%s\" are not supported": "Koppelingen met protocol \"%s\" worden niet ondersteund",
"List item": "Lijst item",
"Location": "Locatie",
"Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.": "Vergrendelingsbestand is al bezet. Als u zeker bent dat er geen synchronisatie bezig is, mag u het vergrendelingsbestand verwijderen op \"%s\" en de synchronisatie hervatten.",
"Log": "Log",
"Login": "Aanmelden",
"Login below.": "Meld hieronder aan",
"Login with Dropbox": "Login with Dropbox",
"Login with OneDrive": "Log in met OneDrive",
"Logout": "Afmelden",
"Make a donation": "Doe een gift",
"Manage your plugins": "Beheer uw plugins",
"Manual": "Handmatig",
"Markdown": "Markdown",
"Markdown + Front Matter": "Markdown + Front Matter",
"Marks a to-do as done.": "Markeert een to-do als voltooid.",
"Marks a to-do as non-completed.": "Markeert een to-do als onvoltooid.",
"Markup": "Opmaak",
@@ -368,6 +417,7 @@
"Max concurrent connections": "Maximum aantal gelijktijdige connecties",
"Missing Master Keys": "Ontbrekende Hoofdsleutels",
"Missing required argument: %s": "Benodigde argumenten niet voorzien: %s",
"Mobile data - auto-sync disabled": "Mobiele datagegevens - auto-synchronisatie uitegeschakeld",
"More info": "Meer informatie",
"More information": "Meer informatie",
"More than one item match \"%s\". Please narrow down your query.": "Meer dan één item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.",
@@ -405,6 +455,7 @@
"Nord": "Nord",
"Not authentified with %s. Please provide any missing credentials.": "Niet geverifieerd voor %s. Gelieve ontbrekende referenties in te vullen.",
"Not downloaded": "Niet opgehaald",
"Not generated": "Niet gegenereerd",
"note": "notitie",
"Note": "Notitie",
"Note area growth factor": "Groeifactor notitiegrootte",
@@ -422,7 +473,6 @@
"Note: Does not work in all desktop environments.": "Opmerking: werkt niet in alle desktop-omgevingen.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Opmerking: wanneer een notitie gedeeld wordt, is ze niet langer geëncrypteerd op de server.",
"Notebook list growth factor": "Groeifactor notitieboeklijst",
"Notebook title:": "Notitieboek titel:",
"Notebook: %s": "Notitieboek: %s",
"Notebooks": "Notitieboeken",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.",
@@ -441,6 +491,7 @@
"Open": "Open",
"Open %s": "Open %s",
"Open profile directory": "Open profielmap",
"Open Sync Wizard...": "Sync Wizard openen...",
"Open...": "Openen ...",
"Operation cancelled": "Actie geannuleerd",
"Options": "Opties",
@@ -456,8 +507,10 @@
"PDF File": "PDF Bestand",
"Permission needed": "Toestemming vereist",
"Permission to use camera": "Toestemming camera te gebruiken",
"Please click on \"%s\" to proceed": "Gelieve op \"%s\" te klikken om verder te gaan",
"Please confirm that you would like to re-encrypt your complete database.": "Gelieve te bevestigen dat u uw hele databank opnieuw wil encrypteren.",
"Please enter your password in the master key list below before upgrading the key.": "Gelieve uw paswoord in te geven in de lijst hoofdsleutels hieronder, alvorens de sleutel te upgraden.",
"Please note that if it is a large notebook, it may take a few minutes for all the notes to show up on the recipient's device.": "Gelieve er rekening mee te houden dat bij grote notitieboeken het enkele minuten kan duren vooraleer de notities op het apparaat van de ontvanger verschijnen.",
"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.": "Open de volgende URL in uw browser om de toepassing te verifiëren. De toepassing zal een map aanmaken in \"Apps/Joplin\" en zal enkel in déze map bestanden lezen en schrijven. Het zal geen toegang hebben tot bestanden buiten deze map, noch tot andere persoonlijke gegevens. Er worden geen gegevens gedeeld met derden.",
"Please select a notebook first.": "Selecteer eerst een notitieboek.",
"Please select the note or notebook to be deleted first.": "Selecteer eerst het notitieboek of de notitie om te verwijderen.",
@@ -485,12 +538,22 @@
"Privacy Policy": "Privacybeleid",
"Profile Version: %s": "Profielversie: %s.",
"Properties": "Eigenschappen",
"Public-private key pair:": "Publiek-private sleutelpaar",
"Publish Notes": "Notities Publiceren",
"Publish notes to the internet": "Notities publiceren op het Internet",
"Quit": "Stop",
"Re-encrypt data": "Herencrypteer de gegevens",
"Re-encryption": "Her-encryptie",
"Re-upload local data to sync target": "Lokale gegevens opnieuw uploaden naar synchronisatie doel",
"Read more about it": "Meer hierover",
"Read time: %s min": "Leestijd: %s min",
"Recipient has accepted the invitation": "Ontvanger heeft de uitnodiging aanvaard",
"Recipient has not yet accepted the invitation": "Ontvanger heeft de uitnodiging nog niet aanvaard",
"Recipient has rejected the invitation": "Ontvanger heeft de uitnodiging verworpen",
"Recipients:": "Ontvangers:",
"Redo": "Opnieuw",
"Refresh": "Vernieuwen",
"Reject": "Verwerpen",
"Remove": "Verwijderen",
"Remove tag \"%s\" from all notes?": "De tag \"%s\" verwijderen van alle notities?",
"Remove this search from the sidebar?": "Dit item verwijderen van de zijbalk?",
@@ -498,6 +561,7 @@
"Rename notebook:": "Hernoem notitieboek:",
"Rename tag:": "Hernoem tag:",
"Renames the given <item> (note or notebook) to <name>.": "Hernoemt het gegeven <item> (notitie of notitieboek) naar <name>.",
"Renew token": "Token vernieuwen",
"Resources: %d.": "Bijlagen: %d.",
"Restart and upgrade": "Herstarten en upgraden",
"Restart now": "Nu herstarten",
@@ -509,6 +573,10 @@
"Reverse sort order": "Draai rangschikking om",
"Reverses the sorting order.": "Draait de rangschikking om.",
"Revision: %s (%s)": "Revisie: %s (%s)",
"Runs the commands contained in the text file. There should be one command per line.": "Voert de commandos in het tekstbestand uit. Er zou een commando per lijn moeten zijn.",
"S3": "S3",
"S3 region": "S3 regio",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "Veilige modus is actief. Renderen van notities en alle plugins zijn tijdelijk gedeactiveerd.",
"Save": "Opslaan",
"Save alarm": "Melding opslaan",
"Save as...": "Opslaan als ...",
@@ -528,16 +596,19 @@
"Server is running on port %d": "Server is actief op poort %d",
"Set alarm": "Stel melding in",
"Set alarm:": "Stel melding in:",
"Set it to 0 to make it take the complete available space. Recommended width is 600.": "Zet dit op 0 om de volledige ruimte te benutten. Aanbevolen breedte is 600",
"Set the password": "Stel het wachtwoord in",
"Sets the property <name> of the given <note> to the given [value]. Possible properties are:\n\n%s": "Zet de eigenschap <name> van de opgegeven <note> naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s",
"Share": "Delen",
"Shortcuts are not available in CLI mode.": "Snelkoppelingen zijn niet beschikbaar in command line modus.",
"Show Advanced Settings": "Toon geavanceerde opties",
"Show all": "Alles tonen",
"Show completed to-dos": "Toon voltooide to-do's",
"Show note counts": "Toon aantal notities",
"Show tray icon": "Toon tray icon",
"Sidebar": "Zijbalk",
"Size": "Grootte",
"Skip this version": "Deze versie overslaan",
"Skipped items: %d (use --retry-failed-items to retry decrypting them)": "Overgeslagen items: %d (gebruik --retry-failed-items om opnieuw te proberen)",
"Skipped: %d.": "Overgeslagen: %d.",
"Solarised Dark": "Gesolariseerd Donker",
@@ -568,8 +639,12 @@
"Step 2: Install the extension": "Step 2: installeer de extensie",
"Stop": "Stop",
"Stop external editing": "Beëindig externe bijwerking",
"Strikethrough": "Doorstrepen",
"strong text": "benadrukte text",
"Submit": "Verzenden",
"Subscript": "Subschrift",
"Success! Synchronisation configuration appears to be correct.": "Succes! De configuratie van de synchronisatie is blijkbaar correct.",
"Superscript": "Superschrift",
"Swap line down": "Een regel omlaag",
"Swap line up": "Een regel omhoog",
"Switch between note and to-do type": "Wissel tussen notitie en to-do",
@@ -589,13 +664,16 @@
"Synchronisation target": "Synchronisatiedoel",
"Synchronisation target: %s (%s)": "Synchronisatiedoel: %s (%s)",
"Synchronise": "Synchroniseren",
"Synchronise only over WiFi connection": "Alleen synchroniseren over een WiFi-verbinding",
"Synchronises with remote storage.": "Synchroniseert met externe opslag.",
"Synchronising...": "Synchroniseren ...",
"Tabloid": "Tabloid",
"Tagged: %d.": "Getagd: %d.",
"Tags": "Tags",
"Take photo": "Maak en foto",
"Tasks": "Taken",
"Text editor command": "Teksteditorcommando",
"Thank you! Your Joplin Cloud account is now setup and ready to use.": "Bedankt! Je Joplin Cloud account is geconfigureerd en klaar voor gebruik.",
"The app is now going to close. Please relaunch it to complete the process.": "De app gaat nu sluiten. Gelieve ze te herstarten om het proces te voltooien.",
"The application has been authorised - you may now close this browser tab.": "De applicatie werd geautoriseerd - U kan deze tab sluiten.",
"The application has been authorised!": "De applicatie is succesvol geautoriseerd!",
@@ -610,15 +688,18 @@
"The factor property sets how the item will grow or shrink to fit the available space in its container with respect to the other items. Thus an item with a factor of 2 will take twice as much space as an item with a factor of 1.Restart app to see changes.": "De factor-eigenschap bepaalt hoe het item zal groeien of krimpen om de beschikbare ruimte in zijn container te passen ten opzichte van de andere items. Zo zal een item met factor 2 twee keer zoveel ruimte innemen als een item met factor 1. Herstart de app om de veranderingen te zien.",
"The following attachments are being watched for changes:": "Van volgende bijlagen wordt het wijzigen opgevolgd:",
"The Joplin mobile app does not currently support this type of link: %s": "De mobiele Joplin app ondersteunt momenteel dit type koppeling niet: %s",
"The Joplin team has vetted this plugin and it meets our standards for security and performance.": "Het Joplin-team heeft deze plugin geaudit en het voldoet aan de standaarden voor performantie en veiligheid.",
"The master key has been upgraded successfully!": "De hoofdsleutel is met succes geüpgrade!",
"The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.": "De hoofdsleutels met deze ID's worden gebruikt om sommige van uw items te versleutelen, maar de toepassing heeft daar momenteel geen toegang toe. Het is waarschijnlijk dat ze uiteindelijk via synchronisatie zullen worden opgehaald.",
"The note \"%s\" has been successfully restored to the notebook \"%s\".": "De notitie \"%s\" werd met succes teruggezet naar het notitieboek \"%s\".",
"The notebook could not be saved: %s": "Het notitieboek kon niet opgeslagen worden: %s",
"The notes have been imported: %s": "De notities zijn geïmporteerd: %s",
"The possible commands are:": "Mogelijke commando's zijn:",
"The recipient could not be removed from the list. Please try again.\n\nThe error was: \"%s\"": "De ontvanger kon niet verwijderd worden van de lijst. Probeer opnieuw.\n\nDe foutmelding was: \"%s\"",
"The sync target needs to be upgraded before Joplin can sync. The operation may take a few minutes to complete and the app needs to be restarted. To proceed please click on the link.": "Het synchronisatiedoel moet worden geüpgraded voordat Joplin kan synchroniseren. Het kan een paar minuten duren voordat deze operatie voltooid is en de app moet dan opnieuw worden opgestart. Klik op de koppeling om verder te gaan.",
"The tag \"%s\" already exists. Please choose a different name.": "De tag \"%s\" bestaat al. Kies een andere naam.",
"The target to synchronise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).": "Het doel waarnaartoe gesynchroniseerd wordt. Elk synchronisatiedoel kan bijkomende parameters hebben die benoemd worden als 'sync.NUM.NAME' (hieronder gedocumenteerd).",
"The Web Clipper needs your authorisation to access your data.": "De Web Clipper plugin heeft jouw authorisatie nodig om je gegevens te raadplegen.",
"The web clipper service is enabled and set to auto-start.": "De web clipper service is ingeschakeld en ingesteld als auto-start.",
"The web clipper service is not enabled.": "De web clipper service is niet ingeschakeld.",
"Theme": "Thema",
@@ -627,6 +708,7 @@
"There is no data to export.": "Er zijn geen gegevens om te exporteren.",
"There was a [conflict](%s) on the attachment below.\n\n%s": "Er was een [conflict] (%s) voor onderstaande bijlage.\n\n%s",
"There was an error downloading this attachment:": "Er was een fout bij het ophalen van deze bijlage:",
"There was an error setting up your Joplin Cloud account. Please verify your email and password and try again. Error was:\n\n%s": "Er is een probleem opgetreden bij het configureren van je Joplin Cloud gebruiker. Gelievee je e-mailadres en wachtwoord te controleren en opnieuw te proberen. Fout was:\n\n%s",
"These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).": "Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).",
"These plugins enhance the Markdown renderer with additional features. Please note that, while these features might be useful, they are not standard Markdown and thus most of them will only work in Joplin. Additionally, some of them are *incompatible* with the WYSIWYG editor. If you open a note that uses one of these plugins in that editor, you will lose the plugin formatting. It is indicated below which plugins are compatible or not with the WYSIWYG editor.": "Deze plugins verbeteren de Markdown renderer met extra mogelijkheden. Merk op dat, hoewel deze functies nuttig kunnen zijn, ze geen standaard Markdown zijn en dat de meeste dus alleen in Joplin zullen werken. Bovendien zijn sommige *incompatibel* met de WYSIWYG editor. Als je een nota opent die een van deze plugins gebruikt in die editor, zal je de opmaak van de plugins verliezen. Hieronder wordt aangegeven welke plugins al dan niet compatibel zijn met de WYSIWYG editor.",
"This attachment is not downloaded or not decrypted yet": "Deze bijlage is nog niet opgehaald of nog niet gedecrypteerd",
@@ -641,6 +723,7 @@
"This service allows the browser extension to communicate with Joplin. When enabling it your firewall may ask you to give permission to Joplin to listen to a particular port.": "Deze dienst laat de browserextensie toe om te communiceren met Joplin. Wanneer u deze inschakelt, kan uw firewall u vragen om Joplin toestemming te geven om op een bepaalde poort te luisteren.",
"This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronised, thus reducing the number of conflicts.": "Dit laat Joplin toe in de achtergrond actief te blijven. Dit is aanbevolen omdat zo uw notities voortdurend gesynchroniseerd worden en het aantal conflicten verminderd wordt.",
"This will open a new screen. Save your current changes?": "Dit opent een nieuw venster. Lopende wijzigingen opslaan?",
"This will remove the notebook from your collection and you will no longer have access to its content. Do you wish to continue?": "Dit zal de notitieboek van je verzameling verwijderen. Je zal niet langer toegang hebben tot deze inhoud. Wil je verder gaan?",
"Time format": "Tijdsnotatie",
"title": "titel",
"Title": "Titel",
@@ -665,6 +748,7 @@
"Token has been copied to the clipboard!": "Token is gekopieerd naar het klembord!",
"Tools": "Hulpmiddelen",
"Total: %d/%d": "Totaal: %d/%d",
"Try again": "Probeer opnieuw",
"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.": "Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.",
"Type `joplin help` for usage information.": "Typ `joplin help` voor gebruiksinformatie.",
"Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.": "Typ de titel van een notitie of een deel van de inhoud om er naartoe te springen. Of typ # gevolgd door de naam van een tag, of @ gevolgd door de naam van een notitieboek. Of typ : om naar commando's te zoeken.",
@@ -674,6 +758,7 @@
"Undo": "Ongedaan maken",
"Unknown flag: %s": "Onbekende optie: %s",
"Unknown item type downloaded - please upgrade Joplin to the latest version": "Onbekend item type opgehaald - gelieve Joplin te upgraden naar de recentste versie",
"Unshare this notebook? The recipients will no longer have access to its content.": "Dit notitieboek niet meer delen? De ontvangers zullen geen toegang meer hebben tot de inhoud.",
"Unsupported image type: %s": "Afbeeldingstype %s wordt niet ondersteund",
"Unsupported link or message: %s": "Niet-ondersteunde koppeling of bericht: %s",
"Untitled": "Untitled",
@@ -694,6 +779,9 @@
"Use the arrows and page up/down to scroll the lists and text areas (including this console).": "Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook in deze console).",
"Use the arrows to move the layout items. Press \"Escape\" to exit.": "Gebruik de pijlen om de schermonderdelen te verplaatsen. Druk op \"escape\" om te eindigen.",
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Gebruik dit om de zoekindex opnieuw op te bouwen als er een probleem is met het zoeken. Dit kan lang duren, afhankelijk van het aantal notities.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Wordt gebruikt voor de voornaamste tekst in de markdown bewerken. Wanneer dit niet gevonden wordt, zal een proportioneel (variabele breedte) lettertype gebruikt worden.",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "Wordt gebruikt waar een lettertype met vaste breedte nodig is om de tekst leesbaar uit te lijnen (e.g. tabellen, checkboxes, code). Indien niet gevonden zal er een algemeen monoscape lettertype met vaste breedte worden gebruikt.",
"Users": "Gebruikers",
"View": "Weergave",
"View on map": "Toon op de kaart",
"View them now": "Bekijk ze nu",
@@ -722,6 +810,8 @@
"You may use the tool below to re-encrypt your data, for example if you know that some of your notes are encrypted with an obsolete encryption method.": "U kunt het onderstaande hulpmiddel gebruiken om uw gegevens opnieuw te encrypteren, bijvoorbeeld als u weet dat sommige van uw notities geëncrypteerd zijn met een verouderde encryptiemethode.",
"Your choice: ": "Uw keuze: ",
"Your data is going to be re-encrypted and synced again.": "Uw data zullen opnieuw geëncrypteerd en gesynchroniseerd worden.",
"Your master password is needed to decrypt some of your data.": "Je masterwachtwoord is nodig om een deel van je gegevens te decrypteren.",
"Your password is needed to decrypt some of your data. Type `:e2ee decrypt` to set it.": "Je wachtwoord is nodig om een deel van je gegevens te decrypteren. Typ :e2ee decrypt` om je wachtwoord in te stellen.",
"Your permission to use your camera is required.": "Uw toestemming om de camera te gebruiken is vereist.",
"Your version: %s": "Uw versie: %s",
"Zoom In": "Inzoomen",

View File

@@ -72,7 +72,6 @@
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Auto-paar accolades, haakjes, citaten, enz.",
"Automatically switch theme to match system theme": "Automatisch omschakelen thema op basis van systeemthema",
"Automatically update the application": "Applicatie automatisch bijwerken",
"Back": "Terug",
"Bold": "Vetgedrukt",
"Browse all plugins": "Blader door alle plugins",
@@ -449,7 +448,6 @@
"Note: Does not work in all desktop environments.": "Let op: dit werkt niet in alle desktop-omgevingen.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Let op: wanneer een notitie wordt gedeeld, zal deze niet langer versleuteld zijn.",
"Notebook list growth factor": "Notitieboeklijst groeifactor",
"Notebook title:": "Titel van notitieboek:",
"Notebook: %s": "Notitieboek: %s",
"Notebooks": "Notitieboeken",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notitieboeken mogen niet \"%s\" heten; dit is een gereserveerde titel.",

View File

@@ -71,7 +71,6 @@
"Auto": "Automatyczny",
"Auto-pair braces, parenthesis, quotations, etc.": "Zamykaj klamry, nawiasy, cudzysłowy itd.",
"Automatically switch theme to match system theme": "Automatycznie dopasuj motyw do motywu systemowego",
"Automatically update the application": "Automatycznie aktualizuj aplikację",
"Back": "Cofnij",
"Bold": "Pogrubienie",
"Browse all plugins": "Przeglądaj wszystkie wtyczki",
@@ -338,7 +337,7 @@
"Insert Hyperlink": "Wstaw Hyperlink",
"Install": "Zainstaluj",
"Install from file": "Zainstaluj z pliku",
"Installed": "Zainstwalony",
"Installed": "Zainstalowany",
"Installing...": "Instalowanie.",
"Invalid": "Nieprawidłowy",
"Invalid %s: %s.": "Nieprawidłowy %s: %s.",
@@ -446,7 +445,6 @@
"Note: Does not work in all desktop environments.": "Informacja: Nie działa na wszystkich środowiskach sprzętowych.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Uwaga: Po udostępnieniu notatka nie będzie już szyfrowana na serwerze.",
"Notebook list growth factor": "Czynnik rośnięcia listy notatników",
"Notebook title:": "Tytuł notatnika:",
"Notebook: %s": "Notatnik: %s",
"Notebooks": "Notatniki",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notatniki nie mogą być nazwane \"%s\", ponieważ jest to nazwa zastrzeżona.",

View File

@@ -79,7 +79,6 @@
"Auto": "Automático",
"Auto-pair braces, parenthesis, quotations, etc.": "Parear automaticamente chaves, parênteses, aspas etc.",
"Automatically switch theme to match system theme": "Automaticamente alterar o tema para o tema do sistema",
"Automatically update the application": "Atualizar automaticamente o aplicativo",
"Back": "Voltar",
"Bold": "Negrito",
"Browse all plugins": "Procurar todos os plugins",
@@ -490,7 +489,6 @@
"Note: Does not work in all desktop environments.": "Nota: não funciona em todos os ambientes de desktop.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Nota: Quando uma nota é compartilhada, não é mais criptografada no servidor.",
"Notebook list growth factor": "Fator de crescimento do bloco de notas",
"Notebook title:": "Título do caderno:",
"Notebook: %s": "Caderno: %s",
"Notebooks": "Cadernos",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.",

View File

@@ -71,7 +71,6 @@
"Auto": "Automático",
"Auto-pair braces, parenthesis, quotations, etc.": "Emparelhar automaticamente parênteses curvos, parênteses, citações, etc.",
"Automatically switch theme to match system theme": "Mudar automaticamente o tema para combinar com o tema do sistema",
"Automatically update the application": "Atualizar a aplicação automaticamente",
"Back": "Atrás",
"Bold": "Negrito",
"Browse all plugins": "Procurar todos os plugins",
@@ -446,7 +445,6 @@
"Note: Does not work in all desktop environments.": "Nota: Não funciona em todos os ambientes de trabalho.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Nota: Quando uma nota é partilhada, a mesma deixará de estar encriptada no servidor.",
"Notebook list growth factor": "Fator de crescimento do caderno",
"Notebook title:": "Título do caderno:",
"Notebook: %s": "Caderno: %s",
"Notebooks": "Cadernos",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Cadernos não podem ser nomeados \"%s\", dado que é um título reservado.",

View File

@@ -47,7 +47,6 @@
"Authorisation token:": "Token autorizare:",
"Auto": "Auto",
"Automatically switch theme to match system theme": "Comutați automat tema pentru a se potrivi cu tema sistemului",
"Automatically update the application": "Actualizați automat aplicația",
"Back": "Înapoi",
"Bold": "Bold",
"Browse...": "Căutare...",
@@ -303,7 +302,6 @@
"Note properties": "Titlul caietului de notițe",
"Note title": "Titlul caietului de notițe",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Notă: Când o notă este partajată, aceasta nu va mai fi criptată pe server.",
"Notebook title:": "Titlul agendei:",
"Notebooks": "Caiete de notițe",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Agendele nu pot fi denumite \"%s\", care au un titlu rezervat.",
"Notes can only be created within a notebook.": "Notițele pot fi create numai în cadrul unui caiet de notițe.",

View File

@@ -79,7 +79,6 @@
"Auto": "Автоматически",
"Auto-pair braces, parenthesis, quotations, etc.": "Автоматическое закрытие скобок, кавычек и т. д.",
"Automatically switch theme to match system theme": "Автоматическая смена темы в соответствии с настройками системы",
"Automatically update the application": "Автоматически обновлять приложение",
"Back": "Назад",
"Bold": "Полужирный",
"Browse all plugins": "Просмотр всех плагинов",
@@ -489,7 +488,6 @@
"Note: Does not work in all desktop environments.": "Примечание: работает не во всех окружениях рабочего стола.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Примечание: если вы поделились заметкой - она будет храниться на сервере в незашифрованном виде.",
"Notebook list growth factor": "Фактор роста списка блокнотов",
"Notebook title:": "Название блокнота:",
"Notebook: %s": "Блокнот: %s",
"Notebooks": "Блокноты",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Блокнот не может быть назван \"%s\", так как это зарезервированное название.",

View File

@@ -79,7 +79,6 @@
"Auto": "Avtomatsko",
"Auto-pair braces, parenthesis, quotations, etc.": "Avtomatsko zapri oglate oklepaje, oklepaje, narekovaje, itd.",
"Automatically switch theme to match system theme": "Avtomatsko zamenjaj teme glede na sistemski način teme",
"Automatically update the application": "Samodejno posodobi aplikacijo",
"Back": "Nazaj",
"Bold": "Krepko",
"Browse all plugins": "Brskaj med vsemi dodatki",
@@ -488,7 +487,6 @@
"Note: Does not work in all desktop environments.": "Beležka: Ne deluje v vseh namiznih okoljih.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Beležka: Ko je bila beležka deljena, ne bo več kodirana na strežniku.",
"Notebook list growth factor": "Rastoči faktor seznamov zvezkov",
"Notebook title:": "Naslov zvezka:",
"Notebook: %s": "Zvezki: %s",
"Notebooks": "Zvezki",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Zvezek ne more biti imenovan \"%s\", ker je to rezervirano ime.",

View File

@@ -66,7 +66,6 @@
"Auto": "Аутоматски",
"Auto-pair braces, parenthesis, quotations, etc.": "Ауто-упари заграде, цитате, итд.",
"Automatically switch theme to match system theme": "Аутоматски пребаци тему на подударање са системском темом",
"Automatically update the application": "Аутоматски ажурирај апликацију",
"Back": "Назад",
"Bold": "Подебљај",
"Browse all plugins": "Прегледајте све додатке",
@@ -404,7 +403,6 @@
"Note: Does not work in all desktop environments.": "Напомена: Ово не ради добро у свим десктоп окружењима.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Напомена: Када се белешка дели, она више неће бити шифрована на серверу.",
"Notebook list growth factor": "Фактор раста бележнице",
"Notebook title:": "Назив бележнице:",
"Notebooks": "Бележнице",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Бележнице не могу бити именоване \"%s\",јер је то име резервисано.",
"Notes and settings are stored in: %s": "Белешке и подешавања су складиштени у: %s",

View File

@@ -31,7 +31,7 @@
"(wysiwyg: %s)": "(wysiwyg: %s)",
"- Camera: to allow taking a picture and attaching it to a note.": "- Kamera: för att tillåta att du tar en bild och bifogar den till en anteckning.",
"- Location: to allow attaching geo-location information to a note.": "- Plats: för att tillåta att information om geografisk plats läggs till i en anteckning.",
"- Storage: to allow attaching files to notes and to enable filesystem synchronisation.": "- Lagring: för att tillåta att du bifoga filer till anteckningar och för att aktivera filsystemsynkronisering.",
"- Storage: to allow attaching files to notes and to enable filesystem synchronisation.": "- Lagring: för att tillåta att du bifogar filer till anteckningar och för att aktivera filsystemsynkronisering.",
"<tag-command> can be \"add\", \"remove\", \"list\", or \"notetags\" to assign or remove [tag] from [note], to list notes associated with [tag], or to list tags associated with [note]. The command `tag list` can be used to list all the tags (use -l for long option).": "<tag-command> kan vara \"add\", \"remove\", \"list\" eller \"notetags\" för att tilldela eller ta bort [tag] från [note], eller för att lista anteckningarna som är associerade med [tag]. Kommandot `tag list` kan användas för att lista alla taggar (använd -l för långt alternativ).",
"<todo-command> can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.": "<todo-command> kan antingen vara \"toggle\" eller \"clear\". Använd \"toggle\" för att växla mellan givna uppgifter mellan slutförda och inte slutförda tillstånd (Om målet är en vanlig anteckning kommer den att konverteras till en att-göra). Använd \"clear\" för att konvertera uppgiften att-göra tillbaka till en vanlig anteckning.",
"A3": "A3",
@@ -59,7 +59,7 @@
"Always": "Alltid",
"An update is available, do you want to download it now?": "En uppdatering är tillgänglig, vill du hämta den nu?",
"Appearance": "Utseende",
"Application": "Avslutar programmet",
"Application": "Program",
"Apply": "Tillämpa",
"Are you sure you want to renew the authorisation token?": "Är du säker på att du vill förnya auktoriseringstoken?",
"Arguments:": "Argument:",
@@ -79,7 +79,6 @@
"Auto": "Automatiskt",
"Auto-pair braces, parenthesis, quotations, etc.": "Para automatiskt hakparenteser, paranteser, situationstecken, etc.",
"Automatically switch theme to match system theme": "Växla automatiskt tema för att matcha systemtema",
"Automatically update the application": "Uppdatera programmet automatiskt",
"Back": "Tillbaka",
"Bold": "Fet",
"Browse all plugins": "Bläddra bland alla insticksmoduler",
@@ -102,7 +101,7 @@
"Cannot save %s \"%s\" because it is larger than the allowed limit (%s)": "Det går inte att spara %s \"%s\" eftersom den är större än den tillåtna gränsen (%s)",
"Cannot save %s \"%s\" because it would go over the total allowed size (%s) for this account": "Det går inte att spara%s \"%s\" eftersom det skulle gå över den totala tillåtna storleken (%s) för det här kontot",
"Cannot share encrypted notebook with recipient %s because they have not enabled end-to-end encryption. They may do so from the screen Configuration > Encryption.": "Det går inte att dela krypterad anteckningsbok med mottagaren %s eftersom de inte har aktiverat ände-till-ände-kryptering. De kan göra det från skärmen Inställningar > Kryptering.",
"Change application layout": "Ändra applikationslayout",
"Change application layout": "Ändra programmets layout",
"Change language": "Ändra språk",
"Characters": "Tecken",
"Characters excluding spaces": "Tecken exklusive mellanslag",
@@ -158,6 +157,7 @@
"Could not install plugin: %s": "Det gick inte att installera insticksmodul: %s",
"Could not respond to the invitation. Please try again, or check with the notebook owner if they are still sharing it.\n\nThe error was: \"%s\"": "Det gick inte att svara på inbjudan. Vänligen försök igen, eller kontrollera med den anteckningsboksägaren om de fortfarande delar den.\n\nFelet var: \"%s\"",
"Could not upgrade master key: %s": "Lyckades inte uppgradera huvudnyckel: %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "Det gick inte att verifiera delningsstatusen för den här anteckningsboken - avbryter. Vänligen försök igen när du är ansluten till internet.",
"Create a notebook": "Skapar en anteckningsbok",
"Created": "Skapad",
"created date": "skapat datum",
@@ -192,7 +192,7 @@
"Delete": "Ta bort",
"Delete attachment \"%s\"?": "Ta bort bilagan \"%s\"?",
"Delete line": "Ta bort rad",
"Delete local data and re-download from sync target": "Ta bort lokal data och hämta igen från synkroniseringsmålet",
"Delete local data and re-download from sync target": "Ta bort lokala data och hämta igen från synkroniseringsmålet",
"Delete note \"%s\"?": "Ta bort anteckningen \"%s\"?",
"Delete note?": "Ta bort anteckning?",
"Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.": "Ta bort anteckningsboken\"%s\"?\n\nAlla anteckningar och delanteckningsböcker i den här anteckningsboken tas också bort.",
@@ -306,14 +306,14 @@
"Export all": "Exportera alla",
"Export debug report": "Exportera felsökningsrapport",
"Export Debug Report": "Exportera felsökningsrapport",
"Export profile": "Exportera profilen",
"Export profile": "Exportera profil",
"Exporting profile...": "Exporterar profil...",
"Exporting to \"%s\" as \"%s\" format. Please wait...": "Exportera till \"%s\" som \"%s\" format. Vänta...",
"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.": "Exporterar Joplin-data till den angivna sökvägen. Som standard exporterar den hela databasen inklusive anteckningsböcker, anteckningar, taggar och resurser.",
"Exports only the given note.": "Exporterar endast den angivna anteckningen.",
"Exports only the given notebook.": "Exporterar endast den angivna anteckningsboken.",
"Fail-safe": "Felsäker",
"Fail-safe: Do not wipe out local data when sync target is empty (often the result of a misconfiguration or bug)": "Felsäkert: Rensa inte lokal data när synkroniseringsmålet är tomt (beror oftast på felkonfigurering eller en bugg)",
"Fail-safe: Do not wipe out local data when sync target is empty (often the result of a misconfiguration or bug)": "Felsäkert: Rensa inte lokala data när synkroniseringsmålet är tomt (beror oftast på felkonfigurering eller en bugg)",
"Fatal error:": "Allvarligt fel:",
"Feature flags": "Funktionsflaggor",
"Fetched items: %d/%d.": "Hämtade objekt: %d/%d.",
@@ -331,6 +331,7 @@
"For information on how to customise the shortcuts please visit %s": "För information om hur du anpassar snabbkommandon, besök %s",
"For more information about End-To-End Encryption (E2EE) and advice on how to enable it please check the documentation:": "För mer information om End-to-End Encryption (E2EE) och råd om hur du aktiverar det finns i dokumentationen:",
"For the list of keyboard shortcuts and config options, type `help keymap`": "För listan över snabbkommandon och konfigurationsinställningar, skriv `help keymap`",
"Force path style": "Tvinga sökvägsstil",
"Forward": "Framåt",
"Found: %d.": "Hittad: %d.",
"FTS enabled: %d": "FTS aktiverat: %d",
@@ -345,10 +346,12 @@
"Goto Anything...": "Gå till något...",
"Grant authorisation": "Bevilja auktorisation",
"Heading": "Rubrik",
"Help": "Hjälp",
"Hide %s": "Dölj %s",
"Hide disabled keys": "Dölj inaktiverade nycklar",
"Hide Joplin": "Dölj Joplin",
"Highlight": "Markera",
"Home": "Hem",
"Horizontal Rule": "Horisontell regel",
"HTML Directory": "HTML-mapp",
"HTML File": "HTML-fil",
@@ -367,7 +370,7 @@
"In order to associate a geo-location with the note, the app needs your permission to access your location.\n\nYou may turn off this option at any time in the Configuration screen.": "För att associera en geografisk plats med anteckningen behöver appen ditt tillstånd för att komma åt din plats.\n\nDu kan stänga av det här alternativet när som helst från konfigurationsskärmen.",
"In order to do so, your entire data set will have to be encrypted and synchronised, so it is best to run it overnight.\n\nTo start, please follow these instructions:\n\n1. Synchronise all your devices.\n2. Click \"%s\".\n3. Let it run to completion. While it runs, avoid changing any note on your other devices, to avoid conflicts.\n4. Once sync is done on this device, sync all your other devices and let it run to completion.\n\nImportant: you only need to run this ONCE on one device.": "För att göra detta måste all din datauppsättning vara krypterad och synkroniserad, det är bäst köra processen över natten.\n\nFör att starta processen, följ dessa instruktioner:\n\n1. Synkronisera alla dina enheter.\\n\n2. Klicka \\\"%s\\\"\n3. Låt den köra färdigt. Medan den kör, undvik att göra ändringar i några anteckningar på dina andra enheter för att undvika konflikter.\n4. När synkroniseringen är färdig på denna enhet, synkronisera alla dina andra enheter och låt processen köra färdigt.\n\nViktigt: du behöver bara köra denna process EN gång på en enhet.",
"In order to use file system synchronisation your permission to write to external storage is required.": "För att kunna använda filsystemssynkronisering krävs ditt tillstånd att skriva till extern lagring.",
"In order to use the web clipper, you need to do the following:": "För att kunna använda web Clipper måste du göra följande:",
"In order to use the web clipper, you need to do the following:": "För att kunna använda Web Clipper måste du göra följande:",
"In progress": "Pågår",
"In: %s": "I: %s",
"Indent less": "Mindre indrag",
@@ -386,6 +389,7 @@
"Invalid answer: %s": "Ogiltigt svar: %s",
"Invalid command: \"%s\"": "Ogiltigt kommando: \"%s\"",
"Invalid option value: \"%s\". Possible values are: %s.": "Ogiltigt inställningsvärde: \"%s\". Möjliga värden är: %s.",
"Invalid password": "Ogiltigt lösenord",
"Italic": "Kursiv",
"Item \"%s\" could not be downloaded: %s": "Objektet \"%s\" kunde inte hämtas: %s",
"Items that cannot be decrypted": "Objekt som inte kan dekrypteras",
@@ -433,6 +437,7 @@
"Login below.": "Logga in nedan.",
"Login with Dropbox": "Logga in med Dropbox",
"Login with OneDrive": "Logga in med OneDrive",
"Logout": "Logga ut",
"Make a donation": "Gör en donation",
"Manage master password": "Hantera huvudlösenord",
"Manage master password...": "Hantera huvudlösenord...",
@@ -506,11 +511,12 @@
"Note&book": "Antecknings&bok",
"Note: Does not work in all desktop environments.": "Obs: Fungerar inte i alla skrivbordsmiljöer.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Notera: När en anteckning delas kan den inte längre krypteras på servern.",
"Notebook": "Anteckningsbok",
"Notebook list growth factor": "Anteckningsbokens tillväxtfaktor",
"Notebook title:": "Titel på anteckningsbok:",
"Notebook: %s": "Anteckningsbok: %s",
"Notebooks": "Anteckningsböcker",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Anteckningsböcker kan inte namnges \"%s\", vilket är en reserverad titel.",
"Notes": "Anteckningar",
"Notes and settings are stored in: %s": "Anteckningar och inställningar lagras i: %s",
"Notes can only be created within a notebook.": "Anteckningar kan bara skapas i en anteckningsbok.",
"Numbered List": "Numrerad lista",
@@ -581,7 +587,7 @@
"Quit": "Avsluta",
"Re-encrypt data": "Kryptera data igen",
"Re-encryption": "Omkryptering",
"Re-upload local data to sync target": "Ladda upp lokal data igen för synkroniseringsmålet",
"Re-upload local data to sync target": "Ladda upp lokala data igen till synkroniseringsmålet",
"Read more about it": "Läs mer om det",
"Read time: %s min": "Lästid: %s min",
"Recipient has accepted the invitation": "Mottagaren har accepterat inbjudan",
@@ -612,6 +618,11 @@
"Reverses the sorting order.": "Omvänder sorteringsordningen.",
"Revision: %s (%s)": "Revision: %s (%s)",
"Runs the commands contained in the text file. There should be one command per line.": "Kör kommandona i textfilen. Det ska finnas ett kommando per rad.",
"S3": "S3",
"S3 access key": "S3 åtkomstnyckel",
"S3 bucket": "S3 bucket",
"S3 secret key": "S3 hemlig nyckel",
"S3 URL": "S3 URL",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "Säkert läge är för närvarande aktivt. Anteckningsrendering och alla insticksmoduler är tillfälligt inaktiverade.",
"Save": "Spara",
"Save alarm": "Spara alarm",
@@ -646,6 +657,7 @@
"Show completed to-dos": "Visa slutförda att-göra",
"Show disabled keys": "Visa inaktiverade nycklar",
"Show note counts": "Visa anteckningsantal",
"Show sort order buttons": "Visa sorteringsordningsknappar",
"Show tray icon": "Visa fältikon",
"Sidebar": "Sidofält",
"Size": "Storlek",
@@ -716,18 +728,19 @@
"Tagged: %d.": "Taggad: %d.",
"Tags": "Taggar",
"Take photo": "Ta ett foto",
"Tasks": "Uppgifter",
"Text editor command": "Textredigeringskommando",
"Thank you! Your Joplin Cloud account is now setup and ready to use.": "Tack! Ditt Joplin Cloud-konto är nu konfigurerat och klart att använda.",
"The app is now going to close. Please relaunch it to complete the process.": "Appen kommer nu att stängas. Starta om den för att slutföra processen.",
"The application has been authorised - you may now close this browser tab.": "Programmet har godkänts - du kan nu stänga den här webbläsarfliken.",
"The application has been authorised!": "Programmet har blivit godkänt!",
"The application has been successfully authorised.": "Programmet har godkänts.",
"The application must be restarted for these changes to take effect.": "Applikationen måste startas om för att dessa ändringar ska träda i kraft.",
"The application must be restarted for these changes to take effect.": "Programmet måste startas om för att dessa ändringar ska träda i kraft.",
"The attachments will no longer be watched when you switch to a different note.": "Bilagorna kommer inte längre att visas när du byter till en annan anteckning.",
"The command \"%s\" is only available in GUI mode": "Kommandot \"%s\" är endast tillgängligt i läge för grafiskt gränssnitt",
"The default admin password is insecure and has not been changed! [Change it now](%s)": "Standardadministratörslösenordet är osäkert och har inte ändrats! [Ändra det nu](%s)",
"The default encryption method has been changed to a more secure one and it is recommended that you apply it to your data.": "Standard krypteringsmetod har ändrats till en säkrare och det är rekommenderat att du tillämpar den på din data.",
"The default encryption method has been changed, you should re-encrypt your data.": "Standardkrypteringsmetoden har ändrats, du bör omkryptera din data.",
"The default encryption method has been changed to a more secure one and it is recommended that you apply it to your data.": "Standard krypteringsmetod har ändrats till en säkrare och det är rekommenderat att du tillämpar den på dina data.",
"The default encryption method has been changed, you should re-encrypt your data.": "Standardkrypteringsmetoden har ändrats, du bör omkryptera dina data.",
"The editor command (may include arguments) that will be used to open a note. If none is provided it will try to auto-detect the default editor.": "Redigeringskommandot (kan inkludera argument) som används för att öppna en anteckning. Om inget tillhandahålls försöker det automatiskt identifiera standardredigeraren.",
"The factor property sets how the item will grow or shrink to fit the available space in its container with respect to the other items. Thus an item with a factor of 2 will take twice as much space as an item with a factor of 1.Restart app to see changes.": "Faktoregenskapen anger hur objektet kommer att växa eller krympa för att passa det tillgängliga utrymmet i sin behållare i förhållande till de andra artiklarna. Således tar ett objekt med faktorn 2 dubbelt så mycket utrymme som ett objekt med faktorn 1. Starta om appen för att se förändringar.",
"The following attachments are being watched for changes:": "Följande bilagor övervakas för ändringar:",
@@ -747,12 +760,12 @@
"The tag \"%s\" already exists. Please choose a different name.": "Taggen \"%s\" finns redan. Välj ett annat namn.",
"The target to synchronise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).": "Målet att synkronisera till. Varje synkroniseringsmål kan ha ytterligare parametrar som heter `sync.NUM.NAME` (alla dokumenterade nedan).",
"The Web Clipper needs your authorisation to access your data.": "Web Clipper behöver din behörighet för att få åtkomst till dina data.",
"The web clipper service is enabled and set to auto-start.": "Web clipper-tjänsten är aktiverad och inställd för automatisk start.",
"The web clipper service is enabled and set to auto-start.": "Web Clipper-tjänsten är aktiverad och inställd för automatisk start.",
"The web clipper service is not enabled.": "Web clipper-tjänsten är inte aktiverad.",
"Theme": "Tema",
"There are currently no notes. Create one by clicking on the (+) button.": "Det finns för närvarande inga anteckningar. Skapa en genom att klicka på (+)-knappen.",
"There is currently no notebook. Create one by clicking on \"New notebook\".": "Det finns för närvarande ingen anteckningsbok. Skapa en genom att klicka på \"Ny anteckningsbok\".",
"There is no data to export.": "Det finns ingen data att exportera.",
"There is no data to export.": "Det finns inga data att exportera.",
"There was a [conflict](%s) on the attachment below.\n\n%s": "Det fanns en [conflict](%s) i bilagan nedan.\n\n%s",
"There was an error downloading this attachment:": "Ett fel uppstod vid hämtningen av denna bilaga:",
"There was an error setting up your Joplin Cloud account. Please verify your email and password and try again. Error was:\n\n%s": "Det uppstod ett fel när du konfigurerade ditt Joplin Cloud-konto. Verifiera din e-postadress och ditt lösenord och försök igen. Fel var:\n\n%s",
@@ -792,8 +805,10 @@
"Toggle editors": "Växla redigerare",
"Toggle external editing": "Växla extern redigering",
"Toggle note list": "Växla anteckningslista",
"Toggle own sort order": "Växla egen sorteringsordning",
"Toggle safe mode": "Växla säkert läge",
"Toggle sidebar": "Växla sidofältet",
"Toggle sort order field": "Växla sorteringsordningsfält",
"Token has been copied to the clipboard!": "Token har kopierats till urklipp!",
"Tools": "Verktyg",
"Total: %d/%d": "Totalt: %d/%d",
@@ -833,6 +848,7 @@
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Använd detta för att återuppbygga sökindex om det finns sökproblem. Det kan ta lång tid beroende på antal anteckningar.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Används för mest text i markdown-redigeraren. Om det inte hittas används ett generiskt proportionellt (variabelt bredd) teckensnitt.",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "Används där ett teckensnitt med fast bredd behövs för att lägga ut texten läsbart (t.ex. tabeller, kryssrutor, kod). Om det inte hittas används ett generiskt teckensnitt med monospace (fast bredd).",
"Users": "Användare",
"Valid": "Giltig",
"View": "Visa",
"View on map": "Visa på karta",
@@ -859,10 +875,11 @@
"You currently have no notebooks.": "Du har för närvarande inga anteckningsböcker.",
"You do not have any installed plugin.": "Du har ingen installerad insticksmodul.",
"You may also type `status` for more information.": "Du kan också skriva `status` för mer information.",
"You may use the tool below to re-encrypt your data, for example if you know that some of your notes are encrypted with an obsolete encryption method.": "Du kan använda verktyget nedan för att omkryptera din data, exempelvis om du vill veta om vissa av dina anteckningar är krypterade med en gammal krypteringsmetod.",
"You may use the tool below to re-encrypt your data, for example if you know that some of your notes are encrypted with an obsolete encryption method.": "Du kan använda verktyget nedan för att omkryptera dina data, exempelvis om du vill veta om vissa av dina anteckningar är krypterade med en gammal krypteringsmetod.",
"Your choice: ": "Ditt val: ",
"Your data is going to be re-encrypted and synced again.": "Din data kommer att omkrypteras och synkroniseras igen.",
"Your data is going to be re-encrypted and synced again.": "Dina data kommer att omkrypteras och synkroniseras igen.",
"Your master password is needed to decrypt some of your data.": "Ditt huvudlösenord behövs för att dekryptera några av dina data.",
"Your password is needed to decrypt some of your data. Type `:e2ee decrypt` to set it.": "Ditt lösenord behövs för att dekryptera en del av dina data. Skriv `:e2ee decrypt` för att ställa in det.",
"Your permission to use your camera is required.": "Du måste ge tillåtelse att använda kameran.",
"Your version: %s": "Din version: %s",
"Zoom In": "Zooma in",

View File

@@ -40,7 +40,6 @@
"Authentication was not completed (did not receive an authentication token).": "การขออนุมัติไม่สมบูรณ์ (ไม่ได้รับ Token เพื่อขออนุมัติ)",
"Authorisation token:": "Token สำหรับการขออนุมัติ:",
"Auto": "อัตโนมัติ",
"Automatically update the application": "อัพเดทแอปพลิเคชั่นอัตโนมัติ",
"Bold": "ตัวหนา",
"Cancel": "ยกเลิก",
"Cancelling...": "กำลังยกเลิก...",
@@ -242,7 +241,6 @@
"Note list": "รายการบันทึก",
"Note properties": "คุณสมบัติของบันทึก",
"Note title": "ชื่อบันทึก",
"Notebook title:": "ชื่อสมุดบันทึก:",
"Notebook: %s": "สมุดบันทึก: %s",
"Notebooks": "สมุดบันทึก",
"Numbered List": "รายการแบบตัวเลข",

View File

@@ -51,6 +51,8 @@
"Add recipient:": "Alıcı ekle:",
"Add title": "Başlık ekle",
"Add to dictionary": "Sözlüğe ekle",
"Admin": "Yönetici",
"Admin dashboard": "Yönetici paneli",
"Advanced options": "Gelişmiş seçenekler",
"Advanced tools": "Gelişmiş araçlar",
"All notes": "Tüm notlar",
@@ -78,8 +80,8 @@
"Authorisation token:": "Yetkilendirme anahtarı:",
"Auto": "Otomatik",
"Auto-pair braces, parenthesis, quotations, etc.": "Parantez, çift tırnak gibi değerlerin çiftlerini otomatik ekle.",
"Automatically check for updates": "Otomatik olarak güncellemeleri denetle",
"Automatically switch theme to match system theme": "Temayı system temasına göre otomatik olarak değiştir",
"Automatically update the application": "Uygulamayı otomatik olarak güncelle",
"Back": "Geri",
"Bold": "Kalın",
"Browse all plugins": "Tüm eklentilere göz at",
@@ -99,7 +101,9 @@
"Cannot move note to \"%s\" notebook": "Not, \"%s\" not defterine taşınamadı",
"Cannot move notebook to this location": "Not defteri bu konuma taşınamıyor",
"Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.": "Anahtar yenilenemiyor: kimlik doğrulama verileri eksik. Senkronizasyonu tekrar başlatmak sorunu çözebilir.",
"Cannot save %s \"%s\" because it is larger than the allowed limit (%s)": "%s \"%s\" kaydedilemedi, çünkü izin verilen limitten (%s) daha büyük",
"Cannot save %s \"%s\" because it would go over the total allowed size (%s) for this account": "%s \"%s\" kaydedilemedi, çünkü bu hesap için izin verilen limitten (%s) daha büyük",
"Cannot share encrypted notebook with recipient %s because they have not enabled end-to-end encryption. They may do so from the screen Configuration > Encryption.": "Şifrelenmiş not defteri %s ile paylaşılamadı, çünkü alıcı uçtan uca şifreleme aktifleştirmemiş. Ayarlar > Şifreleme kısmından bu ayarı açabilir.",
"Change application layout": "Ugulama görünümünü değiştir",
"Change language": "Dil değiştir",
"Characters": "Karakter",
@@ -138,10 +142,13 @@
"Conflicted: %d": "Çakışan: %d",
"Conflicts": "Çakışmalar",
"Conflicts (attachments)": "Çakışmalar (ek dosyalar)",
"Content provided by %s": "İçerik %s tarafından sağlandı",
"Convert to note": "Nota çevir",
"Convert to todo": "Yapılacak listesi olarak çevir",
"Copy": "Kopyala",
"Copy dev mode command to clipboard": "Geliştirici modu komutunu panoya kopyala",
"Copy external link": "Harici bağlantıyı kopyala",
"Copy image": "Resmi kopyala",
"Copy Link Address": "Bağlantı Adresini Kopyala",
"Copy Markdown link": "Markdown bağlantısını kopyala",
"Copy path to clipboard": "Yolu panoya kopyala",
@@ -149,10 +156,15 @@
"Copy token": "Anahtarı kopyala",
"Could not authorise application:\n\n%s\n\nPlease try again.": "Uygulama yetkilendirilemedi:\n\n%s\n\nLütfen tekrar deneyin.",
"Could not connect to Joplin Server. Please check the Synchronisation options in the config screen. Full error was:\n\n%s": "Joplin Sunucusuna bağlanılamadı. Lütfen senkronizasyon yapılandırması ekranını kontrol edin. Hatanın tamamı:\n\n%s",
"Could not connect to plugin repository.": "Eklenti sunucusuna bağlanılamadı.",
"Could not export notes: %s": "Notlar dışarı aktarılamadı: %s",
"Could not install plugin: %s": "Eklenti yüklenemedi: %s",
"Could not respond to the invitation. Please try again, or check with the notebook owner if they are still sharing it.\n\nThe error was: \"%s\"": "Davetiyeye cevap verilemedi. Lütfen yeniden deneyin, ya da eğer hala paylaşımdaysa not defteri sahibiyle bu durumu paylaşın.\n\nHata mesajı: \"%s\"",
"Could not upgrade master key: %s": "Ana şifreleme anahtarı güncellenemedi: %s",
"Could not verify the share status of this notebook - aborting. Please try again when you are connected to the internet.": "Bu not defterinin paylaşım durumu doğrulanamadı, bu sebeple işlem iptal ediliyor. Lütfen internet bağlantınız varken bu işlemi yeniden deneyin.",
"Create a notebook": "Yeni bir not defteri oluşturur",
"Create notebook": "Not defteri oluştur",
"Create user": "Kullanıcı oluştur",
"Created": "Oluşturuldu",
"created date": "oluşturma zamanı",
"Created local items: %d.": "Oluşturulan yerel öğeler: %d.",
@@ -174,6 +186,7 @@
"Custom TLS certificates": "Özel TLS sertifikaları",
"Cut": "Kes",
"Dark": "Karanlık",
"Dashboard": "Kontrol Paneli",
"Database v%s": "Veritabanı v%s",
"Date": "Tarih",
"Date format": "Tarih biçimi",
@@ -222,6 +235,7 @@
"Displays version information": "Sürüm bilgisini görüntüler",
"Do it now": "Hemen yap",
"Do not ask for confirmation.": "Onay için sorma.",
"Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.": "Şifrenizi kaybetmeyin, verilerinizin şifresini çözmenin \"*tek yolu* bu şifreyi girmek olacaktır. Şifrelemeyi etkinleştirmek için lütfen parolanızı aşağıya girin.",
"Download": "İndirme",
"Download and install the relevant extension for your browser:": "Tarayıcınız için uygun uzantıyı indirin ve yükleyin:",
"Downloaded": "İndirildi",
@@ -273,12 +287,16 @@
"Enable Web Clipper Service": "Web Alıntılama Servisini Aç",
"Enable ~sub~ syntax": "~sub~ söz dizimini etkinleştir",
"Enabled": "Etkin",
"Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target.": "Şifrelemeyi devre devreye alırsanız *tüm* notlarınızın ve eklerinizin yeniden senkronize edileceği ve senkronizasyon hedefine şifrelenmemiş olarak gönderileceği anlamına gelir.",
"Encrypted": "Şifrelenmiş",
"Encrypted items cannot be modified": "Şifrelenmiş öğeler değiştirilemez",
"Encrypted notebooks cannot be renamed": "Şifrelenmiş not defterleri yeniden adlandırılamaz",
"Encryption": "Şifreleme",
"Encryption Config": "Yapılandırmayı şifrele",
"Encryption is: %s": "Şifreleme: %s",
"Encryption keys": "Şifreleme anahtarları",
"Encryption:": "Şifreleme:",
"End-to-end encryption": "Uçtan uca şifreleme",
"Enter code here": "Kodu buraya girin",
"Enter master password:": "Ana parolayı girin:",
"Enter notebook title": "Not defteri başlığını girin",
@@ -320,11 +338,13 @@
"For information on how to customise the shortcuts please visit %s": "Kısayolları nasıl özelleştirebileceğiniz hakkında bilgi için lütfen %s adresini ziyaret edin",
"For more information about End-To-End Encryption (E2EE) and advice on how to enable it please check the documentation:": "Uçtan Uca Şifreleme (E2EE) hakkında bilgi ve nasıl aktif edilebileceğine dair ipuçları için lütfen belgeleri inceleyin:",
"For the list of keyboard shortcuts and config options, type `help keymap`": "Klavye kısayolları ve yapılandırma seçenekleri listesi için `help keymap` yazın",
"Force path style": "Zorlanan yol biçimi",
"Forward": "İleri",
"Found: %d.": "Bulundu: %d.",
"FTS enabled: %d": "FTS aktif edildi: %d",
"Full changelog": "Tüm sürüm geçmişi",
"General": "Genel",
"Generated": "Oluşturma",
"Generating link...": "Bağlantı oluşturuluyor...",
"Get it now:": "Hemen al:",
"Get pre-releases when checking for updates": "Güncellemeleri kontrol ederken ön sürümleri alın",
@@ -335,8 +355,10 @@
"Heading": "Başlık",
"Help": "Yardım",
"Hide %s": "Şunu Gizle: %s",
"Hide disabled keys": "İnaktif anahtarları gizle",
"Hide Joplin": "Joplin'i Gizle",
"Highlight": "Vurgula",
"Home": "Ana sayfa",
"Horizontal Rule": "Yatay kural",
"HTML Directory": "HTML Dizini",
"HTML File": "HTML Dosyası",
@@ -374,8 +396,10 @@
"Invalid answer: %s": "Yanlış cevap: %s",
"Invalid command: \"%s\"": "Geçersiz komut: \"%s\"",
"Invalid option value: \"%s\". Possible values are: %s.": "Geçersiz seçenek değeri: \"%s\". Mümkün değerler: %s.",
"Invalid password": "Hatalı parola",
"Italic": "İtalik",
"Item \"%s\" could not be downloaded: %s": "\"%s\" öğesi indirilemedi: %s",
"Items": "Öğeler",
"Items that cannot be decrypted": "Şifresi çözülemeyen öğeler",
"Items that cannot be synchronised": "Senkronize edilemeyen öğeler",
"Joplin can synchronise your notes using various providers. Select one from the list below.": "Joplin notlarınızı pek çok sağlayıcıyı kullanarak senkron edebilir. Lütfen aşağıdan bunlardan birini seçin.",
@@ -398,12 +422,14 @@
"Keyboard Shortcut": "Klavye Kısayolu",
"Keyboard Shortcuts": "Klavye Kısayolları",
"Keychain Supported: %s": "Keychain Desteği: %s",
"Keys that need upgrading": "Güncellenmesi gereken anahtarlar",
"Landscape": "Yatay",
"Language": "Dil",
"Last error: %s": "Son hata: %s",
"Later": "Daha sonra",
"Layout": "Düzen",
"Layout button sequence": "Düzen butonu sıralaması",
"Leave notebook...": "Not defterinden ayrıl",
"Legal": "Legal",
"Letter": "Kağıt",
"Light": "Aydınlık",
@@ -411,6 +437,7 @@
"Link has been copied to clipboard!": "Bağlantı panoya kopyalandı!",
"Links with protocol \"%s\" are not supported": "“%s” formatlı linkler desteklenmiyor",
"List item": "Öğeyi listele",
"Loaded": "Yüklenme",
"Location": "Konum",
"Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.": "Kilit dosyası zaten tutuluyor. Senkronizasyon yapılmadığını biliyorsanız, kilit dosyasını \"%s\" konumunda silebilir ve işleme devam edebilirsiniz.",
"Log": "Log",
@@ -418,15 +445,24 @@
"Login below.": "Aşağıdan giriş yapabilirsiniz.",
"Login with Dropbox": "Dropbox ile giriş yap",
"Login with OneDrive": "OneDrive ile giriş yapın",
"Logout": "Çıkış Yap",
"Logs": "Kayıtlar",
"Make a donation": "Bağış yapın",
"Manage master password": "Ana parolayı yönet",
"Manage master password...": "Ana parolayı yönet...",
"Manage your plugins": "Eklentileri yönet",
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file`, and `target-status`.": "Uçtan Uca Şifreleme ayarını yönetir. Komutlar: `enable`, `disable`, `decrypt`, `status`, `decrypt-file` ve `target-status`.",
"Manual": "Manuel",
"Markdown": "Markdown",
"Markdown + Front Matter": "Markdown + Front Matter",
"Marks a to-do as done.": "Yapılacakları yapıldı olarak işaretler.",
"Marks a to-do as non-completed.": "Yapılacaklar listesindeki öğeyi tamamlanmamış olarak işaretler.",
"Markup": "Düzenleme",
"Master Key %s": "Ana Anahtar %s",
"Master password": "Ana parola",
"Master password:": "Ana parola:",
"Max concurrent connections": "Maksimum aynı anda bağlantı",
"Missing keys": "Eksik anahtarar",
"Missing Master Keys": "Eksik Ana Anahtar",
"Missing required argument: %s": "Gerekli parametre eksik gözüküyor: %s",
"Mobile data - auto-sync disabled": "Mobil veri - otomatik senkronizasyon devre dışı",
@@ -467,6 +503,7 @@
"Nord": "Nord",
"Not authentified with %s. Please provide any missing credentials.": "%s ile doğrulama sağlanamadı. Lütfen eksik olan tüm bilgileri girin.",
"Not downloaded": "İndirilmeyen",
"Not generated": "Oluşturulmamış",
"note": "not",
"Note": "Not",
"Note area growth factor": "Not alanı büyüme faktörü",
@@ -484,11 +521,12 @@
"Note&book": "Not&defteri",
"Note: Does not work in all desktop environments.": "Not: Tüm masaüstü ortamlarında çalışmaz.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Not: Bir not paylaşıldığında artık sunucuda şifreli olmayacak.",
"Notebook": "Not defteri",
"Notebook list growth factor": "Not defteri listesi büyüme faktörü",
"Notebook title:": "Not defteri başlığı:",
"Notebook: %s": "Not defteri: %s",
"Notebooks": "Not defterleri",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Not defterine ayrılmış bir başlık adı olan \"%s\" adı verilemez.",
"Notes": "Notlar",
"Notes and settings are stored in: %s": "Notlar ve ayarlar şu konumda saklanır: %s",
"Notes can only be created within a notebook.": "Notlar yalnızca bir not defterinde oluşturulabilir.",
"Numbered List": "Numaralı liste",
@@ -521,8 +559,10 @@
"PDF File": "PDF Dosyası",
"Permission needed": "İzin gerekmekte",
"Permission to use camera": "Kamera kullanımı için izin",
"Please click on \"%s\" to proceed": "Lütfen devam etmek için \"%s\" tuşuna basın",
"Please confirm that you would like to re-encrypt your complete database.": "Lütfen tüm veritabanınızı yeniden şifrelemek istediğinizi doğrulayın.",
"Please enter your password in the master key list below before upgrading the key.": "Anahtarı güncellemek için lütfen ana şifreleme anahtarının parolasını girin.",
"Please note that if it is a large notebook, it may take a few minutes for all the notes to show up on the recipient's device.": "Not defterleri büyük olabilir, ve de bu sebeple alıcı tarafın cihazında tüm notların gözükmesi birkaç dakikayı bulabilir. Bunu lütfen dikkate alın.",
"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.": "Lütfen uygulamayı doğrulamak için tarayıcınızda aşağıdaki URL'yi açın. Uygulama \"Uygulamalar/Joplin\" de bir dizin oluşturacak ve sadece bu dizindeki dosyaları okuyacak ve yazacaktır. Bu dizin dışındaki hiçbir dosyaya veya diğer kişisel verilere erişemeyecektir. Hiçbir veri üçüncü şahıslarla paylaşılmayacaktır.",
"Please select a notebook first.": "Lütfen önce bir not defteri seçin.",
"Please select the note or notebook to be deleted first.": "Lütfen önce silinecek notu veya not defterini seçin.",
@@ -548,8 +588,10 @@
"Previous versions of this note": "Bu notun önceki sürümleri",
"Print": "Yazdır",
"Privacy Policy": "Gizlilik Politikası",
"Profile": "Profil",
"Profile Version: %s": "Profil sürümü: %s",
"Properties": "Özellikler",
"Public-private key pair:": "Açık - gizli anahtar çifti:",
"Publish note...": "Notu yayımla…",
"Publish Notes": "Notları Yayımla",
"Publish notes to the internet": "Notları İnternet’e yayımla",
@@ -574,6 +616,7 @@
"Rename tag:": "Etiketi yeniden adlandır:",
"Renames the given <item> (note or notebook) to <name>.": "<item> öğesini <name> ile yeniden adlandırır (not veya not defteri).",
"Renew token": "Jetonu yenile",
"Reset master password": "Ana parolayı sıfırla",
"Resources: %d.": "Kaynaklar: %d.",
"Restart and upgrade": "Yeniden başlat ve güncelle",
"Restart now": "Şimdi yeniden başlat",
@@ -586,6 +629,12 @@
"Reverses the sorting order.": "Sıralama düzenini tersine çevirir.",
"Revision: %s (%s)": "Sürüm: %s (%s)",
"Runs the commands contained in the text file. There should be one command per line.": "Metin dosyasındaki komutları çalıştırır. Her bir komut ayrı satırda olmalıdır.",
"S3": "S3",
"S3 access key": "S3 erişim anahtarı",
"S3 bucket": "S3 deposu",
"S3 region": "S3 bölgesi",
"S3 secret key": "S3 gizli anahtarı",
"S3 URL": "S3 URL",
"Safe mode is currently active. Note rendering and all plugins are temporarily disabled.": "Güvenli mod şu an aktif. Not görselleştirme ve tüm ekelntiler geçici olarak devre dışı.",
"Save": "Kaydet",
"Save alarm": "Alarm kurun",
@@ -607,6 +656,7 @@
"Server is running on port %d": "Sunucu %d portunda çalışıyor",
"Set alarm": "Alarm kur",
"Set alarm:": "Alarm kur:",
"Set it to 0 to make it take the complete available space. Recommended width is 600.": "0 olarak belirtmeniz durumunda tüm uygun boş alanı kullanacaktır. Önerilen genişlik değeri 600.",
"Set the password": "Parola belirle",
"Sets the property <name> of the given <note> to the given [value]. Possible properties are:\n\n%s": "<name> özelliğini verilen <note> içinde verilen [value] ile değiştirir. Olası özellikler şunlardır:\n\n%s",
"Share": "Paylaş",
@@ -617,7 +667,9 @@
"Show Advanced Settings": "Gelişmiş Seçenekleri Göster",
"Show all": "Tümünü göster",
"Show completed to-dos": "Tamamlanan yapılacaklar listesini göster",
"Show disabled keys": "İnaktif anahtarları görüntüle",
"Show note counts": "Not sayacını göster",
"Show sort order buttons": "Not sıralama butonlarını göster",
"Show tray icon": "Tepsi simgesini göster",
"Sidebar": "Kenar çubuğu",
"Size": "Boyut",
@@ -688,6 +740,7 @@
"Tagged: %d.": "Etiket: %d.",
"Tags": "Etiketler",
"Take photo": "Fotoğraf çek",
"Tasks": "Görevler",
"Text editor command": "Metin editörü komutu",
"Thank you! Your Joplin Cloud account is now setup and ready to use.": "Teşekkürler! Joplin Cloud hesabınız başarıyla oluşuruldu ve artık kullanıma hazır.",
"The app is now going to close. Please relaunch it to complete the process.": "Uygulama şimdi kapanacak. İşlemi tamamlamak için lütfen uygulamayı kapandıktan sonar yeniden çalıştırın.",
@@ -703,14 +756,19 @@
"The editor command (may include arguments) that will be used to open a note. If none is provided it will try to auto-detect the default editor.": "Editör komutu (argüman içerebilir) not açmak için kullanılacaktır. Eğer sağlanmadıysa, varsayılan düzenleyiciyi otomatik olarak algılamaya çalışır.",
"The factor property sets how the item will grow or shrink to fit the available space in its container with respect to the other items. Thus an item with a factor of 2 will take twice as much space as an item with a factor of 1.Restart app to see changes.": "Faktör özelliği, dosyanın diğer dosyaların da ebatına sadık kalarak yeterli alan olduğu sürece hangi değerle büyüyüp ufalacağını tanımlar. Faktör değeri 2 olan bir bileşen, faktör değeri 1 olana nazaran 2 kat fazla alan kaplar. Değişiklikleri görmek için uygulamayı yeniden başlatın.",
"The following attachments are being watched for changes:": "Şu ek dosyaları değişiklikler için izlenmekte:",
"The following keys use an out-dated encryption algorithm and it is recommended to upgrade them. The upgraded key will still be able to decrypt and encrypt your data as usual.": "Mevcut anahtarlarınız eski bir şifreleme algoritmasını kullanıyor, bu sebeple güncellenmesi gerekir. Güncellenen şifreleme ahatarları eskisi gibi verinizi şifreleme ve şifre çözmede kullanılacaktır.",
"The Joplin mobile app does not currently support this type of link: %s": "Joplin mobil uygulaması şu anda bu tür bir bağlantıyı desteklemiyor: %s",
"The Joplin team has vetted this plugin and it meets our standards for security and performance.": "Joplin ekibi bu eklentinin güvenlik ve performans konusunda standartlarını sağladığını beyan eder.",
"The keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.": "Bu kimlikleri olan anahtarlar öğelerinizden bazılarını şifrelemek için kullanılır, ancak uygulama şu anda bunlara erişemez. Büyük olasılıkla senkronizasyon yoluyla indirilmeleri sağlanacaktır.",
"The master key has been upgraded successfully!": "Ana anahtar başarıyla güncellendi!",
"The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.": "Bu kimlikleri olan ana anahtarlar öğelerinizden bazılarını şifrelemek için kullanılır, ancak uygulama şu anda bunlara erişemez. Büyük olasılıkla senkronizasyon yoluyla indirilmeleri sağlanacaktır.",
"The note \"%s\" has been successfully restored to the notebook \"%s\".": "“%s” notu başarılı bir şekilde “%s” not defterine geri yüklendi.",
"The notebook could not be saved: %s": "Not defteri kaydedilemedi: %s",
"The notes have been imported: %s": "Notlar içe aktarıldı: %s",
"The possible commands are:": "Kullanılabilir komutlar:",
"The recipient could not be removed from the list. Please try again.\n\nThe error was: \"%s\"": "Alıcı listeden çıkarılamadı. Lütfen yeniden deneyin.\n\nHata mesajı: \"%s\"",
"The sync target needs to be upgraded before Joplin can sync. The operation may take a few minutes to complete and the app needs to be restarted. To proceed please click on the link.": "Senkronizasyon hedefi'nin Joplin senkronizasyona yeniden başlamadan once güncellenmesi gerekir. Bu işlem notlarınızıın yoğunluğuna göre birkaç dakika sürebilir, ve de bu işlem ardından uygulama yeniden başlatılacaktır. Bu işlemi başlatmak için lütfen linke tıklayın.",
"The sync target needs to be upgraded. Press this banner to proceed.": "Senkronizasyon hedefinin güncellenmesi gerekmekte. Devam etmek için bu butona basın",
"The tag \"%s\" already exists. Please choose a different name.": "\"%s\" etiketi mevcut. Lütfen başka isim seçin.",
"The target to synchronise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).": "Senkronize edilecek hedef. Her senkronizasyon hedefi, `sync.NUM.NAME` olarak adlandırılan ek parametrelere sahip olabilir (tümü aşağıda belgelenmiştir).",
"The Web Clipper needs your authorisation to access your data.": "Web Alıntılayıcısı’nın verinize erişebilmesi için izninize ihtiyacı var.",
@@ -737,10 +795,12 @@
"This service allows the browser extension to communicate with Joplin. When enabling it your firewall may ask you to give permission to Joplin to listen to a particular port.": "Bu hizmet, tarayıcı uzantısının Joplin ile iletişim kurmasını sağlar. Etkinleştirme anında güvenlik duvarınız Joplin’e belirli bir bağlantı portunu dinlemek için izin vermenizi isteyebilir.",
"This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronised, thus reducing the number of conflicts.": "Bu Joplin'in arka planda çalışmasına izin verecektir. Bu ayarı etkinleştirmeniz önerilir; böylece notlarınız sürekli olarak eşitlenir, çakışma sayısı azalır.",
"This will open a new screen. Save your current changes?": "Yeni bir pencere açılacak. Değişiklikler kaydedilsin mi?",
"This will remove the notebook from your collection and you will no longer have access to its content. Do you wish to continue?": "Bu işlem not defterini koleksiyonunuzdan kaldıracak, ve de içeriğine artık erişemeyeceksiniz. Devam etmek istiyor musunuz?",
"Time format": "Zaman biçimi",
"title": "başlık",
"Title": "Başlık",
"To allow Joplin to synchronise with Dropbox, please follow the steps below:": "Joplin'in Dropbox ile senkronize edilmesine izin vermek için lütfen aşağıdaki adımları izleyin:",
"To continue, please enter your master password below.": "Devam etmek için lütfen aşağıya ana parolanızı girin",
"To delete a tag, untag the associated notes.": "Bir etiketi silmek için ilişkilendirilmiş notların etiketini kaldırın.",
"To delete: %d": "Sil: %d",
"To enter command line mode, press \":\"": "Komut satırı moduna girmek için \":\" e basın",
@@ -757,8 +817,10 @@
"Toggle editors": "Editörleri aç / kapat",
"Toggle external editing": "Dış düzenlemeyi aç/kapat",
"Toggle note list": "Not listesini aç/kapat",
"Toggle own sort order": "Kendi Özel sıralamanı aç / kapat",
"Toggle safe mode": "Güvenli modu aç / kapat",
"Toggle sidebar": "Kenar çubuğunu aç / kapat",
"Toggle sort order field": "Sıralama alanine aç / kapat",
"Token has been copied to the clipboard!": "Anahtar panoya kopyalandı!",
"Tools": "Araçlar",
"Total: %d/%d": "Toplam: %d/%d",
@@ -779,6 +841,7 @@
"Unsupported link or message: %s": "Desteklenmeyen bağlantı veya mesaj: %s",
"Untitled": "Başlıksız",
"Update": "Güncelle",
"Update profile": "Profili güncelle",
"Updated": "Güncellendi",
"updated date": "güncelleme zamanı",
"Updated local items: %d.": "Güncellenen yerel öğeler: %d.",
@@ -798,6 +861,8 @@
"Use this to rebuild the search index if there is a problem with search. It may take a long time depending on the number of notes.": "Arama ile ilgili bir sorun olduğunda bunu kullanın. Not sayısına göre bu işlem uzun sürebilir.",
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Markdown metin düzenleyicilerde pek çok metinde kullanılır. Bu değer bulunamazsa, genişliği karakterlerce değişebilen jenerik bir font kullanılacak.",
"Used where a fixed width font is needed to lay out text legibly (e.g. tables, checkboxes, code). If not found, a generic monospace (fixed width) font is used.": "Sabit bir metin uzunluğu gerektiren yerlerde (örn: tablolar, doğrulama kutucukları, kod vs.) kullanılır. Eğer bulunamazsa jenerik ve monospace olan bir font kullanılacak.",
"User deletions": "Kullancı silmeleri",
"Users": "Kullanıcılar",
"Valid": "Geçerli",
"View": "Görüntüle",
"View on map": "Haritada gör",
@@ -827,6 +892,8 @@
"You may use the tool below to re-encrypt your data, for example if you know that some of your notes are encrypted with an obsolete encryption method.": "Bu aracı kullanarak verinizi yeniden şifreleyebilirsiniz. Bu metodu örneğin bazı notlarınızın eski bir şifreleme metoduyla şifrelendiği zamanlarda kullanabilirsiniz.",
"Your choice: ": "Seçiminiz: ",
"Your data is going to be re-encrypted and synced again.": "Veriniz yeniden şifrelenecek ve senkron edilecek.",
"Your master password is needed to decrypt some of your data.": "Verilerinizin bir kısmının şifrelemesinin çözülmesi için ana parolanız gerekmektedir.",
"Your password is needed to decrypt some of your data. Type `:e2ee decrypt` to set it.": "Verilerinizin bir kısmının şifrelelemesinin çözülmesi için ana parolanız gerekmektedir. `:e2ee decrypt` yazarak ayarlayabilirsiniz.",
"Your permission to use your camera is required.": "Kamera kullanımı için izniniz gerekmektedir.",
"Your version: %s": "Sürümünüz: %s",
"Zoom In": "Yakınlaştır",

View File

@@ -71,7 +71,6 @@
"Auto": "Авто",
"Auto-pair braces, parenthesis, quotations, etc.": "Автоматичне закриття дужок, лапок тощо.",
"Automatically switch theme to match system theme": "Автоматично перемикати тему на відповідність системній темі",
"Automatically update the application": "Автоматично оновлювати програму",
"Back": "Назад",
"Bold": "Жирний",
"Browse all plugins": "Переглянути всі розширення",
@@ -439,7 +438,6 @@
"Note: Does not work in all desktop environments.": "Примітка: Не працює у всіх робочих середовищах.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Примітка. Коли нотатка надається спільно, вона більше не буде зашифрована на сервері.",
"Notebook list growth factor": "Фактор зростання списку блокнотів",
"Notebook title:": "Заголовок блокнота:",
"Notebook: %s": "Блокнот: %s",
"Notebooks": "Блокноти",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Блокноти не можна назвати “%s”, що є зарезервованою назвою.",

View File

@@ -77,7 +77,6 @@
"Auto": "Auto",
"Auto-pair braces, parenthesis, quotations, etc.": "Tự động đóng ngoặc nhọn, ngoặc đơn, ngoặc kép, v.v...",
"Automatically switch theme to match system theme": "Tự động đổi giao diện khớp với giao diện hệ thống",
"Automatically update the application": "Tự động cập nhật ứng dụng",
"Back": "Quay lại",
"Bold": "In đậm",
"Browse all plugins": "Duyệt tất cả phần mở rộng",
@@ -472,7 +471,6 @@
"Note: Does not work in all desktop environments.": "Lưu ý: Không hoạt động trong tất cả môi trường desktop.",
"Note: When a note is shared, it will no longer be encrypted on the server.": "Lưu ý: Khi note được chia sẻ, nó sẽ không còn được mã hóa trên server nữa.",
"Notebook list growth factor": "Yếu tố tăng trưởng danh sách sổ ghi chú",
"Notebook title:": "Tiêu đề sổ ghi chú:",
"Notebook: %s": "Notebook: %s",
"Notebooks": "Notebooks",
"Notebooks cannot be named \"%s\", which is a reserved title.": "Notesbook không thể đặt tên \"%s\", tên này đã được dành riêng.",

Some files were not shown because too many files have changed in this diff Show More