1
0
mirror of https://github.com/laurent22/joplin.git synced 2026-02-22 08:47:34 +02:00

Compare commits

...

17 Commits

Author SHA1 Message Date
Hubert
cde490a59b Solved the typescript error. 2023-08-17 10:51:14 -03:00
Hubert
eefebb2444 lowercase the searchQuery to turns the search for users case-insensitive, in postgresql and sqlite. 2023-08-16 15:29:44 -03:00
Hubert
f92ca399b8 Removes the trim. 2023-08-16 15:00:38 -03:00
Hubert
c30f895db9 Just added a trim in the searchQuery. 2023-08-16 14:44:14 -03:00
Laurent Cozic
5ed3d94faa Server: Ensure that server does not crash when trying to start a task that is already running 2023-08-16 15:03:20 +01:00
renovate[bot]
d0e943630d Update dependency rate-limiter-flexible to v2.4.2 (#8678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-16 13:06:33 +00:00
Henry Heino
406e933407 Chore: Mobile: Remove unused dependency (#8676) 2023-08-16 12:00:14 +01:00
Xavi Ivars
7108a4243d Update Catalan localization (#8675) 2023-08-16 10:41:26 +01:00
github-actions[bot]
135e2e4a21 @xavivars has signed the CLA in laurent22/joplin#8675 2023-08-15 23:52:14 +00:00
renovate[bot]
c68c0bf501 Update dependency @react-native-community/datetimepicker to v7.4.1 (#8672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 19:08:56 +00:00
renovate[bot]
cf3d86698d Update dependency @react-native-community/datetimepicker to v7.4.0 (#8671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 17:35:53 +01:00
Mr-Kanister
3251c4c40e Update de_DE.po (#8668) 2023-08-15 17:00:15 +01:00
Laurent Cozic
bd5e0fd42a Merge branch 'release-2.12' into dev 2023-08-14 18:39:56 +01:00
Laurent Cozic
7d0b7122f0 Revert "Desktop: Fixes #8661: Fix note editor blank after syncing an encrypted note with remote changes (#8665)"
This reverts commit 85eddbfe22.

Due to useForm conflicts with https://github.com/laurent22/joplin/pull/8654
2023-08-14 18:38:31 +01:00
Henry Heino
85eddbfe22 Desktop: Fixes #8661: Fix note editor blank after syncing an encrypted note with remote changes (#8665) 2023-08-14 18:21:41 +01:00
renovate[bot]
5d87b4ca3e Update dependency word-wrap to v1.2.5 (#8651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-11 19:23:30 +00:00
renovate[bot]
89f550ca48 Update dependency sharp to v0.32.4 (#8648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 21:41:09 +00:00
15 changed files with 268 additions and 317 deletions

View File

@@ -57,7 +57,7 @@
"proper-lockfile": "4.1.2",
"read-chunk": "2.1.0",
"server-destroy": "1.0.1",
"sharp": "0.32.3",
"sharp": "0.32.4",
"sprintf-js": "1.1.2",
"sqlite3": "5.1.6",
"string-padding": "1.0.2",
@@ -66,7 +66,7 @@
"terminal-kit": "3.0.0",
"tkwidgets": "0.5.27",
"url-parse": "1.5.10",
"word-wrap": "1.2.4",
"word-wrap": "1.2.5",
"yargs-parser": "21.1.1"
},
"devDependencies": {

View File

@@ -24,7 +24,7 @@
"@joplin/renderer": "~2.12",
"@joplin/utils": "~2.12",
"@react-native-community/clipboard": "1.5.1",
"@react-native-community/datetimepicker": "7.3.0",
"@react-native-community/datetimepicker": "7.4.1",
"@react-native-community/geolocation": "3.0.6",
"@react-native-community/netinfo": "9.4.1",
"@react-native-community/push-notification-ios": "1.11.0",
@@ -43,7 +43,6 @@
"punycode": "2.3.0",
"react": "18.2.0",
"react-native": "0.71.10",
"react-native-action-button": "2.8.5",
"react-native-camera": "4.2.1",
"react-native-device-info": "10.7.0",
"react-native-dialogbox": "0.6.10",

View File

@@ -25,7 +25,7 @@
"@types/uuid": "9.0.2",
"clean-html": "1.5.0",
"jest": "29.5.0",
"sharp": "0.32.3",
"sharp": "0.32.4",
"typescript": "5.1.3"
},
"dependencies": {
@@ -91,7 +91,7 @@
"uglifycss": "0.0.29",
"url-parse": "1.5.10",
"uuid": "9.0.0",
"word-wrap": "1.2.4",
"word-wrap": "1.2.5",
"xml2js": "0.4.23"
},
"gitHead": "eb4b0e64eab40a51b0895d3a40a9d8c3cb7b1b14"

View File

@@ -49,7 +49,7 @@
"pretty-bytes": "5.6.0",
"prettycron": "0.10.0",
"query-string": "7.1.3",
"rate-limiter-flexible": "2.4.1",
"rate-limiter-flexible": "2.4.2",
"raw-body": "2.5.2",
"sqlite3": "5.1.6",
"stripe": "8.222.0",

View File

@@ -1,4 +1,5 @@
import { TaskId, TaskState } from '../services/database/types';
import { ErrorBadRequest, ErrorCode } from '../utils/errors';
import BaseModel from './BaseModel';
export default class TaskStateModel extends BaseModel<TaskState> {
@@ -32,13 +33,13 @@ export default class TaskStateModel extends BaseModel<TaskState> {
public async start(taskId: TaskId) {
const state = await this.loadByTaskId(taskId);
if (state.running) throw new Error(`Task is already running: ${taskId}`);
if (state.running) throw new ErrorBadRequest(`Task is already running: ${taskId}`, { code: ErrorCode.TaskAlreadyRunning });
await this.save({ id: state.id, running: 1 });
}
public async stop(taskId: TaskId) {
const state = await this.loadByTaskId(taskId);
if (!state.running) throw new Error(`Task is not running: ${taskId}`);
if (!state.running) throw new ErrorBadRequest(`Task is not running: ${taskId}`, { code: ErrorCode.TaskAlreadyRunning });
await this.save({ id: state.id, running: 0 });
}

View File

@@ -100,7 +100,7 @@ router.get('admin/users', async (_path: SubPath, ctx: AppContext) => {
await userModel.checkIfAllowed(ctx.joplin.owner, AclAction.List);
const showDisabled = ctx.query.show_disabled === '1';
const searchQuery = ctx.query.query || '';
const searchQuery = (ctx.query.query && ctx.query.query.toString().toLowerCase()) || '';
const pagination = makeTablePagination(ctx.query, 'full_name', PaginationOrderDir.ASC);
pagination.limit = 1000;
@@ -112,7 +112,9 @@ router.get('admin/users', async (_path: SubPath, ctx: AppContext) => {
if (searchQuery) {
void query.where(qb => {
void qb.whereRaw('full_name like ?', [`%${searchQuery}%`]).orWhereRaw('email like ?', [`%${searchQuery}%`]);
void qb
.whereRaw('lower(full_name) like ?', [`%${searchQuery}%`])
.orWhereRaw('lower(email) like ?', [`%${searchQuery}%`]);
});
}

View File

@@ -1,5 +1,6 @@
import config from '../config';
import { Models } from '../models/factory';
import { ErrorCode } from '../utils/errors';
import { afterAllTests, beforeAllDb, beforeEachDb, expectThrow, models } from '../utils/testing/testUtils';
import { Env } from '../utils/types';
import { TaskId } from './database/types';
@@ -14,6 +15,23 @@ const newService = () => {
});
};
const createDemoTasks = (): Task[] => {
return [
{
id: TaskId.DeleteExpiredTokens,
description: '',
run: (_models: Models) => {},
schedule: '',
},
{
id: TaskId.CompressOldChanges,
description: '',
run: (_models: Models) => {},
schedule: '',
},
];
};
describe('TaskService', () => {
beforeAll(async () => {
@@ -31,98 +49,66 @@ describe('TaskService', () => {
test('should register a task', async () => {
const service = newService();
const task: Task = {
id: TaskId.DeleteExpiredTokens,
description: '',
run: (_models: Models) => {},
schedule: '',
};
await service.registerTask(task);
const tasks = createDemoTasks();
await service.registerTasks(tasks);
expect(service.tasks[TaskId.DeleteExpiredTokens]).toBeTruthy();
await expectThrow(async () => service.registerTask(task));
expect(service.tasks[TaskId.CompressOldChanges]).toBeTruthy();
await expectThrow(async () => service.registerTask(tasks[0]));
});
// test('should run a task', async function() {
// const service = newService();
// let taskStarted = false;
// let waitToFinish = true;
// let finishTask = false;
// let taskHasRan = false;
// const taskId = TaskId.DeleteExpiredTokens;
// const task: Task = {
// id: taskId,
// description: '',
// run: async (_models: Models) => {
// taskStarted = true;
// const iid = setInterval(() => {
// if (waitToFinish) return;
// if (finishTask) {
// clearInterval(iid);
// taskHasRan = true;
// }
// }, 1);
// },
// schedule: '',
// };
// await service.registerTask(task);
// expect((await service.taskState(taskId)).running).toBe(0);
// const startTime = new Date();
// void service.runTask(taskId, RunType.Manual);
// while (!taskStarted) {
// await msleep(1);
// }
// expect((await service.taskState(taskId)).running).toBe(1);
// waitToFinish = false;
// while (!taskHasRan) {
// await msleep(1);
// finishTask = true;
// }
// expect((await service.taskState(taskId)).running).toBe(0);
// const events = await service.taskLastEvents(taskId);
// expect(events.taskStarted.created_time).toBeGreaterThanOrEqual(startTime.getTime());
// expect(events.taskCompleted.created_time).toBeGreaterThan(startTime.getTime());
// });
test('should not run if task is disabled', async () => {
const service = newService();
let taskHasRan = false;
const taskId = TaskId.DeleteExpiredTokens;
const task: Task = {
id: taskId,
description: '',
run: async (_models: Models) => {
taskHasRan = true;
},
schedule: '',
};
await service.registerTask(task);
const tasks = createDemoTasks();
tasks[0].run = async (_models: Models) => {
taskHasRan = true;
},
await service.registerTasks(tasks);
const taskId = tasks[0].id;
await service.runTask(taskId, RunType.Manual);
expect(taskHasRan).toBe(true);
taskHasRan = false;
await models().taskState().disable(task.id);
await models().taskState().disable(taskId);
await service.runTask(taskId, RunType.Manual);
expect(taskHasRan).toBe(false);
});
test('should not run if task is already running', async () => {
const service = newService();
const tasks = createDemoTasks();
await service.registerTasks(tasks);
const task = tasks[0];
const state = await models().taskState().loadByTaskId(task.id);
await models().taskState().save({ id: state.id, running: 1 });
await expectThrow(async () => service.runTask(task.id, RunType.Manual), ErrorCode.TaskAlreadyRunning);
});
test('should reset interrupted tasks', async () => {
const service = newService();
const tasks = createDemoTasks();
await service.registerTasks(tasks);
const task = tasks[0];
const state = await models().taskState().loadByTaskId(task.id);
await models().taskState().save({ id: state.id, running: 1 });
const stateBefore = await models().taskState().loadByTaskId(task.id);
await service.resetInterruptedTasks();
const stateAfter = await models().taskState().loadByTaskId(task.id);
expect(stateBefore.running).toBe(1);
expect(stateAfter.running).toBe(0);
});
});

View File

@@ -5,7 +5,7 @@ import BaseService from './BaseService';
import { Event, EventType, TaskId, TaskState } from './database/types';
import { Services } from './types';
import { _ } from '@joplin/lib/locale';
import { ErrorNotFound } from '../utils/errors';
import { ErrorCode, ErrorNotFound } from '../utils/errors';
import { durationToMilliseconds } from '../utils/time';
const cron = require('node-cron');
@@ -104,6 +104,16 @@ export default class TaskService extends BaseService {
};
}
public async resetInterruptedTasks() {
const taskStates = await this.models.taskState().all();
for (const taskState of taskStates) {
if (taskState.running) {
logger.warn(`Found a task that was in running state: ${this.taskDisplayString(taskState.task_id)} - resetting it.`);
await this.models.taskState().stop(taskState.task_id);
}
}
}
private taskById(id: TaskId): Task {
if (!this.tasks_[id]) throw new Error(`No such task: ${id}`);
return this.tasks_[id];
@@ -159,13 +169,28 @@ export default class TaskService extends BaseService {
interval = null;
}
const runTaskWithErrorChecking = async (taskId: TaskId) => {
try {
await this.runTask(taskId, RunType.Scheduled);
} catch (error) {
if (error.code === ErrorCode.TaskAlreadyRunning) {
// This is not critical but we should log a warning
// because it may mean that the interval is too tight,
// or the task is taking too long.
logger.warn(`Tried to start ${this.taskDisplayString(taskId)} but it was already running`);
} else {
logger.error(`Failed running task ${this.taskDisplayString(taskId)}`, error);
}
}
};
if (interval !== null) {
setInterval(async () => {
await this.runTask(Number(taskId), RunType.Scheduled);
await runTaskWithErrorChecking(Number(taskId));
}, interval);
} else {
cron.schedule(task.schedule, async () => {
await this.runTask(Number(taskId), RunType.Scheduled);
await runTaskWithErrorChecking(Number(taskId));
});
}
}

View File

@@ -6,6 +6,7 @@ export enum ErrorCode {
NoSub = 'no_sub',
NoStripeSub = 'no_stripe_sub',
InvalidOrigin = 'invalidOrigin',
TaskAlreadyRunning = 'taskAlreadyRunning',
}
export interface ErrorOptions {

View File

@@ -104,5 +104,7 @@ export default async function(env: Env, models: Models, config: Config, services
await taskService.registerTasks(tasks);
await taskService.resetInterruptedTasks();
return taskService;
}

View File

@@ -48,7 +48,7 @@ msgstr "(%s)"
#: packages/lib/services/plugins/api/JoplinViewsDialogs.ts:73
msgid "(In plugin: %s)"
msgstr ""
msgstr "(A l'extensió: %s)"
#: packages/lib/SyncTargetNone.ts:16
msgid "(None)"
@@ -96,12 +96,12 @@ msgstr "%d dies"
#: packages/lib/utils/joplinCloud.ts:136 packages/lib/utils/joplinCloud.ts:137
#: packages/lib/utils/joplinCloud.ts:138
msgid "%d GB"
msgstr ""
msgstr "%d GB"
#: packages/lib/utils/joplinCloud.ts:133 packages/lib/utils/joplinCloud.ts:134
#: packages/lib/utils/joplinCloud.ts:135
msgid "%d GB storage space"
msgstr ""
msgstr "%d GB d'espai d'emmagatzematge"
#: packages/lib/models/Setting.ts:1367
msgid "%d hour"
@@ -114,13 +114,12 @@ msgstr "%d hores"
#: packages/lib/utils/joplinCloud.ts:124 packages/lib/utils/joplinCloud.ts:125
#: packages/lib/utils/joplinCloud.ts:126
msgid "%d MB"
msgstr ""
msgstr "%d MB"
#: packages/lib/utils/joplinCloud.ts:121 packages/lib/utils/joplinCloud.ts:122
#: packages/lib/utils/joplinCloud.ts:123
#, fuzzy
msgid "%d MB per note or attachment"
msgstr "Adjunts de la nota"
msgstr "%d MB per nota o adjunt"
#: packages/lib/models/Setting.ts:1364 packages/lib/models/Setting.ts:1365
#: packages/lib/models/Setting.ts:1366
@@ -133,9 +132,8 @@ msgstr "%d notes coincideixen amb aquest patró. Voleu suprimir-les?"
#: packages/app-desktop/gui/NoteListControls/NoteListControls.tsx:257
#: packages/app-desktop/gui/NoteListControls/NoteListControls.tsx:267
#, fuzzy
msgid "%s"
msgstr "(%s)"
msgstr "%s"
#: packages/app-desktop/gui/MainScreen/commands/duplicateNote.ts:18
msgid "%s - Copy"
@@ -263,15 +261,15 @@ msgstr "Accepta"
#: packages/lib/WebDavApi.js:451
msgid "Access denied: Please check your username and password"
msgstr ""
msgstr "S'ha denegat l'accés: comproveu el nom d'usuari i la contrasenya"
#: packages/lib/WebDavApi.js:449
msgid "Access denied: Please re-enter your password and/or username"
msgstr ""
msgstr "S'ha denegat l'accés: torneu a introduir el nom d'usuari i/o la contrasenya"
#: packages/server/src/routes/admin/users.ts:138
msgid "Account"
msgstr ""
msgstr "Compte"
#: packages/app-desktop/gui/ResourceScreen.tsx:96
msgid "Action"
@@ -296,9 +294,8 @@ msgid "Add body"
msgstr "Afegeix contingut"
#: packages/app-mobile/components/ActionButton.tsx:59
#, fuzzy
msgid "Add new"
msgstr "Afegeix títol"
msgstr "Afegeix-ne un"
#: packages/app-desktop/gui/MainScreen/commands/setTags.ts:38
msgid "Add or remove tags:"
@@ -336,7 +333,7 @@ msgstr "Opcions avançades"
#: packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.tsx:99
msgid ""
"All data, including notes, notebooks and tags will be permanently deleted."
msgstr ""
msgstr "Totes les dades, incloent notes, blocs de notes i etiquetes se suprimiran de manera permanent."
#: packages/app-desktop/gui/Sidebar/Sidebar.tsx:497
#: packages/app-mobile/components/screens/Notes.tsx:178
@@ -417,9 +414,8 @@ msgid "Aritim Dark"
msgstr "Aritim fosc"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:220
#, fuzzy
msgid "Attach"
msgstr "Adjunta..."
msgstr "Adjunta"
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:59
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:615
@@ -540,13 +536,12 @@ msgid "Bulleted List"
msgstr "Llista de pics"
#: packages/server/src/routes/admin/users.ts:154
#, fuzzy
msgid "Can Share"
msgstr "Comparteix"
msgstr "Pot compartir"
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:114
msgid "Can view"
msgstr ""
msgstr "Pot veure"
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:115
msgid "Can view and edit"
@@ -604,9 +599,8 @@ msgid "Cannot copy note to \"%s\" notebook"
msgstr "No es pot copiar la nota al bloc de notes «%s»"
#: packages/app-mobile/components/screens/Notes.tsx:165
#, fuzzy
msgid "Cannot create a new note: %s"
msgstr "Crea una nota nova."
msgstr "No pot crear una nova nota: %s"
#: packages/app-cli/app/command-attach.js:21
#: packages/app-cli/app/command-cat.js:25 packages/app-cli/app/command-cp.js:24
@@ -637,7 +631,6 @@ msgid "Cannot find \"%s\"."
msgstr "No es pot trobar «%s»."
#: packages/app-cli/app/command-mkbook.ts:28
#, fuzzy
msgid "Cannot find: \"%s\""
msgstr "No es pot trobar «%s»."
@@ -780,9 +773,8 @@ msgid "Close"
msgstr "Tanca"
#: packages/app-mobile/components/Dropdown.tsx:156
#, fuzzy
msgid "Close dropdown"
msgstr "Tanca la finestra"
msgstr "Tanca el desplegable"
#: packages/app-desktop/gui/KeymapConfig/utils/getLabel.ts:24
#: packages/app-desktop/gui/MenuBar.tsx:598
@@ -912,9 +904,8 @@ msgid "Convert to todo"
msgstr "Converteix a llistat de tasques pendents"
#: packages/app-mobile/components/voiceTyping/VoiceTypingDialog.tsx:89
#, fuzzy
msgid "Converting speech to text..."
msgstr "Converteix a nota"
msgstr "Converteix text a veu..."
#: packages/app-desktop/gui/MenuBar.tsx:497
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:19
@@ -958,9 +949,8 @@ msgstr[1] "Copia els enllaços compartibles"
#: packages/app-desktop/gui/JoplinCloudConfigScreen.tsx:21
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:370
#, fuzzy
msgid "Copy to clipboard"
msgstr "Copia el camí al porta-retalls"
msgstr "Copia al porta-retalls"
#: packages/app-desktop/gui/ClipperConfigScreen.tsx:140
msgid "Copy token"
@@ -1015,9 +1005,8 @@ msgstr ""
"L'error és \"%s\""
#: packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.tsx:56
#, fuzzy
msgid "Could not switch profile: %s"
msgstr "No s'ha pogut instal·lar l'extensió: %s"
msgstr "No s'ha pogut canviar el perfil: %s"
#: packages/lib/components/EncryptionConfigScreen/utils.ts:219
msgid "Could not upgrade master key: %s"
@@ -1032,18 +1021,16 @@ msgstr ""
"s'està avortant. Torneu a provar quan tingueu connexió a Internet."
#: packages/app-mobile/components/biometrics/biometricAuthenticate.ts:20
#, fuzzy
msgid "Could not verify your identify: %s"
msgstr "No s'han pogut exportar les notes: %s"
msgstr "No s'ha pogut verificar la identitat: %s"
#: packages/app-desktop/gui/PromptDialog.tsx:277
msgid "Create"
msgstr "Crea"
#: packages/app-cli/app/command-mkbook.ts:19
#, fuzzy
msgid "Create a new notebook under a parent notebook."
msgstr "Crea un bloc de notes nou."
msgstr "Crea un bloc de notes nou sota un bloc de notes pare."
#: packages/app-mobile/components/NoteList.tsx:98
msgid "Create a notebook"
@@ -1231,9 +1218,8 @@ msgstr ""
"sincronització"
#: packages/app-desktop/gui/MainScreen/commands/deleteNote.ts:8
#, fuzzy
msgid "Delete note"
msgstr "Voleu suprimir la nota?"
msgstr "Suprimeix la nota"
#: packages/lib/models/Note.ts:778
msgid "Delete note \"%s\"?"
@@ -1245,9 +1231,8 @@ msgid "Delete note?"
msgstr "Voleu suprimir la nota?"
#: packages/app-desktop/gui/MainScreen/commands/deleteFolder.ts:9
#, fuzzy
msgid "Delete notebook"
msgstr "Voleu suprimir la nota?"
msgstr "Suprimeix el bloc de notes"
#: packages/app-desktop/gui/MainScreen/commands/deleteFolder.ts:20
#: packages/app-mobile/components/side-menu-content.tsx:162
@@ -1273,14 +1258,12 @@ msgid "Delete plugin \"%s\"?"
msgstr "Voleu suprimir l'extensió \"%s\"?"
#: packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.tsx:102
#, fuzzy
msgid "Delete profile \"%s\""
msgstr "Voleu suprimir la nota \"%s\"?"
msgstr "Suprimeix el perfil \"%s\"?"
#: packages/app-mobile/components/ScreenHeader.tsx:438
#, fuzzy
msgid "Delete selected notes"
msgstr "Voleu suprimir aquestes notes?"
msgstr "Suprimeix les notes seleccionades"
#: packages/app-desktop/gui/MainScreen/commands/deleteFolder.ts:22
#: packages/app-mobile/components/side-menu-content.tsx:159
@@ -1304,9 +1287,8 @@ msgstr ""
"quadern compartit."
#: packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.tsx:98
#, fuzzy
msgid "Delete this profile?"
msgstr "Voleu suprimir aquestes %d notes?"
msgstr "Voleu suprimir aquestes perfil?"
#: packages/lib/Synchronizer.ts:192
msgid "Deleted local items: %d."
@@ -1485,9 +1467,8 @@ msgid "Downloading"
msgstr "Descarregant"
#: packages/app-mobile/components/voiceTyping/VoiceTypingDialog.tsx:90
#, fuzzy
msgid "Downloading %s language files..."
msgstr "Descarregant recursos..."
msgstr "S'estan baixant %s fitxers de llengua..."
#: packages/app-cli/app/command-sync.ts:219
msgid "Downloading resources..."
@@ -1520,9 +1501,8 @@ msgid "Duplicate line"
msgstr "Duplica la línia"
#: packages/app-mobile/components/ScreenHeader.tsx:456
#, fuzzy
msgid "Duplicate selected notes"
msgstr "Duplica la línia"
msgstr "Duplica les notes seleccionades"
#: packages/app-cli/app/command-cp.js:13
msgid ""
@@ -1545,9 +1525,8 @@ msgid "Edit in external editor"
msgstr "Edita en un editor extern"
#: packages/app-mobile/components/NoteEditor/EditLinkDialog.tsx:141
#, fuzzy
msgid "Edit link"
msgstr "Edita el bloc de notes"
msgstr "Edita l'enllaç"
#: packages/app-cli/app/command-edit.js:17
msgid "Edit note."
@@ -1559,9 +1538,8 @@ msgid "Edit notebook"
msgstr "Edita el bloc de notes"
#: packages/app-mobile/components/ProfileSwitcher/ProfileEditor.tsx:88
#, fuzzy
msgid "Edit profile"
msgstr "Exporta el perfil"
msgstr "Edita el perfil"
#: packages/app-desktop/commands/editProfileConfig.ts:9
msgid "Edit profile configuration..."
@@ -1614,13 +1592,12 @@ msgstr "Correu electrònic"
#: packages/app-desktop/gui/JoplinCloudConfigScreen.tsx:18
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:364
#, fuzzy
msgid "Email to note"
msgstr "Edita la nota."
msgstr "De correu electrònic a nota"
#: packages/lib/utils/joplinCloud.ts:165
msgid "Email to Note"
msgstr ""
msgstr "De correu electrònic a nota"
#: packages/server/src/routes/admin/emails.ts:111
#: packages/server/src/services/MustacheService.ts:128
@@ -1723,9 +1700,8 @@ msgid "Enable table of contents extension"
msgstr "Activar l'extensió de l'índex"
#: packages/lib/models/Setting.ts:1070
#, fuzzy
msgid "Enable the Markdown toolbar"
msgstr "Activa els emoticons Markdown"
msgstr "Activa la barra d'eines Markdown"
#: packages/lib/models/Setting.ts:1153
msgid "Enable typographer support"
@@ -1864,9 +1840,8 @@ msgid "Export all"
msgstr "Exporta-ho tot"
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:87
#, fuzzy
msgid "Export all notes as JEX"
msgstr "Exporta-ho tot"
msgstr "Exporta totes les notes com a JEX"
#: packages/app-desktop/gui/StatusScreen/StatusScreen.tsx:177
msgid "Export debug report"
@@ -1893,9 +1868,8 @@ msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
msgstr "S'està exportant a «%s» com a format «%s». Espereu..."
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:87
#, fuzzy
msgid "Exporting..."
msgstr "Exportant el perfil..."
msgstr "S'està exportant..."
#: packages/app-cli/app/command-export.js:13
msgid ""
@@ -1960,9 +1934,8 @@ msgid "Find and replace"
msgstr ""
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:250
#, fuzzy
msgid "Find: "
msgstr "Trobades: %d."
msgstr "S'ha trobat: "
#: packages/app-desktop/gui/ExtensionBadge.tsx:63
msgid "Firefox Extension"
@@ -2031,9 +2004,8 @@ msgid "Force path style"
msgstr "Força l'estil del camí"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:292
#, fuzzy
msgid "Formatting"
msgstr "Informació"
msgstr "S'està aplicant el format"
#: packages/lib/commands/historyForward.ts:6
msgid "Forward"
@@ -2053,9 +2025,8 @@ msgid "Full changelog"
msgstr "Registre complet de canvis"
#: packages/server/src/routes/admin/users.ts:130
#, fuzzy
msgid "Full name"
msgstr "Registre complet de canvis"
msgstr "Nom complet"
#: packages/lib/models/Setting.ts:2525
#: packages/server/src/services/MustacheService.ts:109
@@ -2120,23 +2091,20 @@ msgid "Help"
msgstr "Ajuda"
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:690
#, fuzzy
msgid "Hermes enabled: %d"
msgstr "FTS activat: %d"
msgstr "Hermes activat: %d"
#: packages/app-desktop/gui/MenuBar.tsx:569
msgid "Hide %s"
msgstr "Amaga %s"
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:218
#, fuzzy
msgid "Hide advanced"
msgstr "Amaga les metadades"
msgstr "Amaga la cerca avançada"
#: packages/server/src/routes/admin/users.ts:200
#, fuzzy
msgid "Hide disabled"
msgstr "Amaga les claus deshabilitades"
msgstr "Amaga allò deshabilitat"
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:172
msgid "Hide disabled keys"
@@ -2147,14 +2115,12 @@ msgid "Hide Joplin"
msgstr "Amaga el Joplin"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:269
#, fuzzy
msgid "Hide keyboard"
msgstr "Amaga les metadades"
msgstr "Amaga el teclat"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/ToggleOverflowButton.tsx:22
#, fuzzy
msgid "Hide more actions"
msgstr "Amaga les metadades"
msgstr "Amaga més accions"
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/setupToolbarButtons.ts:14
msgid "Highlight"
@@ -2344,9 +2310,8 @@ msgstr "Introdueix un enllaç"
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:89
#: packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.tsx:649
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:201
#, fuzzy
msgid "Insert time"
msgstr "Insereix la data i hora"
msgstr "Insereix el temps"
#: packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginBox.tsx:191
msgid "Install"
@@ -2572,14 +2537,12 @@ msgid "Lines"
msgstr "Línies"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:186
#, fuzzy
msgid "Link"
msgstr "text destacat"
msgstr "Enllaç"
#: packages/app-mobile/components/NoteEditor/EditLinkDialog.tsx:95
#, fuzzy
msgid "Link description"
msgstr "Xifratge"
msgstr "Descripció de l'enllaç"
#: packages/app-desktop/gui/ShareNoteDialog.tsx:184
msgid "Link has been copied to clipboard!"
@@ -2588,9 +2551,8 @@ msgstr[0] "L'enllaç s'ha copiat al porta-retalls!"
msgstr[1] "Els enllaços s'han copiat al porta-retalls!"
#: packages/app-mobile/components/NoteEditor/EditLinkDialog.tsx:92
#, fuzzy
msgid "Link text"
msgstr "text destacat"
msgstr "Text de l'enllaç"
#: packages/app-mobile/components/screens/Note.tsx:206
msgid "Links with protocol \"%s\" are not supported"
@@ -2611,9 +2573,8 @@ msgid "Loaded"
msgstr "S'ha carregat"
#: packages/app-mobile/components/voiceTyping/VoiceTypingDialog.tsx:87
#, fuzzy
msgid "Loading..."
msgstr "S'està actualitzant..."
msgstr "S'està carregant..."
#: packages/app-desktop/gui/NotePropertiesDialog.tsx:54
msgid "Location"
@@ -2673,14 +2634,12 @@ msgid "Manage master password..."
msgstr "Gestiona la contrasenya mestra..."
#: packages/lib/utils/joplinCloud.ts:171
#, fuzzy
msgid "Manage multiple users"
msgstr "Gestiona la contrasenya mestra"
msgstr "Gestiona múltiples usuaris"
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:571
#, fuzzy
msgid "Manage profiles"
msgstr "Actualitza el perfil"
msgstr "Gestiona els perfils"
#: packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginsStates.tsx:325
msgid "Manage your plugins"
@@ -2746,14 +2705,12 @@ msgid "Max Item Size"
msgstr ""
#: packages/lib/utils/joplinCloud.ts:117
#, fuzzy
msgid "Max note or attachment size"
msgstr "Adjunts de la nota"
msgstr "Mida màxima de nota o adjunt"
#: packages/server/src/routes/admin/users.ts:150
#, fuzzy
msgid "Max Total Size"
msgstr "Mida real"
msgstr "Mida màxima total"
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:324
msgid "Missing keys"
@@ -2768,7 +2725,6 @@ msgid "Missing required argument: %s"
msgstr "Manca un argument requerit: %s"
#: packages/app-cli/app/cli-utils.js:135
#, fuzzy
msgid "Missing required flag value: %s"
msgstr "Manca un argument requerit: %s"
@@ -2806,9 +2762,8 @@ msgid "Move to notebook..."
msgstr "Mou al bloc de notes..."
#: packages/app-cli/app/command-mv.js:14
#, fuzzy
msgid "Moves the given <item> to [notebook]"
msgstr "Mou les notes que coincideixen amb <note> a [notebook]."
msgstr "Mou els elements marcats a [notebook]."
#: packages/app-cli/app/cli-utils.js:177
#: packages/app-cli/app/setupCommand.ts:21
@@ -2950,9 +2905,8 @@ msgid "Not generated"
msgstr "No s'ha generat"
#: packages/app-mobile/components/biometrics/BiometricPopup.tsx:91
#, fuzzy
msgid "Not now"
msgstr "Fes-ho ara"
msgstr "No ara"
#: packages/app-desktop/gui/NoteEditor/NoteTitle/NoteTitleBar.tsx:112
#: packages/app-desktop/gui/NoteListControls/NoteListControls.tsx:122
@@ -2987,9 +2941,8 @@ msgid "Note does not exist: \"%s\". Create it?"
msgstr "La nota «%s» no existeix. Voleu crear-la?"
#: packages/app-mobile/components/NoteEditor/NoteEditor.tsx:84
#, fuzzy
msgid "Note editor"
msgstr "Historial de la nota"
msgstr "Editor de la nota"
#: packages/app-cli/app/command-edit.js:97
msgid "Note has been saved."
@@ -3137,9 +3090,8 @@ msgid "Open %s"
msgstr "Obre %s"
#: packages/app-desktop/gui/MainScreen/commands/openPdfViewer.ts:7
#, fuzzy
msgid "Open PDF viewer"
msgstr "Habilita el visor de PDF"
msgstr "Obre el visor de PDF"
#: packages/app-desktop/commands/openProfileDirectory.ts:8
msgid "Open profile directory"
@@ -3170,9 +3122,8 @@ msgid "Or create an account."
msgstr "O creeu un compte."
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:86
#, fuzzy
msgid "Ordered list"
msgstr "Crea un usuari"
msgstr "Llista ordenada"
#: packages/app-desktop/gui/MenuBar.tsx:412
msgid "Other applications..."
@@ -3403,9 +3354,8 @@ msgid "Privacy Policy"
msgstr "Política de privacitat"
#: packages/lib/utils/joplinCloud.ts:322
#, fuzzy
msgid "Pro"
msgstr "Perfil"
msgstr "Pro"
#: packages/server/src/services/TaskService.ts:26
msgid "Process failed payment subscriptions"
@@ -3424,9 +3374,8 @@ msgid "Profile"
msgstr "Perfil"
#: packages/app-mobile/components/ProfileSwitcher/ProfileEditor.tsx:96
#, fuzzy
msgid "Profile name"
msgstr "Nom del perfil:"
msgstr "Nom del perfil"
#: packages/app-desktop/gui/MainScreen/commands/addProfile.ts:17
msgid "Profile name:"
@@ -3437,18 +3386,16 @@ msgid "Profile Version: %s"
msgstr "Versió del perfil: %s"
#: packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.tsx:156
#, fuzzy
msgid "Profiles"
msgstr "Perfil"
msgstr "Perfils"
#: packages/app-mobile/components/screens/Note.tsx:1043
msgid "Properties"
msgstr "Propietats"
#: packages/lib/models/Setting.ts:1495
#, fuzzy
msgid "Proxy enabled"
msgstr "Activat"
msgstr "Intermediari activat"
#: packages/lib/models/Setting.ts:1517
msgid "Proxy timeout (seconds)"
@@ -3530,9 +3477,8 @@ msgid "Refresh"
msgstr "Actualitza"
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:313
#, fuzzy
msgid "Regular expression"
msgstr "Activa les expressions matemàtiques"
msgstr "Expressió regular"
#: packages/app-desktop/gui/MainScreen/MainScreen.tsx:633
#: packages/app-desktop/gui/Root.tsx:181
@@ -3577,9 +3523,8 @@ msgid "Replace"
msgstr ""
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:298
#, fuzzy
msgid "Replace all"
msgstr "Seleccioneu tot"
msgstr "Reemplaça-ho tot"
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:236
msgid "Replace with..."
@@ -3590,9 +3535,8 @@ msgid "Replace: "
msgstr ""
#: packages/app-desktop/gui/MainScreen/commands/resetLayout.ts:7
#, fuzzy
msgid "Reset application layout"
msgstr "Canvia la disposició de l'aplicació"
msgstr "Reinicialitza la disposició de l'aplicació"
#: packages/app-desktop/gui/MasterPasswordDialog/Dialog.tsx:220
#: packages/app-desktop/gui/MasterPasswordDialog/Dialog.tsx:221
@@ -3730,9 +3674,8 @@ msgid "Search for plugins..."
msgstr "Cerca connectors..."
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:223
#, fuzzy
msgid "Search for..."
msgstr "Cerca..."
msgstr "Cerca per..."
#: packages/app-desktop/gui/NoteListControls/commands/focusSearch.ts:6
msgid "Search in all the notes"
@@ -3778,9 +3721,8 @@ msgid "Select file..."
msgstr "Selecciona un fitxer..."
#: packages/app-mobile/components/screens/folder.js:109
#, fuzzy
msgid "Select parent notebook"
msgstr "Suprimeix el bloc de notes"
msgstr "Selecciona el bloc de notes pare"
#: packages/app-cli/app/command-server.js:38
msgid "Server is already running on port %d"
@@ -3842,9 +3784,8 @@ msgid ""
msgstr ""
#: packages/lib/utils/joplinCloud.ts:159
#, fuzzy
msgid "Share and collaborate on a notebook"
msgstr "Només podeu crear notes en un bloc de notes."
msgstr "Compartiu i col·laboreu en un bloc de notes"
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:383
msgid "Share Notebook"
@@ -3867,13 +3808,12 @@ msgid "Shortcuts are not available in CLI mode."
msgstr "Les dreceres no són disponibles en el mode de línia d'ordres."
#: packages/app-mobile/components/NoteEditor/SearchPanel.tsx:208
#, fuzzy
msgid "Show advanced"
msgstr "Mostra opcions avançades"
msgstr "Mostra les opcions avançades"
#: packages/app-desktop/gui/ConfigScreen/ConfigScreen.tsx:219
msgid "Show Advanced Settings"
msgstr "Mostra opcions avançades"
msgstr "Mostra les opcions avançades"
#: packages/app-mobile/components/screens/log.js:117
msgid "Show all"
@@ -3884,18 +3824,16 @@ msgid "Show completed to-dos"
msgstr "Mostra els llistats de tasques pendents finalitzats"
#: packages/server/src/routes/admin/users.ts:200
#, fuzzy
msgid "Show disabled"
msgstr "Mostra les claus deshabilitades"
msgstr "Mostra les deshabilitades"
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:172
msgid "Show disabled keys"
msgstr "Mostra les claus deshabilitades"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/ToggleOverflowButton.tsx:22
#, fuzzy
msgid "Show more actions"
msgstr "Mostra el nombre de notes"
msgstr "Mostra més accions"
#: packages/lib/models/Setting.ts:894
msgid "Show note counts"
@@ -4258,9 +4196,8 @@ msgid "Take photo"
msgstr "Fes una foto"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:100
#, fuzzy
msgid "Task list"
msgstr "Tasques"
msgstr "Llista de tasques"
#: packages/server/src/services/MustacheService.ts:124
#: packages/server/src/services/MustacheService.ts:277
@@ -4612,25 +4549,22 @@ msgstr ""
"poden restaurar."
#: packages/app-mobile/components/ScreenHeader.tsx:278
#, fuzzy
msgid "This note could not be deleted: %s"
msgid_plural "These notes could not be deleted: %s"
msgstr[0] "Aquest fitxer no s'ha pogut obrir: %s"
msgstr[1] "Aquest fitxer no s'ha pogut obrir: %s"
msgstr[0] "Aquesta nota no s'ha pogut suprimir: %s"
msgstr[1] "Aquestes notes no s'han pogut suprimir: %s"
#: packages/app-mobile/components/ScreenHeader.tsx:258
#, fuzzy
msgid "This note could not be duplicated: %s"
msgid_plural "These notes could not be duplicated: %s"
msgstr[0] "No s'ha pogut desar el bloc de notes: %s"
msgstr[1] "No s'ha pogut desar el bloc de notes: %s"
msgstr[0] "Aquesta nota no s'ha pogut duplicar: %s"
msgstr[1] "Aquestes notes no s'han pogut duplicar: %s"
#: packages/app-mobile/components/ScreenHeader.tsx:549
#, fuzzy
msgid "This note could not be moved: %s"
msgid_plural "These notes could not be moved: %s"
msgstr[0] "No s'ha pogut desar el bloc de notes: %s"
msgstr[1] "No s'ha pogut desar el bloc de notes: %s"
msgstr[0] "Aquesta nota no s'ha pogut moure: %s"
msgstr[1] "Aquestes notes no s'han pogut moure: %s"
#: packages/lib/models/Note.ts:103
msgid "This note does not have geolocation information."
@@ -4779,9 +4713,8 @@ msgid "to-do"
msgstr "tasques pendents"
#: packages/app-mobile/components/note-item.js:143
#, fuzzy
msgid "to-do: %s"
msgstr "tasques pendents"
msgstr "tasques pendents: %s"
#: packages/app-desktop/gui/NoteEditor/editorCommandDeclarations.ts:118
msgid "Toggle comment"
@@ -4832,9 +4765,8 @@ msgid "Tools"
msgstr "Eines"
#: packages/server/src/routes/admin/users.ts:146
#, fuzzy
msgid "Total Size"
msgstr "Mida real"
msgstr "Mida total"
#: packages/lib/services/ReportService.ts:285
msgid "Total: %d/%d"
@@ -4847,9 +4779,8 @@ msgstr "Intenta-ho de nou"
#: packages/lib/utils/joplinCloud.ts:315 packages/lib/utils/joplinCloud.ts:337
#: packages/lib/utils/joplinCloud.ts:359
#, fuzzy
msgid "Try it now"
msgstr "Fes-ho ara"
msgstr "Proveu-ho ara"
#: packages/app-cli/app/command-help.js:71
msgid ""
@@ -4907,9 +4838,8 @@ msgstr ""
"darrera versió"
#: packages/app-mobile/components/NoteEditor/MarkdownToolbar/MarkdownToolbar.tsx:72
#, fuzzy
msgid "Unordered list"
msgstr "Crea un usuari"
msgstr "Llista no ordenada"
#: packages/app-desktop/gui/ShareNoteDialog.tsx:163
msgid "Unpublish note"
@@ -5132,11 +5062,12 @@ msgstr ""
"Avís: no es mostren tots els recursos per motius de rendiment (límit:% s)."
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:100
#, fuzzy
msgid ""
"Warnings:\n"
"%s"
msgstr "Avís"
msgstr ""
"Avisos:\n"
"%s"
#: packages/lib/models/Setting.ts:2535 packages/lib/utils/joplinCloud.ts:153
msgid "Web Clipper"
@@ -5181,9 +5112,8 @@ msgstr ""
"premeu «mn»."
#: packages/lib/WelcomeUtils.ts:63
#, fuzzy
msgid "Welcome!"
msgstr "Benvingut"
msgstr "Benvinguts!"
#: packages/lib/models/Setting.ts:1114
msgid "When creating a new note:"

View File

@@ -7,6 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Joplin-CLI 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Mr-Kanister <viger_gtrc@simplelogin.com>\n"
"Language-Team: \n"
"Language: de_DE\n"
@@ -258,11 +260,12 @@ msgstr "Akzeptieren"
#: packages/lib/WebDavApi.js:451
msgid "Access denied: Please check your username and password"
msgstr ""
msgstr "Zugriff verweigert: Bitte überprüfe Nutzername und Passwort"
#: packages/lib/WebDavApi.js:449
msgid "Access denied: Please re-enter your password and/or username"
msgstr ""
"Zugriff verweigert: Bitte trage dein Passwort und/oder Nutzername erneut ein"
#: packages/server/src/routes/admin/users.ts:138
msgid "Account"
@@ -387,6 +390,8 @@ msgid ""
"Any email sent to this address will be converted into a note and added to "
"your collection. The note will be saved into the Inbox notebook"
msgstr ""
"Jede an diese Adresse gerichtete E-Mail wird zu einer Notiz konvertiert und "
"deiner Kollektion hinzugefügt. Die Notiz wird im Inbox-Notizbuch gespeichert"
#: packages/lib/models/Setting.ts:2527
msgid "Appearance"
@@ -559,15 +564,15 @@ msgstr "Aufzählung"
#: packages/server/src/routes/admin/users.ts:154
msgid "Can Share"
msgstr "Teilen"
msgstr "Teilen möglich"
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:114
msgid "Can view"
msgstr "Sehen"
msgstr "Lesen möglich"
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:115
msgid "Can view and edit"
msgstr "Sehen und bearbeiten"
msgstr "Lesen und bearbeiten möglich"
#: packages/app-desktop/bridge.ts:197 packages/app-desktop/bridge.ts:215
#: packages/app-desktop/checkForUpdates.ts:107
@@ -621,9 +626,8 @@ msgid "Cannot copy note to \"%s\" notebook"
msgstr "Kann Notiz nicht in das Notizbuch „%s“ kopieren"
#: packages/app-mobile/components/screens/Notes.tsx:165
#, fuzzy
msgid "Cannot create a new note: %s"
msgstr "Erstellt eine neue Notiz."
msgstr "Konnte neue Notiz nicht erstellen: %s"
#: packages/app-cli/app/command-attach.js:21
#: packages/app-cli/app/command-cat.js:25 packages/app-cli/app/command-cp.js:24
@@ -978,9 +982,8 @@ msgstr[1] "Teilbare Links kopieren"
#: packages/app-desktop/gui/JoplinCloudConfigScreen.tsx:21
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:370
#, fuzzy
msgid "Copy to clipboard"
msgstr "Pfad in Zwischenablage kopieren"
msgstr "In Zwischenablage kopieren"
#: packages/app-desktop/gui/ClipperConfigScreen.tsx:140
msgid "Copy token"
@@ -1251,9 +1254,8 @@ msgid "Delete local data and re-download from sync target"
msgstr "Lösche lokale Daten und lade Daten erneut vom Synchronisierungsziel"
#: packages/app-desktop/gui/MainScreen/commands/deleteNote.ts:8
#, fuzzy
msgid "Delete note"
msgstr "Notiz löschen?"
msgstr "Notiz löschen"
#: packages/lib/models/Note.ts:778
msgid "Delete note \"%s\"?"
@@ -1265,9 +1267,8 @@ msgid "Delete note?"
msgstr "Notiz löschen?"
#: packages/app-desktop/gui/MainScreen/commands/deleteFolder.ts:9
#, fuzzy
msgid "Delete notebook"
msgstr "Notizbuch löschen?"
msgstr "Notizbuch löschen"
#: packages/app-desktop/gui/MainScreen/commands/deleteFolder.ts:20
#: packages/app-mobile/components/side-menu-content.tsx:162
@@ -1309,6 +1310,10 @@ msgid ""
"If you delete the inbox notebook, any email that's recently been sent to it "
"may be lost."
msgstr ""
"Das Inbox-Notizbuch löschen?\n"
"\n"
"Wenn du das Inbox-Notizbuch löschst, gehen in ihm gespeicherte E-Mails "
"möglicherweise verloren."
#: packages/lib/models/Note.ts:780
msgid "Delete these %d notes?"
@@ -1633,13 +1638,12 @@ msgstr "E-Mail"
#: packages/app-desktop/gui/JoplinCloudConfigScreen.tsx:18
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:364
#, fuzzy
msgid "Email to note"
msgstr "Notiz bearbeiten."
msgstr "E-Mail zu Notiz"
#: packages/lib/utils/joplinCloud.ts:165
msgid "Email to Note"
msgstr ""
msgstr "E-Mail zu Notiz"
#: packages/server/src/routes/admin/emails.ts:111
#: packages/server/src/services/MustacheService.ts:128
@@ -1881,9 +1885,8 @@ msgid "Export all"
msgstr "Alles exportieren"
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:87
#, fuzzy
msgid "Export all notes as JEX"
msgstr "Alles exportieren"
msgstr "Alle Notizen als JEX exportieren"
#: packages/app-desktop/gui/StatusScreen/StatusScreen.tsx:177
msgid "Export debug report"
@@ -1899,7 +1902,7 @@ msgstr "Profil exportieren"
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:106
msgid "Exported successfully!"
msgstr ""
msgstr "Exportieren erfolgreich!"
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:581
msgid "Exporting profile..."
@@ -1910,9 +1913,8 @@ msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
msgstr "Es wird nach „%s“ im Format „%s“ exportiert. Bitte warten ..."
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:87
#, fuzzy
msgid "Exporting..."
msgstr "Profil wird exportiert ..."
msgstr "Exportiere..."
#: packages/app-cli/app/command-export.js:13
msgid ""
@@ -2559,7 +2561,7 @@ msgstr "Layout-Reihenfolge"
#: packages/lib/models/Setting.ts:1719
msgid "Leave it blank to download the language files from the default website"
msgstr ""
"Lasse es leer, um die Sprachdateien von der Standardseite herunterzuladen."
"Lasse es leer, um die Sprachdateien von der Standardseite herunterzuladen"
#: packages/app-desktop/gui/MainScreen/commands/leaveSharedFolder.ts:10
msgid "Leave notebook..."
@@ -3851,6 +3853,8 @@ msgid ""
"Share a copy of all notes in a file format that can be imported by Joplin on "
"a computer."
msgstr ""
"Teile eine Kopie aller Notizen in einem Dateiformat, welches von Joplin auf "
"einem anderen Computer importiert werden kann."
# Plural klingt subjektiv besser als Singular.
#: packages/lib/utils/joplinCloud.ts:159
@@ -4642,25 +4646,22 @@ msgstr ""
"löschst, da sie danach nicht wiederhergestellt werden können."
#: packages/app-mobile/components/ScreenHeader.tsx:278
#, fuzzy
msgid "This note could not be deleted: %s"
msgid_plural "These notes could not be deleted: %s"
msgstr[0] "Dieses Notizbuch konnte nicht geöffnet werden: %s"
msgstr[1] "Dieses Notizbuch konnte nicht geöffnet werden: %s"
msgstr[0] "Diese Notiz konnte nicht gelöscht werden: %s"
msgstr[1] "Diese Notizen konnten nicht gelöscht werden: %s"
#: packages/app-mobile/components/ScreenHeader.tsx:258
#, fuzzy
msgid "This note could not be duplicated: %s"
msgid_plural "These notes could not be duplicated: %s"
msgstr[0] "Dieses Notizbuch konnte nicht gespeichert werden: %s"
msgstr[1] "Dieses Notizbuch konnte nicht gespeichert werden: %s"
msgstr[0] "Diese Notiz konnte nicht dupliziert werden: %s"
msgstr[1] "Diese Notizen konnten nicht dupliziert werden: %s"
#: packages/app-mobile/components/ScreenHeader.tsx:549
#, fuzzy
msgid "This note could not be moved: %s"
msgid_plural "These notes could not be moved: %s"
msgstr[0] "Dieses Notizbuch konnte nicht gespeichert werden: %s"
msgstr[1] "Dieses Notizbuch konnte nicht gespeichert werden: %s"
msgstr[0] "Diese Notiz konnte nicht verschoben werden: %s"
msgstr[1] "Diese Notizen konnten nicht verschoben werden: %s"
#: packages/lib/models/Note.ts:103
msgid "This note does not have geolocation information."
@@ -4918,7 +4919,7 @@ msgstr "Typ: %s."
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:69
msgid "Unable to export or share data. Reason: %s"
msgstr ""
msgstr "Exportieren oder Teilen der Daten nicht möglich. Grund: %s"
#: packages/lib/models/Setting.ts:911
msgid "Uncompleted to-dos on top"
@@ -5168,11 +5169,12 @@ msgstr ""
"(Obergrenze: %s)."
#: packages/app-mobile/components/screens/ConfigScreen/NoteExportSection/NoteExportButton.tsx:100
#, fuzzy
msgid ""
"Warnings:\n"
"%s"
msgstr "Warnung"
msgstr ""
"Warnungen: \n"
"%s"
#: packages/lib/models/Setting.ts:2535 packages/lib/utils/joplinCloud.ts:153
msgid "Web Clipper"

View File

@@ -36,7 +36,7 @@
"node-fetch": "2.6.7",
"relative": "3.0.2",
"request": "2.88.2",
"sharp": "0.32.3",
"sharp": "0.32.4",
"source-map-support": "0.5.21",
"uri-template": "2.0.0",
"yargs": "17.7.2"

View File

@@ -671,6 +671,14 @@
"created_at": "2023-08-07T22:03:21Z",
"repoId": 79162682,
"pullRequestNo": 8635
},
{
"name": "xavivars",
"id": 134083,
"comment_id": 1679771834,
"created_at": "2023-08-15T23:51:35Z",
"repoId": 79162682,
"pullRequestNo": 8675
}
]
}

View File

@@ -4523,7 +4523,7 @@ __metadata:
"@joplin/utils": ~2.12
"@lezer/highlight": 1.1.4
"@react-native-community/clipboard": 1.5.1
"@react-native-community/datetimepicker": 7.3.0
"@react-native-community/datetimepicker": 7.4.1
"@react-native-community/geolocation": 3.0.6
"@react-native-community/netinfo": 9.4.1
"@react-native-community/push-notification-ios": 1.11.0
@@ -4563,7 +4563,6 @@ __metadata:
punycode: 2.3.0
react: 18.2.0
react-native: 0.71.10
react-native-action-button: 2.8.5
react-native-camera: 4.2.1
react-native-device-info: 10.7.0
react-native-dialogbox: 0.6.10
@@ -4734,7 +4733,7 @@ __metadata:
relative: 3.0.2
reselect: 4.1.8
server-destroy: 1.0.1
sharp: 0.32.3
sharp: 0.32.4
sprintf-js: 1.1.2
sqlite3: 5.1.6
string-padding: 1.0.2
@@ -4745,7 +4744,7 @@ __metadata:
uglifycss: 0.0.29
url-parse: 1.5.10
uuid: 9.0.0
word-wrap: 1.2.4
word-wrap: 1.2.5
xml2js: 0.4.23
languageName: unknown
linkType: soft
@@ -4922,7 +4921,7 @@ __metadata:
pretty-bytes: 5.6.0
prettycron: 0.10.0
query-string: 7.1.3
rate-limiter-flexible: 2.4.1
rate-limiter-flexible: 2.4.2
raw-body: 2.5.2
source-map-support: 0.5.21
sqlite3: 5.1.6
@@ -4968,7 +4967,7 @@ __metadata:
request: 2.88.2
rss: 1.2.2
sass: 1.63.6
sharp: 0.32.3
sharp: 0.32.4
source-map-support: 0.5.21
sqlite3: 5.1.6
typescript: 5.1.3
@@ -6855,12 +6854,12 @@ __metadata:
languageName: node
linkType: hard
"@react-native-community/datetimepicker@npm:7.3.0":
version: 7.3.0
resolution: "@react-native-community/datetimepicker@npm:7.3.0"
"@react-native-community/datetimepicker@npm:7.4.1":
version: 7.4.1
resolution: "@react-native-community/datetimepicker@npm:7.4.1"
dependencies:
invariant: ^2.2.4
checksum: e522f01d0068b9a20f3f8883b814f4cfd84717165c43ff36edd242ae4b64d90202a3750209ca1f47b4b77edbf17358446011aeefacb3df67b96ce53574ba4144
checksum: bf1b2591ca4413a6ca1e074150940578b8d6d6c6063a740895e359088fe31cbf0cefb65f829a3d29e2f861b72d9d8fdf4f835942566f8953e7410068dfe37ea1
languageName: node
linkType: hard
@@ -14244,6 +14243,13 @@ __metadata:
languageName: node
linkType: hard
"detect-libc@npm:^2.0.2":
version: 2.0.2
resolution: "detect-libc@npm:2.0.2"
checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d
languageName: node
linkType: hard
"detect-newline@npm:^3.0.0":
version: 3.1.0
resolution: "detect-newline@npm:3.1.0"
@@ -21042,7 +21048,7 @@ __metadata:
proper-lockfile: 4.1.2
read-chunk: 2.1.0
server-destroy: 1.0.1
sharp: 0.32.3
sharp: 0.32.4
sprintf-js: 1.1.2
sqlite3: 5.1.6
string-padding: 1.0.2
@@ -21053,7 +21059,7 @@ __metadata:
tkwidgets: 0.5.27
typescript: 5.1.3
url-parse: 1.5.10
word-wrap: 1.2.4
word-wrap: 1.2.5
yargs-parser: 21.1.1
bin:
joplin: ./main.js
@@ -27232,7 +27238,7 @@ __metadata:
languageName: node
linkType: hard
"prop-types@npm:^15.5.10, prop-types@npm:^15.5.7, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
"prop-types@npm:^15.5.7, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
version: 15.7.2
resolution: "prop-types@npm:15.7.2"
dependencies:
@@ -27561,10 +27567,10 @@ __metadata:
languageName: node
linkType: hard
"rate-limiter-flexible@npm:2.4.1":
version: 2.4.1
resolution: "rate-limiter-flexible@npm:2.4.1"
checksum: 5eea3ffbb6a11f634edd8b9575815c2bf239a8becdfdc82c4183cad92025e853913972a2b2f2d45c16e81aea1a3451fbad8da76dee1ba0e4549c22a0ba58c50f
"rate-limiter-flexible@npm:2.4.2":
version: 2.4.2
resolution: "rate-limiter-flexible@npm:2.4.2"
checksum: 039e58b664991963ba2668a83d0406a72e5822683103acbe416854deb92ed834b840ce6e0acfea35917d9b49685bd53946ae47435a9f5916c2e7550395dec9dc
languageName: node
linkType: hard
@@ -27712,17 +27718,6 @@ __metadata:
languageName: node
linkType: hard
"react-native-action-button@npm:2.8.5":
version: 2.8.5
resolution: "react-native-action-button@npm:2.8.5"
dependencies:
prop-types: ^15.5.10
peerDependencies:
react-native: ">=0.11"
checksum: e5f8236c9980e491daff3707648ab3a0f4c79c3c4c102ec340d376e204a740b87486f8d4b5e2336e2ab29e5dcd4990693778513cb76e7cc5ddd00ac1c2166977
languageName: node
linkType: hard
"react-native-camera@npm:4.2.1":
version: 4.2.1
resolution: "react-native-camera@npm:4.2.1"
@@ -30020,12 +30015,12 @@ __metadata:
languageName: node
linkType: hard
"sharp@npm:0.32.3":
version: 0.32.3
resolution: "sharp@npm:0.32.3"
"sharp@npm:0.32.4":
version: 0.32.4
resolution: "sharp@npm:0.32.4"
dependencies:
color: ^4.2.3
detect-libc: ^2.0.1
detect-libc: ^2.0.2
node-addon-api: ^6.1.0
node-gyp: latest
prebuild-install: ^7.1.1
@@ -30033,7 +30028,7 @@ __metadata:
simple-get: ^4.0.1
tar-fs: ^3.0.4
tunnel-agent: ^0.6.0
checksum: 8a6ed0d00bd4d3d6ba92c392fe1f00a4a207f138257a4d903ce5afe5c6d7f684b5218c5b4e8df1097aac960ac10e0114c823f6a8a7e18255bf4a8ec364087051
checksum: 52e3cfe8fbba2623a9b935be8a3d00d6993a2c56c775ac5cc89b273826db95f029f68a0029a37f96dcb6790aa2e3c05a02599035535b319f50ab31f5d86a13f0
languageName: node
linkType: hard
@@ -34330,10 +34325,10 @@ __metadata:
languageName: node
linkType: hard
"word-wrap@npm:1.2.4":
version: 1.2.4
resolution: "word-wrap@npm:1.2.4"
checksum: 8f1f2e0a397c0e074ca225ba9f67baa23f99293bc064e31355d426ae91b8b3f6b5f6c1fc9ae5e9141178bb362d563f55e62fd8d5c31f2a77e3ade56cb3e35bd1
"word-wrap@npm:1.2.5":
version: 1.2.5
resolution: "word-wrap@npm:1.2.5"
checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb
languageName: node
linkType: hard