mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-10-04 02:33:47 +10:00
feat: make cover letters documents of their own
Resumes no longer hold cover-letter sections. A migration saves every letter a resume carried as a letter linked to that resume's details and design, hands a resume's only letter to its only letter-less application, then removes the sections from resumes and their layouts. rollback.sql puts them back. Every resume write on the server moves any letter it still carries into a saved letter in the same transaction, so stale tabs, older files, API clients and restored versions keep working without duplicating letters. The resume editor no longer adds or imports letters, the resume download drops its Cover letter tab, and resume PDF downloads (API, signed links, MCP) no longer take a cover-letter target. copy_embedded_cover_letter and POST /cover-letters/from-resume are removed.
This commit is contained in:
@@ -1602,6 +1602,11 @@ The items left open in §12 and §13, in the order they were done. Local commits
|
||||
- **List markers stay with their first line.** Converted list items carry their index into Forme's layout. `renderResume` finds markers left on a page their first line leaves and renders again with a page break before those items (at most three passes). Eleven expected-failure tests now pass. Presence hints are still ignored.
|
||||
- **Right to left:** the award title and date row mirrors like every other header row.
|
||||
- **§3.10 contract steps**, listed in §3.10. Migration `20260929063245_contract_redesign_legacy_fields` has a `rollback.sql`. It was applied only to the isolated verification database.
|
||||
- **Letters leave resumes.** A cover letter is a document of its own; resumes no longer hold cover-letter sections.
|
||||
- Migration `20260929071322_letters_leave_resumes` (with `rollback.sql`) saves every letter a resume carried (hidden ones too) as a letter linked to that resume's details and design, named "‹resume› — ‹section›". A resume with one letter, used by exactly one letter-less application, hands the letter to that application. The sections then leave the resumes and their layouts. Resume History keeps older versions as they were.
|
||||
- Every resume write on the server (create, import, update, patch, restore) passes through `adoptEmbeddedLetters`, in the same transaction, so a stale tab, an old file, an API client or a restored version still can't put a letter back into a resume. A letter already saved from the same item with the same text isn't saved twice.
|
||||
- Removed: adding a cover letter in the resume editor, "Copy to Documents", "Import from library", the resume Download's Cover letter tab, the `cover-letter` target of resume PDF downloads (API, signed links, MCP) and `copy_embedded_cover_letter`. The sample resume has no letter. Letters still render through the templates as a cover-letter section of their own document.
|
||||
- Letters moved by the migration are stored as they were written; the server sanitises them on their next save.
|
||||
- **Knip:** the Forme port's unused exports and types are removed, and the server's engine dependencies are listed.
|
||||
- **Engine limits still open** (expected failures in `packages/pdf`, which pass once Forme supports them):
|
||||
- Right-to-left lines are laid out left to right, then right-aligned.
|
||||
|
||||
@@ -23,7 +23,6 @@ describe("handleResumePdfDownload", () => {
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "resume",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
mocks.createResumePdfDownload.mockResolvedValueOnce({
|
||||
@@ -41,89 +40,28 @@ describe("handleResumePdfDownload", () => {
|
||||
expect(response.headers.get("Content-Disposition")).toBe('attachment; filename="Scizor.pdf"');
|
||||
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
|
||||
expect(await response.text()).toBe("%PDF");
|
||||
expect(mocks.createResumePdfDownload).toHaveBeenCalledWith({ id: "resume-1", userId: "user-1", target: "resume" });
|
||||
expect(mocks.createResumePdfDownload).toHaveBeenCalledWith({ id: "resume-1", userId: "user-1" });
|
||||
});
|
||||
|
||||
it("passes the cover letter target through to PDF rendering", async () => {
|
||||
const pdf = new File([new Uint8Array([37, 80, 68, 70])], "Cover Letter.pdf", { type: "application/pdf" });
|
||||
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "cover-letter",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
mocks.createResumePdfDownload.mockResolvedValueOnce({
|
||||
headers: { "content-disposition": 'attachment; filename="Cover Letter.pdf"' },
|
||||
body: pdf,
|
||||
});
|
||||
|
||||
await handleResumePdfDownload(
|
||||
new Request("https://example.com/api/resumes/resume-1/pdf?token=signed&target=cover-letter"),
|
||||
"resume-1",
|
||||
);
|
||||
|
||||
expect(mocks.createResumePdfDownload).toHaveBeenCalledWith({
|
||||
id: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "cover-letter",
|
||||
});
|
||||
});
|
||||
|
||||
it("defaults a legacy token without a target to resume", async () => {
|
||||
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
mocks.createResumePdfDownload.mockResolvedValueOnce({
|
||||
headers: { "content-disposition": 'attachment; filename="Cover Letter.pdf"' },
|
||||
body: new File([], "Cover Letter.pdf", { type: "application/pdf" }),
|
||||
});
|
||||
|
||||
await handleResumePdfDownload(new Request("https://example.com/api/resumes/resume-1/pdf?token=legacy"), "resume-1");
|
||||
|
||||
expect(mocks.createResumePdfDownload).toHaveBeenCalledWith({
|
||||
id: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "resume",
|
||||
});
|
||||
});
|
||||
|
||||
it("rejects a cover-letter target for a legacy token without one", async () => {
|
||||
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
|
||||
const response = await handleResumePdfDownload(
|
||||
new Request("https://example.com/api/resumes/resume-1/pdf?token=legacy&target=cover-letter"),
|
||||
"resume-1",
|
||||
);
|
||||
|
||||
expect(response.status).toBe(401);
|
||||
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("rejects a target that differs from the signed token", async () => {
|
||||
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "resume",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
|
||||
const response = await handleResumePdfDownload(
|
||||
new Request("https://example.com/api/resumes/resume-1/pdf?token=signed&target=cover-letter"),
|
||||
"resume-1",
|
||||
);
|
||||
|
||||
expect(response.status).toBe(401);
|
||||
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
|
||||
it("finds no cover letter behind links made before letters left resumes", async () => {
|
||||
for (const target of ["cover-letter", "resume"] as const) {
|
||||
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
mocks.createResumePdfDownload.mockResolvedValueOnce({
|
||||
headers: { "content-disposition": 'attachment; filename="Scizor.pdf"' },
|
||||
body: new File([], "Scizor.pdf", { type: "application/pdf" }),
|
||||
});
|
||||
const response = await handleResumePdfDownload(
|
||||
new Request(`https://example.com/api/resumes/resume-1/pdf?token=signed&target=${target}`),
|
||||
"resume-1",
|
||||
);
|
||||
expect(response.status).toBe(target === "resume" ? 200 : 404);
|
||||
}
|
||||
expect(mocks.createResumePdfDownload).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("rejects missing, invalid, and expired tokens before rendering", async () => {
|
||||
|
||||
@@ -30,17 +30,13 @@ export async function handleResumePdfDownload(request: Request, id: string) {
|
||||
|
||||
const verification = verifyResumePdfDownloadToken({ resumeId: id, token });
|
||||
if (!verification.ok) return verification.reason === "expired" ? expiredResponse() : unauthorizedResponse();
|
||||
const queryTarget = searchParams.get("target");
|
||||
if (
|
||||
verification.target
|
||||
? queryTarget !== null && queryTarget !== verification.target
|
||||
: queryTarget && queryTarget !== "resume"
|
||||
)
|
||||
return unauthorizedResponse();
|
||||
// Links made before letters left resumes may ask for the resume's cover letter, which is now a letter of its own.
|
||||
const target = searchParams.get("target");
|
||||
if (target && target !== "resume")
|
||||
return new Response("Not found", { status: 404, headers: { "Cache-Control": "private, no-store" } });
|
||||
|
||||
try {
|
||||
const target = verification.target ?? "resume";
|
||||
const download = await createResumePdfDownload({ id, userId: verification.userId, target });
|
||||
const download = await createResumePdfDownload({ id, userId: verification.userId });
|
||||
|
||||
return new Response(download.body, {
|
||||
headers: {
|
||||
|
||||
@@ -88,7 +88,6 @@ describe("generateOpenApiSpec", () => {
|
||||
["post", "/cover-letters/{id}/refresh-style", "refreshCoverLetterStyle", "Refresh cover letter style", "200"],
|
||||
["post", "/cover-letters/{id}/duplicate", "duplicateCoverLetter", "Duplicate a cover letter", "200"],
|
||||
["delete", "/cover-letters/{id}", "deleteCoverLetter", "Move a cover letter to Trash", "200"],
|
||||
["post", "/cover-letters/from-resume", "copyEmbeddedCoverLetter", "Copy an embedded cover letter", "200"],
|
||||
["get", "/cover-letters/{id}/export", "exportCoverLetter", "Export a cover letter", "200"],
|
||||
["post", "/cover-letters/import", "importCoverLetter", "Import a cover letter", "200"],
|
||||
["get", "/cover-letters/{id}/versions", "listCoverLetterVersions", "List a cover letter's versions", "200"],
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Kies ’n CV-sjabloon"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Kies ’n sjabloon"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Omgeskakelde stylbladkonsep"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopieer die hele posbeskrywing uit die werksplasing en plak dit hieronde
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopieer die teks uit die uitgevoerde lêer en lees dit deur; maak enigiets reg wat op die verkeerde plek beland."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Vul"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Dekbrief"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Voer in vanaf CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Verhoog inspringing"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Maak oop"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Gereed om jou naam daarop te sit?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Ontvanger"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "የሥራ ማስረጃ አብነት ይምረጡ"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "አብነት ይምረጡ"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "የተቀየረ የቅጥ ሉህ ረቂቅ"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "ሙሉውን የሥራ መግለጫ ከማስታወቂያው ላይ ገ
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "ጽሁፉን ከወጣው ፋይል ገልብጠው ያንብቡት፤ በተሳሳተ ቦታ የደረሰውን ማንኛውንም ነገር ያስተካክሉ።"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "ሽፋን"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "የሽፋን ደብዳቤ"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "ከCSV አስመጣ"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "ገብ ጨምር"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "ክፈት"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "ስምዎን በላዩ ላይ ለማስቀመጥ ዝግጁ ነዎት?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "ተቀባይ"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "የስራ ልምድ ማስረጃ"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "اختر قالب السيرة الذاتية"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "اختر قالبًا"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "مسودة ورقة الأنماط المحولة"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "انسخ وصف الوظيفة كاملاً من الإعلان والص
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "انسخ النص من الملف المُصدَّر واقرأه بالكامل؛ وأصلح أي شيء يظهر في المكان الخاطئ."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "الغلاف"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "غطاء الرسالة"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "الاستيراد من ملف CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "زيادة المسافة البادئة"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "افتح"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "هل أنت مستعد لوضع اسمك عليه؟"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "المستلم"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "سيرة ذاتية"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "CV şablonu seçin"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Şablon seçin"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Çevirilmiş stil cədvəli qaralaması"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "İş təsvirinin hamısını elandan kopyalayıb aşağıya yapışdır
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "İxrac edilmiş fayldan mətni kopyalayın və oxuyun; səhv yerdə çıxan hər şeyi düzəldin."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Qapaq"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Müqavilə məktubu"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV-dən idxal edin"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Abzası artırın"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Aç"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Adını bunun üzərinə yazmağa hazırsan?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Alıcı"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Изберете шаблон за автобиография"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Изберете шаблон"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Конвертирана чернова на стилов лист"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Копирайте цялото описание на длъжностт
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Копирайте текста от експортирания файл и го прочетете внимателно; поправете всичко, което се озовава на грешно място."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Капак"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Мотивационно писмо"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Импортиране от CSV файл"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Увеличаване на отстъпа"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Отвори"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Готови ли сте да поставите името си на н
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Получател"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Автобиография"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "জীবনবৃত্তান্তের টেমপ্লেট বেছে নিন"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "টেমপ্লেট বেছে নিন"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "রূপান্তরিত স্টাইলশীট খসড়
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "বিজ্ঞপ্তি থেকে সম্পূর্ণ কা
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "এক্সপোর্ট করা ফাইল থেকে টেক্সট কপি করে পুরোটা পড়ুন; যা ভুল জায়গায় এসেছে তা ঠিক করুন।"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "আবরণ"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "কভার লেটার"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV থেকে আমদানি করুন"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "ইন্ডেন্ট বৃদ্ধি করুন"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "খুলুন"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "এতে আপনার নাম লিখতে প্রস্ত
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "প্রাপক"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "জীবনবৃত্তান্ত"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Tria una plantilla de currículum"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Tria una plantilla"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Esborrany de full d'estil convertit"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copia tota la descripció de la feina de l'oferta i enganxa-la a continu
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copia el text del fitxer exportat i llegeix-lo sencer; corregeix qualsevol cosa que quedi mal col·locada."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Cobrir"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Carta de presentació"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importa des de CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Augmenta la sagnia"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Obre"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "A punt per posar-hi el teu nom?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinatari"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Currículum vitae"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Vyberte šablonu životopisu"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Vyberte šablonu"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konverze konceptu stylů"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Zkopírujte celý popis práce z inzerátu a vložte jej níže. Pole za
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Zkopírujte text z exportovaného souboru a pročtěte si jej; opravte vše, co se ocitne na špatném místě."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Kryt"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Motivační dopis"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importovat z CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Zvětšit odsazení"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Otevřít"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Připraveni na něj podepsat se svým jménem?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Příjemce"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Životopis"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Vælg en CV-skabelon"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Vælg en skabelon"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konverteret stylesheet-kladde"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopiér hele jobbeskrivelsen fra opslaget, og indsæt den nedenfor. Vi u
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopiér teksten ud af den eksporterede fil, og læs den igennem; ret alt, der havner det forkerte sted."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Udfyld"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Følgebrev"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importer fra CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Øg indrykning"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Åbn"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Klar til at sætte dit navn på?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Modtager"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Wähle eine Lebenslauf-Vorlage"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Wähle eine Vorlage ..."
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konvertierter Stylesheet-Entwurf"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopieren Sie die vollständige Stellenbeschreibung aus der Ausschreibung
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopieren Sie den Text aus der exportierten Datei und lesen Sie ihn durch; korrigieren Sie alles, was an der falschen Stelle landet."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Ausfüllen"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Motivationsschreiben"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Aus CSV importieren"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Einzug vergrößern"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Bereit, deinen Namen draufzusetzen?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Empfänger"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Lebenslauf"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Διαλέξτε ένα πρότυπο βιογραφικού"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Διαλέξτε ένα πρότυπο"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Μετατρεπόμενο προσχέδιο φύλλου στυλ"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Αντιγράψτε ολόκληρη την περιγραφή θέση
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Αντιγράψτε το κείμενο από το εξαγόμενο αρχείο και διαβάστε το προσεκτικά· διορθώστε ό,τι εμφανίζεται στη λάθος θέση."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Εξώφυλλο"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Συνοδευτική επιστολή"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Εισαγωγή από CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Αύξηση εσοχής"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Άνοιγμα"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Έτοιμοι να βάλετε το όνομά σας σε αυτό;"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Παραλήπτης"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Βιογραφικό σημείωμα"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Choose a resume template"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Choose a template"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Converted stylesheet draft"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copy the entire job description from the posting and paste it below. We'
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Cover"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Cover letter"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Import from CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Increase indent"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Ready to put your name on it?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Recipient"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Resume"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1766,10 +1766,6 @@ msgstr "Choose a resume in Write to match its design. Until then, the letter has
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Choose a resume template"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr "Choose a saved cover letter"
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Choose a template"
|
||||
@@ -2050,10 +2046,6 @@ msgstr "Converted stylesheet draft"
|
||||
msgid "Copied"
|
||||
msgstr "Copied"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr "Copied to Documents"
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2103,10 +2095,6 @@ msgstr "Copy the entire job description from the posting and paste it below. We'
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr "Copy to Documents"
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr "Copy transcript"
|
||||
@@ -2177,10 +2165,6 @@ msgstr "Couldn't change the email. Try again."
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr "Couldn't connect. Check the key and try again."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr "Couldn't copy the letter. Save and try again."
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr "Couldn't copy the resume."
|
||||
@@ -2362,7 +2346,6 @@ msgstr "Cover"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Cover letter"
|
||||
|
||||
@@ -4065,10 +4048,6 @@ msgstr "Import from CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr "Import from CSV…"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr "Import from library"
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr "Import or export CSV"
|
||||
@@ -4131,10 +4110,6 @@ msgstr "Improving…"
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr "In the sidebar · tap to move"
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr "Include the resume's header"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Increase indent"
|
||||
@@ -4592,7 +4567,6 @@ msgstr "letter"
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5661,7 +5635,6 @@ msgstr "Only you see these"
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
@@ -6411,7 +6384,6 @@ msgstr "Ready to put your name on it?"
|
||||
msgid "Reason"
|
||||
msgstr "Reason"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Recipient"
|
||||
@@ -6659,7 +6631,6 @@ msgstr "resume"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Resume"
|
||||
@@ -9059,10 +9030,6 @@ msgstr "What the file-level check found in the PDF you'd send. It ran in this ta
|
||||
msgid "What to do"
|
||||
msgstr "What to do"
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr "What to download"
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr "What you sent"
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Elige una plantilla de currículum"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Elige una plantilla"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Borrador de hoja de estilo convertido"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copia la descripción completa del empleo desde la oferta y pégala aqu
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copie el texto del archivo exportado y léalo entero; corrija lo que aparezca en el lugar equivocado."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Cubrir"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Carta de presentación"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importar desde CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Aumentar sangría"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "¿Listo para poner tu nombre?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinatario"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Currículum"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "یک قالب رزومه انتخاب کنید"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "یک قالب انتخاب کنید"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "پیشنویس شیوهنامه تبدیلشده"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "کل شرح شغل را از آگهی کپی کنید و در پایین
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "متن را از فایل خروجی کپی کنید و آن را کامل بخوانید؛ هر چیزی که در جای نادرست قرار گرفته را اصلاح کنید."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "پوشش"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "نامهٔ پوششی"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "وارد کردن از CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "افزایش تورفتگی"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "باز کردن"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "آمادهاید نام خودتان را روی آن بگذارید
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "گیرنده"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "رزومه"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Valitse ansioluettelon mallipohja"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Valitse mallipohja"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Muunnettu tyylitiedoston luonnos"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopioi koko työnkuvaus ilmoituksesta ja liitä se alle. Täytämme kent
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopioi teksti viedystä tiedostosta ja lue se läpi; korjaa kaikki, mikä päätyy väärään paikkaan."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Täytä"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Saatekirje"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Tuo CSV:stä"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Suurenna sisennystä"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Avaa"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Valmis laittamaan nimesi siihen?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Vastaanottaja"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Ansioluettelo"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Choisir un modèle de CV"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Choisir un modèle"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Brouillon de feuille de style converti"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copiez l'intégralité de la description du poste depuis l'annonce et co
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copiez le texte du fichier exporté et relisez-le ; corrigez tout ce qui arrive au mauvais endroit."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Remplir"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "lettre de motivation"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importer depuis un CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Augmenter l'indentation"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Ouvrir"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Prêt à y apposer votre nom ?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinataire"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "בחר תבנית קורות חיים"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "בחר תבנית"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "טיוטת גיליון סגנונות שהומרה"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "העתק את תיאור המשרה המלא מהמודעה והדבק
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "העתק את הטקסט מהקובץ המיוצא וקרא אותו; תקן כל דבר שמגיע במקום הלא נכון."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "כיסוי"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "מכתב מקדים"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "ייבוא מ-CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "הגדלת כניסה"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "פתיחה"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "מוכן לשים עליו את השם שלך?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "נמען"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "קוֹרוֹת חַיִים"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "बायोडाटा टेम्प्लेट चुनें"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "टेम्प्लेट चुनें"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "रूपांतरित स्टाइलशीट ड्राफ
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "पोस्टिंग से पूरा नौकरी विव
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "एक्सपोर्ट की गई फ़ाइल में से टेक्स्ट कॉपी करें और उसे पूरा पढ़ें; जो कुछ भी गलत जगह पर आए उसे ठीक करें।"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "आवरण"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "कवर लेटर"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV से आयात करें"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "बढ़ते हुए अंतर में"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "खोलें"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "इस पर अपना नाम लगाने के लिए
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "प्राप्तकर्ता"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "रेज़्यूमे"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Válassz önéletrajzi sablont"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Válassz sablont"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Stíluslap-tervezet konvertálása"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Másolja ki a teljes állásleírást a hirdetésből, és illessze be a
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Másold ki a szöveget az exportált fájlból, és olvasd át; javíts mindent, ami rossz helyre kerül."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Borító"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Motivációs levél"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importálás CSV-ből"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Behúzás növelése"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Megnyitás"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Készen állsz, hogy a neved rákerüljön?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Címzett"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Önéletrajz"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Pilih template resume"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Pilih template"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Draf stylesheet yang telah dikonversi"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Salin seluruh deskripsi pekerjaan dari lowongan tersebut dan tempel di b
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Salin teks dari file yang diekspor dan baca seluruhnya; perbaiki apa pun yang muncul di tempat yang salah."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Sampul"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Surat lamaran"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Impor dari CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Perbesar lekukan"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Buka"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Siap menaruh namamu di sana?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Penerima"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Melanjutkan"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Scegli un modello di curriculum"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Scegli un modello"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Bozza del foglio di stile convertito"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copia l'intera descrizione del lavoro dall'annuncio e incollala qui sott
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copia il testo dal file esportato e leggilo per intero; correggi tutto ciò che finisce nel posto sbagliato."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Riempi"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Lettera di presentazione"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importa da CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Aumentare il rientro"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Apri"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Pronto a metterci il tuo nome?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinatario"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Curriculum"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "履歴書テンプレートを選択"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "テンプレートを選択"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "変換されたスタイルシートのドラフト"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "求人情報から職務内容の全文をコピーして、下に貼り
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "エクスポートしたファイルからテキストをコピーして通読し、位置がおかしい箇所があれば修正してください。"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "切り抜き"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "カバーレター"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV からインポート"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "インデントを増やす"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "開く"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "あなたの名前を載せる準備はできましたか?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "宛先"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "レジュメ"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "ជ្រើសរើសពុម្ពប្រវត្តិរូបសង្ខេប"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "ជ្រើសរើសពុម្ព"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "សេចក្តីព្រាងសន្លឹករចនាប័
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "ចម្លងការពិពណ៌នាការងារទាំ
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "ចម្លងអត្ថបទចេញពីឯកសារដែលបាននាំចេញ ហើយអានវាទាំងអស់; កែតម្រូវអ្វីៗដែលមកដល់ខុសកន្លែង។"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "គម្រប"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "លិខិតអម"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "នាំចូលពី CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "បង្កើនការចូលបន្ទាត់"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "បើក"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "រួចរាល់ដាក់ឈ្មោះរបស់អ្នក
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "អ្នកទទួល"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "ប្រវត្តិរូបសង្ខេប"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "ರೆಸ್ಯೂಮ್ ಟೆಂಪ್ಲೇಟ್ ಆಯ್ಕೆಮಾಡಿ"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "ಟೆಂಪ್ಲೇಟ್ ಆಯ್ಕೆಮಾಡಿ"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "ಪರಿವರ್ತಿಸಲಾದ ಸ್ಟೈಲ್ಶೀಟ್
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "ಪೋಸ್ಟಿಂಗ್ನಿಂದ ಸಂಪೂರ್ಣ ಉದ
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "ಎಕ್ಸ್ಪೋರ್ಟ್ ಮಾಡಿದ ಫೈಲ್ನಿಂದ ಪಠ್ಯವನ್ನು ಕಾಪಿ ಮಾಡಿ ಪೂರ್ತಿ ಓದಿ; ತಪ್ಪು ಸ್ಥಳದಲ್ಲಿ ಬರುವುದನ್ನು ಸರಿಪಡಿಸಿ."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "ಕವರ್"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "ಕವರ್ ಲೆಟರ್"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV ನಿಂದ ಆಮದು ಮಾಡಿ"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "ಇಂಡೆಂಟ್ ಹೆಚ್ಚಿಸಿ"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "ತೆರೆಯಿರಿ"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "ಇದರ ಮೇಲೆ ನಿಮ್ಮ ಹೆಸರು ಹಾಕಲು
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "ಸ್ವೀಕೃತದಾರ"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "ರೆಸ್ಯೂಮ್"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "이력서 템플릿 선택"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "템플릿 선택"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "변환된 스타일시트 초안"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "채용 공고의 직무 설명 전체를 복사해 아래에 붙여넣
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "내보낸 파일에서 텍스트를 복사해 읽어 보고, 잘못된 위치에 놓인 부분을 수정하세요."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "채우기"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "커버레터"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV에서 가져오기"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "들여쓰기 증가"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "열기"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "이제 여기에 이름을 올려 볼까요?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "수신인"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "이력서"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Pasirinkite gyvenimo aprašymo šabloną"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Pasirinkite šabloną"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konvertuotas stilių lapo juodraštis"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Nukopijuokite visą darbo aprašymą iš skelbimo ir įklijuokite jį ž
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Nukopijuokite tekstą iš eksportuoto failo ir perskaitykite jį; ištaisykite viską, kas atsiduria ne savo vietoje."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Viršelis"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Motyvacinis laiškas"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importuoti iš CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Padidinti įtrauką"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Atidaryti"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Pasiruošę įrašyti savo vardą?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Gavėjas"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Gyvenimo aprašymas"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Izvēlieties CV veidni"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Izvēlieties veidni"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konvertēts stila lapas melnraksts"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Nokopējiet visu amata aprakstu no sludinājuma un ielīmējiet to zemā
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Izkopējiet tekstu no eksportētā faila un izlasiet to; izlabojiet visu, kas nokļūst nepareizā vietā."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Vāks"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Motivācijas vēstule"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importēt no CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Palielināt atkāpi"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Atvērt"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Vai esat gatavs ierakstīt savu vārdu?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Saņēmējs"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "ഒരു റെസ്യൂമെ ടെംപ്ലേറ്റ് തിരഞ്ഞെടുക്കൂ"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "ഒരു ടെംപ്ലേറ്റ് തിരഞ്ഞെടുക്കൂ"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "പരിവർത്തനം ചെയ്ത സ്റ്റൈൽഷ
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "പോസ്റ്റിംഗിൽ നിന്ന് ജോലി വ
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "എക്സ്പോർട്ട് ചെയ്ത ഫയലിൽ നിന്ന് ടെക്സ്റ്റ് പകർത്തി വായിക്കുക; തെറ്റായ സ്ഥലത്ത് വരുന്നതെന്തും ശരിയാക്കുക."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "മൂടുക"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "കവർ ലെറ്റർ"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV-ൽ നിന്ന് ഇറക്കുമതി ചെയ്യ
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "ഇൻഡന്റ് വർദ്ധിപ്പിക്കുക"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "ഓപ്പൺ ചെയ്യുക"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "ഇതിൽ നിങ്ങളുടെ പേര് ചേർക്ക
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "സ്വീകർത്താവ്"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "റെസ്യൂമെ"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "रेझ्युमे टेम्पलेट निवडा"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "टेम्पलेट निवडा"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "रूपांतरित स्टाईलशीटचा मसु
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "जाहिरातीमधील संपूर्ण नोकर
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "निर्यात केलेल्या फाइलमधून मजकूर कॉपी करून वाचा; चुकीच्या जागी येणारे काहीही दुरुस्त करा."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "कव्हर"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "कव्हर लेटर"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV वरून आयात करा"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "इंडेंट वाढवा"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "उघडा"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "त्यावर तुमचे नाव लिहायला त
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "प्राप्तकर्ता"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "रेझ्युमे"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Pilih templat resume"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Pilih templat"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Draf helaian gaya yang ditukar"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Salin keseluruhan penerangan kerja daripada iklan tersebut dan tampalkan
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Salin teks daripada fail yang dieksport dan baca keseluruhannya; baiki apa-apa yang muncul di tempat yang salah."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Penutup"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Surat iringan"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Import daripada CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Tingkatkan inden"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Buka"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Bersedia untuk meletakkan nama anda padanya?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Penerima"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Resume"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "बायोडाटा ढाँचा छान्नुहोस्"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "टेम्प्लेट छान्नुहोस्"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "रूपान्तरित स्टाइलसिट ड्रा
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "पोस्टिंगबाट सम्पूर्ण काम व
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "निर्यात गरिएको फाइलबाट पाठ प्रतिलिपि गरी पूरा पढ्नुहोस्; गलत ठाउँमा आउने कुनै पनि कुरा सुधार्नुहोस्।"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "आवरण"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "आवरण पत्र"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV बाट आयात गर्नुहोस्"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "इन्डेन्ट बढाउनुहोस्"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "खोल्नुहोस्"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "आफ्नो नाम राख्न तयार हुनुह
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "प्राप्तकर्ता"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "बायोडाटा"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Kies een cv-sjabloon"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Kies een sjabloon"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Omgezette stylesheet-concept"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopieer de volledige functieomschrijving uit de vacature en plak die hie
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopieer de tekst uit het geëxporteerde bestand en lees deze door; corrigeer alles wat op de verkeerde plek terechtkomt."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Vullen"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Sollicitatiebrief"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importeren uit CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Verhoog de inkeping"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Openen"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Klaar om er je naam op te zetten?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Ontvanger"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Cv"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Velg en CV-mal"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Velg en mal"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konvertert stilarkutkast"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopier hele stillingsbeskrivelsen fra utlysningen og lim den inn nedenfo
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopier teksten ut av den eksporterte filen og les gjennom den; fiks alt som havner feil sted."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Fyll"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Følgebrev"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importer fra CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Øk innrykk"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Åpne"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Klar til å sette navnet ditt på den?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Mottaker"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "ଏକ ରେଜ୍ୟୁମେ ଟେମ୍ପଲେଟ୍ ବାଛନ୍ତୁ"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "ଏକ ଟେମ୍ପଲେଟ୍ ବାଛନ୍ତୁ"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "ରୂପାନ୍ତରିତ ଷ୍ଟାଇଲସିଟ୍ ଡ୍ର
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "ପୋଷ୍ଟିଂରୁ ସମ୍ପୂର୍ଣ୍ଣ କାର୍
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "ରପ୍ତାନି ହୋଇଥିବା ଫାଇଲରୁ ଟେକ୍ସଟ୍ କପି କରନ୍ତୁ ଏବଂ ସମ୍ପୂର୍ଣ୍ଣ ପଢ଼ନ୍ତୁ; ଭୁଲ ସ୍ଥାନରେ ଆସୁଥିବା ଯେକୌଣସି ଜିନିଷ ଠିକ୍ କରନ୍ତୁ।"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "ଆଚ୍ଛାଦନ କରନ୍ତୁ |"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "କଭର୍ ଚିଠି |"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV ରୁ ଆମଦାନି କରନ୍ତୁ |"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "ଇଣ୍ଡେଣ୍ଟ ବୃଦ୍ଧି କରନ୍ତୁ"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "ଖୋଲନ୍ତୁ"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "ଏଥିରେ ଆପଣଙ୍କ ନାମ ଲେଖିବାକୁ
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "ପ୍ରାପ୍ତକର୍ତ୍ତା"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "ରେଜ୍ୟୁମେ"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Wybierz szablon CV"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Wybierz szablon"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Przekonwertowany projekt arkusza stylów"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Skopiuj cały opis stanowiska z ogłoszenia i wklej go poniżej. Wypełn
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Skopiuj tekst z wyeksportowanego pliku i przeczytaj go; popraw wszystko, co znalazło się w niewłaściwym miejscu."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Okładka"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "List motywacyjny"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importuj z CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Zwiększ wcięcie"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Otwórz"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Gotowy, by podpisać je swoim nazwiskiem?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Odbiorca"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Escolha um modelo de currículo"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Escolha um modelo"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Rascunho da folha de estilo convertida"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copie toda a descrição do trabalho do anúncio e cole abaixo. Preenche
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copie o texto do arquivo exportado e leia-o por completo; corrija qualquer coisa que apareça no lugar errado."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Cobrir"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Carta de apresentação"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importar de CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Aumentar recuo"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Pronto para colocar seu nome nele?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinatário"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Currículo"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Escolha um modelo de CV"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Escolha um modelo"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Rascunho da folha de estilo convertida"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copie toda a descrição do trabalho do anúncio e cole-a abaixo. Preenc
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copie o texto do ficheiro exportado e leia-o na íntegra; corrija tudo o que apareça no lugar errado."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Cobrir"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Carta de apresentação"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importar de CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Aumentar recuo"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Pronto para colocar o seu nome nele?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinatário"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Currículo"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Alege un șablon de CV"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Alege un șablon"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Schiță de foaie de stil convertită"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Copiați întreaga descriere a postului din postare și lipiți-o mai jo
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Copiați textul din fișierul exportat și citiți-l în întregime; corectați orice ajunge în locul greșit."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Umplere"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Scrisoare de intenție"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importă din CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Măriți indentarea"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Deschide"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Gata să-ți pui numele pe el?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Destinatar"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Выберите шаблон резюме"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Выберите шаблон"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Преобразованный черновик таблицы стил
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Скопируйте всё описание вакансии из об
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Скопируйте текст из экспортированного файла и прочитайте его целиком; исправьте всё, что оказалось не на своём месте."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Обложка"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Сопроводительное письмо"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Импорт из CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Увеличить отступ"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Открыть"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Готовы добавить своё имя?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Получатель"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Резюме"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Vyber si šablónu životopisu"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Vyber si šablónu"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konvertovaný koncept štýlového hárka"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Skopírujte celý popis práce z inzerátu a vložte ho nižšie. Polia
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Skopírujte text z exportovaného súboru a prečítajte si ho celý; opravte všetko, čo sa ocitlo na nesprávnom mieste."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Kryt"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Sprievodný list"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importovať z CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Zväčšiť odsadenie"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Otvoriť"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Pripravený uviesť svoje meno?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Príjemca"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Životopis"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Izberite predlogo življenjepisa"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Izberite predlogo"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Pretvorjen osnutek slogovne predloge"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopirajte celoten opis delovnega mesta iz objave in ga prilepite spodaj.
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopirajte besedilo iz izvožene datoteke in ga preberite v celoti; popravite vse, kar se znajde na napačnem mestu."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Pokrov"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Spremno pismo"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Uvoz iz CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Povečaj zamik"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Odpri"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Ste pripravljeni nanj zapisati svoje ime?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Prejemnik"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Življenjepis"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Zgjidh një shabllon CV"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Zgjidh një shabllon"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Drafti i konvertuar i fletës së stilit"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopjoni të gjithë përshkrimin e punës nga shpallja dhe ngjiteni më
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopjoni tekstin nga skedari i eksportuar dhe lexojeni; rregulloni çdo gjë që del në vendin e gabuar."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Mbulesë"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Letër motivuese"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importo nga CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Rrit indentin"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Hap"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Gati ta vendosësh emrin tënd mbi të?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Marrësi"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Изаберите шаблон за резиме"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Изаберите шаблон"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Конвертована нацртна верзија стилског
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Копирајте цео опис посла из огласа и на
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Копирајте текст из извезене датотеке и прочитајте га у целини; исправите све што се нађе на погрешном месту."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Цовер"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Пропратно писмо"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Увези из CSV-а"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Повећај увлачење"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Отвори"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Спремни за потпис?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Прималац"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Резиме"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Välj en CV-mall"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Välj en mall"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Konverterat utkast till stilark"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Kopiera hela arbetsbeskrivningen från annonsen och klistra in den nedan
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Kopiera texten från den exporterade filen och läs igenom den; åtgärda allt som hamnar fel."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Fyll"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Följebrev"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Importera från CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Öka indraget"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Öppna"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Redo att sätta ditt namn på den?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Mottagare"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "CV"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "வாழ்க்கைக் குறிப்பு வார்ப்புருவைத் தேர்ந்தெடுக்கவும்"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "வார்ப்புருவைத் தேர்ந்தெடுக்கவும்"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "மாற்றப்பட்ட ஸ்டைல்ஷீட் வர
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "அறிவிப்பிலிருந்து முழு வே
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "ஏற்றுமதி செய்யப்பட்ட கோப்பிலிருந்து உரையை நகலெடுத்து முழுவதும் படிக்கவும்; தவறான இடத்தில் வருவதைச் சரிசெய்யவும்."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "கவர்"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "கவர் கடிதம்"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV இலிருந்து இறக்குமதி செய்
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "உள் தள்ளலை அதிகரிக்கவும்"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "திற"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "உங்கள் பெயரை அதில் இடத் தய
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "பெறுநர்"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "ரெஸ்யூம்"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "రెజ్యూమ్ టెంప్లేట్ను ఎంచుకోండి"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "టెంప్లేట్ను ఎంచుకోండి"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "మార్చబడిన స్టైల్షీట్ డ్ర
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "పోస్టింగ్ నుండి పూర్తి ఉద్
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "ఎగుమతి చేసిన ఫైల్ నుండి టెక్స్ట్ను కాపీ చేసి పూర్తిగా చదవండి; తప్పు స్థానంలో వచ్చే దేనినైనా సరిచేయండి."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "కవర్"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "కవర్ లెటర్"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV నుండి దిగుమతి చేయండి"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "ఇండెంట్ను పెంచండి"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "తెరవండి"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "దీనిపై మీ పేరు పెట్టడానికి
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "గ్రహీత"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "రెజ్యూమ్"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "เลือกเทมเพลตเรซูเม่"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "เลือกเทมเพลต"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "แปลงร่างสไตล์ชีตแล้ว"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "คัดลอกคำอธิบายงานทั้งหมด
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "คัดลอกข้อความจากไฟล์ที่ส่งออกแล้วอ่านตรวจดู แก้ไขส่วนที่ปรากฏผิดตำแหน่ง"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "ปก"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "จดหมายสมัครงาน"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "นำเข้าจาก CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "เพิ่มระยะเยื้อง"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "เปิด"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "พร้อมที่จะลงชื่อของคุณแล
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "ผู้รับ"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "ประวัติย่อ"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Bir özgeçmiş şablonu seçin"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Bir şablon seçin"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Dönüştürülmüş stil sayfası taslağı"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "İlandaki iş tanımının tamamını kopyalayıp aşağıya yapıştır
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Dışa aktarılan dosyadaki metni kopyalayıp baştan sona okuyun; yanlış yerde çıkan her şeyi düzeltin."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Kapak"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Ön yazı"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV'den içe aktar"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Girintiyi artır"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Aç"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Buna adını yazmaya hazır mısın?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Alıcı"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Özgeçmiş"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Оберіть шаблон резюме"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Оберіть шаблон"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Конвертований чернетка таблиці стилів"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Скопіюйте весь опис вакансії з оголоше
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Скопіюйте текст з експортованого файлу та прочитайте його; виправте все, що опинилося не на своєму місці."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Обкладинка"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Супровідний лист"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Імпортувати з CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Збільшити відступ"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Відкрити"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Готові підписати його своїм ім’ям?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Одержувач"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Резюме"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Rezyume andozasini tanlang"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Andoza tanlang"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "O'zgartirilgan uslublar jadvali qoralamasi"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Ish e'lonidagi ish tavsifini to'liq nusxalab, quyiga joylashtiring. Biz
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Eksport qilingan fayldan matnni nusxalab, oxirigacha oʻqing; notoʻgʻri joyga tushgan har qanday narsani tuzating."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Qopqoq"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Muqova xati"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "CSV'dan import qilish"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Xoch chiziqni kattalashtirish"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Ochish"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Ismingizni qo‘yishga tayyormisiz?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Qabul qiluvchi"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Rezyume"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "Chọn mẫu sơ yếu lý lịch"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "Chọn một mẫu"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "Bản nháp bảng định kiểu đã chuyển đổi"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "Sao chép toàn bộ mô tả công việc từ tin tuyển dụng và d
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "Sao chép văn bản từ tệp đã xuất và đọc lại toàn bộ; sửa bất cứ điều gì bị đặt sai chỗ."
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "Bìa"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "Thư xin việc"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "Nhập từ CSV"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "Tăng khoảng cách thụt lề"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "Mở"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "Sẵn sàng ghi tên mình lên đó chưa?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "Người nhận"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "Sơ yếu lý lịch"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "选择简历模板"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "选择模板"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "已转换的样式表草稿"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "从招聘信息中复制完整的职位描述并粘贴到下方。我们
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "把导出文件中的文字复制出来通读一遍;修正任何位置错乱的内容。"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "裁剪填满"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "求职信"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "从 CSV 导入"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "增加缩进"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "打开"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "准备好署上你的名字了吗?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "收件人"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "简历"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1771,10 +1771,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr "選擇履歷範本"
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr "選擇範本"
|
||||
@@ -2055,10 +2051,6 @@ msgstr "已轉換的樣式表草稿"
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2108,10 +2100,6 @@ msgstr "從職缺公告中複製完整的職缺描述並貼到下方。我們會
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr "把匯出檔案中的文字複製出來通讀一遍;修正任何位置錯亂的內容。"
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2182,10 +2170,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2367,7 +2351,6 @@ msgstr "裁切填滿"
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr "求職信"
|
||||
|
||||
@@ -4070,10 +4053,6 @@ msgstr "從 CSV 匯入"
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4136,10 +4115,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr "增加縮排"
|
||||
@@ -4597,7 +4572,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5666,7 +5640,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr "開啟"
|
||||
@@ -6416,7 +6389,6 @@ msgstr "準備好署上你的名字了嗎?"
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr "收件人"
|
||||
@@ -6664,7 +6636,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr "履歷"
|
||||
@@ -9064,10 +9035,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -1766,10 +1766,6 @@ msgstr ""
|
||||
msgid "Choose a resume template"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Choose a saved cover letter"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/homepage/template-shelf.tsx
|
||||
msgid "Choose a template"
|
||||
msgstr ""
|
||||
@@ -2050,10 +2046,6 @@ msgstr ""
|
||||
msgid "Copied"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copied to Documents"
|
||||
msgstr ""
|
||||
|
||||
#. Action button to copy two-factor backup codes to clipboard
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
#: src/features/resume/share/link-tab.tsx
|
||||
@@ -2103,10 +2095,6 @@ msgstr ""
|
||||
msgid "Copy the text out of the exported file and read it through; fix anything that arrives in the wrong place."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Copy to Documents"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/assistant/conversation.tsx
|
||||
msgid "Copy transcript"
|
||||
msgstr ""
|
||||
@@ -2177,10 +2165,6 @@ msgstr ""
|
||||
msgid "Couldn't connect. Check the key and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
msgid "Couldn't copy the letter. Save and try again."
|
||||
msgstr ""
|
||||
|
||||
#: src/features/documents/new-document-dialog.tsx
|
||||
msgid "Couldn't copy the resume."
|
||||
msgstr ""
|
||||
@@ -2362,7 +2346,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Cover letter"
|
||||
msgstr ""
|
||||
|
||||
@@ -4065,10 +4048,6 @@ msgstr ""
|
||||
msgid "Import from CSV…"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
msgid "Import from library"
|
||||
msgstr ""
|
||||
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Import or export CSV"
|
||||
msgstr ""
|
||||
@@ -4131,10 +4110,6 @@ msgstr ""
|
||||
msgid "In the sidebar · tap to move"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "Include the resume's header"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Increase indent"
|
||||
msgstr ""
|
||||
@@ -4592,7 +4567,6 @@ msgstr ""
|
||||
#: src/features/assistant/document.ts
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/editor/design/style-groups.tsx
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/$resumeId/-components/page-canvas.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
#: src/routes/builder/letter/-components/letter-page.tsx
|
||||
@@ -5661,7 +5635,6 @@ msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
#: src/features/documents/document-actions.tsx
|
||||
#: src/features/resume/editor/write/entry-card.tsx
|
||||
#: src/routes/dashboard/applications/index.tsx
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
@@ -6411,7 +6384,6 @@ msgstr ""
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/editor/write/entries.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Recipient"
|
||||
msgstr ""
|
||||
@@ -6659,7 +6631,6 @@ msgstr ""
|
||||
#: src/features/applications/components/application-form-sheet.tsx
|
||||
#: src/features/applications/components/list-view.tsx
|
||||
#: src/features/documents/document-card.tsx
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
#: src/routes/builder/letter/-components/write-panel.tsx
|
||||
msgid "Resume"
|
||||
msgstr ""
|
||||
@@ -9059,10 +9030,6 @@ msgstr ""
|
||||
msgid "What to do"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/resume/share/download-tab.tsx
|
||||
msgid "What to download"
|
||||
msgstr ""
|
||||
|
||||
#: src/features/applications/components/detail/sent-documents.tsx
|
||||
msgid "What you sent"
|
||||
msgstr ""
|
||||
|
||||
@@ -5,8 +5,6 @@ import type { EntryWriter } from "./fields";
|
||||
import type { Entry } from "./model";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { Trans } from "@lingui/react/macro";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { useId } from "react";
|
||||
import { EMPTY_RESUME_DATES } from "@reactive-resume/schema/resume/dates";
|
||||
import { Button } from "@reactive-resume/ui/components/button";
|
||||
import { FormControl, FormDescription, FormItem, FormLabel } from "@reactive-resume/ui/components/form";
|
||||
@@ -17,8 +15,6 @@ import { generateId } from "@reactive-resume/utils/string";
|
||||
import { ChipInput } from "@/components/input/chip-input";
|
||||
import { ColorPicker } from "@/components/input/color-picker";
|
||||
import { IconPicker } from "@/components/input/icon-picker";
|
||||
import { Combobox } from "@/components/ui/combobox";
|
||||
import { orpc } from "@/libs/orpc/client";
|
||||
import { DatesField } from "./dates-field";
|
||||
import { MoreOptions, TextField, WebsiteField } from "./fields";
|
||||
import { RichTextEditor } from "./rich-text-editor";
|
||||
@@ -116,36 +112,6 @@ function Description({
|
||||
);
|
||||
}
|
||||
|
||||
/** A new, empty letter can start as a copy of one saved in the library; the copy doesn't follow later edits. */
|
||||
function ImportFromLibrary({ entry, write }: FieldSetProps) {
|
||||
const id = useId();
|
||||
const letters = useQuery(orpc.coverLetters.list.queryOptions({ input: { limit: 100 } }));
|
||||
const values = valuesOf(entry);
|
||||
if (str(values.recipient) || str(values.content) || !letters.data?.items.length) return null;
|
||||
|
||||
return (
|
||||
<div className="col-span-full grid gap-1.5">
|
||||
<label htmlFor={id} className="font-medium text-[13px] leading-4">
|
||||
<Trans>Import from library</Trans>
|
||||
</label>
|
||||
<Combobox
|
||||
id={id}
|
||||
value={null}
|
||||
placeholder={t`Choose a saved cover letter`}
|
||||
options={letters.data.items.map((letter) => ({ value: letter.id, label: letter.name }))}
|
||||
onValueChange={(letterId) => {
|
||||
const letter = letters.data?.items.find((item) => item.id === letterId);
|
||||
if (!letter) return;
|
||||
write("import", (target) => {
|
||||
target.recipient = letter.recipient;
|
||||
target.content = letter.content;
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function Keywords({ entry, write, label }: FieldSetProps & { label: ReactNode }) {
|
||||
return (
|
||||
<FormItem className="col-span-full">
|
||||
@@ -475,13 +441,8 @@ export function EntryFields({
|
||||
);
|
||||
case "summary":
|
||||
return <Description {...props} field="content" label={t`Text`} />;
|
||||
// Letters are documents of their own; a resume that still carries one hands it over when it saves.
|
||||
case "cover-letter":
|
||||
return (
|
||||
<>
|
||||
<ImportFromLibrary {...props} />
|
||||
<Description {...props} field="recipient" label={t`Recipient`} />
|
||||
<Description {...props} field="content" label={t`Letter`} />
|
||||
</>
|
||||
);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ import { CSS } from "@dnd-kit/utilities";
|
||||
import { msg, t } from "@lingui/core/macro";
|
||||
import { useLingui } from "@lingui/react";
|
||||
import { Trans } from "@lingui/react/macro";
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { useNavigate } from "@tanstack/react-router";
|
||||
import { useEffect, useMemo } from "react";
|
||||
import { Badge } from "@reactive-resume/ui/components/badge";
|
||||
import {
|
||||
@@ -27,7 +25,6 @@ import { toast } from "@reactive-resume/ui/components/toast";
|
||||
import { useBreakpoint } from "@reactive-resume/ui/hooks/use-breakpoint";
|
||||
import { cn } from "@reactive-resume/utils/style";
|
||||
import { useCurrentResume, useResumeStore, useUpdateResumeData } from "@/features/resume/builder/draft";
|
||||
import { orpc } from "@/libs/orpc/client";
|
||||
import { getCompatibleMoveTargets, getSourceSectionTitle, moveItem } from "@/libs/resume/move-item";
|
||||
import { useEditorStore } from "../store";
|
||||
import { EntryFields } from "./entries";
|
||||
@@ -248,7 +245,6 @@ type EntryMenuProps = { section: WriteSection; entry: Entry };
|
||||
/** Hide from page, Duplicate, Move to… and Delete. */
|
||||
function EntryMenu({ section, entry }: EntryMenuProps) {
|
||||
const resume = useCurrentResume();
|
||||
const navigate = useNavigate();
|
||||
const updateResumeData = useUpdateResumeData();
|
||||
const customSectionId = section.kind === "custom" ? section.id : undefined;
|
||||
const moveTargets = useMemo(
|
||||
@@ -277,25 +273,6 @@ function EntryMenu({ section, entry }: EntryMenuProps) {
|
||||
useEditorStore.getState().select({ kind: "item", sectionId: section.id, itemId: copy.id });
|
||||
};
|
||||
|
||||
// Q3k: a letter written inside a resume can become a saved letter in Documents (a copy; this entry stays).
|
||||
const { mutate: copyLetter, isPending: copying } = useMutation(orpc.coverLetters.copyEmbedded.mutationOptions());
|
||||
const copyToDocuments = () =>
|
||||
copyLetter(
|
||||
{ resumeId: resume.id, sectionId: section.id, itemId: entry.id },
|
||||
{
|
||||
onSuccess: (letter) =>
|
||||
toast.add({
|
||||
description: t`Copied to Documents`,
|
||||
actionProps: {
|
||||
children: t`Open`,
|
||||
onClick: () =>
|
||||
void navigate({ to: "/builder/letter/$coverLetterId", params: { coverLetterId: letter.id } }),
|
||||
},
|
||||
}),
|
||||
onError: () => toast.add({ type: "error", description: t`Couldn't copy the letter. Save and try again.` }),
|
||||
},
|
||||
);
|
||||
|
||||
const toggleHidden = () =>
|
||||
updateResumeData(
|
||||
(draft) => {
|
||||
@@ -319,12 +296,6 @@ function EntryMenu({ section, entry }: EntryMenuProps) {
|
||||
<Icon name="content_copy" />
|
||||
<Trans>Duplicate</Trans>
|
||||
</DropdownMenuItem>
|
||||
{section.type === "cover-letter" && section.kind === "custom" && (
|
||||
<DropdownMenuItem disabled={copying} onClick={copyToDocuments}>
|
||||
<Icon name="mail" />
|
||||
<Trans>Copy to Documents</Trans>
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
<DropdownMenuSub>
|
||||
<DropdownMenuSubTrigger>
|
||||
<Icon name="arrow_forward" />
|
||||
|
||||
@@ -46,7 +46,6 @@ export const CUSTOM_SECTION_TYPES = [
|
||||
"references",
|
||||
"profiles",
|
||||
"summary",
|
||||
"cover-letter",
|
||||
] as const satisfies readonly CustomSectionType[];
|
||||
|
||||
const isBuiltinSectionType = (id: string): id is SectionType =>
|
||||
|
||||
@@ -5,7 +5,7 @@ import { t } from "@lingui/core/macro";
|
||||
import { useCallback, useState } from "react";
|
||||
import { buildDocx } from "@reactive-resume/docx";
|
||||
import { getResumeSectionTitle } from "@reactive-resume/pdf/section-title";
|
||||
import { getResumeExportData, resumeHasCoverLetter } from "@reactive-resume/resume/export-sections";
|
||||
import { getResumeExportData } from "@reactive-resume/resume/export-sections";
|
||||
import { buildMarkdown } from "@reactive-resume/resume/markdown";
|
||||
import { toast } from "@reactive-resume/ui/components/toast";
|
||||
import { downloadWithAnchor } from "@reactive-resume/utils/file";
|
||||
@@ -89,66 +89,51 @@ export async function createExportFile(
|
||||
/** One-click exports that report their own progress and failures in toasts (the bar, ⌘P, public pages). */
|
||||
export function useResumeExport(resume: ExportableResume | undefined, exportOptions: UseResumeExportOptions = {}) {
|
||||
const [isExporting, setIsExporting] = useState(false);
|
||||
const hasCoverLetter = resume ? resumeHasCoverLetter(resume.data) : false;
|
||||
|
||||
const onDownloadJSON = useCallback(async () => {
|
||||
if (!resume) return;
|
||||
downloadWithAnchor(await createExportFile(resume, "json"), `${getDefaultFileName(resume)}.json`);
|
||||
}, [resume]);
|
||||
|
||||
const onDownloadMarkdown = useCallback(
|
||||
async (target: ResumeExportTarget = "resume") => {
|
||||
if (!resume) return;
|
||||
if (target === "cover-letter" && !resumeHasCoverLetter(resume.data)) return;
|
||||
const blob = await createExportFile(resume, "md", target);
|
||||
downloadWithAnchor(blob, `${getDefaultFileName(resume, target)}.md`);
|
||||
},
|
||||
[resume],
|
||||
);
|
||||
const onDownloadMarkdown = useCallback(async () => {
|
||||
if (!resume) return;
|
||||
const blob = await createExportFile(resume, "md");
|
||||
downloadWithAnchor(blob, `${getDefaultFileName(resume)}.md`);
|
||||
}, [resume]);
|
||||
|
||||
const onDownloadDOCX = useCallback(
|
||||
async (target: ResumeExportTarget = "resume") => {
|
||||
if (!resume) return;
|
||||
if (target === "cover-letter" && !resumeHasCoverLetter(resume.data)) return;
|
||||
try {
|
||||
const blob = await createExportFile(resume, "docx", target);
|
||||
downloadWithAnchor(blob, `${getDefaultFileName(resume, target)}.docx`);
|
||||
} catch {
|
||||
toast.add({ type: "error", description: t`Could not generate the DOCX. Please try again.` });
|
||||
}
|
||||
},
|
||||
[resume],
|
||||
);
|
||||
const onDownloadDOCX = useCallback(async () => {
|
||||
if (!resume) return;
|
||||
try {
|
||||
const blob = await createExportFile(resume, "docx");
|
||||
downloadWithAnchor(blob, `${getDefaultFileName(resume)}.docx`);
|
||||
} catch {
|
||||
toast.add({ type: "error", description: t`Could not generate the DOCX. Please try again.` });
|
||||
}
|
||||
}, [resume]);
|
||||
|
||||
const onDownloadPDF = useCallback(
|
||||
async (target: ResumeExportTarget = "resume", downloadOptions?: DownloadPdfOptions) => {
|
||||
if (!resume) return;
|
||||
if (target === "cover-letter" && !resumeHasCoverLetter(resume.data)) return;
|
||||
const toastId = toast.add({
|
||||
type: "loading",
|
||||
description: t`Generating your PDF...`,
|
||||
});
|
||||
setIsExporting(true);
|
||||
try {
|
||||
const blob = exportOptions.publicResumePdf
|
||||
? await resolvePublicResumePdfBlob({ data: resume.data, ...exportOptions.publicResumePdf })
|
||||
: await createExportFile(resume, "pdf", target, downloadOptions);
|
||||
downloadWithAnchor(blob, `${getDefaultFileName(resume, target)}.pdf`);
|
||||
if (exportOptions.publicResumePdf) {
|
||||
// Statistics are best effort and must not delay or fail a completed browser download.
|
||||
void client.resume.statistics
|
||||
.recordDownload(exportOptions.publicResumePdf.publicResume)
|
||||
.catch(() => undefined);
|
||||
}
|
||||
} catch {
|
||||
toast.add({ type: "error", description: t`Could not generate the PDF. Please try again.` });
|
||||
} finally {
|
||||
setIsExporting(false);
|
||||
toast.close(toastId);
|
||||
const onDownloadPDF = useCallback(async () => {
|
||||
if (!resume) return;
|
||||
const toastId = toast.add({
|
||||
type: "loading",
|
||||
description: t`Generating your PDF...`,
|
||||
});
|
||||
setIsExporting(true);
|
||||
try {
|
||||
const blob = exportOptions.publicResumePdf
|
||||
? await resolvePublicResumePdfBlob({ data: resume.data, ...exportOptions.publicResumePdf })
|
||||
: await createExportFile(resume, "pdf");
|
||||
downloadWithAnchor(blob, `${getDefaultFileName(resume)}.pdf`);
|
||||
if (exportOptions.publicResumePdf) {
|
||||
// Statistics are best effort and must not delay or fail a completed browser download.
|
||||
void client.resume.statistics.recordDownload(exportOptions.publicResumePdf.publicResume).catch(() => undefined);
|
||||
}
|
||||
},
|
||||
[exportOptions.publicResumePdf, resume],
|
||||
);
|
||||
} catch {
|
||||
toast.add({ type: "error", description: t`Could not generate the PDF. Please try again.` });
|
||||
} finally {
|
||||
setIsExporting(false);
|
||||
toast.close(toastId);
|
||||
}
|
||||
}, [exportOptions.publicResumePdf, resume]);
|
||||
|
||||
const onPrint = useCallback(async () => {
|
||||
if (!resume) return;
|
||||
@@ -188,5 +173,5 @@ export function useResumeExport(resume: ExportableResume | undefined, exportOpti
|
||||
}
|
||||
}, [exportOptions.publicResumePdf, resume]);
|
||||
|
||||
return { onDownloadJSON, onDownloadMarkdown, onDownloadDOCX, onDownloadPDF, onPrint, isExporting, hasCoverLetter };
|
||||
return { onDownloadJSON, onDownloadMarkdown, onDownloadDOCX, onDownloadPDF, onPrint, isExporting };
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { ResumeExportTarget } from "@reactive-resume/resume/export-sections";
|
||||
import type { IconName } from "@reactive-resume/ui/components/icon";
|
||||
import type { ReactNode } from "react";
|
||||
import type { Resume } from "@/features/resume/builder/draft";
|
||||
@@ -9,11 +8,9 @@ import { t } from "@lingui/core/macro";
|
||||
import { Plural, Trans } from "@lingui/react/macro";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { useId, useState } from "react";
|
||||
import { resumeHasCoverLetter } from "@reactive-resume/resume/export-sections";
|
||||
import { Button } from "@reactive-resume/ui/components/button";
|
||||
import { Checkbox } from "@reactive-resume/ui/components/checkbox";
|
||||
import { Icon } from "@reactive-resume/ui/components/icon";
|
||||
import { SegmentedControl, SegmentedControlItem } from "@reactive-resume/ui/components/segmented-control";
|
||||
import { Spinner } from "@reactive-resume/ui/components/spinner";
|
||||
import { toast } from "@reactive-resume/ui/components/toast";
|
||||
import { downloadWithAnchor } from "@reactive-resume/utils/file";
|
||||
@@ -226,32 +223,23 @@ export function DownloadTab({ onReview }: DownloadTabProps) {
|
||||
const words = useLetterWords();
|
||||
const linkedLetter = useLinkedLetter(resume);
|
||||
const headerId = useId();
|
||||
const hasLetter = resumeHasCoverLetter(resume.data);
|
||||
const [target, setTarget] = useState<ResumeExportTarget>("resume");
|
||||
const [format, setFormat] = useState<ExportFormat>("pdf");
|
||||
const [includeHeader, setIncludeHeader] = useState(false);
|
||||
const [withLetter, setWithLetter] = useState(false);
|
||||
const [fileName, setFileName] = useState<string | null>(null);
|
||||
const [state, setState] = useState<DownloadState>("idle");
|
||||
|
||||
const activeTarget = hasLetter ? target : "resume";
|
||||
// JSON is the whole document's data, so it isn't offered for the letter on its own.
|
||||
const activeFormat = activeTarget === "cover-letter" && format === "json" ? "pdf" : format;
|
||||
const formats = getExportFormats().map((option) => ({
|
||||
...option,
|
||||
disabled: option.id === "json" && activeTarget === "cover-letter",
|
||||
}));
|
||||
const selected = formats.find((option) => option.id === activeFormat) ?? (formats[0] as DownloadFormat);
|
||||
const name = fileName ?? getDefaultFileName(resume, activeTarget);
|
||||
const formats = getExportFormats();
|
||||
const selected = formats.find((option) => option.id === format) ?? (formats[0] as DownloadFormat);
|
||||
const name = fileName ?? getDefaultFileName(resume);
|
||||
|
||||
const download = async (as: ExportFormat) => {
|
||||
const extension = formats.find((option) => option.id === as)?.extension ?? ".pdf";
|
||||
setState("busy");
|
||||
try {
|
||||
const blob = await createExportFile(resume, as, activeTarget, { includeCoverLetterHeader: includeHeader });
|
||||
const file = `${sanitizeFileName(name) || getDefaultFileName(resume, activeTarget)}${extension}`;
|
||||
const blob = await createExportFile(resume, as);
|
||||
const file = `${sanitizeFileName(name) || getDefaultFileName(resume)}${extension}`;
|
||||
downloadWithAnchor(blob, file);
|
||||
if (withLetter && linkedLetter && activeTarget === "resume") {
|
||||
if (withLetter && linkedLetter) {
|
||||
const letter = await client.coverLetters.getById({ id: linkedLetter.id });
|
||||
downloadWithAnchor(await createLetterFile(letter, words, as), `${letterFileName(letter, words)}${extension}`);
|
||||
toast.add({ description: t`Downloaded ${file} and the cover letter` });
|
||||
@@ -266,43 +254,9 @@ export function DownloadTab({ onReview }: DownloadTabProps) {
|
||||
|
||||
return (
|
||||
<div className="grid gap-4">
|
||||
{hasLetter && (
|
||||
<div className="grid gap-2">
|
||||
<SegmentedControl
|
||||
aria-label={t`What to download`}
|
||||
value={activeTarget}
|
||||
onValueChange={(value) => {
|
||||
setTarget(value as ResumeExportTarget);
|
||||
setFileName(null);
|
||||
setState("idle");
|
||||
}}
|
||||
className="w-full"
|
||||
>
|
||||
<SegmentedControlItem value="resume">
|
||||
<Trans>Resume</Trans>
|
||||
</SegmentedControlItem>
|
||||
<SegmentedControlItem value="cover-letter">
|
||||
<Trans>Cover letter</Trans>
|
||||
</SegmentedControlItem>
|
||||
</SegmentedControl>
|
||||
{activeTarget === "cover-letter" && (
|
||||
<div className="flex items-center gap-2.5 text-sm">
|
||||
<Checkbox
|
||||
id={`${headerId}-header`}
|
||||
checked={includeHeader}
|
||||
onCheckedChange={(checked) => setIncludeHeader(checked === true)}
|
||||
/>
|
||||
<label htmlFor={`${headerId}-header`} className="cursor-pointer">
|
||||
<Trans>Include the resume's header</Trans>
|
||||
</label>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<FormatRadioGroup
|
||||
formats={formats}
|
||||
value={activeFormat}
|
||||
value={format}
|
||||
onChange={(value) => {
|
||||
setFormat(value);
|
||||
setState("idle");
|
||||
@@ -316,7 +270,7 @@ export function DownloadTab({ onReview }: DownloadTabProps) {
|
||||
onChange={setFileName}
|
||||
/>
|
||||
|
||||
{linkedLetter && activeTarget === "resume" && (
|
||||
{linkedLetter && (
|
||||
<div className="flex items-center gap-2.5 text-sm">
|
||||
<Checkbox
|
||||
id={`${headerId}-letter`}
|
||||
@@ -348,8 +302,8 @@ export function DownloadTab({ onReview }: DownloadTabProps) {
|
||||
<DownloadActions
|
||||
state={state}
|
||||
label={selected.label}
|
||||
onDownload={() => void download(activeFormat)}
|
||||
onDownloadPdf={activeFormat === "pdf" ? undefined : () => void download("pdf")}
|
||||
onDownload={() => void download(format)}
|
||||
onDownloadPdf={format === "pdf" ? undefined : () => void download("pdf")}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -1,171 +1,64 @@
|
||||
---
|
||||
title: "Adding a cover letter"
|
||||
description: "Learn how to create a cover letter as a custom section in Reactive Resume, format it professionally, and place it on a separate page."
|
||||
description: "Write a cover letter in Reactive Resume as a document of its own, match it to your resume's design, attach it to a job application, and export it."
|
||||
---
|
||||
|
||||
A cover letter goes alongside your resume when you apply for a job. It introduces you to the employer, points to your relevant qualifications, and explains why you fit the position. In Reactive Resume you write one as a custom section, so you control its formatting and where it appears.
|
||||
A cover letter goes alongside your resume when you apply for a job. In Reactive Resume a cover letter is a document of its own, next to your resumes in **Documents**. It is not a section inside a resume.
|
||||
|
||||
## Why include a cover letter?
|
||||
|
||||
- It shows genuine interest in the position
|
||||
- You can tailor your message to each employer and role
|
||||
- You have room to address career changes or gaps in your resume
|
||||
- It demonstrates that you write clearly and professionally
|
||||
|
||||
## Creating a cover letter section
|
||||
## Create a cover letter
|
||||
|
||||
<Steps>
|
||||
<Step title="Open the resume builder">
|
||||
Navigate to your resume and open it in the builder.
|
||||
<Step title="Open New">
|
||||
In **Documents**, click **New**, then **New cover letter instead**.
|
||||
</Step>
|
||||
|
||||
<Step title="Scroll to Custom Sections">
|
||||
In the left sidebar, scroll down to find the **Custom Sections** area at the bottom.
|
||||
</Step>
|
||||
<Step title="Pick who it's from">
|
||||
Under **From**, choose the resume the letter goes with. The letter uses that resume's name, contact details and design, and follows them when you change the resume.
|
||||
</Step>
|
||||
|
||||
<Step title="Add a new custom section">
|
||||
Click <Badge>Add a new custom section</Badge> to open the section creation dialog.
|
||||
</Step>
|
||||
<Step title="Pick who it's for">
|
||||
Under **For**, link the job application the letter is for. The recipient fills in from the application, and the application lists the letter as the one you sent.
|
||||
</Step>
|
||||
|
||||
<Step title="Select 'Cover Letter' as the type">
|
||||
In the dialog: - Enter a **Title** for your section (e.g., "Cover Letter" or "Cover Letter - [Company Name]") - Select
|
||||
**Cover Letter** from the **Type** dropdown - Click **Create** to add the section
|
||||
</Step>
|
||||
|
||||
<Step title="Add a cover letter item">
|
||||
In your new cover letter section, click <Badge>Add a new item</Badge> to create your cover letter.
|
||||
<Step title="Write">
|
||||
Write the body. The greeting and sign-off follow the recipient's name and your name.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Formatting your cover letter
|
||||
You can also start a letter from an application: open it in **Applications** and click **Write a letter** under **What you sent**.
|
||||
|
||||
A cover letter has two main fields:
|
||||
## Match your resume, or design it on its own
|
||||
|
||||
### Recipient field
|
||||
By default a letter matches its resume's template, type and colors. Turn off **Match** in the letter's **Design** mode to give it a template, type, colors and page settings of its own.
|
||||
|
||||
The **Recipient** field is where you enter the recipient's information. This typically includes:
|
||||
## Attach a letter to an application
|
||||
|
||||
- Date (optional)
|
||||
- Hiring manager's name
|
||||
- Their job title
|
||||
- Company name
|
||||
- Company address
|
||||
A letter linked to an application under **For** is that application's letter. Each application has one letter; linking a letter to another application moves it there. When the application reaches **Applied**, the letter is saved in its History as the version you sent.
|
||||
|
||||
<Tip>
|
||||
Use line breaks to format the address block. For example:
|
||||
## Export a letter
|
||||
|
||||
```
|
||||
January 31, 2026
|
||||
Open the letter and click **Share & export**, then **Download**, and pick PDF or DOCX. When you download a resume whose application has a letter, the resume's **Download** tab offers to include the letter as a second file.
|
||||
|
||||
Jane Smith
|
||||
Senior Hiring Manager
|
||||
Acme Corporation
|
||||
123 Main Street, Suite 400
|
||||
New York, NY 10001
|
||||
```
|
||||
## Letters written inside a resume
|
||||
|
||||
</Tip>
|
||||
Older versions of Reactive Resume let you add a cover letter as a section of a resume. Those letters have moved to **Documents**:
|
||||
|
||||
### Content field
|
||||
- Each one is a letter of its own, named after its resume and section, for example "Frontend Resume — Cover Letter".
|
||||
- It stays linked to that resume's details and design, so it looks as it did.
|
||||
- If the resume was used by one application that had no letter, the letter is attached to that application.
|
||||
- The resume no longer contains the letter. Older versions of the resume in its History still do; restoring one saves those letters again as letters.
|
||||
|
||||
The **Content** field is where you write the body of your cover letter. Include:
|
||||
|
||||
- **Salutation**: "Dear Ms. Smith," or "Dear Hiring Team,"
|
||||
- **Opening paragraph**: State the position you're applying for and how you learned about it
|
||||
- **Body paragraphs**: Highlight relevant experience, skills, and achievements
|
||||
- **Closing paragraph**: Express enthusiasm and include a call to action
|
||||
- **Sign-off**: "Sincerely," followed by your name
|
||||
|
||||
<Info>
|
||||
The recipient and content are both rendered directly on your resume, without a section header.
|
||||
</Info>
|
||||
|
||||
## Using fullscreen mode for writing
|
||||
|
||||
The rich text editor can expand to fill the screen when you want to write without distraction:
|
||||
|
||||
<Steps>
|
||||
<Step title="Open the cover letter item">
|
||||
Click on your cover letter item in the sidebar to open the edit dialog.
|
||||
</Step>
|
||||
|
||||
<Step title="Expand the editor">
|
||||
In either the Recipient or Content field, click the **expand icon** (arrows pointing outward) in the bottom-right
|
||||
corner of the editor.
|
||||
</Step>
|
||||
|
||||
<Step title="Write in fullscreen">
|
||||
The editor expands to nearly fill your screen, with every formatting tool still available.
|
||||
</Step>
|
||||
|
||||
<Step title="Exit fullscreen">
|
||||
Click the **collapse icon** or press **Escape** to return to the normal view.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Formatting options
|
||||
|
||||
The rich text editor supports:
|
||||
|
||||
- **Text styling**: Bold, italic, underline, strikethrough, highlight
|
||||
- **Headings**: H1 through H6 (though typically not needed in a cover letter)
|
||||
- **Alignment**: Left, center, right, or justified text
|
||||
- **Lists**: Bullet points and numbered lists
|
||||
- **Links**: Add hyperlinks to your portfolio or LinkedIn
|
||||
|
||||
## Exporting the cover letter separately
|
||||
|
||||
You do not need to move the cover letter to a specific page to send it on its own. When you download your resume, the download dialog gives you a **Resume** tab and a **Cover letter** tab, so you can export either document as a standalone PDF, DOCX, or Markdown file.
|
||||
|
||||
See [Exporting your resume](/guides/exporting-your-resume) for the full workflow.
|
||||
|
||||
## Moving your cover letter to a separate page
|
||||
|
||||
If you also want the cover letter to appear on its own page inside the combined preview or the public resume view, place it on a new page:
|
||||
|
||||
<Steps>
|
||||
<Step title="Create a second page">
|
||||
In the right sidebar, go to the **Layout** section and add a new page to your resume.
|
||||
</Step>
|
||||
|
||||
<Step title="Move the cover letter section">
|
||||
Use the **Move to** feature to relocate your cover letter section to the second page.
|
||||
|
||||
<Tip>
|
||||
See [Moving items between sections](/guides/moving-items-between-sections) for detailed instructions on how to move sections between pages.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Verify the layout">
|
||||
Check the preview to confirm your cover letter appears on its own page and is formatted the way you want.
|
||||
</Step>
|
||||
</Steps>
|
||||
Importing a resume file that contains cover letters, or sending one through the API, does the same: the letters are saved as letters and the resume keeps none.
|
||||
|
||||
## Tips for effective cover letters
|
||||
|
||||
<Tip>**Keep it concise**: Aim for 250-400 words. Recruiters spend about one minute reading cover letters.</Tip>
|
||||
|
||||
<Tip>
|
||||
**Tailor each letter**: Customize your cover letter for each application. Reference specific job requirements and
|
||||
company values.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Use the same styling**: Your cover letter inherits the fonts and colors from your resume template, so both
|
||||
documents match.
|
||||
**Tailor each letter**: Write one letter per application. Reference specific job requirements and company values.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Proofread carefully**: Spelling and grammar errors can disqualify your application. Review your letter before
|
||||
exporting.
|
||||
</Tip>
|
||||
|
||||
## Managing multiple cover letters
|
||||
|
||||
Since cover letters are custom sections, you can:
|
||||
|
||||
- Create multiple cover letter sections for different job applications
|
||||
- Name each section descriptively (e.g., "Cover Letter - Google", "Cover Letter - Meta")
|
||||
- Show or hide sections as needed when exporting
|
||||
- Duplicate sections to use as templates for new applications
|
||||
|
||||
@@ -18,10 +18,6 @@ Use PDF when you are submitting the finished resume. Use Markdown when you want
|
||||
Click **Download** in the builder header, or open the **Export** section in the right sidebar and click **Download**.
|
||||
</Step>
|
||||
|
||||
<Step title="Choose Resume or Cover letter">
|
||||
Select **Resume** to export the resume content. Select **Cover letter** if you want a Markdown copy of the cover letter instead.
|
||||
</Step>
|
||||
|
||||
<Step title="Download Markdown">
|
||||
In the **Markdown** row, click **Download**. Your browser saves a `.md` file.
|
||||
</Step>
|
||||
@@ -95,7 +91,7 @@ C++ - Blueprints - UE5 Features
|
||||
|
||||
## What Markdown includes
|
||||
|
||||
Markdown export includes the visible resume or cover-letter content for the selected tab. It keeps the document structure, section headings, item headings, rich-text paragraphs, lists, links, bold text, and italic text.
|
||||
Markdown export includes the visible resume content. It keeps the document structure, section headings, item headings, rich-text paragraphs, lists, links, bold text, and italic text.
|
||||
|
||||
Markdown export does not include visual-only choices such as template design, page size, column layout, colors, icon styling, spacing, or PDF page breaks.
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
title: "Exporting your resume"
|
||||
description: "Download your resume or cover letter from Reactive Resume as PDF, DOCX, Markdown, or JSON, and pick the right format for each situation."
|
||||
description: "Download your resume from Reactive Resume as PDF, DOCX, Markdown, or JSON, and pick the right format for each situation."
|
||||
---
|
||||
|
||||
Reactive Resume can export your resume, and your cover letter separately when you have one, in four formats.
|
||||
Reactive Resume can export your resume in four formats.
|
||||
|
||||
| Format | Best for |
|
||||
| --- | --- |
|
||||
@@ -25,10 +25,6 @@ Every export runs from the same **Download** dialog. You can open it two ways.
|
||||
Select the **Download** button in the top-right of the builder header, next to the sidebar toggle. You can also open the same dialog from the **Export** section of the right sidebar.
|
||||
</Step>
|
||||
|
||||
<Step title="Pick what to export">
|
||||
At the top of the dialog, use the tabs to choose **Resume** or **Cover letter**. The **Cover letter** tab is only available when your resume contains a visible cover letter section.
|
||||
</Step>
|
||||
|
||||
<Step title="Choose a format">
|
||||
Select **Download** on the format you want. The dialog closes and your browser saves the file using the resume name as the filename.
|
||||
</Step>
|
||||
@@ -38,18 +34,9 @@ Every export runs from the same **Download** dialog. You can open it two ways.
|
||||
While an export is running, the trigger button and format buttons show a spinner and stay disabled until the file is ready.
|
||||
</Tip>
|
||||
|
||||
## Export the resume and cover letter separately
|
||||
## Cover letters
|
||||
|
||||
If your resume includes a [cover letter section](/guides/adding-a-cover-letter), the download dialog treats the resume and cover letter as two distinct documents.
|
||||
|
||||
- For PDF, DOCX, and Markdown, the **Resume** tab exports only your resume content and excludes cover letter sections. Its JSON export retains embedded cover-letter custom sections; independent cover letters remain separate dashboard exports.
|
||||
- The **Cover letter** tab exports only visible cover letter sections, rendered full width on their own page.
|
||||
|
||||
You do not need to reorder pages or hide sections by hand to produce a resume-only or cover-letter-only PDF. Select the tab that matches what you want, then pick a format.
|
||||
|
||||
<Info>
|
||||
The **Cover letter** tab is disabled when the resume has no cover letter section, or when every cover letter section or item is hidden.
|
||||
</Info>
|
||||
Cover letters are documents of their own. Export one from the letter itself: open it and click **Share & export**. See [Adding a cover letter](/guides/adding-a-cover-letter). When the resume's application has a letter, the **Download** tab offers to include it as a second file.
|
||||
|
||||
## Export as PDF
|
||||
|
||||
@@ -68,7 +55,7 @@ Use PDF for:
|
||||
|
||||
## Export as DOCX
|
||||
|
||||
Choose **DOCX** when you want to continue editing your resume or cover letter in a word processor.
|
||||
Choose **DOCX** when you want to continue editing your resume in a word processor.
|
||||
|
||||
Use DOCX for:
|
||||
|
||||
@@ -82,7 +69,7 @@ Use DOCX for:
|
||||
|
||||
## Export as Markdown
|
||||
|
||||
Choose **Markdown** when you want a plain-text version of your resume or cover letter that is easy to edit anywhere and easy to feed into AI tools.
|
||||
Choose **Markdown** when you want a plain-text version of your resume that is easy to edit anywhere and easy to feed into AI tools.
|
||||
|
||||
Use Markdown for:
|
||||
|
||||
@@ -98,7 +85,7 @@ For examples and common workflows, see [Exporting a resume to Markdown](/guides/
|
||||
|
||||
Choose **JSON** when you want a structured backup of your resume.
|
||||
|
||||
The JSON export includes your full resume content and settings, including any cover letter sections embedded in that resume. You can import it later from the dashboard to restore the resume or create another version.
|
||||
The JSON export includes your full resume content and settings. Cover letters are exported on their own. You can import it later from the dashboard to restore the resume or create another version.
|
||||
|
||||
JSON is also useful when working with AI assistants that understand structured data. Export JSON, ask an assistant to review or edit the fields, then import the revised JSON as a new resume.
|
||||
|
||||
@@ -120,7 +107,7 @@ Reactive Resume provides three different JSON shapes:
|
||||
|
||||
| Export | How to create it | What it contains | Can you import it as one resume? |
|
||||
| --- | --- | --- | --- |
|
||||
| **Single resume** | In the builder, open **Download**, stay on **Resume**, and download **JSON**. | Resume content and settings, including cover letter sections embedded in that resume. | Yes. |
|
||||
| **Single resume** | In the builder, open **Download** and download **JSON**. | Resume content and settings. | Yes. |
|
||||
| **Independent cover letter** | Open a letter from **Cover Letters** on the dashboard and select **Export JSON**. | That letter's content and copied resume styling in the Reactive Resume cover-letter format. | No. Import it through the cover-letter library instead. |
|
||||
| **Account archive** | Open **Settings**, go to **Account**, and under **Your data** select **Export**. | A zip with `account.json` (profile and an `exportedAt` timestamp), each resume and cover letter as its own JSON file, and `applications.json`. | No. It is an archive, not a single-resume import file. |
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ Tool names use canonical unprefixed `snake_case` names.
|
||||
| `list_resumes` | List all resumes with IDs, names, tags, and status. Supports filtering by tags and sorting by last updated, creation date, or name |
|
||||
| `list_resume_tags` | List every distinct tag in use across your resumes (sorted) |
|
||||
| `read_resume` | Get the full data of a specific resume by ID |
|
||||
| `download_resume_pdf` | Create a 10-minute authenticated PDF download URL. Defaults to the resume; set `target: "cover-letter"` for its visible cover letter |
|
||||
| `download_resume_pdf` | Create a 10-minute authenticated PDF download URL for a resume |
|
||||
| `create_resume` | Create a new, empty resume with a name and slug. Optionally pre-fill with sample data |
|
||||
| `import_resume` | Create a resume from a full ResumeData JSON export (random name/slug). Large files may exceed client limits |
|
||||
| `duplicate_resume` | Create a copy of an existing resume with a new name and slug |
|
||||
@@ -230,14 +230,13 @@ Tool names use canonical unprefixed `snake_case` names.
|
||||
| `lock_resume` | Lock a resume to prevent edits, patches, and deletion |
|
||||
| `unlock_resume` | Unlock a previously locked resume to re-enable editing |
|
||||
| `get_resume_statistics` | Get view and download statistics for a resume |
|
||||
| `list_cover_letters` | List independent cover letters in the cover-letter library; embedded resume cover letters are not listed here |
|
||||
| `list_cover_letters` | List the account's cover letters, which are documents of their own |
|
||||
| `read_cover_letter` | Read one independent library cover letter by ID |
|
||||
| `create_cover_letter` | Create an independent library cover letter, optionally linked to a resume or application |
|
||||
| `update_cover_letter` | Update an independent cover letter with revision-checked concurrency |
|
||||
| `refresh_cover_letter_style` | Refresh independent-letter styling from a resume without changing its content or template |
|
||||
| `duplicate_cover_letter` | Create an independent copy of a library cover letter |
|
||||
| `delete_cover_letter` | Permanently delete an independent library cover letter; requires its current revision |
|
||||
| `copy_embedded_cover_letter` | Copy a cover-letter item from a resume into the independent cover-letter library; leaves embedded item unchanged |
|
||||
| `export_cover_letter` | Export one independent library cover letter as versioned cover-letter JSON |
|
||||
| `import_cover_letter` | Import versioned cover-letter JSON as a new independent library letter |
|
||||
| `list_applications` | List tracked job applications. Supports stage, tag, and archived filters |
|
||||
|
||||
+2
-687
@@ -14320,687 +14320,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/cover-letters/from-resume": {
|
||||
"post": {
|
||||
"operationId": "copyEmbeddedCoverLetter",
|
||||
"summary": "Copy an embedded cover letter",
|
||||
"description": "Creates a saved cover letter by copying an embedded cover-letter item from a resume.",
|
||||
"tags": [
|
||||
"Cover Letters"
|
||||
],
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"resumeId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"sectionId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"itemId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 100
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"resumeId",
|
||||
"sectionId",
|
||||
"itemId"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "The newly created cover letter.",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 100
|
||||
},
|
||||
"recipient": {
|
||||
"type": "string",
|
||||
"maxLength": 20000
|
||||
},
|
||||
"content": {
|
||||
"type": "string",
|
||||
"maxLength": 100000
|
||||
},
|
||||
"style": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"basics": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The full name of the author of the resume."
|
||||
},
|
||||
"headline": {
|
||||
"type": "string",
|
||||
"description": "The headline of the author of the resume."
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"description": "The email address of the author of the resume."
|
||||
},
|
||||
"phone": {
|
||||
"type": "string",
|
||||
"description": "The phone number of the author of the resume."
|
||||
},
|
||||
"location": {
|
||||
"type": "string",
|
||||
"description": "The location of the author of the resume."
|
||||
},
|
||||
"website": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string",
|
||||
"description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://)."
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"description": "The label to display for the URL. Leave blank to display the URL as-is."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"url",
|
||||
"label"
|
||||
],
|
||||
"description": "The website of the author of the resume."
|
||||
},
|
||||
"customFields": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "The unique identifier for the custom field. Usually generated as a UUID."
|
||||
},
|
||||
"icon": {
|
||||
"type": "string",
|
||||
"description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available."
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"description": "The text to display for the custom field."
|
||||
},
|
||||
"link": {
|
||||
"type": "string",
|
||||
"description": "If the custom field should be a link, the URL to link to."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"icon",
|
||||
"text",
|
||||
"link"
|
||||
]
|
||||
},
|
||||
"description": "The custom fields to display on the resume."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"headline",
|
||||
"email",
|
||||
"phone",
|
||||
"location",
|
||||
"website",
|
||||
"customFields"
|
||||
]
|
||||
},
|
||||
"picture": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hidden": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to hide the picture from the resume."
|
||||
},
|
||||
"fit": {
|
||||
"enum": [
|
||||
"cover",
|
||||
"contain"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "How the picture fits its frame: cover crops overflow, while contain preserves the whole image."
|
||||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"description": "The URL to the picture to display on the resume. Prefer local app-served paths (for example /uploads/...) populated via upload."
|
||||
},
|
||||
"size": {
|
||||
"type": "number",
|
||||
"minimum": 32,
|
||||
"maximum": 512,
|
||||
"description": "The size of the picture to display on the resume, defined in points (pt)."
|
||||
},
|
||||
"rotation": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 360,
|
||||
"description": "The rotation of the picture to display on the resume, defined in degrees (°)."
|
||||
},
|
||||
"aspectRatio": {
|
||||
"type": "number",
|
||||
"minimum": 0.5,
|
||||
"maximum": 2.5,
|
||||
"description": "The aspect ratio of the picture to display on the resume, defined as width / height (e.g. 1.5 for 1.5:1 or 0.5 for 1:2)."
|
||||
},
|
||||
"borderRadius": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"description": "The border radius of the picture to display on the resume, defined in points (pt)."
|
||||
},
|
||||
"borderColor": {
|
||||
"type": "string",
|
||||
"description": "The color of the border of the picture to display on the resume, defined as rgba(r, g, b, a)."
|
||||
},
|
||||
"borderWidth": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"description": "The width of the border of the picture to display on the resume, defined in points (pt)."
|
||||
},
|
||||
"shadowColor": {
|
||||
"type": "string",
|
||||
"description": "The color of the shadow of the picture to display on the resume, defined as rgba(r, g, b, a)."
|
||||
},
|
||||
"shadowWidth": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"description": "The width of the shadow of the picture to display on the resume, defined in points (pt)."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hidden",
|
||||
"fit",
|
||||
"url",
|
||||
"size",
|
||||
"rotation",
|
||||
"aspectRatio",
|
||||
"borderRadius",
|
||||
"borderColor",
|
||||
"borderWidth",
|
||||
"shadowColor",
|
||||
"shadowWidth"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"template": {
|
||||
"enum": [
|
||||
"azurill",
|
||||
"bronzor",
|
||||
"chikorita",
|
||||
"ditgar",
|
||||
"ditto",
|
||||
"gengar",
|
||||
"glalie",
|
||||
"kakuna",
|
||||
"lapras",
|
||||
"leafish",
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
},
|
||||
"page": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"gapX": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"description": "The horizontal gap between the sections of the page, defined in points (pt)."
|
||||
},
|
||||
"gapY": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"description": "The vertical gap between the sections of the page, defined in points (pt)."
|
||||
},
|
||||
"marginX": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"description": "The horizontal margin of the page, defined in points (pt)."
|
||||
},
|
||||
"marginY": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"description": "The vertical margin of the page, defined in points (pt)."
|
||||
},
|
||||
"format": {
|
||||
"enum": [
|
||||
"a4",
|
||||
"letter",
|
||||
"free-form"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The format of the page. Can be 'a4', 'letter', or 'free-form'."
|
||||
},
|
||||
"locale": {
|
||||
"type": "string",
|
||||
"description": "The locale of the page. Used for displaying pre-translated section headings, if not overridden."
|
||||
},
|
||||
"dateFormat": {
|
||||
"enum": [
|
||||
"short",
|
||||
"long",
|
||||
"numeric",
|
||||
"iso"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "How dates print: 'short' (Mar 2022), 'long' (March 2022), 'numeric' (03/2022) or 'iso' (2022-03). When missing, it's read from how the dates were typed."
|
||||
},
|
||||
"hideLinkUnderline": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to hide the underlines of the links."
|
||||
},
|
||||
"hideIcons": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to hide the item-level icons (skills, profiles, interests)."
|
||||
},
|
||||
"hideSectionIcons": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to hide the section heading icons displayed before section titles."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"gapX",
|
||||
"gapY",
|
||||
"marginX",
|
||||
"marginY",
|
||||
"format",
|
||||
"locale",
|
||||
"hideLinkUnderline",
|
||||
"hideIcons",
|
||||
"hideSectionIcons"
|
||||
],
|
||||
"description": "The page settings of the resume. Determines the margins, format, and locale of the resume."
|
||||
},
|
||||
"design": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"level": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"type": "string",
|
||||
"description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available."
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"hidden",
|
||||
"circle",
|
||||
"square",
|
||||
"rectangle",
|
||||
"rectangle-full",
|
||||
"progress-bar",
|
||||
"icon"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The type of the level design. 'hidden' will hide the level design, 'circle' will display a circle, 'square' will display a square, 'rectangle' will display a rectangle, 'rectangle-full' will display a full rectangle, 'progress-bar' will display a progress bar, and 'icon' will display an icon. If 'icon' is selected, the icon to display should be specified in the 'icon' field."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icon",
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"colors": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"primary": {
|
||||
"type": "string",
|
||||
"description": "The primary color of the design, defined as rgba(r, g, b, a)."
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"description": "The text color of the design, defined as rgba(r, g, b, a). Usually set to black: rgba(0, 0, 0, 1)."
|
||||
},
|
||||
"background": {
|
||||
"type": "string",
|
||||
"description": "The background color of the design, defined as rgba(r, g, b, a). Usually set to white: rgba(255, 255, 255, 1)."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"primary",
|
||||
"text",
|
||||
"background"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"level",
|
||||
"colors"
|
||||
],
|
||||
"description": "The design settings of the resume. Determines the colors, level designs, and typography of the resume."
|
||||
},
|
||||
"typography": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"body": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"fontFamily": {
|
||||
"type": "string",
|
||||
"description": "The family of the font to use. Must be a supported resume font."
|
||||
},
|
||||
"fontWeights": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"enum": [
|
||||
"100",
|
||||
"200",
|
||||
"300",
|
||||
"400",
|
||||
"500",
|
||||
"600",
|
||||
"700",
|
||||
"800",
|
||||
"900"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"description": "The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font."
|
||||
},
|
||||
"fontSize": {
|
||||
"type": "number",
|
||||
"minimum": 6,
|
||||
"maximum": 24,
|
||||
"description": "The size of the font to use, defined in points (pt)."
|
||||
},
|
||||
"lineHeight": {
|
||||
"type": "number",
|
||||
"minimum": 0.5,
|
||||
"maximum": 4,
|
||||
"description": "The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x)."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"fontFamily",
|
||||
"fontWeights",
|
||||
"fontSize",
|
||||
"lineHeight"
|
||||
],
|
||||
"description": "The typography for the body of the resume."
|
||||
},
|
||||
"heading": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"fontFamily": {
|
||||
"type": "string",
|
||||
"description": "The family of the font to use. Must be a supported resume font."
|
||||
},
|
||||
"fontWeights": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"enum": [
|
||||
"100",
|
||||
"200",
|
||||
"300",
|
||||
"400",
|
||||
"500",
|
||||
"600",
|
||||
"700",
|
||||
"800",
|
||||
"900"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"description": "The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font."
|
||||
},
|
||||
"fontSize": {
|
||||
"type": "number",
|
||||
"minimum": 6,
|
||||
"maximum": 24,
|
||||
"description": "The size of the font to use, defined in points (pt)."
|
||||
},
|
||||
"lineHeight": {
|
||||
"type": "number",
|
||||
"minimum": 0.5,
|
||||
"maximum": 4,
|
||||
"description": "The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x)."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"fontFamily",
|
||||
"fontWeights",
|
||||
"fontSize",
|
||||
"lineHeight"
|
||||
],
|
||||
"description": "The typography for the headings of the resume."
|
||||
},
|
||||
"hyphenation": {
|
||||
"type": "boolean",
|
||||
"description": "Enable automatic PDF hyphenation using the resume language. Currently supports German. Defaults to false."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"body",
|
||||
"heading"
|
||||
],
|
||||
"description": "The typography settings of the resume. Determines the fonts and sizes of the body and headings of the resume."
|
||||
},
|
||||
"styleRules": {
|
||||
"description": "Structured style rules that target semantic resume sections and slots for PDF rendering."
|
||||
},
|
||||
"stylesheet": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"enum": [
|
||||
"legacy",
|
||||
"semantic"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"source": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"languageVersion": {
|
||||
"type": "integer",
|
||||
"minimum": -9007199254740991,
|
||||
"maximum": 9007199254740991,
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"text": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"languageVersion",
|
||||
"text"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"mode",
|
||||
"source"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"check": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ignored": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Check issues the author chose to ignore, by issue key (the rule code and where it applies)."
|
||||
},
|
||||
"hiddenTerms": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Job-posting terms the author hid from Job match as not true for them."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"ignored",
|
||||
"hiddenTerms"
|
||||
],
|
||||
"description": "The author's Check choices for this resume. Not printed; missing until a choice is made."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template",
|
||||
"page",
|
||||
"design",
|
||||
"typography"
|
||||
]
|
||||
},
|
||||
"sectionId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"itemId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"basics",
|
||||
"picture",
|
||||
"metadata",
|
||||
"sectionId",
|
||||
"itemId"
|
||||
]
|
||||
},
|
||||
"layout": {
|
||||
"enum": [
|
||||
"structured",
|
||||
"freeform"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "structured: recipient name, company and date fields, a greeting from the name, the body and a sign-off. freeform: the recipient block and body as written (letters from before structured letters).",
|
||||
"default": "freeform"
|
||||
},
|
||||
"recipientName": {
|
||||
"type": "string",
|
||||
"maxLength": 200,
|
||||
"default": "",
|
||||
"description": "Who the letter is to: a person, or a team."
|
||||
},
|
||||
"recipientCompany": {
|
||||
"type": "string",
|
||||
"maxLength": 200,
|
||||
"default": ""
|
||||
},
|
||||
"letterDate": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"description": "The letter's date, as YYYY-MM-DD."
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"sourceResumeId": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceApplicationId": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"senderLinked": {
|
||||
"type": "boolean",
|
||||
"description": "The sender's details come live from the source resume, instead of the copy in `style`."
|
||||
},
|
||||
"designLinked": {
|
||||
"type": "boolean",
|
||||
"description": "The design comes live from the source resume, instead of the copy in `style`."
|
||||
},
|
||||
"isLocked": {
|
||||
"type": "boolean",
|
||||
"description": "Locked letters can't be edited or moved to Trash until they're unlocked."
|
||||
},
|
||||
"revision": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 9007199254740991
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"x-native-type": "date"
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"x-native-type": "date"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"recipient",
|
||||
"content",
|
||||
"style",
|
||||
"id",
|
||||
"sourceResumeId",
|
||||
"sourceApplicationId",
|
||||
"senderLinked",
|
||||
"designLinked",
|
||||
"isLocked",
|
||||
"revision",
|
||||
"createdAt",
|
||||
"updatedAt"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/cover-letters/{id}/export": {
|
||||
"get": {
|
||||
"operationId": "exportCoverLetter",
|
||||
@@ -46878,12 +46197,8 @@
|
||||
"name": "target",
|
||||
"in": "query",
|
||||
"schema": {
|
||||
"enum": [
|
||||
"resume",
|
||||
"cover-letter"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "Which document to download."
|
||||
"const": "resume",
|
||||
"description": "Deprecated, only `resume`: cover letters are documents of their own (`/cover-letters`)."
|
||||
},
|
||||
"allowEmptyValue": true,
|
||||
"allowReserved": true
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
-- Letters are documents of their own. Every cover letter a resume still carries (a custom section of type
|
||||
-- `cover-letter`, one letter per item, hidden ones too) becomes a saved letter linked to that resume's sender
|
||||
-- details and design, as it read inside the resume. A resume that carried exactly one letter, used by exactly one
|
||||
-- application without a letter, hands it to that application. Then the sections leave the resumes and their page
|
||||
-- layouts.
|
||||
-- Resume versions keep their history as it was; restoring one saves its letters again (once) as letters.
|
||||
-- Idempotent: a letter already saved from the same item with the same text isn't saved twice. rollback.sql
|
||||
-- puts the letters back into their resumes.
|
||||
WITH letter_items AS (
|
||||
SELECT
|
||||
r.id AS resume_id,
|
||||
r.user_id,
|
||||
r.name AS resume_name,
|
||||
r.data,
|
||||
s.section,
|
||||
i.item,
|
||||
count(*) OVER (PARTITION BY r.id) AS letters_in_resume
|
||||
FROM "resume" r
|
||||
CROSS JOIN LATERAL jsonb_array_elements(r.data->'customSections') AS s(section)
|
||||
CROSS JOIN LATERAL jsonb_array_elements(s.section->'items') AS i(item)
|
||||
WHERE jsonb_typeof(r.data->'customSections') = 'array'
|
||||
AND s.section->>'type' = 'cover-letter'
|
||||
AND jsonb_typeof(s.section->'items') = 'array'
|
||||
),
|
||||
inserted AS (
|
||||
INSERT INTO "cover_letter" (
|
||||
"id", "user_id", "name", "recipient", "content", "style", "layout", "sender_linked", "design_linked", "source_resume_id",
|
||||
"source_application_id"
|
||||
)
|
||||
SELECT
|
||||
gen_random_uuid()::text,
|
||||
l.user_id,
|
||||
left(
|
||||
coalesce(nullif(btrim(l.resume_name), ''), 'Resume') || ' — ' ||
|
||||
coalesce(nullif(btrim(l.section->>'title'), ''), 'Cover letter'),
|
||||
100
|
||||
),
|
||||
coalesce(l.item->>'recipient', ''),
|
||||
coalesce(l.item->>'content', ''),
|
||||
jsonb_build_object(
|
||||
'basics', l.data->'basics',
|
||||
'picture', l.data->'picture',
|
||||
'metadata', (l.data->'metadata') - 'notes' - 'layout',
|
||||
'sectionId', l.section->>'id',
|
||||
'itemId', l.item->>'id'
|
||||
),
|
||||
'freeform',
|
||||
true,
|
||||
true,
|
||||
l.resume_id,
|
||||
CASE WHEN l.letters_in_resume = 1 THEN (
|
||||
SELECT min(a."id") FROM "application" a
|
||||
WHERE a."resume_id" = l.resume_id AND a."cover_letter_id" IS NULL
|
||||
HAVING count(*) = 1
|
||||
) END
|
||||
FROM letter_items l
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM "cover_letter" c
|
||||
WHERE c."user_id" = l.user_id
|
||||
AND c."source_resume_id" = l.resume_id
|
||||
AND c."style"->>'itemId' = l.item->>'id'
|
||||
AND c."content" = coalesce(l.item->>'content', '')
|
||||
)
|
||||
RETURNING "id", "user_id", "name", "recipient", "content", "style", "layout", "recipient_name",
|
||||
"recipient_company", "letter_date", "source_resume_id", "source_application_id"
|
||||
),
|
||||
versions AS (
|
||||
INSERT INTO "cover_letter_version" ("id", "cover_letter_id", "user_id", "data", "kind")
|
||||
SELECT
|
||||
gen_random_uuid()::text,
|
||||
"id",
|
||||
"user_id",
|
||||
jsonb_build_object(
|
||||
'name', "name",
|
||||
'recipient', "recipient",
|
||||
'content', "content",
|
||||
'style', "style",
|
||||
'layout', "layout",
|
||||
'recipientName', "recipient_name",
|
||||
'recipientCompany', "recipient_company",
|
||||
'letterDate', "letter_date"
|
||||
),
|
||||
'created'
|
||||
FROM inserted
|
||||
RETURNING "id"
|
||||
)
|
||||
UPDATE "application" a
|
||||
SET "cover_letter_id" = inserted."id"
|
||||
FROM inserted
|
||||
WHERE a."id" = inserted."source_application_id" AND a."cover_letter_id" IS NULL;--> statement-breakpoint
|
||||
WITH letters AS (
|
||||
SELECT r.id, array_agg(s.section->>'id') AS ids
|
||||
FROM "resume" r
|
||||
CROSS JOIN LATERAL jsonb_array_elements(r.data->'customSections') AS s(section)
|
||||
WHERE jsonb_typeof(r.data->'customSections') = 'array' AND s.section->>'type' = 'cover-letter'
|
||||
GROUP BY r.id
|
||||
),
|
||||
cleaned AS (
|
||||
SELECT
|
||||
r.id,
|
||||
letters.ids,
|
||||
jsonb_set(
|
||||
r.data,
|
||||
'{customSections}',
|
||||
(
|
||||
SELECT coalesce(jsonb_agg(s.section ORDER BY s.position), '[]'::jsonb)
|
||||
FROM jsonb_array_elements(r.data->'customSections') WITH ORDINALITY AS s(section, position)
|
||||
WHERE s.section->>'type' IS DISTINCT FROM 'cover-letter'
|
||||
)
|
||||
) AS data
|
||||
FROM "resume" r
|
||||
JOIN letters ON letters.id = r.id
|
||||
)
|
||||
UPDATE "resume" r
|
||||
SET "data" = CASE
|
||||
WHEN jsonb_typeof(c.data#>'{metadata,layout,pages}') = 'array' THEN jsonb_set(
|
||||
c.data,
|
||||
'{metadata,layout,pages}',
|
||||
(
|
||||
SELECT coalesce(jsonb_agg(
|
||||
p.page
|
||||
|| CASE WHEN jsonb_typeof(p.page->'main') = 'array' THEN jsonb_build_object('main', (
|
||||
SELECT coalesce(jsonb_agg(m.id ORDER BY m.position), '[]'::jsonb)
|
||||
FROM jsonb_array_elements(p.page->'main') WITH ORDINALITY AS m(id, position)
|
||||
WHERE NOT (m.id #>> '{}') = ANY (c.ids)
|
||||
)) ELSE '{}'::jsonb END
|
||||
|| CASE WHEN jsonb_typeof(p.page->'sidebar') = 'array' THEN jsonb_build_object('sidebar', (
|
||||
SELECT coalesce(jsonb_agg(sb.id ORDER BY sb.position), '[]'::jsonb)
|
||||
FROM jsonb_array_elements(p.page->'sidebar') WITH ORDINALITY AS sb(id, position)
|
||||
WHERE NOT (sb.id #>> '{}') = ANY (c.ids)
|
||||
)) ELSE '{}'::jsonb END
|
||||
ORDER BY p.position
|
||||
), '[]'::jsonb)
|
||||
FROM jsonb_array_elements(c.data#>'{metadata,layout,pages}') WITH ORDINALITY AS p(page, position)
|
||||
)
|
||||
)
|
||||
ELSE c.data
|
||||
END
|
||||
FROM cleaned c
|
||||
WHERE r.id = c.id;
|
||||
@@ -0,0 +1,49 @@
|
||||
-- Puts letters back into their resumes, for app versions that still show cover letters inside a resume. Run it by
|
||||
-- hand before downgrading. Only letters saved from a resume's own section come back (their style names that
|
||||
-- section); library letters stay in the library, where older versions list them too. Each letter returns as a
|
||||
-- cover-letter section at the end of its resume's first page (one section per resume per run: run it again for a
|
||||
-- resume that had several). The letters themselves are kept.
|
||||
WITH returning_letters AS (
|
||||
SELECT
|
||||
c."source_resume_id" AS resume_id,
|
||||
c."style"->>'sectionId' AS section_id,
|
||||
jsonb_agg(
|
||||
jsonb_build_object(
|
||||
'id', c."style"->>'itemId',
|
||||
'hidden', false,
|
||||
'recipient', c."recipient",
|
||||
'content', c."content"
|
||||
)
|
||||
ORDER BY c."created_at"
|
||||
) AS items
|
||||
FROM "cover_letter" c
|
||||
WHERE c."source_resume_id" IS NOT NULL
|
||||
AND c."trashed_at" IS NULL
|
||||
AND c."style"->>'sectionId' IS NOT NULL
|
||||
AND c."style"->>'sectionId' <> 'library-cover-letter'
|
||||
GROUP BY c."source_resume_id", c."style"->>'sectionId'
|
||||
)
|
||||
UPDATE "resume" r
|
||||
SET "data" = jsonb_set(
|
||||
jsonb_set(
|
||||
r.data,
|
||||
'{customSections}',
|
||||
coalesce(r.data->'customSections', '[]'::jsonb) || jsonb_build_array(jsonb_build_object(
|
||||
'id', l.section_id,
|
||||
'type', 'cover-letter',
|
||||
'title', '',
|
||||
'icon', 'envelope-simple',
|
||||
'columns', 1,
|
||||
'hidden', false,
|
||||
'keepTogether', false,
|
||||
'startOnNewPage', false,
|
||||
'items', l.items
|
||||
))
|
||||
),
|
||||
'{metadata,layout,pages,0,main}',
|
||||
coalesce(r.data#>'{metadata,layout,pages,0,main}', '[]'::jsonb) || to_jsonb(l.section_id)
|
||||
)
|
||||
FROM returning_letters l
|
||||
WHERE r.id = l.resume_id
|
||||
AND jsonb_typeof(r.data#>'{metadata,layout,pages,0}') = 'object'
|
||||
AND NOT (coalesce(r.data->'customSections', '[]'::jsonb) @> jsonb_build_array(jsonb_build_object('id', l.section_id)));
|
||||
File diff suppressed because it is too large
Load Diff
@@ -114,15 +114,6 @@ export const coverLetterDto = {
|
||||
refreshStyle: { input: revisionSchema.extend({ resumeId: z.string().min(1) }), output: coverLetterSchema },
|
||||
duplicate: { input: idSchema.extend({ name: editableSchema.shape.name.optional() }), output: coverLetterSchema },
|
||||
delete: { input: revisionSchema, output: z.void() },
|
||||
copyEmbedded: {
|
||||
input: z.object({
|
||||
resumeId: z.string().min(1),
|
||||
sectionId: z.string().min(1),
|
||||
itemId: z.string().min(1),
|
||||
name: editableSchema.shape.name.optional(),
|
||||
}),
|
||||
output: coverLetterSchema,
|
||||
},
|
||||
export: { input: idSchema, output: coverLetterDocumentSchema },
|
||||
import: { input: z.object({ document: coverLetterDocumentSchema }), output: coverLetterSchema },
|
||||
};
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
import type { db } from "@reactive-resume/db/client";
|
||||
import type { ResumeData } from "@reactive-resume/schema/resume/data";
|
||||
import { and, eq, inArray, sql } from "drizzle-orm";
|
||||
import * as schema from "@reactive-resume/db/schema";
|
||||
import { copyCoverLetterStyle, detachEmbeddedLetters } from "@reactive-resume/resume/cover-letter";
|
||||
import { coverLetterSchema } from "@reactive-resume/schema/cover-letter/data";
|
||||
import { sanitizeCoverLetterHtml } from "./html";
|
||||
import { writeLetterVersion } from "./versions";
|
||||
|
||||
type DbOrTx = typeof db | Parameters<Parameters<typeof db.transaction>[0]>[0];
|
||||
|
||||
/**
|
||||
* Letters are documents of their own. Older app versions, API clients, imported files and restored versions can
|
||||
* still hand the server a resume with cover-letter sections; each resume write passes through here first, so those
|
||||
* letters become saved letters (linked to the resume's details and design, as they read inside it) and the resume
|
||||
* keeps none. Run it in the transaction that writes the resume, so the letters and the resume save together.
|
||||
*
|
||||
* A letter already saved from the same item with the same text isn't saved twice, so a client that keeps sending
|
||||
* the section creates one letter. Mutates `data`.
|
||||
*/
|
||||
export async function adoptEmbeddedLetters(
|
||||
client: DbOrTx,
|
||||
input: { userId: string; resumeId: string; resumeName: string; data: ResumeData },
|
||||
) {
|
||||
const style = (sectionId: string, itemId: string) => copyCoverLetterStyle(input.data, sectionId, itemId);
|
||||
const letters = detachEmbeddedLetters(input.data);
|
||||
if (letters.length === 0) return;
|
||||
|
||||
const existing = await client
|
||||
.select({ itemId: sql<string>`${schema.coverLetter.style}->>'itemId'`, content: schema.coverLetter.content })
|
||||
.from(schema.coverLetter)
|
||||
.where(
|
||||
and(
|
||||
eq(schema.coverLetter.userId, input.userId),
|
||||
eq(schema.coverLetter.sourceResumeId, input.resumeId),
|
||||
inArray(
|
||||
sql`${schema.coverLetter.style}->>'itemId'`,
|
||||
letters.map((letter) => letter.itemId),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
for (const letter of letters) {
|
||||
const content = sanitizeCoverLetterHtml(letter.content);
|
||||
// Letters the migration moved are stored as they were written, so both sides are compared cleaned.
|
||||
if (existing.some((row) => row.itemId === letter.itemId && sanitizeCoverLetterHtml(row.content) === content))
|
||||
continue;
|
||||
|
||||
const name = `${input.resumeName.trim() || "Resume"} — ${letter.title.trim() || "Cover letter"}`.slice(0, 100);
|
||||
const [row] = await client
|
||||
.insert(schema.coverLetter)
|
||||
.values({
|
||||
userId: input.userId,
|
||||
name,
|
||||
recipient: sanitizeCoverLetterHtml(letter.recipient),
|
||||
content,
|
||||
style: style(letter.sectionId, letter.itemId),
|
||||
layout: "freeform",
|
||||
sourceResumeId: input.resumeId,
|
||||
senderLinked: true,
|
||||
designLinked: true,
|
||||
})
|
||||
.returning();
|
||||
if (row)
|
||||
await writeLetterVersion(client, { letter: coverLetterSchema.parse(row), userId: input.userId, kind: "created" });
|
||||
}
|
||||
}
|
||||
@@ -101,19 +101,6 @@ export const coverLettersRouter = {
|
||||
.input(coverLetterDto.delete.input)
|
||||
.output(coverLetterDto.delete.output)
|
||||
.handler(({ context, input }) => coverLetterService.delete({ ...input, userId: context.user.id })),
|
||||
copyEmbedded: protectedProcedure
|
||||
.route({
|
||||
method: "POST",
|
||||
path: "/cover-letters/from-resume",
|
||||
tags: ["Cover Letters"],
|
||||
operationId: "copyEmbeddedCoverLetter",
|
||||
summary: "Copy an embedded cover letter",
|
||||
description: "Creates a saved cover letter by copying an embedded cover-letter item from a resume.",
|
||||
successDescription: "The newly created cover letter.",
|
||||
})
|
||||
.input(coverLetterDto.copyEmbedded.input)
|
||||
.output(coverLetterDto.copyEmbedded.output)
|
||||
.handler(({ context, input }) => coverLetterService.copyEmbedded({ ...input, userId: context.user.id })),
|
||||
export: protectedProcedure
|
||||
.route({
|
||||
method: "GET",
|
||||
|
||||
@@ -113,9 +113,11 @@ describe.skipIf(!process.env.COVER_LETTER_TEST_DATABASE_URL)("cover-letter owned
|
||||
expect(results.find((result) => result.status === "rejected")).toMatchObject({ reason: { code: "CONFLICT" } });
|
||||
});
|
||||
|
||||
it("copies an embedded letter without modifying the source and keeps targeted style identifiers", async () => {
|
||||
const source = structuredClone(defaultResumeData);
|
||||
source.customSections = [
|
||||
it("saves letters a resume still carries as linked letters, once, and leaves the resume without them", async () => {
|
||||
const { adoptEmbeddedLetters } = await import("./embedded");
|
||||
const data = structuredClone(defaultResumeData);
|
||||
data.basics.name = "Alice Sender";
|
||||
data.customSections = [
|
||||
{
|
||||
id: "embedded",
|
||||
title: "Embedded Letter",
|
||||
@@ -125,27 +127,45 @@ describe.skipIf(!process.env.COVER_LETTER_TEST_DATABASE_URL)("cover-letter owned
|
||||
hidden: true,
|
||||
keepTogether: false,
|
||||
startOnNewPage: false,
|
||||
items: [{ id: "embedded-item", hidden: true, recipient: "Recipient", content: "<p>Original</p>" }],
|
||||
items: [{ id: "embedded-item", hidden: true, recipient: "<p>Recipient</p>", content: "<p>Original</p>" }],
|
||||
},
|
||||
];
|
||||
await getPool().query("UPDATE resume SET data=$1 WHERE id='alice-resume'", [source]);
|
||||
const copy = await service.copyEmbedded({
|
||||
userId: "alice",
|
||||
resumeId: "alice-resume",
|
||||
sectionId: "embedded",
|
||||
itemId: "embedded-item",
|
||||
});
|
||||
expect(copy).toMatchObject({
|
||||
name: "Embedded Letter",
|
||||
data.metadata.layout.pages = [{ fullWidth: true, main: ["experience", "embedded"], sidebar: [] }];
|
||||
const adopt = (input: typeof data) =>
|
||||
adoptEmbeddedLetters(fixture.db as never, {
|
||||
userId: "alice",
|
||||
resumeId: "alice-resume",
|
||||
resumeName: "Frontend",
|
||||
data: input,
|
||||
});
|
||||
|
||||
const again = structuredClone(data);
|
||||
await adopt(data);
|
||||
expect(data.customSections).toEqual([]);
|
||||
expect(data.metadata.layout.pages).toEqual([{ fullWidth: true, main: ["experience"], sidebar: [] }]);
|
||||
|
||||
const letters = await service.list({ userId: "alice", limit: 20, offset: 0 });
|
||||
expect(letters.items).toHaveLength(1);
|
||||
const [letter] = letters.items;
|
||||
if (!letter) throw new Error("Missing letter.");
|
||||
expect(letter).toMatchObject({
|
||||
name: "Frontend — Embedded Letter",
|
||||
recipient: "<p>Recipient</p>",
|
||||
content: "<p>Original</p>",
|
||||
layout: "freeform",
|
||||
sourceResumeId: "alice-resume",
|
||||
senderLinked: true,
|
||||
designLinked: true,
|
||||
style: { sectionId: "embedded", itemId: "embedded-item" },
|
||||
});
|
||||
await service.update({ userId: "alice", id: copy.id, expectedRevision: 1, content: "Changed independently" });
|
||||
const result = await getPool().query("SELECT data FROM resume WHERE id='alice-resume'");
|
||||
expect(result.rows[0].data).toEqual(source);
|
||||
await expect(
|
||||
service.copyEmbedded({ userId: "bob", resumeId: "alice-resume", sectionId: "embedded", itemId: "embedded-item" }),
|
||||
).rejects.toMatchObject({ code: "NOT_FOUND" });
|
||||
const versions = await getPool().query("SELECT kind FROM cover_letter_version WHERE cover_letter_id=$1", [
|
||||
letter.id,
|
||||
]);
|
||||
expect(versions.rows).toEqual([{ kind: "created" }]);
|
||||
|
||||
// The same section sent again (an older tab still open) doesn't save a second letter.
|
||||
await adopt(again);
|
||||
expect((await service.list({ userId: "alice", limit: 20, offset: 0 })).items).toHaveLength(1);
|
||||
});
|
||||
|
||||
it("isolates every read, mutation, export and context selection by account", async () => {
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
coverLetterDocumentSchema,
|
||||
coverLetterSchema,
|
||||
} from "@reactive-resume/schema/cover-letter/data";
|
||||
import { coverLetterItemSchema, resumeDataSchema } from "@reactive-resume/schema/resume/data";
|
||||
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
|
||||
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
|
||||
import { resumeService } from "../resume/service";
|
||||
import { sanitizeCoverLetterHtml } from "./html";
|
||||
@@ -350,28 +350,6 @@ export const coverLetterService = {
|
||||
await assertUnlocked(input);
|
||||
throw new ORPCError("CONFLICT", { message: "This cover letter changed elsewhere. Reload it before deleting." });
|
||||
},
|
||||
copyEmbedded: async (input: {
|
||||
userId: string;
|
||||
resumeId: string;
|
||||
sectionId: string;
|
||||
itemId: string;
|
||||
name?: string | undefined;
|
||||
}) => {
|
||||
const resume = await resumeService.getById({ userId: input.userId, id: input.resumeId });
|
||||
const data = resumeDataSchema.parse(resume.data);
|
||||
const section = data.customSections.find((item) => item.id === input.sectionId && item.type === "cover-letter");
|
||||
const item = section?.items.find((entry) => entry.id === input.itemId);
|
||||
if (!item) throw new ORPCError("NOT_FOUND");
|
||||
const letter = coverLetterItemSchema.parse(item);
|
||||
return insert({
|
||||
userId: input.userId,
|
||||
name: input.name ?? (section?.title || "Cover Letter").slice(0, 100),
|
||||
recipient: letter.recipient,
|
||||
content: letter.content,
|
||||
style: copyCoverLetterStyle(data, input.sectionId, input.itemId),
|
||||
sourceResumeId: input.resumeId,
|
||||
});
|
||||
},
|
||||
export: async (input: OwnedId): Promise<CoverLetterDocument> => {
|
||||
const letter = await getById(input);
|
||||
return coverLetterDocumentSchema.parse({ ...letter, format: "reactive-resume-cover-letter", version: 1 });
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import type { ResumeExportTarget } from "@reactive-resume/resume/export-sections";
|
||||
import { ORPCError } from "@orpc/server";
|
||||
import z from "zod";
|
||||
import { getResumeExportData, resumeHasCoverLetter } from "@reactive-resume/resume/export-sections";
|
||||
import { generateFilename } from "@reactive-resume/utils/file";
|
||||
import { protectedProcedure } from "../../context";
|
||||
import { pdfExportRateLimit } from "../../middleware/rate-limit";
|
||||
@@ -17,25 +15,19 @@ export {
|
||||
type CreateResumePdfDownloadInput = {
|
||||
id: string;
|
||||
userId: string;
|
||||
target?: ResumeExportTarget;
|
||||
};
|
||||
|
||||
export async function createResumePdfDownload(input: CreateResumePdfDownloadInput) {
|
||||
const resume = await resumeService.getById({ id: input.id, userId: input.userId });
|
||||
const data = parseStoredResumeData(resume.data);
|
||||
const target = input.target ?? "resume";
|
||||
if (target === "cover-letter" && !resumeHasCoverLetter(data)) {
|
||||
throw new ORPCError("NOT_FOUND", { message: "No cover letter found for this resume" });
|
||||
}
|
||||
|
||||
const filename = generateFilename(target === "cover-letter" ? `${resume.name} Cover Letter` : resume.name, "pdf");
|
||||
const filename = generateFilename(resume.name, "pdf");
|
||||
|
||||
try {
|
||||
// Lazy-load the PDF renderer (@reactive-resume/pdf → the Forme WASM engine and
|
||||
// the icon drawings) only when a PDF is actually exported, instead of at server
|
||||
// boot. Keeps cold starts light on constrained/slow-disk hosts.
|
||||
const { createResumePdfFile } = await import("@reactive-resume/pdf/server");
|
||||
const body = await createResumePdfFile({ data: getResumeExportData(data, target), filename });
|
||||
const body = await createResumePdfFile({ data, filename });
|
||||
|
||||
return {
|
||||
headers: {
|
||||
@@ -64,7 +56,10 @@ export const downloadResumePdfProcedure = protectedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
id: z.string().describe("The ID of the resume."),
|
||||
target: z.enum(["resume", "cover-letter"]).optional().describe("Which document to download."),
|
||||
target: z
|
||||
.literal("resume")
|
||||
.optional()
|
||||
.describe("Deprecated, only `resume`: cover letters are documents of their own (`/cover-letters`)."),
|
||||
}),
|
||||
)
|
||||
.output(
|
||||
@@ -76,10 +71,4 @@ export const downloadResumePdfProcedure = protectedProcedure
|
||||
}),
|
||||
)
|
||||
.use(pdfExportRateLimit)
|
||||
.handler(({ context, input }) =>
|
||||
createResumePdfDownload({
|
||||
id: input.id,
|
||||
userId: context.user.id,
|
||||
...(input.target ? { target: input.target } : {}),
|
||||
}),
|
||||
);
|
||||
.handler(({ context, input }) => createResumePdfDownload({ id: input.id, userId: context.user.id }));
|
||||
|
||||
@@ -44,32 +44,10 @@ describe("resume PDF signed download URLs", () => {
|
||||
ok: true,
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "resume",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
});
|
||||
});
|
||||
|
||||
it("binds the cover letter target to the signed token", () => {
|
||||
const result = createResumePdfDownloadUrl({
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "cover-letter",
|
||||
now: new Date("2026-06-01T10:00:00.000Z"),
|
||||
});
|
||||
const url = new URL(result.url);
|
||||
const token = url.searchParams.get("token");
|
||||
|
||||
expect(url.searchParams.get("target")).toBe("cover-letter");
|
||||
if (!token) throw new Error("Expected signed URL token");
|
||||
expect(
|
||||
verifyResumePdfDownloadToken({
|
||||
resumeId: "resume-1",
|
||||
token,
|
||||
now: new Date("2026-06-01T10:01:00.000Z"),
|
||||
}),
|
||||
).toMatchObject({ ok: true, target: "cover-letter" });
|
||||
});
|
||||
|
||||
it("accepts still-valid legacy tokens without a target", () => {
|
||||
const payload = Buffer.from(
|
||||
JSON.stringify({
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { ResumeExportTarget } from "@reactive-resume/resume/export-sections";
|
||||
import { createHmac, timingSafeEqual } from "node:crypto";
|
||||
import { env } from "@reactive-resume/env/server";
|
||||
|
||||
@@ -8,7 +7,6 @@ type PdfDownloadTokenPayload = {
|
||||
v: 1;
|
||||
resumeId: string;
|
||||
userId: string;
|
||||
target?: ResumeExportTarget;
|
||||
expiresAt: number;
|
||||
issuedAt: number;
|
||||
};
|
||||
@@ -17,7 +15,6 @@ type CreateResumePdfDownloadUrlInput = {
|
||||
resumeId: string;
|
||||
userId: string;
|
||||
now?: Date;
|
||||
target?: ResumeExportTarget;
|
||||
ttlSeconds?: number;
|
||||
};
|
||||
|
||||
@@ -32,7 +29,6 @@ type VerifyResumePdfDownloadTokenResult =
|
||||
ok: true;
|
||||
resumeId: string;
|
||||
userId: string;
|
||||
target?: ResumeExportTarget;
|
||||
expiresAt: string;
|
||||
}
|
||||
| {
|
||||
@@ -71,7 +67,6 @@ function parsePayload(value: unknown): PdfDownloadTokenPayload | null {
|
||||
if (payload.v !== 1) return null;
|
||||
if (typeof payload.resumeId !== "string" || payload.resumeId.length === 0) return null;
|
||||
if (typeof payload.userId !== "string" || payload.userId.length === 0) return null;
|
||||
if (payload.target !== undefined && payload.target !== "resume" && payload.target !== "cover-letter") return null;
|
||||
if (typeof payload.expiresAt !== "number" || !Number.isFinite(payload.expiresAt)) return null;
|
||||
if (typeof payload.issuedAt !== "number" || !Number.isFinite(payload.issuedAt)) return null;
|
||||
|
||||
@@ -82,7 +77,6 @@ export function createResumePdfDownloadUrl({
|
||||
resumeId,
|
||||
userId,
|
||||
now = new Date(),
|
||||
target,
|
||||
ttlSeconds,
|
||||
}: CreateResumePdfDownloadUrlInput) {
|
||||
const expiresInSeconds = resolveTtlSeconds(ttlSeconds);
|
||||
@@ -91,14 +85,12 @@ export function createResumePdfDownloadUrl({
|
||||
v: 1,
|
||||
resumeId,
|
||||
userId,
|
||||
target: target ?? "resume",
|
||||
expiresAt: expiresAt.getTime(),
|
||||
issuedAt: now.getTime(),
|
||||
} satisfies PdfDownloadTokenPayload);
|
||||
const token = `${payload}.${sign(payload)}`;
|
||||
const url = new URL(`/api/resumes/${encodeURIComponent(resumeId)}/pdf`, env.APP_URL);
|
||||
url.searchParams.set("token", token);
|
||||
if (target) url.searchParams.set("target", target);
|
||||
|
||||
return {
|
||||
url: url.toString(),
|
||||
@@ -126,7 +118,6 @@ export function verifyResumePdfDownloadToken({
|
||||
ok: true,
|
||||
resumeId: parsed.resumeId,
|
||||
userId: parsed.userId,
|
||||
...(parsed.target ? { target: parsed.target } : {}),
|
||||
expiresAt: new Date(parsed.expiresAt).toISOString(),
|
||||
};
|
||||
} catch {
|
||||
|
||||
@@ -20,6 +20,7 @@ const grantResumeAccessMock = vi.hoisted(() => vi.fn());
|
||||
const hasResumeAccessMock = vi.hoisted(() => vi.fn());
|
||||
const storageDeleteMock = vi.hoisted(() => vi.fn());
|
||||
|
||||
vi.mock("../cover-letters/embedded", () => ({ adoptEmbeddedLetters: vi.fn(async () => undefined) }));
|
||||
vi.mock("@reactive-resume/db/client", () => ({ db: dbMock }));
|
||||
vi.mock("@reactive-resume/db/schema", () => ({
|
||||
resume: {
|
||||
@@ -252,6 +253,11 @@ it("imports", () => {
|
||||
});
|
||||
|
||||
describe("create", () => {
|
||||
// The resume and any letters it carried save in one transaction.
|
||||
beforeEach(() => {
|
||||
dbMock.transaction.mockImplementation(async (callback: (tx: unknown) => Promise<unknown>) => callback(dbMock));
|
||||
});
|
||||
|
||||
it("rejects out-of-range values before creating any record", async () => {
|
||||
const data = structuredClone(defaultResumeData);
|
||||
data.metadata.page.marginX = 500;
|
||||
@@ -333,6 +339,11 @@ describe("create", () => {
|
||||
});
|
||||
|
||||
describe("create", () => {
|
||||
// The resume and any letters it carried save in one transaction.
|
||||
beforeEach(() => {
|
||||
dbMock.transaction.mockImplementation(async (callback: (tx: unknown) => Promise<unknown>) => callback(dbMock));
|
||||
});
|
||||
|
||||
it("generates a unique slug from the name and starts History with the document's origin", async () => {
|
||||
const values = vi.fn((_input: unknown) => Promise.resolve());
|
||||
dbMock.insert.mockReturnValueOnce({ values });
|
||||
|
||||
@@ -9,9 +9,11 @@ import { get } from "es-toolkit/compat";
|
||||
import { match } from "ts-pattern";
|
||||
import { db } from "@reactive-resume/db/client";
|
||||
import * as schema from "@reactive-resume/db/schema";
|
||||
import { detachEmbeddedLetters } from "@reactive-resume/resume/cover-letter";
|
||||
import { applyResumePatches, ResumePatchError } from "@reactive-resume/resume/patch";
|
||||
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
|
||||
import { generateId } from "@reactive-resume/utils/string";
|
||||
import { adoptEmbeddedLetters } from "../cover-letters/embedded";
|
||||
import { getStorageService } from "../storage/service";
|
||||
import { grantResumeAccess, hasResumeAccess } from "./access";
|
||||
import { assertCanView, isOwner, redactResumeForViewer, shouldCountForStatistics } from "./access-policy";
|
||||
@@ -81,6 +83,7 @@ async function applyResumePatchTx(
|
||||
) {
|
||||
const [existing] = await client
|
||||
.select({
|
||||
name: schema.resume.name,
|
||||
data: schema.resume.data,
|
||||
isLocked: schema.resume.isLocked,
|
||||
updatedAt: schema.resume.updatedAt,
|
||||
@@ -118,6 +121,12 @@ async function applyResumePatchTx(
|
||||
}
|
||||
|
||||
patchedData = parseWritableResumeData(patchedData);
|
||||
await adoptEmbeddedLetters(client, {
|
||||
userId: input.userId,
|
||||
resumeId: input.id,
|
||||
resumeName: existing.name,
|
||||
data: patchedData,
|
||||
});
|
||||
// The version guard is the ms-precision JS check above, under the SELECT ... FOR UPDATE lock.
|
||||
// Never compare expectedUpdatedAt in SQL: rows stamped by Postgres now() (defaultNow() on
|
||||
// insert) carry microseconds, while JS Dates are ms-truncated — SQL equality then matches
|
||||
@@ -528,14 +537,20 @@ export const resumeService = {
|
||||
|
||||
try {
|
||||
const slug = input.slug ?? (await findFreeSlug(db, input.userId, input.name));
|
||||
await db.insert(schema.resume).values({
|
||||
id,
|
||||
name: input.name,
|
||||
autoName: input.autoName ?? false,
|
||||
slug,
|
||||
tags: input.tags,
|
||||
userId: input.userId,
|
||||
data,
|
||||
await db.transaction(async (tx) => {
|
||||
// The resume row comes first: letters an imported file carried are saved linked to it.
|
||||
const stored = structuredClone(data);
|
||||
detachEmbeddedLetters(stored);
|
||||
await tx.insert(schema.resume).values({
|
||||
id,
|
||||
name: input.name,
|
||||
autoName: input.autoName ?? false,
|
||||
slug,
|
||||
tags: input.tags,
|
||||
userId: input.userId,
|
||||
data: stored,
|
||||
});
|
||||
await adoptEmbeddedLetters(tx, { userId: input.userId, resumeId: id, resumeName: input.name, data });
|
||||
});
|
||||
|
||||
// History is never empty: its first entry is where the document came from (best effort).
|
||||
@@ -581,6 +596,7 @@ export const resumeService = {
|
||||
.transaction(async (tx) => {
|
||||
const [existing] = await tx
|
||||
.select({
|
||||
name: schema.resume.name,
|
||||
data: schema.resume.data,
|
||||
slug: schema.resume.slug,
|
||||
isLocked: schema.resume.isLocked,
|
||||
@@ -608,6 +624,13 @@ export const resumeService = {
|
||||
}
|
||||
|
||||
const normalizedData = input.data ? parseWritableResumeData(input.data) : undefined;
|
||||
if (normalizedData)
|
||||
await adoptEmbeddedLetters(tx, {
|
||||
userId: input.userId,
|
||||
resumeId: input.id,
|
||||
resumeName: input.name ?? existing.name,
|
||||
data: normalizedData,
|
||||
});
|
||||
// A blank resume is named after its headline until someone names it by hand.
|
||||
const followedName =
|
||||
existing.autoName && input.name === undefined && normalizedData
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
"@reactive-resume/ai": "workspace:*",
|
||||
"@reactive-resume/api": "workspace:*",
|
||||
"@reactive-resume/env": "workspace:*",
|
||||
"@reactive-resume/resume": "workspace:*",
|
||||
"@reactive-resume/schema": "workspace:*",
|
||||
"zod": "^4.6.5"
|
||||
},
|
||||
|
||||
@@ -40,8 +40,7 @@ describe("buildMcpServerCard", () => {
|
||||
expect(tool?.description).toContain("short-lived");
|
||||
expect(tool?.description).toContain("10 minutes");
|
||||
expect(tool?.annotations?.readOnlyHint).toBe(true);
|
||||
const properties = tool?.inputSchema.properties as Record<string, { enum?: string[]; default?: string }>;
|
||||
expect(properties.target).toMatchObject({ enum: ["resume", "cover-letter"], default: "resume" });
|
||||
expect(tool?.inputSchema.properties).not.toHaveProperty("target");
|
||||
});
|
||||
|
||||
it("advertises application tracker tools", () => {
|
||||
@@ -64,7 +63,6 @@ describe("buildMcpServerCard", () => {
|
||||
"refresh_cover_letter_style",
|
||||
"duplicate_cover_letter",
|
||||
"delete_cover_letter",
|
||||
"copy_embedded_cover_letter",
|
||||
"export_cover_letter",
|
||||
"import_cover_letter",
|
||||
]),
|
||||
|
||||
@@ -20,7 +20,6 @@ export const MCP_TOOL_NAME = {
|
||||
refreshCoverLetterStyle: "refresh_cover_letter_style",
|
||||
duplicateCoverLetter: "duplicate_cover_letter",
|
||||
deleteCoverLetter: "delete_cover_letter",
|
||||
copyEmbeddedCoverLetter: "copy_embedded_cover_letter",
|
||||
exportCoverLetter: "export_cover_letter",
|
||||
importCoverLetter: "import_cover_letter",
|
||||
listApplications: "list_applications",
|
||||
|
||||
@@ -94,7 +94,6 @@ describe("tool annotations", () => {
|
||||
MCP_TOOL_NAME.draftApplicationMessage,
|
||||
MCP_TOOL_NAME.createCoverLetter,
|
||||
MCP_TOOL_NAME.duplicateCoverLetter,
|
||||
MCP_TOOL_NAME.copyEmbeddedCoverLetter,
|
||||
MCP_TOOL_NAME.importCoverLetter,
|
||||
]) {
|
||||
const annotations = TOOL_META[name].annotations;
|
||||
|
||||
@@ -214,20 +214,13 @@ export const TOOL_META = {
|
||||
[T.downloadResumePdf]: {
|
||||
title: "Download Resume PDF",
|
||||
description: [
|
||||
"Create a short-lived authenticated URL for downloading a resume or its visible cover letter as a PDF.",
|
||||
"Create a short-lived authenticated URL for downloading a resume as a PDF.",
|
||||
"The URL expires in 10 minutes and should be used immediately.",
|
||||
"Set target to `cover-letter` to export the visible cover letter separately; omit it (or use `resume`) for the resume.",
|
||||
"Returns JSON containing: resumeId, target, name, downloadUrl, expiresAt, expiresInSeconds, contentType.",
|
||||
"Cover letters are documents of their own: use the cover-letter tools for them.",
|
||||
"Returns JSON containing: resumeId, name, downloadUrl, expiresAt, expiresInSeconds, contentType.",
|
||||
`Use \`${T.listResumes}\` first to find valid IDs.`,
|
||||
].join("\n"),
|
||||
inputSchema: z.object({
|
||||
id: resumeIdSchema,
|
||||
target: z
|
||||
.enum(["resume", "cover-letter"])
|
||||
.optional()
|
||||
.default("resume")
|
||||
.describe("Document to export. Default: resume."),
|
||||
}),
|
||||
inputSchema: z.object({ id: resumeIdSchema }),
|
||||
annotations: READ_NON_IDEMPOTENT,
|
||||
},
|
||||
[T.createResume]: {
|
||||
@@ -398,7 +391,7 @@ export const TOOL_META = {
|
||||
title: "List Cover Letters",
|
||||
description: [
|
||||
"List independent cover letters in the account's cover-letter library.",
|
||||
"These are separate from cover-letter sections embedded in resumes.",
|
||||
"Letters are documents of their own, never part of a resume; attach one to an application with `coverLetterId`.",
|
||||
"Use this before other independent cover-letter tools to discover IDs.",
|
||||
].join("\n"),
|
||||
inputSchema: z.object({
|
||||
@@ -414,7 +407,6 @@ export const TOOL_META = {
|
||||
title: "Read Cover Letter",
|
||||
description: [
|
||||
"Read one independent cover letter from the cover-letter library.",
|
||||
"This does not read a cover-letter section embedded in a resume.",
|
||||
`Use \`${T.listCoverLetters}\` first to find valid IDs.`,
|
||||
].join("\n"),
|
||||
inputSchema: z.object({ id: coverLetterIdSchema }),
|
||||
@@ -424,7 +416,7 @@ export const TOOL_META = {
|
||||
title: "Create Cover Letter",
|
||||
description: [
|
||||
"Create an independent cover letter in the cover-letter library.",
|
||||
"Optionally associate it with a resume or application; this does not add an embedded section to a resume.",
|
||||
"Optionally link it to a resume (for its sender details and design) or an application.",
|
||||
].join("\n"),
|
||||
inputSchema: z.object({
|
||||
...coverLetterEditableFieldsSchema,
|
||||
@@ -474,7 +466,6 @@ export const TOOL_META = {
|
||||
description: [
|
||||
"Refresh an independent cover letter's sender styling from a resume while preserving its content and template.",
|
||||
"Pass the latest `revision` as `expectedRevision` to prevent stale concurrent writes.",
|
||||
"This updates the independent letter; it does not modify the embedded cover letter in the resume.",
|
||||
].join("\n"),
|
||||
inputSchema: z.object({
|
||||
id: coverLetterIdSchema,
|
||||
@@ -487,7 +478,7 @@ export const TOOL_META = {
|
||||
title: "Duplicate Cover Letter",
|
||||
description: [
|
||||
"Create an independent copy of a cover letter in the library.",
|
||||
"The copy is separate from the original and from any embedded resume cover letter.",
|
||||
"The copy is separate from the original.",
|
||||
].join("\n"),
|
||||
inputSchema: z.object({ id: coverLetterIdSchema, name: z.string().min(1).max(100).optional() }),
|
||||
annotations: WRITE_NON_IDEMPOTENT,
|
||||
@@ -496,31 +487,16 @@ export const TOOL_META = {
|
||||
title: "Delete Cover Letter",
|
||||
description: [
|
||||
"Move an independent cover letter to Trash, where it stays for 30 days before it's deleted.",
|
||||
"Pass the latest `revision` as `expectedRevision`; this does not delete embedded cover-letter sections.",
|
||||
"Pass the latest `revision` as `expectedRevision`.",
|
||||
].join("\n"),
|
||||
inputSchema: z.object({ id: coverLetterIdSchema, expectedRevision: expectedRevisionSchema }),
|
||||
annotations: { ...WRITE_DESTRUCTIVE, openWorldHint: true },
|
||||
},
|
||||
[T.copyEmbeddedCoverLetter]: {
|
||||
title: "Copy Embedded Cover Letter",
|
||||
description: [
|
||||
"Copy a cover-letter item embedded in a resume into the independent cover-letter library.",
|
||||
"The embedded item remains in the resume; the returned letter is a new independent library record.",
|
||||
].join("\n"),
|
||||
inputSchema: z.object({
|
||||
resumeId: z.string().min(1).describe("Resume containing the embedded cover letter."),
|
||||
sectionId: z.string().min(1).describe("Embedded cover-letter section ID."),
|
||||
itemId: z.string().min(1).describe("Embedded cover-letter item ID."),
|
||||
name: z.string().min(1).max(100).optional().describe("Optional name for the independent copy."),
|
||||
}),
|
||||
annotations: WRITE_NON_IDEMPOTENT,
|
||||
},
|
||||
[T.exportCoverLetter]: {
|
||||
title: "Export Cover Letter",
|
||||
description: [
|
||||
"Export an independent library cover letter as versioned Reactive Resume cover-letter JSON.",
|
||||
"This is not a full resume export and does not export an embedded cover letter directly.",
|
||||
].join("\n"),
|
||||
description: ["Export an independent library cover letter as versioned Reactive Resume cover-letter JSON."].join(
|
||||
"\n",
|
||||
),
|
||||
inputSchema: z.object({ id: coverLetterIdSchema }),
|
||||
annotations: READ_IDEMPOTENT,
|
||||
},
|
||||
|
||||
@@ -129,14 +129,9 @@ describe("registerTools", () => {
|
||||
expect(tool.config.title).toBe("Download Resume PDF");
|
||||
expect(clientMock.resume.getById).toHaveBeenCalledWith({ id: "resume-1" });
|
||||
expect(mocks.resolveUserFromRequestHeaders).toHaveBeenCalledWith(requestHeaders);
|
||||
expect(mocks.createResumePdfDownloadUrl).toHaveBeenCalledWith({
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "resume",
|
||||
});
|
||||
expect(mocks.createResumePdfDownloadUrl).toHaveBeenCalledWith({ resumeId: "resume-1", userId: "user-1" });
|
||||
expect(payload).toEqual({
|
||||
resumeId: "resume-1",
|
||||
target: "resume",
|
||||
name: "Scizor",
|
||||
downloadUrl: "https://example.com/api/resumes/resume-1/pdf?token=signed",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
@@ -145,61 +140,6 @@ describe("registerTools", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("creates a cover-letter PDF URL and reports cover-letter metadata", async () => {
|
||||
clientMock.resume.getById.mockResolvedValueOnce({
|
||||
id: "resume-1",
|
||||
name: "Scizor",
|
||||
data: { customSections: [{ type: "cover-letter", hidden: false, items: [{ hidden: false }] }] },
|
||||
});
|
||||
mocks.resolveUserFromRequestHeaders.mockResolvedValueOnce({ id: "user-1" });
|
||||
mocks.createResumePdfDownloadUrl.mockReturnValueOnce({
|
||||
url: "https://example.com/api/resumes/resume-1/pdf?token=signed&target=cover-letter",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
expiresInSeconds: 600,
|
||||
});
|
||||
|
||||
const { server, registered } = makeFakeServer();
|
||||
registerTools(server as never, clientMock as never, new Headers());
|
||||
|
||||
const tool = registered.find((item) => item.name === "download_resume_pdf")!;
|
||||
const result = await tool.handler({ id: "resume-1", target: "cover-letter" });
|
||||
|
||||
expect(mocks.createResumePdfDownloadUrl).toHaveBeenCalledWith({
|
||||
resumeId: "resume-1",
|
||||
userId: "user-1",
|
||||
target: "cover-letter",
|
||||
});
|
||||
expect(JSON.parse(result.content[0]!.text)).toEqual({
|
||||
resumeId: "resume-1",
|
||||
target: "cover-letter",
|
||||
name: "Scizor Cover Letter",
|
||||
downloadUrl: "https://example.com/api/resumes/resume-1/pdf?token=signed&target=cover-letter",
|
||||
expiresAt: "2026-06-01T10:10:00.000Z",
|
||||
expiresInSeconds: 600,
|
||||
contentType: "application/pdf",
|
||||
});
|
||||
});
|
||||
|
||||
for (const [name, data] of [
|
||||
["missing", { customSections: [] }],
|
||||
["hidden", { customSections: [{ type: "cover-letter", hidden: true, items: [{ hidden: false }] }] }],
|
||||
] as const) {
|
||||
it(`does not create a cover-letter URL when the cover letter is ${name}`, async () => {
|
||||
clientMock.resume.getById.mockResolvedValueOnce({ id: "resume-1", name: "Scizor", data });
|
||||
mocks.resolveUserFromRequestHeaders.mockResolvedValueOnce({ id: "user-1" });
|
||||
|
||||
const { server, registered } = makeFakeServer();
|
||||
registerTools(server as never, clientMock as never, new Headers());
|
||||
|
||||
const tool = registered.find((item) => item.name === "download_resume_pdf")!;
|
||||
const result = await tool.handler({ id: "resume-1", target: "cover-letter" });
|
||||
|
||||
expect(result.isError).toBe(true);
|
||||
expect(result.content[0]?.text).toContain("No visible cover letter found for this resume.");
|
||||
expect(mocks.createResumePdfDownloadUrl).not.toHaveBeenCalled();
|
||||
});
|
||||
}
|
||||
|
||||
it("keeps the tool name stable", () => {
|
||||
expect(MCP_TOOL_NAME.downloadResumePdf).toBe("download_resume_pdf");
|
||||
});
|
||||
@@ -231,7 +171,6 @@ describe("registerTools", () => {
|
||||
MCP_TOOL_NAME.refreshCoverLetterStyle,
|
||||
MCP_TOOL_NAME.duplicateCoverLetter,
|
||||
MCP_TOOL_NAME.deleteCoverLetter,
|
||||
MCP_TOOL_NAME.copyEmbeddedCoverLetter,
|
||||
MCP_TOOL_NAME.exportCoverLetter,
|
||||
MCP_TOOL_NAME.importCoverLetter,
|
||||
]),
|
||||
|
||||
+21
-35
@@ -9,7 +9,6 @@ import { ORPCError } from "@orpc/server";
|
||||
import { resolveUserFromRequestHeaders } from "@reactive-resume/api/context";
|
||||
import { createResumePdfDownloadUrl } from "@reactive-resume/api/features/resume/export";
|
||||
import { env } from "@reactive-resume/env/server";
|
||||
import { resumeHasCoverLetter } from "@reactive-resume/resume/export-sections";
|
||||
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
|
||||
import { MCP_TOOL_NAME } from "./mcp-tool-names";
|
||||
import { TOOL_META } from "./tool-meta";
|
||||
@@ -161,40 +160,32 @@ export function registerTools(server: McpServer, client: RouterClient<typeof rou
|
||||
}),
|
||||
);
|
||||
|
||||
// ── Download Resume or Cover Letter PDF ───────────────────────
|
||||
// ── Download Resume PDF ───────────────────────────────────────
|
||||
server.registerTool(
|
||||
T.downloadResumePdf,
|
||||
TOOL_META[T.downloadResumePdf],
|
||||
withErrorHandling(
|
||||
"creating PDF download URL",
|
||||
async ({ id, target }: { id: string; target?: "resume" | "cover-letter" }) => {
|
||||
const resume = await client.resume.getById({ id });
|
||||
const user = await resolveUserFromRequestHeaders(requestHeaders);
|
||||
if (!user) throw new Error("Unauthorized");
|
||||
withErrorHandling("creating PDF download URL", async ({ id }: { id: string }) => {
|
||||
const resume = await client.resume.getById({ id });
|
||||
const user = await resolveUserFromRequestHeaders(requestHeaders);
|
||||
if (!user) throw new Error("Unauthorized");
|
||||
|
||||
const documentTarget = target ?? "resume";
|
||||
if (documentTarget === "cover-letter" && !resumeHasCoverLetter(resume.data))
|
||||
throw new Error("No visible cover letter found for this resume.");
|
||||
const signedUrl = createResumePdfDownloadUrl({ resumeId: id, userId: user.id });
|
||||
|
||||
const signedUrl = createResumePdfDownloadUrl({ resumeId: id, userId: user.id, target: documentTarget });
|
||||
|
||||
return text(
|
||||
JSON.stringify(
|
||||
{
|
||||
resumeId: id,
|
||||
target: documentTarget,
|
||||
name: documentTarget === "cover-letter" ? `${resume.name} Cover Letter` : resume.name,
|
||||
downloadUrl: signedUrl.url,
|
||||
expiresAt: signedUrl.expiresAt,
|
||||
expiresInSeconds: signedUrl.expiresInSeconds,
|
||||
contentType: "application/pdf",
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
return text(
|
||||
JSON.stringify(
|
||||
{
|
||||
resumeId: id,
|
||||
name: resume.name,
|
||||
downloadUrl: signedUrl.url,
|
||||
expiresAt: signedUrl.expiresAt,
|
||||
expiresInSeconds: signedUrl.expiresInSeconds,
|
||||
contentType: "application/pdf",
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
}),
|
||||
);
|
||||
|
||||
// ── Create Resume ─────────────────────────────────────────────
|
||||
@@ -419,11 +410,6 @@ export function registerTools(server: McpServer, client: RouterClient<typeof rou
|
||||
return text(`Deleted cover letter (${(params as { id: string }).id}).`);
|
||||
},
|
||||
],
|
||||
[
|
||||
T.copyEmbeddedCoverLetter,
|
||||
"copying embedded cover letter",
|
||||
async (params) => json(await client.coverLetters.copyEmbedded(params as never)),
|
||||
],
|
||||
[
|
||||
T.exportCoverLetter,
|
||||
"exporting cover letter",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { ResumeData } from "@reactive-resume/schema/resume/data";
|
||||
import type { Template } from "@reactive-resume/schema/templates";
|
||||
import { createSampleResumeData } from "@reactive-resume/schema/resume/sample";
|
||||
|
||||
@@ -17,6 +18,29 @@ resume[template="azurill"] template-part[name="timeline-dot"] { background-color
|
||||
`,
|
||||
} as const;
|
||||
|
||||
/** A cover letter, as resumes carried them and as a letter's own document still renders it. */
|
||||
const LETTER_SECTION: ResumeData["customSections"][number] = {
|
||||
title: "Cover Letter",
|
||||
icon: "envelope-simple",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
showHeading: true,
|
||||
keepTogether: false,
|
||||
startOnNewPage: false,
|
||||
id: "019bef5b-0b3d-7e2a-8a7c-12d9e23a4f6b",
|
||||
type: "cover-letter",
|
||||
items: [
|
||||
{
|
||||
id: "019bef5b-0f8d-77d1-9b2a-4a1b65e1b8aa",
|
||||
hidden: false,
|
||||
recipient:
|
||||
'<p>Hiring Manager<br />Sunrise Games Studio<br />Seattle, WA<br /><a href="mailto:hiring@sunrisegames.com">hiring@sunrisegames.com</a></p>',
|
||||
content:
|
||||
"<p>Dear Hiring Manager,</p><p>I'm excited to apply for the Senior Gameplay Engineer role at Sunrise Games Studio. Over the past five years, I have shipped cross-platform titles in Unity and Unreal Engine, leading core gameplay and tooling efforts that improved iteration speed and player experience. At Cascade Studios, I architected combat systems and optimized performance to maintain 60 FPS on console while partnering closely with design and art.</p><p>I thrive in collaborative, cross-disciplinary teams and enjoy mentoring junior engineers. I'd welcome the chance to bring my gameplay systems expertise and tooling focus to your next title.</p><p>Sincerely,<br />David Kowalski</p>",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export const buildAllTemplatesFixture = (template: Template) => {
|
||||
const data = structuredClone(createSampleResumeData("Semantic CSS Acceptance"));
|
||||
data.summary.content = [
|
||||
@@ -50,6 +74,9 @@ export const buildAllTemplatesFixture = (template: Template) => {
|
||||
for (const certification of data.sections.certifications.items) {
|
||||
certification.description = "<p>Verified certification.</p>";
|
||||
}
|
||||
// Letters render through the same templates, as a cover-letter section; the fixture keeps one to cover it.
|
||||
data.customSections.push(LETTER_SECTION);
|
||||
data.metadata.layout.pages.push({ fullWidth: true, main: [LETTER_SECTION.id], sidebar: [] });
|
||||
data.metadata.template = template;
|
||||
data.metadata.stylesheet = {
|
||||
mode: "semantic",
|
||||
|
||||
@@ -1,25 +1,16 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { copyCoverLetterStyle, createCoverLetterResumeData } from "@reactive-resume/resume/cover-letter";
|
||||
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
|
||||
import { shouldShowResumeHeader } from "./cover-letter";
|
||||
|
||||
const createCoverLetterOnlyData = () => {
|
||||
const data = structuredClone(sampleResumeData);
|
||||
const coverLetter = data.customSections.find((section) => section.type === "cover-letter");
|
||||
|
||||
if (!coverLetter) throw new Error("sample resume must include a cover letter");
|
||||
|
||||
return {
|
||||
...data,
|
||||
customSections: [coverLetter],
|
||||
metadata: {
|
||||
...data.metadata,
|
||||
layout: {
|
||||
...data.metadata.layout,
|
||||
pages: [{ fullWidth: true, main: [coverLetter.id], sidebar: [] }],
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
// A letter's document: resume data with one cover-letter section, as the letter export builds it.
|
||||
const createCoverLetterOnlyData = () =>
|
||||
createCoverLetterResumeData({
|
||||
name: "Cover Letter",
|
||||
recipient: "<p>Hiring Manager</p>",
|
||||
content: "<p>Dear Hiring Manager,</p>",
|
||||
style: copyCoverLetterStyle(sampleResumeData, "letter-section", "letter-item"),
|
||||
});
|
||||
|
||||
describe("shouldShowResumeHeader", () => {
|
||||
it("hides the header when every visible layout section is a cover letter", () => {
|
||||
|
||||
@@ -5,9 +5,43 @@ import {
|
||||
copyCoverLetterStyle,
|
||||
coverLetterTextToHtml,
|
||||
createCoverLetterResumeData,
|
||||
detachEmbeddedLetters,
|
||||
greetingName,
|
||||
} from "./cover-letter";
|
||||
|
||||
describe("detachEmbeddedLetters", () => {
|
||||
it("takes letters out of the resume and its layout, and returns each one", () => {
|
||||
const data = structuredClone(defaultResumeData);
|
||||
const letter = createCoverLetterResumeData({
|
||||
name: "Letter",
|
||||
recipient: "<p>Acme</p>",
|
||||
content: "<p>Hello</p>",
|
||||
style: copyCoverLetterStyle(data, "letters", "letter-1"),
|
||||
}).customSections[0];
|
||||
if (!letter) throw new Error("Missing letter section.");
|
||||
data.customSections = [
|
||||
{ ...letter, items: [...letter.items, { ...letter.items[0], id: "letter-2", hidden: true } as never] },
|
||||
];
|
||||
data.metadata.layout.pages = [
|
||||
{ fullWidth: false, main: ["experience", "letters"], sidebar: ["letters", "skills"] },
|
||||
];
|
||||
|
||||
expect(detachEmbeddedLetters(data)).toEqual([
|
||||
{ sectionId: "letters", itemId: "letter-1", title: "Letter", recipient: "<p>Acme</p>", content: "<p>Hello</p>" },
|
||||
{ sectionId: "letters", itemId: "letter-2", title: "Letter", recipient: "<p>Acme</p>", content: "<p>Hello</p>" },
|
||||
]);
|
||||
expect(data.customSections).toEqual([]);
|
||||
expect(data.metadata.layout.pages).toEqual([{ fullWidth: false, main: ["experience"], sidebar: ["skills"] }]);
|
||||
});
|
||||
|
||||
it("leaves a resume without letters as it is", () => {
|
||||
const data = structuredClone(defaultResumeData);
|
||||
const before = structuredClone(data);
|
||||
expect(detachEmbeddedLetters(data)).toEqual([]);
|
||||
expect(data).toEqual(before);
|
||||
});
|
||||
});
|
||||
|
||||
describe("independent cover letters", () => {
|
||||
it("copies sender and style without linking source mutations or retaining private notes", () => {
|
||||
const source = structuredClone(defaultResumeData);
|
||||
|
||||
@@ -39,6 +39,46 @@ export function createCoverLetterResumeData(
|
||||
return data;
|
||||
}
|
||||
|
||||
/** A cover letter written inside a resume, as older versions of the app stored them. */
|
||||
export type EmbeddedLetter = {
|
||||
sectionId: string;
|
||||
itemId: string;
|
||||
/** The section's title; empty when the template's default title was used. */
|
||||
title: string;
|
||||
recipient: string;
|
||||
content: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Letters are documents of their own; resumes no longer carry them. Takes every cover-letter section out of the
|
||||
* resume (and out of its page layout) and returns the letters it held, so the caller can save them as letters.
|
||||
* Mutates `data` in place; returns no letters, and changes nothing, for a resume without any.
|
||||
*/
|
||||
export function detachEmbeddedLetters(data: ResumeData): EmbeddedLetter[] {
|
||||
const sections = data.customSections.filter((section) => section.type === "cover-letter");
|
||||
if (sections.length === 0) return [];
|
||||
|
||||
const ids = new Set(sections.map((section) => section.id));
|
||||
data.customSections = data.customSections.filter((section) => !ids.has(section.id));
|
||||
for (const page of data.metadata.layout.pages) {
|
||||
page.main = page.main.filter((id) => !ids.has(id));
|
||||
page.sidebar = page.sidebar.filter((id) => !ids.has(id));
|
||||
}
|
||||
|
||||
return sections.flatMap((section) =>
|
||||
section.items.map((item) => {
|
||||
const { recipient, content } = item as { recipient?: unknown; content?: unknown };
|
||||
return {
|
||||
sectionId: section.id,
|
||||
itemId: item.id,
|
||||
title: section.title,
|
||||
recipient: typeof recipient === "string" ? recipient : "",
|
||||
content: typeof content === "string" ? content : "",
|
||||
};
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
const escapeHtml = (text: string) =>
|
||||
text
|
||||
.replaceAll("&", "&")
|
||||
|
||||
@@ -1,30 +1,44 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
|
||||
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
|
||||
import { copyCoverLetterStyle, createCoverLetterResumeData } from "./cover-letter";
|
||||
import { getResumeExportData, resumeHasCoverLetter } from "./export-sections";
|
||||
|
||||
// Letters render through the same templates: a letter's document is resume data with one cover-letter section.
|
||||
// Here the sample resume carries one too, as resumes did before letters became documents of their own.
|
||||
const LETTER_ID = "letter-section";
|
||||
const withLetter = () => {
|
||||
const data = structuredClone(sampleResumeData);
|
||||
const letter = createCoverLetterResumeData({
|
||||
name: "Cover Letter",
|
||||
recipient: "<p>Hiring Manager</p>",
|
||||
content: "<p>Dear Hiring Manager,</p>",
|
||||
style: copyCoverLetterStyle(data, LETTER_ID, "letter-item"),
|
||||
});
|
||||
data.customSections.push(...letter.customSections);
|
||||
data.metadata.layout.pages.push({ fullWidth: true, main: [LETTER_ID], sidebar: [] });
|
||||
return data;
|
||||
};
|
||||
|
||||
describe("resume export sections", () => {
|
||||
it("detects visible cover letter sections", () => {
|
||||
expect(resumeHasCoverLetter(defaultResumeData)).toBe(false);
|
||||
expect(resumeHasCoverLetter(sampleResumeData)).toBe(true);
|
||||
expect(resumeHasCoverLetter(sampleResumeData)).toBe(false);
|
||||
expect(resumeHasCoverLetter(withLetter())).toBe(true);
|
||||
});
|
||||
|
||||
it("removes cover letter sections from resume-only exports", () => {
|
||||
const data = getResumeExportData(sampleResumeData, "resume");
|
||||
const data = getResumeExportData(withLetter(), "resume");
|
||||
|
||||
expect(data.customSections.some((section) => section.type === "cover-letter")).toBe(false);
|
||||
expect(data.metadata.layout.pages.flatMap((page) => [...page.main, ...page.sidebar])).not.toContain(
|
||||
"019bef5b-0b3d-7e2a-8a7c-12d9e23a4f6b",
|
||||
);
|
||||
expect(data.metadata.layout.pages.flatMap((page) => [...page.main, ...page.sidebar])).not.toContain(LETTER_ID);
|
||||
});
|
||||
|
||||
it("keeps only cover letter sections for cover-letter exports", () => {
|
||||
const data = getResumeExportData(sampleResumeData, "cover-letter");
|
||||
const data = getResumeExportData(withLetter(), "cover-letter");
|
||||
|
||||
expect(data.customSections).toHaveLength(1);
|
||||
expect(data.customSections[0]?.type).toBe("cover-letter");
|
||||
expect(data.metadata.layout.pages).toEqual([
|
||||
{ fullWidth: true, main: ["019bef5b-0b3d-7e2a-8a7c-12d9e23a4f6b"], sidebar: [] },
|
||||
]);
|
||||
expect(data.metadata.layout.pages).toEqual([{ fullWidth: true, main: [LETTER_ID], sidebar: [] }]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,8 +1,23 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
|
||||
import { copyCoverLetterStyle, createCoverLetterResumeData } from "./cover-letter";
|
||||
import { getResumeExportData } from "./export-sections";
|
||||
import { buildMarkdown, htmlToMarkdown } from "./markdown";
|
||||
|
||||
// A letter's document, as the letter export builds it: resume data with one cover-letter section.
|
||||
const withLetter = () => {
|
||||
const data = structuredClone(sampleResumeData);
|
||||
const letter = createCoverLetterResumeData({
|
||||
name: "Cover Letter",
|
||||
recipient: "<p>Hiring Manager</p>",
|
||||
content: "<p>Dear Hiring Manager,</p><p>I'm excited to apply.</p>",
|
||||
style: copyCoverLetterStyle(data, "letter-section", "letter-item"),
|
||||
});
|
||||
data.customSections.push(...letter.customSections);
|
||||
data.metadata.layout.pages.push({ fullWidth: true, main: ["letter-section"], sidebar: [] });
|
||||
return data;
|
||||
};
|
||||
|
||||
describe("htmlToMarkdown", () => {
|
||||
it("converts the constrained tiptap tag set", () => {
|
||||
const html = "<p>Led <strong>teams</strong> of <em>engineers</em>.</p><ul><li>Shipped X</li><li>Owned Y</li></ul>";
|
||||
@@ -46,13 +61,13 @@ describe("buildMarkdown", () => {
|
||||
});
|
||||
|
||||
it("excludes the cover letter from the resume scope and includes it in the cover-letter scope", () => {
|
||||
const cover = buildMarkdown(getResumeExportData(sampleResumeData, "cover-letter"));
|
||||
const cover = buildMarkdown(getResumeExportData(withLetter(), "cover-letter"));
|
||||
expect(cover.length).toBeGreaterThan(0);
|
||||
expect(cover).not.toBe(md);
|
||||
});
|
||||
|
||||
it("renders the cover-letter scope without resume header or section heading", () => {
|
||||
const cover = buildMarkdown(getResumeExportData(sampleResumeData, "cover-letter"));
|
||||
const cover = buildMarkdown(getResumeExportData(withLetter(), "cover-letter"));
|
||||
|
||||
expect(cover).toContain("Dear Hiring Manager");
|
||||
expect(cover).not.toContain(`# ${sampleResumeData.basics.name}`);
|
||||
|
||||
@@ -559,27 +559,6 @@ export const sampleResumeData: ResumeData = {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Cover Letter",
|
||||
icon: "envelope-simple",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
showHeading: true,
|
||||
keepTogether: false,
|
||||
startOnNewPage: false,
|
||||
id: "019bef5b-0b3d-7e2a-8a7c-12d9e23a4f6b",
|
||||
type: "cover-letter",
|
||||
items: [
|
||||
{
|
||||
id: "019bef5b-0f8d-77d1-9b2a-4a1b65e1b8aa",
|
||||
hidden: false,
|
||||
recipient:
|
||||
'<p>Hiring Manager<br />Sunrise Games Studio<br />Seattle, WA<br /><a href="mailto:hiring@sunrisegames.com">hiring@sunrisegames.com</a></p>',
|
||||
content:
|
||||
"<p>Dear Hiring Manager,</p><p>I'm excited to apply for the Senior Gameplay Engineer role at Sunrise Games Studio. Over the past five years, I have shipped cross-platform titles in Unity and Unreal Engine, leading core gameplay and tooling efforts that improved iteration speed and player experience. At Cascade Studios, I architected combat systems and optimized performance to maintain 60 FPS on console while partnering closely with design and art.</p><p>I thrive in collaborative, cross-disciplinary teams and enjoy mentoring junior engineers. I'd welcome the chance to bring my gameplay systems expertise and tooling focus to your next title.</p><p>Sincerely,<br />David Kowalski</p>",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
metadata: {
|
||||
template: "azurill",
|
||||
@@ -601,11 +580,6 @@ export const sampleResumeData: ResumeData = {
|
||||
main: ["projects", "publications", "volunteer"],
|
||||
sidebar: [],
|
||||
},
|
||||
{
|
||||
fullWidth: true,
|
||||
main: ["019bef5b-0b3d-7e2a-8a7c-12d9e23a4f6b"],
|
||||
sidebar: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
page: {
|
||||
|
||||
Generated
-3
@@ -1242,9 +1242,6 @@ importers:
|
||||
'@reactive-resume/env':
|
||||
specifier: workspace:*
|
||||
version: link:../env
|
||||
'@reactive-resume/resume':
|
||||
specifier: workspace:*
|
||||
version: link:../resume
|
||||
'@reactive-resume/schema':
|
||||
specifier: workspace:*
|
||||
version: link:../schema
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { Page } from "@playwright/test";
|
||||
import { randomUUID } from "node:crypto";
|
||||
import { readFile } from "node:fs/promises";
|
||||
import { Pool } from "pg";
|
||||
import { createSampleResumeFromDashboard, openSidebarSection } from "../fixtures/resume";
|
||||
import { createSampleResumeFromDashboard } from "../fixtures/resume";
|
||||
import { expect, test } from "../fixtures/test";
|
||||
|
||||
/** New → "New cover letter instead" opens the letter editor on an untitled letter. */
|
||||
@@ -101,10 +101,10 @@ test("writes a letter for an application, from the resume's details, and downloa
|
||||
}
|
||||
});
|
||||
|
||||
test("names a version, restores it, and copies the letter into a resume", async ({ authPage: page }, testInfo) => {
|
||||
test("names a version and restores it", async ({ authPage: page }, testInfo) => {
|
||||
test.setTimeout(90_000);
|
||||
await createSampleResumeFromDashboard(page, testInfo);
|
||||
const builderUrl = page.url();
|
||||
const _builderUrl = page.url();
|
||||
await newLetter(page);
|
||||
|
||||
await page.getByRole("button", { name: "Write it myself" }).click();
|
||||
@@ -130,12 +130,4 @@ test("names a version, restores it, and copies the letter into a resume", async
|
||||
await expect(versions.getByRole("button", { name: /^Before restore/ })).toBeVisible();
|
||||
await page.keyboard.press("Escape");
|
||||
await expect(body).toContainText("The first version of the letter.");
|
||||
|
||||
// A saved letter can start a letter inside a resume, as a copy that doesn't follow later edits.
|
||||
await page.goto(builderUrl);
|
||||
await openSidebarSection(page, "Cover Letter");
|
||||
await page.getByRole("button", { name: "Add cover letter", exact: true }).click();
|
||||
await page.getByLabel("Import from library", { exact: true }).click();
|
||||
await page.getByRole("option", { name: "Untitled letter", exact: true }).click();
|
||||
await expect(page.getByRole("textbox", { name: "Letter", exact: true })).toContainText("first version");
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { readFile } from "node:fs/promises";
|
||||
import { readFile, writeFile } from "node:fs/promises";
|
||||
import { createSampleResumeFromDashboard, openDownloadDialog, openSidebarSection } from "../fixtures/resume";
|
||||
import { expect, test } from "../fixtures/test";
|
||||
|
||||
@@ -27,3 +27,45 @@ test("exports and imports a resume JSON backup", async ({ authPage: page }, test
|
||||
await openSidebarSection(page, "Basics");
|
||||
await expect(page.getByRole("textbox", { name: "Full name", exact: true })).toHaveValue(exportedData.basics.name);
|
||||
});
|
||||
|
||||
test("imports a resume file that carries a cover letter as a resume and a letter of its own", async ({
|
||||
authPage: page,
|
||||
}, testInfo) => {
|
||||
await createSampleResumeFromDashboard(page, testInfo);
|
||||
const sheet = await openDownloadDialog(page);
|
||||
await sheet.getByRole("radio", { name: /^JSON/ }).click();
|
||||
const downloadPromise = page.waitForEvent("download");
|
||||
await sheet.getByRole("button", { name: "Download JSON" }).click();
|
||||
const exported = await downloadPromise;
|
||||
const data = JSON.parse(await readFile((await exported.path()) as string, "utf-8")) as {
|
||||
customSections: unknown[];
|
||||
metadata: { layout: { pages: { fullWidth: boolean; main: string[]; sidebar: string[] }[] } };
|
||||
};
|
||||
|
||||
// A file from an older version, with the letter inside the resume.
|
||||
data.customSections.push({
|
||||
id: "old-letter",
|
||||
type: "cover-letter",
|
||||
title: "Letter to Globex",
|
||||
icon: "",
|
||||
columns: 1,
|
||||
hidden: false,
|
||||
keepTogether: false,
|
||||
startOnNewPage: false,
|
||||
items: [{ id: "old-letter-item", hidden: false, recipient: "<p>Globex</p>", content: "<p>Dear Globex team,</p>" }],
|
||||
});
|
||||
data.metadata.layout.pages.push({ fullWidth: true, main: ["old-letter"], sidebar: [] });
|
||||
const path = testInfo.outputPath("with-letter.json");
|
||||
await writeFile(path, JSON.stringify(data));
|
||||
|
||||
await page.goto("/dashboard");
|
||||
await page.getByRole("button", { name: "New", exact: true }).click();
|
||||
await page.getByRole("dialog", { name: "New document" }).getByLabel("Choose a file to import").setInputFiles(path);
|
||||
await page.getByRole("button", { name: "Open in editor" }).click();
|
||||
await page.waitForURL(/\/builder\/.+/);
|
||||
await expect(page.getByText("Dear Globex team,")).toHaveCount(0);
|
||||
|
||||
await page.goto("/dashboard");
|
||||
await page.getByRole("tab", { name: /^Letters/ }).click();
|
||||
await expect(page.getByRole("heading", { name: /— Letter to Globex$/ })).toHaveCount(1);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user