Compare commits
1 Commits
website_te
...
cloud-v2.7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7028f25748 |
@@ -490,12 +490,6 @@ packages/app-desktop/gui/NoteEditor/utils/clipboardUtils.test.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/index.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/index.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/index.js.map
|
||||
@@ -730,9 +724,6 @@ packages/app-desktop/gui/utils/convertToScreenCoordinates.js.map
|
||||
packages/app-desktop/gui/utils/loadScript.d.ts
|
||||
packages/app-desktop/gui/utils/loadScript.js
|
||||
packages/app-desktop/gui/utils/loadScript.js.map
|
||||
packages/app-desktop/loadResources.testEnv.d.ts
|
||||
packages/app-desktop/loadResources.testEnv.js
|
||||
packages/app-desktop/loadResources.testEnv.js.map
|
||||
packages/app-desktop/plugins/GotoAnything.d.ts
|
||||
packages/app-desktop/plugins/GotoAnything.js
|
||||
packages/app-desktop/plugins/GotoAnything.js.map
|
||||
@@ -1648,9 +1639,6 @@ packages/lib/services/searchengine/SearchEngineUtils.js.map
|
||||
packages/lib/services/searchengine/SearchEngineUtils.test.d.ts
|
||||
packages/lib/services/searchengine/SearchEngineUtils.test.js
|
||||
packages/lib/services/searchengine/SearchEngineUtils.test.js.map
|
||||
packages/lib/services/searchengine/SearchFilter.test.d.ts
|
||||
packages/lib/services/searchengine/SearchFilter.test.js
|
||||
packages/lib/services/searchengine/SearchFilter.test.js.map
|
||||
packages/lib/services/searchengine/filterParser.d.ts
|
||||
packages/lib/services/searchengine/filterParser.js
|
||||
packages/lib/services/searchengine/filterParser.js.map
|
||||
@@ -1978,15 +1966,15 @@ packages/tools/generate-images.js.map
|
||||
packages/tools/git-changelog.d.ts
|
||||
packages/tools/git-changelog.js
|
||||
packages/tools/git-changelog.js.map
|
||||
packages/tools/licenseChecker.d.ts
|
||||
packages/tools/licenseChecker.js
|
||||
packages/tools/licenseChecker.js.map
|
||||
packages/tools/release-android.d.ts
|
||||
packages/tools/release-android.js
|
||||
packages/tools/release-android.js.map
|
||||
packages/tools/release-cli.d.ts
|
||||
packages/tools/release-cli.js
|
||||
packages/tools/release-cli.js.map
|
||||
packages/tools/release-cloud.d.ts
|
||||
packages/tools/release-cloud.js
|
||||
packages/tools/release-cloud.js.map
|
||||
packages/tools/release-electron.d.ts
|
||||
packages/tools/release-electron.js
|
||||
packages/tools/release-electron.js.map
|
||||
@@ -2026,15 +2014,6 @@ packages/tools/website/updateDownloadPage.js.map
|
||||
packages/tools/website/utils/frontMatter.d.ts
|
||||
packages/tools/website/utils/frontMatter.js
|
||||
packages/tools/website/utils/frontMatter.js.map
|
||||
packages/tools/website/utils/openGraph.d.ts
|
||||
packages/tools/website/utils/openGraph.js
|
||||
packages/tools/website/utils/openGraph.js.map
|
||||
packages/tools/website/utils/openGraph.test.d.ts
|
||||
packages/tools/website/utils/openGraph.test.js
|
||||
packages/tools/website/utils/openGraph.test.js.map
|
||||
packages/tools/website/utils/parser.d.ts
|
||||
packages/tools/website/utils/parser.js
|
||||
packages/tools/website/utils/parser.js.map
|
||||
packages/tools/website/utils/pressCarousel.d.ts
|
||||
packages/tools/website/utils/pressCarousel.js
|
||||
packages/tools/website/utils/pressCarousel.js.map
|
||||
|
||||
3
.github/scripts/run_ci.sh
vendored
@@ -38,6 +38,7 @@ echo "GITHUB_REF=$GITHUB_REF"
|
||||
echo "RUNNER_OS=$RUNNER_OS"
|
||||
echo "GIT_TAG_NAME=$GIT_TAG_NAME"
|
||||
echo "BUILD_SEQUENCIAL=$BUILD_SEQUENCIAL"
|
||||
echo "BUILD_SERVER=$BUILD_SERVER"
|
||||
echo "SERVER_REPOSITORY=$SERVER_REPOSITORY"
|
||||
echo "SERVER_TAG_PREFIX=$SERVER_TAG_PREFIX"
|
||||
|
||||
@@ -171,7 +172,7 @@ cd "$ROOT_DIR/packages/app-desktop"
|
||||
if [[ $GIT_TAG_NAME = v* ]]; then
|
||||
echo "Step: Building and publishing desktop application..."
|
||||
USE_HARD_LINKS=false yarn run dist
|
||||
elif [[ $IS_LINUX = 1 ]] && [[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]]; then
|
||||
elif [[ $IS_LINUX = 1 ]] && ([[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]] || [[ $BUILD_SERVER = 1 ]]); then
|
||||
echo "Step: Building Docker Image..."
|
||||
cd "$ROOT_DIR"
|
||||
yarn run buildServerDocker --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
|
||||
|
||||
66
.github/workflows/joplin-cloud.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: Joplin Cloud
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
Main:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
steps:
|
||||
|
||||
# Silence apt-get update errors (for example when a module doesn't
|
||||
# exist) since otherwise it will make the whole build fails, even though
|
||||
# it might work without update. libsecret-1-dev is required for keytar -
|
||||
# https://github.com/atom/node-keytar
|
||||
|
||||
- name: Install Linux dependencies
|
||||
run: |
|
||||
sudo apt-get update || true
|
||||
sudo apt-get install -y gettext
|
||||
sudo apt-get install -y libsecret-1-dev
|
||||
sudo apt-get install -y translate-toolkit
|
||||
|
||||
- name: Install Docker Engine
|
||||
run: |
|
||||
sudo apt-get install -y apt-transport-https
|
||||
sudo apt-get install -y ca-certificates
|
||||
sudo apt-get install -y curl
|
||||
sudo apt-get install -y gnupg
|
||||
sudo apt-get install -y lsb-release
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
echo \
|
||||
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt-get update || true
|
||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: olegtarasov/get-tag@v2.1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '16'
|
||||
|
||||
- name: Install Yarn
|
||||
run: |
|
||||
# https://yarnpkg.com/getting-started/install
|
||||
corepack enable
|
||||
|
||||
# Login to Docker only if we're on a server release tag. If we run this on
|
||||
# a pull request it will fail because the PR doesn't have access to
|
||||
# secrets
|
||||
- uses: docker/login-action@v1
|
||||
if: startsWith(github.ref, 'refs/tags/cloud-v')
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Run tests, build and publish Linux and macOS apps
|
||||
env:
|
||||
BUILD_SERVER: 1
|
||||
IS_CONTINUOUS_INTEGRATION: 1
|
||||
BUILD_SEQUENCIAL: 1
|
||||
SERVER_REPOSITORY: laurent22/joplin-cloud
|
||||
SERVER_TAG_PREFIX: cloud
|
||||
run: |
|
||||
"${GITHUB_WORKSPACE}/.github/scripts/run_ci.sh"
|
||||
|
||||
27
.gitignore
vendored
@@ -480,12 +480,6 @@ packages/app-desktop/gui/NoteEditor/utils/clipboardUtils.test.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js.map
|
||||
packages/app-desktop/gui/NoteEditor/utils/index.d.ts
|
||||
packages/app-desktop/gui/NoteEditor/utils/index.js
|
||||
packages/app-desktop/gui/NoteEditor/utils/index.js.map
|
||||
@@ -720,9 +714,6 @@ packages/app-desktop/gui/utils/convertToScreenCoordinates.js.map
|
||||
packages/app-desktop/gui/utils/loadScript.d.ts
|
||||
packages/app-desktop/gui/utils/loadScript.js
|
||||
packages/app-desktop/gui/utils/loadScript.js.map
|
||||
packages/app-desktop/loadResources.testEnv.d.ts
|
||||
packages/app-desktop/loadResources.testEnv.js
|
||||
packages/app-desktop/loadResources.testEnv.js.map
|
||||
packages/app-desktop/plugins/GotoAnything.d.ts
|
||||
packages/app-desktop/plugins/GotoAnything.js
|
||||
packages/app-desktop/plugins/GotoAnything.js.map
|
||||
@@ -1638,9 +1629,6 @@ packages/lib/services/searchengine/SearchEngineUtils.js.map
|
||||
packages/lib/services/searchengine/SearchEngineUtils.test.d.ts
|
||||
packages/lib/services/searchengine/SearchEngineUtils.test.js
|
||||
packages/lib/services/searchengine/SearchEngineUtils.test.js.map
|
||||
packages/lib/services/searchengine/SearchFilter.test.d.ts
|
||||
packages/lib/services/searchengine/SearchFilter.test.js
|
||||
packages/lib/services/searchengine/SearchFilter.test.js.map
|
||||
packages/lib/services/searchengine/filterParser.d.ts
|
||||
packages/lib/services/searchengine/filterParser.js
|
||||
packages/lib/services/searchengine/filterParser.js.map
|
||||
@@ -1968,15 +1956,15 @@ packages/tools/generate-images.js.map
|
||||
packages/tools/git-changelog.d.ts
|
||||
packages/tools/git-changelog.js
|
||||
packages/tools/git-changelog.js.map
|
||||
packages/tools/licenseChecker.d.ts
|
||||
packages/tools/licenseChecker.js
|
||||
packages/tools/licenseChecker.js.map
|
||||
packages/tools/release-android.d.ts
|
||||
packages/tools/release-android.js
|
||||
packages/tools/release-android.js.map
|
||||
packages/tools/release-cli.d.ts
|
||||
packages/tools/release-cli.js
|
||||
packages/tools/release-cli.js.map
|
||||
packages/tools/release-cloud.d.ts
|
||||
packages/tools/release-cloud.js
|
||||
packages/tools/release-cloud.js.map
|
||||
packages/tools/release-electron.d.ts
|
||||
packages/tools/release-electron.js
|
||||
packages/tools/release-electron.js.map
|
||||
@@ -2016,15 +2004,6 @@ packages/tools/website/updateDownloadPage.js.map
|
||||
packages/tools/website/utils/frontMatter.d.ts
|
||||
packages/tools/website/utils/frontMatter.js
|
||||
packages/tools/website/utils/frontMatter.js.map
|
||||
packages/tools/website/utils/openGraph.d.ts
|
||||
packages/tools/website/utils/openGraph.js
|
||||
packages/tools/website/utils/openGraph.js.map
|
||||
packages/tools/website/utils/openGraph.test.d.ts
|
||||
packages/tools/website/utils/openGraph.test.js
|
||||
packages/tools/website/utils/openGraph.test.js.map
|
||||
packages/tools/website/utils/parser.d.ts
|
||||
packages/tools/website/utils/parser.js
|
||||
packages/tools/website/utils/parser.js.map
|
||||
packages/tools/website/utils/pressCarousel.d.ts
|
||||
packages/tools/website/utils/pressCarousel.js
|
||||
packages/tools/website/utils/pressCarousel.js.map
|
||||
|
||||
@@ -307,7 +307,7 @@ p,
|
||||
div.navbar-mobile-content a.sponsor-button {
|
||||
padding: 4px 12px;
|
||||
font-size: 0.9em;
|
||||
margin-right: 0.5em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
#nav-section.white-bg a {
|
||||
@@ -670,8 +670,8 @@ footer .bottom-links-row p {
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.news-page .main-content img,
|
||||
.news-item-page .main-content img {
|
||||
.news-page img,
|
||||
.news-item-page img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@@ -740,7 +740,7 @@ footer .bottom-links-row p {
|
||||
}
|
||||
|
||||
#nav-section .button-link {
|
||||
padding: 4px 10px;
|
||||
padding: 4px 12px;
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
@@ -937,25 +937,6 @@ footer .bottom-links-row p {
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
VERY NARROW VIEW
|
||||
eg for Galaxy Fold
|
||||
*****************************************************************/
|
||||
|
||||
@media (max-width: 350px) {
|
||||
|
||||
#nav-section .navbar-mobile-content a.sponsor-button {
|
||||
background-color: transparent;
|
||||
color: #0557ba !important;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#nav-section .navbar-mobile-content a.sponsor-button .sponsor-button-label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
PLANS PAGE
|
||||
*****************************************************************/
|
||||
@@ -1073,10 +1054,6 @@ footer .bottom-links-row p {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.joplin-cloud-feature-list table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.price-row .plan-type {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 65 KiB |
@@ -10,8 +10,8 @@
|
||||
<link rel="icon" href="{{imageBaseUrl}}/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin, the open source note-taking application" />
|
||||
<link rel="stylesheet" href="{{{assetUrls.css.fontawesome}}}">
|
||||
{{> openGraphTags}}
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{cssBaseUrl}}/bootstrap5.0.2.min.css"
|
||||
|
||||
@@ -23,7 +23,7 @@ https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}
|
||||
<link rel="icon" href="{{imageBaseUrl}}/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
{{> openGraphTags}}
|
||||
<meta name="description" content="Joplin, the open source note-taking application" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{cssBaseUrl}}/bootstrap5.0.2.min.css"
|
||||
@@ -65,6 +65,11 @@ https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}
|
||||
{{{contentHtml}}}
|
||||
{{#showBottomLinks}}
|
||||
<div class="bottom-links">
|
||||
{{#discussOnForumLink}}
|
||||
<a class="bottom-link" href="{{{discussOnForumLink}}}">
|
||||
<i class="fab fa-discourse"></i></i> Discuss on the forum
|
||||
</a>
|
||||
{{/discussOnForumLink}}
|
||||
{{#showImproveThisDoc}}
|
||||
<a class="bottom-link" href="https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}">
|
||||
<i class="fab fa-github"></i> Improve this doc
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-9 text-right d-none d-md-block">
|
||||
{{> twitterLink}}
|
||||
<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}}/help/" class="fw500">Help</a>
|
||||
<a href="{{forumUrl}}" class="fw500">Forum</a>
|
||||
@@ -22,7 +22,6 @@
|
||||
{{> supportButton}}
|
||||
</div>
|
||||
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
|
||||
{{> twitterLink}}
|
||||
{{> supportButton}}
|
||||
|
||||
<span class="pointer"
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
{{#openGraph}}
|
||||
<meta name="description" content="{{openGraph.description}}" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@joplinapp" />
|
||||
<meta property="og:url" content="{{{openGraph.url}}}" />
|
||||
<meta property="og:title" content="{{openGraph.title}}" />
|
||||
<meta property="twitter:title" content="{{openGraph.title}}" />
|
||||
<meta property="og:description" content="{{openGraph.description}}" />
|
||||
<meta property="twitter:description" content="{{openGraph.description}}" />
|
||||
{{#openGraph.image}}
|
||||
<meta property="og:image" content="{{{openGraph.image}}}" />
|
||||
<meta property="twitter:image" content="{{{openGraph.image}}}" />
|
||||
{{/openGraph.image}}
|
||||
{{/openGraph}}
|
||||
@@ -6,11 +6,11 @@
|
||||
</div>
|
||||
|
||||
<div class="plan-price plan-price-monthly">
|
||||
{{priceMonthly.formattedMonthlyAmount}}<sub class="per-month"> /month{{#footnote}} (*){{/footnote}}</sub>
|
||||
{{priceMonthly.formattedMonthlyAmount}}<sub class="per-month"> /month</sub>
|
||||
</div>
|
||||
|
||||
<div class="plan-price plan-price-yearly">
|
||||
{{priceYearly.formattedMonthlyAmount}}<sub class="per-month"> /month{{#footnote}} (*){{/footnote}}</sub>
|
||||
{{priceYearly.formattedMonthlyAmount}}<sub class="per-month"> /month</sub>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,19 +20,17 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#featureLabelsOn}}
|
||||
{{#featuresOn}}
|
||||
<p><i class="fas fa-check feature feature-on"></i>{{.}}</p>
|
||||
{{/featureLabelsOn}}
|
||||
{{/featuresOn}}
|
||||
|
||||
{{#featureLabelsOff}}
|
||||
{{#featuresOff}}
|
||||
<p class="unchecked-text"><i class="fas fa-times feature feature-off"></i>{{.}}</p>
|
||||
{{/featureLabelsOff}}
|
||||
{{/featuresOff}}
|
||||
|
||||
<p class="text-center subscribe-wrapper">
|
||||
<a id="subscribeButton-{{name}}" href="{{cfaUrl}}" class="button-link btn-white subscribeButton">{{cfaLabel}}</a>
|
||||
</p>
|
||||
|
||||
{{#footnote}}<sub>(*) {{.}}</sub>{{/footnote}}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<a class="button-link btn-blue sponsor-button" href="{{baseUrl}}/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i><span class="sponsor-button-label"> Support us</span>
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support us
|
||||
</a>
|
||||
@@ -1 +0,0 @@
|
||||
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed" class="fw500"><i class="fab fa-twitter"></i></a>
|
||||
@@ -42,23 +42,13 @@
|
||||
{{> plan}}
|
||||
{{/plans.pro}}
|
||||
|
||||
{{#plans.teams}}
|
||||
{{#plans.business}}
|
||||
{{> plan}}
|
||||
{{/plans.teams}}
|
||||
{{/plans.business}}
|
||||
|
||||
<p class="joplin-cloud-login-info">Already have a Joplin Cloud account? <a href="https://joplincloud.com">Login now</a></p>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div>
|
||||
<h1>Feature comparison</h1>
|
||||
<div class="joplin-cloud-feature-list">
|
||||
{{{featureListHtml}}}
|
||||
</div>
|
||||
<p> </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
{{{faqHtml}}}
|
||||
</div>
|
||||
|
||||
2
BUILD.md
@@ -25,8 +25,6 @@ There are also a few forks of existing packages under the "fork-*" name.
|
||||
|
||||
## Building
|
||||
|
||||
Make sure the path to the project directory does not contain spaces or the build may fail.
|
||||
|
||||
Before doing anything else, from the root of the project, run:
|
||||
|
||||
yarn install
|
||||
|
||||
@@ -38,7 +38,7 @@ If you want to start contributing to the project's code, please follow these gui
|
||||
- **Changes that will consist of more than 50 lines of code should be discussed on the [Joplin Forum](https://discourse.joplinapp.org/)**, so that you don't spend too much time implementing something that might not be accepted.
|
||||
- All the applications share the same backend (database, synchronisation, settings, models, business logic, etc.) so if you change something in the backend in one app, make sure it still works in the other apps. Usually it does, but keep this in mind.
|
||||
- Pull requests that make many changes using an automated tool, like for spell fixing, styling, etc. will not be accepted. An exception would be if the changes have been discussed in the forum and someone has agreed to review **and test** the pull request.
|
||||
- Pull requests that address multiple issues will most likely stall and eventually be closed. This is because we might be fine with one of the changes but not with others and untangling that kind of pull request is too much hassle both for maintainers and the person who submitted it. So most of the time someone gives up and the PR gets closed. So please keep the pull request focused on one issue.
|
||||
- Pull requests that make address multiple issues will most likely stall and eventually be closed. This is because we might be fine with one of the changes but not with others and untangling that kind of pull request is too much hassle both for maintainers and the person who submitted it. So most of the time someone gives up and the PR gets closed. So please keep the pull request focused on one issue.
|
||||
- **Do not mark your reviewer's comments as "resolved"**. If you do that, the comments will be hidden and the reviewer will not know what are the pending issues in the pull request. Only the reviewer should resolve the comments.
|
||||
|
||||
Building the apps is relatively easy - please [see the build instructions](https://github.com/laurent22/joplin/blob/dev/BUILD.md) for more details.
|
||||
@@ -53,57 +53,37 @@ For changes made to the Desktop client that affect the user interface, refer to
|
||||
|
||||
## Automated tests
|
||||
|
||||
When submitting a pull request for a new feature or a bug fix, please add automated tests. We use [Jest](https://jestjs.io/) as a testing framework so you will need to be familiar with it or go through their documentation.
|
||||
When submitting a pull request for a new feature or a bug fix, please add automated tests for your code whenever possible. Tests in Joplin are divided into **unit tests** and **feature tests**.
|
||||
|
||||
### Running the tests
|
||||
* **Unit tests** are used to test models, services or utility classes - they are relatively low level. Unit tests should be prefixed with the type of class that is being tested - for example "models_Folder" or "services_SearchEngine".
|
||||
|
||||
To run all the test units, run from the root:
|
||||
* **Feature tests** on the other hand are to test higher level functionalities such as interactions with the GUI and how they affect the underlying model. Often these tests would dispatch Redux actions, and inspect how the application state has been changed. The feature tests should be prefixed with "feature_", for example "feature_TagList". There's a good explanation on what qualifies as a feature test in [this post](https://github.com/laurent22/joplin/pull/2819#issuecomment-603502230).
|
||||
|
||||
The tests are under packages/app-cli/tests. To get them running, you first need to build the CLI app:
|
||||
|
||||
```sh
|
||||
yarn install
|
||||
cd packages/app-cli
|
||||
```
|
||||
|
||||
To run all the test units:
|
||||
|
||||
```sh
|
||||
yarn test
|
||||
```
|
||||
|
||||
Or you can go inside a package folder, and run the tests from there. For example to run all the library tests, go in `packages/lib` and run `yarn test`
|
||||
|
||||
To run just one particular file:
|
||||
|
||||
```sh
|
||||
# Run all the tests in markdownUtils.test.ts
|
||||
yarn test markdownUtils
|
||||
yarn test --filter=markdownUtils # Don't add the .js extension
|
||||
```
|
||||
|
||||
To run only a particular test in a file:
|
||||
To filter tests. For example, to run all the test units that contain "should handle conflict" in their description:
|
||||
|
||||
```sh
|
||||
# Run only the test described as "should handle conflict"
|
||||
# inside markdownUtils.test.ts:
|
||||
yarn test markdownUtils --filter="should handle conflict"
|
||||
yarn test --filter="should handle conflict"
|
||||
```
|
||||
|
||||
### Adding a new test file
|
||||
|
||||
To add a test, simply create a new file with an extension `.test.ts` in the same directory. For example if you are working on the file `example.ts`, create a file `example.test.ts` for the unit tests. If this file already exist, simply add your tests directly to it.
|
||||
|
||||
### Setting the testing environment
|
||||
|
||||
Many utility functions are available under the package `@joplin/lib/testing/test-utils`. Have a look for example at [Note.test.ts](https://github.com/laurent22/joplin/blob/dev/packages/lib/models/Note.test.ts) to see how to setup test units with database support and synchroniser support. Note that this is not needed for all tests - if you just have a simple functions to test you won't need that extra setup.
|
||||
|
||||
### Testing React Hooks
|
||||
|
||||
To test React Hooks please use the package `@testing-library/react-hooks`. See [useLayoutItemSizes.test.ts](https://github.com/laurent22/joplin/blob/dev/packages/app-desktop/gui/ResizableLayout/utils/useLayoutItemSizes.test.ts) for an example.
|
||||
|
||||
### If it is not possible to add tests
|
||||
|
||||
More often than not, it is actually possible to add tests - just go back to your code and see if it can be refactored and certain functionalities moved to simple functions (with no dependencies). Once you have a simple function, you can easily add unit tests for it.
|
||||
|
||||
Additionally, if the unit tests are not sufficient, please provide a **manual testing plan**, which should include detailed steps on:
|
||||
|
||||
- How to test that your feature is working. Include at least 5 tests. Try to think of the possible inputs - if it's a list, how does it work with 0 elements, or 1, or 10, or 100,000. If it's a text input, how does it work with an empty string, or a very large string, etc. Basically don't just put one test that check the best case scenario.
|
||||
|
||||
- How to verify that related parts of the applications are not broken. For example if you changed the note loading logic, check that the toolbar is still working as expected (and not modifying the previously loaded note for example), check that switching from one note to another still works. Look at the note list and verify that the note title is updated there too, etc.
|
||||
|
||||
A reviewer should be able to run the app with your changes, then do the above steps to verify that everything's working as expected.
|
||||
|
||||
## About abandoned pull requests
|
||||
|
||||
It happens that a pull request is started but not finished and despite our attempts to contact the contributor, we don't hear from them again.
|
||||
|
||||
27
README.md
@@ -4,10 +4,6 @@
|
||||
|
||||
* * *
|
||||
|
||||
🌞 Joplin participates in **Google Summer of Code 2022**! More info on [the announcement post](https://github.com/laurent22/joplin/blob/dev/readme/news/20220308-gsoc2022-start.md). 🌞
|
||||
|
||||
* * *
|
||||
|
||||
<img width="64" src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/LinuxIcons/256x256.png" align="left" /> **Joplin** is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](#markdown).
|
||||
|
||||
Notes exported from Evernote [can be imported](#importing) into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.
|
||||
@@ -28,11 +24,11 @@ Three types of applications are available: for **desktop** (Windows, macOS and L
|
||||
|
||||
Operating System | Download
|
||||
---|---
|
||||
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.7.15/Joplin-Setup-2.7.15.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
|
||||
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.7.15/Joplin-2.7.15.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
|
||||
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.7.15/Joplin-2.7.15.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
|
||||
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/Joplin-Setup-2.6.10.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
|
||||
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/Joplin-2.6.10.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
|
||||
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/Joplin-2.6.10.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
|
||||
|
||||
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v2.7.15/JoplinPortable.exe'>Portable version</a>. The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
|
||||
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/JoplinPortable.exe'>Portable version</a>. The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
|
||||
|
||||
**On Linux**, the recommended way is to use the following installation script as it will handle the desktop icon too:
|
||||
|
||||
@@ -42,7 +38,7 @@ Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.7.15/J
|
||||
|
||||
Operating System | Download | Alt. Download
|
||||
---|---|---
|
||||
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.7.2/joplin-v2.7.2.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.7.2/joplin-v2.7.2-32bit.apk)
|
||||
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.6.9/joplin-v2.6.9.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.6.9/joplin-v2.6.9-32bit.apk)
|
||||
iOS | <a href='https://itunes.apple.com/us/app/joplin/id1315599797'><img alt='Get it on the App Store' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeIOS.png'/></a> | -
|
||||
|
||||
## Terminal application
|
||||
@@ -80,11 +76,11 @@ A community maintained list of these distributions can be found here: [Unofficia
|
||||
| :---: | :---: | :---: | :---: |
|
||||
| <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/49439044?s=96&v=4"/></br>[fourstepper](https://github.com/fourstepper) | <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/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) |
|
||||
| <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) | | | |
|
||||
| <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/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) | <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) |
|
||||
| | | | |
|
||||
<!-- SPONSORS-GITHUB -->
|
||||
|
||||
<!-- TOC -->
|
||||
@@ -133,7 +129,6 @@ A community maintained list of these distributions can be found here: [Unofficia
|
||||
- [How to build the apps](https://github.com/laurent22/joplin/blob/dev/BUILD.md)
|
||||
- [Writing a technical spec](https://github.com/laurent22/joplin/blob/dev/readme/technical_spec.md)
|
||||
- [End-to-end encryption spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/e2ee.md)
|
||||
- [Desktop application styling](https://github.com/laurent22/joplin/blob/dev/readme/spec/desktop_styling.md)
|
||||
- [Note History spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/history.md)
|
||||
- [Sync Lock spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_lock.md)
|
||||
- [Synchronous Scroll spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_scroll.md)
|
||||
@@ -534,7 +529,7 @@ Current translations:
|
||||
<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) | 96%
|
||||
<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) | miucci | 92%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/fi.png" width="16px"/> | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | mrkaato | 91%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/fr.png" width="16px"/> | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 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) | 33%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/id.png" width="16px"/> | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [eresytter](mailto:42007357+eresytter@users.noreply.github.com) | 90%
|
||||
|
||||
@@ -1,19 +1,8 @@
|
||||
# This is a sample docker-compose file that can be used to run Joplin Server
|
||||
# along with a PostgreSQL server.
|
||||
#
|
||||
# Update the following fields in the stanza below:
|
||||
#
|
||||
# POSTGRES_USER
|
||||
# POSTGRES_PASSWORD
|
||||
# APP_BASE_URL
|
||||
#
|
||||
# APP_BASE_URL: This is the base public URL where the service will be running.
|
||||
# - If Joplin Server needs to be accessible over the internet, configure APP_BASE_URL as follows: https://example.com/joplin.
|
||||
# - If Joplin Server does not need to be accessible over the internet, set the the APP_BASE_URL to your server's hostname.
|
||||
# For Example: http://[hostname]:22300. The base URL can include the port.
|
||||
# APP_PORT: The local port on which the Docker container will listen.
|
||||
# - This would typically be mapped to port to 443 (TLS) with a reverse proxy.
|
||||
# - If Joplin Server does not need to be accessible over the internet, the port can be mapped to 22300.
|
||||
# All environment variables are optional. If you don't set them, you will get a
|
||||
# warning from docker-compose, however the app should use working defaults.
|
||||
|
||||
version: '3'
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
eine Notiz- und Aufgaben-App mit Sync zwischen Linux, macOS, Windows
|
||||
@@ -1,9 +0,0 @@
|
||||
<strong>Joplin</strong> is a note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in <a href="#markdown">Markdown format</a>.
|
||||
|
||||
Notes exported from Evernote and other applications <a href="https://joplinapp.org/help/#importing">can be imported</a> into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.
|
||||
|
||||
The notes can be securely <a href="https://joplinapp.org/help/#synchronisation">synchronised</a> using <a href="https://joplinapp.org/help/#encryption">end-to-end encryption</a> with various cloud services including Nextcloud, Dropbox, OneDrive and <a href="https://joplinapp.org/plans/">Joplin Cloud</a>.
|
||||
|
||||
Full text search is available on all platforms to quickly find the information you need. The app can be customised using plugins and themes, and you can also easily create your own.
|
||||
|
||||
The application is available for Windows, Linux, macOS, Android and iOS. A <a href="https://joplinapp.org/clipper/">Web Clipper</a>, to save web pages and screenshots from your browser, is also available for <a href="https://addons.mozilla.org/firefox/addon/joplin-web-clipper/">Firefox</a> and <a href="https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek?hl=en-GB">Chrome</a>.
|
||||
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 281 KiB |
|
Before Width: | Height: | Size: 69 KiB |
@@ -1 +0,0 @@
|
||||
a note taking and to-do app with sync between Linux, macOS, Windows, and mobile
|
||||
@@ -313,10 +313,6 @@ async function fetchAllNotes() {
|
||||
lines.push('');
|
||||
lines.push('\tcurl -F \'data=@/path/to/file.jpg\' -F \'props={"title":"my resource title"}\' http://localhost:41184/resources');
|
||||
lines.push('');
|
||||
lines.push('Or to **update** a resource:');
|
||||
lines.push('');
|
||||
lines.push('\tcurl -X PUT -F \'data=@/path/to/file.jpg\' -F \'props={"title":"my modified title"}\' http://localhost:41184/resources/8fe1417d7b184324bf6b0122b76c4696');
|
||||
lines.push('');
|
||||
lines.push('The "data" field is required, while the "props" one is not. If not specified, default values will be used.');
|
||||
lines.push('');
|
||||
lines.push('**From a plugin** the syntax to create a resource is also a bit special:');
|
||||
@@ -372,11 +368,6 @@ async function fetchAllNotes() {
|
||||
lines.push(`Sets the properties of the ${singular} with ID :id`);
|
||||
lines.push('');
|
||||
|
||||
if (model.type === BaseModel.TYPE_RESOURCE) {
|
||||
lines.push('You may also update the file data by specifying a file (See `POST /resources` example).');
|
||||
lines.push('');
|
||||
}
|
||||
|
||||
lines.push(`## DELETE /${tableName}/:id`);
|
||||
lines.push('');
|
||||
lines.push(`Deletes the ${singular} with ID :id`);
|
||||
|
||||
@@ -63,15 +63,13 @@ class AppComponent extends Component {
|
||||
contentScriptLoaded: false,
|
||||
selectedTags: [],
|
||||
contentScriptError: '',
|
||||
newNoteId: null,
|
||||
});
|
||||
|
||||
this.confirm_click = async () => {
|
||||
this.confirm_click = () => {
|
||||
const content = Object.assign({}, this.props.clippedContent);
|
||||
content.tags = this.state.selectedTags.join(',');
|
||||
content.parent_id = this.props.selectedFolderId;
|
||||
const response = await bridge().sendContentToJoplin(content);
|
||||
this.setState({ newNoteId: response.id });
|
||||
bridge().sendContentToJoplin(content);
|
||||
};
|
||||
|
||||
this.contentTitle_change = (event) => {
|
||||
@@ -404,24 +402,6 @@ class AppComponent extends Component {
|
||||
);
|
||||
};
|
||||
|
||||
const openNewNoteButton = () => {
|
||||
|
||||
if (!this.state.newNoteId) { return null; } else {
|
||||
return (
|
||||
// The jopin:// link must be opened in a new tab. When it's opened for the first time, a system dialog will ask for the user's permission.
|
||||
// The system dialog is too big to fit into the popup so the user will not be able to see the dialog buttons and get stuck.
|
||||
<a
|
||||
className="Button"
|
||||
href={`joplin://x-callback-url/openNote?id=${encodeURIComponent(this.state.newNoteId)}`}
|
||||
target="_blank"
|
||||
onClick={() => this.setState({ newNoteId: null })}
|
||||
>
|
||||
Open newly created note
|
||||
</a>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
const tagDataListOptions = [];
|
||||
for (let i = 0; i < this.props.tags.length; i++) {
|
||||
const tag = this.props.tags[i];
|
||||
@@ -457,7 +437,6 @@ class AppComponent extends Component {
|
||||
</div>
|
||||
{ warningComponent }
|
||||
{ previewComponent }
|
||||
{ openNewNoteButton() }
|
||||
{ clipperStatusComp() }
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -463,11 +463,9 @@ class Bridge {
|
||||
// This is the perfect Heisenbug - it happens always when opening the popup the first time EXCEPT
|
||||
// when the debugger is open. Then everything is working fine and the bug NEVER EVER happens,
|
||||
// so it's impossible to understand what's going on.
|
||||
const response = await this.clipperApiExec('POST', 'notes', { nounce: this.nounce_++ }, content);
|
||||
await this.clipperApiExec('POST', 'notes', { nounce: this.nounce_++ }, content);
|
||||
|
||||
this.dispatch({ type: 'CONTENT_UPLOAD', operation: { uploading: false, success: true } });
|
||||
|
||||
return response;
|
||||
} catch (error) {
|
||||
if (error.message === '{"error":"Duplicate Nounce"}') {
|
||||
this.dispatch({ type: 'CONTENT_UPLOAD', operation: { uploading: false, success: true } });
|
||||
|
||||
@@ -572,15 +572,8 @@ function useMenu(props: Props) {
|
||||
menuItemDic.textPaste,
|
||||
menuItemDic.textSelectAll,
|
||||
separator(),
|
||||
// Using the generic "undo"/"redo" roles mean the menu
|
||||
// item will work in every text fields, whether it's the
|
||||
// editor or a regular text field.
|
||||
{
|
||||
role: 'undo',
|
||||
},
|
||||
{
|
||||
role: 'redo',
|
||||
},
|
||||
menuItemDic['editor.undo'],
|
||||
menuItemDic['editor.redo'],
|
||||
separator(),
|
||||
menuItemDic.textBold,
|
||||
menuItemDic.textItalic,
|
||||
|
||||
@@ -732,19 +732,15 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
|
||||
// It might be buggy, refer to the below issue
|
||||
// https://github.com/laurent22/joplin/pull/3974#issuecomment-718936703
|
||||
useEffect(() => {
|
||||
function pointerInsideEditor(params: any) {
|
||||
const x = params.x, y = params.y, isEditable = params.isEditable, inputFieldType = params.inputFieldType;
|
||||
function pointerInsideEditor(x: number, y: number) {
|
||||
const elements = document.getElementsByClassName('codeMirrorEditor');
|
||||
|
||||
// inputFieldType: The input field type of CodeMirror is "textarea" so the inputFieldType = "none",
|
||||
// and any single-line input above codeMirror has inputFieldType value according to the type of input e.g.(text = plainText, password = password, ...).
|
||||
if (!elements.length || !isEditable || inputFieldType !== 'none') return null;
|
||||
if (!elements.length) return null;
|
||||
const rect = convertToScreenCoordinates(Setting.value('windowContentZoomFactor'), elements[0].getBoundingClientRect());
|
||||
return rect.x < x && rect.y < y && rect.right > x && rect.bottom > y;
|
||||
}
|
||||
|
||||
async function onContextMenu(_event: any, params: any) {
|
||||
if (!pointerInsideEditor(params)) return;
|
||||
if (!pointerInsideEditor(params.x, params.y)) return;
|
||||
|
||||
const menu = new Menu();
|
||||
|
||||
|
||||
@@ -3,8 +3,7 @@ import { PluginStates } from '@joplin/lib/services/plugins/reducer';
|
||||
import SpellCheckerService from '@joplin/lib/services/spellChecker/SpellCheckerService';
|
||||
import { useEffect } from 'react';
|
||||
import bridge from '../../../../../services/bridge';
|
||||
import { ContextMenuOptions, ContextMenuItemType } from '../../../utils/contextMenuUtils';
|
||||
import { menuItems } from '../../../utils/contextMenu';
|
||||
import { menuItems, ContextMenuOptions, ContextMenuItemType } from '../../../utils/contextMenu';
|
||||
import MenuUtils from '@joplin/lib/services/commands/MenuUtils';
|
||||
import CommandService from '@joplin/lib/services/CommandService';
|
||||
import convertToScreenCoordinates from '../../../../utils/convertToScreenCoordinates';
|
||||
@@ -68,8 +67,6 @@ export default function(editor: any, plugins: PluginStates, dispatch: Function)
|
||||
contextMenuActionOptions.current = {
|
||||
itemType,
|
||||
resourceId,
|
||||
filename: null,
|
||||
mime: null,
|
||||
linkToCopy,
|
||||
textToCopy: null,
|
||||
htmlToCopy: editor.selection ? editor.selection.getContent() : '',
|
||||
|
||||
@@ -93,11 +93,11 @@ const declarations: CommandDeclaration[] = [
|
||||
},
|
||||
{
|
||||
name: 'editor.undo',
|
||||
label: () => _('Editor: %s', _('Undo')),
|
||||
label: () => _('Undo'),
|
||||
},
|
||||
{
|
||||
name: 'editor.redo',
|
||||
label: () => _('Editor: %s', _('Redo')),
|
||||
label: () => _('Redo'),
|
||||
},
|
||||
{
|
||||
name: 'editor.indentLess',
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
/** @jest-environment ./loadResources.testEnv */
|
||||
// eslint-disable-next-line strict, lines-around-directive
|
||||
'use strict';
|
||||
// use strict is necessary here so that typescript doesn't place "use strict" above the jest docblock
|
||||
// https://github.com/microsoft/TypeScript/issues/15819#issuecomment-782235619
|
||||
|
||||
import { textToDataUri, svgUriToPng } from './contextMenuUtils';
|
||||
|
||||
jest.mock('@joplin/lib/models/Resource');
|
||||
|
||||
describe('contextMenu', () => {
|
||||
it('should provide proper copy path', async () => {
|
||||
const testCase = [
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">test</svg>',
|
||||
'image/svg+xml',
|
||||
];
|
||||
const expectedText = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIj50ZXN0PC9zdmc+';
|
||||
expect(textToDataUri(testCase[0], testCase[1])).toBe(expectedText);
|
||||
});
|
||||
|
||||
it('should convert to png binary', async () => {
|
||||
const testCase = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiIGhlaWdodD0iMTAwcHgiIHdpZHRoPSIxMDBweCI+CjxnPgoJPHBhdGggZD0iTTI4LjEsMzYuNmM0LjYsMS45LDEyLjIsMS42LDIwLjksMS4xYzguOS0wLjQsMTktMC45LDI4LjksMC45YzYuMywxLjIsMTEuOSwzLjEsMTYuOCw2Yy0xLjUtMTIuMi03LjktMjMuNy0xOC42LTMxLjMgICBjLTQuOS0wLjItOS45LDAuMy0xNC44LDEuNEM0Ny44LDE3LjksMzYuMiwyNS42LDI4LjEsMzYuNnoiLz4KCTxwYXRoIGQ9Ik03MC4zLDkuOEM1Ny41LDMuNCw0Mi44LDMuNiwzMC41LDkuNWMtMyw2LTguNCwxOS42LTUuMywyNC45YzguNi0xMS43LDIwLjktMTkuOCwzNS4yLTIzLjFDNjMuNywxMC41LDY3LDEwLDcwLjMsOS44eiIvPgoJPHBhdGggZD0iTTE2LjUsNTEuM2MwLjYtMS43LDEuMi0zLjQsMi01LjFjLTMuOC0zLjQtNy41LTctMTEtMTAuOGMtMi4xLDYuMS0yLjgsMTIuNS0yLjMsMTguN0M5LjYsNTEuMSwxMy40LDUwLjIsMTYuNSw1MS4zeiIvPgoJPHBhdGggZD0iTTksMzEuNmMzLjUsMy45LDcuMiw3LjYsMTEuMSwxMS4xYzAuOC0xLjYsMS43LTMuMSwyLjYtNC42YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0yLjktMy4zLTMuMS05LjItMC42LTE3LjYgICBjMC44LTIuNywxLjgtNS4zLDIuNy03LjRjLTUuMiwzLjQtOS44LDgtMTMuMywxMy43QzEwLjgsMjcuOSw5LjgsMjkuNyw5LDMxLjZ6Ii8+Cgk8cGF0aCBkPSJNMTUuNCw1NC43Yy0yLjYtMS02LjEsMC43LTkuNywzLjRjMS4yLDYuNiwzLjksMTMsOCwxOC41QzEzLDY5LjMsMTMuNSw2MS44LDE1LjQsNTQuN3oiLz4KCTxwYXRoIGQ9Ik0zOS44LDU3LjZDNTQuMyw2Ni43LDcwLDczLDg2LjUsNzYuNGMwLjYtMC44LDEuMS0xLjYsMS43LTIuNWM0LjgtNy43LDctMTYuMyw2LjgtMjQuOGMtMTMuOC05LjMtMzEuMy04LjQtNDUuOC03LjcgICBjLTkuNSwwLjUtMTcuOCwwLjktMjMuMi0xLjdjLTAuMSwwLjEtMC4yLDAuMy0wLjMsMC40Yy0xLDEuNy0yLDMuNC0yLjksNS4xQzI4LjIsNDkuNywzMy44LDUzLjksMzkuOCw1Ny42eiIvPgoJPHBhdGggZD0iTTI2LjIsODguMmMzLjMsMiw2LjcsMy42LDEwLjIsNC43Yy0zLjUtNi4yLTYuMy0xMi42LTguOC0xOC41Yy0zLjEtNy4yLTUuOC0xMy41LTktMTcuMmMtMS45LDgtMiwxNi40LTAuMywyNC43ICAgQzIwLjYsODQuMiwyMy4yLDg2LjMsMjYuMiw4OC4yeiIvPgoJPHBhdGggZD0iTTMwLjksNzNjMi45LDYuOCw2LjEsMTQuNCwxMC41LDIxLjJjMTUuNiwzLDMyLTIuMyw0Mi42LTE0LjZDNjcuNyw3Niw1Mi4yLDY5LjYsMzcuOSw2MC43QzMyLDU3LDI2LjUsNTMsMjEuMyw0OC42ICAgYy0wLjYsMS41LTEuMiwzLTEuNyw0LjZDMjQuMSw1Ny4xLDI3LjMsNjQuNSwzMC45LDczeiIvPgo8L2c+Cjwvc3ZnPg==';
|
||||
const png = await svgUriToPng(document, testCase);
|
||||
expect(png).toBeInstanceOf(Uint8Array);
|
||||
});
|
||||
|
||||
it('should throw error on invalid svg uri', async () => {
|
||||
// We are mocking console.error since jsdom throws errors to console when we try to load an invalid img
|
||||
// https://github.com/facebook/jest/pull/5267#issuecomment-356605468
|
||||
const consoleError = console.error;
|
||||
console.error = jest.fn();
|
||||
const testCases: Array<string> = [
|
||||
'data:image/svg+xml;base64,error',
|
||||
'invalid',
|
||||
];
|
||||
for (const testCase of testCases) {
|
||||
await expect(svgUriToPng(document, testCase)).rejects.toBeInstanceOf(Error);
|
||||
}
|
||||
console.error = consoleError;
|
||||
});
|
||||
});
|
||||
@@ -2,7 +2,6 @@ import ResourceEditWatcher from '@joplin/lib/services/ResourceEditWatcher/index'
|
||||
import { _ } from '@joplin/lib/locale';
|
||||
import { copyHtmlToClipboard } from './clipboardUtils';
|
||||
import bridge from '../../../services/bridge';
|
||||
import { ContextMenuItemType, ContextMenuOptions, ContextMenuItems, resourceInfo, textToDataUri, svgUriToPng } from './contextMenuUtils';
|
||||
const Menu = bridge().Menu;
|
||||
const MenuItem = bridge().MenuItem;
|
||||
import Resource from '@joplin/lib/models/Resource';
|
||||
@@ -11,10 +10,43 @@ import BaseModel from '@joplin/lib/BaseModel';
|
||||
import { processPastedHtml } from './resourceHandling';
|
||||
import { NoteEntity, ResourceEntity } from '@joplin/lib/services/database/types';
|
||||
const fs = require('fs-extra');
|
||||
const { writeFile } = require('fs-extra');
|
||||
const { clipboard } = require('electron');
|
||||
const { toSystemSlashes } = require('@joplin/lib/path-utils');
|
||||
|
||||
export enum ContextMenuItemType {
|
||||
None = '',
|
||||
Image = 'image',
|
||||
Resource = 'resource',
|
||||
Text = 'text',
|
||||
Link = 'link',
|
||||
}
|
||||
|
||||
export interface ContextMenuOptions {
|
||||
itemType: ContextMenuItemType;
|
||||
resourceId: string;
|
||||
linkToCopy: string;
|
||||
textToCopy: string;
|
||||
htmlToCopy: string;
|
||||
insertContent: Function;
|
||||
isReadOnly?: boolean;
|
||||
}
|
||||
|
||||
interface ContextMenuItem {
|
||||
label: string;
|
||||
onAction: Function;
|
||||
isActive: Function;
|
||||
}
|
||||
|
||||
interface ContextMenuItems {
|
||||
[key: string]: ContextMenuItem;
|
||||
}
|
||||
|
||||
async function resourceInfo(options: ContextMenuOptions): Promise<any> {
|
||||
const resource = options.resourceId ? await Resource.load(options.resourceId) : null;
|
||||
const resourcePath = resource ? Resource.fullPath(resource) : '';
|
||||
return { resource, resourcePath };
|
||||
}
|
||||
|
||||
function handleCopyToClipboard(options: ContextMenuOptions) {
|
||||
if (options.textToCopy) {
|
||||
clipboard.writeText(options.textToCopy);
|
||||
@@ -23,12 +55,6 @@ function handleCopyToClipboard(options: ContextMenuOptions) {
|
||||
}
|
||||
}
|
||||
|
||||
async function saveFileData(data: any, filename: string) {
|
||||
const newFilePath = await bridge().showSaveDialog({ defaultPath: filename });
|
||||
if (!newFilePath) return;
|
||||
await writeFile(newFilePath, data);
|
||||
}
|
||||
|
||||
export async function openItemById(itemId: string, dispatch: Function, hash: string = '') {
|
||||
|
||||
const item = await BaseItem.loadItemById(itemId);
|
||||
@@ -74,7 +100,7 @@ export function menuItems(dispatch: Function): ContextMenuItems {
|
||||
onAction: async (options: ContextMenuOptions) => {
|
||||
await openItemById(options.resourceId, dispatch);
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => !options.textToCopy && (itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource),
|
||||
isActive: (itemType: ContextMenuItemType) => itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource,
|
||||
},
|
||||
saveAs: {
|
||||
label: _('Save as...'),
|
||||
@@ -86,32 +112,7 @@ export function menuItems(dispatch: Function): ContextMenuItems {
|
||||
if (!filePath) return;
|
||||
await fs.copy(resourcePath, filePath);
|
||||
},
|
||||
// We handle images received as text seperately as it can be saved in multiple formats
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => !options.textToCopy && (itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource),
|
||||
},
|
||||
saveAsSvg: {
|
||||
label: _('Save as SVG'),
|
||||
onAction: async (options: ContextMenuOptions) => {
|
||||
await saveFileData(options.textToCopy, options.filename);
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => !!options.textToCopy && itemType === ContextMenuItemType.Image && options.mime?.startsWith('image/svg'),
|
||||
},
|
||||
saveAsPng: {
|
||||
label: _('Save as PNG'),
|
||||
onAction: async (options: ContextMenuOptions) => {
|
||||
// First convert it to png then save
|
||||
if (options.mime != 'image/svg+xml') {
|
||||
throw new Error(`Unsupported image type: ${options.mime}`);
|
||||
}
|
||||
if (!options.filename) {
|
||||
throw new Error('Filename is needed to save as png');
|
||||
}
|
||||
const dataUri = textToDataUri(options.textToCopy, options.mime);
|
||||
const png = await svgUriToPng(document, dataUri);
|
||||
const filename = options.filename.replace('.svg', '.png');
|
||||
await saveFileData(png, filename);
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => !!options.textToCopy && itemType === ContextMenuItemType.Image && options.mime?.startsWith('image/svg'),
|
||||
isActive: (itemType: ContextMenuItemType) => itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource,
|
||||
},
|
||||
revealInFolder: {
|
||||
label: _('Reveal file in folder'),
|
||||
@@ -119,20 +120,13 @@ export function menuItems(dispatch: Function): ContextMenuItems {
|
||||
const { resourcePath } = await resourceInfo(options);
|
||||
bridge().showItemInFolder(resourcePath);
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => !options.textToCopy && itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource,
|
||||
isActive: (itemType: ContextMenuItemType) => itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource,
|
||||
},
|
||||
copyPathToClipboard: {
|
||||
label: _('Copy path to clipboard'),
|
||||
onAction: async (options: ContextMenuOptions) => {
|
||||
let path = '';
|
||||
if (options.textToCopy && options.mime) {
|
||||
path = textToDataUri(options.textToCopy, options.mime);
|
||||
} else {
|
||||
const { resourcePath } = await resourceInfo(options);
|
||||
if (resourcePath) path = toSystemSlashes(resourcePath);
|
||||
}
|
||||
if (!path) return;
|
||||
clipboard.writeText(path);
|
||||
const { resourcePath } = await resourceInfo(options);
|
||||
clipboard.writeText(toSystemSlashes(resourcePath));
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType) => itemType === ContextMenuItemType.Image || itemType === ContextMenuItemType.Resource,
|
||||
},
|
||||
@@ -143,7 +137,7 @@ export function menuItems(dispatch: Function): ContextMenuItems {
|
||||
const image = bridge().createImageFromPath(resourcePath);
|
||||
clipboard.writeImage(image);
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => !options.textToCopy && itemType === ContextMenuItemType.Image,
|
||||
isActive: (itemType: ContextMenuItemType) => itemType === ContextMenuItemType.Image,
|
||||
},
|
||||
cut: {
|
||||
label: _('Cut'),
|
||||
@@ -151,14 +145,14 @@ export function menuItems(dispatch: Function): ContextMenuItems {
|
||||
handleCopyToClipboard(options);
|
||||
options.insertContent('');
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => itemType != ContextMenuItemType.Image && (!options.isReadOnly && (!!options.textToCopy || !!options.htmlToCopy)),
|
||||
isActive: (_itemType: ContextMenuItemType, options: ContextMenuOptions) => !options.isReadOnly && (!!options.textToCopy || !!options.htmlToCopy),
|
||||
},
|
||||
copy: {
|
||||
label: _('Copy'),
|
||||
onAction: async (options: ContextMenuOptions) => {
|
||||
handleCopyToClipboard(options);
|
||||
},
|
||||
isActive: (itemType: ContextMenuItemType, options: ContextMenuOptions) => itemType != ContextMenuItemType.Image && (!!options.textToCopy || !!options.htmlToCopy),
|
||||
isActive: (_itemType: ContextMenuItemType, options: ContextMenuOptions) => !!options.textToCopy || !!options.htmlToCopy,
|
||||
},
|
||||
paste: {
|
||||
label: _('Paste'),
|
||||
@@ -190,6 +184,7 @@ export default async function contextMenu(options: ContextMenuOptions, dispatch:
|
||||
const items = menuItems(dispatch);
|
||||
|
||||
if (!('readyOnly' in options)) options.isReadOnly = true;
|
||||
|
||||
for (const itemKey in items) {
|
||||
const item = items[itemKey];
|
||||
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
import Resource from '@joplin/lib/models/Resource';
|
||||
|
||||
export enum ContextMenuItemType {
|
||||
None = '',
|
||||
Image = 'image',
|
||||
Resource = 'resource',
|
||||
Text = 'text',
|
||||
Link = 'link',
|
||||
}
|
||||
|
||||
export interface ContextMenuOptions {
|
||||
itemType: ContextMenuItemType;
|
||||
resourceId: string;
|
||||
mime: string;
|
||||
filename: string;
|
||||
linkToCopy: string;
|
||||
textToCopy: string;
|
||||
htmlToCopy: string;
|
||||
insertContent: Function;
|
||||
isReadOnly?: boolean;
|
||||
}
|
||||
|
||||
export interface ContextMenuItem {
|
||||
label: string;
|
||||
onAction: Function;
|
||||
isActive: Function;
|
||||
}
|
||||
|
||||
export interface ContextMenuItems {
|
||||
[key: string]: ContextMenuItem;
|
||||
}
|
||||
|
||||
export async function resourceInfo(options: ContextMenuOptions): Promise<any> {
|
||||
const resource = options.resourceId ? await Resource.load(options.resourceId) : null;
|
||||
const filePath = resource ? Resource.fullPath(resource) : null;
|
||||
const filename = resource ? (resource.filename ? resource.filename : resource.title) : options.filename ? options.filename : '';
|
||||
return { resource, filePath, filename };
|
||||
}
|
||||
|
||||
export function textToDataUri(text: string, mime: string): string {
|
||||
return `data:${mime};base64,${Buffer.from(text).toString('base64')}`;
|
||||
}
|
||||
|
||||
export const svgUriToPng = (document: Document, svg: string) => {
|
||||
return new Promise<Uint8Array>((resolve, reject) => {
|
||||
let canvas: HTMLCanvasElement;
|
||||
let img: HTMLImageElement;
|
||||
|
||||
const cleanUpAndReject = (e: Error) => {
|
||||
if (canvas) canvas.remove();
|
||||
if (img) img.remove();
|
||||
return reject(e);
|
||||
};
|
||||
|
||||
try {
|
||||
img = document.createElement('img');
|
||||
if (!img) throw new Error('Failed to create img element');
|
||||
} catch (e) {
|
||||
return cleanUpAndReject(e);
|
||||
}
|
||||
|
||||
img.onload = function() {
|
||||
try {
|
||||
canvas = document.createElement('canvas');
|
||||
if (!canvas) throw new Error('Failed to create canvas element');
|
||||
canvas.width = img.width;
|
||||
canvas.height = img.height;
|
||||
const ctx = canvas.getContext('2d');
|
||||
if (!ctx) throw new Error('Failed to get context');
|
||||
ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, img.width, img.height);
|
||||
const pngUri = canvas.toDataURL('image/png');
|
||||
if (!pngUri) throw new Error('Failed to generate png uri');
|
||||
const pngBase64 = pngUri.split(',')[1];
|
||||
const byteString = atob(pngBase64);
|
||||
// write the bytes of the string to a typed array
|
||||
const buff = new Uint8Array(byteString.length);
|
||||
for (let i = 0; i < byteString.length; i++) {
|
||||
buff[i] = byteString.charCodeAt(i);
|
||||
}
|
||||
canvas.remove();
|
||||
img.remove();
|
||||
resolve(buff);
|
||||
} catch (err) {
|
||||
cleanUpAndReject(err);
|
||||
}
|
||||
};
|
||||
img.onerror = function(e) {
|
||||
cleanUpAndReject(new Error(e.toString()));
|
||||
};
|
||||
img.src = svg;
|
||||
});
|
||||
};
|
||||
@@ -35,8 +35,6 @@ export default function useMessageHandler(scrollWhenReady: any, setScrollWhenRea
|
||||
const menu = await contextMenu({
|
||||
itemType: arg0 && arg0.type,
|
||||
resourceId: arg0.resourceId,
|
||||
filename: arg0.filename,
|
||||
mime: arg0.mime,
|
||||
textToCopy: arg0.textToCopy,
|
||||
linkToCopy: arg0.linkToCopy || null,
|
||||
htmlToCopy: '',
|
||||
|
||||
@@ -40,13 +40,8 @@ export default function() {
|
||||
'toggleVisiblePanes',
|
||||
'editor.deleteLine',
|
||||
'editor.duplicateLine',
|
||||
// We cannot put the undo/redo commands in the menu because they are
|
||||
// editor-specific commands. If we put them there it will break the
|
||||
// undo/redo in regular text fields.
|
||||
// https://github.com/laurent22/joplin/issues/6214
|
||||
|
||||
// 'editor.undo',
|
||||
// 'editor.redo',
|
||||
'editor.undo',
|
||||
'editor.redo',
|
||||
'editor.indentLess',
|
||||
'editor.indentMore',
|
||||
'editor.toggleComment',
|
||||
|
||||
@@ -586,24 +586,9 @@
|
||||
}));
|
||||
|
||||
document.addEventListener('contextmenu', webviewLib.logEnabledEventHandler(event => {
|
||||
// To handle right clicks on resource icons
|
||||
let element = event.target;
|
||||
|
||||
// Mermaid svgs are wrapped inside a <pre> with class "mermaid"
|
||||
let mermaidElement = element.closest(".mermaid")?.children[0];
|
||||
if (mermaidElement) {
|
||||
const svgString = new XMLSerializer().serializeToString(mermaidElement);
|
||||
if (!!svgString) {
|
||||
ipcProxySendToHost('contextMenu', {
|
||||
type: 'image',
|
||||
textToCopy: svgString,
|
||||
mime: 'image/svg+xml',
|
||||
filename: mermaidElement.id + '.svg',
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// To handle right clicks on resource icons
|
||||
if (element && !element.getAttribute('data-resource-id')) element = element.parentElement;
|
||||
|
||||
if (element && element.getAttribute('data-resource-id')) {
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
/**
|
||||
* A Jest custom test Environment to load the resources for the tests.
|
||||
* Use this test envirenment when you work with resources like images, files.
|
||||
* See gui/NoteEditor/utils/contextMenu.test.ts for an example.
|
||||
*/
|
||||
|
||||
const JSDOMEnvironment = require('jest-environment-jsdom');
|
||||
import type { EnvironmentContext } from '@jest/environment';
|
||||
import type { Config } from '@jest/types';
|
||||
|
||||
|
||||
export default class CustomEnvironment extends JSDOMEnvironment {
|
||||
constructor(config: Config.ProjectConfig, context?: EnvironmentContext) {
|
||||
// Resources is set to 'usable' to enable fetching of resources like images and fonts while testing
|
||||
// Which does not happen by default in jest
|
||||
// https://stackoverflow.com/a/49482563
|
||||
config.testEnvironmentOptions.resources = 'usable';
|
||||
super(config, context);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/app-desktop",
|
||||
"version": "2.7.14",
|
||||
"version": "2.7.12",
|
||||
"description": "Joplin for Desktop",
|
||||
"main": "main.js",
|
||||
"private": true,
|
||||
@@ -67,7 +67,7 @@
|
||||
},
|
||||
"nsis": {
|
||||
"oneClick": false,
|
||||
"allowToChangeInstallationDirectory": false,
|
||||
"allowToChangeInstallationDirectory": true,
|
||||
"differentialPackage": false
|
||||
},
|
||||
"portable": {
|
||||
@@ -116,7 +116,6 @@
|
||||
"app-builder-bin": "^1.9.11",
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-preset-react": "^6.24.1",
|
||||
"canvas": "^2.9.0",
|
||||
"electron": "14.1.0",
|
||||
"electron-builder": "^22.11.7",
|
||||
"electron-notarize": "^1.0.0",
|
||||
|
||||
@@ -210,7 +210,7 @@ class CameraView extends Component {
|
||||
<View style={{ flex: 1, flexDirection: 'row', justifyContent: 'center', alignItems: 'flex-end' }}>
|
||||
<View style={{ flex: 1, flexDirection: 'row', justifyContent: 'center', alignItems: 'center', marginBottom: 20 }}>
|
||||
{ reverseCameraButton }
|
||||
<TouchableOpacity onPress={this.photo_onPress} disabled={this.state.snapping}>
|
||||
<TouchableOpacity onPress={this.photo_onPress}>
|
||||
<View style={{ flexDirection: 'row', borderRadius: 90, width: 90, height: 90, backgroundColor: '#ffffffaa', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
|
||||
<Icon
|
||||
name={photoIcon}
|
||||
|
||||
@@ -103,7 +103,7 @@ export default class SelectDateTimeDialog extends React.PureComponent<any, any>
|
||||
return (
|
||||
<View style={{ flex: 0, margin: 20, alignItems: 'center' }}>
|
||||
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||
{ this.state.date && <Text style={{ ...theme.normalText,color: theme.color, marginRight: 10 }}>{time.formatDateToLocal(this.state.date)}</Text> }
|
||||
{ this.state.date && <Text style={{ ...theme.normalText, marginRight: 10 }}>{time.formatDateToLocal(this.state.date)}</Text> }
|
||||
<Button title="Set date" onPress={this.onSetDate} />
|
||||
</View>
|
||||
<DateTimePickerModal
|
||||
|
||||
@@ -21,7 +21,6 @@ class NoteTagsDialogComponent extends React.Component {
|
||||
tagListData: [],
|
||||
newTags: '',
|
||||
savingTags: false,
|
||||
tagFilter: '',
|
||||
};
|
||||
|
||||
const noteHasTag = tagId => {
|
||||
@@ -89,10 +88,6 @@ class NoteTagsDialogComponent extends React.Component {
|
||||
this.cancelButton_press = () => {
|
||||
if (this.props.onCloseRequested) this.props.onCloseRequested();
|
||||
};
|
||||
|
||||
this.filterTags = (allTags) => {
|
||||
return allTags.filter((tag) => tag.title.includes(this.state.tagFilter.toLowerCase()), allTags);
|
||||
};
|
||||
}
|
||||
|
||||
UNSAFE_componentWillMount() {
|
||||
@@ -145,16 +140,16 @@ class NoteTagsDialogComponent extends React.Component {
|
||||
fontSize: 20,
|
||||
color: theme.color,
|
||||
},
|
||||
tagBox: {
|
||||
newTagBox: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
paddingLeft: 10,
|
||||
paddingRight: 10,
|
||||
paddingLeft: theme.marginLeft,
|
||||
paddingRight: theme.marginRight,
|
||||
borderBottomWidth: 1,
|
||||
borderBottomColor: theme.dividerColor,
|
||||
},
|
||||
newTagBoxLabel: Object.assign({}, theme.normalText, { marginRight: 8 }),
|
||||
tagBoxInput: Object.assign({}, theme.lineInput, { flex: 1 }),
|
||||
newTagBoxInput: Object.assign({}, theme.lineInput, { flex: 1 }),
|
||||
};
|
||||
|
||||
this.styles_[themeId] = StyleSheet.create(styles);
|
||||
@@ -166,7 +161,7 @@ class NoteTagsDialogComponent extends React.Component {
|
||||
|
||||
const dialogContent = (
|
||||
<View style={{ flex: 1 }}>
|
||||
<View style={this.styles().tagBox}>
|
||||
<View style={this.styles().newTagBox}>
|
||||
<Text style={this.styles().newTagBoxLabel}>{_('New tags:')}</Text>
|
||||
<TextInput
|
||||
selectionColor={theme.textSelectionColor}
|
||||
@@ -175,23 +170,10 @@ class NoteTagsDialogComponent extends React.Component {
|
||||
onChangeText={value => {
|
||||
this.setState({ newTags: value });
|
||||
}}
|
||||
style={this.styles().tagBoxInput}
|
||||
placeholder={_('tag1,tag2,...')}
|
||||
style={this.styles().newTagBoxInput}
|
||||
/>
|
||||
</View>
|
||||
<View style={this.styles().tagBox}>
|
||||
<TextInput
|
||||
selectionColor={theme.textSelectionColor}
|
||||
keyboardAppearance={theme.keyboardAppearance}
|
||||
value={this.state.tagFilter}
|
||||
onChangeText={value => {
|
||||
this.setState({ tagFilter: value });
|
||||
}}
|
||||
placeholder={_('Filter tags')}
|
||||
style={this.styles().tagBoxInput}
|
||||
/>
|
||||
</View>
|
||||
<FlatList data={this.filterTags(this.state.tagListData)} renderItem={this.renderTag} keyExtractor={this.tagKeyExtractor} />
|
||||
<FlatList data={this.state.tagListData} renderItem={this.renderTag} keyExtractor={this.tagKeyExtractor} />
|
||||
</View>
|
||||
);
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
"Aritim Dark": "Aritim Dark",
|
||||
"Attach file": "Liitä tiedosto",
|
||||
"Attach photo": "Liitä valokuva",
|
||||
"Attach...": "Liitä...",
|
||||
"Attach...": "Liittää...",
|
||||
"Attaches the given file to the note.": "Liittää annetun tiedoston muistiinpanoon.",
|
||||
"attachment": "liite",
|
||||
"Attachment conflict: \"%s\"": "Liitteen ristiriita: \"%s\"",
|
||||
@@ -78,7 +78,6 @@
|
||||
"Authorisation token:": "Valtuutuksen tunnus:",
|
||||
"Auto": "Automaattinen",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Yhdistä sulut, sulkeet, lainaukset jne.",
|
||||
"Automatically check for updates": "Tarkista päivitykset automaattisesti",
|
||||
"Automatically switch theme to match system theme": "Vaihda teema automaattisesti vastaamaan järjestelmän teemaa",
|
||||
"Back": "Takaisin",
|
||||
"Bold": "Lihavoitu",
|
||||
@@ -143,7 +142,6 @@
|
||||
"Convert to todo": "Muunna tehtäväksi",
|
||||
"Copy": "Kopioi",
|
||||
"Copy dev mode command to clipboard": "Kopioi kehitystila komento leikepöydälle",
|
||||
"Copy image": "Kopioi kuva",
|
||||
"Copy Link Address": "Kopioi linkin osoite",
|
||||
"Copy Markdown link": "Kopioi Merkinnän linkki",
|
||||
"Copy path to clipboard": "Kopioi polku leikepöydälle",
|
||||
@@ -155,8 +153,6 @@
|
||||
"Could not install plugin: %s": "Laajennuksen asentaminen epäonnistui: %s",
|
||||
"Could not upgrade master key: %s": "Pääavainta ei voitu päivittää: %s",
|
||||
"Create a notebook": "Luo muistikirja",
|
||||
"Create notebook": "Luo muistikirja",
|
||||
"Create user": "Luo käyttäjä",
|
||||
"Created": "Luotu",
|
||||
"created date": "luotu päivämäärä",
|
||||
"Created local items: %d.": "Luodut paikalliset kohteet: %d.",
|
||||
@@ -252,8 +248,6 @@
|
||||
"Editor monospace font family": "Editorin monospace fonttiperhe",
|
||||
"Either \"text\" or \"json\"": "Joko \"text\" tai \"json\"",
|
||||
"Emacs": "Emacs",
|
||||
"Email": "Sähköposti",
|
||||
"Emails": "Sähköpostit",
|
||||
"emphasised text": "korostettu teksti",
|
||||
"Enable": "Ota käyttöön",
|
||||
"Enable ++insert++ syntax": "Ota käyttöön ++insert++ syntax",
|
||||
@@ -285,8 +279,6 @@
|
||||
"Encryption": "Salaus",
|
||||
"Encryption Config": "Salauksen määritys",
|
||||
"Encryption is: %s": "Salaus on: %s",
|
||||
"Encryption keys": "Salausavaimet",
|
||||
"Encryption:": "Salaus:",
|
||||
"Enter code here": "Syötä koodi tähän",
|
||||
"Enter master password:": "Syötä pääsalasana:",
|
||||
"Enter notebook title": "Anna muistikirjan otsikko",
|
||||
@@ -354,7 +346,6 @@
|
||||
"Idle": "Käyttämättömänä",
|
||||
"Ignore": "Ohita",
|
||||
"Ignore TLS certificate errors": "Ohita TLS varmenteen virheet",
|
||||
"Images": "Kuvat",
|
||||
"Import": "Tuo",
|
||||
"Importing from \"%s\" as \"%s\" format. Please wait...": "Tuodaan kohteesta \"%s\" as \"%s\" muodossa. Odota...",
|
||||
"Importing notes...": "Muistiinpanojen tuominen...",
|
||||
@@ -383,7 +374,6 @@
|
||||
"Invalid answer: %s": "Virheellinen vastaus: %s",
|
||||
"Invalid command: \"%s\"": "Virheellinen komento: \"%s\"",
|
||||
"Invalid option value: \"%s\". Possible values are: %s.": "Virheellinen asetusarvo: \"%s\". Mahdolliset arvot ovat: %s.",
|
||||
"Invalid password": "Virheellinen salasana",
|
||||
"Italic": "Kursiivi",
|
||||
"Item \"%s\" could not be downloaded: %s": "Kohdetta \"%s\" ei voitu ladata: %s",
|
||||
"Items that cannot be decrypted": "Kohteet, joita ei voi purkaa",
|
||||
@@ -429,8 +419,6 @@
|
||||
"Login with Dropbox": "Kirjaudu sisään Dropbox",
|
||||
"Login with OneDrive": "Kirjaudu sisään OneDrive",
|
||||
"Make a donation": "Tee lahjoitus",
|
||||
"Manage master password": "Pääsalasanan hallinta",
|
||||
"Manage master password...": "Pääsalasanan hallinta...",
|
||||
"Manage your plugins": "Hallitse laajennuksia",
|
||||
"Manual": "Manuaalinen",
|
||||
"Markdown": "Markdown",
|
||||
@@ -438,8 +426,6 @@
|
||||
"Marks a to-do as non-completed.": "Merkitsee tehtävän keskeneräiseksi.",
|
||||
"Markup": "Merkintä",
|
||||
"Master Key %s": "Pääavain %s",
|
||||
"Master password": "Pääsalasana",
|
||||
"Master password:": "Pääsalasana:",
|
||||
"Max concurrent connections": "Samanaikaiset yhteydet enintään",
|
||||
"Missing Master Keys": "Puuttuvat pääavaimet",
|
||||
"Missing required argument: %s": "Vaadittu argumentti puuttuu: %s",
|
||||
@@ -489,7 +475,7 @@
|
||||
"Note body": "Muistiinpanon kappale",
|
||||
"Note does not exist: \"%s\". Create it?": "Huomautusta ei ole: \"%s\". Luodaanko se?",
|
||||
"Note has been saved.": "Huomautus on tallennettu.",
|
||||
"Note History": "Muistiinpanohistoria",
|
||||
"Note History": "Muistiinpano historia",
|
||||
"Note is not a to-do: \"%s\"": "Huomautus ei ole tehtävä: \"%s\"",
|
||||
"Note list": "Muistiinpanot",
|
||||
"Note list growth factor": "Huomautus luettelon kasvutekijä",
|
||||
@@ -498,12 +484,10 @@
|
||||
"Note&book": "&Muistikirjat",
|
||||
"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": "Muistikirja",
|
||||
"Notebook list growth factor": "Muistikirjaluettelon kasvutekijä",
|
||||
"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.",
|
||||
"Notes": "Muistiinpanot",
|
||||
"Notes and settings are stored in: %s": "Muistiinpanot ja oletusasetukset tallennetaan: %s",
|
||||
"Notes can only be created within a notebook.": "Muistiinpanoja voi luoda vain muistikirjaan.",
|
||||
"Numbered List": "Numeroitu luettelo",
|
||||
@@ -617,7 +601,6 @@
|
||||
"See the pre-release page for more details: %s": "Lisätietoja on ennakkojulkaisusivulla: %s",
|
||||
"Select": "Valitse",
|
||||
"Select all": "Valitse kaikki",
|
||||
"Select file...": "Valitse tiedosto...",
|
||||
"Server is already running on port %d": "Palvelin on jo käynnissä portissa %d",
|
||||
"Server is not running.": "Palvelin ei ole käynnissä.",
|
||||
"Server is running on port %d": "Palvelin on käynnissä portissa %d",
|
||||
@@ -814,7 +797,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.": "Tämän avulla voit muodostaa hakuindeksin uudelleen, jos haussa on ongelma. Se voi kestää kauan muistiinpanojen määrästä riippuen.",
|
||||
"Used for most text in the markdown editor. If not found, a generic proportional (variable width) font is used.": "Käytetään useimmissa teksteissä markdown editorissa. Jos sitä ei löydy, käytetään yleistä suhteellista fonttia (vaihtelevaa leveyttä).",
|
||||
"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.": "Käytetään, kun tekstiin tarvitaan kiinteäleveyksinen fontti (esim. taulukot, valintaruudut, koodi). Jos sitä ei löydy, käytetään yleistä monospace fonttia (kiinteäleveyksinen).",
|
||||
"Users": "Käyttäjät",
|
||||
"Valid": "Kelvollinen",
|
||||
"View": "Näytä",
|
||||
"View on map": "Näytä kartalla",
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
"Auto": "Auto",
|
||||
"Auto-add disabled accounts for deletion": "Supprimer automatiquement les comptes désactivés",
|
||||
"Auto-pair braces, parenthesis, quotations, etc.": "Auto‑compléter les paires de parenthèses, guillemets, etc.",
|
||||
"Automatically check for updates": "Vérifier automatiquement les mises à jour",
|
||||
"Automatically check for updates": "Vérifier automatiquement les mises à jour…",
|
||||
"Automatically switch theme to match system theme": "Changer le thème automatiquement pour correspondre au thème système",
|
||||
"Back": "Retour",
|
||||
"Bold": "Gras",
|
||||
@@ -663,7 +663,7 @@
|
||||
"Select": "Sélectionner",
|
||||
"Select all": "Sélectionner tout",
|
||||
"Select emoji...": "Sélectionner émoji...",
|
||||
"Select file...": "Sélectionner fichier...",
|
||||
"Select file...": "Sélectionner fichier",
|
||||
"Server is already running on port %d": "Le serveur tourne déjà sur le port %d",
|
||||
"Server is not running.": "Le serveur est arrêté.",
|
||||
"Server is running on port %d": "Le serveur tourne sur le port %d",
|
||||
|
||||
@@ -55,7 +55,7 @@ stats['en_GB'] = {"percentDone":100};
|
||||
stats['en_US'] = {"percentDone":100};
|
||||
stats['es_ES'] = {"percentDone":96};
|
||||
stats['eo'] = {"percentDone":29};
|
||||
stats['fi_FI'] = {"percentDone":92};
|
||||
stats['fi_FI'] = {"percentDone":91};
|
||||
stats['fr_FR'] = {"percentDone":100};
|
||||
stats['gl_ES'] = {"percentDone":33};
|
||||
stats['id_ID'] = {"percentDone":90};
|
||||
|
||||
@@ -15,17 +15,8 @@ export class MarkupLanguageUtils {
|
||||
throw new Error(`Unsupported markup language: ${language}`);
|
||||
}
|
||||
|
||||
public extractImageUrls(language: MarkupLanguage, text: string): string[] {
|
||||
let urls: string[] = [];
|
||||
|
||||
if (language === MarkupLanguage.Any) {
|
||||
urls = urls.concat(this.lib_(MarkupLanguage.Markdown).extractImageUrls(text));
|
||||
urls = urls.concat(this.lib_(MarkupLanguage.Html).extractImageUrls(text));
|
||||
} else {
|
||||
urls = this.lib_(language).extractImageUrls(text);
|
||||
}
|
||||
|
||||
return urls;
|
||||
public extractImageUrls(language: MarkupLanguage, text: string) {
|
||||
return this.lib_(language).extractImageUrls(text);
|
||||
}
|
||||
|
||||
// Create a new MarkupToHtml instance while injecting options specific to Joplin
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { expectNotThrow, naughtyStrings, setupDatabaseAndSynchronizer, switchClient } from '../testing/test-utils';
|
||||
import Note from '../models/Note';
|
||||
import Revision, { ObjectPatch } from '../models/Revision';
|
||||
import Revision from '../models/Revision';
|
||||
|
||||
describe('models/Revision', function() {
|
||||
|
||||
@@ -139,53 +139,6 @@ describe('models/Revision', function() {
|
||||
expect(JSON.stringify(merged)).toBe(JSON.stringify(newObject));
|
||||
}));
|
||||
|
||||
it('should handle invalid object patch', (async () => {
|
||||
const oldObject = {
|
||||
one: '123',
|
||||
two: '456',
|
||||
three: '789',
|
||||
};
|
||||
|
||||
const brokenPatch = `{"new":{"four":"444
|
||||
"},"deleted":["one"]}`;
|
||||
|
||||
const expected = {
|
||||
two: '456',
|
||||
three: '789',
|
||||
four: '444',
|
||||
};
|
||||
|
||||
const merged = Revision.applyObjectPatch(oldObject, brokenPatch);
|
||||
|
||||
expect(JSON.stringify(merged)).toBe(JSON.stringify(expected));
|
||||
}));
|
||||
|
||||
it('should not strip off newlines from object values', (async () => {
|
||||
const oldObject = {
|
||||
one: '123',
|
||||
two: '456',
|
||||
three: '789',
|
||||
};
|
||||
|
||||
const patch: ObjectPatch = {
|
||||
'new': {
|
||||
'four': 'one line\ntwo line',
|
||||
},
|
||||
'deleted': [],
|
||||
};
|
||||
|
||||
const expected = {
|
||||
one: '123',
|
||||
two: '456',
|
||||
three: '789',
|
||||
four: 'one line\ntwo line',
|
||||
};
|
||||
|
||||
const merged = Revision.applyObjectPatch(oldObject, JSON.stringify(patch));
|
||||
|
||||
expect(JSON.stringify(merged)).toBe(JSON.stringify(expected));
|
||||
}));
|
||||
|
||||
it('should move target revision to the top', (async () => {
|
||||
const revs = [
|
||||
{ id: '123' },
|
||||
@@ -229,10 +182,6 @@ describe('models/Revision', function() {
|
||||
%0A%0A# `,
|
||||
expected: [-(19 + 27 + 2), 17 + 67 + 4],
|
||||
},
|
||||
{
|
||||
patch: '',
|
||||
expected: [-0, +0],
|
||||
},
|
||||
];
|
||||
|
||||
for (const test of tests) {
|
||||
|
||||
@@ -8,11 +8,6 @@ const { sprintf } = require('sprintf-js');
|
||||
|
||||
const dmp = new DiffMatchPatch();
|
||||
|
||||
export interface ObjectPatch {
|
||||
new: Record<string, any>;
|
||||
deleted: string[];
|
||||
}
|
||||
|
||||
export default class Revision extends BaseItem {
|
||||
static tableName() {
|
||||
return 'revisions';
|
||||
@@ -53,7 +48,7 @@ export default class Revision extends BaseItem {
|
||||
|
||||
private static isNewPatch(patch: string): boolean {
|
||||
if (!patch) return true;
|
||||
return patch.indexOf('[{') === 0 || patch === '[]';
|
||||
return patch.indexOf('[{') === 0;
|
||||
}
|
||||
|
||||
public static applyTextPatch(text: string, patch: string): string {
|
||||
@@ -63,7 +58,7 @@ export default class Revision extends BaseItem {
|
||||
// An empty patch should be '[]', but legacy data may be just "".
|
||||
// However an empty string would make JSON.parse fail so we set it
|
||||
// to '[]'.
|
||||
const result = dmp.patch_apply(this.parsePatch(patch), text);
|
||||
const result = dmp.patch_apply(JSON.parse(patch ? patch : '[]'), text);
|
||||
if (!result || !result.length) throw new Error('Could not apply patch');
|
||||
return result[0];
|
||||
}
|
||||
@@ -83,10 +78,10 @@ export default class Revision extends BaseItem {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static createObjectPatch(oldObject: any, newObject: any) {
|
||||
static createObjectPatch(oldObject: any, newObject: any) {
|
||||
if (!oldObject) oldObject = {};
|
||||
|
||||
const output: ObjectPatch = {
|
||||
const output: any = {
|
||||
new: {},
|
||||
deleted: [],
|
||||
};
|
||||
@@ -105,22 +100,16 @@ export default class Revision extends BaseItem {
|
||||
return JSON.stringify(output);
|
||||
}
|
||||
|
||||
// We need to sanitise the object patch because it seems some are broken and
|
||||
// may contain new lines: https://github.com/laurent22/joplin/issues/6209
|
||||
private static sanitizeObjectPatch(patch: string): string {
|
||||
return patch.replace(/[\n\r]/g, '');
|
||||
}
|
||||
|
||||
public static applyObjectPatch(object: any, patch: string) {
|
||||
const parsedPatch: ObjectPatch = JSON.parse(this.sanitizeObjectPatch(patch));
|
||||
static applyObjectPatch(object: any, patch: any) {
|
||||
patch = JSON.parse(patch);
|
||||
const output = Object.assign({}, object);
|
||||
|
||||
for (const k in parsedPatch.new) {
|
||||
output[k] = parsedPatch.new[k];
|
||||
for (const k in patch.new) {
|
||||
output[k] = patch.new[k];
|
||||
}
|
||||
|
||||
for (let i = 0; i < parsedPatch.deleted.length; i++) {
|
||||
delete output[parsedPatch.deleted[i]];
|
||||
for (let i = 0; i < patch.deleted.length; i++) {
|
||||
delete output[patch.deleted[i]];
|
||||
}
|
||||
|
||||
return output;
|
||||
@@ -131,7 +120,7 @@ export default class Revision extends BaseItem {
|
||||
// line, so that it can be processed by patchStats().
|
||||
private static newPatchToDiffFormat(patch: string): string {
|
||||
const changeList: string[] = [];
|
||||
const patchArray = this.parsePatch(patch);
|
||||
const patchArray = JSON.parse(patch);
|
||||
for (const patchItem of patchArray) {
|
||||
for (const d of patchItem.diffs) {
|
||||
if (d[0] !== 0) changeList.push(d[0] < 0 ? `-${d[1].replace(/[\n\r]/g, ' ')}` : `+${d[1].trim().replace(/[\n\r]/g, ' ')}`);
|
||||
@@ -248,7 +237,7 @@ export default class Revision extends BaseItem {
|
||||
}
|
||||
|
||||
// Note: revs must be sorted by update_time ASC (as returned by allByType)
|
||||
public static async mergeDiffs(revision: RevisionEntity, revs: RevisionEntity[] = null) {
|
||||
static async mergeDiffs(revision: RevisionEntity, revs: RevisionEntity[] = null) {
|
||||
if (!('encryption_applied' in revision) || !!revision.encryption_applied) throw new JoplinError('Target revision is encrypted', 'revision_encrypted');
|
||||
|
||||
if (!revs) {
|
||||
@@ -284,12 +273,7 @@ export default class Revision extends BaseItem {
|
||||
if (rev.encryption_applied) throw new JoplinError(sprintf('Revision "%s" is encrypted', rev.id), 'revision_encrypted');
|
||||
output.title = this.applyTextPatch(output.title, rev.title_diff);
|
||||
output.body = this.applyTextPatch(output.body, rev.body_diff);
|
||||
try {
|
||||
output.metadata = this.applyObjectPatch(output.metadata, rev.metadata_diff);
|
||||
} catch (error) {
|
||||
error.message = `Revision ${rev.id}: Could not apply patch: ${error.message}: ${rev.metadata_diff}`;
|
||||
throw error;
|
||||
}
|
||||
output.metadata = this.applyObjectPatch(output.metadata, rev.metadata_diff);
|
||||
}
|
||||
|
||||
return output;
|
||||
@@ -346,9 +330,4 @@ export default class Revision extends BaseItem {
|
||||
const existingRev = await Revision.latestRevision(itemType, itemId);
|
||||
return existingRev && existingRev.item_updated_time === updatedTime;
|
||||
}
|
||||
|
||||
private static parsePatch(patch: any): any[] {
|
||||
return patch ? JSON.parse(patch) : [];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const { setupDatabaseAndSynchronizer, switchClient, createNTestNotes, createNTestFolders, createNTestTags } = require('./testing/test-utils.js');
|
||||
const reducer = require('./reducer').default;
|
||||
const { defaultState, MAX_HISTORY } = require('./reducer');
|
||||
// const { ALL_NOTES_FILTER_ID } = require('./reserved-ids');
|
||||
const { ALL_NOTES_FILTER_ID } = require('./reserved-ids');
|
||||
|
||||
function initTestState(folders, selectedFolderIndex, notes, selectedNoteIndexes, tags = null, selectedTagIndex = null) {
|
||||
let state = defaultState;
|
||||
@@ -571,24 +571,24 @@ describe('reducer', function() {
|
||||
expect(state.forwardHistoryNotes.map(x => x.id)).toEqual([]);
|
||||
}));
|
||||
|
||||
// it('should not change folders when all notes filter is on', async () => {
|
||||
// const folders = await createNTestFolders(2);
|
||||
// const notes = [];
|
||||
// for (let i = 0; i < folders.length; i++) {
|
||||
// notes.push(...await createNTestNotes(1, folders[i]));
|
||||
// }
|
||||
// // initialize state with no folders selected
|
||||
// let state = initTestState(folders, null, notes.slice(0,2), null);
|
||||
it('should not change folders when all notes filter is on', async () => {
|
||||
const folders = await createNTestFolders(2);
|
||||
const notes = [];
|
||||
for (let i = 0; i < folders.length; i++) {
|
||||
notes.push(...await createNTestNotes(1, folders[i]));
|
||||
}
|
||||
// initialize state with no folders selected
|
||||
let state = initTestState(folders, null, notes.slice(0,2), null);
|
||||
|
||||
// // turn on 'All Notes' filter
|
||||
// state = reducer(state, { type: 'SMART_FILTER_SELECT', id: ALL_NOTES_FILTER_ID });
|
||||
// turn on 'All Notes' filter
|
||||
state = reducer(state, { type: 'SMART_FILTER_SELECT', id: ALL_NOTES_FILTER_ID });
|
||||
|
||||
// // change folder
|
||||
// state = reducer(state, { type: 'FOLDER_AND_NOTE_SELECT', folderId: folders[1].id, noteId: notes[1].id });
|
||||
// change folder
|
||||
state = reducer(state, { type: 'FOLDER_AND_NOTE_SELECT', folderId: folders[1].id, noteId: notes[1].id });
|
||||
|
||||
// expect(state.selectedFolderId).toEqual(null);
|
||||
// expect(state.selectedNoteIds[0]).toEqual(notes[1].id);
|
||||
// });
|
||||
expect(state.selectedFolderId).toEqual(null);
|
||||
expect(state.selectedNoteIds[0]).toEqual(notes[1].id);
|
||||
});
|
||||
|
||||
// tests for NOTE_UPDATE_ALL about issue #5447
|
||||
it('should not change selectedNoteIds object when selections are not changed', async () => {
|
||||
|
||||
@@ -754,9 +754,15 @@ const reducer = produce((draft: Draft<State> = defaultState, action: any) => {
|
||||
|
||||
case 'FOLDER_AND_NOTE_SELECT':
|
||||
{
|
||||
changeSelectedFolder(draft, action);
|
||||
const noteSelectAction = Object.assign({}, action, { type: 'NOTE_SELECT' });
|
||||
changeSelectedNotes(draft, noteSelectAction);
|
||||
|
||||
if (draft.notesParentType === 'SmartFilter' && draft.selectedSmartFilterId === ALL_NOTES_FILTER_ID) {
|
||||
// we don't want to change folder when 'All Notes' filter is on
|
||||
changeSelectedNotes(draft, noteSelectAction);
|
||||
} else {
|
||||
changeSelectedFolder(draft, action);
|
||||
changeSelectedNotes(draft, noteSelectAction);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -4,11 +4,10 @@ import Setting from '../models/Setting';
|
||||
import Note from '../models/Note';
|
||||
import ItemChange from '../models/ItemChange';
|
||||
import Revision from '../models/Revision';
|
||||
import BaseModel, { ModelType } from '../BaseModel';
|
||||
import BaseModel from '../BaseModel';
|
||||
import RevisionService from '../services/RevisionService';
|
||||
import { MarkupLanguage } from '../../renderer';
|
||||
|
||||
describe('services/RevisionService', function() {
|
||||
describe('services_Revision', function() {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
await setupDatabaseAndSynchronizer(1);
|
||||
@@ -473,82 +472,4 @@ describe('services/RevisionService', function() {
|
||||
expect(Date.now() - interval < timeRev2).toBe(true); // check the computer is not too slow for this test
|
||||
expect((await Revision.all()).length).toBe(2);
|
||||
}));
|
||||
|
||||
it('should give a detailed error when a patch cannot be applied', async () => {
|
||||
const n1_v0 = await Note.save({ title: '', is_todo: 1, todo_completed: 0 });
|
||||
const n1_v1 = await Note.save({ id: n1_v0.id, title: 'hello' });
|
||||
await revisionService().collectRevisions(); // REV 1
|
||||
await time.msleep(100);
|
||||
|
||||
await Note.save({ id: n1_v1.id, title: 'hello welcome', todo_completed: 1000 });
|
||||
await revisionService().collectRevisions(); // REV 2
|
||||
|
||||
// Corrupt the metadata diff to generate the error - we assume that it's
|
||||
// been truncated for whatever reason.
|
||||
|
||||
const corruptedMetadata = '{"new":{"todo_completed":10';
|
||||
const revId2 = (await Revision.all())[1].id;
|
||||
await Revision.save({ id: revId2, metadata_diff: corruptedMetadata });
|
||||
|
||||
const note = await Note.load(n1_v0.id);
|
||||
let error = null;
|
||||
try {
|
||||
await revisionService().createNoteRevision_(note);
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
expect(error).toBeTruthy();
|
||||
expect(error.message).toContain(revId2);
|
||||
expect(error.message).toContain(note.id);
|
||||
expect(error.message).toContain(corruptedMetadata);
|
||||
});
|
||||
|
||||
it('note revisions should include certain required properties', async () => {
|
||||
const revisions = [
|
||||
{
|
||||
id: '2b7d7aa51f944aa5b63b8453e1182cb0',
|
||||
parent_id: '',
|
||||
item_type: 1,
|
||||
item_id: 'cc333327a8d64456a73773b13f22a1ce',
|
||||
item_updated_time: 1647101206511,
|
||||
title_diff: '[{"diffs":[[1,"hello"]],"start1":0,"start2":0,"length1":0,"length2":5}]',
|
||||
body_diff: '[]',
|
||||
metadata_diff: '{"new":{},"deleted":[]}',
|
||||
encryption_applied: 0,
|
||||
type_: 13,
|
||||
},
|
||||
{
|
||||
id: 'd2e1cd8433364bcba8e689aaa20dfef2',
|
||||
parent_id: '2b7d7aa51f944aa5b63b8453e1182cb0',
|
||||
item_type: 1,
|
||||
item_id: 'cc333327a8d64456a73773b13f22a1ce',
|
||||
item_updated_time: 1647101206622,
|
||||
title_diff: '[{"diffs":[[0,"hello"],[1," welcome"]],"start1":0,"start2":0,"length1":5,"length2":13}]',
|
||||
body_diff: '[]',
|
||||
metadata_diff: '{"new":{},"deleted":[]}',
|
||||
encryption_applied: 0,
|
||||
type_: 13,
|
||||
},
|
||||
];
|
||||
|
||||
const note1 = await revisionService().revisionNote(revisions, 1);
|
||||
|
||||
expect(note1.title).toBe('hello welcome');
|
||||
expect(note1.body).toBe('');
|
||||
expect(note1.markup_language).toBe(MarkupLanguage.Markdown);
|
||||
expect(note1.type_).toBe(ModelType.Note);
|
||||
|
||||
// Check that it's not overidding the property if it's already set
|
||||
|
||||
const revisions2 = revisions.slice();
|
||||
revisions2[0] = {
|
||||
...revisions2[0],
|
||||
metadata_diff: '{"new":{"markup_language":2},"deleted":[]}',
|
||||
};
|
||||
|
||||
const note2 = await revisionService().revisionNote(revisions2, 1);
|
||||
expect(note2.markup_language).toBe(MarkupLanguage.Html);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -10,7 +10,6 @@ import BaseService from './BaseService';
|
||||
import { _ } from '../locale';
|
||||
import { ItemChangeEntity, NoteEntity, RevisionEntity } from './database/types';
|
||||
import Logger from '../Logger';
|
||||
import { MarkupLanguage } from '../../renderer';
|
||||
const { substrWithEllipsis } = require('../string-utils');
|
||||
const { sprintf } = require('sprintf-js');
|
||||
const { wrapError } = require('../errorUtils');
|
||||
@@ -138,56 +137,32 @@ export default class RevisionService extends BaseService {
|
||||
const change = changes[i];
|
||||
const noteId = change.item_id;
|
||||
|
||||
try {
|
||||
if (change.type === ItemChange.TYPE_UPDATE && doneNoteIds.indexOf(noteId) < 0) {
|
||||
const note = BaseModel.byId(notes, noteId);
|
||||
const oldNote = change.before_change_item ? JSON.parse(change.before_change_item) : null;
|
||||
if (change.type === ItemChange.TYPE_UPDATE && doneNoteIds.indexOf(noteId) < 0) {
|
||||
const note = BaseModel.byId(notes, noteId);
|
||||
const oldNote = change.before_change_item ? JSON.parse(change.before_change_item) : null;
|
||||
|
||||
if (note) {
|
||||
if (oldNote && oldNote.updated_time < this.oldNoteCutOffDate_()) {
|
||||
// This is where we save the original version of this old note
|
||||
const rev = await this.createNoteRevision_(oldNote);
|
||||
if (rev) logger.debug(sprintf('collectRevisions: Saved revision %s (old note)', rev.id));
|
||||
}
|
||||
|
||||
const rev = await this.createNoteRevision_(note);
|
||||
if (rev) logger.debug(sprintf('collectRevisions: Saved revision %s (Last rev was more than %d ms ago)', rev.id, Setting.value('revisionService.intervalBetweenRevisions')));
|
||||
doneNoteIds.push(noteId);
|
||||
this.isOldNotesCache_[noteId] = false;
|
||||
if (note) {
|
||||
if (oldNote && oldNote.updated_time < this.oldNoteCutOffDate_()) {
|
||||
// This is where we save the original version of this old note
|
||||
const rev = await this.createNoteRevision_(oldNote);
|
||||
if (rev) logger.debug(sprintf('RevisionService::collectRevisions: Saved revision %s (old note)', rev.id));
|
||||
}
|
||||
}
|
||||
|
||||
if (change.type === ItemChange.TYPE_DELETE && !!change.before_change_item) {
|
||||
const note = JSON.parse(change.before_change_item);
|
||||
const revExists = await Revision.revisionExists(BaseModel.TYPE_NOTE, note.id, note.updated_time);
|
||||
if (!revExists) {
|
||||
const rev = await this.createNoteRevision_(note);
|
||||
if (rev) logger.debug(sprintf('collectRevisions: Saved revision %s (for deleted note)', rev.id));
|
||||
}
|
||||
const rev = await this.createNoteRevision_(note);
|
||||
if (rev) logger.debug(sprintf('RevisionService::collectRevisions: Saved revision %s (Last rev was more than %d ms ago)', rev.id, Setting.value('revisionService.intervalBetweenRevisions')));
|
||||
doneNoteIds.push(noteId);
|
||||
this.isOldNotesCache_[noteId] = false;
|
||||
}
|
||||
} catch (error) {
|
||||
if (error.code === 'revision_encrypted') {
|
||||
throw error;
|
||||
} else {
|
||||
// If any revision creation fails, we continue
|
||||
// processing the other changes. It seems a rare bug
|
||||
// in diff-match-patch can cause the creation of
|
||||
// revisions to fail in some case. It should be rare
|
||||
// and it's best to continue processing the other
|
||||
// changes. The alternative would be to stop here
|
||||
// and fix the bug, but in the meantime revisions
|
||||
// will no longer be generated.
|
||||
}
|
||||
|
||||
// The drawback is that once a change has been
|
||||
// skipped it will never be processed again because
|
||||
// the error will be in the past (before
|
||||
// revisionService.lastProcessedChangeId)
|
||||
//
|
||||
// https://github.com/laurent22/joplin/issues/5531
|
||||
logger.error(`collectRevisions: Processing one of the changes for note ${noteId} failed. Other changes will still be processed. Error was: `, error);
|
||||
logger.error('collectRevisions: Change was:', change);
|
||||
if (change.type === ItemChange.TYPE_DELETE && !!change.before_change_item) {
|
||||
const note = JSON.parse(change.before_change_item);
|
||||
const revExists = await Revision.revisionExists(BaseModel.TYPE_NOTE, note.id, note.updated_time);
|
||||
if (!revExists) {
|
||||
const rev = await this.createNoteRevision_(note);
|
||||
if (rev) logger.debug(sprintf('RevisionService::collectRevisions: Saved revision %s (for deleted note)', rev.id));
|
||||
}
|
||||
doneNoteIds.push(noteId);
|
||||
}
|
||||
|
||||
Setting.setValue('revisionService.lastProcessedChangeId', change.id);
|
||||
@@ -198,11 +173,15 @@ export default class RevisionService extends BaseService {
|
||||
// One or more revisions are encrypted - stop processing for now
|
||||
// and these revisions will be processed next time the revision
|
||||
// collector runs.
|
||||
logger.info('collectRevisions: One or more revision was encrypted. Processing was stopped but will resume later when the revision is decrypted.', error);
|
||||
logger.info('RevisionService::collectRevisions: One or more revision was encrypted. Processing was stopped but will resume later when the revision is decrypted.', error);
|
||||
} else {
|
||||
// This should not happen anymore because we handle the error in
|
||||
// the loop above.
|
||||
logger.error('collectRevisions:', error);
|
||||
// Note that, for now, if any revision creation fails, the whole
|
||||
// process fails. This is on purpose because if we keep on
|
||||
// processing, whatever caused the error will be in the past
|
||||
// changes (before revisionService.lastProcessedChangeId) and
|
||||
// will never be processed again. Now that the diff-match-patch
|
||||
// issue is fixed, there should be no such error anyway.
|
||||
logger.error('RevisionService::collectRevisions:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,14 +190,14 @@ export default class RevisionService extends BaseService {
|
||||
|
||||
this.isCollecting_ = false;
|
||||
|
||||
logger.info(`collectRevisions: Created revisions for ${doneNoteIds.length} notes`);
|
||||
logger.info(`RevisionService::collectRevisions: Created revisions for ${doneNoteIds.length} notes`);
|
||||
}
|
||||
|
||||
async deleteOldRevisions(ttl: number) {
|
||||
return Revision.deleteOldRevisions(ttl);
|
||||
}
|
||||
|
||||
public async revisionNote(revisions: RevisionEntity[], index: number) {
|
||||
async revisionNote(revisions: RevisionEntity[], index: number) {
|
||||
if (index < 0 || index >= revisions.length) throw new Error(`Invalid revision index: ${index}`);
|
||||
|
||||
const rev = revisions[index];
|
||||
@@ -234,7 +213,6 @@ export default class RevisionService extends BaseService {
|
||||
output.updated_time = output.user_updated_time;
|
||||
output.created_time = output.user_created_time;
|
||||
(output as any).type_ = BaseModel.TYPE_NOTE;
|
||||
if (!('markup_language' in output)) output.markup_language = MarkupLanguage.Markdown;
|
||||
|
||||
return output;
|
||||
}
|
||||
@@ -286,23 +264,23 @@ export default class RevisionService extends BaseService {
|
||||
this.maintenanceCalls_.push(true);
|
||||
try {
|
||||
const startTime = Date.now();
|
||||
logger.info('maintenance: Starting...');
|
||||
logger.info('RevisionService::maintenance: Starting...');
|
||||
|
||||
if (!Setting.value('revisionService.enabled')) {
|
||||
logger.info('maintenance: Service is disabled');
|
||||
logger.info('RevisionService::maintenance: Service is disabled');
|
||||
// We do as if we had processed all the latest changes so that they can be cleaned up
|
||||
// later on by ItemChangeUtils.deleteProcessedChanges().
|
||||
Setting.setValue('revisionService.lastProcessedChangeId', await ItemChange.lastChangeId());
|
||||
await this.deleteOldRevisions(Setting.value('revisionService.ttlDays') * 24 * 60 * 60 * 1000);
|
||||
} else {
|
||||
logger.info('maintenance: Service is enabled');
|
||||
logger.info('RevisionService::maintenance: Service is enabled');
|
||||
await this.collectRevisions();
|
||||
await this.deleteOldRevisions(Setting.value('revisionService.ttlDays') * 24 * 60 * 60 * 1000);
|
||||
|
||||
logger.info(`maintenance: Done in ${Date.now() - startTime}ms`);
|
||||
logger.info(`RevisionService::maintenance: Done in ${Date.now() - startTime}ms`);
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error('maintenance:', error);
|
||||
logger.error('RevisionService::maintenance:', error);
|
||||
} finally {
|
||||
this.maintenanceCalls_.pop();
|
||||
}
|
||||
@@ -314,7 +292,7 @@ export default class RevisionService extends BaseService {
|
||||
|
||||
if (collectRevisionInterval === null) collectRevisionInterval = 1000 * 60 * 10;
|
||||
|
||||
logger.info(`runInBackground: Starting background service with revision collection interval ${collectRevisionInterval}`);
|
||||
logger.info(`RevisionService::runInBackground: Starting background service with revision collection interval ${collectRevisionInterval}`);
|
||||
|
||||
this.maintenanceTimer1_ = shim.setTimeout(() => {
|
||||
void this.maintenance();
|
||||
|
||||
@@ -413,9 +413,9 @@ export default class InteropService {
|
||||
|
||||
const ItemClass = BaseItem.getClassByItemType(itemType);
|
||||
const itemOrId = itemsToExport[i].itemOrId;
|
||||
const rawItem = typeof itemOrId === 'object' ? itemOrId : await ItemClass.load(itemOrId);
|
||||
const item = this.normalizeItemForExport(itemType, typeof itemOrId === 'object' ? itemOrId : await ItemClass.load(itemOrId));
|
||||
|
||||
if (!rawItem) {
|
||||
if (!item) {
|
||||
if (itemType === BaseModel.TYPE_RESOURCE) {
|
||||
result.warnings.push(sprintf('A resource that does not exist is referenced in a note. The resource was skipped. Resource ID: %s', itemOrId));
|
||||
} else {
|
||||
@@ -424,8 +424,6 @@ export default class InteropService {
|
||||
continue;
|
||||
}
|
||||
|
||||
const item = this.normalizeItemForExport(itemType, rawItem);
|
||||
|
||||
if (item.encryption_applied || item.encryption_blob_encrypted) {
|
||||
result.warnings.push(sprintf('This item is currently encrypted: %s "%s" (%s) and was not exported. You may wait for it to be decrypted and try again.', BaseModel.modelTypeToName(itemType), item.title ? item.title : item.id, item.id));
|
||||
continue;
|
||||
|
||||
@@ -1,33 +1,21 @@
|
||||
import InteropService_Importer_Md from '../../services/interop/InteropService_Importer_Md';
|
||||
import Note from '../../models/Note';
|
||||
import Folder from '../../models/Folder';
|
||||
import * as fs from 'fs-extra';
|
||||
import { createTempDir, setupDatabaseAndSynchronizer, supportDir, switchClient } from '../../testing/test-utils';
|
||||
import { setupDatabaseAndSynchronizer, supportDir, switchClient } from '../../testing/test-utils';
|
||||
import { MarkupToHtml } from '@joplin/renderer';
|
||||
import { FolderEntity } from '../database/types';
|
||||
|
||||
|
||||
describe('InteropService_Importer_Md', function() {
|
||||
let tempDir: string;
|
||||
describe('InteropService_Importer_Md: importLocalImages', function() {
|
||||
async function importNote(path: string) {
|
||||
const importer = new InteropService_Importer_Md();
|
||||
importer.setMetadata({ fileExtensions: ['md', 'html'] });
|
||||
return await importer.importFile(path, 'notebook');
|
||||
}
|
||||
async function importNoteDirectory(path: string) {
|
||||
const importer = new InteropService_Importer_Md();
|
||||
importer.setMetadata({ fileExtensions: ['md', 'html'] });
|
||||
return await importer.importDirectory(path, 'notebook');
|
||||
}
|
||||
|
||||
beforeEach(async (done) => {
|
||||
await setupDatabaseAndSynchronizer(1);
|
||||
await switchClient(1);
|
||||
tempDir = await createTempDir();
|
||||
done();
|
||||
});
|
||||
afterEach(async () => {
|
||||
await fs.remove(tempDir);
|
||||
});
|
||||
it('should import linked files and modify tags appropriately', async function() {
|
||||
const note = await importNote(`${supportDir}/test_notes/md/sample.md`);
|
||||
|
||||
@@ -129,30 +117,4 @@ describe('InteropService_Importer_Md', function() {
|
||||
const preservedAlt = note.body.includes('alt="../../photo.jpg"');
|
||||
expect(preservedAlt).toBe(true);
|
||||
});
|
||||
it('should import non-empty directory', async function() {
|
||||
await fs.mkdirp(`${tempDir}/non-empty/non-empty`);
|
||||
await fs.writeFile(`${tempDir}/non-empty/non-empty/sample.md`, '# Sample');
|
||||
|
||||
await importNoteDirectory(`${tempDir}/non-empty`);
|
||||
const allFolders = await Folder.all();
|
||||
expect(allFolders.map((f: FolderEntity) => f.title).indexOf('non-empty')).toBeGreaterThanOrEqual(0);
|
||||
});
|
||||
it('should not import empty directory', async function() {
|
||||
await fs.mkdirp(`${tempDir}/empty/empty`);
|
||||
|
||||
await importNoteDirectory(`${tempDir}/empty`);
|
||||
const allFolders = await Folder.all();
|
||||
expect(allFolders.map((f: FolderEntity) => f.title).indexOf('empty')).toBe(-1);
|
||||
});
|
||||
it('should import directory with non-empty subdirectory', async function() {
|
||||
await fs.mkdirp(`${tempDir}/non-empty-subdir/non-empty-subdir/subdir-empty`);
|
||||
await fs.mkdirp(`${tempDir}/non-empty-subdir/non-empty-subdir/subdir-non-empty`);
|
||||
await fs.writeFile(`${tempDir}/non-empty-subdir/non-empty-subdir/subdir-non-empty/sample.md`, '# Sample');
|
||||
|
||||
await importNoteDirectory(`${tempDir}/non-empty-subdir`);
|
||||
const allFolders = await Folder.all();
|
||||
expect(allFolders.map((f: FolderEntity) => f.title).indexOf('non-empty-subdir')).toBeGreaterThanOrEqual(0);
|
||||
expect(allFolders.map((f: FolderEntity) => f.title).indexOf('subdir-empty')).toBe(-1);
|
||||
expect(allFolders.map((f: FolderEntity) => f.title).indexOf('subdir-non-empty')).toBeGreaterThanOrEqual(0);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -47,16 +47,13 @@ export default class InteropService_Importer_Md extends InteropService_Importer_
|
||||
|
||||
async importDirectory(dirPath: string, parentFolderId: string) {
|
||||
console.info(`Import: ${dirPath}`);
|
||||
|
||||
const supportedFileExtension = this.metadata().fileExtensions;
|
||||
const stats = await shim.fsDriver().readDirStats(dirPath);
|
||||
for (let i = 0; i < stats.length; i++) {
|
||||
const stat = stats[i];
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
if (await this.isDirectoryEmpty(`${dirPath}/${stat.path}`)) {
|
||||
console.info(`Ignoring empty directory: ${stat.path}`);
|
||||
continue;
|
||||
}
|
||||
const folderTitle = await Folder.findUniqueItemTitle(basename(stat.path));
|
||||
const folder = await Folder.save({ title: folderTitle, parent_id: parentFolderId });
|
||||
await this.importDirectory(`${dirPath}/${basename(stat.path)}`, folder.id);
|
||||
@@ -66,24 +63,6 @@ export default class InteropService_Importer_Md extends InteropService_Importer_
|
||||
}
|
||||
}
|
||||
|
||||
private async isDirectoryEmpty(dirPath: string) {
|
||||
const supportedFileExtension = this.metadata().fileExtensions;
|
||||
const innerStats = await shim.fsDriver().readDirStats(dirPath);
|
||||
for (let i = 0; i < innerStats.length; i++) {
|
||||
const innerStat = innerStats[i];
|
||||
|
||||
if (innerStat.isDirectory()) {
|
||||
if (!(await this.isDirectoryEmpty(`${dirPath}/${innerStat.path}`))) {
|
||||
return false;
|
||||
}
|
||||
} else if (supportedFileExtension.indexOf(fileExtension(innerStat.path).toLowerCase()) >= 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
private trimAnchorLink(link: string) {
|
||||
if (link.indexOf('#') <= 0) return link;
|
||||
|
||||
|
||||
@@ -325,7 +325,7 @@ describe('services_rest_Api', function() {
|
||||
expect(response.body.indexOf(resource.id) >= 0).toBe(true);
|
||||
}));
|
||||
|
||||
it('should not compress images uploaded through resource API', (async () => {
|
||||
it('should not compress images uploaded through resource api', (async () => {
|
||||
const originalImagePath = `${supportDir}/photo-large.png`;
|
||||
await api.route(RequestMethod.POST, 'resources', null, JSON.stringify({
|
||||
title: 'testing resource',
|
||||
@@ -345,39 +345,6 @@ describe('services_rest_Api', function() {
|
||||
expect(originalImageSize).toEqual(uploadedImageSize);
|
||||
}));
|
||||
|
||||
it('should update a resource', (async () => {
|
||||
await api.route(RequestMethod.POST, 'resources', null, JSON.stringify({
|
||||
title: 'resource',
|
||||
}), [
|
||||
{
|
||||
path: `${supportDir}/photo.jpg`,
|
||||
},
|
||||
]);
|
||||
|
||||
const resourceV1 = (await Resource.all())[0];
|
||||
|
||||
await msleep(1);
|
||||
|
||||
await api.route(RequestMethod.PUT, `resources/${resourceV1.id}`, null, JSON.stringify({
|
||||
title: 'resource mod',
|
||||
}), [
|
||||
{
|
||||
path: `${supportDir}/photo-large.png`,
|
||||
},
|
||||
]);
|
||||
|
||||
const resourceV2 = (await Resource.all())[0];
|
||||
|
||||
expect(resourceV2.title).toBe('resource mod');
|
||||
expect(resourceV2.mime).toBe('image/png');
|
||||
expect(resourceV2.file_extension).toBe('png');
|
||||
expect(resourceV2.updated_time).toBeGreaterThan(resourceV1.updated_time);
|
||||
expect(resourceV2.created_time).toBe(resourceV1.created_time);
|
||||
expect(resourceV2.size).toBeGreaterThan(resourceV1.size);
|
||||
|
||||
expect(resourceV2.size).toBe((await shim.fsDriver().stat(Resource.fullPath(resourceV2))).size);
|
||||
}));
|
||||
|
||||
it('should delete resources', (async () => {
|
||||
const f = await Folder.save({ title: 'mon carnet' });
|
||||
|
||||
|
||||
@@ -47,17 +47,13 @@ export default async function(request: Request, id: string = null, link: string
|
||||
if (link) throw new ErrorNotFound();
|
||||
}
|
||||
|
||||
if (request.method === RequestMethod.POST || request.method === RequestMethod.PUT) {
|
||||
const isUpdate = request.method === RequestMethod.PUT;
|
||||
|
||||
if (request.method === RequestMethod.POST) {
|
||||
if (!request.files.length) throw new ErrorBadRequest('Resource cannot be created without a file');
|
||||
if (isUpdate && !id) throw new ErrorBadRequest('Missing resource ID');
|
||||
const filePath = request.files[0].path;
|
||||
const defaultProps = request.bodyJson(readonlyProperties(request.method));
|
||||
const defaultProps = request.bodyJson(readonlyProperties('POST'));
|
||||
return shim.createResourceFromPath(filePath, defaultProps, {
|
||||
userSideValidation: true,
|
||||
resizeLargeImages: 'never',
|
||||
destinationResourceId: isUpdate ? id : '',
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
/* @typescript-eslint/prefer-const */
|
||||
/* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars, prefer-const */
|
||||
|
||||
import time from '@joplin/lib/time';
|
||||
import { setupDatabaseAndSynchronizer, supportDir, db, createNTestNotes, switchClient } from '@joplin/lib/testing//test-utils';
|
||||
import SearchEngine from '@joplin/lib/services/searchengine/SearchEngine';
|
||||
import Note from '@joplin/lib/models/Note';
|
||||
import Folder from '@joplin/lib/models/Folder';
|
||||
import Tag from '@joplin/lib/models/Tag';
|
||||
import shim from '@joplin/lib/shim';
|
||||
import ResourceService from '@joplin/lib/services/ResourceService';
|
||||
import { NoteEntity } from '@joplin/lib/services/database/types';
|
||||
const time = require('../../time').default;
|
||||
const { setupDatabaseAndSynchronizer, supportDir, db, createNTestNotes, switchClient } = require('../../testing/test-utils.js');
|
||||
const SearchEngine = require('../../services/searchengine/SearchEngine').default;
|
||||
const Note = require('../../models/Note').default;
|
||||
const Folder = require('../../models/Folder').default;
|
||||
const Tag = require('../../models/Tag').default;
|
||||
const shim = require('../../shim').default;
|
||||
const ResourceService = require('../../services/ResourceService').default;
|
||||
|
||||
|
||||
let engine: any = null;
|
||||
let engine = null;
|
||||
|
||||
const ids = (array: NoteEntity[]) => array.map(a => a.id);
|
||||
const ids = (array) => array.map(a => a.id);
|
||||
|
||||
describe('services_SearchFilter', function() {
|
||||
beforeEach(async (done) => {
|
||||
@@ -68,59 +67,25 @@ describe('services_SearchFilter', function() {
|
||||
for (const searchType of [SearchEngine.SEARCH_TYPE_FTS, SearchEngine.SEARCH_TYPE_NONLATIN_SCRIPT]) {
|
||||
|
||||
describe(`search type ${searchType}`, () => {
|
||||
it('Check case insensitivity for filter keywords', (async () => {
|
||||
let rows;
|
||||
const notebook1 = await Folder.save({ title: 'folderA' });
|
||||
const notebook2 = await Folder.save({ title: 'folderB' });
|
||||
const note1 = await Note.save({ title: 'Note1', body: 'obelix', parent_id: notebook1.id });
|
||||
const note2 = await Note.save({ title: 'Note2', body: 'asterix', parent_id: notebook2.id });
|
||||
const note3 = await Note.save({ title: 'Note3', body: 'rom', parent_id: notebook1.id });
|
||||
|
||||
await Tag.setNoteTagsByTitles(note1.id, ['tag1', 'tag2']);
|
||||
await Tag.setNoteTagsByTitles(note2.id, ['tag2', 'tag3']);
|
||||
await Tag.setNoteTagsByTitles(note3.id, ['tag3', 'tag4', 'space travel']);
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
const testCases = [
|
||||
{ searchString: 'tag:tag2', expectedResults: 2, expectedtNoteIds: [note1.id, note2.id] },
|
||||
{ searchString: 'tAg:tag2', expectedResults: 2, expectedtNoteIds: [note1.id, note2.id] },
|
||||
{ searchString: 'Tag:tag2', expectedResults: 2, expectedtNoteIds: [note1.id, note2.id] },
|
||||
{ searchString: '-tag:tag2', expectedResults: 1, expectedtNoteIds: [note3.id] },
|
||||
{ searchString: '-Tag:tag2', expectedResults: 1, expectedtNoteIds: [note3.id] },
|
||||
{ searchString: 'title:Note1', expectedResults: 1, expectedtNoteIds: [note1.id] },
|
||||
{ searchString: 'Title:Note1', expectedResults: 1, expectedtNoteIds: [note1.id] },
|
||||
{ searchString: 'Any:1 -tag:tag1 -notebook:folderB', expectedResults: 1, expectedtNoteIds: [note3.id] },
|
||||
{ searchString: 'notebook:folderA', expectedResults: 2, expectedtNoteIds: [note1.id, note3.id] },
|
||||
{ searchString: 'notebooK:folderA', expectedResults: 2, expectedtNoteIds: [note1.id, note3.id] },
|
||||
];
|
||||
|
||||
for (const testCase of testCases) {
|
||||
rows = await engine.search(testCase.searchString, { searchType });
|
||||
expect(rows.length).toBe(testCase.expectedResults);
|
||||
for (const expectedNoteId of testCase.expectedtNoteIds) {
|
||||
expect(ids(rows)).toContain(expectedNoteId);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
it('should return note matching title', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abcd', body: 'body 1' });
|
||||
await Note.save({ title: 'efgh', body: 'body 2' });
|
||||
const n2 = await Note.save({ title: 'efgh', body: 'body 2' });
|
||||
|
||||
await engine.syncTables();
|
||||
const rows = await engine.search('title: abcd', { searchType });
|
||||
rows = await engine.search('title: abcd', { searchType });
|
||||
|
||||
expect(rows.length).toBe(1);
|
||||
expect(rows[0].id).toBe(n1.id);
|
||||
}));
|
||||
|
||||
it('should return note matching negated title', (async () => {
|
||||
await Note.save({ title: 'abcd', body: 'body 1' });
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abcd', body: 'body 1' });
|
||||
const n2 = await Note.save({ title: 'efgh', body: 'body 2' });
|
||||
|
||||
await engine.syncTables();
|
||||
const rows = await engine.search('-title: abcd', { searchType });
|
||||
rows = await engine.search('-title: abcd', { searchType });
|
||||
|
||||
expect(rows.length).toBe(1);
|
||||
|
||||
@@ -128,11 +93,12 @@ describe('services_SearchFilter', function() {
|
||||
}));
|
||||
|
||||
it('should return note matching body', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abcd', body: 'body1' });
|
||||
await Note.save({ title: 'efgh', body: 'body2' });
|
||||
const n2 = await Note.save({ title: 'efgh', body: 'body2' });
|
||||
|
||||
await engine.syncTables();
|
||||
const rows = await engine.search('body: body1', { searchType });
|
||||
rows = await engine.search('body: body1', { searchType });
|
||||
|
||||
expect(rows.length).toBe(1);
|
||||
|
||||
@@ -140,33 +106,36 @@ describe('services_SearchFilter', function() {
|
||||
}));
|
||||
|
||||
it('should return note matching negated body', (async () => {
|
||||
await Note.save({ title: 'abcd', body: 'body1' });
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abcd', body: 'body1' });
|
||||
const n2 = await Note.save({ title: 'efgh', body: 'body2' });
|
||||
|
||||
await engine.syncTables();
|
||||
const rows = await engine.search('-body: body1', { searchType });
|
||||
rows = await engine.search('-body: body1', { searchType });
|
||||
|
||||
expect(rows.length).toBe(1);
|
||||
expect(rows[0].id).toBe(n2.id);
|
||||
}));
|
||||
|
||||
it('should return note matching title containing multiple words', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abcd xyz', body: 'body1' });
|
||||
await Note.save({ title: 'efgh ijk', body: 'body2' });
|
||||
const n2 = await Note.save({ title: 'efgh ijk', body: 'body2' });
|
||||
|
||||
await engine.syncTables();
|
||||
const rows = await engine.search('title: "abcd xyz"', { searchType });
|
||||
rows = await engine.search('title: "abcd xyz"', { searchType });
|
||||
|
||||
expect(rows.length).toBe(1);
|
||||
expect(rows[0].id).toBe(n1.id);
|
||||
}));
|
||||
|
||||
it('should return note matching body containing multiple words', (async () => {
|
||||
await Note.save({ title: 'abcd', body: 'ho ho ho' });
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abcd', body: 'ho ho ho' });
|
||||
const n2 = await Note.save({ title: 'efgh', body: 'foo bar' });
|
||||
|
||||
await engine.syncTables();
|
||||
const rows = await engine.search('body: "foo bar"', { searchType });
|
||||
rows = await engine.search('body: "foo bar"', { searchType });
|
||||
|
||||
expect(rows.length).toBe(1);
|
||||
expect(rows[0].id).toBe(n2.id);
|
||||
@@ -174,7 +143,7 @@ describe('services_SearchFilter', function() {
|
||||
|
||||
it('should return note matching title AND body', (async () => {
|
||||
let rows;
|
||||
await Note.save({ title: 'abcd', body: 'ho ho ho' });
|
||||
const n1 = await Note.save({ title: 'abcd', body: 'ho ho ho' });
|
||||
const n2 = await Note.save({ title: 'efgh', body: 'foo bar' });
|
||||
|
||||
await engine.syncTables();
|
||||
@@ -194,8 +163,8 @@ describe('services_SearchFilter', function() {
|
||||
await engine.syncTables();
|
||||
rows = await engine.search('any:1 title: abcd body: "foo bar"', { searchType });
|
||||
expect(rows.length).toBe(2);
|
||||
expect(ids(rows)).toContain(n1.id);
|
||||
expect(ids(rows)).toContain(n2.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n2.id);
|
||||
|
||||
rows = await engine.search('any:1 title: wxyz body: "blah blah"', { searchType });
|
||||
expect(rows.length).toBe(0);
|
||||
@@ -212,12 +181,12 @@ describe('services_SearchFilter', function() {
|
||||
// Note: This is NOT saying to match notes containing foo bar in title/body
|
||||
rows = await engine.search('foo bar', { searchType });
|
||||
expect(rows.length).toBe(2);
|
||||
expect(ids(rows)).toContain(n1.id);
|
||||
expect(ids(rows)).toContain(n2.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n2.id);
|
||||
|
||||
rows = await engine.search('foo -bar', { searchType });
|
||||
expect(rows.length).toBe(1);
|
||||
expect(ids(rows)).toContain(n3.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n3.id);
|
||||
|
||||
rows = await engine.search('foo efgh', { searchType });
|
||||
expect(rows.length).toBe(1);
|
||||
@@ -228,60 +197,65 @@ describe('services_SearchFilter', function() {
|
||||
}));
|
||||
|
||||
it('should return notes matching any negated text', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abc', body: 'def' });
|
||||
const n2 = await Note.save({ title: 'def', body: 'ghi' });
|
||||
const n3 = await Note.save({ title: 'ghi', body: 'jkl' });
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('any:1 -abc -ghi', { searchType });
|
||||
rows = await engine.search('any:1 -abc -ghi', { searchType });
|
||||
expect(rows.length).toBe(3);
|
||||
expect(ids(rows)).toContain(n1.id);
|
||||
expect(ids(rows)).toContain(n2.id);
|
||||
expect(ids(rows)).toContain(n3.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n2.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n3.id);
|
||||
}));
|
||||
|
||||
it('should return notes matching any negated title', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abc', body: 'def' });
|
||||
const n2 = await Note.save({ title: 'def', body: 'ghi' });
|
||||
const n3 = await Note.save({ title: 'ghi', body: 'jkl' });
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('any:1 -title:abc -title:ghi', { searchType });
|
||||
rows = await engine.search('any:1 -title:abc -title:ghi', { searchType });
|
||||
expect(rows.length).toBe(3);
|
||||
expect(ids(rows)).toContain(n1.id);
|
||||
expect(ids(rows)).toContain(n2.id);
|
||||
expect(ids(rows)).toContain(n3.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n2.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n3.id);
|
||||
}));
|
||||
|
||||
it('should return notes matching any negated body', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'abc', body: 'def' });
|
||||
const n2 = await Note.save({ title: 'def', body: 'ghi' });
|
||||
const n3 = await Note.save({ title: 'ghi', body: 'jkl' });
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('any:1 -body:xyz -body:ghi', { searchType });
|
||||
rows = await engine.search('any:1 -body:xyz -body:ghi', { searchType });
|
||||
expect(rows.length).toBe(3);
|
||||
expect(ids(rows)).toContain(n1.id);
|
||||
expect(ids(rows)).toContain(n2.id);
|
||||
expect(ids(rows)).toContain(n3.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n2.id);
|
||||
expect(rows.map(r=>r.id)).toContain(n3.id);
|
||||
}));
|
||||
|
||||
it('should support phrase search', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'foo beef', body: 'bar dog' });
|
||||
await Note.save({ title: 'bar efgh', body: 'foo dog' });
|
||||
const n2 = await Note.save({ title: 'bar efgh', body: 'foo dog' });
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('"bar dog"', { searchType });
|
||||
rows = await engine.search('"bar dog"', { searchType });
|
||||
expect(rows.length).toBe(1);
|
||||
expect(rows[0].id).toBe(n1.id);
|
||||
}));
|
||||
|
||||
it('should support prefix search', (async () => {
|
||||
let rows;
|
||||
const n1 = await Note.save({ title: 'foo beef', body: 'bar dog' });
|
||||
const n2 = await Note.save({ title: 'bar efgh', body: 'foo dog' });
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('"bar*"', { searchType });
|
||||
rows = await engine.search('"bar*"', { searchType });
|
||||
expect(rows.length).toBe(2);
|
||||
expect(ids(rows)).toContain(n1.id);
|
||||
expect(ids(rows)).toContain(n2.id);
|
||||
@@ -364,35 +338,38 @@ describe('services_SearchFilter', function() {
|
||||
}));
|
||||
|
||||
it('should support filtering by notebook', (async () => {
|
||||
let rows;
|
||||
const folder0 = await Folder.save({ title: 'notebook0' });
|
||||
const folder1 = await Folder.save({ title: 'notebook1' });
|
||||
const notes0 = await createNTestNotes(5, folder0);
|
||||
await createNTestNotes(5, folder1);
|
||||
const notes1 = await createNTestNotes(5, folder1);
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('notebook:notebook0', { searchType });
|
||||
rows = await engine.search('notebook:notebook0', { searchType });
|
||||
expect(rows.length).toBe(5);
|
||||
expect(ids(rows).sort()).toEqual(ids(notes0).sort());
|
||||
|
||||
}));
|
||||
|
||||
it('should support filtering by nested notebook', (async () => {
|
||||
let rows;
|
||||
const folder0 = await Folder.save({ title: 'notebook0' });
|
||||
const folder00 = await Folder.save({ title: 'notebook00', parent_id: folder0.id });
|
||||
const folder1 = await Folder.save({ title: 'notebook1' });
|
||||
const notes0 = await createNTestNotes(5, folder0);
|
||||
const notes00 = await createNTestNotes(5, folder00);
|
||||
await createNTestNotes(5, folder1);
|
||||
const notes1 = await createNTestNotes(5, folder1);
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('notebook:notebook0', { searchType });
|
||||
rows = await engine.search('notebook:notebook0', { searchType });
|
||||
expect(rows.length).toBe(10);
|
||||
expect(ids(rows).sort()).toEqual(ids(notes0.concat(notes00)).sort());
|
||||
}));
|
||||
|
||||
it('should support filtering by multiple notebooks', (async () => {
|
||||
let rows;
|
||||
const folder0 = await Folder.save({ title: 'notebook0' });
|
||||
const folder00 = await Folder.save({ title: 'notebook00', parent_id: folder0.id });
|
||||
const folder1 = await Folder.save({ title: 'notebook1' });
|
||||
@@ -400,11 +377,11 @@ describe('services_SearchFilter', function() {
|
||||
const notes0 = await createNTestNotes(5, folder0);
|
||||
const notes00 = await createNTestNotes(5, folder00);
|
||||
const notes1 = await createNTestNotes(5, folder1);
|
||||
await createNTestNotes(5, folder2);
|
||||
const notes2 = await createNTestNotes(5, folder2);
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('notebook:notebook0 notebook:notebook1', { searchType });
|
||||
rows = await engine.search('notebook:notebook0 notebook:notebook1', { searchType });
|
||||
expect(rows.length).toBe(15);
|
||||
expect(ids(rows).sort()).toEqual(ids(notes0).concat(ids(notes00).concat(ids(notes1))).sort());
|
||||
}));
|
||||
@@ -633,7 +610,7 @@ describe('services_SearchFilter', function() {
|
||||
let rows;
|
||||
const t1 = await Note.save({ title: 'This is a ', body: 'todo', is_todo: 1 });
|
||||
const t2 = await Note.save({ title: 'This is another', body: 'todo but completed', is_todo: 1, todo_completed: 1590085027710 });
|
||||
await Note.save({ title: 'This is NOT a ', body: 'todo' });
|
||||
const t3 = await Note.save({ title: 'This is NOT a ', body: 'todo' });
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
@@ -657,13 +634,14 @@ describe('services_SearchFilter', function() {
|
||||
}));
|
||||
|
||||
it('should support filtering by type note', (async () => {
|
||||
await Note.save({ title: 'This is a ', body: 'todo', is_todo: 1 });
|
||||
await Note.save({ title: 'This is another', body: 'todo but completed', is_todo: 1, todo_completed: 1590085027710 });
|
||||
let rows;
|
||||
const t1 = await Note.save({ title: 'This is a ', body: 'todo', is_todo: 1 });
|
||||
const t2 = await Note.save({ title: 'This is another', body: 'todo but completed', is_todo: 1, todo_completed: 1590085027710 });
|
||||
const t3 = await Note.save({ title: 'This is NOT a ', body: 'todo' });
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
const rows = await engine.search('type:note', { searchType });
|
||||
rows = await engine.search('type:note', { searchType });
|
||||
expect(rows.length).toBe(1);
|
||||
expect(ids(rows)).toContain(t3.id);
|
||||
}));
|
||||
@@ -672,7 +650,7 @@ describe('services_SearchFilter', function() {
|
||||
let rows;
|
||||
const toDo1 = await Note.save({ title: 'ToDo 1', body: 'todo', is_todo: 1, todo_due: Date.parse('2021-04-27') });
|
||||
const toDo2 = await Note.save({ title: 'ToDo 2', body: 'todo', is_todo: 1, todo_due: Date.parse('2021-03-17') });
|
||||
await Note.save({ title: 'Note 1', body: 'Note' });
|
||||
const note1 = await Note.save({ title: 'Note 1', body: 'Note' });
|
||||
|
||||
await engine.syncTables();
|
||||
|
||||
@@ -886,8 +864,8 @@ describe('services_SearchFilter', function() {
|
||||
|
||||
|
||||
const subFolder = await Folder.save({ title: 'child', parent_id: parentFolder.id });
|
||||
await Note.save({ title: 'task3', body: 'baz', parent_id: subFolder.id });
|
||||
await Note.save({ title: 'task4', body: 'blah', parent_id: subFolder.id });
|
||||
const n3 = await Note.save({ title: 'task3', body: 'baz', parent_id: subFolder.id });
|
||||
const n4 = await Note.save({ title: 'task4', body: 'blah', parent_id: subFolder.id });
|
||||
|
||||
|
||||
await engine.syncTables();
|
||||
@@ -908,20 +886,20 @@ describe('services_SearchFilter', function() {
|
||||
|
||||
rows = await engine.search(`id:${note1.id}`, { searchType });
|
||||
expect(rows.length).toBe(1);
|
||||
expect(ids(rows)).toContain(note1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(note1.id);
|
||||
|
||||
rows = await engine.search(`any:1 id:${note1.id} id:${note2.id}`, { searchType });
|
||||
expect(rows.length).toBe(2);
|
||||
expect(ids(rows)).toContain(note1.id);
|
||||
expect(ids(rows)).toContain(note2.id);
|
||||
expect(rows.map(r=>r.id)).toContain(note1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(note2.id);
|
||||
|
||||
rows = await engine.search(`any:0 id:${note1.id} id:${note2.id}`, { searchType });
|
||||
expect(rows.length).toBe(0);
|
||||
|
||||
rows = await engine.search(`-id:${note2.id}`, { searchType });
|
||||
expect(rows.length).toBe(2);
|
||||
expect(ids(rows)).toContain(note1.id);
|
||||
expect(ids(rows)).toContain(note3.id);
|
||||
expect(rows.map(r=>r.id)).toContain(note1.id);
|
||||
expect(rows.map(r=>r.id)).toContain(note3.id);
|
||||
}));
|
||||
|
||||
});
|
||||
@@ -54,8 +54,8 @@ const getTerms = (query: string, validFilters: Set<string>): Term[] => {
|
||||
}
|
||||
|
||||
if (c === ':' && !inQuote && !inTerm &&
|
||||
(validFilters.has(currentTerm.toLowerCase()) || currentTerm[0] === '-' && validFilters.has(currentTerm.toLowerCase().substr(1, currentTerm.length)))) {
|
||||
currentCol = currentTerm.toLowerCase();
|
||||
(validFilters.has(currentTerm) || currentTerm[0] === '-' && validFilters.has(currentTerm.substr(1, currentTerm.length)))) {
|
||||
currentCol = currentTerm;
|
||||
currentTerm = '';
|
||||
inTerm = true; // to ignore any other ':' before a space eg.'sourceurl:https://www.google.com'
|
||||
continue;
|
||||
|
||||
@@ -221,15 +221,10 @@ function shimInit(options = null) {
|
||||
return true;
|
||||
};
|
||||
|
||||
// This is a bit of an ugly method that's used to both create a new resource
|
||||
// from a file, and update one. To update a resource, pass the
|
||||
// destinationResourceId option. This method is indirectly tested in
|
||||
// Api.test.ts.
|
||||
shim.createResourceFromPath = async function(filePath, defaultProps = null, options = null) {
|
||||
options = Object.assign({
|
||||
resizeLargeImages: 'always', // 'always', 'ask' or 'never'
|
||||
userSideValidation: false,
|
||||
destinationResourceId: '',
|
||||
}, options);
|
||||
|
||||
const readChunk = require('read-chunk');
|
||||
@@ -241,10 +236,9 @@ function shimInit(options = null) {
|
||||
|
||||
defaultProps = defaultProps ? defaultProps : {};
|
||||
|
||||
let resourceId = defaultProps.id ? defaultProps.id : uuid.create();
|
||||
if (options.destinationResourceId) resourceId = options.destinationResourceId;
|
||||
const resourceId = defaultProps.id ? defaultProps.id : uuid.create();
|
||||
|
||||
let resource = options.destinationResourceId ? {} : Resource.new();
|
||||
const resource = Resource.new();
|
||||
resource.id = resourceId;
|
||||
resource.mime = mimeUtils.fromFilename(filePath);
|
||||
resource.title = basename(filePath);
|
||||
@@ -287,18 +281,7 @@ function shimInit(options = null) {
|
||||
|
||||
const saveOptions = { isNew: true };
|
||||
if (options.userSideValidation) saveOptions.userSideValidation = true;
|
||||
|
||||
if (options.destinationResourceId) {
|
||||
saveOptions.isNew = false;
|
||||
const tempPath = `${targetPath}.tmp`;
|
||||
await shim.fsDriver().move(targetPath, tempPath);
|
||||
resource = await Resource.save(resource, saveOptions);
|
||||
await Resource.updateResourceBlobContent(resource.id, tempPath);
|
||||
await shim.fsDriver().remove(tempPath);
|
||||
return resource;
|
||||
} else {
|
||||
return Resource.save(resource, saveOptions);
|
||||
}
|
||||
return Resource.save(resource, saveOptions);
|
||||
};
|
||||
|
||||
shim.attachFileToNoteBody = async function(noteBody, filePath, position = null, options = null) {
|
||||
|
||||
@@ -1,26 +1,4 @@
|
||||
import * as fs from 'fs-extra';
|
||||
import markdownUtils, { MarkdownTableHeader, MarkdownTableRow } from '../markdownUtils';
|
||||
|
||||
type FeatureId = string;
|
||||
|
||||
export enum PlanName {
|
||||
Basic = 'basic',
|
||||
Pro = 'pro',
|
||||
Teams = 'teams',
|
||||
}
|
||||
|
||||
interface PlanFeature {
|
||||
title: string;
|
||||
basic: boolean;
|
||||
pro: boolean;
|
||||
teams: boolean;
|
||||
basicInfo?: string;
|
||||
proInfo?: string;
|
||||
teamsInfo?: string;
|
||||
basicInfoShort?: string;
|
||||
proInfoShort?: string;
|
||||
teamsInfoShort?: string;
|
||||
}
|
||||
|
||||
export interface Plan {
|
||||
name: string;
|
||||
@@ -29,13 +7,10 @@ export interface Plan {
|
||||
priceYearly: StripePublicConfigPrice;
|
||||
featured: boolean;
|
||||
iconName: string;
|
||||
featuresOn: FeatureId[];
|
||||
featuresOff: FeatureId[];
|
||||
featureLabelsOn: string[];
|
||||
featureLabelsOff: string[];
|
||||
featuresOn: string[];
|
||||
featuresOff: string[];
|
||||
cfaLabel: string;
|
||||
cfaUrl: string;
|
||||
footnote: string;
|
||||
}
|
||||
|
||||
export enum PricePeriod {
|
||||
@@ -65,6 +40,31 @@ export interface StripePublicConfig {
|
||||
webhookBaseUrl: string;
|
||||
}
|
||||
|
||||
export interface PlanFeature {
|
||||
label: string;
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
export function getFeatureList(plan: Plan): PlanFeature[] {
|
||||
const output: PlanFeature[] = [];
|
||||
|
||||
for (const f of plan.featuresOn) {
|
||||
output.push({
|
||||
label: f,
|
||||
enabled: true,
|
||||
});
|
||||
}
|
||||
|
||||
for (const f of plan.featuresOff) {
|
||||
output.push({
|
||||
label: f,
|
||||
enabled: false,
|
||||
});
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
function formatPrice(amount: string | number, currency: PriceCurrency): string {
|
||||
amount = typeof amount === 'number' ? (Math.ceil(amount * 100) / 100).toFixed(2) : amount;
|
||||
if (currency === PriceCurrency.EUR) return `${amount}€`;
|
||||
@@ -110,181 +110,28 @@ export function findPrice(prices: StripePublicConfigPrice[], query: FindPriceQue
|
||||
return output;
|
||||
}
|
||||
|
||||
const features: Record<FeatureId, PlanFeature> = {
|
||||
maxItemSize: {
|
||||
title: 'Publish notes to the internet',
|
||||
basic: true,
|
||||
pro: true,
|
||||
teams: true,
|
||||
basicInfo: '10 MB per note or attachment',
|
||||
proInfo: '200 MB per note or attachment',
|
||||
teamsInfo: '200 MB per note or attachment',
|
||||
basicInfoShort: '10 MB',
|
||||
proInfoShort: '200 MB',
|
||||
teamsInfoShort: '200 MB',
|
||||
},
|
||||
maxStorage: {
|
||||
title: 'Storage space',
|
||||
basic: true,
|
||||
pro: true,
|
||||
teams: true,
|
||||
basicInfo: '1 GB storage space',
|
||||
proInfo: '200 GB storage space',
|
||||
teamsInfo: '200 GB storage space',
|
||||
basicInfoShort: '1 GB',
|
||||
proInfoShort: '200 GB',
|
||||
teamsInfoShort: '200 GB',
|
||||
},
|
||||
publishNote: {
|
||||
title: 'Publish notes to the internet',
|
||||
basic: true,
|
||||
pro: true,
|
||||
teams: true,
|
||||
},
|
||||
sync: {
|
||||
title: 'Sync as many devices as you want',
|
||||
basic: true,
|
||||
pro: true,
|
||||
teams: true,
|
||||
},
|
||||
clipper: {
|
||||
title: 'Web Clipper',
|
||||
basic: true,
|
||||
pro: true,
|
||||
teams: true,
|
||||
},
|
||||
collaborate: {
|
||||
title: 'Share and collaborate on a notebook',
|
||||
basic: false,
|
||||
pro: true,
|
||||
teams: true,
|
||||
},
|
||||
multiUsers: {
|
||||
title: 'Manage multiple users',
|
||||
basic: false,
|
||||
pro: false,
|
||||
teams: true,
|
||||
},
|
||||
consolidatedBilling: {
|
||||
title: 'Consolidated billing',
|
||||
basic: false,
|
||||
pro: false,
|
||||
teams: true,
|
||||
},
|
||||
sharingAccessControl: {
|
||||
title: 'Sharing access control',
|
||||
basic: false,
|
||||
pro: false,
|
||||
teams: true,
|
||||
},
|
||||
prioritySupport: {
|
||||
title: 'Priority support',
|
||||
basic: false,
|
||||
pro: false,
|
||||
teams: true,
|
||||
},
|
||||
};
|
||||
const businessAccountEmailBody = `Hello,
|
||||
|
||||
export const getFeatureIdsByPlan = (planName: PlanName, featureOn: boolean): FeatureId[] => {
|
||||
const output: FeatureId[] = [];
|
||||
This is an automatically generated email. The Business feature is coming soon, and in the meantime we offer a business discount if you would like to register multiple users.
|
||||
|
||||
for (const [k, v] of Object.entries(features)) {
|
||||
if (v[planName] === featureOn) {
|
||||
output.push(k);
|
||||
}
|
||||
}
|
||||
If so please let us know the following details and we will get back to you as soon as possible:
|
||||
|
||||
return output;
|
||||
};
|
||||
- Name:
|
||||
|
||||
export const getFeatureLabelsByPlan = (planName: PlanName, featureOn: boolean): string[] => {
|
||||
const output: FeatureId[] = [];
|
||||
- Email:
|
||||
|
||||
for (const [featureId, v] of Object.entries(features)) {
|
||||
if (v[planName] === featureOn) {
|
||||
output.push(getFeatureLabel(planName, featureId));
|
||||
}
|
||||
}
|
||||
- Number of users: `;
|
||||
|
||||
return output;
|
||||
};
|
||||
|
||||
export const getAllFeatureIds = (): FeatureId[] => {
|
||||
return Object.keys(features);
|
||||
};
|
||||
|
||||
export const getFeatureById = (featureId: FeatureId): PlanFeature => {
|
||||
return features[featureId];
|
||||
};
|
||||
|
||||
export const getFeaturesByPlan = (planName: PlanName, featureOn: boolean): PlanFeature[] => {
|
||||
const output: PlanFeature[] = [];
|
||||
|
||||
for (const [, v] of Object.entries(features)) {
|
||||
if (v[planName] === featureOn) {
|
||||
output.push(v);
|
||||
}
|
||||
}
|
||||
|
||||
return output;
|
||||
};
|
||||
|
||||
export const getFeatureLabel = (planName: PlanName, featureId: FeatureId): string => {
|
||||
const feature = features[featureId];
|
||||
const k = `${planName}Info`;
|
||||
if ((feature as any)[k]) return (feature as any)[k];
|
||||
return feature.title;
|
||||
};
|
||||
|
||||
export const getFeatureEnabled = (planName: PlanName, featureId: FeatureId): boolean => {
|
||||
const feature = features[featureId];
|
||||
return feature[planName];
|
||||
};
|
||||
|
||||
export const createFeatureTableMd = () => {
|
||||
const headers: MarkdownTableHeader[] = [
|
||||
{
|
||||
name: 'featureLabel',
|
||||
label: 'Feature',
|
||||
},
|
||||
{
|
||||
name: 'basic',
|
||||
label: 'Basic',
|
||||
},
|
||||
{
|
||||
name: 'pro',
|
||||
label: 'Pro',
|
||||
},
|
||||
{
|
||||
name: 'teams',
|
||||
label: 'Teams',
|
||||
},
|
||||
];
|
||||
|
||||
const rows: MarkdownTableRow[] = [];
|
||||
|
||||
const getCellInfo = (planName: PlanName, feature: PlanFeature) => {
|
||||
if (!feature[planName]) return '-';
|
||||
const infoShort: string = (feature as any)[`${planName}InfoShort`];
|
||||
if (infoShort) return infoShort;
|
||||
return '✔️';
|
||||
export function getPlans(stripeConfig: StripePublicConfig): Record<string, Plan> {
|
||||
const features = {
|
||||
publishNote: 'Publish notes to the internet',
|
||||
sync: 'Sync as many devices as you want',
|
||||
clipper: 'Web Clipper',
|
||||
collaborate: 'Share and collaborate on a notebook',
|
||||
multiUsers: 'Up to 10 users',
|
||||
prioritySupport: 'Priority support',
|
||||
};
|
||||
|
||||
for (const [, feature] of Object.entries(features)) {
|
||||
const row: MarkdownTableRow = {
|
||||
featureLabel: feature.title,
|
||||
basic: getCellInfo(PlanName.Basic, feature),
|
||||
pro: getCellInfo(PlanName.Pro, feature),
|
||||
teams: getCellInfo(PlanName.Teams, feature),
|
||||
};
|
||||
|
||||
rows.push(row);
|
||||
}
|
||||
|
||||
return markdownUtils.createMarkdownTable(headers, rows);
|
||||
};
|
||||
|
||||
export function getPlans(stripeConfig: StripePublicConfig): Record<PlanName, Plan> {
|
||||
return {
|
||||
basic: {
|
||||
name: 'basic',
|
||||
@@ -299,13 +146,20 @@ export function getPlans(stripeConfig: StripePublicConfig): Record<PlanName, Pla
|
||||
}),
|
||||
featured: false,
|
||||
iconName: 'basic-icon',
|
||||
featuresOn: getFeatureIdsByPlan(PlanName.Basic, true),
|
||||
featuresOff: getFeatureIdsByPlan(PlanName.Basic, false),
|
||||
featureLabelsOn: getFeatureLabelsByPlan(PlanName.Basic, true),
|
||||
featureLabelsOff: getFeatureLabelsByPlan(PlanName.Basic, false),
|
||||
featuresOn: [
|
||||
'Max 10 MB per note or attachment',
|
||||
features.publishNote,
|
||||
features.sync,
|
||||
features.clipper,
|
||||
'1 GB storage space',
|
||||
],
|
||||
featuresOff: [
|
||||
features.collaborate,
|
||||
features.multiUsers,
|
||||
features.prioritySupport,
|
||||
],
|
||||
cfaLabel: 'Try it now',
|
||||
cfaUrl: '',
|
||||
footnote: '',
|
||||
},
|
||||
|
||||
pro: {
|
||||
@@ -321,35 +175,42 @@ export function getPlans(stripeConfig: StripePublicConfig): Record<PlanName, Pla
|
||||
}),
|
||||
featured: true,
|
||||
iconName: 'pro-icon',
|
||||
featuresOn: getFeatureIdsByPlan(PlanName.Pro, true),
|
||||
featuresOff: getFeatureIdsByPlan(PlanName.Pro, false),
|
||||
featureLabelsOn: getFeatureLabelsByPlan(PlanName.Pro, true),
|
||||
featureLabelsOff: getFeatureLabelsByPlan(PlanName.Pro, false),
|
||||
featuresOn: [
|
||||
'Max 200 MB per note or attachment',
|
||||
features.publishNote,
|
||||
features.sync,
|
||||
features.clipper,
|
||||
'10 GB storage space',
|
||||
features.collaborate,
|
||||
],
|
||||
featuresOff: [
|
||||
features.multiUsers,
|
||||
features.prioritySupport,
|
||||
],
|
||||
cfaLabel: 'Try it now',
|
||||
cfaUrl: '',
|
||||
footnote: '',
|
||||
},
|
||||
|
||||
teams: {
|
||||
name: 'teams',
|
||||
title: 'Teams',
|
||||
priceMonthly: findPrice(stripeConfig.prices, {
|
||||
accountType: 3,
|
||||
period: PricePeriod.Monthly,
|
||||
}),
|
||||
priceYearly: findPrice(stripeConfig.prices, {
|
||||
accountType: 3,
|
||||
period: PricePeriod.Yearly,
|
||||
}),
|
||||
business: {
|
||||
name: 'business',
|
||||
title: 'Business',
|
||||
priceMonthly: { accountType: 3, formattedMonthlyAmount: '49.99€' } as any,
|
||||
priceYearly: { accountType: 3, formattedMonthlyAmount: '39.99€', formattedAmount: '479.88€' } as any,
|
||||
featured: false,
|
||||
iconName: 'business-icon',
|
||||
featuresOn: getFeatureIdsByPlan(PlanName.Teams, true),
|
||||
featuresOff: getFeatureIdsByPlan(PlanName.Teams, false),
|
||||
featureLabelsOn: getFeatureLabelsByPlan(PlanName.Teams, true),
|
||||
featureLabelsOff: getFeatureLabelsByPlan(PlanName.Teams, false),
|
||||
cfaLabel: 'Try it now',
|
||||
cfaUrl: '',
|
||||
footnote: 'Per user. Minimum of 2 users.',
|
||||
featuresOn: [
|
||||
'Max 200 MB per note or attachment',
|
||||
features.publishNote,
|
||||
features.sync,
|
||||
features.clipper,
|
||||
'10 GB storage space',
|
||||
features.collaborate,
|
||||
features.multiUsers,
|
||||
features.prioritySupport,
|
||||
],
|
||||
featuresOff: [],
|
||||
cfaLabel: 'Contact us',
|
||||
cfaUrl: `mailto:business@joplincloud.com?subject=${encodeURIComponent('Joplin Cloud Business Account Order')}&body=${encodeURIComponent(businessAccountEmailBody)}`,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ module.exports = {
|
||||
},
|
||||
{
|
||||
"id": "5ec2e7505ec2e7505ec2e7505ec2e750",
|
||||
"title": "5. Joplin Privacy Policy",
|
||||
"body": "# Joplin Privacy Policy\n\nThe Joplin applications, including the Android, iOS, Windows, macOS and Linux applications, do not send any data to any service without your authorisation. Any data that Joplin saves, such as notes or images, are saved to your own device and you are free to delete this data at any time.\n\nIf you choose to synchronise with a third-party, such as OneDrive or Dropbox, the notes will be sent to that account, in which case the third-party privacy policy applies.\n\nIn order to provide certain features, Joplin may need to connect to third-party services. You can disable most of these features in the application settings:\n\n| Feature | Description | Default | Can be disabled |\n| -------- | ------------- | -------- | --- |\n| Auto-update | Joplin periodically connects to GitHub to check for new releases. | Enabled | Yes |\n| Geo-location | Joplin saves geo-location information in note properties when you create a note. | Enabled | Yes |\n| Synchronisation | Joplin supports synchronisation of your notes across multiple devices. If you choose to synchronise with a third-party, such as OneDrive, the notes will be sent to your OneDrive account, in which case the third-party privacy policy applies. | Disabled | Yes |\n| Wifi connection check | On mobile, Joplin checks for Wifi connectivity to give the option to synchronise data only when Wifi is enabled. | Enabled | No <sup>(1)</sup> |\n| Spellchecker dictionary | On Linux and Windows, the desktop application downloads the spellchecker dictionary from `redirector.gvt1.com`. | Enabled | Yes <sup>(2)</sup> |\n| Plugin repository | The desktop application downloads the list of available plugins from the [official GitHub repository](https://github.com/joplin/plugins). If this repository is not accessible (eg. in China) the app will try to get the plugin list from [various mirrors](https://github.com/laurent22/joplin/blob/8ac6017c02017b6efd59f5fcab7e0b07f8d44164/packages/lib/services/plugins/RepositoryApi.ts#L22), in which case the plugin screen [works slightly differently](https://github.com/laurent22/joplin/issues/5161#issuecomment-925226975). | Enabled | No\n\n<sup>(1) https://github.com/laurent22/joplin/issues/5705</sup><br/>\n<sup>(2) If the spellchecker is disabled, [it will not download the dictionary](https://discourse.joplinapp.org/t/new-version-of-joplin-contacting-google-servers-on-startup/23000/40?u=laurent).</sup>\n\nFor any question about Joplin privacy policy, please leave a message [on the forum](https://discourse.joplinapp.org/).\n",
|
||||
"title": "5. Privacy policy",
|
||||
"body": "# Privacy policy\n\nJoplin values your privacy by giving you complete control over your information and digital footprint.\n\nJoplin applications do not send any data to any service without your authorisation. Any data that Joplin saves, such as notes or images, are saved to your own device and you are free to delete this data at any time.\n\nJoplin has many modern features, some of which use third-party services. You can disable most of these features in the application settings. These features are:\n\n| Feature | Description | Default | Can be disabled |\n| -------- | ------------- | -------- | --- |\n| Auto-update | Joplin periodically connects to GitHub to check for new releases. | Enabled | Yes |\n| Geo-location | Joplin saves geo-location information in note properties when you create a note. | Enabled | Yes |\n| Synchronisation | Joplin supports synchronisation of your notes across multiple devices. If you choose to synchronise with a third-party, such as OneDrive, the notes will be sent to your OneDrive account, in which case the third-party privacy policy applies. | Disabled | Yes |\n| Wifi connection check | On mobile, Joplin checks for Wifi connectivity to give the option to synchronise data only when Wifi is enabled. | Enabled | No <sup>(1)</sup> |\n\n(1) https://github.com/laurent22/joplin/issues/5705\n\nJoplin is developed as an open-source application and the source code is freely available online to inspect.\n\nFor any question about Joplin privacy, please leave a message on the [Joplin Forum](https://discourse.joplinapp.org/).\n",
|
||||
"tags": [],
|
||||
"resources": {},
|
||||
"parent_id": "9bb5d498aba74cc6a047cfdc841e82a1"
|
||||
|
||||
@@ -7,7 +7,6 @@ const MarkdownIt = require('markdown-it');
|
||||
export enum MarkupLanguage {
|
||||
Markdown = 1,
|
||||
Html = 2,
|
||||
Any = 3,
|
||||
}
|
||||
|
||||
export interface RenderResultPluginAsset {
|
||||
|
||||
@@ -10,7 +10,7 @@ export default async function(ctx: AppContext) {
|
||||
const requestStartTime = Date.now();
|
||||
|
||||
try {
|
||||
const { response: responseObject, path } = await execRequest(ctx.joplin.routes, ctx);
|
||||
const responseObject = await execRequest(ctx.joplin.routes, ctx);
|
||||
|
||||
if (responseObject instanceof Response) {
|
||||
ctx.response = responseObject.response;
|
||||
@@ -20,7 +20,7 @@ export default async function(ctx: AppContext) {
|
||||
const view = responseObject as View;
|
||||
ctx.response.status = view?.content?.error ? view?.content?.error?.httpCode || 500 : 200;
|
||||
ctx.response.body = await ctx.joplin.services.mustache.renderView(view, {
|
||||
currentPath: path,
|
||||
currentUrl: ctx.URL,
|
||||
notifications: ctx.joplin.notifications || [],
|
||||
hasNotifications: !!ctx.joplin.notifications && !!ctx.joplin.notifications.length,
|
||||
owner: ctx.joplin.owner,
|
||||
|
||||
@@ -159,22 +159,21 @@ describe('UserDeletionModel', function() {
|
||||
disabled_time: t0,
|
||||
});
|
||||
|
||||
await models().userDeletion().autoAdd(10, 90 * Day, t0 + 3 * Day);
|
||||
await models().userDeletion().autoAdd(10, 90 * Day, 3 * Day);
|
||||
|
||||
expect(await models().userDeletion().count()).toBe(0);
|
||||
|
||||
const t1 = new Date('2022-05-30').getTime();
|
||||
jest.setSystemTime(t1);
|
||||
|
||||
await models().userDeletion().autoAdd(10, 90 * Day, t1 + 3 * Day);
|
||||
await models().userDeletion().autoAdd(10, 90 * Day, 3 * Day);
|
||||
|
||||
expect(await models().userDeletion().count()).toBe(1);
|
||||
const d = (await models().userDeletion().all())[0];
|
||||
expect(d.user_id).toBe(user2.id);
|
||||
expect(d.scheduled_time).toBe(t1 + 3 * Day);
|
||||
|
||||
// Shouldn't add it again if running autoAdd() again
|
||||
await models().userDeletion().autoAdd(10, 90 * Day, t1 + 3 * Day);
|
||||
await models().userDeletion().autoAdd(10, 90 * Day, 3 * Day);
|
||||
expect(await models().userDeletion().count()).toBe(1);
|
||||
|
||||
jest.useRealTimers();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { redirect, SubPath } from '../../utils/routeUtils';
|
||||
import { makeUrl, redirect, SubPath, UrlType } from '../../utils/routeUtils';
|
||||
import Router from '../../utils/Router';
|
||||
import { RouteType } from '../../utils/types';
|
||||
import { AppContext } from '../../utils/types';
|
||||
import { ErrorBadRequest, ErrorForbidden } from '../../utils/errors';
|
||||
import { ErrorBadRequest, ErrorForbidden, ErrorMethodNotAllowed } from '../../utils/errors';
|
||||
import defaultView from '../../utils/defaultView';
|
||||
import { yesOrNo } from '../../utils/strings';
|
||||
import { makeTablePagination, makeTableView, Row, Table } from '../../utils/views/table';
|
||||
@@ -18,105 +18,108 @@ router.get('admin/user_deletions', async (_path: SubPath, ctx: AppContext) => {
|
||||
const user = ctx.joplin.owner;
|
||||
if (!user.is_admin) throw new ErrorForbidden();
|
||||
|
||||
const pagination = makeTablePagination(ctx.query, 'scheduled_time', PaginationOrderDir.ASC);
|
||||
const page = await ctx.joplin.models.userDeletion().allPaginated(pagination);
|
||||
const users = await ctx.joplin.models.user().loadByIds(page.items.map(d => d.user_id), { fields: ['id', 'email'] });
|
||||
if (ctx.method === 'GET') {
|
||||
const pagination = makeTablePagination(ctx.query, 'scheduled_time', PaginationOrderDir.ASC);
|
||||
const page = await ctx.joplin.models.userDeletion().allPaginated(pagination);
|
||||
const users = await ctx.joplin.models.user().loadByIds(page.items.map(d => d.user_id), { fields: ['id', 'email'] });
|
||||
|
||||
const table: Table = {
|
||||
baseUrl: adminUserDeletionsUrl(),
|
||||
requestQuery: ctx.query,
|
||||
pageCount: page.page_count,
|
||||
pagination,
|
||||
headers: [
|
||||
{
|
||||
name: 'select',
|
||||
label: '',
|
||||
canSort: false,
|
||||
},
|
||||
{
|
||||
name: 'email',
|
||||
label: 'Email',
|
||||
stretch: true,
|
||||
canSort: false,
|
||||
},
|
||||
{
|
||||
name: 'process_data',
|
||||
label: 'Data?',
|
||||
},
|
||||
{
|
||||
name: 'process_account',
|
||||
label: 'Account?',
|
||||
},
|
||||
{
|
||||
name: 'scheduled_time',
|
||||
label: 'Scheduled',
|
||||
},
|
||||
{
|
||||
name: 'start_time',
|
||||
label: 'Start',
|
||||
},
|
||||
{
|
||||
name: 'end_time',
|
||||
label: 'End',
|
||||
},
|
||||
{
|
||||
name: 'success',
|
||||
label: 'Success?',
|
||||
},
|
||||
{
|
||||
name: 'error',
|
||||
label: 'Error',
|
||||
},
|
||||
],
|
||||
rows: page.items.map(d => {
|
||||
const isDone = d.end_time && d.success;
|
||||
|
||||
const row: Row = [
|
||||
const table: Table = {
|
||||
baseUrl: adminUserDeletionsUrl(),
|
||||
requestQuery: ctx.query,
|
||||
pageCount: page.page_count,
|
||||
pagination,
|
||||
headers: [
|
||||
{
|
||||
value: `checkbox_${d.id}`,
|
||||
checkbox: true,
|
||||
name: 'select',
|
||||
label: '',
|
||||
canSort: false,
|
||||
},
|
||||
{
|
||||
value: isDone ? d.user_id : users.find(u => u.id === d.user_id).email,
|
||||
name: 'email',
|
||||
label: 'Email',
|
||||
stretch: true,
|
||||
url: isDone ? '' : userUrl(d.user_id),
|
||||
},
|
||||
{
|
||||
value: yesOrNo(d.process_data),
|
||||
name: 'process_data',
|
||||
label: 'Data?',
|
||||
},
|
||||
{
|
||||
value: yesOrNo(d.process_account),
|
||||
name: 'process_account',
|
||||
label: 'Account?',
|
||||
},
|
||||
{
|
||||
value: formatDateTime(d.scheduled_time),
|
||||
name: 'scheduled_time',
|
||||
label: 'Scheduled',
|
||||
},
|
||||
{
|
||||
value: formatDateTime(d.start_time),
|
||||
name: 'start_time',
|
||||
label: 'Start',
|
||||
},
|
||||
{
|
||||
value: formatDateTime(d.end_time),
|
||||
name: 'end_time',
|
||||
label: 'End',
|
||||
},
|
||||
{
|
||||
value: d.end_time ? yesOrNo(d.success) : '-',
|
||||
name: 'success',
|
||||
label: 'Success?',
|
||||
},
|
||||
{
|
||||
value: d.error,
|
||||
name: 'error',
|
||||
label: 'Error',
|
||||
},
|
||||
];
|
||||
],
|
||||
rows: page.items.map(d => {
|
||||
const isDone = d.end_time && d.success;
|
||||
|
||||
return row;
|
||||
}),
|
||||
};
|
||||
const row: Row = [
|
||||
{
|
||||
value: `checkbox_${d.id}`,
|
||||
checkbox: true,
|
||||
},
|
||||
{
|
||||
value: isDone ? d.user_id : users.find(u => u.id === d.user_id).email,
|
||||
stretch: true,
|
||||
url: isDone ? '' : userUrl(d.user_id),
|
||||
},
|
||||
{
|
||||
value: yesOrNo(d.process_data),
|
||||
},
|
||||
{
|
||||
value: yesOrNo(d.process_account),
|
||||
},
|
||||
{
|
||||
value: formatDateTime(d.scheduled_time),
|
||||
},
|
||||
{
|
||||
value: formatDateTime(d.start_time),
|
||||
},
|
||||
{
|
||||
value: formatDateTime(d.end_time),
|
||||
},
|
||||
{
|
||||
value: d.end_time ? yesOrNo(d.success) : '-',
|
||||
},
|
||||
{
|
||||
value: d.error,
|
||||
},
|
||||
];
|
||||
|
||||
const view = defaultView('admin/user_deletions', 'User deletions');
|
||||
view.content = {
|
||||
userDeletionTable: makeTableView(table),
|
||||
postUrl: adminUserDeletionsUrl(),
|
||||
csrfTag: await createCsrfTag(ctx),
|
||||
};
|
||||
view.cssFiles = ['index/user_deletions'];
|
||||
return row;
|
||||
}),
|
||||
};
|
||||
|
||||
return view;
|
||||
const view = defaultView('admin/user_deletions', 'User deletions');
|
||||
view.content = {
|
||||
userDeletionTable: makeTableView(table),
|
||||
postUrl: makeUrl(UrlType.UserDeletions),
|
||||
csrfTag: await createCsrfTag(ctx),
|
||||
};
|
||||
view.cssFiles = ['index/user_deletions'];
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
throw new ErrorMethodNotAllowed();
|
||||
});
|
||||
|
||||
router.post('admin/user_deletions', async (_path: SubPath, ctx: AppContext) => {
|
||||
@@ -139,7 +142,7 @@ router.post('admin/user_deletions', async (_path: SubPath, ctx: AppContext) => {
|
||||
throw new ErrorBadRequest('Invalid action');
|
||||
}
|
||||
|
||||
return redirect(ctx, adminUserDeletionsUrl());
|
||||
return redirect(ctx, makeUrl(UrlType.UserDeletions));
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
@@ -2,7 +2,7 @@ import { SubPath, redirect } from '../../utils/routeUtils';
|
||||
import Router from '../../utils/Router';
|
||||
import { RouteType } from '../../utils/types';
|
||||
import { AppContext } from '../../utils/types';
|
||||
import { findPrice, PricePeriod, PlanName, getFeatureLabel, getFeatureEnabled, getAllFeatureIds } from '@joplin/lib/utils/joplinCloud';
|
||||
import { findPrice, getFeatureList, getPlans, PricePeriod } from '@joplin/lib/utils/joplinCloud';
|
||||
import config from '../../config';
|
||||
import defaultView from '../../utils/defaultView';
|
||||
import { stripeConfig, stripePriceIdByUserId, updateSubscriptionType } from '../../utils/stripe';
|
||||
@@ -28,23 +28,21 @@ router.get('upgrade', async (_path: SubPath, ctx: AppContext) => {
|
||||
proLabel: string;
|
||||
}
|
||||
|
||||
const featureIds = getAllFeatureIds();
|
||||
const plans = getPlans(stripeConfig());
|
||||
const basicFeatureList = getFeatureList(plans.basic);
|
||||
const proFeatureList = getFeatureList(plans.pro);
|
||||
|
||||
const planRows: PlanRow[] = [];
|
||||
|
||||
for (let i = 0; i < featureIds.length; i++) {
|
||||
const featureId = featureIds[i];
|
||||
for (let i = 0; i < basicFeatureList.length; i++) {
|
||||
const basic = basicFeatureList[i];
|
||||
const pro = proFeatureList[i];
|
||||
|
||||
const basicLabel = getFeatureLabel(PlanName.Basic, featureId);
|
||||
const proLabel = getFeatureLabel(PlanName.Pro, featureId);
|
||||
const basicEnabled = getFeatureEnabled(PlanName.Basic, featureId);
|
||||
const proEnabled = getFeatureEnabled(PlanName.Pro, featureId);
|
||||
|
||||
if (basicLabel === proLabel && basicEnabled === proEnabled) continue;
|
||||
if (basic.label === pro.label && basic.enabled === pro.enabled) continue;
|
||||
|
||||
planRows.push({
|
||||
basicLabel: basicEnabled ? basicLabel : '-',
|
||||
proLabel: proLabel,
|
||||
basicLabel: basic.enabled ? basic.label : '-',
|
||||
proLabel: pro.label,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,23 @@ import config from '../config';
|
||||
import { filename } from '@joplin/lib/path-utils';
|
||||
import { NotificationView } from '../utils/types';
|
||||
import { User } from '../services/database/types';
|
||||
import { makeUrl, SubPath, UrlType } from '../utils/routeUtils';
|
||||
import { makeUrl, UrlType } from '../utils/routeUtils';
|
||||
import MarkdownIt = require('markdown-it');
|
||||
import { headerAnchor } from '@joplin/renderer';
|
||||
import { _ } from '@joplin/lib/locale';
|
||||
import { adminDashboardUrl, adminEmailsUrl, adminTasksUrl, adminUserDeletionsUrl, adminUsersUrl, changesUrl, homeUrl, itemsUrl } from '../utils/urlUtils';
|
||||
import { MenuItem, setSelectedMenu } from '../utils/views/menu';
|
||||
import { adminDashboardUrl, adminEmailsUrl, adminTasksUrl, adminUserDeletionsUrl, adminUsersUrl, changesUrl, homeUrl, itemsUrl, stripOffQueryParameters } from '../utils/urlUtils';
|
||||
import { URL } from 'url';
|
||||
|
||||
type MenuItemSelectedCondition = (selectedUrl: URL)=> boolean;
|
||||
|
||||
export interface MenuItem {
|
||||
title: string;
|
||||
url?: string;
|
||||
children?: MenuItem[];
|
||||
selected?: boolean;
|
||||
icon?: string;
|
||||
selectedCondition?: MenuItemSelectedCondition;
|
||||
}
|
||||
|
||||
export interface RenderOptions {
|
||||
partials?: any;
|
||||
@@ -30,7 +41,6 @@ export interface View {
|
||||
cssFiles?: string[];
|
||||
jsFiles?: string[];
|
||||
strings?: Record<string, string>; // List of translatable strings
|
||||
sidebarMenu?: MenuItem[];
|
||||
}
|
||||
|
||||
interface GlobalParams {
|
||||
@@ -54,7 +64,7 @@ interface GlobalParams {
|
||||
isAdminPage?: boolean;
|
||||
adminMenu?: MenuItem[];
|
||||
navbarMenu?: MenuItem[];
|
||||
currentPath?: SubPath;
|
||||
currentUrl?: URL;
|
||||
}
|
||||
|
||||
export function isView(o: any): boolean {
|
||||
@@ -102,7 +112,25 @@ export default class MustacheService {
|
||||
return `${config().layoutDir}/${name}.mustache`;
|
||||
}
|
||||
|
||||
private makeAdminMenu(selectedPath: SubPath): MenuItem[] {
|
||||
private setSelectedMenu(selectedUrl: URL, menuItems: MenuItem[]) {
|
||||
if (!selectedUrl) return;
|
||||
if (!menuItems) return;
|
||||
|
||||
const url = stripOffQueryParameters(selectedUrl.href);
|
||||
|
||||
for (const menuItem of menuItems) {
|
||||
if (menuItem.url) {
|
||||
if (menuItem.selectedCondition) {
|
||||
menuItem.selected = menuItem.selectedCondition(selectedUrl);
|
||||
} else {
|
||||
menuItem.selected = url === menuItem.url;
|
||||
}
|
||||
}
|
||||
this.setSelectedMenu(selectedUrl, menuItem.children);
|
||||
}
|
||||
}
|
||||
|
||||
private makeAdminMenu(selectedUrl: URL): MenuItem[] {
|
||||
const output: MenuItem[] = [
|
||||
{
|
||||
title: _('General'),
|
||||
@@ -131,10 +159,12 @@ export default class MustacheService {
|
||||
},
|
||||
];
|
||||
|
||||
return setSelectedMenu(selectedPath, output);
|
||||
this.setSelectedMenu(selectedUrl, output);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
private makeNavbar(selectedPath: SubPath, isAdmin: boolean): MenuItem[] {
|
||||
private makeNavbar(selectedUrl: URL, isAdmin: boolean): MenuItem[] {
|
||||
let output: MenuItem[] = [
|
||||
{
|
||||
title: _('Home'),
|
||||
@@ -156,14 +186,16 @@ export default class MustacheService {
|
||||
title: _('Admin'),
|
||||
url: adminDashboardUrl(),
|
||||
icon: 'fas fa-hammer',
|
||||
selectedCondition: (selectedPath: SubPath) => {
|
||||
return selectedPath.schema.startsWith('admin/') || selectedPath.schema === 'admin';
|
||||
selectedCondition: (selectedUrl: URL) => {
|
||||
return selectedUrl.pathname.startsWith('/admin/') || selectedUrl.pathname === '/admin';
|
||||
},
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
return setSelectedMenu(selectedPath, output);
|
||||
this.setSelectedMenu(selectedUrl, output);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
private get defaultLayoutOptions(): GlobalParams {
|
||||
@@ -263,8 +295,8 @@ export default class MustacheService {
|
||||
globalParams = {
|
||||
...this.defaultLayoutOptions,
|
||||
...globalParams,
|
||||
adminMenu: globalParams ? this.makeAdminMenu(globalParams.currentPath) : null,
|
||||
navbarMenu: this.makeNavbar(globalParams?.currentPath, globalParams?.owner ? !!globalParams.owner.is_admin : false),
|
||||
adminMenu: globalParams ? this.makeAdminMenu(globalParams.currentUrl) : null,
|
||||
navbarMenu: this.makeNavbar(globalParams?.currentUrl, globalParams?.owner ? !!globalParams.owner.is_admin : false),
|
||||
userDisplayName: this.userDisplayName(globalParams ? globalParams.owner : null),
|
||||
isAdminPage,
|
||||
s: {
|
||||
@@ -289,7 +321,6 @@ export default class MustacheService {
|
||||
cssFiles: cssFiles,
|
||||
jsFiles: jsFiles,
|
||||
navbar: view.navbar,
|
||||
sidebarMenu: view.sidebarMenu,
|
||||
...view.content,
|
||||
};
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ export default class UserDeletionService extends BaseService {
|
||||
const addedUserIds = await this.models.userDeletion().autoAdd(
|
||||
10,
|
||||
this.config.USER_DATA_AUTO_DELETE_AFTER_DAYS * Day,
|
||||
Date.now() + 3 * Day,
|
||||
3 * Day,
|
||||
{
|
||||
processAccount: true,
|
||||
processData: true,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { findMatchingRoute, isValidOrigin, parseSubPath, splitItemPath, urlMatchesSchema } from './routeUtils';
|
||||
import { findMatchingRoute, isValidOrigin, parseSubPath, splitItemPath } from './routeUtils';
|
||||
import { ItemAddressingType } from '../services/database/types';
|
||||
import { RouteType } from './types';
|
||||
import { expectThrow } from './testing/testUtils';
|
||||
@@ -99,7 +99,7 @@ describe('routeUtils', function() {
|
||||
});
|
||||
|
||||
it('should check the request origin for API URLs', async function() {
|
||||
const testCases: [string, string, boolean][] = [
|
||||
const testCases: any[] = [
|
||||
[
|
||||
'https://example.com', // Request origin
|
||||
'https://example.com', // Config base URL
|
||||
@@ -141,7 +141,7 @@ describe('routeUtils', function() {
|
||||
});
|
||||
|
||||
it('should check the request origin for User Content URLs', async function() {
|
||||
const testCases: [string, string, boolean][] = [
|
||||
const testCases: any[] = [
|
||||
[
|
||||
'https://usercontent.local', // Request origin
|
||||
'https://usercontent.local', // Config base URL
|
||||
@@ -170,40 +170,4 @@ describe('routeUtils', function() {
|
||||
}
|
||||
});
|
||||
|
||||
it('should check if a URL matches a schema', async function() {
|
||||
const testCases: [string, string, boolean][] = [
|
||||
[
|
||||
'https://test.com/items/123/children',
|
||||
'items/:id/children',
|
||||
true,
|
||||
],
|
||||
[
|
||||
'https://test.com/items/123',
|
||||
'items/:id',
|
||||
true,
|
||||
],
|
||||
[
|
||||
'https://test.com/items',
|
||||
'items',
|
||||
true,
|
||||
],
|
||||
[
|
||||
'https://test.com/items/123/children',
|
||||
'items/:id',
|
||||
false,
|
||||
],
|
||||
[
|
||||
'',
|
||||
'items/:id',
|
||||
false,
|
||||
],
|
||||
];
|
||||
|
||||
for (const testCase of testCases) {
|
||||
const [url, schema, expected] = testCase;
|
||||
const actual = urlMatchesSchema(url, schema);
|
||||
expect(actual).toBe(expected);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -6,7 +6,6 @@ import { AppContext, HttpMethod, RouteType } from './types';
|
||||
import { URL } from 'url';
|
||||
import { csrfCheck } from './csrf';
|
||||
import { contextSessionId } from './requestUtils';
|
||||
import { stripOffQueryParameters } from './urlUtils';
|
||||
|
||||
const { ltrimSlashes, rtrimSlashes } = require('@joplin/lib/path-utils');
|
||||
|
||||
@@ -113,12 +112,6 @@ export function isPathBasedAddressing(fileId: string): boolean {
|
||||
return fileId.indexOf(':') >= 0;
|
||||
}
|
||||
|
||||
export const urlMatchesSchema = (url: string, schema: string): boolean => {
|
||||
url = stripOffQueryParameters(url);
|
||||
const regex = new RegExp(`${schema.replace(/:id/, '[a-zA-Z0-9]+')}$`);
|
||||
return !!url.match(regex);
|
||||
};
|
||||
|
||||
// Allows parsing the two types of paths supported by the API:
|
||||
//
|
||||
// root:/Documents/MyFile.md:/content
|
||||
@@ -196,12 +189,7 @@ function disabledAccountCheck(route: MatchedRoute, user: User) {
|
||||
if (route.subPath.schema.startsWith('api/')) throw new ErrorForbidden(`This account is disabled. Please login to ${config().baseUrl} for more information.`);
|
||||
}
|
||||
|
||||
interface ExecRequestResult {
|
||||
response: any;
|
||||
path: SubPath;
|
||||
}
|
||||
|
||||
export async function execRequest(routes: Routers, ctx: AppContext): Promise<ExecRequestResult> {
|
||||
export async function execRequest(routes: Routers, ctx: AppContext) {
|
||||
const match = findMatchingRoute(ctx.path, routes);
|
||||
if (!match) throw new ErrorNotFound();
|
||||
|
||||
@@ -227,10 +215,7 @@ export async function execRequest(routes: Routers, ctx: AppContext): Promise<Exe
|
||||
await csrfCheck(ctx, isPublicRoute);
|
||||
disabledAccountCheck(match, ctx.joplin.owner);
|
||||
|
||||
return {
|
||||
response: await endPoint.handler(match.subPath, ctx),
|
||||
path: match.subPath,
|
||||
};
|
||||
return endPoint.handler(match.subPath, ctx);
|
||||
}
|
||||
|
||||
// In a path such as "/api/files/SOME_ID/content" we want to find:
|
||||
|
||||
@@ -46,12 +46,17 @@ export default function(env: Env, models: Models, config: Config, services: Serv
|
||||
run: (models: Models) => models.user().handleOversizedAccounts(),
|
||||
},
|
||||
|
||||
{
|
||||
id: TaskId.DeleteExpiredSessions,
|
||||
description: taskIdToLabel(TaskId.DeleteExpiredSessions),
|
||||
schedule: '0 */6 * * *',
|
||||
run: (models: Models) => models.session().deleteExpiredSessions(),
|
||||
},
|
||||
// This should be enabled eventually. As of version 2.5
|
||||
// (2021-11-08T11:07:11Z) all Joplin clients support handling of expired
|
||||
// sessions, however we don't know how many people have Joplin 2.5+ so
|
||||
// be safe we don't enable it just yet.
|
||||
|
||||
// {
|
||||
// id: TaskId.DeleteExpiredSessions,
|
||||
// description: taskIdToLabel(TaskId.DeleteExpiredSessions),
|
||||
// schedule: '0 */6 * * *',
|
||||
// run: (models: Models) => models.session().deleteExpiredSessions(),
|
||||
// },
|
||||
];
|
||||
|
||||
if (config.USER_DATA_AUTO_DELETE_ENABLED) {
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
import { SubPath, urlMatchesSchema } from '../routeUtils';
|
||||
|
||||
export type MenuItemSelectedCondition = (selectedUrl: SubPath)=> boolean;
|
||||
|
||||
export interface MenuItem {
|
||||
title: string;
|
||||
url?: string;
|
||||
children?: MenuItem[];
|
||||
selected?: boolean;
|
||||
icon?: string;
|
||||
selectedCondition?: MenuItemSelectedCondition;
|
||||
}
|
||||
|
||||
export const setSelectedMenu = (selectedPath: SubPath, menuItems: MenuItem[]) => {
|
||||
if (!selectedPath) return menuItems;
|
||||
if (!menuItems) return menuItems;
|
||||
|
||||
menuItems = menuItems.slice();
|
||||
|
||||
for (let i = 0; i < menuItems.length; i++) {
|
||||
const menuItem = menuItems[i];
|
||||
let selected = menuItem.selected;
|
||||
if (menuItem.url) {
|
||||
if (menuItem.selectedCondition) {
|
||||
selected = menuItem.selectedCondition(selectedPath);
|
||||
} else {
|
||||
selected = urlMatchesSchema(menuItem.url, selectedPath.schema);
|
||||
}
|
||||
}
|
||||
|
||||
menuItems[i] = {
|
||||
...menuItem,
|
||||
selected,
|
||||
children: setSelectedMenu(selectedPath, menuItem.children),
|
||||
};
|
||||
}
|
||||
|
||||
return menuItems;
|
||||
};
|
||||
@@ -25,25 +25,13 @@
|
||||
<div class="container main-container">
|
||||
{{> notifications}}
|
||||
|
||||
{{! ADMIN PAGE }}
|
||||
|
||||
{{#global.isAdminPage}}
|
||||
{{> adminLayout}}
|
||||
{{/global.isAdminPage}}
|
||||
|
||||
{{! USER PAGE - WITH SIDEBAR }}
|
||||
|
||||
{{^sidebarMenu}}
|
||||
{{^global.isAdminPage}}
|
||||
{{{contentHtml}}}
|
||||
{{/global.isAdminPage}}
|
||||
{{/sidebarMenu}}
|
||||
|
||||
{{! USER PAGE - NO SIDEBAR }}
|
||||
|
||||
{{#sidebarMenu}}
|
||||
{{> sidebarLayout}}
|
||||
{{/sidebarMenu}}
|
||||
{{^global.isAdminPage}}
|
||||
{{{contentHtml}}}
|
||||
{{/global.isAdminPage}}
|
||||
</div>
|
||||
</main>
|
||||
{{> footer}}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<div style="display: flex; flex-direction: row;">
|
||||
<div style="display: flex; margin-right: 3rem; background-color: #f5f5f5; padding: 1.5rem;">
|
||||
<aside class="menu">
|
||||
{{#sidebarMenu}}
|
||||
<p class="menu-label">{{title}}</p>
|
||||
<ul class="menu-list">
|
||||
{{#children}}
|
||||
<li><a href="{{{url}}}" class="{{#selected}}is-active{{/selected}}">{{title}}</a></li>
|
||||
{{/children}}
|
||||
</ul>
|
||||
{{/sidebarMenu}}
|
||||
</aside>
|
||||
</div>
|
||||
|
||||
<div style="display: flex; flex: 1;">
|
||||
<div>
|
||||
{{{contentHtml}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -30,20 +30,6 @@
|
||||
"period": "yearly",
|
||||
"amount": "57.48",
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"accountType": 3,
|
||||
"id": "price_1Kl9uBLx4fybOTqJhx7q4zzj",
|
||||
"period": "monthly",
|
||||
"amount": "7.99",
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"accountType": 3,
|
||||
"id": "price_1Kl9uNLx4fybOTqJpsB2l3Kg",
|
||||
"period": "yearly",
|
||||
"amount": "80.28",
|
||||
"currency": "EUR"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -78,20 +64,6 @@
|
||||
"period": "yearly",
|
||||
"amount": "57.48",
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"accountType": 3,
|
||||
"id": "price_1Kl9jyLx4fybOTqJN0i1A88B",
|
||||
"period": "monthly",
|
||||
"amount": "7.99",
|
||||
"currency": "EUR"
|
||||
},
|
||||
{
|
||||
"accountType": 3,
|
||||
"id": "price_1Kl9nLLx4fybOTqJYTtts35z",
|
||||
"period": "yearly",
|
||||
"amount": "80.28",
|
||||
"currency": "EUR"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ function filterLogs(logs: LogEntry[], platform: Platform) {
|
||||
if (platform === 'cli' && prefix.indexOf('cli') >= 0) addIt = true;
|
||||
if (platform === 'clipper' && prefix.indexOf('clipper') >= 0) addIt = true;
|
||||
if (platform === 'server' && prefix.indexOf('server') >= 0) addIt = true;
|
||||
if (platform === 'cloud' && (prefix.indexOf('cloud') >= 0 || prefix.indexOf('server'))) addIt = true;
|
||||
if (platform === 'cloud' && prefix.indexOf('cloud') >= 0) addIt = true;
|
||||
|
||||
// Translation updates often comes in format "Translation: Update pt_PT.po"
|
||||
// but that's not useful in a changelog especially since most people
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
import { readdir, stat, writeFile } from 'fs-extra';
|
||||
import { chdir, cwd } from 'process';
|
||||
import { execCommand2, rootDir } from './tool-utils';
|
||||
|
||||
interface LicenseInfo {
|
||||
licenses: string;
|
||||
repository: string;
|
||||
path: string;
|
||||
}
|
||||
|
||||
const getLicenses = async (directory: string): Promise<Record<string, LicenseInfo>> => {
|
||||
const previousDir = cwd();
|
||||
await chdir(directory);
|
||||
const result = await execCommand2(['license-checker-rseidelsohn', '--production', '--json'], { quiet: true });
|
||||
const info: Record<string, LicenseInfo> = JSON.parse(result);
|
||||
if (!info) throw new Error(`Could not parse JSON: ${directory}`);
|
||||
await chdir(previousDir);
|
||||
return info;
|
||||
};
|
||||
|
||||
const createCsvLine = (items: string[]) => {
|
||||
try {
|
||||
return `"${items.map(i => i.replace(/"/g, '""')).join('", "')}"`;
|
||||
} catch (error) {
|
||||
error.message = `Could not process line: ${JSON.stringify(items)}: ${error.message}`;
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
const enforceString = (line: any): string => {
|
||||
if (Array.isArray(line)) return line.join(', ');
|
||||
return line ? (`${line}`) : '';
|
||||
};
|
||||
|
||||
async function main() {
|
||||
const directories: string[] = [];
|
||||
const packageItems = await readdir(`${rootDir}/packages`);
|
||||
for (const item of packageItems) {
|
||||
const fullPath = `${rootDir}/packages/${item}`;
|
||||
const info = await stat(fullPath);
|
||||
if (info.isDirectory()) directories.push(fullPath);
|
||||
}
|
||||
directories.push(rootDir);
|
||||
|
||||
let licenses: Record<string, LicenseInfo> = {};
|
||||
|
||||
for (const dir of directories) {
|
||||
console.info(`Processing ${dir}...`);
|
||||
const dirLicenses = await getLicenses(dir);
|
||||
for (const [, v] of Object.entries(dirLicenses)) {
|
||||
v.path = dir.substr(rootDir.length);
|
||||
}
|
||||
licenses = { ...licenses, ...dirLicenses };
|
||||
}
|
||||
|
||||
const csv: string[][] = [];
|
||||
csv.push(['Package', 'Licenses', 'Repository', 'Path']);
|
||||
|
||||
for (const [packageName, info] of Object.entries(licenses)) {
|
||||
csv.push([
|
||||
enforceString(packageName),
|
||||
enforceString(info.licenses),
|
||||
enforceString(info.repository),
|
||||
enforceString(info.path),
|
||||
]);
|
||||
}
|
||||
|
||||
const outputFile = `${rootDir}/licenses.csv`;
|
||||
await writeFile(outputFile, csv.map(line => createCsvLine(line)).join('\n'));
|
||||
|
||||
console.info(`Created summary in ${outputFile}`);
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error('Fatal error');
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
||||
@@ -241,7 +241,7 @@ msgstr "نشط"
|
||||
msgid "Actual Size"
|
||||
msgstr "الحجم الفعلي"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "أضف الجسم"
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr "إضافة أو حذف وسوم:"
|
||||
msgid "Add recipient:"
|
||||
msgstr "أضِف المستلم:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "أضف العنوان"
|
||||
|
||||
@@ -261,8 +261,8 @@ msgstr "أضف العنوان"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "أضف إلى القاموس"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -328,15 +328,15 @@ msgstr "Aritim Dark"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "إرفاق ملف"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "إرفاق صورة"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "إرفاق..."
|
||||
|
||||
@@ -447,8 +447,8 @@ msgstr "قائمة تعداد نقطي"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -504,8 +504,8 @@ msgstr "لا يمكن نسخ الملاحظة إلى دفتر الملاحظات
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "لا يمكن العثور على \"%s\"."
|
||||
|
||||
@@ -513,11 +513,11 @@ msgstr "لا يمكن العثور على \"%s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "لم يتمكن من تمهيد المزامن."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "لا يمكن تحميل الوحدة النمطية \"%s\" للتنسيق \"%s\" والإخراج \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "لا يمكن تحميل الوحدة النمطية \"%s\" للتنسيق \"%s\" والهدف \"%s\""
|
||||
|
||||
@@ -593,7 +593,7 @@ msgstr "قائمة خانات اختيار"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "التحقق جارٍ... فضلاً انتظر."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "إختر خيار"
|
||||
|
||||
@@ -738,17 +738,17 @@ msgstr "التعارضات (المرفقات)"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "خصائص الملاحظة"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "تحويل إلى ملاحظة"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "تحويل إلى قائمة مهام"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "نسخ"
|
||||
@@ -774,7 +774,7 @@ msgid "Copy Link Address"
|
||||
msgstr "نسخ عنوان الرابط"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "نسخ رابط Markdown"
|
||||
|
||||
@@ -896,7 +896,7 @@ msgid "Created: %d."
|
||||
msgstr "تم إنشاؤها: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "الإنشاء في: %s"
|
||||
|
||||
@@ -945,7 +945,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "شهادات TLS خاصة"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "قص"
|
||||
@@ -954,7 +954,7 @@ msgstr "قص"
|
||||
msgid "Dark"
|
||||
msgstr "غامقة"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1003,7 +1003,7 @@ msgstr "التلقائية: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "حذف"
|
||||
@@ -1035,7 +1035,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "حذف الملاحظة \"%s\" ؟"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "حذف الملاحظة؟"
|
||||
|
||||
@@ -1147,7 +1147,7 @@ msgstr ""
|
||||
"تعطيل التشفير يعني أن *كل* ملاحظاتك ومرفقاتها ستجري إعادة مزامنتها ثم ترسل "
|
||||
"دون تشفير إلى وجهة المزامنة. هل ترغب الاستمرار؟"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "تجاهل التغييرات"
|
||||
|
||||
@@ -1285,7 +1285,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "تحرير"
|
||||
|
||||
@@ -1342,7 +1342,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1545,11 +1545,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "الأخطاء فقط"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "ملف تصدير Evernote (بتنسيق HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "ملف تصدير Evernote (بتنسيق Markdown)"
|
||||
|
||||
@@ -1719,7 +1719,7 @@ msgid "Full changelog"
|
||||
msgstr "سجل التغيير بكامله"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "عام"
|
||||
|
||||
@@ -1756,7 +1756,7 @@ msgstr ""
|
||||
"التطبيق قيمة [name] (اسم). إذا لم يجر التزويد بـ [name] ولا [value] فسيسرد "
|
||||
"التطبيق الإعداد الحالي."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "الذهاب إلى عنوان URL المصدر"
|
||||
|
||||
@@ -1773,7 +1773,7 @@ msgstr "منح ال"
|
||||
msgid "Heading"
|
||||
msgstr "ترويسة"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "مساعدة"
|
||||
|
||||
@@ -1794,8 +1794,8 @@ msgstr "إخفي Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr "تَمييز النَص"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1803,11 +1803,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "خط تسطير أفقي"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "دليل HTML"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "ملف HTML"
|
||||
|
||||
@@ -1883,7 +1883,7 @@ msgstr ""
|
||||
"دفتر الملاحظات المختار حالياً. يمكن استخدام `$c` للإشارة إلى العنصر المختار "
|
||||
"حالياً."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2024,8 +2024,8 @@ msgstr "مائل"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "العنصر \"%s\" لم يتم الإمكان من تحميله: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2057,13 +2057,13 @@ msgstr "بريد Joplin Cloud"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "كلمة مرور Joplin Cloud"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "دليل تصدير بيانات Joplin"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "ملف تصدير Joplin"
|
||||
|
||||
@@ -2157,7 +2157,7 @@ msgstr "آخر خطأ: %s"
|
||||
msgid "Later"
|
||||
msgstr "لاحقا"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "تخطيط"
|
||||
|
||||
@@ -2196,7 +2196,7 @@ msgstr[3] "تم نسخ الروابط إلى الحافظة!"
|
||||
msgstr[4] "تم نسخ الروابط إلى الحافظة!"
|
||||
msgstr[5] "تم نسخ الروابط إلى الحافظة!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "الروابط مع البروتوكول \"%s\" غير مدعومة"
|
||||
|
||||
@@ -2226,7 +2226,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "السجل"
|
||||
|
||||
@@ -2246,11 +2246,11 @@ msgstr "تسجيل الدخول عبر Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "تسجيل الدخول عبر OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2288,13 +2288,13 @@ msgid "Manual"
|
||||
msgstr "يدوي"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "تنسيق Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2446,7 +2446,7 @@ msgid "no"
|
||||
msgstr "كلّا"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "لا"
|
||||
@@ -2455,7 +2455,7 @@ msgstr "لا"
|
||||
msgid "No active notebook."
|
||||
msgstr "لا يوجد دفتر ملاحظات نشط."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "لا يوجد عنصر بالمعرّف %s"
|
||||
|
||||
@@ -2751,7 +2751,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "كلمات المرور غير متطابقة!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "لصق"
|
||||
@@ -2765,7 +2765,7 @@ msgstr "المسار:"
|
||||
msgid "PDF File"
|
||||
msgstr "ملف PDF"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "مطلوب الإذن"
|
||||
|
||||
@@ -2821,7 +2821,7 @@ msgstr "يرجى اختيار الملاحظة أو دفتر الملاحظات
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "فضلاً اختر أين سيتم تصدير حالة المزامنة"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "فضلاً حدّد تنسيق الاستيراد لـ %s"
|
||||
|
||||
@@ -2935,7 +2935,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "نسخة الملف الشخصي: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "الخصائص"
|
||||
|
||||
@@ -3162,7 +3162,7 @@ msgstr "حفظ المنبّه"
|
||||
msgid "Save as..."
|
||||
msgstr "حفظ باسم..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "حفظ التغييرات"
|
||||
|
||||
@@ -3236,7 +3236,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "الخادم قيد التشغيل على المنفذ %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "ضبط منبّه"
|
||||
@@ -3269,7 +3269,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "مشاركة"
|
||||
|
||||
@@ -3626,18 +3626,18 @@ msgstr "تم وسمها: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "وسوم"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "التقاط صورة"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3737,7 +3737,7 @@ msgstr ""
|
||||
"تستخدم المفاتيح الرئيسية التالية خوارزمية تشفير قديمة ويوَصّى بترقيتها. سيظل "
|
||||
"المفتاح الرئيسي الذي تمت ترقيته قادرًا على فك تشفير بياناتك وتشفيرها كالمعتاد."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "تطبيق Joplin على الهاتف الجوال لا يدعم حالياً هذا النوع من الربط : %s"
|
||||
|
||||
@@ -3913,7 +3913,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "لم يجر تنزيل هذا المرفق أو فك تشفيره حتى الآن"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "لم يجر تنزيل هذا المرفق أو فك تشفيره حتى الآن."
|
||||
|
||||
@@ -3939,11 +3939,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "ليس لدى هذه الملاحظة معلومة موقع جغرافي."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "جرى تعديل هذه الملاحظة:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4188,7 +4188,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"إلغاء مشاركة هذا الدفتر ؟ لن يتمكن المستلمون من الوصول إلى محتوياته بعد الآن."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "نوع صورة غير مدعوم: %s"
|
||||
|
||||
@@ -4245,7 +4245,7 @@ msgstr "تم تحديثها: "
|
||||
msgid "Updated: %d."
|
||||
msgstr "تم تحديثها: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "تم تحديثها: %s"
|
||||
|
||||
@@ -4321,13 +4321,13 @@ msgstr ""
|
||||
"الجداول وخانات الاختيار والشفرة البرمجية مثلاً). عندما لا يُعثر عليه سيتم "
|
||||
"استخدام خط عامّ أحادي المسافة (ثابت العرض)."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4339,7 +4339,7 @@ msgstr "صحيح"
|
||||
msgid "View"
|
||||
msgstr "عرض"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "عرض على الخريطة"
|
||||
|
||||
@@ -4433,12 +4433,12 @@ msgid "yes"
|
||||
msgstr "نعم"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "نعم"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -248,7 +248,7 @@ msgstr "Активен"
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
|
||||
@@ -260,7 +260,7 @@ msgstr "Добавяне и махане на тагове:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
#, fuzzy
|
||||
msgid "Add title"
|
||||
msgstr "заглавие"
|
||||
@@ -269,8 +269,8 @@ msgstr "заглавие"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -338,15 +338,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Прикачи файл"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Прикачи снимка"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
#, fuzzy
|
||||
msgid "Attach..."
|
||||
msgstr "Търсене..."
|
||||
@@ -463,8 +463,8 @@ msgstr "Неномериран списък"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -520,8 +520,8 @@ msgstr "Не можах да копира бележката в тетрадка
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Не успях да намеря \"%s\"."
|
||||
|
||||
@@ -530,12 +530,12 @@ msgstr "Не успях да намеря \"%s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Не успях да инициализирам синхронизатора."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "Не можах да заредя модул \"%s\" за формат \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "Не можах да заредя модул \"%s\" за формат \"%s\""
|
||||
@@ -613,7 +613,7 @@ msgstr "Поле за отметка"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Проверявам... Моля изчакайте."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
#, fuzzy
|
||||
msgid "Choose an option"
|
||||
msgstr "Покажи настройките за напреднали"
|
||||
@@ -771,17 +771,17 @@ msgstr "Прикачи файл"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Атрибути на бележката"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Конвертиране към бележка"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Конвертиране към задача"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Копирай"
|
||||
@@ -808,7 +808,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Копирай адреса на линка"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Копирай Markdown линк"
|
||||
|
||||
@@ -927,7 +927,7 @@ msgid "Created: %d."
|
||||
msgstr "Създадени: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Създаден: %s"
|
||||
|
||||
@@ -977,7 +977,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Допълнителни TLS сертификати"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Изрежи"
|
||||
@@ -986,7 +986,7 @@ msgstr "Изрежи"
|
||||
msgid "Dark"
|
||||
msgstr "Тъмна"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1037,7 +1037,7 @@ msgstr "Стойност по подразбиране: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Изтрий"
|
||||
@@ -1071,7 +1071,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Да изтрия ли бележка \"%s\"?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Да изтрия ли бележката?"
|
||||
|
||||
@@ -1184,7 +1184,7 @@ msgstr ""
|
||||
"файлове ще бъдат синхронизирани наново и изпратени некриптирани на целта за "
|
||||
"синхронизация. Искате ли да продължите?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Отхвърли промените"
|
||||
|
||||
@@ -1327,7 +1327,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Редактиране"
|
||||
|
||||
@@ -1387,7 +1387,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1603,12 +1603,12 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Само грешки"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernote експорт файл"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernote експорт файл"
|
||||
@@ -1779,7 +1779,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Общи"
|
||||
|
||||
@@ -1813,7 +1813,7 @@ msgstr ""
|
||||
"покаже стойността на [име]. Ако нито [име] нито [стойност] са дадени, "
|
||||
"изрежда цялата настояща конфигурация."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Иди на уеб адреса (URL)"
|
||||
|
||||
@@ -1831,7 +1831,7 @@ msgstr "Оторизационен жетон:"
|
||||
msgid "Heading"
|
||||
msgstr "Заглавие"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "Помощ (&H)"
|
||||
@@ -1853,8 +1853,8 @@ msgstr "Относно Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1862,12 +1862,12 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Хоризонтална черта"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
#, fuzzy
|
||||
msgid "HTML Directory"
|
||||
msgstr "Директория"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
#, fuzzy
|
||||
msgid "HTML File"
|
||||
msgstr "Файл"
|
||||
@@ -1944,7 +1944,7 @@ msgstr ""
|
||||
"представляващи съответно настоящата бележка и настоящата тетрадка. `$c` може "
|
||||
"да се ползва за рефериране на избрания обект."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2072,8 +2072,8 @@ msgstr "Курсив"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Обект \"%s\" не можа да бъде свален: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2106,13 +2106,13 @@ msgstr "Уебсайта на Joplin"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Въведете главната парола:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Joplin експорт директория"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Joplin експорт файл"
|
||||
|
||||
@@ -2210,7 +2210,7 @@ msgstr "Последна грешка: %s"
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Разположеня"
|
||||
|
||||
@@ -2246,7 +2246,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "Жетона бе копиран в клипборда!"
|
||||
msgstr[1] "Жетона бе копиран в клипборда!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
|
||||
@@ -2276,7 +2276,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Лог"
|
||||
|
||||
@@ -2296,11 +2296,11 @@ msgstr "Вписване с Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Вписване в OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2338,13 +2338,13 @@ msgid "Manual"
|
||||
msgstr "Ръчен"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2504,7 +2504,7 @@ msgid "no"
|
||||
msgstr "н"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Не"
|
||||
@@ -2513,7 +2513,7 @@ msgstr "Не"
|
||||
msgid "No active notebook."
|
||||
msgstr "Няма активна тетрадка."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Няма обект с идентификатор %s"
|
||||
|
||||
@@ -2827,7 +2827,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Паролата не може да е празна"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Постави"
|
||||
@@ -2841,7 +2841,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "PDF файл"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
#, fuzzy
|
||||
msgid "Permission needed"
|
||||
msgstr "Разрешение за употреба на камерата"
|
||||
@@ -2898,7 +2898,7 @@ msgstr ""
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Моля изберете къде да бъде експортиран статуса на синхронизацията"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Моля задайте формата за импортиране от %s"
|
||||
|
||||
@@ -3012,7 +3012,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Нова версия: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
#, fuzzy
|
||||
msgid "Properties"
|
||||
msgstr "Атрибути на бележката"
|
||||
@@ -3238,7 +3238,7 @@ msgstr "Запази алармата"
|
||||
msgid "Save as..."
|
||||
msgstr "Запазаи като..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Запази промените"
|
||||
|
||||
@@ -3314,7 +3314,7 @@ msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Задай аларма"
|
||||
@@ -3347,7 +3347,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Сподели"
|
||||
|
||||
@@ -3718,18 +3718,18 @@ msgstr "Тагнати: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Тагове"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Снимане"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3821,7 +3821,7 @@ msgid ""
|
||||
"and encrypt your data as usual."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
"Мобилното приложение на Joplin в момента не поддържа този вид линкове: %s"
|
||||
@@ -3985,7 +3985,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Прикаченият файл не е свален или все още не е декриптиран."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "Прикаченият файл не е свален или все още не е декриптиран."
|
||||
|
||||
@@ -4009,11 +4009,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Тази бележка няма информация за геолокация."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Тази бележка беше променена:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4266,7 +4266,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Този тип изображения не се поддържа: %s"
|
||||
|
||||
@@ -4325,7 +4325,7 @@ msgstr "Обновени: %d."
|
||||
msgid "Updated: %d."
|
||||
msgstr "Обновени: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
#, fuzzy
|
||||
msgid "Updated: %s"
|
||||
msgstr "Обновени: %d."
|
||||
@@ -4396,13 +4396,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4416,7 +4416,7 @@ msgstr "Невалиден отговор: %s"
|
||||
msgid "View"
|
||||
msgstr "Изглед(&V)"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Покажи на карта"
|
||||
|
||||
@@ -4514,12 +4514,12 @@ msgid "yes"
|
||||
msgstr "Да"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Да"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -251,7 +251,7 @@ msgstr "Aktivan"
|
||||
msgid "Actual Size"
|
||||
msgstr "Početne dimenzije"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Dodaj tekst"
|
||||
|
||||
@@ -263,7 +263,7 @@ msgstr "Dodajte ili uklonite oznake:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Dodaj naziv"
|
||||
|
||||
@@ -271,8 +271,8 @@ msgstr "Dodaj naziv"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -339,15 +339,15 @@ msgstr "Aritim tamna"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Priloži datoteku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Priloži sliku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Priloži..."
|
||||
|
||||
@@ -463,8 +463,8 @@ msgstr "Nabrajanje"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -520,8 +520,8 @@ msgstr "Bilješka se ne može kopirati u bilježnicu \"%s\""
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Ne mogu pronaći \"%s\"."
|
||||
|
||||
@@ -530,12 +530,12 @@ msgstr "Ne mogu pronaći \"%s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Sinhronizovanje se ne može započeti."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "Ne može se učitati modul \"%s\" za format \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "Ne može se učitati modul \"%s\" za format \"%s\""
|
||||
@@ -613,7 +613,7 @@ msgstr "Polje za kvačicu"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Provjeravam... Pričekajte."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Odaberi opciju"
|
||||
|
||||
@@ -769,17 +769,17 @@ msgstr "Priložene bilješke"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Svojstva bilješke"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Preinači u bilješku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Preinači u zadatak"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopiraj"
|
||||
@@ -806,7 +806,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Kopiraj adresu veze"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Kopiraj Markdown vezu"
|
||||
|
||||
@@ -934,7 +934,7 @@ msgid "Created: %d."
|
||||
msgstr "Kreirano: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Kreirano: %s"
|
||||
|
||||
@@ -984,7 +984,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "TLS certifikati"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Izreži"
|
||||
@@ -993,7 +993,7 @@ msgstr "Izreži"
|
||||
msgid "Dark"
|
||||
msgstr "Tamna"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1044,7 +1044,7 @@ msgstr "Prekonfigurisano: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Izbriši"
|
||||
@@ -1078,7 +1078,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Izbrisati bilješku \"%s\"?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Izbrisati bilješku?"
|
||||
|
||||
@@ -1190,7 +1190,7 @@ msgstr ""
|
||||
"Po isključivanju šifriranja *sve* Vaše bilješke i prilozi bit će iznova "
|
||||
"sinhronizovani i poslani nešifrirani na zadatu lokaciju. Želite li nastaviti?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Odbaci izmjene"
|
||||
|
||||
@@ -1334,7 +1334,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Uredi"
|
||||
|
||||
@@ -1393,7 +1393,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1603,11 +1603,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Samo greške"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernote datoteka za prenos (kao HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernote datoteka za prenos (kao Markdown)"
|
||||
|
||||
@@ -1779,7 +1779,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Opće"
|
||||
|
||||
@@ -1814,7 +1814,7 @@ msgstr ""
|
||||
"tada će biti prikazana vrijednost [name]. Ako ni [name] ni [value] nisu "
|
||||
"precizirane, prikazat će se trenutna konfiguracija."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Idi do izvornog URL-a"
|
||||
|
||||
@@ -1832,7 +1832,7 @@ msgstr "Token za ovjeru:"
|
||||
msgid "Heading"
|
||||
msgstr "Naslov"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "Pomoć"
|
||||
@@ -1854,8 +1854,8 @@ msgstr "O Joplinu"
|
||||
msgid "Highlight"
|
||||
msgstr "Oznaci"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1863,12 +1863,12 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Vodoravna linija"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
#, fuzzy
|
||||
msgid "HTML Directory"
|
||||
msgstr "HTML direktorij"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
#, fuzzy
|
||||
msgid "HTML File"
|
||||
msgstr "HTML datoteka"
|
||||
@@ -1947,7 +1947,7 @@ msgstr ""
|
||||
"$b` trenutno označene bilješke ili bilježnice. `$c` se može koristiti za "
|
||||
"trenutno označenu stavku."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2093,8 +2093,8 @@ msgstr "Kurziv"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Stavka \"%s\" nije mogla biti preuzeta: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2127,13 +2127,13 @@ msgstr "Joplin internet stranica"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Unesite glavnu lozinku:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Joplin direktorij za prenos"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Joplin datoteka za prenos"
|
||||
|
||||
@@ -2232,7 +2232,7 @@ msgstr "Zadnja greška: %s"
|
||||
msgid "Later"
|
||||
msgstr "Poslije"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Prikaz"
|
||||
|
||||
@@ -2269,7 +2269,7 @@ msgstr[0] "Veza je kopirana u spremnik!"
|
||||
msgstr[1] "Veze su kopirane u spremnik!"
|
||||
msgstr[2] "Veze su kopirano u spremnik!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Veze sa protokolom \"%s\" nisu podržane"
|
||||
|
||||
@@ -2300,7 +2300,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Radni dnevnik"
|
||||
|
||||
@@ -2320,11 +2320,11 @@ msgstr "Prijavite se preko Dropboxa"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Prijavite se preko OneDrivea"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2364,13 +2364,13 @@ msgid "Manual"
|
||||
msgstr "Ručno"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2528,7 +2528,7 @@ msgid "no"
|
||||
msgstr "Ne"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Ne"
|
||||
@@ -2537,7 +2537,7 @@ msgstr "Ne"
|
||||
msgid "No active notebook."
|
||||
msgstr "Nema aktivne bilježnice."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Nema stavke čiji je ID %s"
|
||||
|
||||
@@ -2852,7 +2852,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Lozinke se ne podudaraju!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Zalijepi"
|
||||
@@ -2866,7 +2866,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "PDF datoteka"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
#, fuzzy
|
||||
msgid "Permission needed"
|
||||
msgstr "Dozvola za korištenje kamere"
|
||||
@@ -2925,7 +2925,7 @@ msgstr "Prvo odaberite bilješku ili bilježnicu koju želite izbrisati."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Navedite gdje će biti pohranjen status sinhronizacije"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Precizirajte format za %s"
|
||||
|
||||
@@ -3041,7 +3041,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Verzija profila: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Svojstva"
|
||||
|
||||
@@ -3268,7 +3268,7 @@ msgstr "Memoriši zvučnu napomenu"
|
||||
msgid "Save as..."
|
||||
msgstr "Pohrani kao..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Pohrani izmjene"
|
||||
|
||||
@@ -3345,7 +3345,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Server je u funkciji preko porta %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Podesi zvučnu napomenu"
|
||||
@@ -3378,7 +3378,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Podijeli"
|
||||
|
||||
@@ -3752,18 +3752,18 @@ msgstr "Označeno: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Oznake"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Uslikaj"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3871,7 +3871,7 @@ msgstr ""
|
||||
"preporučuje se njihova nadogradnja. Nadograđeni glavni ključ i dalje će "
|
||||
"dešifrirati i šifrirati podatke kao i ranije."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "Mobilna Joplin aplikacija trenutno ne podržava ovu vrstu veze: %s"
|
||||
|
||||
@@ -4041,7 +4041,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Prilog nije preuzet ili još nije dešifrovan"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "Prilog nije preuzet ili još nije dešifrovan."
|
||||
|
||||
@@ -4068,11 +4068,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Ova bilješka ne sadržava informacije o geografskoj lokaciji."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Ova je bilješka izmijenjena:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4329,7 +4329,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Nepodržana vrsta slike: %s"
|
||||
|
||||
@@ -4388,7 +4388,7 @@ msgstr "Ažurirano: %s"
|
||||
msgid "Updated: %d."
|
||||
msgstr "Ažurirano: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Ažurirano: %s"
|
||||
|
||||
@@ -4460,13 +4460,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4480,7 +4480,7 @@ msgstr "Nevažeći odgovor: %s"
|
||||
msgid "View"
|
||||
msgstr "Prikaz"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Vidi na karti"
|
||||
|
||||
@@ -4577,12 +4577,12 @@ msgid "yes"
|
||||
msgstr "Da"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Da"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -249,7 +249,7 @@ msgstr "Aktivní"
|
||||
msgid "Actual Size"
|
||||
msgstr "Skutečná velikost"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Přidat tělo"
|
||||
|
||||
@@ -261,7 +261,7 @@ msgstr "Přidat či odebrat štítky:"
|
||||
msgid "Add recipient:"
|
||||
msgstr "Přidat příjemce:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Přidejte nadpis"
|
||||
|
||||
@@ -269,8 +269,8 @@ msgstr "Přidejte nadpis"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "Přidat do slovníku"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -337,15 +337,15 @@ msgstr "Aritim Dark"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Přiložit soubor"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Přiložit obrázek"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Přiložit..."
|
||||
|
||||
@@ -457,8 +457,8 @@ msgstr "Seznam s odrážkami"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -514,8 +514,8 @@ msgstr "Poznámku \"%s\" nelze zkopírovat do zápisníku"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Výraz \"%s\" nebyl nalezen."
|
||||
|
||||
@@ -523,11 +523,11 @@ msgstr "Výraz \"%s\" nebyl nalezen."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Nelze inicializovat synchronizátor."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "Nelze načíst modul \"%s\" pro formát \"%s\" a výstup \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "Nelze načíst modul \"%s\" pro formát \"%s\" a cíl \"%s\""
|
||||
|
||||
@@ -606,7 +606,7 @@ msgstr "Zaškrtávací pole"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Probíhá kontrola... Počkejte prosím."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Zvolit možnost"
|
||||
|
||||
@@ -756,17 +756,17 @@ msgstr "Přílohy poznámky"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Nastavení poznámek"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Konvertovat na poznámku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Převést na úkolexpr"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopírovat"
|
||||
@@ -792,7 +792,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Kopírovat adresu odkazu"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Vytvořit Markdown odkaz"
|
||||
|
||||
@@ -914,7 +914,7 @@ msgid "Created: %d."
|
||||
msgstr "Vytvořeno: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Vytvořeno: %s"
|
||||
|
||||
@@ -963,7 +963,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Vlastní TLS certifikát"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Vyjmout"
|
||||
@@ -972,7 +972,7 @@ msgstr "Vyjmout"
|
||||
msgid "Dark"
|
||||
msgstr "Tmavý"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1021,7 +1021,7 @@ msgstr "Výchozí: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Smazat"
|
||||
@@ -1053,7 +1053,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Smazat poznámku \"%s\"?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Smazat poznámku?"
|
||||
|
||||
@@ -1166,7 +1166,7 @@ msgstr ""
|
||||
"Vypnutí šifrování znamená, že *všechny* vaše poznámky a přílohy budou "
|
||||
"synchronizovány na cílové úložiště nešifrované. Přejete si pokračovat?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Zahodit změny"
|
||||
|
||||
@@ -1305,7 +1305,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Upravit"
|
||||
|
||||
@@ -1362,7 +1362,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1565,11 +1565,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Pouze chyby"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Soubor exportu Evernote (jako HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Soubor exportu Evernote (jako Markdown)"
|
||||
|
||||
@@ -1737,7 +1737,7 @@ msgid "Full changelog"
|
||||
msgstr "Úplný seznam změn"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Obecná nastavení"
|
||||
|
||||
@@ -1771,7 +1771,7 @@ msgstr ""
|
||||
"zobrazí hodnotu položky [jméno]. Pokud není specifikována [hodnota] ani "
|
||||
"[jméno], je zobrazena současná konfigurace."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Jít na zdrojovou URL"
|
||||
|
||||
@@ -1789,7 +1789,7 @@ msgstr "Autorizační token:"
|
||||
msgid "Heading"
|
||||
msgstr "Nadpis"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "Nápověda"
|
||||
|
||||
@@ -1809,8 +1809,8 @@ msgstr "Skrýt Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr "Zvýraznění"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1818,11 +1818,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Horizontální čára"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "HTML adresář"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "HTML soubor"
|
||||
|
||||
@@ -1897,7 +1897,7 @@ msgstr ""
|
||||
"ID, nebo zkratkami `$n` a `$b` pro nyní vybranou poznámku či zápisník. `$c` "
|
||||
"odkazuje na současně vybranou položku."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2039,8 +2039,8 @@ msgstr "Kurzíva"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Soubor \"%s\" se nepodařilo stáhnout: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2070,13 +2070,13 @@ msgstr "E-mailová adresa Joplin cloudu"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Heslo Joplin cloudu"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Složka pro export"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Soubor Joplin Export"
|
||||
|
||||
@@ -2170,7 +2170,7 @@ msgstr "Poslední chyba: %s"
|
||||
msgid "Later"
|
||||
msgstr "Později"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Rozložení"
|
||||
|
||||
@@ -2206,7 +2206,7 @@ msgstr[0] "Odkaz byl zkopírován do schránky!"
|
||||
msgstr[1] "Odkazy byly zkopírovány do schránky!"
|
||||
msgstr[2] "Odkazy byly zkopírovány do schránky!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Odkazy s protokolem \"%s\" nejsou podporovány"
|
||||
|
||||
@@ -2236,7 +2236,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
@@ -2256,11 +2256,11 @@ msgstr "Přihlášení Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Přihlásit se pomocí OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2299,13 +2299,13 @@ msgid "Manual"
|
||||
msgstr "Ručně"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2458,7 +2458,7 @@ msgid "no"
|
||||
msgstr "nekompatibilní"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Ne"
|
||||
@@ -2467,7 +2467,7 @@ msgstr "Ne"
|
||||
msgid "No active notebook."
|
||||
msgstr "Není vybrán žádný zápisník."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Nenalezena položka s ID %s"
|
||||
|
||||
@@ -2764,7 +2764,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Hesla se neshodují!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Vložit"
|
||||
@@ -2778,7 +2778,7 @@ msgstr "Cesta:"
|
||||
msgid "PDF File"
|
||||
msgstr "PDF soubor"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "Vyžadováno oprávnění"
|
||||
|
||||
@@ -2834,7 +2834,7 @@ msgstr "Nejprve prosím vyberte poznámku či zápisník ke smazání."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Prosím vyberte, kam má být stav synchronizace exportován"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Prosím specifikujte formát pro import %s"
|
||||
|
||||
@@ -2948,7 +2948,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Verze profilu: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Nastavení"
|
||||
|
||||
@@ -3177,7 +3177,7 @@ msgstr "Nastavit alarm"
|
||||
msgid "Save as..."
|
||||
msgstr "Uložit jako..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Uložit změny"
|
||||
|
||||
@@ -3252,7 +3252,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Server je spuštěný na portu %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Nastavit alarm"
|
||||
@@ -3285,7 +3285,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Sdílet"
|
||||
|
||||
@@ -3648,18 +3648,18 @@ msgstr "Označeno pomocí štítků: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Štítky"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Přiložit foto"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3763,7 +3763,7 @@ msgstr ""
|
||||
"doporučeno je upgradovat. Upgradovaný hlavní klíč bude i nadále schopen "
|
||||
"dešifrovat a zašifrovat vaše data jako obvykle."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "Mobilní aplikace Joplin aktuálně nepodporuje tento typ odkazu: %s"
|
||||
|
||||
@@ -3936,7 +3936,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Tato příloha ještě není stažena nebo dešifrována"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "Tato příloha není ještě stažena nebo dešifrována."
|
||||
|
||||
@@ -3963,11 +3963,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Tato poznámka nemá informace o zeměpisné poloze."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Poznámka byla upravena:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4221,7 +4221,7 @@ msgstr ""
|
||||
"Opravdu chcete přestat sdílet tento zápisník? Příjemci už pak nebudou mít "
|
||||
"přístup k jeho obsahu."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Nepodporovaný formát obrázku: %s"
|
||||
|
||||
@@ -4279,7 +4279,7 @@ msgstr "Upraveno: %s"
|
||||
msgid "Updated: %d."
|
||||
msgstr "Upraveno: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Upraveno: %s"
|
||||
|
||||
@@ -4358,13 +4358,13 @@ msgstr ""
|
||||
"nebude nalezeno, bude použito obecné neproporcionální písmo s jednotnou "
|
||||
"šířkou znaků."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4377,7 +4377,7 @@ msgstr "Neplatné"
|
||||
msgid "View"
|
||||
msgstr "Zobrazit"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Zobrazit na map+"
|
||||
|
||||
@@ -4472,12 +4472,12 @@ msgid "yes"
|
||||
msgstr "kompatibilní"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Ano"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -13,10 +13,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Generator: Poedit 2.4.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:565
|
||||
msgid "- Camera: to allow taking a picture and attaching it to a note."
|
||||
@@ -245,7 +243,7 @@ msgstr "Aktiv"
|
||||
msgid "Actual Size"
|
||||
msgstr "Faktisk størrelse"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Tilføj brødtekst"
|
||||
|
||||
@@ -257,7 +255,7 @@ msgstr "Tilføj eller fjern etiketter:"
|
||||
msgid "Add recipient:"
|
||||
msgstr "Tilføj modtager:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Tilføj titel"
|
||||
|
||||
@@ -265,8 +263,8 @@ msgstr "Tilføj titel"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "Tilføj til ordbog"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
@@ -332,15 +330,15 @@ msgstr "Aritim Mørk"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Vedhæft fil"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Vedhæft foto"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Vedhæft..."
|
||||
|
||||
@@ -397,7 +395,7 @@ msgstr "Auto"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:39
|
||||
msgid "Auto-add disabled accounts for deletion"
|
||||
msgstr "Føj automatisk deaktiverede konti til sletning"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:855
|
||||
msgid "Auto-pair braces, parenthesis, quotations, etc."
|
||||
@@ -451,8 +449,8 @@ msgstr "Punktliste"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -508,8 +506,8 @@ msgstr "Kan ikke kopiere note til \"%s\" notesbog"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Kan ikke finde \"%s\"."
|
||||
|
||||
@@ -517,11 +515,11 @@ msgstr "Kan ikke finde \"%s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Kan ikke starte synkroniseringen."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "Kan ikke indlæse \"%s\" modul til format \"%s\" og output \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "Kan ikke indlæse \"%s\" modul til format \"%s\" og mål \"%s\""
|
||||
|
||||
@@ -602,7 +600,7 @@ msgstr "Afkrydsningsliste"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Tjekker... Vent venligst."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Vælg en mulighed"
|
||||
|
||||
@@ -711,7 +709,7 @@ msgstr "Fuldført: %s (%s)"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:37
|
||||
msgid "Compress old changes"
|
||||
msgstr "Komprimér gamle ændringer"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:637
|
||||
#: packages/app-mobile/components/side-menu-content.js:332
|
||||
@@ -747,17 +745,17 @@ msgstr "Konflikter (vedhæftninger)"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Indhold leveret af %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Konverter til note"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Konverter til opgave"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopier"
|
||||
@@ -781,7 +779,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Kopier linkadresse"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Kopier markdown link"
|
||||
|
||||
@@ -905,7 +903,7 @@ msgid "Created: %d."
|
||||
msgstr "Oprettet: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Oprettet: %s"
|
||||
|
||||
@@ -954,7 +952,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Brugerdefinerede TLS certifikater"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Klip"
|
||||
@@ -963,7 +961,7 @@ msgstr "Klip"
|
||||
msgid "Dark"
|
||||
msgstr "Mørkt"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr "Kontrolpanel"
|
||||
|
||||
@@ -1012,7 +1010,7 @@ msgstr "Standard: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Slet"
|
||||
@@ -1022,12 +1020,14 @@ msgid "Delete attachment \"%s\"?"
|
||||
msgstr "Slet venhæftning \"%s\"?"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:36
|
||||
#, fuzzy
|
||||
msgid "Delete expired sessions"
|
||||
msgstr "Slet udløbne sessioner"
|
||||
msgstr "Slå matematiske udtryk til"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:31
|
||||
#, fuzzy
|
||||
msgid "Delete expired tokens"
|
||||
msgstr "Slet udløbne tokens"
|
||||
msgstr "Slet disse %d noter?"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:88
|
||||
msgid "Delete line"
|
||||
@@ -1042,7 +1042,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Slet noten \"%s\"?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Slet note?"
|
||||
|
||||
@@ -1154,7 +1154,7 @@ msgstr ""
|
||||
"Slås kryptering fra vil *alle* dine noter og vedhæftninger blive re-"
|
||||
"synkroniseret og sendt ukrypteret til synk-modtageren. Vil du fortsætte?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Kassér ændringer"
|
||||
|
||||
@@ -1291,7 +1291,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Redigér"
|
||||
|
||||
@@ -1345,12 +1345,12 @@ msgstr "Emacs"
|
||||
#: packages/app-desktop/gui/SyncWizard/Dialog.tsx:236
|
||||
#: packages/server/src/routes/admin/emails.ts:128
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr "E-mails"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:194
|
||||
msgid "emphasised text"
|
||||
@@ -1547,11 +1547,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Kun fejl"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernote eksport fil (i HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernote eksport fil (i Markdown)"
|
||||
|
||||
@@ -1720,7 +1720,7 @@ msgid "Full changelog"
|
||||
msgstr "Komplet ændringslog"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Generelt"
|
||||
|
||||
@@ -1753,7 +1753,7 @@ msgstr ""
|
||||
"aktuel konfiguration."
|
||||
|
||||
# Kilde-URL er en dårlig oversættelse
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Gå til kilde-URL"
|
||||
|
||||
@@ -1770,7 +1770,7 @@ msgstr "Giv tilladelse"
|
||||
msgid "Heading"
|
||||
msgstr "Overskrift"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "Hjælp"
|
||||
|
||||
@@ -1790,8 +1790,8 @@ msgstr "Skjul Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr "Fremhæv"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr "Hjem"
|
||||
|
||||
@@ -1799,11 +1799,11 @@ msgstr "Hjem"
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Vandret linje"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "HTML Indeks"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "HTML fil"
|
||||
|
||||
@@ -1837,7 +1837,7 @@ msgstr "Ignorer TLS certifikat-fejl"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:102
|
||||
msgid "Images"
|
||||
msgstr "Billeder"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.tsx:170
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:484
|
||||
@@ -1878,7 +1878,7 @@ msgstr ""
|
||||
"eller ved at bruge links `$n` eller `$b` for valgte noter eller notesbøger. `"
|
||||
"$c` kan bruges som reference til aktuel/valgt emne."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2019,8 +2019,8 @@ msgstr "Kursiv"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Emnet \"%s\" kunne ikke downloades: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr "Emner"
|
||||
|
||||
@@ -2052,13 +2052,13 @@ msgstr "Joplin Cloud e-mail"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Joplin Cloud-adgangskode"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Joplin eksport mappe"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Joplin eksport fil"
|
||||
|
||||
@@ -2153,7 +2153,7 @@ msgstr "Sidste fejl: %s"
|
||||
msgid "Later"
|
||||
msgstr "Senere"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Layout"
|
||||
|
||||
@@ -2187,7 +2187,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "Link er kopieret til udklipsholder!"
|
||||
msgstr[1] "Links er kopieret til udklipsholder!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Links med \"%s\" protokollen er ikke understøttede"
|
||||
|
||||
@@ -2216,7 +2216,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
@@ -2236,11 +2236,11 @@ msgstr "Log på med Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Log på med OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr "Log ud"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr "Logfiler"
|
||||
|
||||
@@ -2276,13 +2276,13 @@ msgid "Manual"
|
||||
msgstr "Manuel"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr "Markdown + Front Matter"
|
||||
|
||||
@@ -2431,7 +2431,7 @@ msgid "no"
|
||||
msgstr "nej"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Nej"
|
||||
@@ -2440,7 +2440,7 @@ msgstr "Nej"
|
||||
msgid "No active notebook."
|
||||
msgstr "Ingen aktiv notesbog."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Intet emne med ID'en %s"
|
||||
|
||||
@@ -2703,8 +2703,9 @@ msgid "Or create an account."
|
||||
msgstr "Eller opret en konto."
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:352
|
||||
#, fuzzy
|
||||
msgid "Other applications..."
|
||||
msgstr "Andre applikationer..."
|
||||
msgstr "Lukker programmet."
|
||||
|
||||
#: packages/app-cli/app/command-import.js:27
|
||||
msgid "Output format: %s"
|
||||
@@ -2738,7 +2739,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Adgangskoder stemmer ikke overens!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Indsæt"
|
||||
@@ -2752,7 +2753,7 @@ msgstr "Sti:"
|
||||
msgid "PDF File"
|
||||
msgstr "PDF-fil"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "Tilladelse nødvendig"
|
||||
|
||||
@@ -2810,7 +2811,7 @@ msgstr "Vælg først noten eller notesbogen der skal slettes."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Vælg hvor synk-status skal eksporteres til"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Specificer import format for %s"
|
||||
|
||||
@@ -2906,15 +2907,16 @@ msgstr "Privatlivspolitik"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:35
|
||||
msgid "Process failed payment subscriptions"
|
||||
msgstr "Behandl mislykkede betalingsabonnementer"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:33
|
||||
msgid "Process oversized accounts"
|
||||
msgstr "Behandl for store konti"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:38
|
||||
#, fuzzy
|
||||
msgid "Process user deletions"
|
||||
msgstr "Behandl brugersletninger"
|
||||
msgstr "Brugersletninger"
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:168
|
||||
msgid "Profile"
|
||||
@@ -2924,7 +2926,7 @@ msgstr "Profil"
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Profil-version: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Egenskaber"
|
||||
|
||||
@@ -3146,7 +3148,7 @@ msgstr "Gem alarm"
|
||||
msgid "Save as..."
|
||||
msgstr "Gem som..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Gem ændringer"
|
||||
|
||||
@@ -3197,12 +3199,14 @@ msgid "Select all"
|
||||
msgstr "Vælg alt"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:140
|
||||
#, fuzzy
|
||||
msgid "Select emoji..."
|
||||
msgstr "Vælg emoji..."
|
||||
msgstr "Vælg dato"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:144
|
||||
#, fuzzy
|
||||
msgid "Select file..."
|
||||
msgstr "Vælg fil..."
|
||||
msgstr "Vælg alt"
|
||||
|
||||
#: packages/app-cli/app/command-server.js:38
|
||||
msgid "Server is already running on port %d"
|
||||
@@ -3218,7 +3222,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Serveren kører på port %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Indstil alarm"
|
||||
@@ -3253,7 +3257,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Del"
|
||||
|
||||
@@ -3608,18 +3612,18 @@ msgstr "Etiketterede: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Etiketter"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Tag et foto"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr "Opgaver"
|
||||
|
||||
@@ -3724,7 +3728,7 @@ msgstr ""
|
||||
"opgradere dem. Den opgraderet nøgler vil stadig kunne dekryptere og kryptere "
|
||||
"dine data som normalt."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
"Joplin mobil-app'en understøtter på nuværende tidspunkt ikke denne type "
|
||||
@@ -3906,7 +3910,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Denne vedhæftning er ikke downloadet eller ikke dekrypteret endnu"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
"Denne vedhæftning er ikke downloadet eller er ikke blevet dekrypteret endnu."
|
||||
@@ -3934,11 +3938,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Denne note har ingen geolokationsoplysninger."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Denne note er blevet ændret:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4189,7 +4193,7 @@ msgstr ""
|
||||
"Del ikke længere denne notesbog? Modtagerne vil ikke længere have adgang til "
|
||||
"dens indhold."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Ikke-understøttet billedtype: %s"
|
||||
|
||||
@@ -4214,8 +4218,9 @@ msgid "Update profile"
|
||||
msgstr "Opdater profil"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:32
|
||||
#, fuzzy
|
||||
msgid "Update total sizes"
|
||||
msgstr "Opdater samlede størrelser"
|
||||
msgstr "Opdaterede lokale emner: %d."
|
||||
|
||||
#: packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginBox.tsx:208
|
||||
#: packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginBox.tsx:209
|
||||
@@ -4244,7 +4249,7 @@ msgstr "Opdateret: "
|
||||
msgid "Updated: %d."
|
||||
msgstr "Opdateret %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Opdateret: %s"
|
||||
|
||||
@@ -4321,13 +4326,13 @@ msgstr ""
|
||||
"eks. tabeller, afkrydsningsfelter, kode). Hvis ikke fundet, bruges en "
|
||||
"generisk monospatieret (fast bredde) font."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr "Brugersletninger"
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr "Brugere"
|
||||
|
||||
@@ -4339,7 +4344,7 @@ msgstr "Gyldig"
|
||||
msgid "View"
|
||||
msgstr "Vis"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Vis på kort"
|
||||
|
||||
@@ -4437,12 +4442,12 @@ msgid "yes"
|
||||
msgstr "ja"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
@@ -4567,9 +4572,11 @@ msgstr "Zoom ud"
|
||||
#~ msgid "Delete these notes?"
|
||||
#~ msgstr "Slet disse noter?"
|
||||
|
||||
#, javascript-format
|
||||
#~ msgid "Encryption will be enabled using the master key created on %s"
|
||||
#~ msgstr "Kryptering vil aktiveres med hovednøglen oprettet den %s"
|
||||
|
||||
#, javascript-format
|
||||
#~ msgid "%s %s (%s)"
|
||||
#~ msgstr "%s %s (%s)"
|
||||
|
||||
|
||||
@@ -244,7 +244,7 @@ msgstr "Aktiv"
|
||||
msgid "Actual Size"
|
||||
msgstr "Aktuelle Größe"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Text hinzufügen"
|
||||
|
||||
@@ -256,7 +256,7 @@ msgstr "Schlagwörter hinzufügen oder entfernen:"
|
||||
msgid "Add recipient:"
|
||||
msgstr "Füge Empfänger hinzu:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Titel hinzufügen"
|
||||
|
||||
@@ -264,8 +264,8 @@ msgstr "Titel hinzufügen"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "Zum Wörterbuch hinzufügen"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
@@ -336,15 +336,15 @@ msgstr "Aritim dunkel"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Datei anhängen"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Foto anhängen"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Anhängen ..."
|
||||
|
||||
@@ -464,8 +464,8 @@ msgstr "Aufzählung"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -521,8 +521,8 @@ msgstr "Kann Notiz nicht in das Notizbuch „%s“ kopieren"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Kann „%s“ nicht finden."
|
||||
|
||||
@@ -530,13 +530,13 @@ msgstr "Kann „%s“ nicht finden."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Kann Synchronisierer nicht initialisieren."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
"Das Modul „%s“ für das Format „%s“ und die Ausgabe „%s“ kann nicht geladen "
|
||||
"werden"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
"Das Modul „%s“ für das Format „%s“ und die Ausgabe „%s“ kann nicht geladen "
|
||||
@@ -619,7 +619,7 @@ msgstr "Liste mit Kontrollkästchen"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Wird überprüft … Bitte warten."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Wähle eine Option"
|
||||
|
||||
@@ -765,17 +765,17 @@ msgstr "Konflikte (Anhänge)"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Von %s bereitgestellte Inhalte"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "In eine Notiz umwandeln"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "In eine Aufgabe umwandeln"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
@@ -799,7 +799,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Link-Adresse kopieren"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Markdown-Link kopieren"
|
||||
|
||||
@@ -924,7 +924,7 @@ msgid "Created: %d."
|
||||
msgstr "Erstellt: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Erstellt: %s"
|
||||
|
||||
@@ -974,7 +974,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Benutzerdefinierte TLS-Zertifikate"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Ausschneiden"
|
||||
@@ -983,7 +983,7 @@ msgstr "Ausschneiden"
|
||||
msgid "Dark"
|
||||
msgstr "Dunkel"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr "Übersichtsseite"
|
||||
|
||||
@@ -1032,7 +1032,7 @@ msgstr "Standard: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
@@ -1062,7 +1062,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Notiz „%s“ löschen?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Notiz löschen?"
|
||||
|
||||
@@ -1176,7 +1176,7 @@ msgstr ""
|
||||
"Anhänge neu synchronisiert und unverschlüsselt an das Synchronisationsziel "
|
||||
"gesendet. Möchtest du fortfahren?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Änderungen verwerfen"
|
||||
|
||||
@@ -1318,7 +1318,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
@@ -1375,7 +1375,7 @@ msgid "Email"
|
||||
msgstr "E-Mail"
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr "E-Mails"
|
||||
|
||||
@@ -1574,11 +1574,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Nur Fehler"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernote Export-Datei (als HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernote Export-Datei (als Markdown)"
|
||||
|
||||
@@ -1751,7 +1751,7 @@ msgid "Full changelog"
|
||||
msgstr "Komplettes Änderungsprotokoll"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Allgemeines"
|
||||
|
||||
@@ -1783,7 +1783,7 @@ msgstr ""
|
||||
"ist, wird der Wert von [name] angezeigt. Wenn weder [name] noch [value] "
|
||||
"angegeben sind, wird die aktuelle Konfiguration aufgelistet."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Zur Quell-URL gehen"
|
||||
|
||||
@@ -1800,7 +1800,7 @@ msgstr "Genehmigung erteilen"
|
||||
msgid "Heading"
|
||||
msgstr "Überschrift"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
@@ -1820,8 +1820,8 @@ msgstr "Joplin ausblenden"
|
||||
msgid "Highlight"
|
||||
msgstr "Hervorheben"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr "Startseite"
|
||||
|
||||
@@ -1829,11 +1829,11 @@ msgstr "Startseite"
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Horizontale Linie"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "HTML-Verzeichnis"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "HTML-Datei"
|
||||
|
||||
@@ -1910,7 +1910,7 @@ msgstr ""
|
||||
"aktuelle Notiz bzw. das aktuelle Notizbuch. `$c` kann benutzt werden, um auf "
|
||||
"die momentane Auswahl zu verweisen."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2051,8 +2051,8 @@ msgstr "Kursiv"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Element „%s“ konnte nicht heruntergeladen werden: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr "Elemente"
|
||||
|
||||
@@ -2084,13 +2084,13 @@ msgstr "Joplin Cloud E-Mail"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Joplin Server Passwort"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Joplin Export-Verzeichnis"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Joplin Export-Datei"
|
||||
|
||||
@@ -2187,7 +2187,7 @@ msgstr "Letzte Fehlermeldung: %s"
|
||||
msgid "Later"
|
||||
msgstr "Später"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Layout"
|
||||
|
||||
@@ -2221,7 +2221,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "Der Link wurde in die Zwischenablage kopiert!"
|
||||
msgstr[1] "Die Links wurden in die Zwischenablage kopiert!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Links mit dem Protokoll „%s“ werden nicht unterstützt"
|
||||
|
||||
@@ -2252,7 +2252,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Protokoll"
|
||||
|
||||
@@ -2272,11 +2272,11 @@ msgstr "Mit Dropbox anmelden"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Mit OneDrive anmelden"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr "Protokolle"
|
||||
|
||||
@@ -2311,13 +2311,13 @@ msgid "Manual"
|
||||
msgstr "Manuell"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr "Markdown + Front Matter"
|
||||
|
||||
@@ -2469,7 +2469,7 @@ msgid "no"
|
||||
msgstr "Nein"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
@@ -2478,7 +2478,7 @@ msgstr "Nein"
|
||||
msgid "No active notebook."
|
||||
msgstr "Kein aktives Notizbuch."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Kein Element mit ID %s"
|
||||
|
||||
@@ -2781,7 +2781,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Passwörter sind nicht identisch!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Einfügen"
|
||||
@@ -2795,7 +2795,7 @@ msgstr "Pfad:"
|
||||
msgid "PDF File"
|
||||
msgstr "PDF-Datei"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "Berechtigung benötigt"
|
||||
|
||||
@@ -2858,7 +2858,7 @@ msgid "Please select where the sync status should be exported to"
|
||||
msgstr ""
|
||||
"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Bitte das Importformat für %s angeben"
|
||||
|
||||
@@ -2980,7 +2980,7 @@ msgstr "Profil"
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Profil-Version: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Eigenschaften"
|
||||
|
||||
@@ -3203,7 +3203,7 @@ msgstr "Alarm speichern"
|
||||
msgid "Save as..."
|
||||
msgstr "Speichern unter ..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
@@ -3277,7 +3277,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Server läuft auf Port %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Alarm erstellen"
|
||||
@@ -3312,7 +3312,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Teilen"
|
||||
|
||||
@@ -3679,18 +3679,18 @@ msgstr "Verschlagwortet: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Schlagwörter"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Foto aufnehmen"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr "Aufgaben"
|
||||
|
||||
@@ -3804,7 +3804,7 @@ msgstr ""
|
||||
"aktualisierte Schlüssel wird deine Daten weiterhin wie gewohnt entschlüsseln "
|
||||
"und verschlüsseln können."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "Die Joplin Handy-App unterstützt derzeit diese Art von Link nicht: %s"
|
||||
|
||||
@@ -3997,7 +3997,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Dieser Anhang wurde noch nicht heruntergeladen oder entschlüsselt"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
"Dieser Anhang wurde nicht heruntergeladen oder noch nicht entschlüsselt."
|
||||
@@ -4025,11 +4025,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Diese Notiz hat keine Standort-Informationen."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Diese Notiz wurde verändert:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4286,7 +4286,7 @@ msgstr ""
|
||||
"Teilen des Notizbuch beenden? Der Empfänger wird keinen Zugriff mehr auf den "
|
||||
"Inhalt haben."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Nicht unterstütztes Fotoformat: %s"
|
||||
|
||||
@@ -4341,7 +4341,7 @@ msgstr "Aktualisiert: "
|
||||
msgid "Updated: %d."
|
||||
msgstr "Aktualisiert: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Aktualisiert: %s"
|
||||
|
||||
@@ -4419,13 +4419,13 @@ msgstr ""
|
||||
"Tabellen, Kontrollkästchen, Code). Falls nicht vorhanden wird eine Monotype-"
|
||||
"Scrhiftart (mit fester Breite) verwendet."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr "Benutzer-Löschungen"
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
@@ -4437,7 +4437,7 @@ msgstr "Gültig"
|
||||
msgid "View"
|
||||
msgstr "Ansicht"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Auf der Karte anzeigen"
|
||||
|
||||
@@ -4535,12 +4535,12 @@ msgid "yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
|
||||
@@ -220,7 +220,7 @@ msgstr ""
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr ""
|
||||
|
||||
@@ -228,8 +228,8 @@ msgstr ""
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -295,15 +295,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr ""
|
||||
|
||||
@@ -408,8 +408,8 @@ msgstr ""
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -467,8 +467,8 @@ msgstr ""
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
@@ -476,11 +476,11 @@ msgstr ""
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
|
||||
@@ -546,7 +546,7 @@ msgstr ""
|
||||
msgid "Checking... Please wait."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr ""
|
||||
|
||||
@@ -678,17 +678,17 @@ msgstr ""
|
||||
msgid "Content provided by %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
@@ -712,7 +712,7 @@ msgid "Copy Link Address"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr ""
|
||||
|
||||
@@ -816,7 +816,7 @@ msgid "Created: %d."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -865,7 +865,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr ""
|
||||
@@ -874,7 +874,7 @@ msgstr ""
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -924,7 +924,7 @@ msgstr ""
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
@@ -954,7 +954,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr ""
|
||||
|
||||
@@ -1050,7 +1050,7 @@ msgstr ""
|
||||
msgid "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?"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr ""
|
||||
|
||||
@@ -1167,7 +1167,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@@ -1225,7 +1225,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1416,11 +1416,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr ""
|
||||
|
||||
@@ -1576,7 +1576,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
@@ -1602,7 +1602,7 @@ msgstr ""
|
||||
msgid "Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr ""
|
||||
|
||||
@@ -1619,7 +1619,7 @@ msgstr ""
|
||||
msgid "Heading"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -1639,8 +1639,8 @@ msgstr ""
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1648,11 +1648,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr ""
|
||||
|
||||
@@ -1715,7 +1715,7 @@ msgstr ""
|
||||
msgid "In any command, a note or notebook can be referred to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your permission to access your location.\n"
|
||||
"\n"
|
||||
@@ -1831,8 +1831,8 @@ msgstr ""
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -1860,13 +1860,13 @@ msgstr ""
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr ""
|
||||
|
||||
@@ -1947,7 +1947,7 @@ msgstr ""
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr ""
|
||||
|
||||
@@ -1981,7 +1981,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
|
||||
@@ -2005,7 +2005,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
|
||||
@@ -2025,11 +2025,11 @@ msgstr ""
|
||||
msgid "Login with OneDrive"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2060,13 +2060,13 @@ msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2215,7 +2215,7 @@ msgid "no"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172
|
||||
#: packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
@@ -2225,7 +2225,7 @@ msgstr ""
|
||||
msgid "No active notebook."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2509,7 +2509,7 @@ msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr ""
|
||||
@@ -2523,7 +2523,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr ""
|
||||
|
||||
@@ -2563,7 +2563,7 @@ msgstr ""
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2669,7 +2669,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
|
||||
@@ -2885,7 +2885,7 @@ msgstr ""
|
||||
msgid "Save as..."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr ""
|
||||
|
||||
@@ -2957,7 +2957,7 @@ msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr ""
|
||||
@@ -2983,7 +2983,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
@@ -3320,18 +3320,18 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3401,7 +3401,7 @@ msgstr ""
|
||||
msgid "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."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3522,7 +3522,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
|
||||
@@ -3539,11 +3539,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "This note has no content. Click on \"%s\" to toggle the editor and edit the note."
|
||||
msgstr ""
|
||||
|
||||
@@ -3741,7 +3741,7 @@ msgstr ""
|
||||
msgid "Unshare this notebook? The recipients will no longer have access to its content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3798,7 +3798,7 @@ msgstr ""
|
||||
msgid "Updated: %d."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3853,13 +3853,13 @@ msgstr ""
|
||||
msgid "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."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -3871,7 +3871,7 @@ msgstr ""
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr ""
|
||||
|
||||
@@ -3960,13 +3960,13 @@ msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172
|
||||
#: packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid "You are about to attach a large image (%dx%d pixels). Would you like to resize it down to %d pixels before attaching it?"
|
||||
msgstr ""
|
||||
|
||||
@@ -231,7 +231,7 @@ msgstr ""
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
|
||||
@@ -243,7 +243,7 @@ msgstr ""
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr ""
|
||||
|
||||
@@ -251,8 +251,8 @@ msgstr ""
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -318,15 +318,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr ""
|
||||
|
||||
@@ -434,8 +434,8 @@ msgstr ""
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -491,8 +491,8 @@ msgstr ""
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
@@ -500,11 +500,11 @@ msgstr ""
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Cannot initialize synchronizer."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
|
||||
@@ -579,7 +579,7 @@ msgstr ""
|
||||
msgid "Checking... Please wait."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr ""
|
||||
|
||||
@@ -721,17 +721,17 @@ msgstr ""
|
||||
msgid "Content provided by %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
@@ -755,7 +755,7 @@ msgid "Copy Link Address"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr ""
|
||||
|
||||
@@ -872,7 +872,7 @@ msgid "Created: %d."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -921,7 +921,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr ""
|
||||
@@ -930,7 +930,7 @@ msgstr ""
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -979,7 +979,7 @@ msgstr ""
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
@@ -1009,7 +1009,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr ""
|
||||
|
||||
@@ -1115,7 +1115,7 @@ msgstr ""
|
||||
"re-synchronized and sent unencrypted to the sync target. Do you wish to "
|
||||
"continue?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr ""
|
||||
|
||||
@@ -1245,7 +1245,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@@ -1302,7 +1302,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1499,11 +1499,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr ""
|
||||
|
||||
@@ -1664,7 +1664,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
@@ -1693,7 +1693,7 @@ msgid ""
|
||||
"current configuration."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr ""
|
||||
|
||||
@@ -1710,7 +1710,7 @@ msgstr "Grant authorization"
|
||||
msgid "Heading"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
@@ -1730,8 +1730,8 @@ msgstr ""
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1739,11 +1739,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr ""
|
||||
|
||||
@@ -1812,7 +1812,7 @@ msgid ""
|
||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -1949,8 +1949,8 @@ msgstr ""
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -1982,13 +1982,13 @@ msgstr ""
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr ""
|
||||
|
||||
@@ -2076,7 +2076,7 @@ msgstr ""
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr ""
|
||||
|
||||
@@ -2110,7 +2110,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
|
||||
@@ -2140,7 +2140,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
|
||||
@@ -2160,11 +2160,11 @@ msgstr ""
|
||||
msgid "Login with OneDrive"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2197,13 +2197,13 @@ msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2352,7 +2352,7 @@ msgid "no"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
@@ -2361,7 +2361,7 @@ msgstr ""
|
||||
msgid "No active notebook."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2649,7 +2649,7 @@ msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr ""
|
||||
@@ -2663,7 +2663,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr ""
|
||||
|
||||
@@ -2713,7 +2713,7 @@ msgstr ""
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2823,7 +2823,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
|
||||
@@ -3042,7 +3042,7 @@ msgstr ""
|
||||
msgid "Save as..."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr ""
|
||||
|
||||
@@ -3114,7 +3114,7 @@ msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr ""
|
||||
@@ -3143,7 +3143,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
@@ -3487,18 +3487,18 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3587,7 +3587,7 @@ msgid ""
|
||||
"and encrypt your data as usual."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3741,7 +3741,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
|
||||
@@ -3765,11 +3765,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -3996,7 +3996,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -4051,7 +4051,7 @@ msgstr ""
|
||||
msgid "Updated: %d."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -4115,13 +4115,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4133,7 +4133,7 @@ msgstr ""
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr ""
|
||||
|
||||
@@ -4221,12 +4221,12 @@ msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -236,7 +236,7 @@ msgstr "Aktiva"
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Aldoni korpon"
|
||||
|
||||
@@ -248,7 +248,7 @@ msgstr "Aldoni aŭ forigi etikedojn:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Aldoni titolon"
|
||||
|
||||
@@ -256,8 +256,8 @@ msgstr "Aldoni titolon"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -324,15 +324,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Aldoni dosieron"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Aldoni foton"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Aldoni..."
|
||||
|
||||
@@ -444,8 +444,8 @@ msgstr ""
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -502,8 +502,8 @@ msgstr ""
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Ne eblas trovi \"%s\"."
|
||||
|
||||
@@ -511,11 +511,11 @@ msgstr "Ne eblas trovi \"%s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
|
||||
@@ -591,7 +591,7 @@ msgstr "Markobutono"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Kontrolante... Atendu."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Elekti opcion"
|
||||
|
||||
@@ -738,17 +738,17 @@ msgstr "Aldoni dosieron"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Notaj atributoj"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Konverti al noto"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Konverti al tasko"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopii"
|
||||
@@ -774,7 +774,7 @@ msgid "Copy Link Address"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr ""
|
||||
|
||||
@@ -887,7 +887,7 @@ msgid "Created: %d."
|
||||
msgstr "Kreita: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Kreita: %s"
|
||||
|
||||
@@ -936,7 +936,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Eltondi"
|
||||
@@ -945,7 +945,7 @@ msgstr "Eltondi"
|
||||
msgid "Dark"
|
||||
msgstr "Malhela"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -995,7 +995,7 @@ msgstr "Defaŭlto: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Forigi"
|
||||
@@ -1028,7 +1028,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Forigi noton \"%s\"?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Ĉu forigi noton?"
|
||||
|
||||
@@ -1137,7 +1137,7 @@ msgid ""
|
||||
"continue?"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr ""
|
||||
|
||||
@@ -1268,7 +1268,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Redakti"
|
||||
|
||||
@@ -1326,7 +1326,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1527,11 +1527,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Nur eraroj"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr ""
|
||||
|
||||
@@ -1696,7 +1696,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Ĝenerala"
|
||||
|
||||
@@ -1727,7 +1727,7 @@ msgid ""
|
||||
"current configuration."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Iri al URL-fonto"
|
||||
|
||||
@@ -1744,7 +1744,7 @@ msgstr ""
|
||||
msgid "Heading"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "&Helpo"
|
||||
@@ -1766,8 +1766,8 @@ msgstr "Pri Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1775,12 +1775,12 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
#, fuzzy
|
||||
msgid "HTML Directory"
|
||||
msgstr "Dosierujo"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
#, fuzzy
|
||||
msgid "HTML File"
|
||||
msgstr "Dosiero"
|
||||
@@ -1850,7 +1850,7 @@ msgid ""
|
||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -1978,8 +1978,8 @@ msgstr "Kursiva"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2012,13 +2012,13 @@ msgstr "Joplin-retejo"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Entajpu ĉefan pasvorton:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr ""
|
||||
|
||||
@@ -2109,7 +2109,7 @@ msgstr "Lasta eraro: %s"
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Aspektigo"
|
||||
|
||||
@@ -2144,7 +2144,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
|
||||
@@ -2171,7 +2171,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Protokolo"
|
||||
|
||||
@@ -2191,11 +2191,11 @@ msgstr "Ensaluti per Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Ensaluti per OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2230,13 +2230,13 @@ msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2392,7 +2392,7 @@ msgid "no"
|
||||
msgstr "n"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Ne"
|
||||
@@ -2401,7 +2401,7 @@ msgstr "Ne"
|
||||
msgid "No active notebook."
|
||||
msgstr "Ne estas aktiva notlibro."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2705,7 +2705,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Pasvorto ne kongruas!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Alglui"
|
||||
@@ -2719,7 +2719,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "PDF-dosiero"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
#, fuzzy
|
||||
msgid "Permission needed"
|
||||
msgstr "Permeso por uzi kameraon"
|
||||
@@ -2771,7 +2771,7 @@ msgstr "Bonvolu elekti noton unue."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2885,7 +2885,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Nova versio: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Atributoj"
|
||||
|
||||
@@ -3111,7 +3111,7 @@ msgstr "Konservi alarmon"
|
||||
msgid "Save as..."
|
||||
msgstr "Konservi kiel..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Konservi la ŝanĝojn"
|
||||
|
||||
@@ -3187,7 +3187,7 @@ msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
#, fuzzy
|
||||
msgid "Set alarm"
|
||||
@@ -3217,7 +3217,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Konigi"
|
||||
|
||||
@@ -3573,18 +3573,18 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Etikedoj"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Foti"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3672,7 +3672,7 @@ msgid ""
|
||||
"and encrypt your data as usual."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3819,7 +3819,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
|
||||
@@ -3841,11 +3841,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Tiu noto estis ŝanĝita:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4081,7 +4081,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Nesubtenata bilda tipo: %s"
|
||||
|
||||
@@ -4141,7 +4141,7 @@ msgstr "Ĝisdatigita: %s"
|
||||
msgid "Updated: %d."
|
||||
msgstr "Ĝisdatigita: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Ĝisdatigita: %s"
|
||||
|
||||
@@ -4206,13 +4206,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4226,7 +4226,7 @@ msgstr "Malvalida respondo: %s"
|
||||
msgid "View"
|
||||
msgstr "&Monti"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Vidi en mapo"
|
||||
|
||||
@@ -4316,12 +4316,12 @@ msgid "yes"
|
||||
msgstr "Jes"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Jes"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -252,7 +252,7 @@ msgstr "Activa"
|
||||
msgid "Actual Size"
|
||||
msgstr "Tamaño Original"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Añadir cuerpo"
|
||||
|
||||
@@ -264,7 +264,7 @@ msgstr "Agregar o eliminar etiquetas:"
|
||||
msgid "Add recipient:"
|
||||
msgstr "Agregar destinatario:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Añadir título"
|
||||
|
||||
@@ -272,8 +272,8 @@ msgstr "Añadir título"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "Agregar al diccionario"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -341,15 +341,15 @@ msgstr "Aritim Oscuro"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Adjuntar archivo"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Adjuntar foto"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Adjuntar..."
|
||||
|
||||
@@ -462,8 +462,8 @@ msgstr "Lista con Viñetas"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -519,8 +519,8 @@ msgstr "No se ha podido copiar la nota a la libreta «%s»"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "No se puede encontrar «%s»."
|
||||
|
||||
@@ -528,12 +528,12 @@ msgstr "No se puede encontrar «%s»."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "No se puede inicializar el sincronizador."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
"No se puede cargar el módulo «%s» para el formato «%s» y el destino «%s»"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
"No se puede cargar el módulo «%s» para el formato «%s» y el objetivo «%s»"
|
||||
@@ -616,7 +616,7 @@ msgstr "Casillas"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Comprobando... Por favor espere."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Seleccione una opción"
|
||||
|
||||
@@ -761,17 +761,17 @@ msgstr "Conflictos (adjuntos)"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Contenido provisto por %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Convertir en nota"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Convertir a tarea"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Copiar"
|
||||
@@ -796,7 +796,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Copiar Enlace"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Copiar el enlace de Markdown"
|
||||
|
||||
@@ -921,7 +921,7 @@ msgid "Created: %d."
|
||||
msgstr "Creado: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Creado: %s"
|
||||
|
||||
@@ -970,7 +970,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Certificados TLS personalizados"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Cortar"
|
||||
@@ -979,7 +979,7 @@ msgstr "Cortar"
|
||||
msgid "Dark"
|
||||
msgstr "Oscuro"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1028,7 +1028,7 @@ msgstr "Por defecto: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Borrar"
|
||||
@@ -1062,7 +1062,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "¿Borrar nota «%s»?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "¿Borrar nota?"
|
||||
|
||||
@@ -1175,7 +1175,7 @@ msgstr ""
|
||||
"resincronizados y enviados descifrados al objetivo de sincronización. ¿Desea "
|
||||
"continuar?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Descartar cambios"
|
||||
|
||||
@@ -1312,7 +1312,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
@@ -1369,7 +1369,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1569,11 +1569,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Solo errores"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Exportar como Archivo de Ever(como HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Exportar como Archivo de Ever(como Markdown)"
|
||||
|
||||
@@ -1743,7 +1743,7 @@ msgid "Full changelog"
|
||||
msgstr "Registro de cambios completo"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
@@ -1775,7 +1775,7 @@ msgstr ""
|
||||
"valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la "
|
||||
"configuración actual."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Ir a URL de origen"
|
||||
|
||||
@@ -1792,7 +1792,7 @@ msgstr "Conceder la autorización"
|
||||
msgid "Heading"
|
||||
msgstr "Título"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
@@ -1812,8 +1812,8 @@ msgstr "Ocultar Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr "Resaltado"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr "Inicio"
|
||||
|
||||
@@ -1821,11 +1821,11 @@ msgstr "Inicio"
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Regla Horizontal"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "Directorio HTML"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "Archivo HTML"
|
||||
|
||||
@@ -1902,7 +1902,7 @@ msgstr ""
|
||||
"libreta seleccionada. Se puede utilizar `$c` para hacer referencia al "
|
||||
"elemento seleccionado."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2045,8 +2045,8 @@ msgstr "Cursiva"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "El elemento «%s» no se pudo descargar: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr "Elementos"
|
||||
|
||||
@@ -2078,13 +2078,13 @@ msgstr "Email de Joplin Cloud"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Contraseña de Joplin Cloud"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Directorio de Exportación de Joplin"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Archivo de Exportación de Joplin"
|
||||
|
||||
@@ -2180,7 +2180,7 @@ msgstr "Último error: %s"
|
||||
msgid "Later"
|
||||
msgstr "Luego"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Diseño"
|
||||
|
||||
@@ -2214,7 +2214,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "¡El enlace ha sido copiado al portapapeles!"
|
||||
msgstr[1] "¡Los enlaces han sido copiados al portapapeles!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Enlaces con el protocolo «%s» no están soportados"
|
||||
|
||||
@@ -2244,7 +2244,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Registro"
|
||||
|
||||
@@ -2264,11 +2264,11 @@ msgstr "Acceder con Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Acceder con OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr "Cerrar sesión"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2303,13 +2303,13 @@ msgid "Manual"
|
||||
msgstr "Manual"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr "Markdown + Front Matter"
|
||||
|
||||
@@ -2459,7 +2459,7 @@ msgid "no"
|
||||
msgstr "no"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "No"
|
||||
@@ -2468,7 +2468,7 @@ msgstr "No"
|
||||
msgid "No active notebook."
|
||||
msgstr "No hay libreta activa."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "No hay elementos con el ID %s"
|
||||
|
||||
@@ -2765,7 +2765,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "¡Las contraseñas no coinciden!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Pegar"
|
||||
@@ -2779,7 +2779,7 @@ msgstr "Ruta:"
|
||||
msgid "PDF File"
|
||||
msgstr "Archivo PDF"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "Se necesita permiso"
|
||||
|
||||
@@ -2840,7 +2840,7 @@ msgstr "Primero seleccione la nota o libreta que desea eliminar."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Seleccione a dónde se debería exportar el estado de sincronización"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Por favor especifique el formato de importación para %s"
|
||||
|
||||
@@ -2953,7 +2953,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Versión del Perfil: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Propiedades"
|
||||
|
||||
@@ -3181,7 +3181,7 @@ msgstr "Establecer alarma"
|
||||
msgid "Save as..."
|
||||
msgstr "Guardar como..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Guardar cambios"
|
||||
|
||||
@@ -3255,7 +3255,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "El servidor se está ejecutando en el puerto %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Establecer alarma"
|
||||
@@ -3290,7 +3290,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Compartir"
|
||||
|
||||
@@ -3656,18 +3656,18 @@ msgstr "Etiquetado: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Tomar una foto"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr "Tareas"
|
||||
|
||||
@@ -3779,7 +3779,7 @@ msgstr ""
|
||||
"recomienda actualizarlas. La clave actualizada todavía será capaz de "
|
||||
"descifrar y cifrar sus datos como de costumbre."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
"La aplicación móvil de Joplin no soporta actualmente este tipo de enlace: %s"
|
||||
@@ -3965,7 +3965,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Este adjunto todavía no ha sido descargado o descifrado"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "El adjunto no ha sido descargado o descifrado todavía."
|
||||
|
||||
@@ -3992,11 +3992,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Esta nota no tiene informacion de geolocalización."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Esta nota ha sido modificada:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4251,7 +4251,7 @@ msgstr ""
|
||||
"¿Dejar de compartir esta libreta? Los destinatarios ya no tendrán acceso a "
|
||||
"su contenido."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Tipo de imagen no soportado: %s"
|
||||
|
||||
@@ -4308,7 +4308,7 @@ msgstr "Actualizado: "
|
||||
msgid "Updated: %d."
|
||||
msgstr "Actualizado: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Actualizado: %s"
|
||||
|
||||
@@ -4386,13 +4386,13 @@ msgstr ""
|
||||
"código). Si no se encuentra, se utiliza una fuente genérica monoespaciada "
|
||||
"(ancho fijo)."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr "Usuarios"
|
||||
|
||||
@@ -4404,7 +4404,7 @@ msgstr "Válido"
|
||||
msgid "View"
|
||||
msgstr "Ver"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Ver en mapa"
|
||||
|
||||
@@ -4501,12 +4501,12 @@ msgid "yes"
|
||||
msgstr "sí"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Sí"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -247,7 +247,7 @@ msgstr "Aktiivne"
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Lisa keha"
|
||||
|
||||
@@ -259,7 +259,7 @@ msgstr "Siltide lisamine või eemaldamine:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Pealkirja lisamine"
|
||||
|
||||
@@ -267,8 +267,8 @@ msgstr "Pealkirja lisamine"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -335,15 +335,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Manusta fail"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Manusta foto"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Lisada..."
|
||||
|
||||
@@ -459,8 +459,8 @@ msgstr "Täpp-loend"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -518,8 +518,8 @@ msgstr "Märget \"%s\" märkmikku ei saa kopeerida"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Ei leia \" %s\"."
|
||||
|
||||
@@ -528,12 +528,12 @@ msgstr "Ei leia \" %s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Sünkroonijat ei saa lähtestada."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "\"%s\" moodulit ei saa laadida vormingus \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "\"%s\" moodulit ei saa laadida vormingus \"%s\""
|
||||
@@ -613,7 +613,7 @@ msgstr "Märkekast"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Kontroll... Oota."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Valida suvand"
|
||||
|
||||
@@ -768,18 +768,18 @@ msgstr "Manused"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Märkme atribuudid"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Teisenda märkeks"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
#, fuzzy
|
||||
msgid "Convert to todo"
|
||||
msgstr "Teisenda Todo"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopeeri"
|
||||
@@ -806,7 +806,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Kopeeri lingi aadress"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Kopeeri Markdown link"
|
||||
|
||||
@@ -928,7 +928,7 @@ msgid "Created: %d."
|
||||
msgstr "Loodud: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Loodud: %s"
|
||||
|
||||
@@ -979,7 +979,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Kohandatud TLS-i serdid"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Lõika"
|
||||
@@ -988,7 +988,7 @@ msgstr "Lõika"
|
||||
msgid "Dark"
|
||||
msgstr "Tume"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1038,7 +1038,7 @@ msgstr "Default: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Kustuta"
|
||||
@@ -1072,7 +1072,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Kas kustutada märge \"%s\"?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Kas soovite märkme kustutada?"
|
||||
|
||||
@@ -1189,7 +1189,7 @@ msgstr ""
|
||||
"sünkrooniseeritakse uuesti ja saadetakse krüptimata sünkroonimisobjektile. "
|
||||
"Kas soovite jätkata?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Hülga muutused"
|
||||
|
||||
@@ -1332,7 +1332,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Muuda"
|
||||
|
||||
@@ -1390,7 +1390,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1616,12 +1616,12 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Ainult tõrked"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernote Export faili (HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernote Export faili (nagu Markdown)"
|
||||
@@ -1802,7 +1802,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Üldine"
|
||||
|
||||
@@ -1836,7 +1836,7 @@ msgstr ""
|
||||
"näitab see [name] väärtust. Kui ei ole esitatud [name] ega [value], "
|
||||
"loetatakse praegune konfiguratsioon."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Mine Allika URL-ile"
|
||||
|
||||
@@ -1855,7 +1855,7 @@ msgstr "Autoriseerimis token:"
|
||||
msgid "Heading"
|
||||
msgstr "Pealkiri"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "Abi"
|
||||
|
||||
@@ -1876,8 +1876,8 @@ msgstr "Teave kasutaja Joplin kohta"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1886,11 +1886,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Horisontaalne reegel"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "HTML-kataloog"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "HTML-fail"
|
||||
|
||||
@@ -1966,7 +1966,7 @@ msgstr ""
|
||||
"kasutades otseteed `$n` või `$b` vastavalt praegu valitud Märkus või "
|
||||
"märkmiku. `$c` saab kasutada praegu valitud üksusele viitamiseks."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2094,8 +2094,8 @@ msgstr "Kald"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Üksust %s ei saanud alla laadida: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2128,14 +2128,14 @@ msgstr "Joplini veebisait"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Sisestage põhiparool:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
#, fuzzy
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Joplin Export kataloog"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
#, fuzzy
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Joplin Export faili"
|
||||
@@ -2235,7 +2235,7 @@ msgstr "Viimane tõrge: %s"
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Paigutus"
|
||||
|
||||
@@ -2271,7 +2271,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "Link on kopeeritud lõikelauale!"
|
||||
msgstr[1] "Lingid on kopeeritud lõikelauale!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Linke protokolliga \"%s\" ei toetata"
|
||||
|
||||
@@ -2303,7 +2303,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Logi"
|
||||
|
||||
@@ -2323,11 +2323,11 @@ msgstr "Logi sisse Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Logi sisse OneDrive ' iga"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2365,13 +2365,13 @@ msgid "Manual"
|
||||
msgstr "Manuaal"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2533,7 +2533,7 @@ msgid "no"
|
||||
msgstr "n"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Ei"
|
||||
@@ -2542,7 +2542,7 @@ msgstr "Ei"
|
||||
msgid "No active notebook."
|
||||
msgstr "Aktiivset märkmikku pole."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Üksust ID-ga %s ei ole"
|
||||
|
||||
@@ -2856,7 +2856,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Paroolid ei kattu!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Kleebi"
|
||||
@@ -2870,7 +2870,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "PDF-fail"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
#, fuzzy
|
||||
msgid "Permission needed"
|
||||
msgstr "Kaamera kasutamise õigus"
|
||||
@@ -2926,7 +2926,7 @@ msgstr "Valige esmalt kustutatav märkus või märkmik."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Palun valige, kus sünkroonimise olekut tuleks eksportida"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
#, fuzzy
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Määrake %s importimise vorming"
|
||||
@@ -3042,7 +3042,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Uus versioon: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Objektid"
|
||||
|
||||
@@ -3269,7 +3269,7 @@ msgstr "Häire salvestamine"
|
||||
msgid "Save as..."
|
||||
msgstr "Salvesta kui..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Salvesta muudatused"
|
||||
|
||||
@@ -3346,7 +3346,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Serveris töötab port %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Alarmi seadmine"
|
||||
@@ -3380,7 +3380,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Jaga"
|
||||
|
||||
@@ -3757,18 +3757,18 @@ msgstr "Sildistatud: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Sildid"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Pildista"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3863,7 +3863,7 @@ msgid ""
|
||||
"and encrypt your data as usual."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "Joplin mobiilirakendus ei toeta praegu seda tüüpi linki: %s"
|
||||
|
||||
@@ -4026,7 +4026,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Seda manust ei laadita alla või pole veel dekrüpteeritud"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "Seda manust ei ole laetud ega dekrüpteeritud veel."
|
||||
|
||||
@@ -4051,11 +4051,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Sellel märkil pole geoasukohateavet."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Seda märkust on muudetud:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4304,7 +4304,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Toetuseta pilditüüp: %s"
|
||||
|
||||
@@ -4364,7 +4364,7 @@ msgstr "Värskendatud: %s"
|
||||
msgid "Updated: %d."
|
||||
msgstr "Värskendatud: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Värskendatud: %s"
|
||||
|
||||
@@ -4436,13 +4436,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4456,7 +4456,7 @@ msgstr "Sobimatu vastus: %s"
|
||||
msgid "View"
|
||||
msgstr "&Vaade"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Vaata kaardilt"
|
||||
|
||||
@@ -4554,12 +4554,12 @@ msgid "yes"
|
||||
msgstr "Jah"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Jah"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -249,7 +249,7 @@ msgstr "Aktibo"
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
|
||||
@@ -261,7 +261,7 @@ msgstr "Gehitu edo ezabatu etiketak:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
#, fuzzy
|
||||
msgid "Add title"
|
||||
msgstr "Titulu gabekoa"
|
||||
@@ -270,8 +270,8 @@ msgstr "Titulu gabekoa"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -341,15 +341,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Erantsi fitxategia"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Argazkia erantsi"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
#, fuzzy
|
||||
msgid "Attach..."
|
||||
msgstr "Bilatu"
|
||||
@@ -462,8 +462,8 @@ msgstr ""
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -519,8 +519,8 @@ msgstr "Ezin kopia daiteke oharra \"%s\" koadernora"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Ezin aurkitu \"%s\""
|
||||
|
||||
@@ -529,11 +529,11 @@ msgstr "Ezin aurkitu \"%s\""
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Ezin has daiteke sinkronizazio prozesua."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
|
||||
@@ -612,7 +612,7 @@ msgstr ""
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Bertan behera uzten... itxaron, mesedez."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
#, fuzzy
|
||||
msgid "Choose an option"
|
||||
msgstr "Erakutsi aukera aurreratuak"
|
||||
@@ -761,17 +761,17 @@ msgstr "Erantsi fitxategia"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Koadernoaren izenburua: "
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Oharra bihurtu"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Zeregina bihurtu"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopiatu"
|
||||
@@ -796,7 +796,7 @@ msgid "Copy Link Address"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr ""
|
||||
|
||||
@@ -910,7 +910,7 @@ msgid "Created: %d."
|
||||
msgstr "Sortuta: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Sortuta: %s"
|
||||
|
||||
@@ -961,7 +961,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Moztu"
|
||||
@@ -970,7 +970,7 @@ msgstr "Moztu"
|
||||
msgid "Dark"
|
||||
msgstr "Iluna"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1023,7 +1023,7 @@ msgstr "Lehenetsia: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Ezabatu"
|
||||
@@ -1058,7 +1058,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Oharrak ezabatu?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Oharra ezabatu?"
|
||||
|
||||
@@ -1170,7 +1170,7 @@ msgstr ""
|
||||
"deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. "
|
||||
"Segitu nahi duzu?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Bertan behera utzi aldaketak"
|
||||
|
||||
@@ -1311,7 +1311,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Editatu"
|
||||
|
||||
@@ -1372,7 +1372,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1583,12 +1583,12 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Aio! Agur! :_( "
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernotetik esportatutako fitxategiak"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernotetik esportatutako fitxategiak"
|
||||
@@ -1759,7 +1759,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#, fuzzy
|
||||
msgid "General"
|
||||
msgstr "Ezarpenak"
|
||||
@@ -1794,7 +1794,7 @@ msgstr ""
|
||||
"ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], "
|
||||
"oraingo konfigurazioaren zerrenda erakutsiko da."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr ""
|
||||
|
||||
@@ -1811,7 +1811,7 @@ msgstr ""
|
||||
msgid "Heading"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "Laguntza"
|
||||
@@ -1833,8 +1833,8 @@ msgstr "Joplin-i buruz"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1842,11 +1842,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
#, fuzzy
|
||||
msgid "HTML File"
|
||||
msgstr "Fitxategia"
|
||||
@@ -1920,7 +1920,7 @@ msgstr ""
|
||||
"aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke "
|
||||
"aukeratutako elementua erabiltzeko."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2049,8 +2049,8 @@ msgstr ""
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Koadernoa ezin gorde daiteke: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2084,13 +2084,13 @@ msgstr "Evernotetik esportatutako fitxategiak"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Sartu pasahitz nagusia:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
#, fuzzy
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Evernotetik esportatutako fitxategiak"
|
||||
@@ -2184,7 +2184,7 @@ msgstr "Aio! Agur! :_( "
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Diseinua"
|
||||
|
||||
@@ -2219,7 +2219,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
|
||||
@@ -2249,7 +2249,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Egunkaria"
|
||||
|
||||
@@ -2270,11 +2270,11 @@ msgstr "Login with OneDrive"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Login with OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2313,13 +2313,13 @@ msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2485,7 +2485,7 @@ msgid "no"
|
||||
msgstr "e"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
#, fuzzy
|
||||
msgid "No"
|
||||
@@ -2495,7 +2495,7 @@ msgstr "E"
|
||||
msgid "No active notebook."
|
||||
msgstr "Ez dago koadernorik aukeratuta."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2814,7 +2814,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Pasahitza ezin utz daiteke hutsik"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Itsatsi"
|
||||
@@ -2829,7 +2829,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "Fitxategia"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr ""
|
||||
|
||||
@@ -2886,7 +2886,7 @@ msgstr "Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Aukeratu nora esportatu sinkronizazioaren egoera, mesedez"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2999,7 +2999,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Litezkeen balioak: %s."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
|
||||
@@ -3230,7 +3230,7 @@ msgstr "Ezarri alarma"
|
||||
msgid "Save as..."
|
||||
msgstr "Gorde aldaketak"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Gorde aldaketak"
|
||||
|
||||
@@ -3309,7 +3309,7 @@ msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Ezarri alarma"
|
||||
@@ -3342,7 +3342,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
@@ -3715,19 +3715,19 @@ msgstr "Etiketatuta: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Etiketak"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
#, fuzzy
|
||||
msgid "Take photo"
|
||||
msgstr "Argazkia erantsi"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3820,7 +3820,7 @@ msgid ""
|
||||
"and encrypt your data as usual."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3971,7 +3971,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
|
||||
@@ -3993,11 +3993,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Ohar honek ez du geokokapen informaziorik."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Ohar hau mugitua izan da:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4241,7 +4241,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Irudi formatua ez onartua: %s"
|
||||
|
||||
@@ -4301,7 +4301,7 @@ msgstr "Eguneratuta: %d."
|
||||
msgid "Updated: %d."
|
||||
msgstr "Eguneratuta: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
#, fuzzy
|
||||
msgid "Updated: %s"
|
||||
msgstr "Eguneratuta: %d."
|
||||
@@ -4371,13 +4371,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4390,7 +4390,7 @@ msgstr "Erantzun baliogabea: %s"
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Ikusi mapan"
|
||||
|
||||
@@ -4490,12 +4490,12 @@ msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -232,7 +232,7 @@ msgstr "فعال"
|
||||
msgid "Actual Size"
|
||||
msgstr "اندازه واقعی"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "افزودن بدنه"
|
||||
|
||||
@@ -244,7 +244,7 @@ msgstr "اضافه یا حذف کردن برچسبها:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "افزودن عنوان"
|
||||
|
||||
@@ -252,8 +252,8 @@ msgstr "افزودن عنوان"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -320,15 +320,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "پیوست فایل"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "ضمیمهی تصویر"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "پیوست..."
|
||||
|
||||
@@ -438,8 +438,8 @@ msgstr "لیست گلوله ای بدون ترتیب"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -495,8 +495,8 @@ msgstr "نمیتوان یادداشت را به دفترچه ی «%s» کپی ک
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "«%s» یافت نشد."
|
||||
|
||||
@@ -504,11 +504,11 @@ msgstr "«%s» یافت نشد."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "نمیتوان همگامساز را شروع کرد."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "ماژول «%s» برای فرمت «%s» و خروجی «%s» بارگزاری نشد."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "ماژول «%s» برای فرمت «%s» و خروجی «%s» بارگزاری نشد."
|
||||
@@ -585,7 +585,7 @@ msgstr "لیست چکباکس"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "در حال بررسی... لطفا صبر کنید."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "یک گزینه را انتخاب کنید"
|
||||
|
||||
@@ -734,17 +734,17 @@ msgstr "پیوستهای یادداشت"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "جزییات یادداشت"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "تبدیل به یادداشت"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "تبدیل به فهرست کارها"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "کپی"
|
||||
@@ -771,7 +771,7 @@ msgid "Copy Link Address"
|
||||
msgstr "کپی کردن آدرس پیوند"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "کپی کردن پیوند Markdown"
|
||||
|
||||
@@ -890,7 +890,7 @@ msgid "Created: %d."
|
||||
msgstr "ایجاد شده: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "ایجاد شده: %s"
|
||||
|
||||
@@ -939,7 +939,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "بریدن"
|
||||
@@ -948,7 +948,7 @@ msgstr "بریدن"
|
||||
msgid "Dark"
|
||||
msgstr "تیره"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -997,7 +997,7 @@ msgstr "پیشفرض: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "حذف"
|
||||
@@ -1030,7 +1030,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "یادداشت «%s» حذف شود؟"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "یادداشت حذف شود؟"
|
||||
|
||||
@@ -1140,7 +1140,7 @@ msgid ""
|
||||
"continue?"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "لغو تغییرات"
|
||||
|
||||
@@ -1277,7 +1277,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "ویرایش"
|
||||
|
||||
@@ -1335,7 +1335,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1538,11 +1538,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "فقط خطا ها"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "فایل استخراجی Evernote (به صورت HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "فایل استخراجی Evernote (به صورت Markdown)"
|
||||
|
||||
@@ -1709,7 +1709,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "کلی"
|
||||
|
||||
@@ -1742,7 +1742,7 @@ msgstr ""
|
||||
"مقدار [name] (اسم) نمایش داده خواهد شد. اگر نه [name] (اسم) و نه [value] "
|
||||
"(مقدار) داده نشده باشند، تنظیمات فعلی لیست میشود."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "رفتن به آدرس منبع"
|
||||
|
||||
@@ -1760,7 +1760,7 @@ msgstr "توکن مجوز:"
|
||||
msgid "Heading"
|
||||
msgstr "عنوان"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "کمک"
|
||||
|
||||
@@ -1780,8 +1780,8 @@ msgstr "Joplin را مخفی کنید"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1789,11 +1789,11 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "خط افقی"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "پوشه HTML"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "فایل HTML"
|
||||
|
||||
@@ -1862,7 +1862,7 @@ msgid ""
|
||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -1989,8 +1989,8 @@ msgstr "مورب"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "مورد «%s» بارگیری نشد: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2023,13 +2023,13 @@ msgstr "سایت Joplin"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "گذرواژه اصلی را وارد کنید:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "پوشه استخراجی Joplin"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "فایل استخراجی Joplin"
|
||||
|
||||
@@ -2124,7 +2124,7 @@ msgstr "آخرین خطا: %s"
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "قالب"
|
||||
|
||||
@@ -2159,7 +2159,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "پیوندها در کلیپ بورد کپی شدند!"
|
||||
msgstr[1] "پیوند در کلیپ بورد کپی شد!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "پیوندهای دارای پروتکل «%s» پشتیبانی نمیشوند"
|
||||
|
||||
@@ -2187,7 +2187,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "لاگ"
|
||||
|
||||
@@ -2207,11 +2207,11 @@ msgstr "ورود با Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "ورود با OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2249,13 +2249,13 @@ msgid "Manual"
|
||||
msgstr "دستی"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2407,7 +2407,7 @@ msgid "no"
|
||||
msgstr "خیر"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "خیر"
|
||||
@@ -2416,7 +2416,7 @@ msgstr "خیر"
|
||||
msgid "No active notebook."
|
||||
msgstr "دفترچهی فعالی وجود ندارد."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "هیچ موردی با شناسه %s وجود ندارد"
|
||||
|
||||
@@ -2718,7 +2718,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "گذرواژهها با یکدیگر مطابق نیستند!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "چسباندن"
|
||||
@@ -2732,7 +2732,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "فایل PDF"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
#, fuzzy
|
||||
msgid "Permission needed"
|
||||
msgstr "اجازه برای استفاده از دوربین"
|
||||
@@ -2786,7 +2786,7 @@ msgstr "لطفا ابتدا یادداشت یا دفترچهای که قرا
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "لطفا محلی که وضعیت همگامسازی باید استخراج شود را مشخص کنید"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "لطفا فرمت وارد کردن را برای «%s» مشخص کنید"
|
||||
|
||||
@@ -2902,7 +2902,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "نسخه نمایه: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "جزییات"
|
||||
|
||||
@@ -3129,7 +3129,7 @@ msgstr "ذخیره هشدار"
|
||||
msgid "Save as..."
|
||||
msgstr "ذخیره به عنوان..."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "ذخیره ی تغییرات"
|
||||
|
||||
@@ -3205,7 +3205,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "سرور بر روی پورت %d در حال اجراست"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "تنظیم هشدار"
|
||||
@@ -3238,7 +3238,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "اشتراک گذاری"
|
||||
|
||||
@@ -3599,18 +3599,18 @@ msgstr "برچسب گذاری شده: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "برچسبها"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "گرفتن عکس"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3710,7 +3710,7 @@ msgstr ""
|
||||
"پیشنهاد میشود که آنها رو ارتقا دهید. کلید اصلی ارتقا یافته همچنان طبق معمول "
|
||||
"قادر به رمزگشایی و رمزنگاری داده شما خواهد بود."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "برنامه موبایل Joplin در حال حاضر از این پیوند پشتیبانی نمیکند: %s"
|
||||
|
||||
@@ -3875,7 +3875,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "این پیوست هنوز بارگیری یا رمزگشایی نشده"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "این پیوست هنوز بارگیری یا رمزگشایی نشده."
|
||||
|
||||
@@ -3899,11 +3899,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "این یادداشت اطلاعات ژئولوکیشن ندارد."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "این یادداشت تغییر یافته است:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4149,7 +4149,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "نوع تصویر پشتیبانی نشده: %s"
|
||||
|
||||
@@ -4208,7 +4208,7 @@ msgstr "بهروز شده: %s"
|
||||
msgid "Updated: %d."
|
||||
msgstr "بهروز شده: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "بهروز شده: %s"
|
||||
|
||||
@@ -4280,13 +4280,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4299,7 +4299,7 @@ msgstr "پاسخ نامعتبر: %s"
|
||||
msgid "View"
|
||||
msgstr "نما"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "نمایش بر روی نقشه"
|
||||
|
||||
@@ -4395,12 +4395,12 @@ msgid "yes"
|
||||
msgstr "بله"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "بله"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -243,7 +243,7 @@ msgstr "Actif"
|
||||
msgid "Actual Size"
|
||||
msgstr "Taille actuelle"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Ajoutez le contenu"
|
||||
|
||||
@@ -255,7 +255,7 @@ msgstr "Modifier les étiquettes :"
|
||||
msgid "Add recipient:"
|
||||
msgstr "Ajouter destinataire :"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Ajoutez le titre"
|
||||
|
||||
@@ -263,8 +263,8 @@ msgstr "Ajoutez le titre"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "Ajouter au dictionnaire"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
@@ -333,15 +333,15 @@ msgstr "Aritim Sombre"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Attacher un fichier"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Attacher une photo"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Joindre…"
|
||||
|
||||
@@ -406,7 +406,7 @@ msgstr "Auto‑compléter les paires de parenthèses, guillemets, etc."
|
||||
|
||||
#: packages/lib/models/Setting.ts:1195
|
||||
msgid "Automatically check for updates"
|
||||
msgstr "Vérifier automatiquement les mises à jour"
|
||||
msgstr "Vérifier automatiquement les mises à jour…"
|
||||
|
||||
#: packages/lib/models/Setting.ts:772
|
||||
msgid "Automatically switch theme to match system theme"
|
||||
@@ -452,8 +452,8 @@ msgstr "Liste à puces"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -509,8 +509,8 @@ msgstr "Impossible de copier la note vers le carnet \"%s\""
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Impossible de trouver \"%s\"."
|
||||
|
||||
@@ -518,13 +518,13 @@ msgstr "Impossible de trouver \"%s\"."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Impossible d'initialiser la synchronisation."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr ""
|
||||
"Impossible de charger module \"%s\" pour le format d'entrée \"%s\" et de "
|
||||
"sortie \"%s\""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr ""
|
||||
"Impossible de charger module \"%s\" pour le format d'entrée \"%s\" et de "
|
||||
@@ -608,7 +608,7 @@ msgstr "Liste de cases à cocher"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Vérification… Veuillez patienter."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Choisissez une option"
|
||||
|
||||
@@ -754,17 +754,17 @@ msgstr "Conflits (fichiers joints)"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Contenu fourni par %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Convertir en note"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Convertir en tâche"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Copier"
|
||||
@@ -788,7 +788,7 @@ msgid "Copy Link Address"
|
||||
msgstr "Copier l'adresse du lien"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Copier lien Markdown"
|
||||
|
||||
@@ -911,7 +911,7 @@ msgid "Created: %d."
|
||||
msgstr "Créés : %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Créé : %s"
|
||||
|
||||
@@ -960,7 +960,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Certificats TLS personnalisés"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Couper"
|
||||
@@ -969,7 +969,7 @@ msgstr "Couper"
|
||||
msgid "Dark"
|
||||
msgstr "Sombre"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr "Tableau de bord"
|
||||
|
||||
@@ -1018,7 +1018,7 @@ msgstr "Défaut : %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
@@ -1050,7 +1050,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Supprimer note \"%s\" ?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Supprimer la note ?"
|
||||
|
||||
@@ -1163,7 +1163,7 @@ msgstr ""
|
||||
"être re‑synchronisés et envoyés déchiffrés sur la cible de la "
|
||||
"synchronisation. Souhaitez vous continuer ?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Ignorer les changements"
|
||||
|
||||
@@ -1302,7 +1302,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Édition"
|
||||
|
||||
@@ -1359,7 +1359,7 @@ msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr "Emails"
|
||||
|
||||
@@ -1558,11 +1558,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Erreurs seulement"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Fichiers d'export Evernote (vers HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Fichiers d'export Evernote (vers Markdown)"
|
||||
|
||||
@@ -1733,7 +1733,7 @@ msgid "Full changelog"
|
||||
msgstr "Changements complets"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Général"
|
||||
|
||||
@@ -1765,7 +1765,7 @@ msgstr ""
|
||||
"fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne "
|
||||
"sont fournis, la configuration complète sera affichée."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Aller à l'URL source"
|
||||
|
||||
@@ -1782,7 +1782,7 @@ msgstr "Autoriser"
|
||||
msgid "Heading"
|
||||
msgstr "Titre"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
msgid "Help"
|
||||
msgstr "Aide"
|
||||
|
||||
@@ -1802,8 +1802,8 @@ msgstr "Cacher Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr "Surligner"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr "Accueil"
|
||||
|
||||
@@ -1811,11 +1811,11 @@ msgstr "Accueil"
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Règle horizontale"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "Dossier de fichiers HTML"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "Fichier HTML"
|
||||
|
||||
@@ -1892,7 +1892,7 @@ msgstr ""
|
||||
"respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut "
|
||||
"être utilisé pour faire référence à l'objet sélectionné en cours."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2035,8 +2035,8 @@ msgstr "Italique"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "L'objet \"%s\" n'a pas pu être téléchargé : %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr "Objets"
|
||||
|
||||
@@ -2068,13 +2068,13 @@ msgstr "Joplin Cloud : Email"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Joplin Cloud : Mot de passe"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Dossier d'export Joplin"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Fichier d'export Joplin"
|
||||
|
||||
@@ -2170,7 +2170,7 @@ msgstr "Dernière erreur : %s"
|
||||
msgid "Later"
|
||||
msgstr "Plus tard"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Disposition"
|
||||
|
||||
@@ -2204,7 +2204,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] "Le lien a été copié dans le presse‑papiers !"
|
||||
msgstr[1] "Le code d'authentification a été copié dans le presse‑papiers !"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Le schéma d'URI \"%s\" n'est pas supporté"
|
||||
|
||||
@@ -2234,7 +2234,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Journal"
|
||||
|
||||
@@ -2254,11 +2254,11 @@ msgstr "Se connecter à Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Se connecter à OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr "Se déconnecter"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr "Journal"
|
||||
|
||||
@@ -2294,13 +2294,13 @@ msgid "Manual"
|
||||
msgstr "Manuel"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr "Markdown + Front Matter"
|
||||
|
||||
@@ -2451,7 +2451,7 @@ msgid "no"
|
||||
msgstr "non"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
@@ -2460,7 +2460,7 @@ msgstr "Non"
|
||||
msgid "No active notebook."
|
||||
msgstr "Aucun carnet actif."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Aucun objet avec identifiant %s"
|
||||
|
||||
@@ -2759,7 +2759,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Les mots de passe ne correspondent pas !"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Coller"
|
||||
@@ -2773,7 +2773,7 @@ msgstr "Chemin :"
|
||||
msgid "PDF File"
|
||||
msgstr "Fichier PDF"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "Permission requise"
|
||||
|
||||
@@ -2836,7 +2836,7 @@ msgid "Please select where the sync status should be exported to"
|
||||
msgstr ""
|
||||
"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Veuillez spécifier le format d'import pour %s"
|
||||
|
||||
@@ -2951,7 +2951,7 @@ msgstr "Profil"
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Version du profil : %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Propriétés"
|
||||
|
||||
@@ -3174,7 +3174,7 @@ msgstr "Enregistrer alarme"
|
||||
msgid "Save as..."
|
||||
msgstr "Enregistrer sous…"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Enregistrer les changements"
|
||||
|
||||
@@ -3230,7 +3230,7 @@ msgstr "Sélectionner émoji..."
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:144
|
||||
msgid "Select file..."
|
||||
msgstr "Sélectionner fichier..."
|
||||
msgstr "Sélectionner fichier"
|
||||
|
||||
#: packages/app-cli/app/command-server.js:38
|
||||
msgid "Server is already running on port %d"
|
||||
@@ -3246,7 +3246,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Le serveur tourne sur le port %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Régler alarme"
|
||||
@@ -3281,7 +3281,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Partager"
|
||||
|
||||
@@ -3644,18 +3644,18 @@ msgstr "Étiquettes : %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Étiquettes"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Prendre une photo"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr "Tâches"
|
||||
|
||||
@@ -3766,7 +3766,7 @@ msgstr ""
|
||||
"est recommandé de les mettre à niveau. Les clefs mise à niveau pourront "
|
||||
"continuer à chiffrer et à déchiffrer vos données comme d'habitude."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
"L'application mobile Joplin ne gère pas pour l'instant ce type de lien : %s"
|
||||
@@ -3954,7 +3954,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Cet fichier n'est pas téléchargé ou pas encore déchiffré"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "Cette pièce jointe n'est pas téléchargée ou pas encore déchiffrée."
|
||||
|
||||
@@ -3981,11 +3981,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Cette note n'a pas d'information de géolocalisation."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Cette note a été modifiée :"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4233,7 +4233,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr "Annuler le partage ? Les destinataires n'auront plus accès au carnet."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Type d'image non géré : %s"
|
||||
|
||||
@@ -4288,7 +4288,7 @@ msgstr "Mis à jour : "
|
||||
msgid "Updated: %d."
|
||||
msgstr "Mis à jour : %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Mis à jour : %s"
|
||||
|
||||
@@ -4364,13 +4364,13 @@ msgstr ""
|
||||
"Utilisée lorsque une police à taille fixe est nécessaire pour afficher le "
|
||||
"texte de façon lisible (par ex. pour les tables, code source, etc.)."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr "Suppressions d'utilisateurs"
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr "Utilisateurs"
|
||||
|
||||
@@ -4382,7 +4382,7 @@ msgstr "Valide"
|
||||
msgid "View"
|
||||
msgstr "Affichage"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Voir sur carte"
|
||||
|
||||
@@ -4479,12 +4479,12 @@ msgid "yes"
|
||||
msgstr "oui"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -248,7 +248,7 @@ msgstr "Activa"
|
||||
msgid "Actual Size"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
|
||||
@@ -260,7 +260,7 @@ msgstr "Engadir ou eliminar etiquetas:"
|
||||
msgid "Add recipient:"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
#, fuzzy
|
||||
msgid "Add title"
|
||||
msgstr "Sen título"
|
||||
@@ -269,8 +269,8 @@ msgstr "Sen título"
|
||||
msgid "Add to dictionary"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
@@ -340,15 +340,15 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Anexar un ficheiro"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Anexar foto"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
#, fuzzy
|
||||
msgid "Attach..."
|
||||
msgstr "Buscar…"
|
||||
@@ -463,8 +463,8 @@ msgstr ""
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -520,8 +520,8 @@ msgstr "Non é posíbel copiar a nota ao caderno «%s»"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Non é posíbel atopar «%s»."
|
||||
|
||||
@@ -530,12 +530,12 @@ msgstr "Non é posíbel atopar «%s»."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Non é posíbel iniciar o sincronizador."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "Non foi posíbel cargar o módulo «%s» para o formato «%s»"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
#, fuzzy
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "Non foi posíbel cargar o módulo «%s» para o formato «%s»"
|
||||
@@ -614,7 +614,7 @@ msgstr ""
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Cancelando... Agarde."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
#, fuzzy
|
||||
msgid "Choose an option"
|
||||
msgstr "Mostrar opcións avanzadas"
|
||||
@@ -765,17 +765,17 @@ msgstr "Anexar un ficheiro"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Título do caderno:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Converter para nota"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Converter para tarefa"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Copiar"
|
||||
@@ -800,7 +800,7 @@ msgid "Copy Link Address"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
#, fuzzy
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Markdown"
|
||||
@@ -915,7 +915,7 @@ msgid "Created: %d."
|
||||
msgstr "Creado: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Creado: %s"
|
||||
|
||||
@@ -965,7 +965,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Cortar"
|
||||
@@ -974,7 +974,7 @@ msgstr "Cortar"
|
||||
msgid "Dark"
|
||||
msgstr "Escuro"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
@@ -1027,7 +1027,7 @@ msgstr "Predeterminado: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
@@ -1062,7 +1062,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Desexa eliminar as notas?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Eliminar nota?"
|
||||
|
||||
@@ -1174,7 +1174,7 @@ msgstr ""
|
||||
"Desactivar o cifrado significa que *todas* as súas notas e anexos serán "
|
||||
"sincronizados de novo e enviados sen cifrar ao destino. Desexa continuar?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Desbotar os cambios"
|
||||
|
||||
@@ -1315,7 +1315,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Edtar"
|
||||
|
||||
@@ -1376,7 +1376,7 @@ msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
@@ -1585,12 +1585,12 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Somente erros"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Ficheiro de exportación de Evernote"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
#, fuzzy
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Ficheiro de exportación de Evernote"
|
||||
@@ -1764,7 +1764,7 @@ msgid "Full changelog"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#, fuzzy
|
||||
msgid "General"
|
||||
msgstr "Opcións xerais"
|
||||
@@ -1799,7 +1799,7 @@ msgstr ""
|
||||
"mostrará o valor de [name]. Se non se indica [name] nin [value] listará a "
|
||||
"configuración actual."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr ""
|
||||
|
||||
@@ -1816,7 +1816,7 @@ msgstr ""
|
||||
msgid "Heading"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "Axuda"
|
||||
@@ -1838,8 +1838,8 @@ msgstr "Sobre o Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
@@ -1847,12 +1847,12 @@ msgstr ""
|
||||
msgid "Horizontal Rule"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
#, fuzzy
|
||||
msgid "HTML Directory"
|
||||
msgstr "Cartafol"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
#, fuzzy
|
||||
msgid "HTML File"
|
||||
msgstr "Ficheiro"
|
||||
@@ -1926,7 +1926,7 @@ msgstr ""
|
||||
"cadernos seleccionados actualmente. «$c» pode usarse para referirse ao "
|
||||
"elemento seleccionado actualmente."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2055,8 +2055,8 @@ msgstr ""
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Non foi posíbel gardar o caderno: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr ""
|
||||
|
||||
@@ -2090,13 +2090,13 @@ msgstr "Sitio web de Joplin"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Introducir contrasinal mestre:"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Cartafol de exportación do Joplin"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Ficheiro de exportación do Joplin"
|
||||
|
||||
@@ -2188,7 +2188,7 @@ msgstr "Último erro: %s"
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Disposición"
|
||||
|
||||
@@ -2223,7 +2223,7 @@ msgid_plural "Links have been copied to clipboard!"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
|
||||
@@ -2253,7 +2253,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Rexistro"
|
||||
|
||||
@@ -2274,11 +2274,11 @@ msgstr "Acceder con OneDrive"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Acceder con OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
@@ -2316,13 +2316,13 @@ msgid "Manual"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr ""
|
||||
|
||||
@@ -2482,7 +2482,7 @@ msgid "no"
|
||||
msgstr "n"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
@@ -2491,7 +2491,7 @@ msgstr "Non"
|
||||
msgid "No active notebook."
|
||||
msgstr "Ningún caderno activo."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -2806,7 +2806,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "O contrasinal non pode estar baleiro"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Pegar"
|
||||
@@ -2820,7 +2820,7 @@ msgstr ""
|
||||
msgid "PDF File"
|
||||
msgstr "Ficheiro PDF"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr ""
|
||||
|
||||
@@ -2874,7 +2874,7 @@ msgstr "Selecciona a nota ou caderno para eliminar primeiro."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Seleccione onde exportar o estado da sincronización"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Indique o formato de importación de %s"
|
||||
|
||||
@@ -2986,7 +2986,7 @@ msgstr ""
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Valores posíbeis: %s."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
|
||||
@@ -3212,7 +3212,7 @@ msgstr "Estabelecer alarma"
|
||||
msgid "Save as..."
|
||||
msgstr "Gardar como…"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Gardar cambios"
|
||||
|
||||
@@ -3290,7 +3290,7 @@ msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Estabelecer alarma"
|
||||
@@ -3323,7 +3323,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
@@ -3695,19 +3695,19 @@ msgstr "Etiquetado: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
#, fuzzy
|
||||
msgid "Take photo"
|
||||
msgstr "Anexar foto"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
|
||||
@@ -3800,7 +3800,7 @@ msgid ""
|
||||
"and encrypt your data as usual."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -3958,7 +3958,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
|
||||
@@ -3980,11 +3980,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Esta nota non ten información de xeolocalización."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Esta nota foi modificada:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4226,7 +4226,7 @@ msgid ""
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Tipo de imaxe incompatíbel: %s"
|
||||
|
||||
@@ -4286,7 +4286,7 @@ msgstr "Actualizado: %d."
|
||||
msgid "Updated: %d."
|
||||
msgstr "Actualizado: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
#, fuzzy
|
||||
msgid "Updated: %s"
|
||||
msgstr "Actualizado: %d."
|
||||
@@ -4356,13 +4356,13 @@ msgid ""
|
||||
"font is used."
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -4376,7 +4376,7 @@ msgstr "Resposta non válida: %s"
|
||||
msgid "View"
|
||||
msgstr "Vista"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Ver no mapa"
|
||||
|
||||
@@ -4473,12 +4473,12 @@ msgid "yes"
|
||||
msgstr "Si"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Si"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
|
||||
@@ -2,14 +2,12 @@
|
||||
# Copyright (C) 2001 Laurent Cozic
|
||||
# This file is distributed under the same license as the Joplin-CLI package.
|
||||
# Hrvoje Mandić <trbuhom@net.hr>
|
||||
# Milo Ivir <mail@milotype.de>, 2021., 2022.
|
||||
# Milo Ivir <mail@milotype.de>, 2021.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Joplin\n"
|
||||
"Project-Id-Version: Joplin 1.7.11\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: hr\n"
|
||||
@@ -246,7 +244,7 @@ msgstr "Aktivno"
|
||||
msgid "Actual Size"
|
||||
msgstr "Stvarna veličina"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1116
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1128
|
||||
msgid "Add body"
|
||||
msgstr "Dodaj sadržaj"
|
||||
|
||||
@@ -258,7 +256,7 @@ msgstr "Dodaj ili ukloni oznake:"
|
||||
msgid "Add recipient:"
|
||||
msgstr "Dodaj primaoca:"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1177
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1191
|
||||
msgid "Add title"
|
||||
msgstr "Dodaj naslov"
|
||||
|
||||
@@ -266,14 +264,14 @@ msgstr "Dodaj naslov"
|
||||
msgid "Add to dictionary"
|
||||
msgstr "Dodaj u rječnik"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:183
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
#: packages/server/src/services/MustacheService.ts:186
|
||||
#: packages/server/src/services/MustacheService.ts:310
|
||||
msgid "Admin"
|
||||
msgstr "Administrator"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/dashboard.ts:10
|
||||
msgid "Admin dashboard"
|
||||
msgstr "Pregledna ploča administratora"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ClipperConfigScreen.min.js:189
|
||||
#: packages/app-desktop/gui/ClipperConfigScreen.tsx:147
|
||||
@@ -333,15 +331,15 @@ msgstr "Aritim tamna"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:53
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:589
|
||||
#: packages/app-mobile/components/screens/Note.tsx:893
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
msgid "Attach file"
|
||||
msgstr "Priloži datoteku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:897
|
||||
#: packages/app-mobile/components/screens/Note.tsx:902
|
||||
msgid "Attach photo"
|
||||
msgstr "Priloži sliku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:880
|
||||
#: packages/app-mobile/components/screens/Note.tsx:885
|
||||
msgid "Attach..."
|
||||
msgstr "Priloži …"
|
||||
|
||||
@@ -398,15 +396,16 @@ msgstr "Automatski"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:39
|
||||
msgid "Auto-add disabled accounts for deletion"
|
||||
msgstr "Automatski dodaj deaktivirane račune za brisanje"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:855
|
||||
msgid "Auto-pair braces, parenthesis, quotations, etc."
|
||||
msgstr "Automatski uskladi zagrade, navodnike itd."
|
||||
|
||||
#: packages/lib/models/Setting.ts:1195
|
||||
#, fuzzy
|
||||
msgid "Automatically check for updates"
|
||||
msgstr "Automatski traži nove verzije"
|
||||
msgstr "Traži nove verzije …"
|
||||
|
||||
#: packages/lib/models/Setting.ts:772
|
||||
msgid "Automatically switch theme to match system theme"
|
||||
@@ -452,8 +451,8 @@ msgstr "Popis s predznakom"
|
||||
#: packages/app-mobile/components/CameraView.tsx:191
|
||||
#: packages/app-mobile/components/ModalDialog.js:70
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:190
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:588
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
#: packages/app-mobile/components/screens/Note.tsx:593
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:152
|
||||
#: packages/app-mobile/components/side-menu-content.js:156
|
||||
#: packages/app-mobile/components/side-menu-content.js:165
|
||||
@@ -509,8 +508,8 @@ msgstr "Nije moguće kopirati bilješku u bilježnicu „%s”"
|
||||
#: packages/app-cli/app/command-tag.js:87
|
||||
#: packages/app-cli/app/command-todo.js:21
|
||||
#: packages/app-cli/app/command-use.js:21
|
||||
#: packages/lib/services/interop/InteropService.ts:266
|
||||
#: packages/lib/services/interop/InteropService.ts:284
|
||||
#: packages/lib/services/interop/InteropService.ts:290
|
||||
#: packages/lib/services/interop/InteropService.ts:308
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Nije moguće pronaći „%s”."
|
||||
|
||||
@@ -518,11 +517,11 @@ msgstr "Nije moguće pronaći „%s”."
|
||||
msgid "Cannot initialise synchroniser."
|
||||
msgstr "Nije moguće pokrenuti sinkronizaciju."
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:208
|
||||
#: packages/lib/services/interop/InteropService.ts:209
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and output \"%s\""
|
||||
msgstr "Nije moguće učitati modul „%s” za format „%s” i rezultat „%s”"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:234
|
||||
#: packages/lib/services/interop/InteropService.ts:235
|
||||
msgid "Cannot load \"%s\" module for format \"%s\" and target \"%s\""
|
||||
msgstr "Nije moguće učitati modul „%s” za format „%s” i cilj „%s”"
|
||||
|
||||
@@ -602,7 +601,7 @@ msgstr "Označiv popis"
|
||||
msgid "Checking... Please wait."
|
||||
msgstr "Provjeravanje … Pričekaj."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:900
|
||||
#: packages/app-mobile/components/screens/Note.tsx:905
|
||||
msgid "Choose an option"
|
||||
msgstr "Odaberi jednu opciju"
|
||||
|
||||
@@ -710,7 +709,7 @@ msgstr "Završeno: %s (%s)"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:37
|
||||
msgid "Compress old changes"
|
||||
msgstr "Komprimiraj stare promjene"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:637
|
||||
#: packages/app-mobile/components/side-menu-content.js:332
|
||||
@@ -746,17 +745,17 @@ msgstr "Konflikti (privici)"
|
||||
msgid "Content provided by %s"
|
||||
msgstr "Sadržaj pruža %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to note"
|
||||
msgstr "Pretvori u bilješku"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:933
|
||||
#: packages/app-mobile/components/screens/Note.tsx:938
|
||||
msgid "Convert to todo"
|
||||
msgstr "Pretvori u zadatak"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:433
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:13
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:761
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:760
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:151
|
||||
msgid "Copy"
|
||||
msgstr "Kopiraj"
|
||||
@@ -772,15 +771,16 @@ msgid "Copy external link"
|
||||
msgstr "Kopiraj vanjsku poveznicu"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:134
|
||||
#, fuzzy
|
||||
msgid "Copy image"
|
||||
msgstr "Kopiraj sliku"
|
||||
msgstr "Kopiraj ključ"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:172
|
||||
msgid "Copy Link Address"
|
||||
msgstr "Kopiraj adresu poveznice"
|
||||
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:124
|
||||
#: packages/app-mobile/components/screens/Note.tsx:940
|
||||
#: packages/app-mobile/components/screens/Note.tsx:945
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Kopiraj Markdown poveznicu"
|
||||
|
||||
@@ -860,20 +860,20 @@ msgid ""
|
||||
"Could not verify the share status of this notebook - aborting. Please try "
|
||||
"again when you are connected to the internet."
|
||||
msgstr ""
|
||||
"Nije moguće provjeriti stanje dijeljenja ove bilježnice – prekid. Pokušaj "
|
||||
"ponovo kad si povezan/a s internetom."
|
||||
|
||||
#: packages/app-mobile/components/note-list.js:101
|
||||
msgid "Create a notebook"
|
||||
msgstr "Stvori bilježnicu"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:161
|
||||
#, fuzzy
|
||||
msgid "Create notebook"
|
||||
msgstr "Stvori bilježnicu"
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:171
|
||||
#, fuzzy
|
||||
msgid "Create user"
|
||||
msgstr "Stvori korisnika"
|
||||
msgstr "Stvoreno: %s"
|
||||
|
||||
#: packages/app-desktop/gui/NotePropertiesDialog.min.js:29
|
||||
msgid "Created"
|
||||
@@ -905,7 +905,7 @@ msgid "Created: %d."
|
||||
msgstr "Stvoreno: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/encryption-config.tsx:118
|
||||
#: packages/app-mobile/components/screens/Note.tsx:835
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
msgid "Created: %s"
|
||||
msgstr "Stvoreno: %s"
|
||||
|
||||
@@ -954,7 +954,7 @@ msgid "Custom TLS certificates"
|
||||
msgstr "Prilagođeni TLS certifikati"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:18
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:751
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:750
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:143
|
||||
msgid "Cut"
|
||||
msgstr "Izreži"
|
||||
@@ -963,9 +963,9 @@ msgstr "Izreži"
|
||||
msgid "Dark"
|
||||
msgstr "Tamna"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
#: packages/server/src/services/MustacheService.ts:139
|
||||
msgid "Dashboard"
|
||||
msgstr "Pregledna ploča"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:625
|
||||
msgid "Database v%s"
|
||||
@@ -1012,7 +1012,7 @@ msgstr "Standardno: %s"
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:192
|
||||
#: packages/app-desktop/gui/utils/NoteListUtils.ts:222
|
||||
#: packages/app-mobile/components/screen-header.js:362
|
||||
#: packages/app-mobile/components/screens/Note.tsx:953
|
||||
#: packages/app-mobile/components/screens/Note.tsx:958
|
||||
#: packages/app-mobile/components/side-menu-content.js:146
|
||||
msgid "Delete"
|
||||
msgstr "Izbriši"
|
||||
@@ -1022,12 +1022,14 @@ msgid "Delete attachment \"%s\"?"
|
||||
msgstr "Izbrisati privitak „%s”?"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:36
|
||||
#, fuzzy
|
||||
msgid "Delete expired sessions"
|
||||
msgstr "Izbriši istekle sesije"
|
||||
msgstr "Aktiviraj matematičke izraze"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:31
|
||||
#, fuzzy
|
||||
msgid "Delete expired tokens"
|
||||
msgstr "Izbriši istekle tokene"
|
||||
msgstr "Izbrisati ove %d bilješke?"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:88
|
||||
msgid "Delete line"
|
||||
@@ -1042,7 +1044,7 @@ msgid "Delete note \"%s\"?"
|
||||
msgstr "Izbrisati bilješku „%s”?"
|
||||
|
||||
#: packages/app-cli/app/command-rmnote.js:27
|
||||
#: packages/app-mobile/components/screens/Note.tsx:525
|
||||
#: packages/app-mobile/components/screens/Note.tsx:530
|
||||
msgid "Delete note?"
|
||||
msgstr "Izbrisati bilješku?"
|
||||
|
||||
@@ -1155,7 +1157,7 @@ msgstr ""
|
||||
"ponovo sinkronizirati i poslati nešifrirano u cilj sinkronizacije. Želiš li "
|
||||
"nastaviti?"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Discard changes"
|
||||
msgstr "Odbaci promjene"
|
||||
|
||||
@@ -1293,7 +1295,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/openFolderDialog.ts:12
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.ts:83
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1139
|
||||
#: packages/app-mobile/components/screens/Note.tsx:1151
|
||||
msgid "Edit"
|
||||
msgstr "Uredi"
|
||||
|
||||
@@ -1347,12 +1349,12 @@ msgstr "Emacs"
|
||||
#: packages/app-desktop/gui/SyncWizard/Dialog.tsx:236
|
||||
#: packages/server/src/routes/admin/emails.ts:128
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/emails.ts:112
|
||||
#: packages/server/src/services/MustacheService.ts:152
|
||||
#: packages/server/src/services/MustacheService.ts:155
|
||||
msgid "Emails"
|
||||
msgstr "E-mailovi"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:194
|
||||
msgid "emphasised text"
|
||||
@@ -1549,11 +1551,11 @@ msgstr ""
|
||||
msgid "Errors only"
|
||||
msgstr "Samo greške"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:88
|
||||
#: packages/lib/services/interop/InteropService.ts:89
|
||||
msgid "Evernote Export File (as HTML)"
|
||||
msgstr "Evernote datoteka izvoza (kao HTML)"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:79
|
||||
#: packages/lib/services/interop/InteropService.ts:80
|
||||
msgid "Evernote Export File (as Markdown)"
|
||||
msgstr "Evernote datoteka izvoza (kao Markdown)"
|
||||
|
||||
@@ -1700,7 +1702,7 @@ msgstr "Za popis tipkovnih prečaca i opcija konfiguracije, upiši `help keymap`
|
||||
|
||||
#: packages/lib/models/Setting.ts:569
|
||||
msgid "Force path style"
|
||||
msgstr "Prisili stil putanje"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/commands/historyForward.ts:6
|
||||
msgid "Forward"
|
||||
@@ -1720,7 +1722,7 @@ msgid "Full changelog"
|
||||
msgstr "Potpuni dnevnik promjena"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2141
|
||||
#: packages/server/src/services/MustacheService.ts:133
|
||||
#: packages/server/src/services/MustacheService.ts:136
|
||||
msgid "General"
|
||||
msgstr "Opće"
|
||||
|
||||
@@ -1753,7 +1755,7 @@ msgstr ""
|
||||
"zadana, prikazat će vrijednost imena [name]. Ako [name] niti [value] nisu "
|
||||
"zadani, ispisat će trenutačnu konfiguraciju."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:847
|
||||
#: packages/app-mobile/components/screens/Note.tsx:852
|
||||
msgid "Go to source URL"
|
||||
msgstr "Idi na URL izvora"
|
||||
|
||||
@@ -1770,7 +1772,8 @@ msgstr "Odobri autorizaciju"
|
||||
msgid "Heading"
|
||||
msgstr "Naslov"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
#: packages/server/src/services/MustacheService.ts:308
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "Pomoć"
|
||||
|
||||
@@ -1790,20 +1793,20 @@ msgstr "Sakrij Joplin"
|
||||
msgid "Highlight"
|
||||
msgstr "Istaknuto"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:167
|
||||
#: packages/server/src/services/MustacheService.ts:300
|
||||
#: packages/server/src/services/MustacheService.ts:170
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
msgid "Home"
|
||||
msgstr "Početak"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:78
|
||||
msgid "Horizontal Rule"
|
||||
msgstr "Vodoravna crta"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:133
|
||||
#: packages/lib/services/interop/InteropService.ts:134
|
||||
msgid "HTML Directory"
|
||||
msgstr "HTML mapa"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:127
|
||||
#: packages/lib/services/interop/InteropService.ts:128
|
||||
msgid "HTML File"
|
||||
msgstr "HTML datoteka"
|
||||
|
||||
@@ -1813,7 +1816,7 @@ msgstr "Poveznica"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:136
|
||||
msgid "Icon"
|
||||
msgstr "Ikona"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:179
|
||||
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:329
|
||||
@@ -1837,7 +1840,7 @@ msgstr "Zanemari greške TLS certifikata"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:102
|
||||
msgid "Images"
|
||||
msgstr "Slike"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/KeymapConfig/KeymapConfigScreen.tsx:170
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:484
|
||||
@@ -1879,7 +1882,7 @@ msgstr ""
|
||||
"odabranu bilješku ili bilježnicu. `$c` se može koristiti za upućivanje na "
|
||||
"trenutačno odabrani element."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:402
|
||||
#: packages/app-mobile/components/screens/Note.tsx:407
|
||||
msgid ""
|
||||
"In order to associate a geo-location with the note, the app needs your "
|
||||
"permission to access your location.\n"
|
||||
@@ -2009,8 +2012,9 @@ msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||
msgstr "Neispravna vrijednost opcije: „%s”. Moguće vrijednosti su: %s."
|
||||
|
||||
#: packages/app-cli/app/command-e2ee.ts:46
|
||||
#, fuzzy
|
||||
msgid "Invalid password"
|
||||
msgstr "Neispravna lozinka"
|
||||
msgstr "Neispravan odgovor: %s"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:38
|
||||
msgid "Italic"
|
||||
@@ -2020,10 +2024,10 @@ msgstr "Kurziv"
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Nije bilo moguće preuzeti element „%s”: %s"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:175
|
||||
#: packages/server/src/services/MustacheService.ts:302
|
||||
#: packages/server/src/services/MustacheService.ts:178
|
||||
#: packages/server/src/services/MustacheService.ts:305
|
||||
msgid "Items"
|
||||
msgstr "Elementi"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/services/ReportService.ts:208
|
||||
msgid "Items that cannot be decrypted"
|
||||
@@ -2053,13 +2057,13 @@ msgstr "Joplin Cloud email"
|
||||
msgid "Joplin Cloud password"
|
||||
msgstr "Joplin Cloud lozinka"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:107
|
||||
#: packages/lib/services/interop/InteropService.ts:72
|
||||
#: packages/lib/services/interop/InteropService.ts:108
|
||||
#: packages/lib/services/interop/InteropService.ts:73
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "Joplin mapa izvoza"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:101
|
||||
#: packages/lib/services/interop/InteropService.ts:50
|
||||
#: packages/lib/services/interop/InteropService.ts:102
|
||||
#: packages/lib/services/interop/InteropService.ts:51
|
||||
msgid "Joplin Export File"
|
||||
msgstr "Joplin datoteka izvoza"
|
||||
|
||||
@@ -2155,7 +2159,7 @@ msgstr "Zadnja greška: %s"
|
||||
msgid "Later"
|
||||
msgstr "Kasnije"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid "Layout"
|
||||
msgstr "Raspored"
|
||||
|
||||
@@ -2190,7 +2194,7 @@ msgstr[0] "Poveznica je kopirana u međuspremnik!"
|
||||
msgstr[1] "Poveznice su kopirane u međuspremnik!"
|
||||
msgstr[2] "Poveznice su kopirane u međuspremnik!"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:197
|
||||
#: packages/app-mobile/components/screens/Note.tsx:200
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr "Poveznice s protokolom „%s” se ne podržavaju"
|
||||
|
||||
@@ -2220,7 +2224,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:521
|
||||
#: packages/app-mobile/components/screens/log.js:100
|
||||
#: packages/server/src/services/MustacheService.ts:303
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
msgid "Log"
|
||||
msgstr "Dnevnik"
|
||||
|
||||
@@ -2240,13 +2244,13 @@ msgstr "Prijavi se s Dropbox"
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Prijavi se s OneDrive"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:306
|
||||
#: packages/server/src/services/MustacheService.ts:309
|
||||
msgid "Logout"
|
||||
msgstr "Odjava"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:179
|
||||
#: packages/server/src/services/MustacheService.ts:182
|
||||
msgid "Logs"
|
||||
msgstr "Dnevnici"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:716
|
||||
#: packages/app-mobile/components/screens/ConfigScreen.tsx:583
|
||||
@@ -2280,13 +2284,13 @@ msgid "Manual"
|
||||
msgstr "Ručno"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2146
|
||||
#: packages/lib/services/interop/InteropService.ts:113
|
||||
#: packages/lib/services/interop/InteropService.ts:58
|
||||
#: packages/lib/services/interop/InteropService.ts:114
|
||||
#: packages/lib/services/interop/InteropService.ts:59
|
||||
msgid "Markdown"
|
||||
msgstr "Markdown"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:119
|
||||
#: packages/lib/services/interop/InteropService.ts:66
|
||||
#: packages/lib/services/interop/InteropService.ts:120
|
||||
#: packages/lib/services/interop/InteropService.ts:67
|
||||
msgid "Markdown + Front Matter"
|
||||
msgstr "Markdown + Front Matter"
|
||||
|
||||
@@ -2437,7 +2441,7 @@ msgid "no"
|
||||
msgstr "ne"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:29
|
||||
#: packages/app-mobile/components/screens/Note.tsx:587
|
||||
#: packages/app-mobile/components/screens/Note.tsx:592
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "No"
|
||||
msgstr "Ne"
|
||||
@@ -2446,7 +2450,7 @@ msgstr "Ne"
|
||||
msgid "No active notebook."
|
||||
msgstr "Nema aktivne bilježnice."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:168
|
||||
#: packages/app-mobile/components/screens/Note.tsx:171
|
||||
msgid "No item with ID %s"
|
||||
msgstr "Nema elementa s ID oznakom %s"
|
||||
|
||||
@@ -2576,8 +2580,9 @@ msgid "Note&book"
|
||||
msgstr "Biljež&nica"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2145
|
||||
#, fuzzy
|
||||
msgid "Notebook"
|
||||
msgstr "Bilježnica"
|
||||
msgstr "Bilježnice"
|
||||
|
||||
#: packages/lib/models/Setting.ts:1380
|
||||
msgid "Notebook list growth factor"
|
||||
@@ -2598,8 +2603,9 @@ msgstr "Naslov „%s” je rezerviran i ne može se koristiti za bilježnice."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/toggleNotesSortOrderField.ts:8
|
||||
#: packages/app-desktop/gui/MainScreen/commands/toggleNotesSortOrderReverse.ts:9
|
||||
#, fuzzy
|
||||
msgid "Notes"
|
||||
msgstr "Bilješke"
|
||||
msgstr "Bilješka"
|
||||
|
||||
#: packages/lib/models/Setting.ts:2161
|
||||
msgid "Notes and settings are stored in: %s"
|
||||
@@ -2706,8 +2712,9 @@ msgid "Or create an account."
|
||||
msgstr "Ili stvori novi račun."
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:352
|
||||
#, fuzzy
|
||||
msgid "Other applications..."
|
||||
msgstr "Drugi programi …"
|
||||
msgstr "Zatvara program."
|
||||
|
||||
#: packages/app-cli/app/command-import.js:27
|
||||
msgid "Output format: %s"
|
||||
@@ -2741,7 +2748,7 @@ msgid "Passwords do not match!"
|
||||
msgstr "Lozinke se ne poklapaju!"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:23
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:771
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:770
|
||||
#: packages/app-desktop/gui/NoteEditor/utils/contextMenu.ts:158
|
||||
msgid "Paste"
|
||||
msgstr "Umetni"
|
||||
@@ -2755,7 +2762,7 @@ msgstr "Putanja:"
|
||||
msgid "PDF File"
|
||||
msgstr "PDF datoteka"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:403
|
||||
#: packages/app-mobile/components/screens/Note.tsx:408
|
||||
msgid "Permission needed"
|
||||
msgstr "Potrebna je dozvola"
|
||||
|
||||
@@ -2812,7 +2819,7 @@ msgstr "Najprije odaberi bilješku ili bilježnicu za brisanje."
|
||||
msgid "Please select where the sync status should be exported to"
|
||||
msgstr "Odaberi mjesto za izvoz stanja sinkronizacije"
|
||||
|
||||
#: packages/lib/services/interop/InteropService.ts:277
|
||||
#: packages/lib/services/interop/InteropService.ts:301
|
||||
msgid "Please specify import format for %s"
|
||||
msgstr "Odredi format uvoza za %s"
|
||||
|
||||
@@ -2908,25 +2915,25 @@ msgstr "Politika privatnosti"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:35
|
||||
msgid "Process failed payment subscriptions"
|
||||
msgstr "Obradi neuspjela plaćanja pretplata"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:33
|
||||
msgid "Process oversized accounts"
|
||||
msgstr "Obradi prevelike račune"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:38
|
||||
msgid "Process user deletions"
|
||||
msgstr "Obradi brisanja korisnika"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:168
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/versionInfo.ts:26
|
||||
msgid "Profile Version: %s"
|
||||
msgstr "Verzija profila: %s"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:947
|
||||
#: packages/app-mobile/components/screens/Note.tsx:952
|
||||
msgid "Properties"
|
||||
msgstr "Svojstva"
|
||||
|
||||
@@ -3104,27 +3111,31 @@ msgstr ""
|
||||
|
||||
#: packages/lib/SyncTargetAmazonS3.js:28
|
||||
msgid "S3"
|
||||
msgstr "S3"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:547
|
||||
#, fuzzy
|
||||
msgid "S3 access key"
|
||||
msgstr "S3 pristupni ključ"
|
||||
msgstr "AWS ključ"
|
||||
|
||||
#: packages/lib/models/Setting.ts:507
|
||||
#, fuzzy
|
||||
msgid "S3 bucket"
|
||||
msgstr "S3 bucket"
|
||||
msgstr "AWS S3 bucket"
|
||||
|
||||
#: packages/lib/models/Setting.ts:536
|
||||
msgid "S3 region"
|
||||
msgstr "S3 područje"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:558
|
||||
#, fuzzy
|
||||
msgid "S3 secret key"
|
||||
msgstr "S3 tajni ključ"
|
||||
msgstr "AWS tajna"
|
||||
|
||||
#: packages/lib/models/Setting.ts:522
|
||||
#, fuzzy
|
||||
msgid "S3 URL"
|
||||
msgstr "S3 URL"
|
||||
msgstr "AWS S3 URL"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/MainScreen.tsx:579
|
||||
msgid ""
|
||||
@@ -3150,7 +3161,7 @@ msgstr "Spremi upozorenje"
|
||||
msgid "Save as..."
|
||||
msgstr "Spremi kao …"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "Save changes"
|
||||
msgstr "Spremi promjene"
|
||||
|
||||
@@ -3201,12 +3212,14 @@ msgid "Select all"
|
||||
msgstr "Označi sve"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:140
|
||||
#, fuzzy
|
||||
msgid "Select emoji..."
|
||||
msgstr "Odaberi emoji …"
|
||||
msgstr "Odaberi datum"
|
||||
|
||||
#: packages/app-desktop/gui/EditFolderDialog/Dialog.tsx:144
|
||||
#, fuzzy
|
||||
msgid "Select file..."
|
||||
msgstr "Odaberi datoteku …"
|
||||
msgstr "Označi sve"
|
||||
|
||||
#: packages/app-cli/app/command-server.js:38
|
||||
msgid "Server is already running on port %d"
|
||||
@@ -3222,7 +3235,7 @@ msgid "Server is running on port %d"
|
||||
msgstr "Poslužitelj se pokreće na priključku %d"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/editAlarm.ts:10
|
||||
#: packages/app-mobile/components/screens/Note.tsx:911
|
||||
#: packages/app-mobile/components/screens/Note.tsx:916
|
||||
#: packages/app-mobile/components/SelectDateTimeDialog.tsx:141
|
||||
msgid "Set alarm"
|
||||
msgstr "Postavi upozorenje"
|
||||
@@ -3257,7 +3270,7 @@ msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:248
|
||||
#: packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.ts:20
|
||||
#: packages/app-mobile/components/screens/Note.tsx:919
|
||||
#: packages/app-mobile/components/screens/Note.tsx:924
|
||||
msgid "Share"
|
||||
msgstr "Dijeli"
|
||||
|
||||
@@ -3298,8 +3311,9 @@ msgid "Show note counts"
|
||||
msgstr "Prikaži broj bilježaka"
|
||||
|
||||
#: packages/lib/models/Setting.ts:868
|
||||
#, fuzzy
|
||||
msgid "Show sort order buttons"
|
||||
msgstr "Prikaži gumbe za mijenjanje redoslijeda"
|
||||
msgstr "Prikaži broj bilježaka"
|
||||
|
||||
#: packages/lib/models/Setting.ts:1044
|
||||
msgid "Show tray icon"
|
||||
@@ -3617,20 +3631,20 @@ msgstr "Označeno: %d."
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:7
|
||||
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:725
|
||||
#: packages/app-mobile/components/screens/Note.tsx:926
|
||||
#: packages/app-mobile/components/screens/Note.tsx:931
|
||||
#: packages/app-mobile/components/screens/tags.js:101
|
||||
#: packages/app-mobile/components/side-menu-content.js:330
|
||||
msgid "Tags"
|
||||
msgstr "Oznake"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:898
|
||||
#: packages/app-mobile/components/screens/Note.tsx:903
|
||||
msgid "Take photo"
|
||||
msgstr "Snimi sliku"
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:148
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
#: packages/server/src/services/MustacheService.ts:151
|
||||
#: packages/server/src/services/MustacheService.ts:307
|
||||
msgid "Tasks"
|
||||
msgstr "Zadaci"
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/models/Setting.ts:1230
|
||||
msgid "Text editor command"
|
||||
@@ -3734,7 +3748,7 @@ msgstr ""
|
||||
"preporučujemo da ih nadogradiš. Nadograđeni ključ će i nadalje moći "
|
||||
"dešifrirati i šifrirati tvoje podatke."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:193
|
||||
#: packages/app-mobile/components/screens/Note.tsx:196
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr ""
|
||||
"Joplin program za mobilne uređaje trenutačno ne podržava ovu vrstu "
|
||||
@@ -3919,7 +3933,7 @@ msgstr ""
|
||||
msgid "This attachment is not downloaded or not decrypted yet"
|
||||
msgstr "Ovaj privitak još nije preuzet ili dešifriran"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:187
|
||||
#: packages/app-mobile/components/screens/Note.tsx:190
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr "Ovaj privitak još nije preuzet ili dešifriran."
|
||||
|
||||
@@ -3945,11 +3959,11 @@ msgstr ""
|
||||
msgid "This note does not have geolocation information."
|
||||
msgstr "Ova bilješka nema geografske podatke mjesta."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:104
|
||||
#: packages/app-mobile/components/screens/Note.tsx:107
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Ova je blješka promijenjena:"
|
||||
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:610
|
||||
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx:609
|
||||
msgid ""
|
||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||
"note."
|
||||
@@ -4103,8 +4117,9 @@ msgid "Toggle note list"
|
||||
msgstr "Uključi/Isključi popis bilježaka"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/togglePerFolderSortOrder.ts:7
|
||||
#, fuzzy
|
||||
msgid "Toggle own sort order"
|
||||
msgstr "Uključi/Isključi vlastiti redoslijed"
|
||||
msgstr "Uključi/Isključi sigurni modus"
|
||||
|
||||
#: packages/app-desktop/commands/toggleSafeMode.ts:8
|
||||
msgid "Toggle safe mode"
|
||||
@@ -4115,8 +4130,9 @@ msgid "Toggle sidebar"
|
||||
msgstr "Uključi/Isključi bočnu traku"
|
||||
|
||||
#: packages/app-desktop/gui/MainScreen/commands/toggleNotesSortOrderField.ts:7
|
||||
#, fuzzy
|
||||
msgid "Toggle sort order field"
|
||||
msgstr "Uključi/Isključi redoslijed polja"
|
||||
msgstr "Uključi/Isključi sigurni modus"
|
||||
|
||||
#: packages/app-desktop/gui/ClipperConfigScreen.min.js:40
|
||||
#: packages/app-desktop/gui/ClipperConfigScreen.tsx:41
|
||||
@@ -4199,7 +4215,7 @@ msgstr ""
|
||||
"Prestati dijeliti ovu bilježnicu? Primalac više neće imati pristup sadržaju "
|
||||
"bilježnice."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:680
|
||||
#: packages/app-mobile/components/screens/Note.tsx:685
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Nepodržana vrsta slike: %s"
|
||||
|
||||
@@ -4220,12 +4236,14 @@ msgstr "Aktualiziraj"
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:171
|
||||
#: packages/server/src/routes/index/users.ts:89
|
||||
#, fuzzy
|
||||
msgid "Update profile"
|
||||
msgstr "Aktualiziraj profil"
|
||||
msgstr "Izvezi profil"
|
||||
|
||||
#: packages/server/src/services/TaskService.ts:32
|
||||
#, fuzzy
|
||||
msgid "Update total sizes"
|
||||
msgstr "Aktualiziraj ukupne veličine"
|
||||
msgstr "Aktualizirani lokalni elementi: %d."
|
||||
|
||||
#: packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginBox.tsx:208
|
||||
#: packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginBox.tsx:209
|
||||
@@ -4254,7 +4272,7 @@ msgstr "Aktualizirano: "
|
||||
msgid "Updated: %d."
|
||||
msgstr "Aktualizirano: %d."
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:836
|
||||
#: packages/app-mobile/components/screens/Note.tsx:841
|
||||
msgid "Updated: %s"
|
||||
msgstr "Aktualizirano: %s"
|
||||
|
||||
@@ -4329,15 +4347,15 @@ msgstr ""
|
||||
"Koristi se za tekst fiksne širine (npr. tablice, potvrdni okivi, programski "
|
||||
"kod). Ako se ne pronađe, koristi se generički font fiksne širine."
|
||||
|
||||
#: packages/server/src/services/MustacheService.ts:144
|
||||
#: packages/server/src/services/MustacheService.ts:147
|
||||
msgid "User deletions"
|
||||
msgstr "Brisanja korisnika"
|
||||
msgstr ""
|
||||
|
||||
#: packages/server/src/routes/admin/users.ts:107
|
||||
#: packages/server/src/services/MustacheService.ts:140
|
||||
#: packages/server/src/services/MustacheService.ts:301
|
||||
#: packages/server/src/services/MustacheService.ts:143
|
||||
#: packages/server/src/services/MustacheService.ts:304
|
||||
msgid "Users"
|
||||
msgstr "Korisnici"
|
||||
msgstr ""
|
||||
|
||||
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:182
|
||||
msgid "Valid"
|
||||
@@ -4347,7 +4365,7 @@ msgstr "Ispravno"
|
||||
msgid "View"
|
||||
msgstr "Prikaz"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:840
|
||||
#: packages/app-mobile/components/screens/Note.tsx:845
|
||||
msgid "View on map"
|
||||
msgstr "Pogledaj na karti"
|
||||
|
||||
@@ -4443,12 +4461,12 @@ msgid "yes"
|
||||
msgstr "da"
|
||||
|
||||
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:28
|
||||
#: packages/app-mobile/components/screens/Note.tsx:586
|
||||
#: packages/app-mobile/components/screens/Note.tsx:591
|
||||
#: packages/lib/shim-init-node.js:172 packages/lib/versionInfo.ts:27
|
||||
msgid "Yes"
|
||||
msgstr "Da"
|
||||
|
||||
#: packages/app-mobile/components/screens/Note.tsx:585
|
||||
#: packages/app-mobile/components/screens/Note.tsx:590
|
||||
#: packages/lib/shim-init-node.js:171
|
||||
msgid ""
|
||||
"You are about to attach a large image (%dx%d pixels). Would you like to "
|
||||
@@ -4492,12 +4510,12 @@ msgstr ""
|
||||
"Tvoja glavna lozinka je potrebna za dešifriranje nekih tvojih podataka."
|
||||
|
||||
#: packages/app-cli/app/command-sync.ts:242
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Your password is needed to decrypt some of your data. Type `:e2ee decrypt` "
|
||||
"to set it."
|
||||
msgstr ""
|
||||
"Tvoja lozinka je potrebna za dešifriranje nekih tvojih podataka. Za "
|
||||
"postavljanje utipkaj `:e2ee decrypt`."
|
||||
"Tvoja glavna lozinka je potrebna za dešifriranje nekih tvojih podataka."
|
||||
|
||||
#: packages/app-mobile/components/CameraView.tsx:189
|
||||
msgid "Your permission to use your camera is required."
|
||||
@@ -4510,11 +4528,11 @@ msgstr "Tvoja verzija: %s"
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:653
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:659
|
||||
msgid "Zoom In"
|
||||
msgstr "Uvećaj prikaz"
|
||||
msgstr "Uvećaj"
|
||||
|
||||
#: packages/app-desktop/gui/MenuBar.tsx:666
|
||||
msgid "Zoom Out"
|
||||
msgstr "Umanji prikaz"
|
||||
msgstr "Umanji"
|
||||
|
||||
#~ msgid "Automatically update the application"
|
||||
#~ msgstr "Automatski aktualiziraj program"
|
||||
|
||||