Compare commits
2 Commits
feat/impro
...
feat/loggi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f6fc66f84 | ||
|
|
3604a49a89 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -54,5 +54,3 @@ i18n.cache
|
||||
|
||||
# pgdata
|
||||
/apps/web/pgdata
|
||||
|
||||
.claude
|
||||
@@ -11,10 +11,10 @@ https://kan.bn/api/v1
|
||||
|
||||
## Authentication
|
||||
|
||||
Most endpoints require authentication using your API key. You can create one in the [settings page](https://kan.bn/settings) of your account. Include this key as a Bearer token in the `Authorization` header of each request.
|
||||
Most endpoints require authentication using your API key. You can create one in the [settings page](https://kan.bn/settings) of your account. Include this key in the `x-api-key` header of each request.
|
||||
|
||||
```
|
||||
'Authorization': 'Bearer kan_123456789'
|
||||
'x-api-key': kan_123456789
|
||||
```
|
||||
|
||||
## Response codes
|
||||
|
||||
@@ -550,9 +550,6 @@ checksums:
|
||||
VhMDMg/origin/2/0: 0627e0040ca4939c9a57349e98c51797
|
||||
VhMDMg/origin/3/0: 0627e0040ca4939c9a57349e98c51797
|
||||
VhMDMg/translation: a552fc5c4189ebc3e2e6018edda7d18f
|
||||
fzGyWs/translation: 25dbbca7a83f6af119179e7a56c953d4
|
||||
fzGyWs/message: 25dbbca7a83f6af119179e7a56c953d4
|
||||
fzGyWs/origin/0/0: 627b72cd19a7154ae1c28cbd7ca0c730
|
||||
yD3ZSw/message: 293d49fc3c75e9c425b64bd7126e6b46
|
||||
yD3ZSw/origin/0/0: 627b72cd19a7154ae1c28cbd7ca0c730
|
||||
yD3ZSw/translation: 293d49fc3c75e9c425b64bd7126e6b46
|
||||
@@ -1170,9 +1167,6 @@ checksums:
|
||||
l31EoQ/message: b4c05c9174637f4da2a41ead0d65bc01
|
||||
l31EoQ/origin/0/0: 4980d8e27a628e7cd9a70b839d844083
|
||||
l31EoQ/translation: b4c05c9174637f4da2a41ead0d65bc01
|
||||
q3il6U/translation: 79a4fffd70bfbedb6174ea4c767f4ab9
|
||||
q3il6U/message: 79a4fffd70bfbedb6174ea4c767f4ab9
|
||||
q3il6U/origin/0/0: 627b72cd19a7154ae1c28cbd7ca0c730
|
||||
"%2B3TYXa/message": 9fa1c942feb40d6350322b71561df789
|
||||
"%2B3TYXa/origin/0/0": 4980d8e27a628e7cd9a70b839d844083
|
||||
"%2B3TYXa/translation": 9fa1c942feb40d6350322b71561df789
|
||||
@@ -1439,9 +1433,6 @@ checksums:
|
||||
vXIe7J/message: 277fd1a41cc237a437cd1d5e4a80463b
|
||||
vXIe7J/origin/0/0: 627b72cd19a7154ae1c28cbd7ca0c730
|
||||
vXIe7J/translation: 277fd1a41cc237a437cd1d5e4a80463b
|
||||
k7rCa%2F/translation: 890b7851af05f97ac53644e4154c13b4
|
||||
k7rCa%2F/message: 890b7851af05f97ac53644e4154c13b4
|
||||
k7rCa%2F/origin/0/0: 3de48fb04f7df9bdbe399911cdb3fe86
|
||||
8Is1ih/message: 624592ba2ecf647a3fe60d493c1ee71a
|
||||
8Is1ih/origin/0/0: ff4a160eca5f8da4f075fd1dd6061fa6
|
||||
8Is1ih/origin/1/0: fadd5a5b6963ec5f261072f7e8d2140b
|
||||
@@ -1523,9 +1514,6 @@ checksums:
|
||||
jl3aEJ/placeholders/0/0: 06f23520ebabfffed4999b5bcf61c9cd
|
||||
jl3aEJ/origin/0/0: 1d6b5f88cdad160a67842f6b65387448
|
||||
jl3aEJ/translation: 4c38799ff25321ea25017bf4cd8e2e4f
|
||||
agPptk/translation: 43983f2178fb28aacaef6c5f41282c4a
|
||||
agPptk/message: 43983f2178fb28aacaef6c5f41282c4a
|
||||
agPptk/origin/0/0: 3de48fb04f7df9bdbe399911cdb3fe86
|
||||
W%2FElkg/message: 1f527cd6d1ed602930bcaa303f503b51
|
||||
W%2FElkg/origin/0/0: eb63312c63f6c8d2a5b6520c89012123
|
||||
W%2FElkg/translation: 1f527cd6d1ed602930bcaa303f503b51
|
||||
@@ -1549,9 +1537,9 @@ checksums:
|
||||
"%2FbZzdR/message": 40ea106c56d79634e058e087ad322025
|
||||
"%2FbZzdR/origin/0/0": c0b59968b2b234167c488a05cc38710b
|
||||
"%2FbZzdR/translation": 40ea106c56d79634e058e087ad322025
|
||||
hty0d5/translation: b4b1c8396e445e8b7956c747da2cf601
|
||||
hty0d5/message: b4b1c8396e445e8b7956c747da2cf601
|
||||
hty0d5/origin/0/0: 04c86ea96f180745739d59e822da4026
|
||||
hty0d5/translation: b4b1c8396e445e8b7956c747da2cf601
|
||||
"%2B8Nek%2F/message": 818f1192e32bb855597f930d3e78806e
|
||||
"%2B8Nek%2F/origin/0/0": 9737a9cef0646ff4bbd942b1924b9a2c
|
||||
"%2B8Nek%2F/origin/1/0": 82a5cf8d69f098641eb357bf102cd504
|
||||
@@ -2025,9 +2013,9 @@ checksums:
|
||||
YEOVrT/message: 86b76024524fc585b2c3950126ef6f62
|
||||
YEOVrT/origin/0/0: fadd5a5b6963ec5f261072f7e8d2140b
|
||||
YEOVrT/translation: 86b76024524fc585b2c3950126ef6f62
|
||||
"%2B5kO8P/translation": 77b65adf8ae2b69eaed51b6104ded65e
|
||||
"%2B5kO8P/message": 77b65adf8ae2b69eaed51b6104ded65e
|
||||
"%2B5kO8P/origin/0/0": 04c86ea96f180745739d59e822da4026
|
||||
"%2B5kO8P/translation": 77b65adf8ae2b69eaed51b6104ded65e
|
||||
tfDRzk/message: f7a2929f33bc420195e59ac5a8bcd454
|
||||
tfDRzk/origin/0/0: a50c4fbde8da6e0a77c4e0aef0b44dea
|
||||
tfDRzk/origin/1/0: b2059fa4b8b99cc10440da26475b234c
|
||||
@@ -2151,9 +2139,6 @@ checksums:
|
||||
zEcnBA/message: 513c3b4d9f0fda60fe079d42dcbd3882
|
||||
zEcnBA/origin/0/0: c0b59968b2b234167c488a05cc38710b
|
||||
zEcnBA/translation: 513c3b4d9f0fda60fe079d42dcbd3882
|
||||
4Revpc/translation: 3adb3ae7891c5736776df840cff2360b
|
||||
4Revpc/message: 3adb3ae7891c5736776df840cff2360b
|
||||
4Revpc/origin/0/0: 3de48fb04f7df9bdbe399911cdb3fe86
|
||||
"%2B%2BrVAm/message": 2227508afb0d38a027e323207e47d4a2
|
||||
"%2B%2BrVAm/origin/0/0": eb63312c63f6c8d2a5b6520c89012123
|
||||
"%2B%2BrVAm/translation": 2227508afb0d38a027e323207e47d4a2
|
||||
@@ -2183,9 +2168,9 @@ checksums:
|
||||
zzDlyQ/origin/0/0: d96af8a06c2e38a72238bcd16e426859
|
||||
zzDlyQ/origin/1/0: d96af8a06c2e38a72238bcd16e426859
|
||||
zzDlyQ/translation: c43827becada6750f7a25890905f38b9
|
||||
DBC3t5/translation: d21934fb36dd8a82e36352968207d44e
|
||||
DBC3t5/message: d21934fb36dd8a82e36352968207d44e
|
||||
DBC3t5/origin/0/0: 04c86ea96f180745739d59e822da4026
|
||||
DBC3t5/translation: d21934fb36dd8a82e36352968207d44e
|
||||
uZg2%2Bw/message: 21af8119141afcce5f12da489f34db6a
|
||||
uZg2%2Bw/origin/0/0: dbad0c8d7863cb41f5495264f82e7081
|
||||
uZg2%2Bw/translation: 21af8119141afcce5f12da489f34db6a
|
||||
@@ -2641,9 +2626,9 @@ checksums:
|
||||
v1kQyJ/origin/0/0: 77c9f6139024b2069e4fdc5120f69cb5
|
||||
v1kQyJ/origin/1/0: 566b5982085ae649b2be0c614f666591
|
||||
v1kQyJ/translation: 0329bc102d3ab3c73410d126e119de12
|
||||
xLTZVf/translation: ce928c74255344905f5c3f02f44c991e
|
||||
xLTZVf/message: ce928c74255344905f5c3f02f44c991e
|
||||
xLTZVf/origin/0/0: 5f6c4a0c9be5098099167871ae1564af
|
||||
xLTZVf/translation: ce928c74255344905f5c3f02f44c991e
|
||||
9eF5oV/message: 4928884739ba559e6e4b960e80fe1452
|
||||
9eF5oV/origin/0/0: 4a1be3707d14c696a16f453d132fb248
|
||||
9eF5oV/translation: 4928884739ba559e6e4b960e80fe1452
|
||||
|
||||
@@ -28,7 +28,6 @@ const config = {
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
/** Enables hot reloading for local packages without a build step */
|
||||
transpilePackages: [
|
||||
"@kan/api",
|
||||
@@ -66,8 +65,6 @@ const config = {
|
||||
},
|
||||
},
|
||||
},
|
||||
serverExternalPackages: ["pino"],
|
||||
|
||||
experimental: {
|
||||
// instrumentationHook: true,
|
||||
swcPlugins: [["@lingui/swc-plugin", {}]],
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { HiOutlineAdjustmentsHorizontal } from "react-icons/hi2";
|
||||
|
||||
import { useFontSize, type FontSize } from "~/providers/font-size";
|
||||
|
||||
const fontSizeOptions: { value: FontSize; label: () => string }[] = [
|
||||
{ value: "small", label: () => t`Small` },
|
||||
{ value: "medium", label: () => t`Medium` },
|
||||
{ value: "large", label: () => t`Large` },
|
||||
];
|
||||
|
||||
export function FontSizeSelector() {
|
||||
const { fontSize, setFontSize } = useFontSize();
|
||||
|
||||
return (
|
||||
<div className="relative">
|
||||
<HiOutlineAdjustmentsHorizontal className="pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
||||
<select
|
||||
id="font-size-select"
|
||||
value={fontSize}
|
||||
onChange={(e) => setFontSize(e.target.value as FontSize)}
|
||||
className="block w-full max-w-[180px] rounded-lg border-0 bg-light-50 pl-10 text-sm shadow-sm ring-1 ring-inset ring-light-300 focus:ring-2 focus:ring-inset focus:ring-light-400 dark:bg-dark-50 dark:text-dark-1000 dark:ring-dark-300 dark:focus:ring-dark-500"
|
||||
>
|
||||
{fontSizeOptions.map((opt) => (
|
||||
<option key={opt.value} value={opt.value}>
|
||||
{opt.label()}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -39,7 +39,7 @@ export function LabelForm({
|
||||
labelPublicId: entityId,
|
||||
},
|
||||
{
|
||||
enabled: !!isEdit && entityId.length >= 12,
|
||||
enabled: isEdit && !!entityId,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
import Placeholder from "@tiptap/extension-placeholder";
|
||||
import { EditorContent, useEditor } from "@tiptap/react";
|
||||
import StarterKit from "@tiptap/starter-kit";
|
||||
import { useEffect, useRef } from "react";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
|
||||
interface PlainTextEditorProps {
|
||||
content: string;
|
||||
onChange?: (value: string) => void;
|
||||
onBlur?: (value: string) => void;
|
||||
onEnter?: (value: string) => void;
|
||||
onEscape?: () => void;
|
||||
readOnly?: boolean;
|
||||
placeholder?: string;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
export default function PlainTextEditor({
|
||||
content,
|
||||
onChange,
|
||||
onBlur,
|
||||
onEnter,
|
||||
onEscape,
|
||||
readOnly = false,
|
||||
placeholder,
|
||||
className,
|
||||
}: PlainTextEditorProps) {
|
||||
const onEnterRef = useRef(onEnter);
|
||||
const onEscapeRef = useRef(onEscape);
|
||||
const onBlurRef = useRef(onBlur);
|
||||
const onChangeRef = useRef(onChange);
|
||||
const contentRef = useRef(content);
|
||||
|
||||
useEffect(() => {
|
||||
onEnterRef.current = onEnter;
|
||||
}, [onEnter]);
|
||||
useEffect(() => {
|
||||
onEscapeRef.current = onEscape;
|
||||
}, [onEscape]);
|
||||
useEffect(() => {
|
||||
onBlurRef.current = onBlur;
|
||||
}, [onBlur]);
|
||||
useEffect(() => {
|
||||
onChangeRef.current = onChange;
|
||||
}, [onChange]);
|
||||
useEffect(() => {
|
||||
contentRef.current = content;
|
||||
}, [content]);
|
||||
|
||||
const editor = useEditor(
|
||||
{
|
||||
extensions: [
|
||||
StarterKit.configure({
|
||||
bold: false,
|
||||
italic: false,
|
||||
strike: false,
|
||||
code: false,
|
||||
codeBlock: false,
|
||||
blockquote: false,
|
||||
heading: false,
|
||||
bulletList: false,
|
||||
orderedList: false,
|
||||
listItem: false,
|
||||
horizontalRule: false,
|
||||
hardBreak: false,
|
||||
}),
|
||||
Placeholder.configure({ placeholder }),
|
||||
],
|
||||
content,
|
||||
editable: !readOnly,
|
||||
onUpdate: ({ editor }) => onChangeRef.current?.(editor.getText()),
|
||||
onBlur: ({ editor }) => onBlurRef.current?.(editor.getText()),
|
||||
editorProps: {
|
||||
handleKeyDown: (view, event) => {
|
||||
if (event.key === "Enter") {
|
||||
event.preventDefault();
|
||||
onEnterRef.current?.(view.state.doc.textContent.trim());
|
||||
return true;
|
||||
}
|
||||
if (event.key === "Escape") {
|
||||
event.preventDefault();
|
||||
// Reset to original content before calling the callback
|
||||
editor?.commands.setContent(contentRef.current, false);
|
||||
editor?.commands.blur();
|
||||
onEscapeRef.current?.();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
attributes: {
|
||||
class: "outline-none focus:outline-none focus-visible:ring-0",
|
||||
},
|
||||
},
|
||||
},
|
||||
[],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (!editor) return;
|
||||
if (content !== editor.getText()) {
|
||||
editor.commands.setContent(content, false);
|
||||
}
|
||||
}, [content, editor]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!editor) return;
|
||||
editor.setEditable(!readOnly);
|
||||
}, [readOnly, editor]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<style jsx global>{`
|
||||
.plain-text-editor p.is-empty::before {
|
||||
content: attr(data-placeholder);
|
||||
float: left;
|
||||
height: 0;
|
||||
pointer-events: none;
|
||||
color: var(--placeholder-color, #9ca3af);
|
||||
}
|
||||
.plain-text-editor .tiptap p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
`}</style>
|
||||
<EditorContent
|
||||
editor={editor}
|
||||
className={twMerge("plain-text-editor", className)}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Details hinzufügen..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Passwort ändern"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Schriftgröße der Anwendung ändern."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Ändern Sie Ihre Spracheinstellungen."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Label erstellen"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Account löschen"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Anzeigename"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "E-Mail"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Finden Sie Antworten auf häufig gestellte Fragen zu Kan. Können Sie nicht finden, wonach Sie suchen? <0>Kontaktieren Sie uns</0> gerne."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Schriftgröße"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "in"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Sprache"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Groß"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "hat Checklistenelement <0>{0}</0> als unvollständig markiert"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Mittel"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Erwähnungen"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Montag",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Montag"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "Keine Ergebnisse für \"{debouncedQuery}\" gefunden."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Sobald Sie Ihr Konto löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Profilbild"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Samstag",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Samstag"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Einstellungen | Konto"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Klein"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Erfolg"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Sonntag",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Sonntag"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Checklistenelement konnte nicht gelöscht werden"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Checklisten-Element konnte nicht aktualisiert werden"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Label aktualisieren"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhooks"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Wochenbeginn",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Wochenbeginn"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Sie sind dabei, Ihr Passwort zu ändern."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -471,7 +471,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/card/components/ChecklistItemRow.tsx",
|
||||
169
|
||||
200
|
||||
]
|
||||
],
|
||||
"translation": "Add details..."
|
||||
@@ -2169,11 +2169,11 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
88
|
||||
77
|
||||
],
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
98
|
||||
87
|
||||
],
|
||||
[
|
||||
"src/views/settings/components/ChangePasswordConfirmation.tsx",
|
||||
@@ -2186,18 +2186,6 @@
|
||||
],
|
||||
"translation": "Change Password"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
63
|
||||
]
|
||||
],
|
||||
"translation": "Change the application font size."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
@@ -2205,7 +2193,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
53
|
||||
52
|
||||
]
|
||||
],
|
||||
"translation": "Change your language preferences."
|
||||
@@ -2885,7 +2873,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/components/LabelForm.tsx",
|
||||
236
|
||||
238
|
||||
]
|
||||
],
|
||||
"translation": "Create label"
|
||||
@@ -3309,11 +3297,11 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
70
|
||||
59
|
||||
],
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
80
|
||||
69
|
||||
],
|
||||
[
|
||||
"src/views/settings/components/DeleteAccountConfirmation.tsx",
|
||||
@@ -3525,7 +3513,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
36
|
||||
35
|
||||
]
|
||||
],
|
||||
"translation": "Display name"
|
||||
@@ -3913,7 +3901,7 @@
|
||||
],
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
43
|
||||
42
|
||||
]
|
||||
],
|
||||
"translation": "Email"
|
||||
@@ -4666,18 +4654,6 @@
|
||||
],
|
||||
"translation": "Find answers to common questions about Kan. Can't find what you're looking for? Feel free to <0>contact us</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
60
|
||||
]
|
||||
],
|
||||
"translation": "Font size"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -5389,7 +5365,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/components/CommandPallette.tsx",
|
||||
167
|
||||
168
|
||||
]
|
||||
],
|
||||
"translation": "in"
|
||||
@@ -5745,23 +5721,11 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
50
|
||||
49
|
||||
]
|
||||
],
|
||||
"translation": "Language"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
[
|
||||
"src/components/FontSizeSelector.tsx",
|
||||
9
|
||||
]
|
||||
],
|
||||
"translation": "Large"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -6086,18 +6050,6 @@
|
||||
],
|
||||
"translation": "marked checklist item <0>{0}</0> as incomplete"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
[
|
||||
"src/components/FontSizeSelector.tsx",
|
||||
8
|
||||
]
|
||||
],
|
||||
"translation": "Medium"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -6191,6 +6143,7 @@
|
||||
"translation": "Mentions"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Monday",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
@@ -6199,8 +6152,7 @@
|
||||
"src/views/settings/components/UpdateWeekStartDayForm.tsx",
|
||||
53
|
||||
]
|
||||
],
|
||||
"translation": "Monday"
|
||||
]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -6676,7 +6628,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/components/CommandPallette.tsx",
|
||||
183
|
||||
184
|
||||
]
|
||||
],
|
||||
"translation": "No results found for \"{debouncedQuery}\"."
|
||||
@@ -6760,7 +6712,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
73
|
||||
62
|
||||
]
|
||||
],
|
||||
"translation": "Once you delete your account, there is no going back. This action cannot be undone."
|
||||
@@ -7332,11 +7284,11 @@
|
||||
],
|
||||
[
|
||||
"src/views/card/components/ChecklistItemRow.tsx",
|
||||
67
|
||||
69
|
||||
],
|
||||
[
|
||||
"src/views/card/components/ChecklistItemRow.tsx",
|
||||
95
|
||||
97
|
||||
],
|
||||
[
|
||||
"src/views/card/components/ChecklistNameInput.tsx",
|
||||
@@ -7640,7 +7592,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
30
|
||||
29
|
||||
]
|
||||
],
|
||||
"translation": "Profile picture"
|
||||
@@ -8093,6 +8045,7 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Saturday",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
@@ -8101,8 +8054,7 @@
|
||||
"src/views/settings/components/UpdateWeekStartDayForm.tsx",
|
||||
54
|
||||
]
|
||||
],
|
||||
"translation": "Saturday"
|
||||
]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -8379,7 +8331,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
26
|
||||
25
|
||||
]
|
||||
],
|
||||
"translation": "Settings | Account"
|
||||
@@ -8596,18 +8548,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
[
|
||||
"src/components/FontSizeSelector.tsx",
|
||||
7
|
||||
]
|
||||
],
|
||||
"translation": "Small"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -8725,6 +8665,7 @@
|
||||
"translation": "Success"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Sunday",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
@@ -8733,8 +8674,7 @@
|
||||
"src/views/settings/components/UpdateWeekStartDayForm.tsx",
|
||||
52
|
||||
]
|
||||
],
|
||||
"translation": "Sunday"
|
||||
]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -9571,7 +9511,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/card/components/ChecklistItemRow.tsx",
|
||||
94
|
||||
96
|
||||
]
|
||||
],
|
||||
"translation": "Unable to delete checklist item"
|
||||
@@ -9707,7 +9647,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/card/components/ChecklistItemRow.tsx",
|
||||
66
|
||||
68
|
||||
]
|
||||
],
|
||||
"translation": "Unable to update checklist item"
|
||||
@@ -10067,7 +10007,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/components/LabelForm.tsx",
|
||||
236
|
||||
238
|
||||
]
|
||||
],
|
||||
"translation": "Update label"
|
||||
@@ -10557,6 +10497,7 @@
|
||||
"translation": "Webhooks"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Week start day",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
@@ -10565,8 +10506,7 @@
|
||||
"src/views/settings/WorkspaceSettings.tsx",
|
||||
91
|
||||
]
|
||||
],
|
||||
"translation": "Week start day"
|
||||
]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -10927,7 +10867,7 @@
|
||||
"origin": [
|
||||
[
|
||||
"src/views/settings/AccountSettings.tsx",
|
||||
91
|
||||
80
|
||||
]
|
||||
],
|
||||
"translation": "You are about to change your password."
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Añadir detalles..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Cambiar contraseña"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Cambia el tamaño de fuente de la aplicación."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Cambia tus preferencias de idioma."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Crear etiqueta"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Eliminar cuenta"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Nombre para mostrar"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "Email"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Encuentra respuestas a preguntas frecuentes sobre Kan. ¿No encuentras lo que buscas? No dudes en <0>contactarnos</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Tamaño de fuente"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "en"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Idioma"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Grande"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "marcó el elemento de la lista de verificación <0>{0}</0> como incompleto"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Mediano"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Menciones"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Lunes",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Lunes"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "No se encontraron resultados para \"{debouncedQuery}\"."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Una vez que elimines tu cuenta, no hay vuelta atrás. Esta acción no se puede deshacer."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Foto de perfil"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Sábado",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Sábado"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Configuración | Cuenta"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Pequeño"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Éxito"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Domingo",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Domingo"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "No se pudo eliminar el elemento de la lista de verificación"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "No se pudo actualizar el elemento de la lista de verificación"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Actualizar etiqueta"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhooks"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Día de inicio de semana",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Día de inicio de semana"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Estás a punto de cambiar tu contraseña."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Ajouter des détails..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Changer le mot de passe"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Modifier la taille de police de l'application."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Modifiez vos préférences de langue."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Créer une étiquette"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Supprimer le compte"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Nom d'affichage"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "E-mail"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Trouvez des réponses aux questions courantes sur Kan. Vous ne trouvez pas ce que vous cherchez ? N'hésitez pas à <0>nous contacter</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Taille de police"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "dans"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Langue"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Grande"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "a marqué l'élément de checklist <0>{0}</0> comme incomplet"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Moyenne"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Mentions"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Lundi",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Lundi"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "Aucun résultat trouvé pour « {debouncedQuery} »."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Une fois votre compte supprimé, il n'y a pas de retour en arrière possible. Cette action ne peut pas être annulée."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Photo de profil"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Samedi",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Samedi"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Paramètres | Compte"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Petite"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Succès"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Dimanche",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Dimanche"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Impossible de supprimer l'élément de liste de contrôle"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Impossible de mettre à jour l'élément de la checklist"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Mettre à jour l'étiquette"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhooks"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Jour de début de semaine",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Jour de début de semaine"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Vous êtes sur le point de modifier votre mot de passe."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Aggiungi dettagli..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Cambia password"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Modifica la dimensione del carattere dell'applicazione."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Modifica le tue preferenze di lingua."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Crea etichetta"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Elimina account"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Nome visualizzato"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "Email"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Trova risposte alle domande più comuni su Kan. Non trovi quello che cerchi? Sentiti libero di <0>contattarci</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Dimensione del carattere"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "in"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Lingua"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Grande"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "ha contrassegnato l'elemento della checklist <0>{0}</0> come incompleto"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Medio"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Menzioni"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Lunedì",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Lunedì"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "Nessun risultato trovato per \"{debouncedQuery}\"."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Una volta eliminato il tuo account, non si può tornare indietro. Questa azione non può essere annullata."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Immagine del profilo"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Sabato",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Sabato"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Impostazioni | Account"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Piccolo"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Successo"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Domenica",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Domenica"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Impossibile eliminare l'elemento della checklist"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Impossibile aggiornare l'elemento della checklist"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Aggiorna etichetta"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhook"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Giorno di inizio settimana",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Giorno di inizio settimana"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Stai per modificare la tua password."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Voeg details toe..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Wachtwoord wijzigen"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Pas de lettergrootte van de applicatie aan."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Wijzig je taalvoorkeuren."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Maak label"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Account verwijderen"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Weergavenaam"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "E-mail"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Vind antwoorden op veelgestelde vragen over Kan. Kun je niet vinden wat je zoekt? Neem gerust <0>contact met ons op</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Lettergrootte"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "in"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Taal"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Groot"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "heeft checklistitem <0>{0}</0> als onvolledig gemarkeerd"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Gemiddeld"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Vermeldingen"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Maandag",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Maandag"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "Geen resultaten gevonden voor \"{debouncedQuery}\"."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Zodra je je account verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Profielfoto"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Zaterdag",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Zaterdag"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Instellingen | Account"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Klein"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Succes"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Zondag",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Zondag"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Kan checklistitem niet verwijderen"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Kan checklistitem niet bijwerken"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Label bijwerken"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhooks"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Eerste dag van de week",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Eerste dag van de week"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Je staat op het punt je wachtwoord te wijzigen."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Dodaj szczegóły..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Zmień hasło"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Zmień rozmiar czcionki aplikacji."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Zmień preferencje językowe."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Utwórz etykietę"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Usuń konto"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Nazwa wyświetlana"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "E-mail"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Znajdź odpowiedzi na najczęstsze pytania dotyczące Kan. Nie możesz znaleźć tego, czego szukasz? Śmiało <0>skontaktuj się z nami</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Rozmiar czcionki"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "w"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Język"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Duży"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "oznaczył(a) element listy kontrolnej <0>{0}</0> jako nieukończony"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Średni"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Wzmianki"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Poniedziałek",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Poniedziałek"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "Nie znaleziono wyników dla „{debouncedQuery}”."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Po usunięciu konta nie będzie można tego cofnąć. Tej operacji nie da się odwrócić."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Zdjęcie profilowe"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Sobota",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Sobota"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Ustawienia | Konto"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Mały"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Sukces"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Niedziela",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Niedziela"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Nie można usunąć elementu listy kontrolnej"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Nie można zaktualizować elementu listy kontrolnej"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Aktualizuj etykietę"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhooki"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Pierwszy dzień tygodnia",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Pierwszy dzień tygodnia"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Zaraz zmienisz swoje hasło."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Adicionar detalhes..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Alterar senha"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Altere o tamanho da fonte do aplicativo."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Altere suas preferências de idioma."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Criar etiqueta"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Excluir conta"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Nome de exibição"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "Email"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Encontre respostas para perguntas comuns sobre o Kan. Não encontrou o que procura? Sinta-se à vontade para <0>entrar em contato</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Tamanho da fonte"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "em"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Idioma"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Grande"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "marcou o item da checklist <0>{0}</0> como incompleto"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Médio"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Menções"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Segunda-feira",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Segunda-feira"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "Nenhum resultado encontrado para \"{debouncedQuery}\"."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "Depois de excluir sua conta, não há como voltar atrás. Esta ação não pode ser desfeita."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Foto de perfil"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Sábado",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Sábado"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Configurações | Conta"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Pequeno"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Sucesso"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Domingo",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Domingo"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Não foi possível excluir item da checklist"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Não foi possível atualizar o item da checklist"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Atualizar etiqueta"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Webhooks"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "Dia de início da semana",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "Dia de início da semana"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Você está prestes a alterar sua senha."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -280,7 +280,7 @@
|
||||
"message": "Add details...",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 169]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 200]],
|
||||
"translation": "Добавить детали..."
|
||||
},
|
||||
"lyqwgn": {
|
||||
@@ -1293,25 +1293,18 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 88],
|
||||
["src/views/settings/AccountSettings.tsx", 98],
|
||||
["src/views/settings/AccountSettings.tsx", 77],
|
||||
["src/views/settings/AccountSettings.tsx", 87],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 109],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 178]
|
||||
],
|
||||
"translation": "Сменить пароль"
|
||||
},
|
||||
"fzGyWs": {
|
||||
"message": "Change the application font size.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 63]],
|
||||
"translation": "Изменить размер шрифта приложения."
|
||||
},
|
||||
"yD3ZSw": {
|
||||
"message": "Change your language preferences.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 53]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 52]],
|
||||
"translation": "Измените языковые настройки."
|
||||
},
|
||||
"gZxH/p": {
|
||||
@@ -1722,7 +1715,7 @@
|
||||
"message": "Create label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Создать метку"
|
||||
},
|
||||
"XTKtey": {
|
||||
@@ -1968,8 +1961,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/AccountSettings.tsx", 70],
|
||||
["src/views/settings/AccountSettings.tsx", 80],
|
||||
["src/views/settings/AccountSettings.tsx", 59],
|
||||
["src/views/settings/AccountSettings.tsx", 69],
|
||||
["src/views/settings/components/DeleteAccountConfirmation.tsx", 96]
|
||||
],
|
||||
"translation": "Удалить аккаунт"
|
||||
@@ -2093,7 +2086,7 @@
|
||||
"message": "Display name",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 36]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 35]],
|
||||
"translation": "Отображаемое имя"
|
||||
},
|
||||
"MlyjJu": {
|
||||
@@ -2311,7 +2304,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/components/InviteMemberForm.tsx", 272],
|
||||
["src/views/settings/AccountSettings.tsx", 43]
|
||||
["src/views/settings/AccountSettings.tsx", 42]
|
||||
],
|
||||
"translation": "Email"
|
||||
},
|
||||
@@ -2775,13 +2768,6 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 150]],
|
||||
"translation": "Найдите ответы на часто задаваемые вопросы о Kan. Не нашли то, что искали? Не стесняйтесь <0>связаться с нами</0>."
|
||||
},
|
||||
"q3il6U": {
|
||||
"message": "Font size",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 60]],
|
||||
"translation": "Размер шрифта"
|
||||
},
|
||||
"+3TYXa": {
|
||||
"message": "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.",
|
||||
"placeholders": {},
|
||||
@@ -3201,7 +3187,7 @@
|
||||
"message": "in",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 167]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 168]],
|
||||
"translation": "в"
|
||||
},
|
||||
"WbTDwg": {
|
||||
@@ -3412,16 +3398,9 @@
|
||||
"message": "Language",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 50]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 49]],
|
||||
"translation": "Язык"
|
||||
},
|
||||
"k7rCa/": {
|
||||
"message": "Large",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 9]],
|
||||
"translation": "Крупный"
|
||||
},
|
||||
"8Is1ih": {
|
||||
"message": "Launch offer",
|
||||
"placeholders": {},
|
||||
@@ -3612,13 +3591,6 @@
|
||||
"origin": [["src/views/card/components/ActivityList.tsx", 258]],
|
||||
"translation": "отметил элемент контрольного списка <0>{0}</0> как невыполненный"
|
||||
},
|
||||
"agPptk": {
|
||||
"message": "Medium",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 8]],
|
||||
"translation": "Средний"
|
||||
},
|
||||
"W/Elkg": {
|
||||
"message": "Medium Priority",
|
||||
"placeholders": {},
|
||||
@@ -3670,13 +3642,11 @@
|
||||
"translation": "Упоминания"
|
||||
},
|
||||
"hty0d5": {
|
||||
"translation": "Понедельник",
|
||||
"message": "Monday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]
|
||||
],
|
||||
"translation": "Понедельник"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 53]]
|
||||
},
|
||||
"+8Nek/": {
|
||||
"message": "Monthly",
|
||||
@@ -3955,7 +3925,7 @@
|
||||
"debouncedQuery": ["debouncedQuery"]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/components/CommandPallette.tsx", 183]],
|
||||
"origin": [["src/components/CommandPallette.tsx", 184]],
|
||||
"translation": "По запросу «{debouncedQuery}» ничего не найдено."
|
||||
},
|
||||
"Q9pQaX": {
|
||||
@@ -4006,7 +3976,7 @@
|
||||
"message": "Once you delete your account, there is no going back. This action cannot be undone.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 73]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 62]],
|
||||
"translation": "После удаления аккаунта возврата не будет. Это действие необратимо."
|
||||
},
|
||||
"dmKdk0": {
|
||||
@@ -4336,8 +4306,8 @@
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 67],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 95],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 69],
|
||||
["src/views/card/components/ChecklistItemRow.tsx", 97],
|
||||
["src/views/card/components/ChecklistNameInput.tsx", 47],
|
||||
["src/views/card/components/Checklists.tsx", 81],
|
||||
["src/views/card/components/Comment.tsx", 93],
|
||||
@@ -4468,7 +4438,7 @@
|
||||
"message": "Profile picture",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 30]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 29]],
|
||||
"translation": "Фото профиля"
|
||||
},
|
||||
"7d1a0d": {
|
||||
@@ -4737,13 +4707,11 @@
|
||||
"translation": "SAML SSO"
|
||||
},
|
||||
"+5kO8P": {
|
||||
"translation": "Суббота",
|
||||
"message": "Saturday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]
|
||||
],
|
||||
"translation": "Суббота"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 54]]
|
||||
},
|
||||
"tfDRzk": {
|
||||
"message": "Save",
|
||||
@@ -4908,7 +4876,7 @@
|
||||
"message": "Settings | Account",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 26]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 25]],
|
||||
"translation": "Настройки | Аккаунт"
|
||||
},
|
||||
"iy1wb+": {
|
||||
@@ -5038,13 +5006,6 @@
|
||||
],
|
||||
"translation": "SLA"
|
||||
},
|
||||
"4Revpc": {
|
||||
"message": "Small",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/FontSizeSelector.tsx", 7]],
|
||||
"translation": "Мелкий"
|
||||
},
|
||||
"++rVAm": {
|
||||
"message": "Social Media",
|
||||
"placeholders": {},
|
||||
@@ -5117,13 +5078,11 @@
|
||||
"translation": "Успех"
|
||||
},
|
||||
"DBC3t5": {
|
||||
"translation": "Воскресенье",
|
||||
"message": "Sunday",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]
|
||||
],
|
||||
"translation": "Воскресенье"
|
||||
"origin": [["src/views/settings/components/UpdateWeekStartDayForm.tsx", 52]]
|
||||
},
|
||||
"uZg2+w": {
|
||||
"message": "Supercharge your workspace for just $29/month. Here's what you'll get:",
|
||||
@@ -5634,7 +5593,7 @@
|
||||
"message": "Unable to delete checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 94]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 96]],
|
||||
"translation": "Не удалось удалить элемент контрольного списка"
|
||||
},
|
||||
"2QGEbi": {
|
||||
@@ -5718,7 +5677,7 @@
|
||||
"message": "Unable to update checklist item",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 66]],
|
||||
"origin": [["src/views/card/components/ChecklistItemRow.tsx", 68]],
|
||||
"translation": "Не удалось обновить элемент контрольного списка"
|
||||
},
|
||||
"fYVH36": {
|
||||
@@ -5917,7 +5876,7 @@
|
||||
"message": "Update label",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/LabelForm.tsx", 236]],
|
||||
"origin": [["src/components/LabelForm.tsx", 238]],
|
||||
"translation": "Обновить метку"
|
||||
},
|
||||
"L5ZPjz": {
|
||||
@@ -6209,11 +6168,11 @@
|
||||
"translation": "Вебхуки"
|
||||
},
|
||||
"xLTZVf": {
|
||||
"translation": "День начала недели",
|
||||
"message": "Week start day",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]],
|
||||
"translation": "День начала недели"
|
||||
"origin": [["src/views/settings/WorkspaceSettings.tsx", 91]]
|
||||
},
|
||||
"9eF5oV": {
|
||||
"message": "Welcome back",
|
||||
@@ -6435,7 +6394,7 @@
|
||||
"message": "You are about to change your password.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 91]],
|
||||
"origin": [["src/views/settings/AccountSettings.tsx", 80]],
|
||||
"translation": "Вы собираетесь изменить свой пароль."
|
||||
},
|
||||
"aelko+": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -12,7 +12,6 @@ import posthog from "posthog-js";
|
||||
import { PostHogProvider } from "posthog-js/react";
|
||||
import { useEffect } from "react";
|
||||
|
||||
import { FontSizeProvider } from "~/providers/font-size";
|
||||
import { KeyboardShortcutProvider } from "~/providers/keyboard-shortcuts";
|
||||
import { LinguiProviderWrapper } from "~/providers/lingui";
|
||||
import { ModalProvider } from "~/providers/modal";
|
||||
@@ -84,21 +83,19 @@ const MyApp: AppType = ({ Component, pageProps }: AppPropsWithLayout) => {
|
||||
<main className="font-sans">
|
||||
<KeyboardShortcutProvider>
|
||||
<LinguiProviderWrapper>
|
||||
<FontSizeProvider>
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||
<ModalProvider>
|
||||
<PopupProvider>
|
||||
{posthogKey ? (
|
||||
<PostHogProvider client={posthog}>
|
||||
{getLayout(<Component {...pageProps} />)}
|
||||
</PostHogProvider>
|
||||
) : (
|
||||
getLayout(<Component {...pageProps} />)
|
||||
)}
|
||||
</PopupProvider>
|
||||
</ModalProvider>
|
||||
</ThemeProvider>
|
||||
</FontSizeProvider>
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||
<ModalProvider>
|
||||
<PopupProvider>
|
||||
{posthogKey ? (
|
||||
<PostHogProvider client={posthog}>
|
||||
{getLayout(<Component {...pageProps} />)}
|
||||
</PostHogProvider>
|
||||
) : (
|
||||
getLayout(<Component {...pageProps} />)
|
||||
)}
|
||||
</PopupProvider>
|
||||
</ModalProvider>
|
||||
</ThemeProvider>
|
||||
</LinguiProviderWrapper>
|
||||
</KeyboardShortcutProvider>
|
||||
</main>
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
import React, {
|
||||
createContext,
|
||||
useContext,
|
||||
useEffect,
|
||||
useState,
|
||||
type ReactNode,
|
||||
} from "react";
|
||||
|
||||
export type FontSize = "small" | "medium" | "large";
|
||||
|
||||
const fontSizeMap: Record<FontSize, string> = {
|
||||
small: "14px",
|
||||
medium: "16px",
|
||||
large: "18px",
|
||||
};
|
||||
|
||||
interface FontSizeContextProps {
|
||||
fontSize: FontSize;
|
||||
setFontSize: (size: FontSize) => void;
|
||||
}
|
||||
|
||||
const FontSizeContext = createContext<FontSizeContextProps | undefined>(
|
||||
undefined,
|
||||
);
|
||||
|
||||
export const FontSizeProvider: React.FC<{ children: ReactNode }> = ({
|
||||
children,
|
||||
}) => {
|
||||
const [fontSize, setFontSizeState] = useState<FontSize>("medium");
|
||||
|
||||
const setFontSize = (size: FontSize) => {
|
||||
document.documentElement.style.fontSize = fontSizeMap[size];
|
||||
localStorage.setItem("fontSize", size);
|
||||
setFontSizeState(size);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
const stored = localStorage.getItem("fontSize") as FontSize | null;
|
||||
const size = stored && fontSizeMap[stored] ? stored : "medium";
|
||||
document.documentElement.style.fontSize = fontSizeMap[size];
|
||||
setFontSizeState(size);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<FontSizeContext.Provider value={{ fontSize, setFontSize }}>
|
||||
{children}
|
||||
</FontSizeContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
export const useFontSize = (): FontSizeContextProps => {
|
||||
const context = useContext(FontSizeContext);
|
||||
if (!context) {
|
||||
throw new Error("useFontSize must be used within a FontSizeProvider");
|
||||
}
|
||||
return context;
|
||||
};
|
||||
@@ -2,10 +2,6 @@
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
html {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
[contenteditable="true"]:empty:before {
|
||||
content: attr(placeholder);
|
||||
display: block;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { DraggableProvided } from "react-beautiful-dnd";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { useState } from "react";
|
||||
import { useEffect, useState } from "react";
|
||||
import ContentEditable from "react-contenteditable";
|
||||
import { HiXMark } from "react-icons/hi2";
|
||||
import { RiDraggable } from "react-icons/ri";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
|
||||
import PlainTextEditor from "~/components/PlainTextEditor";
|
||||
import { usePopup } from "~/providers/popup";
|
||||
import { api } from "~/utils/api";
|
||||
import { invalidateCard } from "~/utils/cardInvalidation";
|
||||
@@ -33,7 +33,9 @@ export default function ChecklistItemRow({
|
||||
}: ChecklistItemRowProps) {
|
||||
const utils = api.useUtils();
|
||||
const { showPopup } = usePopup();
|
||||
const [completed, setCompleted] = useState(item.completed);
|
||||
|
||||
const [title, setTitle] = useState("");
|
||||
const [completed, setCompleted] = useState(false);
|
||||
|
||||
const updateItem = api.checklist.updateItem.useMutation({
|
||||
onMutate: async (vars) => {
|
||||
@@ -101,6 +103,21 @@ export default function ChecklistItemRow({
|
||||
},
|
||||
});
|
||||
|
||||
// Only resync from props when switching items to avoid clobbering edits
|
||||
useEffect(() => {
|
||||
setTitle(item.title);
|
||||
setCompleted(item.completed);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [item.publicId]);
|
||||
|
||||
const sanitizeHtmlToPlainText = (html: string): string =>
|
||||
html
|
||||
.replace(/<br\s*\/?>(\n)?/gi, "\n")
|
||||
.replace(/<div><br\s*\/?><\/div>/gi, "")
|
||||
.replace(/<[^>]*>/g, "")
|
||||
.replace(/ /g, " ")
|
||||
.trim();
|
||||
|
||||
const handleToggleCompleted = () => {
|
||||
if (viewOnly) return;
|
||||
setCompleted((prev) => !prev);
|
||||
@@ -110,8 +127,14 @@ export default function ChecklistItemRow({
|
||||
});
|
||||
};
|
||||
|
||||
const commitTitle = (plain: string) => {
|
||||
if (!plain || plain === item.title) return;
|
||||
const commitTitle = (rawHtml: string) => {
|
||||
if (viewOnly) return;
|
||||
const plain = sanitizeHtmlToPlainText(rawHtml);
|
||||
if (!plain || plain === item.title) {
|
||||
setTitle(item.title);
|
||||
return;
|
||||
}
|
||||
setTitle(plain);
|
||||
updateItem.mutate({
|
||||
checklistItemPublicId: item.publicId,
|
||||
title: plain,
|
||||
@@ -160,26 +183,36 @@ export default function ChecklistItemRow({
|
||||
)}
|
||||
/>
|
||||
</label>
|
||||
|
||||
<div className="flex-1 pr-7">
|
||||
<PlainTextEditor
|
||||
key={item.publicId}
|
||||
content={item.title}
|
||||
readOnly={viewOnly}
|
||||
placeholder={t`Add details...`}
|
||||
onBlur={commitTitle}
|
||||
onEnter={(plain) => {
|
||||
commitTitle(plain);
|
||||
onCreateNewItem?.();
|
||||
<ContentEditable
|
||||
html={title}
|
||||
disabled={viewOnly}
|
||||
onChange={(e) => setTitle(e.target.value)}
|
||||
// @ts-expect-error - valid event
|
||||
onBlur={(e: Event) => {
|
||||
const innerHTML = (e.target as HTMLElement).innerHTML;
|
||||
commitTitle(innerHTML);
|
||||
}}
|
||||
onEscape={() => undefined}
|
||||
className={twMerge(
|
||||
"m-0 min-h-[20px] w-full p-0 text-sm leading-[20px] text-light-950 dark:text-dark-950",
|
||||
"m-0 min-h-[20px] w-full p-0 text-sm leading-[20px] text-light-950 outline-none focus-visible:outline-none dark:text-dark-950",
|
||||
viewOnly && "cursor-default",
|
||||
)}
|
||||
placeholder={t`Add details...`}
|
||||
onKeyDown={(e) => {
|
||||
if (viewOnly) return;
|
||||
if (e.key === "Enter") {
|
||||
e.preventDefault();
|
||||
const innerHTML = (e.currentTarget as HTMLElement).innerHTML;
|
||||
commitTitle(innerHTML);
|
||||
onCreateNewItem?.();
|
||||
}
|
||||
if (e.key === "Escape") {
|
||||
e.preventDefault();
|
||||
setTitle(item.title);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{!viewOnly && (
|
||||
<button
|
||||
type="button"
|
||||
|
||||
@@ -3,7 +3,6 @@ import { env } from "next-runtime-env";
|
||||
|
||||
import Button from "~/components/Button";
|
||||
import FeedbackModal from "~/components/FeedbackModal";
|
||||
import { FontSizeSelector } from "~/components/FontSizeSelector";
|
||||
import { LanguageSelector } from "~/components/LanguageSelector";
|
||||
import Modal from "~/components/modal";
|
||||
import { NewWorkspaceForm } from "~/components/NewWorkspaceForm";
|
||||
@@ -55,16 +54,6 @@ export default function AccountSettings() {
|
||||
<LanguageSelector />
|
||||
</div>
|
||||
|
||||
<div className="mb-8 border-t border-light-300 dark:border-dark-300">
|
||||
<h2 className="mb-4 mt-8 text-[14px] font-bold text-neutral-900 dark:text-dark-1000">
|
||||
{t`Font size`}
|
||||
</h2>
|
||||
<p className="mb-8 text-sm text-neutral-500 dark:text-dark-900">
|
||||
{t`Change the application font size.`}
|
||||
</p>
|
||||
<FontSizeSelector />
|
||||
</div>
|
||||
|
||||
<div className="mb-8 border-t border-light-300 dark:border-dark-300">
|
||||
<h2 className="mb-4 mt-8 text-[14px] font-bold text-neutral-900 dark:text-dark-1000">
|
||||
{t`Delete account`}
|
||||
|
||||
@@ -39,8 +39,6 @@ services:
|
||||
|
||||
# Logging (optional - debug, info, warn, error; defaults to debug in dev, info in prod)
|
||||
- LOG_LEVEL=${LOG_LEVEL}
|
||||
- AXIOM_TOKEN=${AXIOM_TOKEN}
|
||||
- AXIOM_DATASET=${AXIOM_DATASET}
|
||||
|
||||
# Stripe
|
||||
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
|
||||
|
||||
@@ -227,7 +227,7 @@ export const boardRouter = createTRPCRouter({
|
||||
boardSlug: z
|
||||
.string()
|
||||
.min(3)
|
||||
.max(60)
|
||||
.max(24)
|
||||
.regex(/^(?![-]+$)[a-zA-Z0-9-]+$/),
|
||||
members: z.array(z.string().min(12)).optional(),
|
||||
labels: z.array(z.string().min(12)).optional(),
|
||||
@@ -657,7 +657,7 @@ export const boardRouter = createTRPCRouter({
|
||||
boardSlug: z
|
||||
.string()
|
||||
.min(3)
|
||||
.max(60)
|
||||
.max(24)
|
||||
.regex(/^(?![-]+$)[a-zA-Z0-9-]+$/),
|
||||
boardPublicId: z.string().min(12),
|
||||
}),
|
||||
|
||||
@@ -4,7 +4,6 @@ import { z } from "zod";
|
||||
import * as cardRepo from "@kan/db/repository/card.repo";
|
||||
import * as cardActivityRepo from "@kan/db/repository/cardActivity.repo";
|
||||
import * as checklistRepo from "@kan/db/repository/checklist.repo";
|
||||
import { stripHtml } from "@kan/shared/utils";
|
||||
|
||||
import { createTRPCRouter, protectedProcedure } from "../trpc";
|
||||
import { assertPermission } from "../utils/permissions";
|
||||
@@ -224,7 +223,7 @@ export const checklistRouter = createTRPCRouter({
|
||||
.input(
|
||||
z.object({
|
||||
checklistPublicId: z.string().length(12),
|
||||
title: z.string().min(1).max(500).transform(stripHtml),
|
||||
title: z.string().min(1).max(500),
|
||||
}),
|
||||
)
|
||||
.output(checklistItemSchema)
|
||||
@@ -289,7 +288,7 @@ export const checklistRouter = createTRPCRouter({
|
||||
.input(
|
||||
z.object({
|
||||
checklistItemPublicId: z.string().length(12),
|
||||
title: z.string().min(1).max(500).transform(stripHtml).optional(),
|
||||
title: z.string().min(1).max(500).optional(),
|
||||
completed: z.boolean().optional(),
|
||||
index: z.number().int().min(0).optional(),
|
||||
}),
|
||||
@@ -323,29 +322,30 @@ export const checklistRouter = createTRPCRouter({
|
||||
|
||||
const previousTitle = item.title;
|
||||
|
||||
let updatedItem;
|
||||
let updatedItem;
|
||||
|
||||
if (input.title !== undefined || input.completed !== undefined) {
|
||||
updatedItem = await checklistRepo.updateItemById(ctx.db, {
|
||||
id: item.id,
|
||||
title: input.title,
|
||||
completed: input.completed,
|
||||
});
|
||||
}
|
||||
if (input.title !== undefined || input.completed !== undefined) {
|
||||
updatedItem = await checklistRepo.updateItemById(ctx.db, {
|
||||
id: item.id,
|
||||
title: input.title,
|
||||
completed: input.completed,
|
||||
});
|
||||
}
|
||||
|
||||
if (input.index !== undefined) {
|
||||
updatedItem = await checklistRepo.reorderItem(ctx.db, {
|
||||
itemId: item.id,
|
||||
newIndex: input.index,
|
||||
});
|
||||
}
|
||||
if (input.index !== undefined) {
|
||||
updatedItem = await checklistRepo.reorderItem(ctx.db, {
|
||||
itemId: item.id,
|
||||
newIndex: input.index,
|
||||
});
|
||||
}
|
||||
|
||||
if (!updatedItem) {
|
||||
throw new TRPCError({
|
||||
message: `Failed to update checklist item`,
|
||||
code: "INTERNAL_SERVER_ERROR",
|
||||
});
|
||||
}
|
||||
|
||||
if (!updatedItem) {
|
||||
throw new TRPCError({
|
||||
message: `Failed to update checklist item`,
|
||||
code: "INTERNAL_SERVER_ERROR",
|
||||
});
|
||||
}
|
||||
|
||||
// Log completion toggle
|
||||
if (input.completed !== undefined) {
|
||||
@@ -371,6 +371,7 @@ export const checklistRouter = createTRPCRouter({
|
||||
}
|
||||
|
||||
return updatedItem;
|
||||
|
||||
}),
|
||||
deleteItem: protectedProcedure
|
||||
.meta({
|
||||
|
||||
@@ -19,7 +19,6 @@ import { encryptToken } from "../utils/encryption";
|
||||
export const integrationRouter = createTRPCRouter({
|
||||
saveGitHubToken: protectedProcedure
|
||||
.input(z.object({ token: z.string() }))
|
||||
.output(z.object({ success: z.boolean() }))
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
const user = ctx.user;
|
||||
|
||||
@@ -44,9 +43,7 @@ export const integrationRouter = createTRPCRouter({
|
||||
return { success: true };
|
||||
}),
|
||||
|
||||
disconnectGitHub: protectedProcedure
|
||||
.output(z.object({ success: z.boolean() }))
|
||||
.mutation(async ({ ctx }) => {
|
||||
disconnectGitHub: protectedProcedure.mutation(async ({ ctx }) => {
|
||||
const user = ctx.user;
|
||||
|
||||
if (!user)
|
||||
@@ -59,9 +56,7 @@ export const integrationRouter = createTRPCRouter({
|
||||
return { success: true };
|
||||
}),
|
||||
|
||||
getGitHubStatus: protectedProcedure
|
||||
.output(z.object({ connected: z.boolean() }))
|
||||
.query(async ({ ctx }) => {
|
||||
getGitHubStatus: protectedProcedure.query(async ({ ctx }) => {
|
||||
const user = ctx.user;
|
||||
|
||||
if (!user)
|
||||
|
||||
@@ -31,6 +31,7 @@ export const userRouter = createTRPCRouter({
|
||||
.object({
|
||||
id: z.number(),
|
||||
prefix: z.string().nullable(),
|
||||
key: z.string(),
|
||||
})
|
||||
.nullable(),
|
||||
}),
|
||||
@@ -61,7 +62,7 @@ export const userRouter = createTRPCRouter({
|
||||
return {
|
||||
...result,
|
||||
image: imageUrl,
|
||||
apiKey: apiKey ? { id: apiKey.id, prefix: apiKey.prefix } : null,
|
||||
apiKey: apiKey ?? null,
|
||||
};
|
||||
}),
|
||||
update: protectedProcedure
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { randomUUID } from "crypto";
|
||||
import type { CreateNextContextOptions } from "@trpc/server/adapters/next";
|
||||
import type { NextApiRequest } from "next";
|
||||
import type { OpenApiMeta } from "trpc-to-openapi";
|
||||
@@ -12,28 +11,7 @@ import { initAuth } from "@kan/auth/server";
|
||||
import { createDrizzleClient } from "@kan/db/client";
|
||||
import { createLogger } from "@kan/logger";
|
||||
|
||||
const log = createLogger("api");
|
||||
|
||||
const TRPC_STATUS_MAP: Partial<Record<TRPCError["code"], number>> = {
|
||||
PARSE_ERROR: 400,
|
||||
BAD_REQUEST: 400,
|
||||
UNAUTHORIZED: 401,
|
||||
FORBIDDEN: 403,
|
||||
NOT_FOUND: 404,
|
||||
METHOD_NOT_SUPPORTED: 405,
|
||||
TIMEOUT: 408,
|
||||
CONFLICT: 409,
|
||||
PRECONDITION_FAILED: 412,
|
||||
PAYLOAD_TOO_LARGE: 413,
|
||||
UNPROCESSABLE_CONTENT: 422,
|
||||
TOO_MANY_REQUESTS: 429,
|
||||
CLIENT_CLOSED_REQUEST: 499,
|
||||
INTERNAL_SERVER_ERROR: 500,
|
||||
NOT_IMPLEMENTED: 501,
|
||||
BAD_GATEWAY: 502,
|
||||
SERVICE_UNAVAILABLE: 503,
|
||||
GATEWAY_TIMEOUT: 504,
|
||||
};
|
||||
const log = createLogger("trpc");
|
||||
|
||||
export interface User {
|
||||
id: string;
|
||||
@@ -72,7 +50,6 @@ interface CreateContextOptions {
|
||||
db: dbClient;
|
||||
auth: ReturnType<typeof createAuthWithHeaders>;
|
||||
headers: Headers;
|
||||
transport?: "trpc" | "rest";
|
||||
}
|
||||
|
||||
export const createInnerTRPCContext = (opts: CreateContextOptions) => {
|
||||
@@ -81,8 +58,6 @@ export const createInnerTRPCContext = (opts: CreateContextOptions) => {
|
||||
db: opts.db,
|
||||
auth: opts.auth,
|
||||
headers: opts.headers,
|
||||
transport: opts.transport ?? "trpc",
|
||||
requestId: randomUUID(),
|
||||
};
|
||||
};
|
||||
|
||||
@@ -94,13 +69,7 @@ export const createTRPCContext = async ({ req }: CreateNextContextOptions) => {
|
||||
|
||||
const session = await auth.api.getSession();
|
||||
|
||||
return createInnerTRPCContext({
|
||||
db,
|
||||
user: session?.user,
|
||||
auth,
|
||||
headers,
|
||||
transport: "trpc",
|
||||
});
|
||||
return createInnerTRPCContext({ db, user: session?.user, auth, headers });
|
||||
};
|
||||
|
||||
export const createNextApiContext = async (req: NextApiRequest) => {
|
||||
@@ -111,13 +80,7 @@ export const createNextApiContext = async (req: NextApiRequest) => {
|
||||
|
||||
const session = await auth.api.getSession();
|
||||
|
||||
return createInnerTRPCContext({
|
||||
db,
|
||||
user: session?.user,
|
||||
auth,
|
||||
headers,
|
||||
transport: "trpc",
|
||||
});
|
||||
return createInnerTRPCContext({ db, user: session?.user, auth, headers });
|
||||
};
|
||||
|
||||
export const createRESTContext = async ({ req }: CreateNextContextOptions) => {
|
||||
@@ -130,16 +93,11 @@ export const createRESTContext = async ({ req }: CreateNextContextOptions) => {
|
||||
try {
|
||||
session = await auth.api.getSession();
|
||||
} catch (error) {
|
||||
log.warn({ err: error }, "Failed to get session, treating as unauthenticated");
|
||||
log.error({ err: error }, "Error getting session");
|
||||
throw error;
|
||||
}
|
||||
|
||||
return createInnerTRPCContext({
|
||||
db,
|
||||
user: session?.user,
|
||||
auth,
|
||||
headers,
|
||||
transport: "rest",
|
||||
});
|
||||
return createInnerTRPCContext({ db, user: session?.user, auth, headers });
|
||||
};
|
||||
|
||||
const t = initTRPC
|
||||
@@ -163,45 +121,25 @@ export const createTRPCRouter = t.router;
|
||||
|
||||
export const createCallerFactory = t.createCallerFactory;
|
||||
|
||||
const loggingMiddleware = t.middleware(async ({ path, type, next, ctx, getRawInput }) => {
|
||||
const loggingMiddleware = t.middleware(async ({ path, type, next, ctx }) => {
|
||||
const start = Date.now();
|
||||
const [result, input] = await Promise.all([next(), getRawInput().catch(() => undefined)]);
|
||||
const result = await next();
|
||||
const duration = Date.now() - start;
|
||||
|
||||
const { user, transport, requestId } = ctx as {
|
||||
user?: { id: string; email: string };
|
||||
transport?: string;
|
||||
requestId?: string;
|
||||
};
|
||||
const isCloud = process.env.NEXT_PUBLIC_KAN_ENV === "cloud";
|
||||
const meta = {
|
||||
requestId,
|
||||
procedure: path,
|
||||
type,
|
||||
transport,
|
||||
duration,
|
||||
userId: user?.id,
|
||||
...(isCloud && { email: user?.email }),
|
||||
input,
|
||||
};
|
||||
|
||||
const label = transport === "rest" ? "REST" : "tRPC";
|
||||
const meta = { procedure: path, type, duration, userId: (ctx as { user?: { id: string } }).user?.id };
|
||||
|
||||
if (result.ok) {
|
||||
log.info({ ...meta, status: 200 }, `${label} OK`);
|
||||
log.info(meta, "tRPC OK");
|
||||
} else {
|
||||
const status = TRPC_STATUS_MAP[result.error.code] ?? 500;
|
||||
const errorCode = result.error.code;
|
||||
log.error(
|
||||
{ ...meta, status, errorCode, err: result.error },
|
||||
`${label} error`,
|
||||
);
|
||||
log.error({ ...meta, err: result.error }, "tRPC error");
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
|
||||
export const publicProcedure = t.procedure.use(loggingMiddleware);
|
||||
export const publicProcedure = t.procedure.use(loggingMiddleware).meta({
|
||||
openapi: { method: "GET", path: "/public" },
|
||||
});
|
||||
|
||||
const enforceUserIsAuthed = t.middleware(async ({ ctx, next }) => {
|
||||
if (!ctx.user) {
|
||||
@@ -225,7 +163,13 @@ const enforceUserIsAdmin = t.middleware(async ({ ctx, next }) => {
|
||||
|
||||
export const protectedProcedure = t.procedure
|
||||
.use(loggingMiddleware)
|
||||
.use(enforceUserIsAuthed);
|
||||
.use(enforceUserIsAuthed)
|
||||
.meta({
|
||||
openapi: {
|
||||
method: "GET",
|
||||
path: "/protected",
|
||||
},
|
||||
});
|
||||
|
||||
export const adminProtectedProcedure = t.procedure
|
||||
.use(loggingMiddleware)
|
||||
|
||||
@@ -165,13 +165,6 @@ export function createPlugins(db: dbClient) {
|
||||
: []),
|
||||
apiKey({
|
||||
enableSessionForAPIKeys: true,
|
||||
customAPIKeyGetter: (ctx) => {
|
||||
const authorization = ctx.headers?.get("authorization");
|
||||
if (authorization?.startsWith("Bearer ")) {
|
||||
return authorization.slice(7);
|
||||
}
|
||||
return ctx.headers?.get("x-api-key") ?? undefined;
|
||||
},
|
||||
rateLimit: {
|
||||
enabled: true,
|
||||
timeWindow: 1000 * 60, // 1 minute
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
"typecheck": "tsc --noEmit --emitDeclarationOnly false"
|
||||
},
|
||||
"dependencies": {
|
||||
"@axiomhq/js": "^1.4.0",
|
||||
"pino": "^9.14.0",
|
||||
"pino-pretty": "^13.1.3"
|
||||
},
|
||||
|
||||
@@ -1,43 +1,20 @@
|
||||
import { Axiom } from "@axiomhq/js";
|
||||
import pino from "pino";
|
||||
|
||||
const isDev = process.env.NODE_ENV !== "production";
|
||||
const isCloud = process.env.NEXT_PUBLIC_KAN_ENV === "cloud";
|
||||
const level = process.env.LOG_LEVEL || (isDev ? "debug" : "info");
|
||||
const level = process.env.LOG_LEVEL ?? (isDev ? "debug" : "info");
|
||||
|
||||
const axiomToken = process.env.AXIOM_TOKEN;
|
||||
const axiomDataset = process.env.AXIOM_DATASET;
|
||||
const useAxiom = isCloud && !!axiomToken && !!axiomDataset;
|
||||
|
||||
function createAxiomStream(token: string, dataset: string): pino.DestinationStream {
|
||||
const client = new Axiom({ token });
|
||||
return {
|
||||
write(msg: string) {
|
||||
try {
|
||||
client.ingest(dataset, [JSON.parse(msg) as Record<string, unknown>]);
|
||||
} catch {
|
||||
// ignore malformed log lines
|
||||
}
|
||||
export const logger = pino({
|
||||
level,
|
||||
...(isDev && {
|
||||
transport: {
|
||||
target: "pino-pretty",
|
||||
options: {
|
||||
colorize: true,
|
||||
ignore: "pid,hostname",
|
||||
translateTime: "HH:MM:ss",
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export const logger = useAxiom
|
||||
? pino(
|
||||
{ level },
|
||||
pino.multistream([
|
||||
{ stream: process.stdout, level },
|
||||
{ stream: createAxiomStream(axiomToken, axiomDataset), level },
|
||||
]),
|
||||
)
|
||||
: pino({
|
||||
level,
|
||||
...(isDev && {
|
||||
transport: {
|
||||
target: "pino-pretty",
|
||||
options: { colorize: true, ignore: "pid,hostname", translateTime: "HH:MM:ss" },
|
||||
},
|
||||
}),
|
||||
});
|
||||
}),
|
||||
});
|
||||
|
||||
export const createLogger = (module: string) => logger.child({ module });
|
||||
|
||||
@@ -5,4 +5,3 @@ export * from "./email";
|
||||
export * from "./dueDateFilters";
|
||||
export * from "./s3";
|
||||
export * from "./mentions";
|
||||
export * from "./sanitize";
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/**
|
||||
* Strips all HTML tags from a string, returning plain text.
|
||||
* Use this on any user-supplied text field before storing or displaying.
|
||||
*/
|
||||
export const stripHtml = (value: string): string =>
|
||||
value.replace(/<[^>]*>/g, "").trim();
|
||||
16
pnpm-lock.yaml
generated
16
pnpm-lock.yaml
generated
@@ -504,9 +504,6 @@ importers:
|
||||
|
||||
packages/logger:
|
||||
dependencies:
|
||||
'@axiomhq/js':
|
||||
specifier: ^1.4.0
|
||||
version: 1.4.0
|
||||
pino:
|
||||
specifier: ^9.14.0
|
||||
version: 9.14.0
|
||||
@@ -894,10 +891,6 @@ packages:
|
||||
resolution: {integrity: sha512-kLO7k7cGJ6KaHiExSJWojZurF7SnGMDHXRuQunFnEoD0n1yB6Lqy/S/zHiQ7oJnBhPr9q0TW9qFkrsZb1Uc54w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@axiomhq/js@1.4.0':
|
||||
resolution: {integrity: sha512-wC5x1ud/QJMstrjpicATkyY8+ZVWEl4WlXMtA5EZf7hkj0+b191yv4yynLxLEfr/MveXora9m6CWdJq4DsbcAg==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
'@babel/code-frame@7.27.1':
|
||||
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -5635,9 +5628,6 @@ packages:
|
||||
picomatch:
|
||||
optional: true
|
||||
|
||||
fetch-retry@6.0.0:
|
||||
resolution: {integrity: sha512-BUFj1aMubgib37I3v4q78fYo63Po7t4HUPTpQ6/QE6yK6cIQrP+W43FYToeTEyg5m2Y7eFUtijUuAv/PDlWuag==}
|
||||
|
||||
fflate@0.4.8:
|
||||
resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
|
||||
|
||||
@@ -9394,10 +9384,6 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@axiomhq/js@1.4.0':
|
||||
dependencies:
|
||||
fetch-retry: 6.0.0
|
||||
|
||||
'@babel/code-frame@7.27.1':
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
@@ -14417,8 +14403,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.3
|
||||
|
||||
fetch-retry@6.0.0: {}
|
||||
|
||||
fflate@0.4.8: {}
|
||||
|
||||
figures@3.2.0:
|
||||
|
||||
@@ -130,9 +130,7 @@
|
||||
"NOVU_API_KEY",
|
||||
"EMAIL_UNSUBSCRIBE_SECRET",
|
||||
"REDIS_URL",
|
||||
"LOG_LEVEL",
|
||||
"AXIOM_TOKEN",
|
||||
"AXIOM_DATASET"
|
||||
"LOG_LEVEL"
|
||||
],
|
||||
"globalPassThroughEnv": [
|
||||
"NODE_ENV",
|
||||
|
||||
Reference in New Issue
Block a user