You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2026-01-14 00:29:38 +02:00
Compare commits
4 Commits
v2.7.4
...
plugin_tas
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e1b38b936 | ||
|
|
a11402db6d | ||
|
|
c19d533d93 | ||
|
|
1a4ff7054a |
@@ -1,19 +1,12 @@
|
||||
_mydocs/
|
||||
_releases/
|
||||
.git/
|
||||
.yarn/cache/
|
||||
**/.DS_Store
|
||||
**/node_modules
|
||||
Assets/
|
||||
docs/
|
||||
lerna-debug.log
|
||||
packages/app-cli/
|
||||
packages/app-clipper/
|
||||
packages/app-desktop/
|
||||
packages/app-mobile/
|
||||
packages/generator-joplin/
|
||||
packages/plugin-repo-cli/
|
||||
.git/
|
||||
_releases/
|
||||
packages/app-desktop
|
||||
packages/app-cli
|
||||
packages/app-mobile
|
||||
packages/app-clipper
|
||||
packages/generator-joplin
|
||||
packages/plugin-repo-cli
|
||||
packages/server/db-*.sqlite
|
||||
packages/server/dist/
|
||||
packages/server/logs/
|
||||
packages/server/temp/
|
||||
packages/server/temp
|
||||
|
||||
@@ -52,6 +52,8 @@ packages/app-mobile/lib/rnInjectedJs/
|
||||
packages/app-mobile/locales
|
||||
packages/app-mobile/node_modules
|
||||
packages/app-mobile/pluginAssets/
|
||||
packages/electron-process-manager/dist/
|
||||
packages/electron-process-manager/src/ui/
|
||||
packages/fork-*
|
||||
packages/htmlpack/dist/
|
||||
packages/lib/assets/
|
||||
@@ -1927,9 +1929,6 @@ 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
|
||||
|
||||
5
.github/scripts/run_ci.sh
vendored
5
.github/scripts/run_ci.sh
vendored
@@ -1,5 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# We want the script to stop as soon as an error is found. Otherwise if there's
|
||||
# an error during `yarn install` for example, it's also going to throw millions
|
||||
# of errors in test units, which makes debugging difficult.
|
||||
set -e
|
||||
|
||||
# =============================================================================
|
||||
# Setup environment variables
|
||||
# =============================================================================
|
||||
|
||||
25
.github/stale.yml
vendored
Normal file
25
.github/stale.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
# Configuration for probot-stale - https://github.com/probot/stale
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 30
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- "good first issue"
|
||||
- "upstream"
|
||||
- "backlog"
|
||||
- "high"
|
||||
- "medium"
|
||||
- "spec"
|
||||
- "cannot reproduce"
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs.
|
||||
You may comment on the issue and I will leave it open.
|
||||
Thank you for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: >
|
||||
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please feel free to create a new issue with up-to-date information.
|
||||
only: issues
|
||||
23
.github/workflows/close-stale-issues.yml
vendored
23
.github/workflows/close-stale-issues.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: 'Close stale issues'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 16 * * *'
|
||||
permissions:
|
||||
issues: write
|
||||
jobs:
|
||||
ProcessStaleIssues:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v4
|
||||
with:
|
||||
# Use this to do a dry run from a pull request
|
||||
# debug-only: true
|
||||
stale-issue-message: "Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions."
|
||||
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'
|
||||
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
|
||||
days-before-pr-stale: -1
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1917,9 +1917,6 @@ 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
|
||||
|
||||
@@ -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 = [];
|
||||
}
|
||||
|
||||
@@ -728,23 +728,6 @@ footer .bottom-links-row p {
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
MEDIUM VIEW
|
||||
- Make menu bar elements smaller and closer to each others
|
||||
so that everything fit.
|
||||
*****************************************************************/
|
||||
|
||||
@media (max-width: 990px) {
|
||||
#nav-section > .container {
|
||||
max-width: 960px;
|
||||
}
|
||||
|
||||
#nav-section .button-link {
|
||||
padding: 4px 12px;
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
NARROW VIEW
|
||||
- Top right menu is displayed
|
||||
@@ -757,23 +740,6 @@ footer .bottom-links-row p {
|
||||
padding-bottom: 130px;
|
||||
}
|
||||
|
||||
#menu-mobile .social-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#menu-mobile .social-links a {
|
||||
margin-left: 15px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
#menu-mobile .social-links .social-link-mastodon,
|
||||
#menu-mobile .social-links .social-link-reddit,
|
||||
#menu-mobile .social-links .social-link-patreon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.front-page h1 {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
@@ -891,7 +857,7 @@ footer .bottom-links-row p {
|
||||
}
|
||||
|
||||
#menu-mobile .button-link {
|
||||
padding: 4px 12px;
|
||||
padding: 10px 15px;
|
||||
font-size: 16px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
<footer class="darkblue-bg">
|
||||
<div class="container">
|
||||
{{> socialFeeds}}
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-12 social-links">
|
||||
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
|
||||
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
|
||||
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
|
||||
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
|
||||
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
|
||||
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bottom-links-row">
|
||||
<div class="col-12 col-md-6">
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-9 text-right d-none d-md-block">
|
||||
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed" class="fw500"><i class="fab fa-twitter"></i></a>
|
||||
<a href="{{baseUrl}}/news/" class="fw500">News</a>
|
||||
<a href="{{baseUrl}}/news/" class="fw500">What's New</a>
|
||||
<a href="{{baseUrl}}/help/" class="fw500">Help</a>
|
||||
<a href="{{forumUrl}}" class="fw500">Forum</a>
|
||||
{{#showJoplinCloudLinks}}
|
||||
@@ -44,7 +43,7 @@
|
||||
</div>
|
||||
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="{{baseUrl}}/news/" class="fw500 mobile-menu-link">News</a>
|
||||
<a href="{{baseUrl}}/news/" class="fw500 mobile-menu-link">What's New</a>
|
||||
<a href="{{baseUrl}}/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
<a href="{{forumUrl}}" class="fw500 mobile-menu-link">Forum</a>
|
||||
</div>
|
||||
@@ -60,8 +59,6 @@
|
||||
{{#showToc}}
|
||||
<div id="toc-mobile">{{{tocHtml}}}</div>
|
||||
{{/showToc}}
|
||||
|
||||
{{> socialFeeds}}
|
||||
|
||||
<div>
|
||||
<p class="light-blue mobile-menu-link-bottom text-center">
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-12 social-links">
|
||||
<a class="social-link-twitter" href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
|
||||
<a class="social-link-mastodon" href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
|
||||
<a class="social-link-patreon" href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
|
||||
<a class="social-link-discord" href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
|
||||
<a class="social-link-reddit" href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
|
||||
<a class="social-link-github" href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
2
BUILD.md
2
BUILD.md
@@ -20,7 +20,7 @@ There are also a few forks of existing packages under the "fork-*" name.
|
||||
|
||||
- Install node 16+ - 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`.
|
||||
- macOS: Install Cocoapods - `brew install cocoapods`
|
||||
- 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`
|
||||
|
||||
|
||||
@@ -8,36 +8,66 @@ RUN apt-get update \
|
||||
# Enables Yarn
|
||||
RUN corepack enable
|
||||
|
||||
RUN echo "Node: $(node --version)" \
|
||||
&& echo "Npm: $(npm --version)" \
|
||||
&& echo "Yarn: $(yarn --version)"
|
||||
RUN echo "Node: $(node --version)"
|
||||
RUN echo "Npm: $(npm --version)"
|
||||
RUN echo "Yarn: $(yarn --version)"
|
||||
|
||||
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}
|
||||
ENV NODE_ENV development
|
||||
|
||||
WORKDIR /home/$user
|
||||
|
||||
RUN mkdir /home/$user/logs \
|
||||
&& mkdir /home/$user/.yarn
|
||||
RUN mkdir /home/$user/logs
|
||||
|
||||
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 .
|
||||
# Install the root scripts but don't run postinstall (which would bootstrap
|
||||
# and build TypeScript files, but we don't have the TypeScript files at
|
||||
# this point)
|
||||
|
||||
COPY --chown=$user:$user package*.json ./
|
||||
COPY --chown=$user:$user .yarn ./.yarn
|
||||
COPY --chown=$user:$user .yarnrc.yml .
|
||||
COPY --chown=$user:$user yarn.lock .
|
||||
COPY --chown=$user:$user gulpfile.js .
|
||||
|
||||
RUN yarn install --inline-builds --mode=skip-build
|
||||
|
||||
# To take advantage of the Docker cache, we first copy all the package.json
|
||||
# and package-lock.json files, as they rarely change, and then bootstrap
|
||||
# all the packages.
|
||||
#
|
||||
# Note that bootstrapping the packages will run all the postinstall
|
||||
# scripts, which means that for packages that have such scripts, we need to
|
||||
# copy all the files.
|
||||
#
|
||||
# We can't run boostrap with "--ignore-scripts" because that would
|
||||
# prevent certain sub-packages, such as sqlite3, from being built
|
||||
|
||||
COPY --chown=$user:$user packages/fork-sax/package*.json ./packages/fork-sax/
|
||||
COPY --chown=$user:$user packages/fork-uslug/package*.json ./packages/fork-uslug/
|
||||
COPY --chown=$user:$user packages/htmlpack/package*.json ./packages/htmlpack/
|
||||
COPY --chown=$user:$user packages/renderer/package*.json ./packages/renderer/
|
||||
COPY --chown=$user:$user packages/tools/package*.json ./packages/tools/
|
||||
COPY --chown=$user:$user packages/lib/package*.json ./packages/lib/
|
||||
COPY --chown=$user:$user tsconfig.json .
|
||||
|
||||
# The following have postinstall scripts so we need to copy all the files.
|
||||
# Since they should rarely change this is not an issue
|
||||
|
||||
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/
|
||||
|
||||
# Then bootstrap only, without compiling the TypeScript files
|
||||
|
||||
RUN yarn install --inline-builds --mode=skip-build
|
||||
|
||||
# Now copy the source files. Put lib and server last as they are more likely to change.
|
||||
|
||||
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
|
||||
@@ -46,23 +76,21 @@ COPY --chown=$user:$user packages/tools ./packages/tools
|
||||
COPY --chown=$user:$user packages/lib ./packages/lib
|
||||
COPY --chown=$user:$user 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
|
||||
# but we can delete it anyway. We can delete the cache because we use
|
||||
# `nodeLinker: node-modules`. If we ever implement Zero Install, we'll need to
|
||||
# keep the cache.
|
||||
#
|
||||
# Note that `yarn install` ignores `NODE_ENV=production` and will install dev
|
||||
# dependencies too, but this is fine because we need them to build the app.
|
||||
# Finally build everything, in particular the TypeScript files. We can't just
|
||||
# run `yarn run build` because that wouldn't run the postinstall scripts in
|
||||
# dependencies (for example the sqlite3 native module would not be built). So
|
||||
# instead we run `yarn install`, which is going to install again all the
|
||||
# packages (but because it's already done it should be fast), and then run the
|
||||
# postinstall scripts, as well as build scripts.
|
||||
|
||||
RUN BUILD_SEQUENCIAL=1 yarn install --inline-builds \
|
||||
&& yarn cache clean \
|
||||
&& rm -rf .yarn/berry
|
||||
RUN BUILD_SEQUENCIAL=1 yarn install --inline-builds
|
||||
|
||||
# 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" ]
|
||||
ENV RUNNING_IN_DOCKER=1
|
||||
EXPOSE ${APP_PORT}
|
||||
|
||||
# Not clear what's the equivalent of "--prefix" in Yarn 3, so keep using npm for
|
||||
# now.
|
||||
CMD [ "npm", "--prefix", "packages/server", "start" ]
|
||||
|
||||
# Build-time metadata
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
|
||||
@@ -219,8 +219,7 @@ then
|
||||
Type=Application
|
||||
Categories=Office;
|
||||
MimeType=x-scheme-handler/joplin;
|
||||
X-GNOME-SingleWindow=true // should be removed eventually as it was upstream to be an XDG specification
|
||||
SingleMainWindow=true
|
||||
X-GNOME-SingleWindow=true
|
||||
EOF
|
||||
|
||||
# Update application icons
|
||||
|
||||
83
README.md
83
README.md
@@ -76,9 +76,9 @@ 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/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/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/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) | | |
|
||||
<!-- SPONSORS-GITHUB -->
|
||||
|
||||
<!-- TOC -->
|
||||
@@ -300,6 +300,7 @@ To add a **Bucket Policy** from the AWS S3 Web Console, navigate to the **Permis
|
||||
{
|
||||
"Sid": "VisualEditor0",
|
||||
"Effect": "Allow",
|
||||
"Principal": "*",
|
||||
"Action": [
|
||||
"s3:ListBucket",
|
||||
"s3:GetBucketLocation",
|
||||
@@ -530,47 +531,47 @@ Current translations:
|
||||
<!-- LOCALE-TABLE-AUTO-GENERATED -->
|
||||
| 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) | 92%
|
||||
<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) | 66%
|
||||
<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) | | 52%
|
||||
<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) | 98%
|
||||
<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) | 96%
|
||||
<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) | 88%
|
||||
<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) | [MrKanister](mailto:s.robin@tutanota.de) | 98%
|
||||
<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/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) | 98%
|
||||
<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 | 92%
|
||||
<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) | 91%
|
||||
<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) | 89%
|
||||
<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) | 77%
|
||||
<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) | | 90%
|
||||
<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) | 84%
|
||||
<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 | 89%
|
||||
<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) | 83%
|
||||
<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) | 92%
|
||||
<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) | 83%
|
||||
<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) | 92%
|
||||
<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) | 98%
|
||||
<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) | | 42%
|
||||
<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) | | 89%
|
||||
<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) | 92%
|
||||
<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) | 82%
|
||||
<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) | 86%
|
||||
<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) | 92%
|
||||
<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) | | 75%
|
||||
<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) | 96%
|
||||
<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) | 89%
|
||||
<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) | 97%
|
||||
<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) | 88%
|
||||
<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/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%
|
||||
<!-- LOCALE-TABLE-AUTO-GENERATED -->
|
||||
|
||||
# Contributors
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ const path = require('path');
|
||||
const { dirname } = require('@joplin/lib/path-utils');
|
||||
const fs = require('fs-extra');
|
||||
const { ipcMain } = require('electron');
|
||||
const { openProcessManager } = require('@joplin/electron-process-manager');
|
||||
|
||||
interface RendererProcessQuitReply {
|
||||
canClose: boolean;
|
||||
@@ -41,6 +42,10 @@ export default class ElectronAppWrapper {
|
||||
this.initialCallbackUrl_ = initialCallbackUrl;
|
||||
}
|
||||
|
||||
public openProcessManager() {
|
||||
openProcessManager(require('@electron/remote/main'));
|
||||
}
|
||||
|
||||
electronApp() {
|
||||
return this.electronApp_;
|
||||
}
|
||||
|
||||
@@ -446,9 +446,8 @@ class Application extends BaseApplication {
|
||||
|
||||
await this.checkForLegacyTemplates();
|
||||
|
||||
// Note: Auto-update is a misnomer in the code.
|
||||
// The code below only checks, if a new version is available.
|
||||
// We only allow Windows and macOS users to automatically check for updates
|
||||
// Note: Auto-update currently doesn't work in Linux: it downloads the update
|
||||
// but then doesn't install it on exit.
|
||||
if (shim.isWindows() || shim.isMac()) {
|
||||
const runAutoUpdateCheck = () => {
|
||||
if (Setting.value('autoUpdateEnabled')) {
|
||||
|
||||
@@ -30,6 +30,10 @@ export class Bridge {
|
||||
return !this.electronApp().electronApp().isPackaged;
|
||||
}
|
||||
|
||||
public openProcessManager() {
|
||||
this.electronApp().openProcessManager();
|
||||
}
|
||||
|
||||
// The build directory contains additional external files that are going to
|
||||
// be packaged by Electron Builder. This is for files that need to be
|
||||
// accessed outside of the Electron app (for example the application icon).
|
||||
|
||||
@@ -56,7 +56,7 @@ class ClipperConfigScreenComponent extends React.Component {
|
||||
|
||||
const containerStyle = Object.assign({}, theme.containerStyle, {
|
||||
overflowY: 'scroll',
|
||||
// padding: theme.configScreenPadding,
|
||||
padding: theme.configScreenPadding,
|
||||
backgroundColor: theme.backgroundColor3,
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import { useCallback, useState, useRef, useEffect } from 'react';
|
||||
import { useCallback, useState } from 'react';
|
||||
import { _ } from '@joplin/lib/locale';
|
||||
import DialogButtonRow, { ClickEvent } from '../DialogButtonRow';
|
||||
import Dialog from '../Dialog';
|
||||
@@ -22,7 +22,6 @@ interface Props {
|
||||
export default function(props: Props) {
|
||||
const [folderTitle, setFolderTitle] = useState('');
|
||||
const [folderIcon, setFolderIcon] = useState<FolderIcon>();
|
||||
const titleInputRef = useRef(null);
|
||||
|
||||
const isNew = !props.folderId;
|
||||
|
||||
@@ -42,14 +41,6 @@ export default function(props: Props) {
|
||||
});
|
||||
}, [props.dispatch]);
|
||||
|
||||
useEffect(() => {
|
||||
titleInputRef.current.focus();
|
||||
|
||||
setTimeout(() => {
|
||||
titleInputRef.current.select();
|
||||
}, 100);
|
||||
}, []);
|
||||
|
||||
const onButtonRowClick = useCallback(async (event: ClickEvent) => {
|
||||
if (event.buttonName === 'cancel') {
|
||||
onClose();
|
||||
@@ -99,7 +90,7 @@ export default function(props: Props) {
|
||||
<div className="form">
|
||||
<div className="form-input-group">
|
||||
<label>{_('Title')}</label>
|
||||
<StyledInput type="text" ref={titleInputRef} value={folderTitle} onChange={onFolderTitleChange}/>
|
||||
<StyledInput type="text" value={folderTitle} onChange={onFolderTitleChange}/>
|
||||
</div>
|
||||
|
||||
<div className="form-input-group">
|
||||
|
||||
@@ -5,7 +5,7 @@ export default function styles(themeId: number) {
|
||||
return {
|
||||
container: {
|
||||
...theme.containerStyle,
|
||||
// padding: theme.configScreenPadding,
|
||||
padding: theme.configScreenPadding,
|
||||
backgroundColor: theme.backgroundColor3,
|
||||
},
|
||||
actionsContainer: {
|
||||
|
||||
@@ -726,6 +726,13 @@ function useMenu(props: Props) {
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'help:toggleTaskList',
|
||||
label: _('Open plugin task list'),
|
||||
click: () => {
|
||||
bridge().openProcessManager();
|
||||
},
|
||||
},
|
||||
|
||||
menuItemDic.toggleSafeMode,
|
||||
menuItemDic.openProfileDirectory,
|
||||
|
||||
@@ -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,
|
||||
} = useScrollHandler(editorRef, webviewRef, props.onScroll);
|
||||
|
||||
const codeMirror_change = useCallback((newBody: string) => {
|
||||
@@ -576,14 +576,9 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
|
||||
const arg0 = args && args.length >= 1 ? args[0] : null;
|
||||
|
||||
if (msg.indexOf('checkboxclick:') === 0) {
|
||||
const { line, from, to } = shared.toggleCheckboxRange(msg, props.content);
|
||||
const newBody = shared.toggleCheckbox(msg, props.content);
|
||||
if (editorRef.current) {
|
||||
// To cancel CodeMirror's layout drift, the scroll position
|
||||
// is recorded before updated, and then it is restored.
|
||||
// Ref. https://github.com/laurent22/joplin/issues/5890
|
||||
const percent = getLineScrollPercent();
|
||||
editorRef.current.replaceRange(line, from, to);
|
||||
setEditorPercentScroll(percent);
|
||||
editorRef.current.updateBody(newBody);
|
||||
}
|
||||
} else if (msg === 'percentScroll') {
|
||||
const percent = arg0;
|
||||
|
||||
@@ -7,7 +7,6 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
|
||||
const ignoreNextEditorScrollTime_ = useRef(Date.now());
|
||||
const ignoreNextEditorScrollEventCount_ = useRef(0);
|
||||
const delayedSetEditorPercentScrollTimeoutID_ = useRef(null);
|
||||
const lastResizeHeight_ = useRef(NaN);
|
||||
|
||||
// Ignores one next scroll event for a short time.
|
||||
const ignoreNextEditorScrollEvent = () => {
|
||||
@@ -91,7 +90,8 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
|
||||
}, [scheduleOnScroll]);
|
||||
|
||||
const editor_scroll = useCallback(() => {
|
||||
const ignored = isNextEditorScrollEventIgnored();
|
||||
if (isNextEditorScrollEventIgnored()) return;
|
||||
|
||||
const cm = editorRef.current;
|
||||
if (isCodeMirrorReady(cm)) {
|
||||
const editorPercent = Math.max(0, Math.min(1, cm.getScrollPercent()));
|
||||
@@ -104,9 +104,7 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
|
||||
// calculates GUI-independent line-based percent
|
||||
const percent = translateScrollPercentE2L(cm, editorPercent);
|
||||
scrollPercent_.current = percent;
|
||||
if (!ignored) {
|
||||
setViewerPercentScroll(percent);
|
||||
}
|
||||
setViewerPercentScroll(percent);
|
||||
}
|
||||
}
|
||||
}, [setViewerPercentScroll]);
|
||||
@@ -119,29 +117,13 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
|
||||
}, []);
|
||||
|
||||
const editor_resize = useCallback((cm) => {
|
||||
if (isCodeMirrorReady(cm)) {
|
||||
// Only when resized, the scroll position is restored.
|
||||
const info = cm.getScrollInfo();
|
||||
const height = info.height - info.clientHeight;
|
||||
if (height !== lastResizeHeight_.current) {
|
||||
restoreEditorPercentScroll();
|
||||
lastResizeHeight_.current = height;
|
||||
}
|
||||
}
|
||||
}, []);
|
||||
|
||||
const getLineScrollPercent = useCallback(() => {
|
||||
const cm = editorRef.current;
|
||||
if (isCodeMirrorReady(cm)) {
|
||||
const ePercent = cm.getScrollPercent();
|
||||
return translateScrollPercentE2L(cm, ePercent);
|
||||
} else {
|
||||
return scrollPercent_.current;
|
||||
if (cm) {
|
||||
restoreEditorPercentScroll();
|
||||
}
|
||||
}, []);
|
||||
|
||||
return {
|
||||
resetScroll, setEditorPercentScroll, setViewerPercentScroll, editor_scroll, editor_resize, getLineScrollPercent,
|
||||
resetScroll, setEditorPercentScroll, setViewerPercentScroll, editor_scroll, editor_resize,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -167,8 +167,8 @@ class NoteSearchBarComponent extends React.Component {
|
||||
type="text"
|
||||
style={{ width: 200, marginRight: 5, backgroundColor: this.backgroundColor, color: theme.color }}
|
||||
/>
|
||||
{allowScrolling ? previousButton : null}
|
||||
{allowScrolling ? nextButton : null}
|
||||
{allowScrolling ? previousButton : null}
|
||||
{allowScrolling ? matchesFoundString : null}
|
||||
{!allowScrolling ? viewerWarning : null}
|
||||
</div>
|
||||
|
||||
@@ -56,7 +56,7 @@ class PromptDialog extends React.Component {
|
||||
top: 0,
|
||||
left: 0,
|
||||
width: width,
|
||||
height: height,
|
||||
height: height - paddingTop,
|
||||
backgroundColor: 'rgba(0,0,0,0.6)',
|
||||
display: visible ? 'flex' : 'none',
|
||||
alignItems: 'flex-start',
|
||||
|
||||
@@ -15,7 +15,6 @@ export const Root = styled.div`
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
min-width: 30px;
|
||||
`;
|
||||
|
||||
interface Props {
|
||||
@@ -139,21 +138,6 @@ 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
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
const React = require('react');
|
||||
const { connect } = require('react-redux');
|
||||
const { themeStyle } = require('@joplin/lib/theme');
|
||||
const CommandService = require('@joplin/lib/services/CommandService').default;
|
||||
|
||||
class TagItemComponent extends React.Component {
|
||||
render() {
|
||||
const theme = themeStyle(this.props.themeId);
|
||||
const style = Object.assign({}, theme.tagStyle);
|
||||
const { title, id } = this.props;
|
||||
const title = this.props.title;
|
||||
|
||||
return <button style={style} onClick={() => CommandService.instance().execute('openTag', id)}>{title}</button>;
|
||||
return <span style={style}>{title}</span>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,6 @@ function TagList(props: Props) {
|
||||
for (let i = 0; i < tags.length; i++) {
|
||||
const props = {
|
||||
title: tags[i].title,
|
||||
id: tags[i].id,
|
||||
key: tags[i].id,
|
||||
};
|
||||
output.push(<TagItem {...props} />);
|
||||
|
||||
@@ -151,7 +151,7 @@ General classes
|
||||
|
||||
body, button {
|
||||
color: var(--joplin-color);
|
||||
font-size: 13px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
div, span, a {
|
||||
@@ -159,7 +159,7 @@ div, span, a {
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
font-size: 24px;
|
||||
|
||||
&.-no-top-margin {
|
||||
margin-top: 0;
|
||||
@@ -193,7 +193,7 @@ div.form,
|
||||
|
||||
p {
|
||||
&.-small {
|
||||
font-size: 11px;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/app-desktop",
|
||||
"version": "2.7.4",
|
||||
"version": "2.7.0",
|
||||
"description": "Joplin for Desktop",
|
||||
"main": "main.js",
|
||||
"private": true,
|
||||
@@ -134,9 +134,10 @@
|
||||
"7zip-bin-win": "^2.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@electron/remote": "^2.0.1",
|
||||
"@electron/remote": "2.0.1",
|
||||
"@fortawesome/fontawesome-free": "^5.13.0",
|
||||
"@joeattardi/emoji-button": "^4.6.0",
|
||||
"@joplin/electron-process-manager": "workspace:^",
|
||||
"@joplin/lib": "~2.7",
|
||||
"@joplin/renderer": "~2.7",
|
||||
"async-mutex": "^0.1.3",
|
||||
|
||||
@@ -19,7 +19,6 @@ 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');
|
||||
|
||||
@@ -82,7 +81,7 @@ class Dialog extends React.PureComponent<Props, State> {
|
||||
private inputRef: any;
|
||||
private itemListRef: any;
|
||||
private listUpdateIID_: any;
|
||||
private markupToHtml_: MarkupToHtml;
|
||||
private markupToHtml_: any;
|
||||
private userCallback_: any = null;
|
||||
|
||||
constructor(props: Props) {
|
||||
|
||||
@@ -10,12 +10,6 @@
|
||||
|
||||
# ./runForTesting.sh 1 createUsers,createData,reset,e2ee,sync && ./runForTesting.sh 2 reset,e2ee,sync && ./runForTesting.sh 1
|
||||
|
||||
# ----------------------------------------------------------------------------------
|
||||
# First user has E2EE, but second one doesn't:
|
||||
# ----------------------------------------------------------------------------------
|
||||
|
||||
# ./runForTesting.sh 1 createUsers,createData,reset,e2ee,sync && ./runForTesting.sh 2 reset,sync && ./runForTesting.sh 1
|
||||
|
||||
# ----------------------------------------------------------------------------------
|
||||
# Without E2EE:
|
||||
# ----------------------------------------------------------------------------------
|
||||
|
||||
4
packages/electron-process-manager/.babelrc
Normal file
4
packages/electron-process-manager/.babelrc
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"presets" : ["@babel/preset-env", "@babel/preset-react"],
|
||||
"plugins": ["@babel/plugin-proposal-class-properties"]
|
||||
}
|
||||
BIN
packages/electron-process-manager/.github/screenshots/window.png
vendored
Normal file
BIN
packages/electron-process-manager/.github/screenshots/window.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 253 KiB |
1
packages/electron-process-manager/.gitignore
vendored
Normal file
1
packages/electron-process-manager/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
dist/
|
||||
5
packages/electron-process-manager/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
packages/electron-process-manager/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
</state>
|
||||
</component>
|
||||
13
packages/electron-process-manager/.idea/electron-process-manager.iml
generated
Normal file
13
packages/electron-process-manager/.idea/electron-process-manager.iml
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<content url="file://$MODULE_DIR$/../electron-process-reporter" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
81
packages/electron-process-manager/.idea/misc.xml
generated
Normal file
81
packages/electron-process-manager/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="JSX" />
|
||||
</component>
|
||||
<component name="MarkdownProjectSettings" wasCopied="true">
|
||||
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.5" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false">
|
||||
<PanelProvider>
|
||||
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
|
||||
</PanelProvider>
|
||||
</PreviewSettings>
|
||||
<ParserSettings gitHubSyntaxChange="false" emojiShortcuts="0" emojiImages="0">
|
||||
<PegdownExtensions>
|
||||
<option name="ABBREVIATIONS" value="false" />
|
||||
<option name="ANCHORLINKS" value="true" />
|
||||
<option name="ASIDE" value="false" />
|
||||
<option name="ATXHEADERSPACE" value="true" />
|
||||
<option name="AUTOLINKS" value="true" />
|
||||
<option name="DEFINITIONS" value="false" />
|
||||
<option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
|
||||
<option name="FENCED_CODE_BLOCKS" value="true" />
|
||||
<option name="FOOTNOTES" value="false" />
|
||||
<option name="HARDWRAPS" value="false" />
|
||||
<option name="HTML_DEEP_PARSER" value="false" />
|
||||
<option name="INSERTED" value="false" />
|
||||
<option name="QUOTES" value="false" />
|
||||
<option name="RELAXEDHRULES" value="true" />
|
||||
<option name="SMARTS" value="false" />
|
||||
<option name="STRIKETHROUGH" value="true" />
|
||||
<option name="SUBSCRIPT" value="false" />
|
||||
<option name="SUPERSCRIPT" value="false" />
|
||||
<option name="SUPPRESS_HTML_BLOCKS" value="false" />
|
||||
<option name="SUPPRESS_INLINE_HTML" value="false" />
|
||||
<option name="TABLES" value="true" />
|
||||
<option name="TASKLISTITEMS" value="true" />
|
||||
<option name="TOC" value="false" />
|
||||
<option name="WIKILINKS" value="true" />
|
||||
</PegdownExtensions>
|
||||
<ParserOptions>
|
||||
<option name="ADMONITION_EXT" value="false" />
|
||||
<option name="ATTRIBUTES_EXT" value="false" />
|
||||
<option name="COMMONMARK_LISTS" value="true" />
|
||||
<option name="DUMMY" value="false" />
|
||||
<option name="EMOJI_SHORTCUTS" value="true" />
|
||||
<option name="ENUMERATED_REFERENCES_EXT" value="false" />
|
||||
<option name="FLEXMARK_FRONT_MATTER" value="false" />
|
||||
<option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
|
||||
<option name="GFM_TABLE_RENDERING" value="true" />
|
||||
<option name="GITBOOK_URL_ENCODING" value="false" />
|
||||
<option name="GITHUB_LISTS" value="false" />
|
||||
<option name="GITHUB_WIKI_LINKS" value="true" />
|
||||
<option name="HEADER_ID_NO_DUPED_DASHES" value="false" />
|
||||
<option name="JEKYLL_FRONT_MATTER" value="false" />
|
||||
<option name="NO_TEXT_ATTRIBUTES" value="false" />
|
||||
<option name="PARSE_HTML_ANCHOR_ID" value="false" />
|
||||
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
|
||||
</ParserOptions>
|
||||
</ParserSettings>
|
||||
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false">
|
||||
<GeneratorProvider>
|
||||
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
|
||||
</GeneratorProvider>
|
||||
<headerTop />
|
||||
<headerBottom />
|
||||
<bodyTop />
|
||||
<bodyBottom />
|
||||
</HtmlSettings>
|
||||
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
|
||||
<StylesheetProvider>
|
||||
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
|
||||
</StylesheetProvider>
|
||||
<ScriptProviders />
|
||||
<cssText />
|
||||
<cssUriHistory />
|
||||
</CssSettings>
|
||||
<HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
|
||||
<LinkMapSettings>
|
||||
<textMaps />
|
||||
</LinkMapSettings>
|
||||
</component>
|
||||
</project>
|
||||
8
packages/electron-process-manager/.idea/modules.xml
generated
Normal file
8
packages/electron-process-manager/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/electron-process-manager.iml" filepath="$PROJECT_DIR$/.idea/electron-process-manager.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
packages/electron-process-manager/.idea/vcs.xml
generated
Normal file
6
packages/electron-process-manager/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
107
packages/electron-process-manager/.idea/workspace.xml
generated
Normal file
107
packages/electron-process-manager/.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="b935834e-d3d3-420f-991d-e49e232dd71b" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileColors">
|
||||
<fileColor scope="Non-Project Files (Material Default)" color="2E3C43" />
|
||||
<fileColor scope="Non-Project Files (Material Darker)" color="323232" />
|
||||
<fileColor scope="Non-Project Files (Material Lighter)" color="eae8e8" />
|
||||
<fileColor scope="Non-Project Files (Material Palenight)" color="2f2e43" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="PREVIOUS_COMMIT_AUTHORS">
|
||||
<list>
|
||||
<option value="Kris Dages <krisdages@git.whiteboxsoftware.net>" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="GitSEFilterConfiguration">
|
||||
<file-type-list>
|
||||
<filtered-out-file-type name="LOCAL_BRANCH" />
|
||||
<filtered-out-file-type name="REMOTE_BRANCH" />
|
||||
<filtered-out-file-type name="TAG" />
|
||||
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
|
||||
</file-type-list>
|
||||
</component>
|
||||
<component name="ProjectId" id="1hYhEkXEjWlOUW5DO64AadCwogW" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="autoscrollFromSource" value="true" />
|
||||
<option name="autoscrollToSource" value="true" />
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/../electron-process-reporter" />
|
||||
<property name="node.js.detected.package.eslint" value="true" />
|
||||
<property name="node.js.detected.package.tslint" value="true" />
|
||||
<property name="node.js.selected.package.eslint" value="(autodetect)" />
|
||||
<property name="node.js.selected.package.tslint" value="(autodetect)" />
|
||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
||||
<property name="nodejs_package_manager_path" value="yarn" />
|
||||
<property name="settings.editor.selected.configurable" value="web-ide.project.structure" />
|
||||
<property name="ts.external.directory.path" value="$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external" />
|
||||
<property name="vue.rearranger.settings.migration" value="true" />
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="b935834e-d3d3-420f-991d-e49e232dd71b" name="Default Changelist" comment="" />
|
||||
<created>1600193824206</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1600193824206</updated>
|
||||
<workItem from="1600193825399" duration="438000" />
|
||||
<workItem from="1606177958157" duration="419000" />
|
||||
<workItem from="1616558380418" duration="1481000" />
|
||||
<workItem from="1627318845586" duration="3411000" />
|
||||
<workItem from="1627323366882" duration="72000" />
|
||||
<workItem from="1627489266598" duration="1192000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="(fix) Add `enableRemoteModule: true` to ProcessManagerWindow webPreferences Fixes broken UI in Electron 10">
|
||||
<created>1600193995342</created>
|
||||
<option name="number" value="00001" />
|
||||
<option name="presentableId" value="LOCAL-00001" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1600193995342</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00002" summary="(breaking) Use `@electron/remote` instead of deprecated `remote` module Updated min electron version to 10. Bump version to 2.0.0">
|
||||
<created>1627322100905</created>
|
||||
<option name="number" value="00002" />
|
||||
<option name="presentableId" value="LOCAL-00002" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1627322100905</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00003" summary="Update README.md for fork">
|
||||
<created>1627490446165</created>
|
||||
<option name="number" value="00003" />
|
||||
<option name="presentableId" value="LOCAL-00003" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1627490446165</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="4" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="(fix) Add `enableRemoteModule: true` to ProcessManagerWindow webPreferences Fixes broken UI in Electron 10" />
|
||||
<MESSAGE value="(breaking) Use `@electron/remote` instead of deprecated `remote` module Updated min electron version to 10. Bump version to 2.0.0" />
|
||||
<MESSAGE value="Update README.md for fork" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Update README.md for fork" />
|
||||
</component>
|
||||
</project>
|
||||
92
packages/electron-process-manager/README.md
Normal file
92
packages/electron-process-manager/README.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# Process Manager UI for Electron Apps
|
||||
|
||||
* * *
|
||||
|
||||
2022-01-06: Forked from https://github.com/krisdages/electron-process-manager
|
||||
|
||||
* * *
|
||||
|
||||
## Fork using @electron/remote instead of builtin remote module
|
||||
* Minimum electron version is `10`
|
||||
* [@electron/remote](https://github.com/electron/remote) is a peerDependency. It needs to be initialized in the main process. Follow the instructions in the link.
|
||||
|
||||
## Original 1.0 Readme
|
||||
|
||||
This package provides a process manager UI for Electron applications.
|
||||
|
||||
It opens a window displaying a table of every processes run by the Electron application with information (type, URL for `webContents`, memory..).
|
||||
|
||||
[](https://badge.fury.io/js/electron-process-manager)
|
||||
|
||||

|
||||
|
||||
~~:warning: For `@electron>=3.0.0, <7.x`, use version `0.7.1` of this package.
|
||||
For versions `>=7.x`, use latest.~~
|
||||
|
||||
It can be useful to debug performance of an app with several `webview`.
|
||||
|
||||
It's inspired from Chrome's task manager.
|
||||
|
||||
## Features
|
||||
|
||||
- [ ] Memory reporting
|
||||
- [ ] Link memory data to web-contents (for electron >=1.7.1)
|
||||
- [x] Kill a process from the UI
|
||||
- [x] Open developer tools for a given process
|
||||
- [x] CPU metrics
|
||||
- [x] Sort by columns
|
||||
|
||||
⚠️ Unfortunately, memory info are no longer available in Electron>=4 (see [electron/electron#16179](https://github.com/electron/electron/issues/16179))
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
$ npm install electron-process-manager
|
||||
```
|
||||
|
||||
## Usage
|
||||
```js
|
||||
const { openProcessManager } = require('electron-process-manager');
|
||||
|
||||
openProcessManager();
|
||||
```
|
||||
|
||||
## Options
|
||||
`openProcessManager` function can take options in paramters
|
||||
|
||||
#### options.defaultSorting
|
||||
**defaultSorting.how**: `'ascending' | 'descending'`
|
||||
|
||||
**defaultSorting.path**:
|
||||
|
||||
| Field name | path |
|
||||
|--------------------|----------------------------|
|
||||
| Pid | 'pid' |
|
||||
| WebContents Domain | 'webContents.0.URLDomain' |
|
||||
| Process Type | 'webContents.0.type' |
|
||||
| Private Memory | 'memory.privateBytes' |
|
||||
| Shared Memory | 'memory.sharedBytes' |
|
||||
| Working Set Size | 'memory.workingSetSize' |
|
||||
| % CPU | 'cpu.percentCPUUsage' |
|
||||
| Idle Wake Ups /s | 'cpu.idleWakeupsPerSecond' |
|
||||
| WebContents Id | 'webContents.0.id' |
|
||||
| WebContents Type | 'webContents.0.type' |
|
||||
| WebContents URL | 'webContents.0.URL' |
|
||||
|
||||
example:
|
||||
```js
|
||||
const { openProcessManager } = require('electron-process-manager');
|
||||
|
||||
openProcessManager({ how: 'descending', path: 'cpu.percentCPUUsage' });
|
||||
```
|
||||
|
||||
## Future
|
||||
|
||||
- Add physical memory (noted as "Memory" in Chrome's task manager)
|
||||
- Add networks metrics
|
||||
|
||||
Pull requests welcome :)
|
||||
|
||||
## License
|
||||
|
||||
MIT License
|
||||
37
packages/electron-process-manager/package.json
Normal file
37
packages/electron-process-manager/package.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "@joplin/electron-process-manager",
|
||||
"version": "2.0.1",
|
||||
"description": "Process manager UI for Electron applications - Fork with support for @electron/remote",
|
||||
"main": "src/index.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "webpack"
|
||||
},
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.0.0",
|
||||
"@babel/preset-env": "^7.0.0",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
"babel-loader": "^8.0.0",
|
||||
"bluebird": "^3.7.1",
|
||||
"bluebird-extra": "^2.0.0",
|
||||
"electron": "^10.4.7",
|
||||
"electron-default-menu": "1.0.1",
|
||||
"filesize": "^5.0.3",
|
||||
"format-number": "^3.0.0",
|
||||
"object-path": "^0.11.4",
|
||||
"prop-types": "^15.5.10",
|
||||
"react": "^16.11.0",
|
||||
"react-dom": "^16.11.0",
|
||||
"spectron": "^12.0.0",
|
||||
"webpack": "^2.5.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"electron": ">= 10"
|
||||
},
|
||||
"dependencies": {
|
||||
"electron-process-reporter": "^1.4.0"
|
||||
}
|
||||
}
|
||||
21
packages/electron-process-manager/process-manager.html
Normal file
21
packages/electron-process-manager/process-manager.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Process Manager</title>
|
||||
<link rel="stylesheet" href="vendor/photon.css">
|
||||
<style>
|
||||
.process-table {
|
||||
/*margin: 10px;*/
|
||||
}
|
||||
.process-table-container {
|
||||
overflow-x: scroll;
|
||||
flex: 2;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" class="window"></div>
|
||||
<script src="dist/ui-bundle.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
64
packages/electron-process-manager/src/ProcessManager.js
Normal file
64
packages/electron-process-manager/src/ProcessManager.js
Normal file
@@ -0,0 +1,64 @@
|
||||
const { EventEmitter } = require('events');
|
||||
const process = require('process');
|
||||
const { webContents } = require('electron');
|
||||
|
||||
const ProcessManagerWindow = require('./ProcessManagerWindow.js');
|
||||
|
||||
const defaultOptions = { defaultSorting: { path: null, how: null } };
|
||||
|
||||
class ProcessManager extends EventEmitter {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
// legacy
|
||||
this.openProcessManager = this.open.bind(this);
|
||||
}
|
||||
|
||||
// in case this isn't already done in the app.
|
||||
//
|
||||
// No longer needed because caller should setup electron/remote
|
||||
//
|
||||
// initializeElectronRemote() {
|
||||
// return require('@electron/remote/main').initialize();
|
||||
// }
|
||||
|
||||
// We pass the electron/remote/main instance to the manager to ensure it's
|
||||
// using the same as the main application.
|
||||
//
|
||||
// When using a peer dependency it seems the package ends up using its own
|
||||
// instance, which doesn't work.
|
||||
open(electronRemote, options = defaultOptions) {
|
||||
if (this.window) {
|
||||
this.window.focus();
|
||||
}
|
||||
|
||||
this.window = new ProcessManagerWindow(electronRemote);
|
||||
this.window.defaultSorting = options.defaultSorting || {};
|
||||
this.window.showWhenReady();
|
||||
this.window.on('kill-process', pid => this.killProcess(pid));
|
||||
this.window.on('open-dev-tools', webContentsId => this.openDevTools(webContentsId));
|
||||
this.window.on('closed', () => this.window = null);
|
||||
this.emit('open-window', this.window);
|
||||
|
||||
return this.window;
|
||||
}
|
||||
|
||||
killProcess(pid) {
|
||||
this.emit('will-kill-process', pid, this.window);
|
||||
process.kill(pid);
|
||||
this.emit('killed-process', pid, this.window);
|
||||
}
|
||||
|
||||
openDevTools(webContentsId) {
|
||||
this.emit('will-open-dev-tools', webContentsId, this.window);
|
||||
|
||||
const wc = webContents.fromId(webContentsId);
|
||||
wc.openDevTools({ mode: 'detach' });
|
||||
|
||||
this.emit('did-open-dev-tools', webContentsId, this.window);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = ProcessManager;
|
||||
@@ -0,0 +1,78 @@
|
||||
const { app, BrowserWindow, ipcMain } = require('electron');
|
||||
const path = require('path');
|
||||
const { onExtendedProcessMetrics } = require('electron-process-reporter');
|
||||
|
||||
class ProcessManagerWindow extends BrowserWindow {
|
||||
|
||||
constructor(electronRemote, options) {
|
||||
const winOptions = Object.assign({
|
||||
width: 800,
|
||||
height: 300,
|
||||
useContentSize: true,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
nodeIntegrationInSubFrames: true,
|
||||
nodeIntegrationInWorker: true,
|
||||
webviewTag: true,
|
||||
enableRemoteModule: true,
|
||||
contextIsolation: false,
|
||||
},
|
||||
}, options || {});
|
||||
|
||||
super(winOptions);
|
||||
this.options = options;
|
||||
|
||||
this.attachProcessReporter();
|
||||
|
||||
const indexHtml = `file://${path.join(__dirname, '..', 'process-manager.html')}`;
|
||||
this.loadURL(indexHtml);
|
||||
|
||||
console.info('IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII', electronRemote);
|
||||
electronRemote.enable(this.webContents);
|
||||
|
||||
setTimeout(() => {
|
||||
this.openDevTools();
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
showWhenReady() {
|
||||
this.once('ready-to-show', () => {
|
||||
this.show();
|
||||
});
|
||||
}
|
||||
|
||||
sendStatsReport(reportData) {
|
||||
if (!this.webContents) return;
|
||||
this.webContents.send('process-manager:data', reportData);
|
||||
}
|
||||
|
||||
openDevTools() {
|
||||
this.webContents.openDevTools();
|
||||
}
|
||||
|
||||
attachProcessReporter() {
|
||||
this.subscription = onExtendedProcessMetrics(app)
|
||||
.subscribe(report => this.sendStatsReport(report));
|
||||
ipcMain.on('process-manager:kill-process', (e, pid) => {
|
||||
// ignore if not for us
|
||||
if (!this || this.isDestroyed()) return;
|
||||
if (e.sender !== this.webContents) return;
|
||||
|
||||
this.emit('kill-process', pid);
|
||||
});
|
||||
ipcMain.on('process-manager:open-dev-tools', (e, webContentsId) => {
|
||||
// ignore if not for us
|
||||
if (!this || this.isDestroyed()) return;
|
||||
if (e.sender !== this.webContents) return;
|
||||
|
||||
|
||||
this.emit('open-dev-tools', webContentsId);
|
||||
|
||||
});
|
||||
this.on('closed', () => {
|
||||
if (this.subscription) this.subscription.unsubscribe();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ProcessManagerWindow;
|
||||
4
packages/electron-process-manager/src/index.js
Normal file
4
packages/electron-process-manager/src/index.js
Normal file
@@ -0,0 +1,4 @@
|
||||
const ProcessManager = require('./ProcessManager.js');
|
||||
|
||||
// singleton
|
||||
module.exports = new ProcessManager();
|
||||
106
packages/electron-process-manager/src/ui/ProcessManager.js
Normal file
106
packages/electron-process-manager/src/ui/ProcessManager.js
Normal file
@@ -0,0 +1,106 @@
|
||||
import React from 'react';
|
||||
import { ipcRenderer } from 'electron';
|
||||
import objectPath from 'object-path';
|
||||
import ProcessTable from './ProcessTable';
|
||||
import ToolBar from './ToolBar';
|
||||
|
||||
export default class ProcessManager extends React.Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
processData: null,
|
||||
selectedPid: null,
|
||||
sorting: {
|
||||
path: null,
|
||||
how: null
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
UNSAFE_componentWillMount() {
|
||||
// TODO: disabled for now - the remote package would need to be passed to this script somehow.
|
||||
//
|
||||
// this.setState({ sorting: remote.getCurrentWindow().defaultSorting });
|
||||
ipcRenderer.on('process-manager:data', (_, data) => {
|
||||
this.setState({ processData: data });
|
||||
})
|
||||
}
|
||||
|
||||
canKill() {
|
||||
if (!this.state.selectedPid) return false;
|
||||
const pids = this.state.processData.map(p => p.pid);
|
||||
|
||||
// verify that select pid is in list of processes
|
||||
return pids.indexOf(this.state.selectedPid) !== -1;
|
||||
}
|
||||
|
||||
canOpenDevTool() {
|
||||
return this.canKill() && this.getWebContentsIdForSelectedProcess() !== null;
|
||||
}
|
||||
|
||||
getWebContentsIdForSelectedProcess() {
|
||||
const { processData, selectedPid } = this.state;
|
||||
if (!selectedPid) return null;
|
||||
|
||||
const process = processData.find(p => p.pid === selectedPid);
|
||||
if (!process || !process.webContents || process.webContents.length === 0) return null;
|
||||
|
||||
return process.webContents[0].id;
|
||||
}
|
||||
|
||||
handleKillProcess() {
|
||||
const pid = this.state.selectedPid;
|
||||
if (!pid) return;
|
||||
ipcRenderer.send('process-manager:kill-process', pid);
|
||||
}
|
||||
|
||||
handleOpenDevTool() {
|
||||
const webContentsId = this.getWebContentsIdForSelectedProcess();
|
||||
ipcRenderer.send('process-manager:open-dev-tools', webContentsId);
|
||||
}
|
||||
|
||||
getProcessData() {
|
||||
const { processData, sorting } = this.state;
|
||||
|
||||
if (!sorting.path || !sorting.how) return processData;
|
||||
|
||||
return processData.sort((p1, p2) => {
|
||||
const p1Metric = objectPath.get(p1, sorting.path);
|
||||
const p2Metric = objectPath.get(p2, sorting.path);
|
||||
|
||||
if (p1Metric === p2Metric) return 0;
|
||||
const comp = p1Metric < p2Metric ? -1 : 1;
|
||||
|
||||
return sorting.how == 'ascending' ? comp : -comp;
|
||||
});
|
||||
}
|
||||
|
||||
render () {
|
||||
const { processData } = this.state;
|
||||
if (!processData) return (<span>No data</span>);
|
||||
|
||||
return (
|
||||
<div className="window">
|
||||
<header className="toolbar toolbar-header">
|
||||
<ToolBar
|
||||
disableKill={!this.canKill()}
|
||||
onKillClick={this.handleKillProcess.bind(this)}
|
||||
disabelOpenDevTool={!this.canOpenDevTool()}
|
||||
onOpenDevToolClick={this.handleOpenDevTool.bind(this)}
|
||||
|
||||
/>
|
||||
</header>
|
||||
<div className="process-table-container">
|
||||
<ProcessTable
|
||||
processData={this.getProcessData()}
|
||||
selectedPid={this.state.selectedPid}
|
||||
sorting={this.state.sorting}
|
||||
onSortingChange={sorting => this.setState({ sorting })}
|
||||
onSelectedPidChange={pid => this.setState({ selectedPid: pid })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
75
packages/electron-process-manager/src/ui/ProcessRow.js
Normal file
75
packages/electron-process-manager/src/ui/ProcessRow.js
Normal file
@@ -0,0 +1,75 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import filesize from 'filesize';
|
||||
import format from 'format-number';
|
||||
|
||||
const KB = 1024;
|
||||
const formatPercentage = format({
|
||||
round: 1,
|
||||
padRight: 1
|
||||
});
|
||||
|
||||
export default class ProcessRow extends React.Component {
|
||||
static propTypes = {
|
||||
pid: PropTypes.number,
|
||||
type: PropTypes.string,
|
||||
memory: PropTypes.shape({
|
||||
peakWorkingSetSize: PropTypes.number,
|
||||
workingSetSize: PropTypes.number
|
||||
}),
|
||||
cpu: PropTypes.shape({
|
||||
percentCPUUsage: PropTypes.number,
|
||||
idleWakeupsPerSecond: PropTypes.number
|
||||
}),
|
||||
webContents: PropTypes.arrayOf(PropTypes.shape({
|
||||
id: PropTypes.number,
|
||||
type: PropTypes.string,
|
||||
URL: PropTypes.string,
|
||||
URLDomain: PropTypes.string
|
||||
})),
|
||||
selected: PropTypes.bool,
|
||||
onSelect: PropTypes.func
|
||||
}
|
||||
|
||||
render() {
|
||||
const { webContents, memory } = this.props;
|
||||
if (!webContents || webContents.length === 0) {
|
||||
return (
|
||||
<tr
|
||||
className={this.props.selected ? 'selected': ''}
|
||||
onClick={this.props.onSelect}
|
||||
>
|
||||
<td>{this.props.pid}</td>
|
||||
<td></td>
|
||||
<td>{this.props.type}</td>
|
||||
<td>{memory ? filesize(memory.workingSetSize*KB) : 'N/A'}</td>
|
||||
<td>{formatPercentage(this.props.cpu.percentCPUUsage)}</td>
|
||||
<td>{this.props.cpu.idleWakeupsPerSecond}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
)
|
||||
} else {
|
||||
// FIX ME: we consider we have only have 1 webContents per process
|
||||
const wc = webContents[0];
|
||||
|
||||
return (
|
||||
<tr
|
||||
className={this.props.selected ? 'selected': ''}
|
||||
onClick={this.props.onSelect}
|
||||
>
|
||||
<td>{this.props.pid}</td>
|
||||
<td>{wc.URLDomain}</td>
|
||||
<td>{this.props.type}</td>
|
||||
<td>{memory ? filesize(memory.workingSetSize*KB) : 'N/A'}</td>
|
||||
<td>{formatPercentage(this.props.cpu.percentCPUUsage)}</td>
|
||||
<td>{this.props.cpu.idleWakeupsPerSecond}</td>
|
||||
<td>{wc.id}</td>
|
||||
<td>{wc.type}</td>
|
||||
<td>{wc.URL}</td>
|
||||
</tr>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
94
packages/electron-process-manager/src/ui/ProcessTable.js
Normal file
94
packages/electron-process-manager/src/ui/ProcessTable.js
Normal file
@@ -0,0 +1,94 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import ProcessRow from './ProcessRow';
|
||||
import ProcessTableHeader from './ProcessTableHeader';
|
||||
|
||||
export default class ProcessTable extends React.Component {
|
||||
static propTypes = {
|
||||
processData: PropTypes.arrayOf(PropTypes.object),
|
||||
selectedPid: PropTypes.number,
|
||||
sorting: PropTypes.PropTypes.shape({
|
||||
path: PropTypes.string,
|
||||
how: PropTypes.string
|
||||
}),
|
||||
onSortingChange: PropTypes.func,
|
||||
onSelectedPidChange: PropTypes.func
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<table className="process-table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<ProcessTableHeader
|
||||
path='pid'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>Pid</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='webContents.0.URLDomain'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>WebContents Domain</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='webContents.0.type'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>Process Type</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='memory.workingSetSize'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>Working Set Size</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='cpu.percentCPUUsage'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>% CPU</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='cpu.idleWakeupsPerSecond'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>Idle Wake Ups /s</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='webContents.0.id'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>WebContents Id</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='webContents.0.type'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>WebContents Type</ProcessTableHeader>
|
||||
|
||||
<ProcessTableHeader
|
||||
path='webContents.0.URL'
|
||||
sorting={this.props.sorting}
|
||||
onSortingChange={this.props.onSortingChange}
|
||||
>WebContents URL</ProcessTableHeader>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{
|
||||
this.props.processData.map(p =>
|
||||
<ProcessRow
|
||||
key={p.pid}
|
||||
{...p}
|
||||
onSelect={() => this.props.onSelectedPidChange(p.pid)}
|
||||
selected={this.props.selectedPid === p.pid}
|
||||
/>
|
||||
)
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
|
||||
export default class ProcessTableHeader extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.handleClick = this.handleClick.bind(this);
|
||||
}
|
||||
static propTypes = {
|
||||
children: PropTypes.node,
|
||||
path: PropTypes.string.isRequired,
|
||||
sorting: PropTypes.PropTypes.shape({
|
||||
path: PropTypes.string,
|
||||
how: PropTypes.string
|
||||
}),
|
||||
onSortingChange: PropTypes.func
|
||||
}
|
||||
|
||||
getSortCharacter() {
|
||||
if (!this.sortHow) return (
|
||||
<span> </span>
|
||||
);
|
||||
return this.sortHow == 'ascending' ? '👆' : '👇'
|
||||
}
|
||||
|
||||
get sortHow() {
|
||||
if (!this.props.sorting) return null;
|
||||
|
||||
if (this.props.sorting.path == this.props.path){
|
||||
return this.props.sorting.how;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
handleClick() {
|
||||
let nextSortHow = null;
|
||||
if(this.sortHow === null) {
|
||||
nextSortHow = 'ascending';
|
||||
} else if (this.sortHow === 'ascending') {
|
||||
nextSortHow = 'descending';
|
||||
} else {
|
||||
nextSortHow = null;
|
||||
}
|
||||
this.props.onSortingChange({
|
||||
path: this.props.path,
|
||||
how: nextSortHow
|
||||
});
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<th onClick={this.handleClick}>
|
||||
{this.props.children}
|
||||
|
||||
{this.getSortCharacter()}
|
||||
</th>
|
||||
)
|
||||
}
|
||||
}
|
||||
35
packages/electron-process-manager/src/ui/ToolBar.js
Normal file
35
packages/electron-process-manager/src/ui/ToolBar.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
export default class ToolBar extends React.Component {
|
||||
|
||||
static propTypes = {
|
||||
onKillClick: PropTypes.func,
|
||||
disableKill: PropTypes.bool,
|
||||
onOpenDevToolClick: PropTypes.func,
|
||||
disabelOpenDevTool: PropTypes.bool
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="toolbar-actions">
|
||||
<div className="btn-group">
|
||||
<button
|
||||
className="btn btn-default"
|
||||
disabled={this.props.disableKill}
|
||||
onClick={this.props.onKillClick}
|
||||
>
|
||||
End process
|
||||
</button>
|
||||
<button
|
||||
className="btn btn-default"
|
||||
disabled={this.props.disabelOpenDevTool}
|
||||
onClick={this.props.onOpenDevToolClick}
|
||||
>
|
||||
Open Dev Tool
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
6
packages/electron-process-manager/src/ui/index.js
Normal file
6
packages/electron-process-manager/src/ui/index.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import React from 'react';
|
||||
import { render } from 'react-dom';
|
||||
|
||||
import ProcessManager from './ProcessManager';
|
||||
|
||||
render(<ProcessManager/>, document.getElementById('app'));
|
||||
30
packages/electron-process-manager/tests/test.js
Normal file
30
packages/electron-process-manager/tests/test.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const Application = require('spectron').Application;
|
||||
const { join } = require('path');
|
||||
const assert = require('assert');
|
||||
|
||||
const app = new Application({
|
||||
env: { TEST_PROCESS_MANAGER: 1 },
|
||||
path: require(join(__dirname, '../node_modules/electron')),
|
||||
args: [join(__dirname, '../example/main.js')],
|
||||
});
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
await app.start();
|
||||
await app.client.waitUntilWindowLoaded();
|
||||
await app.electron.ipcRenderer.send('open-process-manager');
|
||||
// This looks to be incorrect signature for assert.
|
||||
// assert(app.client.getWindowCount(), 2);
|
||||
// There are 2 webviews on the index page. They are included in windowCount, so it's 4, not 2.
|
||||
assert.equal(await app.client.getWindowCount(), 4);
|
||||
await app.client.switchWindow(/process-manager\.html/);
|
||||
await (await app.client.$('#app .process-table')).waitForDisplayed({ timeout: 60000 });
|
||||
await app.stop();
|
||||
} catch (error) {
|
||||
console.error('Test failed', error);
|
||||
if (app && app.isRunning()) {
|
||||
await app.stop();
|
||||
process.exit(1);
|
||||
} else { process.exit(1); }
|
||||
}
|
||||
})();
|
||||
2341
packages/electron-process-manager/vendor/photon.css
vendored
Executable file
2341
packages/electron-process-manager/vendor/photon.css
vendored
Executable file
File diff suppressed because it is too large
Load Diff
27
packages/electron-process-manager/webpack.config.js
Normal file
27
packages/electron-process-manager/webpack.config.js
Normal file
@@ -0,0 +1,27 @@
|
||||
// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
|
||||
const webpack = require('webpack');
|
||||
const path = require('path');
|
||||
|
||||
const BUILD_DIR = path.resolve(__dirname, 'dist');
|
||||
|
||||
const config = {
|
||||
entry: path.resolve(__dirname, 'src/ui/index.js'),
|
||||
// mode: 'development',
|
||||
devtool: 'eval-source-map',
|
||||
output: {
|
||||
path: BUILD_DIR,
|
||||
filename: 'ui-bundle.js',
|
||||
},
|
||||
module: {
|
||||
loaders: [
|
||||
{
|
||||
test: /\.(jsx|js)?$/,
|
||||
loader: 'babel-loader',
|
||||
include: path.resolve(__dirname, 'src/ui'),
|
||||
},
|
||||
],
|
||||
},
|
||||
target: 'electron-renderer',
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
@@ -10,9 +10,6 @@
|
||||
"keywords": [
|
||||
"joplin-plugin"
|
||||
],
|
||||
"files": [
|
||||
"publish"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.0.14",
|
||||
"chalk": "^4.1.0",
|
||||
|
||||
@@ -98,14 +98,14 @@ class SyncTargetAmazonS3 extends BaseSyncTarget {
|
||||
// We could implement that here, but the above workaround saves some code.
|
||||
|
||||
static async checkConfig(options) {
|
||||
const fileApi = await SyncTargetAmazonS3.newFileApi_(SyncTargetAmazonS3.id(), options);
|
||||
fileApi.requestRepeatCount_ = 0;
|
||||
|
||||
const output = {
|
||||
ok: false,
|
||||
errorMessage: '',
|
||||
};
|
||||
try {
|
||||
const fileApi = await SyncTargetAmazonS3.newFileApi_(SyncTargetAmazonS3.id(), options);
|
||||
fileApi.requestRepeatCount_ = 0;
|
||||
|
||||
const headBucketReq = new Promise((resolve, reject) => {
|
||||
fileApi.driver().api().send(
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ export const runtime = (): CommandRuntime => {
|
||||
return 'auth';
|
||||
}
|
||||
|
||||
reg.logger().error('Not authenticated with sync target - please check your credentials.');
|
||||
reg.logger().info('Not authentified with sync target - please check your credential.');
|
||||
return 'error';
|
||||
}
|
||||
|
||||
@@ -43,13 +43,8 @@ export const runtime = (): CommandRuntime => {
|
||||
try {
|
||||
sync = await reg.syncTarget().synchronizer();
|
||||
} catch (error) {
|
||||
reg.logger().error('Could not initialise synchroniser: ');
|
||||
reg.logger().error(error);
|
||||
error.message = `Could not initialise synchroniser: ${error.message}`;
|
||||
utils.store.dispatch({
|
||||
type: 'SYNC_REPORT_UPDATE',
|
||||
report: { errors: [error] },
|
||||
});
|
||||
reg.logger().info('Could not acquire synchroniser:');
|
||||
reg.logger().info(error);
|
||||
return 'error';
|
||||
}
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ shared.toggleIsTodo_onPress = function(comp) {
|
||||
comp.setState(newState);
|
||||
};
|
||||
|
||||
function toggleCheckboxLine(ipcMessage, noteBody) {
|
||||
shared.toggleCheckbox = function(ipcMessage, noteBody) {
|
||||
const newBody = noteBody.split('\n');
|
||||
const p = ipcMessage.split(':');
|
||||
const lineIndex = Number(p[p.length - 1]);
|
||||
@@ -281,18 +281,7 @@ function toggleCheckboxLine(ipcMessage, noteBody) {
|
||||
} else {
|
||||
line = line.replace(/- \[x\] /i, '- [ ] ');
|
||||
}
|
||||
return [newBody, lineIndex, line];
|
||||
}
|
||||
|
||||
shared.toggleCheckboxRange = function(ipcMessage, noteBody) {
|
||||
const [lineIndex, line] = toggleCheckboxLine(ipcMessage, noteBody).slice(1);
|
||||
const from = { line: lineIndex, ch: 0 };
|
||||
const to = { line: lineIndex, ch: line.length };
|
||||
return { line, from, to };
|
||||
};
|
||||
|
||||
shared.toggleCheckbox = function(ipcMessage, noteBody) {
|
||||
const [newBody, lineIndex, line] = toggleCheckboxLine(ipcMessage, noteBody);
|
||||
newBody[lineIndex] = line;
|
||||
return newBody.join('\n');
|
||||
};
|
||||
|
||||
@@ -105,7 +105,7 @@ shared.synchronize_press = async function(comp) {
|
||||
return 'auth';
|
||||
}
|
||||
|
||||
reg.logger().error('Not authenticated with sync target - please check your credentials.');
|
||||
reg.logger().info('Not authentified with sync target - please check your credential.');
|
||||
return 'error';
|
||||
}
|
||||
|
||||
@@ -113,13 +113,8 @@ shared.synchronize_press = async function(comp) {
|
||||
try {
|
||||
sync = await reg.syncTarget().synchronizer();
|
||||
} catch (error) {
|
||||
reg.logger().error('Could not initialise synchroniser: ');
|
||||
reg.logger().error(error);
|
||||
error.message = `Could not initialise synchroniser: ${error.message}`;
|
||||
comp.props.dispatch({
|
||||
type: 'SYNC_REPORT_UPDATE',
|
||||
report: { errors: [error] },
|
||||
});
|
||||
reg.logger().info('Could not acquire synchroniser:');
|
||||
reg.logger().info(error);
|
||||
return 'error';
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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
|
||||
@@ -137,6 +138,40 @@ 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();
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Auto": "تلقائي",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "ادراج النصف الآخر للأقواس و علامات الإقتباس.",
|
||||
"Automatically switch theme to match system theme": "التبديل تلقائيا للتنسيق لمطابقة تنسيق النضام",
|
||||
"Automatically update the application": "تحديث التطبيق آلياً",
|
||||
"Back": "عودة",
|
||||
"Bold": "غامق",
|
||||
"Browse all plugins": "تصفح جميع المكونات الإضافية",
|
||||
@@ -484,6 +485,7 @@
|
||||
"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\" لأنه عنوان محجوز.",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"Authentication was not completed (did not receive an authentication token).": "Оторизирането не беше завършено (не получих оторизационен жетон).",
|
||||
"Authorisation token:": "Оторизационен жетон:",
|
||||
"Auto": "Автоматичен",
|
||||
"Automatically update the application": "Автоматично обновление на приложението",
|
||||
"Back": "Назад",
|
||||
"Bold": "Удебелен",
|
||||
"Browse...": "Търсене...",
|
||||
@@ -280,6 +281,7 @@
|
||||
"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",
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
"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",
|
||||
@@ -352,6 +353,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -79,9 +79,10 @@
|
||||
"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 totes les extensions",
|
||||
"Browse all plugins": "Navega per tots els connectors",
|
||||
"Browse...": "Navega...",
|
||||
"Bulleted List": "Llista de pics",
|
||||
"Cancel": "Cancel·la",
|
||||
@@ -100,7 +101,6 @@
|
||||
"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,12 +139,10 @@
|
||||
"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",
|
||||
@@ -152,12 +150,9 @@
|
||||
"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 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 install plugin: %s": "No s'ha pogut instal·lar el complement: %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ó",
|
||||
@@ -197,7 +192,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 l'extensió \"%s\"?",
|
||||
"Delete plugin \"%s\"?": "Voleu suprimir el complement \"%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.",
|
||||
@@ -228,7 +223,6 @@
|
||||
"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",
|
||||
@@ -280,16 +274,12 @@
|
||||
"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",
|
||||
@@ -298,7 +288,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 errors",
|
||||
"Errors only": "Només els 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ó.",
|
||||
@@ -331,13 +321,11 @@
|
||||
"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",
|
||||
@@ -348,10 +336,8 @@
|
||||
"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",
|
||||
@@ -389,10 +375,8 @@
|
||||
"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.",
|
||||
@@ -415,14 +399,12 @@
|
||||
"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",
|
||||
@@ -430,7 +412,6 @@
|
||||
"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",
|
||||
@@ -438,30 +419,22 @@
|
||||
"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 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`.",
|
||||
"Manage your plugins": "Gestioneu els connectors",
|
||||
"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 %dnotes al bloc de notes \"%s\"?",
|
||||
"Move %d notes to notebook \"%s\"?": "Voleu moure %d notes 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:",
|
||||
@@ -495,7 +468,6 @@
|
||||
"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",
|
||||
@@ -513,12 +485,11 @@
|
||||
"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",
|
||||
@@ -551,21 +522,19 @@
|
||||
"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 aquesta extensió",
|
||||
"Please upgrade Joplin to use this plugin": "Si us plau, actualitzeu Joplin per a utilitzar aquest connector",
|
||||
"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 de les extensions",
|
||||
"Plugins": "Extensions",
|
||||
"Plugin tools": "Eines dels connectors",
|
||||
"Plugins": "Connectors",
|
||||
"Portrait": "Retrat",
|
||||
"Possible keys/values:": "Valors/claus possibles:",
|
||||
"Possible values: %s.": "Valors possibles: %s.",
|
||||
@@ -576,13 +545,12 @@
|
||||
"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 definir la contrasenya de desxifrat.",
|
||||
"Press to set the decryption password.": "Premeu per a establir la contrasenya de desxifratge.",
|
||||
"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",
|
||||
@@ -607,7 +575,6 @@
|
||||
"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",
|
||||
@@ -620,13 +587,7 @@
|
||||
"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.",
|
||||
"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.",
|
||||
"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.",
|
||||
"Save": "Desa",
|
||||
"Save alarm": "Desa l'alarma",
|
||||
"Save as...": "Anomena i desa...",
|
||||
@@ -647,7 +608,6 @@
|
||||
"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",
|
||||
@@ -658,9 +618,7 @@
|
||||
"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",
|
||||
@@ -671,7 +629,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 es poden sincronitzar. Premeu per a més informació.",
|
||||
"Some items cannot be synchronised. Press for more info.": "Alguns elements no s'han pogut 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",
|
||||
@@ -731,7 +689,6 @@
|
||||
"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.",
|
||||
@@ -747,19 +704,14 @@
|
||||
"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.",
|
||||
@@ -773,7 +725,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, 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.",
|
||||
"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.",
|
||||
"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.",
|
||||
@@ -786,12 +738,10 @@
|
||||
"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 «:»",
|
||||
@@ -808,10 +758,8 @@
|
||||
"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",
|
||||
@@ -851,7 +799,6 @@
|
||||
"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",
|
||||
@@ -881,8 +828,6 @@
|
||||
"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",
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
"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í",
|
||||
@@ -465,6 +466,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Auto": "Auto",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Auto-par klammer, parenteser, citater, etc.",
|
||||
"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",
|
||||
@@ -157,7 +158,6 @@
|
||||
"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",
|
||||
"Created": "Oprettet",
|
||||
"created date": "oprettelsesdato",
|
||||
@@ -331,7 +331,6 @@
|
||||
"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",
|
||||
@@ -346,17 +345,14 @@
|
||||
"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",
|
||||
@@ -389,10 +385,8 @@
|
||||
"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.",
|
||||
@@ -438,7 +432,6 @@
|
||||
"Login below.": "Log ind nedenfor.",
|
||||
"Login with Dropbox": "Log på med Dropbox",
|
||||
"Login with OneDrive": "Log på med OneDrive",
|
||||
"Logout": "Log ud",
|
||||
"Make a donation": "Giv en donation",
|
||||
"Manage master password": "Administrer hovedadgangskode",
|
||||
"Manage master password...": "Administrer hovedadgangskode...",
|
||||
@@ -513,12 +506,11 @@
|
||||
"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",
|
||||
@@ -620,12 +612,6 @@
|
||||
"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",
|
||||
@@ -660,7 +646,6 @@
|
||||
"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",
|
||||
@@ -731,7 +716,6 @@
|
||||
"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.",
|
||||
@@ -808,10 +792,8 @@
|
||||
"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",
|
||||
@@ -851,7 +833,6 @@
|
||||
"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.",
|
||||
"Users": "Brugere",
|
||||
"Valid": "Gyldig",
|
||||
"View": "Vis",
|
||||
"View on map": "Vis på kort",
|
||||
@@ -882,7 +863,6 @@
|
||||
"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",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Auto": "Automatisch",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Automatisches Hinzufügen von geschweiften Klammern, runden Klammern, Anführungszeichen usw.",
|
||||
"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",
|
||||
@@ -515,6 +516,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"Auto": "Αυτόματα",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Αυτόματη-σύζευξη αγκίστρων, παρενθέσεων, εισαγωγικών, κ.λπ.",
|
||||
"Automatically switch theme to match system theme": "Αυτόματη εναλλαγή θέματος ώστε να ταιριάζει με το θέμα συστήματος",
|
||||
"Automatically update the application": "Αυτόματη ενημέρωση της εφαρμογής",
|
||||
"Back": "Πίσω",
|
||||
"Bold": "Έντονη γραφή",
|
||||
"Browse all plugins": "Αναζήτηση όλων των plugin",
|
||||
@@ -456,6 +457,7 @@
|
||||
"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\", που είναι δεσμευμένος τίτλος.",
|
||||
|
||||
@@ -168,6 +168,7 @@
|
||||
"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",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"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",
|
||||
@@ -515,6 +516,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -280,6 +280,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"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.",
|
||||
@@ -139,6 +140,7 @@
|
||||
"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",
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
"Authorisation token:": "توکن مجوز:",
|
||||
"Auto": "خودکار",
|
||||
"Automatically switch theme to match system theme": "به طور خودکار پوسته هماهنگ با پوسته سیستم تغییر کند",
|
||||
"Automatically update the application": "به طور خودکار نرمافزار را بهروز کن",
|
||||
"Back": "بازگشت",
|
||||
"Bold": "پررنگ",
|
||||
"Browse...": "مرور...",
|
||||
@@ -339,6 +340,7 @@
|
||||
"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» نام داشته باشد، این نام رزرو شده.",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"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",
|
||||
@@ -485,6 +486,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
"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",
|
||||
@@ -81,6 +79,7 @@
|
||||
"Auto": "Auto",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Auto‑compléter les paires de parenthèses, guillemets, etc.",
|
||||
"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",
|
||||
@@ -517,6 +516,7 @@
|
||||
"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é.",
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"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.",
|
||||
@@ -172,6 +173,7 @@
|
||||
"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",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"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",
|
||||
@@ -506,6 +507,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
"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",
|
||||
@@ -420,6 +421,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
"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",
|
||||
@@ -478,6 +479,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -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":92};
|
||||
stats['eu'] = {"percentDone":26};
|
||||
stats['bs_BA'] = {"percentDone":66};
|
||||
stats['bg_BG'] = {"percentDone":52};
|
||||
stats['ca'] = {"percentDone":98};
|
||||
stats['hr_HR'] = {"percentDone":96};
|
||||
stats['cs_CZ'] = {"percentDone":88};
|
||||
stats['da_DK'] = {"percentDone":98};
|
||||
stats['de_DE'] = {"percentDone":98};
|
||||
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['en_GB'] = {"percentDone":100};
|
||||
stats['en_US'] = {"percentDone":100};
|
||||
stats['es_ES'] = {"percentDone":98};
|
||||
stats['eo'] = {"percentDone":29};
|
||||
stats['fi_FI'] = {"percentDone":92};
|
||||
stats['fr_FR'] = {"percentDone":98};
|
||||
stats['gl_ES'] = {"percentDone":33};
|
||||
stats['id_ID'] = {"percentDone":91};
|
||||
stats['it_IT'] = {"percentDone":89};
|
||||
stats['hu_HU'] = {"percentDone":77};
|
||||
stats['nl_BE'] = {"percentDone":90};
|
||||
stats['nl_NL'] = {"percentDone":84};
|
||||
stats['nb_NO'] = {"percentDone":89};
|
||||
stats['fa'] = {"percentDone":63};
|
||||
stats['pl_PL'] = {"percentDone":83};
|
||||
stats['pt_BR'] = {"percentDone":92};
|
||||
stats['pt_PT'] = {"percentDone":83};
|
||||
stats['ro'] = {"percentDone":58};
|
||||
stats['sl_SI'] = {"percentDone":92};
|
||||
stats['sv'] = {"percentDone":98};
|
||||
stats['th_TH'] = {"percentDone":42};
|
||||
stats['vi'] = {"percentDone":89};
|
||||
stats['tr_TR'] = {"percentDone":92};
|
||||
stats['uk_UA'] = {"percentDone":82};
|
||||
stats['el_GR'] = {"percentDone":86};
|
||||
stats['ru_RU'] = {"percentDone":92};
|
||||
stats['sr_RS'] = {"percentDone":75};
|
||||
stats['zh_CN'] = {"percentDone":96};
|
||||
stats['zh_TW'] = {"percentDone":89};
|
||||
stats['ja_JP'] = {"percentDone":97};
|
||||
stats['ko'] = {"percentDone":88};
|
||||
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['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};
|
||||
module.exports = { locales: locales, stats: stats };
|
||||
@@ -76,6 +76,7 @@
|
||||
"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",
|
||||
@@ -469,6 +470,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Auto": "自動",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "始めの括弧や引用符入力時に終わりの括弧や引用符を自動入力する。",
|
||||
"Automatically switch theme to match system theme": "システムのテーマにあわせて自動設定",
|
||||
"Automatically update the application": "アプリケーションを自動的にアップデート",
|
||||
"Back": "戻る",
|
||||
"Bold": "太字",
|
||||
"Browse all plugins": "プラグイン一覧を参照",
|
||||
@@ -511,6 +512,7 @@
|
||||
"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\" というノートブックの名称はシステムで使用するために予約済みです。名称の変更はできません。",
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
"Auto": "자동",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "괄호, 중괄호, 인용 부호 등의 자동 완성.",
|
||||
"Automatically switch theme to match system theme": "시스템 테마에 적합한 테마로 자동으로 변경",
|
||||
"Automatically update the application": "자동으로 업데이트하기",
|
||||
"Back": "뒤로 가기",
|
||||
"Bold": "굵게",
|
||||
"Browse all plugins": "모든 플러그인 보기",
|
||||
@@ -466,6 +467,7 @@
|
||||
"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\" 으로 정할 수 없습니다. 이미 예약 중입니다.",
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
"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",
|
||||
@@ -471,6 +472,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
"%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",
|
||||
@@ -19,7 +18,7 @@
|
||||
"%s: %d notes": "%s: %d notities",
|
||||
"%s: %d/%d": "%s: %d/%d",
|
||||
"%s: %s": "%s: %s",
|
||||
"&Edit": "&Bewerken",
|
||||
"&Edit": "&Bijwerken",
|
||||
"&File": "&Bestand",
|
||||
"&Go": "&Ga",
|
||||
"&Help": "&Help",
|
||||
@@ -27,7 +26,6 @@
|
||||
"&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.",
|
||||
@@ -38,16 +36,10 @@
|
||||
"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",
|
||||
@@ -55,11 +47,10 @@
|
||||
"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; wil je dit nu downloaden?",
|
||||
"An update is available, do you want to download it now?": "Er is een update beschikbaar; wilt u die nu ophalen?",
|
||||
"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",
|
||||
@@ -70,19 +61,20 @@
|
||||
"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 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).",
|
||||
"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).",
|
||||
"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": "Vet",
|
||||
"Browse all plugins": "Plugin doorbladeren",
|
||||
"Bold": "Vetjes",
|
||||
"Browse all plugins": "Door alle plugins bladeren",
|
||||
"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",
|
||||
@@ -90,19 +82,14 @@
|
||||
"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: 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",
|
||||
"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",
|
||||
"Change language": "Taal wijzigen",
|
||||
"Characters": "Tekens",
|
||||
"Characters excluding spaces": "Tekens zonder spaties",
|
||||
"Check for updates...": "Controleren op updates ...",
|
||||
"Check for updates...": "Kijken of er updates zijn ...",
|
||||
"Check synchronisation configuration": "Verifieer de configuratie van de synchronisatie",
|
||||
"Checkbox": "Selectievakje",
|
||||
"Checkbox list": "Selectievakjeslijst",
|
||||
@@ -144,9 +131,7 @@
|
||||
"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",
|
||||
@@ -163,14 +148,10 @@
|
||||
"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",
|
||||
"Database v%s": "Databank v%s",
|
||||
"Date": "Datum",
|
||||
"Date format": "Datumformaat",
|
||||
"Date format": "Datumnotatie",
|
||||
"days": "dagen",
|
||||
"Decrypted items: %d": "Gedecrypteerde items: %d",
|
||||
"Decrypted items: %s / %s": "Gedecrypteerde items: %s / %s",
|
||||
@@ -180,14 +161,12 @@
|
||||
"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.",
|
||||
@@ -196,38 +175,37 @@
|
||||
"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)": "Map om mee te synchroniseren (absolute pad)",
|
||||
"Directory to synchronise with (absolute path)": "Folder 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* je notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil je verdergaan?",
|
||||
"Discard changes": "Wijzigingen annuleren",
|
||||
"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",
|
||||
"Dismiss": "Verwerpen",
|
||||
"Displays a geolocation URL for the note.": "Geeft een geo-locatie-URL voor de notitie weer.",
|
||||
"Displays a geolocation URL for the note.": "Toont een geo-locatie-URL voor de notitie.",
|
||||
"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.": "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",
|
||||
"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",
|
||||
"Do it now": "Nu doen",
|
||||
"Do not ask for confirmation.": "Vraag niet om bevestiging.",
|
||||
"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 ...",
|
||||
"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 ...",
|
||||
"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 gespecifieerd, 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 gespecifeerd, zal de notitie gedupliceerd worden in het huidige notitieboek.",
|
||||
"Edit": "Bewerk",
|
||||
"Edit in external editor": "Bewerken in externe editor",
|
||||
"Edit note.": "Bewerk notitie.",
|
||||
@@ -236,17 +214,10 @@
|
||||
"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",
|
||||
@@ -254,15 +225,11 @@
|
||||
"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",
|
||||
@@ -293,7 +260,6 @@
|
||||
"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",
|
||||
@@ -309,10 +275,8 @@
|
||||
"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:",
|
||||
@@ -322,15 +286,11 @@
|
||||
"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",
|
||||
@@ -351,7 +311,6 @@
|
||||
"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",
|
||||
@@ -365,10 +324,8 @@
|
||||
"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.",
|
||||
@@ -378,7 +335,6 @@
|
||||
"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",
|
||||
@@ -396,20 +352,15 @@
|
||||
"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",
|
||||
@@ -417,7 +368,6 @@
|
||||
"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.",
|
||||
@@ -455,7 +405,6 @@
|
||||
"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",
|
||||
@@ -473,6 +422,7 @@
|
||||
"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.",
|
||||
@@ -491,7 +441,6 @@
|
||||
"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",
|
||||
@@ -507,10 +456,8 @@
|
||||
"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.",
|
||||
@@ -538,22 +485,12 @@
|
||||
"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?",
|
||||
@@ -561,7 +498,6 @@
|
||||
"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",
|
||||
@@ -573,10 +509,6 @@
|
||||
"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 ...",
|
||||
@@ -596,19 +528,16 @@
|
||||
"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",
|
||||
@@ -639,12 +568,8 @@
|
||||
"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",
|
||||
@@ -664,16 +589,13 @@
|
||||
"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!",
|
||||
@@ -688,18 +610,15 @@
|
||||
"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",
|
||||
@@ -708,7 +627,6 @@
|
||||
"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",
|
||||
@@ -723,7 +641,6 @@
|
||||
"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",
|
||||
@@ -748,7 +665,6 @@
|
||||
"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.",
|
||||
@@ -758,7 +674,6 @@
|
||||
"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",
|
||||
@@ -779,9 +694,6 @@
|
||||
"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",
|
||||
@@ -810,8 +722,6 @@
|
||||
"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",
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
"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",
|
||||
@@ -448,6 +449,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
"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",
|
||||
@@ -445,6 +446,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"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",
|
||||
@@ -489,6 +490,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
"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",
|
||||
@@ -445,6 +446,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"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...",
|
||||
@@ -302,6 +303,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Auto": "Автоматически",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Автоматическое закрытие скобок, кавычек и т. д.",
|
||||
"Automatically switch theme to match system theme": "Автоматическая смена темы в соответствии с настройками системы",
|
||||
"Automatically update the application": "Автоматически обновлять приложение",
|
||||
"Back": "Назад",
|
||||
"Bold": "Полужирный",
|
||||
"Browse all plugins": "Просмотр всех плагинов",
|
||||
@@ -488,6 +489,7 @@
|
||||
"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\", так как это зарезервированное название.",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"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",
|
||||
@@ -487,6 +488,7 @@
|
||||
"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.",
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
"Auto": "Аутоматски",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Ауто-упари заграде, цитате, итд.",
|
||||
"Automatically switch theme to match system theme": "Аутоматски пребаци тему на подударање са системском темом",
|
||||
"Automatically update the application": "Аутоматски ажурирај апликацију",
|
||||
"Back": "Назад",
|
||||
"Bold": "Подебљај",
|
||||
"Browse all plugins": "Прегледајте све додатке",
|
||||
@@ -403,6 +404,7 @@
|
||||
"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",
|
||||
|
||||
@@ -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 bifogar 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 bifoga 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": "Program",
|
||||
"Application": "Avslutar programmet",
|
||||
"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,6 +79,7 @@
|
||||
"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",
|
||||
@@ -101,7 +102,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 programmets layout",
|
||||
"Change application layout": "Ändra applikationslayout",
|
||||
"Change language": "Ändra språk",
|
||||
"Characters": "Tecken",
|
||||
"Characters excluding spaces": "Tecken exklusive mellanslag",
|
||||
@@ -157,7 +158,6 @@
|
||||
"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 lokala data och hämta igen från synkroniseringsmålet",
|
||||
"Delete local data and re-download from sync target": "Ta bort lokal 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 profil",
|
||||
"Export profile": "Exportera profilen",
|
||||
"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 lokala 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 lokal 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,7 +331,6 @@
|
||||
"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",
|
||||
@@ -346,12 +345,10 @@
|
||||
"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",
|
||||
@@ -370,7 +367,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",
|
||||
@@ -389,7 +386,6 @@
|
||||
"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",
|
||||
@@ -437,7 +433,6 @@
|
||||
"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...",
|
||||
@@ -511,12 +506,11 @@
|
||||
"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",
|
||||
@@ -587,7 +581,7 @@
|
||||
"Quit": "Avsluta",
|
||||
"Re-encrypt data": "Kryptera data igen",
|
||||
"Re-encryption": "Omkryptering",
|
||||
"Re-upload local data to sync target": "Ladda upp lokala data igen till synkroniseringsmålet",
|
||||
"Re-upload local data to sync target": "Ladda upp lokal data igen för 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",
|
||||
@@ -618,11 +612,6 @@
|
||||
"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",
|
||||
@@ -657,7 +646,6 @@
|
||||
"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",
|
||||
@@ -728,19 +716,18 @@
|
||||
"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.": "Programmet 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.": "Applikationen 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å 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 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 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:",
|
||||
@@ -760,12 +747,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 inga data att exportera.",
|
||||
"There is no data to export.": "Det finns ingen 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",
|
||||
@@ -805,10 +792,8 @@
|
||||
"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",
|
||||
@@ -848,7 +833,6 @@
|
||||
"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",
|
||||
@@ -875,11 +859,10 @@
|
||||
"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 dina 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 din 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.": "Dina data kommer att omkrypteras och synkroniseras igen.",
|
||||
"Your data is going to be re-encrypted and synced again.": "Din 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",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"Authentication was not completed (did not receive an authentication token).": "การขออนุมัติไม่สมบูรณ์ (ไม่ได้รับ Token เพื่อขออนุมัติ)",
|
||||
"Authorisation token:": "Token สำหรับการขออนุมัติ:",
|
||||
"Auto": "อัตโนมัติ",
|
||||
"Automatically update the application": "อัพเดทแอปพลิเคชั่นอัตโนมัติ",
|
||||
"Bold": "ตัวหนา",
|
||||
"Cancel": "ยกเลิก",
|
||||
"Cancelling...": "กำลังยกเลิก...",
|
||||
@@ -241,6 +242,7 @@
|
||||
"Note list": "รายการบันทึก",
|
||||
"Note properties": "คุณสมบัติของบันทึก",
|
||||
"Note title": "ชื่อบันทึก",
|
||||
"Notebook title:": "ชื่อสมุดบันทึก:",
|
||||
"Notebook: %s": "สมุดบันทึก: %s",
|
||||
"Notebooks": "สมุดบันทึก",
|
||||
"Numbered List": "รายการแบบตัวเลข",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Auto": "Otomatik",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Parantez, çift tırnak gibi değerlerin çiftlerini otomatik ekle.",
|
||||
"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",
|
||||
@@ -484,6 +485,7 @@
|
||||
"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 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.",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user