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:
Amruth Pillai
2026-09-29 09:30:07 +02:00
parent de3ffeacca
commit 2506509538
99 changed files with 7839 additions and 3267 deletions
+5
View File
@@ -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.
+20 -82
View File
@@ -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 () => {
+5 -9
View File
@@ -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"],
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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"
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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 ""
-33
View File
@@ -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>
);
+28 -135
View File
@@ -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
+1 -5
View File
@@ -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.
+8 -21
View File
@@ -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. |
+2 -3
View 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
View File
@@ -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
-9
View File
@@ -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 });
+7 -18
View File
@@ -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 });
+31 -8
View File
@@ -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
-1
View File
@@ -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"
},
+1 -3
View File
@@ -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",
]),
-1
View File
@@ -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;
+11 -35
View File
@@ -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,
},
+1 -62
View File
@@ -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
View File
@@ -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", () => {
+34
View File
@@ -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);
+40
View File
@@ -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("&", "&amp;")
+23 -9
View File
@@ -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: [] }]);
});
});
+17 -2
View File
@@ -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}`);
-26
View File
@@ -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: {
-3
View File
@@ -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
+3 -11
View File
@@ -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");
});
+43 -1
View File
@@ -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);
});