fix: address application tracker review findings

This commit is contained in:
Amruth Pillai
2026-07-05 23:38:39 +02:00
parent b1d95e61de
commit c721fe5cbc
26 changed files with 4290 additions and 8107 deletions
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" és a teljes idővonala véglegesen törlődik. Ez nem vonható vissza."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(új lapon nyílik meg)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "Díjazó"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "Díjak"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "Felsorolásjelezett lista"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "A közösség által, a közösségért."
@@ -729,7 +732,8 @@ msgstr "Exportálhatom az önéletrajzomat PDFbe?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "katalán"
msgid "Center Align"
msgstr "Középre igazítás"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "Tanúsítványok"
@@ -775,7 +780,8 @@ msgstr "Meggondoltad magad? Nevezd át az önéletrajzodat valami beszédesebbre
msgid "Changelog"
msgstr "Változásnapló"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "Csevegés"
@@ -887,7 +893,8 @@ msgstr "Teljesen ingyenes, örökké, rejtett költségek nélkül."
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "Tartalom"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "Tovább"
@@ -1039,7 +1047,8 @@ msgstr "Motivációs levél"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "Motivációslevél-vázlat"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "Másolat készítése ehhez az álláshoz igazítva"
msgid "Create a new account"
msgstr "Új fiók létrehozása"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "Új API kulcs létrehozása"
@@ -1130,7 +1141,8 @@ msgstr "Új publikáció létrehozása"
msgid "Create a new reference"
msgstr "Új referencia létrehozása"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "dán"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "Sötét"
@@ -1527,7 +1540,8 @@ msgstr "A szerkesztés le van tiltva, amíg fel nem oldja a zárolást."
msgid "Editing keyword..."
msgstr "Kulcsszó szerkesztése..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "Tanulmányok"
@@ -1540,7 +1554,8 @@ msgstr "Email"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "Email cím"
@@ -1625,7 +1640,8 @@ msgstr "Minden, amire szükséged van professzionális önéletrajzok létrehoz
msgid "Exit Fullscreen"
msgstr "Kilépés a teljes képernyőből"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "Tapasztalat"
@@ -2109,7 +2125,8 @@ msgstr "Itt különböző szakmákhoz és személyiségekhez illeszkedő önéle
msgid "Here's your new API key"
msgstr "Íme az új API kulcsod"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "Rejtett"
@@ -2136,8 +2153,10 @@ msgstr "Hivatkozás aláhúzásának elrejtése"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "Ikon"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "Azonosítsa a jelentkezőkövető rendszer hiányosságait, és csak nagy megbízhatóságú kulcsszó-fejlesztéseket alkalmazzon."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "Importálás"
@@ -2281,7 +2301,8 @@ msgstr "Azonnali generálás"
msgid "Integrations"
msgstr "Integrációk"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "Érdeklődési körök"
@@ -2328,13 +2349,15 @@ msgstr "Álláskeresési folyamat"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "John Doe"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "John.Doe"
@@ -2343,7 +2366,8 @@ msgstr "John.Doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "Fekvő"
msgid "Language"
msgstr "Nyelv"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "Nyelvek"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "<0>MIT</0> licenc alatt."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "Világos"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "A https:// címmel kell kezdeni."
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "OpenAI-kompatibilis"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "új lapon nyílik meg"
@@ -2960,7 +2989,8 @@ msgstr "Hozzáférési kulcsok és 2FA"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "Jártasság"
msgid "Profile"
msgstr "Profil"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "Profilok"
@@ -3171,7 +3202,8 @@ msgstr "Profilok"
msgid "Progress Bar"
msgstr "Folyamatjelző sáv"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "Projektek"
@@ -3192,7 +3224,8 @@ msgstr "Szolgáltató"
msgid "Provider connection verified."
msgstr "Szolgáltatói kapcsolat ellenőrizve."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "Publikációk"
@@ -3268,7 +3301,8 @@ msgstr "Téglalap (teljes szélesség)"
msgid "Redo"
msgstr "Újra"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "Referenciák"
@@ -3394,7 +3428,8 @@ msgstr "Visszaállítja ezt a verziót?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "Önéletrajz"
@@ -3520,7 +3555,8 @@ msgstr "Mentés és feltöltés"
msgid "Save changes"
msgstr "Módosítások mentése"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "Link megjelenítése a címben"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "Egyoszlopos; kifinomult és komoly, vezetői vagy vállalati szintű poz
msgid "Size"
msgstr "Méret"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "Készségek"
@@ -4017,7 +4056,8 @@ msgstr "Javaslatok"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "Minta használata"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "Felhasználónév"
@@ -4713,7 +4754,8 @@ msgstr "vietnámi"
msgid "Views"
msgstr "Megtekintések"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "Önkéntesség"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" dan seluruh linimasanya akan dihapus permanen. Ini tidak dapat dibatalkan."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(terbuka di tab baru)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "Pemberi Penghargaan"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "Penghargaan"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "Daftar Poin"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "Oleh komunitas, untuk komunitas."
@@ -729,7 +732,8 @@ msgstr "Bisakah saya mengekspor resume saya ke PDF?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "Katala"
msgid "Center Align"
msgstr "Rata Tengah"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "Sertifikasi"
@@ -775,7 +780,8 @@ msgstr "Berubah pikiran? Ganti nama resume Anda menjadi sesuatu yang lebih deskr
msgid "Changelog"
msgstr "Changelog"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "Mengobrol"
@@ -887,7 +893,8 @@ msgstr "Sepenuhnya gratis, selamanya, tanpa biaya tersembunyi."
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "Konten"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "Lanjutkan"
@@ -1039,7 +1047,8 @@ msgstr "Surat lamaran"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "Draf surat lamaran"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "Buat salinan yang disesuaikan untuk pekerjaan ini"
msgid "Create a new account"
msgstr "Buat akun baru"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "Buat API key baru"
@@ -1130,7 +1141,8 @@ msgstr "Buat publikasi baru"
msgid "Create a new reference"
msgstr "Buat referensi baru"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "Denmark"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "Gelap"
@@ -1527,7 +1540,8 @@ msgstr "Fitur pengeditan dinonaktifkan hingga Anda membukanya."
msgid "Editing keyword..."
msgstr "Mengedit kata kunci..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "Pendidikan"
@@ -1540,7 +1554,8 @@ msgstr "Email"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "Alamat Email"
@@ -1625,7 +1640,8 @@ msgstr "Segala yang Anda butuhkan untuk membuat, menyesuaikan, dan membagikan re
msgid "Exit Fullscreen"
msgstr "Keluar dari Layar Penuh"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "Pengalaman"
@@ -2109,7 +2125,8 @@ msgstr "Berikut berbagai template resume untuk profesi dan kepribadian yang berb
msgid "Here's your new API key"
msgstr "Berikut API key baru Anda"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "Tersembunyi"
@@ -2136,8 +2153,10 @@ msgstr "Sembunyikan Garis Bawah Tautan"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "Ikon"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "Identifikasi celah pada sistem pelacakan pelamar dan terapkan hanya perbaikan kata kunci yang memiliki tingkat kepercayaan tinggi."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "Impor"
@@ -2281,7 +2301,8 @@ msgstr "Generasi Instan"
msgid "Integrations"
msgstr "Integrasi"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "Minat"
@@ -2328,13 +2349,15 @@ msgstr "Alur pencarian kerja"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "John Doe"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "Lanskap"
msgid "Language"
msgstr "Bahasa"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "Bahasa"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "Berlisensi di bawah <0>MIT</0>."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "Terang"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "Harus dimulai dengan https://"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "Kompatibel dengan OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "terbuka di tab baru"
@@ -2960,7 +2989,8 @@ msgstr "Passkey & 2FA"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "Kemahiran"
msgid "Profile"
msgstr "Profil"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "Profil"
@@ -3171,7 +3202,8 @@ msgstr "Profil"
msgid "Progress Bar"
msgstr "Bilah Progres"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "Proyek"
@@ -3192,7 +3224,8 @@ msgstr "Penyedia"
msgid "Provider connection verified."
msgstr "Koneksi penyedia layanan telah diverifikasi."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "Publikasi"
@@ -3268,7 +3301,8 @@ msgstr "Persegi Panjang (Lebar Penuh)"
msgid "Redo"
msgstr "Mengulangi"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "Referensi"
@@ -3394,7 +3428,8 @@ msgstr "Pulihkan versi ini?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "Melanjutkan"
@@ -3520,7 +3555,8 @@ msgstr "Simpan & Unggah"
msgid "Save changes"
msgstr "Simpan perubahan"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "Tampilkan tautan di judul"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "Satu kolom; rapi dan serius untuk posisi tingkat senior atau level perus
msgid "Size"
msgstr "Ukuran"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "Keahlian"
@@ -4017,7 +4056,8 @@ msgstr "Saran"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "Gunakan contoh"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "Nama Pengguna"
@@ -4713,7 +4754,8 @@ msgstr "Vietnam"
msgid "Views"
msgstr "Tampilan"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "Relawan"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" e tutta la sua cronologia verranno eliminati definitivamente. Questa azione non può essere annullata."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(apre in una nuova scheda)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "Premiatore"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "Premi"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "Elenco puntato"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "Dalla comunità, per la comunità."
@@ -729,7 +732,8 @@ msgstr "Posso esportare il mio curriculum in PDF?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "Catalano"
msgid "Center Align"
msgstr "Allinea al centro"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "Certificazioni"
@@ -775,7 +780,8 @@ msgstr "Hai cambiato idea? Rinomina il tuo curriculum in modo più descrittivo."
msgid "Changelog"
msgstr "Changelog"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "Chiacchierata"
@@ -887,7 +893,8 @@ msgstr "Completamente gratuito, per sempre, senza costi nascosti."
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "Contenuto"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "Continua"
@@ -1039,7 +1047,8 @@ msgstr "Lettera di presentazione"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "Bozza lettera di presentazione"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "Crea una copia adattata a questo lavoro"
msgid "Create a new account"
msgstr "Crea un nuovo account"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "Crea una nuova chiave API"
@@ -1130,7 +1141,8 @@ msgstr "Crea una nuova pubblicazione"
msgid "Create a new reference"
msgstr "Crea un nuovo referente"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "Danese"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "Scuro"
@@ -1527,7 +1540,8 @@ msgstr "La modifica è disabilitata finché non la sblocchi."
msgid "Editing keyword..."
msgstr "Modifica della parola chiave..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "Formazione"
@@ -1540,7 +1554,8 @@ msgstr "Email"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "Indirizzo email"
@@ -1625,7 +1640,8 @@ msgstr "Tutto ciò di cui hai bisogno per creare, personalizzare e condividere c
msgid "Exit Fullscreen"
msgstr "Esci dalla modalità a schermo intero"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "Esperienza"
@@ -2109,7 +2125,8 @@ msgstr "Ecco una gamma di modelli di curriculum per diverse professioni e person
msgid "Here's your new API key"
msgstr "Ecco la tua nuova chiave API"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "Nascosto"
@@ -2136,8 +2153,10 @@ msgstr "Nascondi il collegamento sottolineato"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "Icona"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "Individua le lacune in un sistema di gestione delle candidature e applica solo i miglioramenti basati su parole chiave con elevata affidabilità."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "Importazione"
@@ -2281,7 +2301,8 @@ msgstr "Generazione istantanea"
msgid "Integrations"
msgstr "Integrazioni"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "Interessi"
@@ -2328,13 +2349,15 @@ msgstr "Pipeline di ricerca lavoro"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "Sconosciuto"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "Orizzontale"
msgid "Language"
msgstr "Lingua"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "Lingue"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "Con licenza <0>MIT</0>."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "Chiaro"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "Deve iniziare con https://"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "Compatibile con OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "apre in una nuova scheda"
@@ -2960,7 +2989,8 @@ msgstr "Passkey e 2FA"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "Competenza"
msgid "Profile"
msgstr "Profilo"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "Profili"
@@ -3171,7 +3202,8 @@ msgstr "Profili"
msgid "Progress Bar"
msgstr "Barra di avanzamento"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "Progetti"
@@ -3192,7 +3224,8 @@ msgstr "Provider"
msgid "Provider connection verified."
msgstr "Connessione al provider verificata."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "Pubblicazioni"
@@ -3268,7 +3301,8 @@ msgstr "Rettangolo (larghezza completa)"
msgid "Redo"
msgstr "Rifare"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "Referenze"
@@ -3394,7 +3428,8 @@ msgstr "Ripristinare questa versione?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "Riprendere"
@@ -3520,7 +3555,8 @@ msgstr "Salva e carica"
msgid "Save changes"
msgstr "Salva modifiche"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "Mostra il link nel titolo"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "Una singola colonna; curato e serio per posizioni senior o a livello ent
msgid "Size"
msgstr "Dimensione"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "Competenze"
@@ -4017,7 +4056,8 @@ msgstr "Suggerimenti"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "Usa esempio"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "Nome utente"
@@ -4713,7 +4754,8 @@ msgstr "Vietnamita"
msgid "Views"
msgstr "Visualizzazioni"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "Volontariato"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" とその全タイムラインは完全に削除されます。この操作は元に戻せません。"
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(新しいタブで開きます)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "授与者"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "受賞歴"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "箇条書きリスト"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "コミュニティによる、コミュニティのためのプロジェクト。"
@@ -729,7 +732,8 @@ msgstr "履歴書を PDF にエクスポートできますか?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "カタロニア語"
msgid "Center Align"
msgstr "中央揃え"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "資格・認定"
@@ -775,7 +780,8 @@ msgstr "やっぱり変更しますか?レジュメに、よりわかりやす
msgid "Changelog"
msgstr "更新履歴"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "チャット"
@@ -887,7 +893,8 @@ msgstr "完全無料。ずっと無料。隠されたコストはありません
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "コンテンツ"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "続行"
@@ -1039,7 +1047,8 @@ msgstr "カバーレター"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "カバーレターの下書き"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "この求人に合わせたコピーを作成"
msgid "Create a new account"
msgstr "新しいアカウントを作成"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "新しい API キーを作成"
@@ -1130,7 +1141,8 @@ msgstr "新しい掲載情報を作成"
msgid "Create a new reference"
msgstr "リファレンスを追加"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "デンマーク語"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "ダーク"
@@ -1527,7 +1540,8 @@ msgstr "ロックを解除するまで編集はできません。"
msgid "Editing keyword..."
msgstr "キーワードの編集..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "学歴"
@@ -1540,7 +1554,8 @@ msgstr "メール"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "メールアドレス"
@@ -1625,7 +1640,8 @@ msgstr "プロフェッショナルな履歴書・職務経歴書を作成・カ
msgid "Exit Fullscreen"
msgstr "全画面表示を終了"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "職歴"
@@ -2109,7 +2125,8 @@ msgstr "さまざまな職種や個性に合わせたテンプレートを取り
msgid "Here's your new API key"
msgstr "新しい API キーはこちらです"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "非表示"
@@ -2136,8 +2153,10 @@ msgstr "リンクの下線を非表示にする"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "アイコン"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "応募者追跡システムのギャップを特定し、信頼性の高いキーワード改善のみを適用する。"
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "インポート"
@@ -2281,7 +2301,8 @@ msgstr "即時生成"
msgid "Integrations"
msgstr "統合"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "趣味・関心"
@@ -2328,13 +2349,15 @@ msgstr "求人応募パイプライン"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "山田 太郎"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "taro.yamada"
@@ -2343,7 +2366,8 @@ msgstr "taro.yamada"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "taro.yamada@example.com"
@@ -2404,7 +2428,8 @@ msgstr "横長"
msgid "Language"
msgstr "言語"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "語学"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "<0>MIT ライセンス</0>の下で提供されています。"
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "ライト"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "先頭を https:// にしてください"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "OpenAI互換"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "新しいタブで開きます"
@@ -2960,7 +2989,8 @@ msgstr "パスキーと2段階認証"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "熟練度"
msgid "Profile"
msgstr "プロフィール"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "プロフィール"
@@ -3171,7 +3202,8 @@ msgstr "プロフィール"
msgid "Progress Bar"
msgstr "プログレスバー"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "プロジェクト"
@@ -3192,7 +3224,8 @@ msgstr "プロバイダー"
msgid "Provider connection verified."
msgstr "プロバイダーとの接続を確認しました。"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "著作物"
@@ -3268,7 +3301,8 @@ msgstr "長方形(全幅)"
msgid "Redo"
msgstr "やり直し"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "リファレンス"
@@ -3394,7 +3428,8 @@ msgstr "このバージョンを復元しますか?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "レジュメ"
@@ -3520,7 +3555,8 @@ msgstr "保存してアップロード"
msgid "Save changes"
msgstr "変更を保存"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "タイトルにリンクを表示する"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "1 カラムレイアウトで、落ち着いた印象の真面目なデ
msgid "Size"
msgstr "サイズ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "スキル"
@@ -4017,7 +4056,8 @@ msgstr "提案"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "サンプルを使用"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "ユーザー名"
@@ -4713,7 +4754,8 @@ msgstr "ベトナム語"
msgid "Views"
msgstr "閲覧数"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "ボランティア"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" និងប្រវត្តិពេលវេលាទាំងមូលរបស់វានឹងត្រូវបានលុបជាអចិន្ត្រៃយ៍។ មិនអាចត្រឡប់វិញបានទេ។"
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(បើក​ក្នុងផ្ទាំង​ថ្មី)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "អ្នក​ផ្តល់​រង្វាន់"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "រង្វាន់"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "បញ្ជី​មាន​គ្រាប់ចំណុច"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "ដោយ​សហគមន៍ សម្រាប់​សហគមន៍។"
@@ -729,7 +732,8 @@ msgstr "តើ​ខ្ញុំ​អាច​នាំចេញ​ប្រវ
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "Catalan"
msgid "Center Align"
msgstr "តម្រង់​កណ្ដាល"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "វិញ្ញាបនបត្រ"
@@ -775,7 +780,8 @@ msgstr "ប្តូរ​ចិត្ត​ហើយ​ឬ​អត់? ប្
msgid "Changelog"
msgstr "កំណត់ហេតុ​បម្លែង"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "ជជែក"
@@ -887,7 +893,8 @@ msgstr "ឥតគិតថ្លៃ​ពេញលេញ ជារៀងរហ
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "មាតិកា"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "បន្ត"
@@ -1039,7 +1047,8 @@ msgstr "លិខិតអម"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "ព្រាងលិខិតអម"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "បង្កើតច្បាប់ចម្លងដែលបានស
msgid "Create a new account"
msgstr "បង្កើត​គណនី​ថ្មី"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "បង្កើត​កូនសោ API ថ្មី"
@@ -1130,7 +1141,8 @@ msgstr "បង្កើត​អត្ថបទផ្សព្វផ្សាយ
msgid "Create a new reference"
msgstr "បង្កើត​យោង​ថ្មី"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "Danish"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "ងងឹត"
@@ -1527,7 +1540,8 @@ msgstr "ការកែសម្រួលត្រូវបានបិទរហ
msgid "Editing keyword..."
msgstr "កំពុងកែសម្រួលពាក្យគន្លឹះ..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "ការ​សិក្សា"
@@ -1540,7 +1554,8 @@ msgstr "អ៊ីមែល"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "អាសយដ្ឋាន​អ៊ីមែល"
@@ -1625,7 +1640,8 @@ msgstr "អ្វីៗ​ដែល​អ្នក​ត្រូវការ
msgid "Exit Fullscreen"
msgstr "ចេញពីអេក្រង់ពេញ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "បទពិសោធន៍"
@@ -2109,7 +2125,8 @@ msgstr "នេះ​ជា​ជួរ​គំរូ​ប្រវត្តិ
msgid "Here's your new API key"
msgstr "នេះ​ជា​កូនសោ API ថ្មី​របស់​អ្នក"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "លាក់"
@@ -2136,8 +2153,10 @@ msgstr "លាក់​បន្ទាត់​ក្រោម​តំណ"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "រូបតំណាង"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "កំណត់ចន្លោះប្រហោងសម្រាប់ប្រព័ន្ធតាមដានអ្នកដាក់ពាក្យ ហើយអនុវត្តតែការកែលម្អពាក្យគន្លឹះដែលមានទំនុកចិត្តខ្ពស់។"
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "នាំចូល"
@@ -2281,7 +2301,8 @@ msgstr "ការបង្កើតភ្លាមៗ"
msgid "Integrations"
msgstr "ការរួមបញ្ចូល"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "ចំណាប់អារម្មណ៍"
@@ -2328,13 +2349,15 @@ msgstr "ដំណើរការស្វែងរកការងារ"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "ចន ដូ"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "ផ្ទៃ​ទេសភាព"
msgid "Language"
msgstr "ភាសា"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "ភាសា"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "មាន​អាជ្ញាប័ណ្ណ​ក្រោម <0>MIT</0>។"
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "ភ្លឺ"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "ត្រូវតែចាប់ផ្តើមដោយ https://"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "ឆបគ្នាជាមួយ OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "បើក​ក្នុង​ផ្ទាំង​ថ្មី"
@@ -2960,7 +2989,8 @@ msgstr "កូនសោ​កំណត់​អត្តសញ្ញាណ & 2FA
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "កម្រិត​ជំនាញ"
msgid "Profile"
msgstr "ប្រវត្តិ​សង្ខេប"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "ប្រវត្តិ​សង្ខេប​បណ្ដាញ​សង្គម"
@@ -3171,7 +3202,8 @@ msgstr "ប្រវត្តិ​សង្ខេប​បណ្ដាញ​ស
msgid "Progress Bar"
msgstr "របារ​វឌ្ឍនភាព"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "គម្រោង"
@@ -3192,7 +3224,8 @@ msgstr "អ្នកផ្តល់សេវា"
msgid "Provider connection verified."
msgstr "បានផ្ទៀងផ្ទាត់ការតភ្ជាប់អ្នកផ្តល់សេវា។"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "អត្ថបទផ្សព្វផ្សាយ"
@@ -3268,7 +3301,8 @@ msgstr "ចតុកោណ (ទទឹង​ពេញ)"
msgid "Redo"
msgstr "ធ្វើឡើងវិញ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "យោង"
@@ -3394,7 +3428,8 @@ msgstr "ស្ដារ​កំណែ​នេះ​ឡើង​វិញ?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "ប្រវត្តិរូបសង្ខេប"
@@ -3520,7 +3555,8 @@ msgstr "រក្សាទុក និងផ្ទុកឡើង"
msgid "Save changes"
msgstr "រក្សាទុកការផ្លាស់ប្តូរ"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "បង្ហាញតំណភ្ជាប់ក្នុងចំណង
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "ជួរឈរ​តែមួយ រូបរាង​រលោង ន
msgid "Size"
msgstr "ទំហំ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "ជំនាញ"
@@ -4017,7 +4056,8 @@ msgstr "សំណើ"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "ប្រើគំរូ"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "ឈ្មោះ​អ្នក​ប្រើ"
@@ -4713,7 +4754,8 @@ msgstr "Vietnamese"
msgid "Views"
msgstr "ចំនួន​មើល"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "ស្ម័គ្រចិត្ត"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" ಮತ್ತು ಅದರ ಸಂಪೂರ್ಣ ಕಾಲರೇಖೆಯನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ. ಇದನ್ನು ಹಿಂತಿರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "ಪ್ರಶಸ್ತಿದಾರ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "ಪ್ರಶಸ್ತಿಗಳು"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "ಬುಲೆಟ್ ಪಟ್ಟ್ತಿ"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "ಸಮುದಾಯದಿಂದ, ಸಮುದಾಯಕ್ಕಾಗಿ."
@@ -729,7 +732,8 @@ msgstr "ನಾನು ನನ್ನ ರೆಸ್ಯೂಮ್ ಅನ್ನು PDF
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "ಕ್ಯಾಟಲನ್"
msgid "Center Align"
msgstr "ಮಧ್ಯ ಸರಿಸು"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "ಪ್ರಮಾಣಪತ್ರಗಳು"
@@ -775,7 +780,8 @@ msgstr "ಮನಸ್ಸು ಬದಲಾಯಿಸಿದಿರಾ? ನಿಮ್ಮ
msgid "Changelog"
msgstr "ಬದಲಾವಣೆ ಚಿಟಿಕೆಗಳು"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "ಚಾಟ್ ಮಾಡಿ"
@@ -887,7 +893,8 @@ msgstr "ಪೂರ್ಣವಾಗಿ ಉಚಿತ, ಯಾವಾಗಲೂ, ಯಾ
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "ವಿಷಯ"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "ಮುಂದುವರಿಸಿ"
@@ -1039,7 +1047,8 @@ msgstr "ಕವರ್ ಲೆಟರ್"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "ಕವರ್ ಲೆಟರ್ ಕರಡು"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "ಈ ಉದ್ಯೋಗಕ್ಕೆ ಹೊಂದಿಸಿದ ಪ್ರತ
msgid "Create a new account"
msgstr "ಹೊಸ ಖಾತೆಯನ್ನು ರಚಿಸಿ"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "ಹೊಸ API ಕೀಲಿಯನ್ನು ರಚಿಸಿ"
@@ -1130,7 +1141,8 @@ msgstr "ಹೊಸ ಪ್ರಕಟಣೆಯನ್ನು ರಚಿಸಿ"
msgid "Create a new reference"
msgstr "ಹೊಸ ಪರಿಚಯವನ್ನು ರಚಿಸಿ"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "ಡ್ಯಾನಿಶ್"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "ಕತ್ತಲೆ"
@@ -1527,7 +1540,8 @@ msgstr "ನೀವು ಅದನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುವ
msgid "Editing keyword..."
msgstr "ಕೀವರ್ಡ್ ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "ಶಿಕ್ಷಣ"
@@ -1540,7 +1554,8 @@ msgstr "ಇಮೇಲ್"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "ಇಮೇಲ್ ವಿಳಾಸ"
@@ -1625,7 +1640,8 @@ msgstr "ವೃತ್ತಿಪರ ರೆಸ್ಯೂಮ್‌ಗಳನ್ನು
msgid "Exit Fullscreen"
msgstr "ಪೂರ್ಣ ಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "ಅನುಭವ"
@@ -2109,7 +2125,8 @@ msgstr "ಇಲ್ಲಿವೆ ವಿವಿಧ ವೃತ್ತಿಗಳು ಮತ
msgid "Here's your new API key"
msgstr "ಇದು ನಿಮ್ಮ ಹೊಸ API ಕೀಲಿ"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "ಮರೆಮಾಡಲಾಗಿದೆ"
@@ -2136,8 +2153,10 @@ msgstr "ಲಿಂಕ್ ಅಂಡರ್‌ಲೈನ್ ಅನ್ನು ಮರೆ
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "ಐಕಾನ್"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "ಅರ್ಜಿದಾರರ ಟ್ರ್ಯಾಕಿಂಗ್ ವ್ಯವಸ್ಥೆಗೆ ಅಂತರವನ್ನು ಗುರುತಿಸಿ ಮತ್ತು ಹೆಚ್ಚಿನ ವಿಶ್ವಾಸದ ಕೀವರ್ಡ್ ಸುಧಾರಣೆಗಳನ್ನು ಮಾತ್ರ ಅನ್ವಯಿಸಿ."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "ಆಮದು"
@@ -2281,7 +2301,8 @@ msgstr "ತತ್ಕ್ಷಣ ಜನರೇಷನ್"
msgid "Integrations"
msgstr "ಏಕೀಕರಣಗಳು"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "ಆಸಕ್ತಿಗಳು"
@@ -2328,13 +2349,15 @@ msgstr "ಉದ್ಯೋಗ ಹುಡುಕಾಟ ಪೈಪ್‌ಲೈನ್"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "ಜಾನ್ ಡೋ"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "ಲೆಂಡ್ಸ್ಕೇಪ್"
msgid "Language"
msgstr "ಭಾಷೆ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "ಭಾಷೆಗಳು"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "<0>MIT</0> ಅಡಿಯಲ್ಲಿ ಪರವಾನಗಿ ಪಡೆದಿದೆ."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "ತಿಳಿ ಬಣ್ಣ"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "https:// ನಿಂದ ಪ್ರಾರಂಭವಾಗಬೇಕು"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "OpenAI- ಹೊಂದಾಣಿಕೆ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ"
@@ -2960,7 +2989,8 @@ msgstr "ಪಾಸ್‌ಕೀಗಳು ಹಾಗೂ 2FA"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "ಪಾರುಂಗತತೆ"
msgid "Profile"
msgstr "ಪ್ರೊಫೈಲ್"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "ಪ್ರೊಫೈಲ್‌ಗಳು"
@@ -3171,7 +3202,8 @@ msgstr "ಪ್ರೊಫೈಲ್‌ಗಳು"
msgid "Progress Bar"
msgstr "ಪ್ರಗತಿ ಪಟ್ಟೆ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "ಯೋಜನೆಗಳು"
@@ -3192,7 +3224,8 @@ msgstr "ಪ್ರದಾಯಕ"
msgid "Provider connection verified."
msgstr "ಪೂರೈಕೆದಾರರ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "ಪ್ರಕಟನೆಗಳು"
@@ -3268,7 +3301,8 @@ msgstr "ಆಯತ (ಪೂರ್ಣ ಅಗಲ)"
msgid "Redo"
msgstr "ಮತ್ತೆಮಾಡು"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "ಪರಿಚಯಗಳು"
@@ -3394,7 +3428,8 @@ msgstr "ಈ ಆವೃತ್ತಿಯನ್ನು ಮರುಸ್ಥಾಪಿಸ
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "ಪುನರಾರಂಭ"
@@ -3520,7 +3555,8 @@ msgstr "ಉಳಿಸಿ ಮತ್ತು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ"
msgid "Save changes"
msgstr "ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಿ"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "ಶೀರ್ಷಿಕೆಯಲ್ಲಿ ಲಿಂಕ್ ತೋರಿಸ
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "ಒಂದು ಕಾಲಮ್; ಹಿರಿಯ ಅಥವಾ ಎಂಟರ
msgid "Size"
msgstr "ಗಾತ್ರ"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "ಕೌಶಲ್ಯಗಳು"
@@ -4017,7 +4056,8 @@ msgstr "ಸಲಹೆಗಳು"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "ಮಾದರಿ ಬಳಸಿ"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "ಬಳಕೆದಾರರ ಹೆಸರು"
@@ -4713,7 +4754,8 @@ msgstr "ವಿಯೆಟ್ನಾಮೀಸ್"
msgid "Views"
msgstr "ವೀಕ್ಷಣೆಗಳು"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "ಸ್ವಯಂಸೇವಕ"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" 및 전체 타임라인이 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(새 탭에서 열림)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "수여자"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "수상 내역"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "글머리 기호 목록"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "커뮤니티에 의해, 커뮤니티를 위해."
@@ -729,7 +732,8 @@ msgstr "이력서를 PDF로 내보낼 수 있나요?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "카탈루냐어"
msgid "Center Align"
msgstr "가운데 정렬"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "자격증"
@@ -775,7 +780,8 @@ msgstr "생각이 바뀌셨나요? 이력서 이름을 더 잘 설명하는 이
msgid "Changelog"
msgstr "변경 로그"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "채팅"
@@ -887,7 +893,8 @@ msgstr "완전히 무료이며, 영원히 숨은 비용이 없습니다."
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "내용"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "계속"
@@ -1039,7 +1047,8 @@ msgstr "커버레터"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "커버레터 초안"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "이 공고에 맞춘 사본 만들기"
msgid "Create a new account"
msgstr "새 계정 만들기"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "새 API 키 만들기"
@@ -1130,7 +1141,8 @@ msgstr "새 출판물 만들기"
msgid "Create a new reference"
msgstr "새 추천인 만들기"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "덴마크어"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "다크"
@@ -1527,7 +1540,8 @@ msgstr "편집 기능은 잠금 해제하기 전까지 비활성화되어 있습
msgid "Editing keyword..."
msgstr "키워드 편집 중..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "학력"
@@ -1540,7 +1554,8 @@ msgstr "이메일"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "이메일 주소"
@@ -1625,7 +1640,8 @@ msgstr "전문적인 이력서를 만들고, 사용자 지정하고, 공유하
msgid "Exit Fullscreen"
msgstr "전체 화면 종료"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "경력"
@@ -2109,7 +2125,8 @@ msgstr "다양한 직군과 개성을 위한 이력서 템플릿이 준비되어
msgid "Here's your new API key"
msgstr "새 API 키가 준비되었습니다"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "숨김"
@@ -2136,8 +2153,10 @@ msgstr "링크 밑줄 숨기기"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "아이콘"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "지원자 추적 시스템의 부족한 부분을 파악하고, 신뢰도가 높은 키워드 개선 사항만 적용하세요."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "가져오기"
@@ -2281,7 +2301,8 @@ msgstr "즉시 생성"
msgid "Integrations"
msgstr "통합"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "관심사"
@@ -2328,13 +2349,15 @@ msgstr "구직 파이프라인"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "신원 미상"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "가로"
msgid "Language"
msgstr "언어"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "언어"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "<0>MIT</0> 라이선스로 배포됩니다."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "라이트"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "https:// 으로 시작해야 합니다."
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "OpenAI 호환"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "새 탭에서 열림"
@@ -2960,7 +2989,8 @@ msgstr "패스키 & 2단계 인증"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "숙련도"
msgid "Profile"
msgstr "프로필"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "프로필"
@@ -3171,7 +3202,8 @@ msgstr "프로필"
msgid "Progress Bar"
msgstr "진행률 바"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "프로젝트"
@@ -3192,7 +3224,8 @@ msgstr "제공자"
msgid "Provider connection verified."
msgstr "공급자 연결이 확인되었습니다."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "출판물"
@@ -3268,7 +3301,8 @@ msgstr "사각형(전체 너비)"
msgid "Redo"
msgstr "다시 하다"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "추천인"
@@ -3394,7 +3428,8 @@ msgstr "이 버전으로 복원하시겠습니까?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "재개하다"
@@ -3520,7 +3555,8 @@ msgstr "저장 및 업로드"
msgid "Save changes"
msgstr "변경사항 저장"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "제목에 링크 표시"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "단일 열 구성에 세련되고 진중한 느낌을 더한 템플릿
msgid "Size"
msgstr "크기"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "기술"
@@ -4017,7 +4056,8 @@ msgstr "제안 사항"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "샘플 사용"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "사용자 이름"
@@ -4713,7 +4754,8 @@ msgstr "베트남어"
msgid "Views"
msgstr "조회 수"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "봉사"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" ir visa jos laiko juosta bus visam laikui ištrinta. To negalima atšaukti."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(atsidaro naujame skirtuke)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "Apdovanotojas"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "Apdovanojimai"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "Suženklintas sąrašas"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "Bendruomenės ir bendruomenei."
@@ -729,7 +732,8 @@ msgstr "Ar galiu eksportuoti savo gyvenimo aprašymą į PDF?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "Katalonų"
msgid "Center Align"
msgstr "Lygiuoti centre"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "Sertifikatai"
@@ -775,7 +780,8 @@ msgstr "Persigalvojote? Pervardinkite savo gyvenimo aprašymą į apibūdinantį
msgid "Changelog"
msgstr "Pakeitimų žurnalas"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "Pokalbis"
@@ -887,7 +893,8 @@ msgstr "Visiškai nemokama, visada, be jokių paslėptų mokesčių."
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "Turinys"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "Tęsti"
@@ -1039,7 +1047,8 @@ msgstr "Motyvacinis laiškas"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "Motyvacinio laiško juodraštis"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "Sukurti šiam darbui pritaikytą kopiją"
msgid "Create a new account"
msgstr "Sukurti naują paskyrą"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "Sukurti naują API raktą"
@@ -1130,7 +1141,8 @@ msgstr "Sukurti naują publikaciją"
msgid "Create a new reference"
msgstr "Sukurti naują rekomendaciją"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "Danų"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "Tamsus"
@@ -1527,7 +1540,8 @@ msgstr "Redaguoti negalima, kol neatrakinsite."
msgid "Editing keyword..."
msgstr "Raktažodžio redagavimas..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "Išsilavinimas"
@@ -1540,7 +1554,8 @@ msgstr "El. paštas"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "El. pašto adresas"
@@ -1625,7 +1640,8 @@ msgstr "Viskas, ko reikia sukurti, pritaikyti ir bendrinti profesionalius gyveni
msgid "Exit Fullscreen"
msgstr "Išeiti iš viso ekrano"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "Patirtis"
@@ -2109,7 +2125,8 @@ msgstr "Čia rasite įvairių gyvenimo aprašymų šablonų skirtingoms profesij
msgid "Here's your new API key"
msgstr "Štai jūsų naujas API raktas"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "Paslėptas"
@@ -2136,8 +2153,10 @@ msgstr "Slėpti nuorodos pabraukimą"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "Ikona"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "Nustatykite kandidatų stebėjimo sistemos spragas ir taikykite tik didelio patikimumo raktinių žodžių patobulinimus."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "Importas"
@@ -2281,7 +2301,8 @@ msgstr "Momentinis generavimas"
msgid "Integrations"
msgstr "Integracijos"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "Pomėgiai"
@@ -2328,13 +2349,15 @@ msgstr "Darbo paieškos eiga"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "John Doe"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "Gulsčias"
msgid "Language"
msgstr "Kalba"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "Kalbos"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "Licencijuota pagal <0>MIT</0>."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "Šviesi"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "Turi prasidėti nuo https://"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "Suderinamas su OpenAI"
msgid "OpenRouter"
msgstr "\"OpenRouter\""
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "atidaro naujame skirtuke"
@@ -2960,7 +2989,8 @@ msgstr "Raktai ir 2FA"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "Įgūdžių lygis"
msgid "Profile"
msgstr "Profilis"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "Profiliai"
@@ -3171,7 +3202,8 @@ msgstr "Profiliai"
msgid "Progress Bar"
msgstr "Progreso juosta"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "Projektai"
@@ -3192,7 +3224,8 @@ msgstr "Tiekėjas"
msgid "Provider connection verified."
msgstr "Tiekėjo ryšys patvirtintas."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "Publikacijos"
@@ -3268,7 +3301,8 @@ msgstr "Stačiakampis (visas plotis)"
msgid "Redo"
msgstr "Pakartoti"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "Rekomendacijos"
@@ -3394,7 +3428,8 @@ msgstr "Atkurti šią versiją?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "Gyvenimo aprašymas"
@@ -3520,7 +3555,8 @@ msgstr "Išsaugoti ir įkelti"
msgid "Save changes"
msgstr "Išsaugoti pakeitimus"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "Rodyti nuorodą pavadinime"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "Vienas stulpelis; solidus ir rimtas vyresnio ar aukšto lygio pareigoms.
msgid "Size"
msgstr "Dydis"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "Įgūdžiai"
@@ -4017,7 +4056,8 @@ msgstr "Pasiūlymai"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "Naudoti pavyzdį"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "Vartotojo vardas"
@@ -4713,7 +4754,8 @@ msgstr "Vietnamiečių"
msgid "Views"
msgstr "Peržiūros"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "Savanorystė"
+84 -42
View File
@@ -27,7 +27,8 @@ msgstr ""
msgid "\"{0} · {1}\" and its full timeline will be permanently deleted. This can't be undone."
msgstr "\"{0} · {1}\" un visa tās laika skala tiks neatgriezeniski dzēsta. To nevar atsaukt."
#: src/routes/_home/-sections/footer.tsx src/routes/_home/-sections/hero.tsx
#: src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/hero.tsx
msgid "(opens in new tab)"
msgstr "(atveras jaunā cilnē)"
@@ -608,7 +609,8 @@ msgctxt "(noun) person, organization, or entity that gives an award"
msgid "Awarder"
msgstr "Apbalvotājs"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Awards"
msgstr "Apbalvojumi"
@@ -705,7 +707,8 @@ msgid "Bullet List"
msgstr "Aizzīmju saraksts"
#. Tagline shown in app footer/about area
#: src/components/ui/copyright.tsx src/routes/_home/-sections/features.tsx
#: src/components/ui/copyright.tsx
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/-sections/prefooter.tsx
msgid "By the community, for the community."
msgstr "No kopienas kopienai."
@@ -729,7 +732,8 @@ msgstr "Vai varu eksportēt savu CV uz PDF?"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/features/settings/pages/api-keys.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/features/settings/pages/profile.tsx src/hooks/use-prompt.tsx
#: src/features/settings/pages/profile.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -750,7 +754,8 @@ msgstr "Katalāņu"
msgid "Center Align"
msgstr "Centrēt"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Certifications"
msgstr "Sertifikāti"
@@ -775,7 +780,8 @@ msgstr "Pārdomājāt? Pārsauciet savu CV par kaut ko aprakstošāku."
msgid "Changelog"
msgstr "Izmaiņu žurnāls"
#: src/routes/agent/-components/agent-chat.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/$threadId.tsx
msgid "Chat"
msgstr "Tērzēšana"
@@ -887,7 +893,8 @@ msgstr "Pilnībā bez maksas, uz visiem laikiem, bez slēptām izmaksām."
#. Account deletion confirmation dialog confirm action in danger zone
#. Create API key dialog acknowledgment action after copying
#: src/dialogs/api-key/create.tsx src/features/settings/pages/danger-zone.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/danger-zone.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Confirm"
@@ -922,7 +929,8 @@ msgstr "Saturs"
#. Button label to continue to dashboard after successful registration
#. Final action button after saving backup codes
#. Primary action button to proceed to next step in two-factor setup
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/register.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/register.tsx
msgid "Continue"
msgstr "Turpināt"
@@ -1039,7 +1047,8 @@ msgstr "Motivācijas vēstule"
#. Fallback title for a custom cover letter item in resume builder when recipient is empty
#. Fallback title for a custom cover letter item in resume builder when recipient is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Cover Letter"
@@ -1050,7 +1059,8 @@ msgid "Cover letter draft"
msgstr "Motivācijas vēstules melnraksts"
#. Create API key dialog submit action
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
@@ -1078,7 +1088,8 @@ msgstr "Izveidot šim darbam pielāgotu kopiju"
msgid "Create a new account"
msgstr "Izveidot jaunu kontu"
#: src/dialogs/api-key/create.tsx src/features/settings/pages/api-keys.tsx
#: src/dialogs/api-key/create.tsx
#: src/features/settings/pages/api-keys.tsx
msgid "Create a new API key"
msgstr "Izveidot jaunu API atslēgu"
@@ -1130,7 +1141,8 @@ msgstr "Izveidot jaunu publikāciju"
msgid "Create a new reference"
msgstr "Izveidot jaunu atsauksmi"
#: src/dialogs/resume/index.tsx src/features/command-palette/pages/resumes.tsx
#: src/dialogs/resume/index.tsx
#: src/features/command-palette/pages/resumes.tsx
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
@@ -1231,7 +1243,8 @@ msgid "Danish"
msgstr "Dāņu"
#. Appearance theme option for dark mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Dark"
msgstr "Tumšs"
@@ -1527,7 +1540,8 @@ msgstr "Rediģēšana ir atspējota, līdz to atbloķējat."
msgid "Editing keyword..."
msgstr "Atslēgvārda rediģēšana..."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Education"
msgstr "Izglītība"
@@ -1540,7 +1554,8 @@ msgstr "E-pasts"
#. Label for email input on registration form
#. Label for login identifier input that accepts email or username
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Email Address"
msgstr "E-pasta adrese"
@@ -1625,7 +1640,8 @@ msgstr "Viss, kas jums nepieciešams, lai izveidotu, pielāgotu un kopīgotu pro
msgid "Exit Fullscreen"
msgstr "Iziet no pilnekrāna"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Experience"
msgstr "Pieredze"
@@ -2109,7 +2125,8 @@ msgstr "Šeit pieejams dažādu profesiju un personību CV veidņu klāsts. Neat
msgid "Here's your new API key"
msgstr "Lūk, jūsu jaunā API atslēga"
#: src/components/level/combobox.tsx src/dialogs/resume/sections/language.tsx
#: src/components/level/combobox.tsx
#: src/dialogs/resume/sections/language.tsx
#: src/dialogs/resume/sections/skill.tsx
msgid "Hidden"
msgstr "Slēpts"
@@ -2136,8 +2153,10 @@ msgstr "Slēpt saites pasvītrojumu"
#. Accessible label for toggle button that hides the visible new password
#. Accessible label for toggle button that hides the visible password in two-factor disable dialog
#. Accessible label for toggle button that hides the visible password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -2202,7 +2221,8 @@ msgstr "Ikona"
msgid "Identify gaps for an applicant tracking system and apply only high-confidence keyword improvements."
msgstr "Nosakiet pretendentu izsekošanas sistēmas nepilnības un izmantojiet tikai augstas uzticamības atslēgvārdu uzlabojumus."
#: src/dialogs/resume/import.tsx src/routes/dashboard/resumes/index.tsx
#: src/dialogs/resume/import.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Import"
msgstr "Importēt"
@@ -2281,7 +2301,8 @@ msgstr "Tūlītēja ģenerēšana"
msgid "Integrations"
msgstr "Integrācija"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Interests"
msgstr "Intereses"
@@ -2328,13 +2349,15 @@ msgstr "Darba meklēšanas process"
#. Example full name placeholder on profile settings form
#. Example full name placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "John Doe"
msgstr "John Doe"
#. Example username placeholder on profile settings form
#. Example username placeholder on registration form
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe"
msgstr "john.doe"
@@ -2343,7 +2366,8 @@ msgstr "john.doe"
#. Example email placeholder on profile settings form
#. Example email placeholder on registration form
#: src/features/auth/pages/forgot-password.tsx
#: src/features/auth/pages/login.tsx src/features/auth/pages/register.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "john.doe@example.com"
msgstr "john.doe@example.com"
@@ -2404,7 +2428,8 @@ msgstr "Ainava"
msgid "Language"
msgstr "Valoda"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Languages"
msgstr "Valodas"
@@ -2484,7 +2509,8 @@ msgid "Licensed under <0>MIT</0>."
msgstr "Licencēts ar <0>MIT</0>."
#. Appearance theme option for light mode
#: src/features/user/dropdown-menu.tsx src/libs/theme.ts
#: src/features/user/dropdown-menu.tsx
#: src/libs/theme.ts
msgid "Light"
msgstr "Gaišs"
@@ -2684,13 +2710,15 @@ msgid "Must start with https://"
msgstr "Jāuzsāk ar https://"
#. Label for full name input on registration form
#: src/dialogs/api-key/create.tsx src/dialogs/resume/index.tsx
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/interest.tsx
#: src/dialogs/resume/sections/project.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/skill.tsx
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/auth/pages/register.tsx src/features/settings/pages/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Name"
@@ -2879,7 +2907,8 @@ msgstr "OpenAI saderīgs"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/routes/_home/-sections/donate.tsx src/routes/_home/-sections/footer.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
msgstr "atveras jaunā cilnē"
@@ -2960,7 +2989,8 @@ msgstr "Piekļuves atslēgas un 2FA"
#. Label for password input on protected resume access form
#. Label for password input on registration form
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/resume-password.tsx
#: src/features/settings/authentication/components/hooks.tsx
@@ -3162,7 +3192,8 @@ msgstr "Prasmju līmenis"
msgid "Profile"
msgstr "Profils"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Profiles"
msgstr "Profili"
@@ -3171,7 +3202,8 @@ msgstr "Profili"
msgid "Progress Bar"
msgstr "Progresa josla"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Projects"
msgstr "Projekti"
@@ -3192,7 +3224,8 @@ msgstr "Pakalpojumu sniedzējs"
msgid "Provider connection verified."
msgstr "Pakalpojumu sniedzēja savienojums ir pārbaudīts."
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Publications"
msgstr "Publikācijas"
@@ -3268,7 +3301,8 @@ msgstr "Taisnstūris (pilns platums)"
msgid "Redo"
msgstr "Atkārtot"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "References"
msgstr "Atsauksmes"
@@ -3394,7 +3428,8 @@ msgstr "Vai atjaunot šo versiju?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/resume/export/download-dialog.tsx
#: src/routes/agent/-components/resume-pane.tsx src/routes/agent/$threadId.tsx
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "CV"
@@ -3520,7 +3555,8 @@ msgstr "Saglabāt un augšupielādēt"
msgid "Save changes"
msgstr "Saglabāt izmaiņas"
#: src/dialogs/resume/index.tsx src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/custom.tsx
@@ -3760,8 +3796,10 @@ msgstr "Rādīt saiti virsrakstā"
#. Accessible label for toggle button that reveals the masked new password
#. Accessible label for toggle button that reveals the masked password in two-factor disable dialog
#. Accessible label for toggle button that reveals the masked password in two-factor setup
#: src/dialogs/auth/change-password.tsx src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx src/features/auth/pages/login.tsx
#: src/dialogs/auth/change-password.tsx
#: src/dialogs/auth/disable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
#: src/features/auth/pages/login.tsx
#: src/features/auth/pages/register.tsx
#: src/features/auth/pages/reset-password.tsx
#: src/features/auth/pages/resume-password.tsx
@@ -3854,7 +3892,8 @@ msgstr "Vienkolonnu izkārtojums; nopietns un noslīpēts vecākā līmeņa vai
msgid "Size"
msgstr "Izmērs"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Skills"
msgstr "Prasmes"
@@ -4017,7 +4056,8 @@ msgstr "Ieteikumi"
#. Fallback title for a custom summary item in resume builder when content is empty
#. Fallback title for a custom summary item in resume builder when content is unavailable
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
msgid "Summary"
@@ -4645,7 +4685,8 @@ msgid "Use sample"
msgstr "Izmantot paraugu"
#. Label for username input on registration form
#: src/dialogs/resume/sections/profile.tsx src/features/auth/pages/register.tsx
#: src/dialogs/resume/sections/profile.tsx
#: src/features/auth/pages/register.tsx
#: src/features/settings/pages/profile.tsx
msgid "Username"
msgstr "Lietotājvārds"
@@ -4713,7 +4754,8 @@ msgstr "Vjetnamiešu"
msgid "Views"
msgstr "Skatījumi"
#: src/dialogs/resume/sections/custom.tsx src/libs/resume/section-title.ts
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
msgid "Volunteer"
msgstr "Brīvprātīgais darbs"
+339 -857
View File
File diff suppressed because it is too large Load Diff
+348 -880
View File
File diff suppressed because it is too large Load Diff
+352 -893
View File
File diff suppressed because it is too large Load Diff
+330 -825
View File
File diff suppressed because it is too large Load Diff
+332 -829
View File
File diff suppressed because it is too large Load Diff
+342 -862
View File
File diff suppressed because it is too large Load Diff
+327 -809
View File
File diff suppressed because it is too large Load Diff
+324 -799
View File
File diff suppressed because it is too large Load Diff
+361 -940
View File
File diff suppressed because it is too large Load Diff
@@ -31,4 +31,4 @@ CREATE TABLE "application" (
CREATE INDEX "application_user_id_index" ON "application" ("user_id");--> statement-breakpoint
CREATE INDEX "application_user_id_updated_at_index" ON "application" ("user_id","updated_at" DESC NULLS LAST);--> statement-breakpoint
ALTER TABLE "application" ADD CONSTRAINT "application_user_id_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE;--> statement-breakpoint
ALTER TABLE "application" ADD CONSTRAINT "application_resume_id_resume_id_fkey" FOREIGN KEY ("resume_id") REFERENCES "resume"("id") ON DELETE SET NULL;
ALTER TABLE "application" ADD CONSTRAINT "application_resume_id_resume_id_fkey" FOREIGN KEY ("resume_id") REFERENCES "resume"("id") ON DELETE SET NULL;
+36
View File
@@ -0,0 +1,36 @@
import { describe, expect, it } from "vitest";
import { applicationDto } from "./application";
describe("applicationDto sourceUrl", () => {
it("accepts http(s) URLs", () => {
expect(
applicationDto.create.input.parse({
company: "Stripe",
role: "Engineer",
sourceUrl: "https://example.com/job",
}).sourceUrl,
).toBe("https://example.com/job");
});
it("rejects URLs that would be unsafe in anchors", () => {
expect(() =>
applicationDto.create.input.parse({
company: "Stripe",
role: "Engineer",
sourceUrl: "javascript:alert(1)",
}),
).toThrow();
});
});
describe("applicationDto jobDescription", () => {
it("rejects oversized descriptions before AI actions can use them", () => {
expect(() =>
applicationDto.create.input.parse({
company: "Stripe",
role: "Engineer",
jobDescription: "x".repeat(20_001),
}),
).toThrow();
});
});
+16 -2
View File
@@ -8,6 +8,20 @@ import {
contactSchema,
} from "@reactive-resume/schema/applications/data";
const MAX_APPLICATION_JOB_DESCRIPTION_CHARS = 20_000;
const httpUrlSchema = z
.string()
.trim()
.refine((value) => {
try {
const parsed = new URL(value);
return parsed.protocol === "http:" || parsed.protocol === "https:";
} catch {
return false;
}
}, "URL must use http or https.");
const applicationSchema = createSelectSchema(schema.application, {
id: z.string().describe("The ID of the application."),
company: z.string().trim().min(1).describe("The company applied to."),
@@ -18,8 +32,8 @@ const applicationSchema = createSelectSchema(schema.application, {
archived: z.boolean(),
resumeId: z.string().nullable().describe("The linked Reactive Resume, if any."),
source: z.string().trim().nullable(),
sourceUrl: z.string().trim().nullable(),
jobDescription: z.string().nullable(),
sourceUrl: httpUrlSchema.nullable(),
jobDescription: z.string().max(MAX_APPLICATION_JOB_DESCRIPTION_CHARS).nullable(),
matchScore: z.number().int().min(0).max(100).nullable(),
aiMetadata: aiMetadataSchema.nullable(),
notes: z.string().nullable(),
@@ -0,0 +1,113 @@
import { Readable } from "node:stream";
import { beforeEach, describe, expect, it, vi } from "vitest";
const lookupMock = vi.hoisted(() => vi.fn());
const requestMock = vi.hoisted(() => vi.fn());
const protectedProcedureMock = vi.hoisted(() => {
const chain = {
route: vi.fn(() => chain),
input: vi.fn(() => chain),
use: vi.fn(() => chain),
output: vi.fn(() => chain),
handler: vi.fn(() => chain),
};
return chain;
});
vi.mock("node:dns/promises", () => ({ lookup: lookupMock }));
vi.mock("node:http", () => ({ request: requestMock }));
vi.mock("node:https", () => ({ request: requestMock }));
vi.mock("ai", () => ({ generateText: vi.fn() }));
vi.mock("../../context", () => ({ protectedProcedure: protectedProcedureMock }));
vi.mock("../../middleware/rate-limit", () => ({ aiRequestRateLimit: vi.fn() }));
vi.mock("../ai/service", () => ({ getModel: vi.fn() }));
vi.mock("../ai-providers/service", () => ({ aiProvidersService: { getDefaultRunnable: vi.fn() } }));
vi.mock("../resume/service", () => ({ resumeService: { getById: vi.fn(), create: vi.fn() } }));
vi.mock("./service", () => ({
applicationService: { getById: vi.fn(), setAiResult: vi.fn(), update: vi.fn(), addNote: vi.fn() },
}));
const { autofillInputSchema, fetchJobPostingText } = await import("./ai");
function mockRequestResponse(statusCode: number, headers: Record<string, string>, body = "") {
requestMock.mockImplementation((_url, _options, callback) => {
const response = Readable.from(body ? [Buffer.from(body)] : []) as Readable & {
statusCode: number;
headers: Record<string, string>;
};
response.statusCode = statusCode;
response.headers = headers;
callback(response);
return { on: vi.fn(), end: vi.fn() };
});
}
describe("fetchJobPostingText", () => {
beforeEach(() => {
lookupMock.mockReset();
requestMock.mockReset();
vi.restoreAllMocks();
});
it("rejects private IP URLs before fetching", async () => {
await expect(fetchJobPostingText("http://127.0.0.1/posting")).rejects.toMatchObject({ code: "BAD_REQUEST" });
expect(requestMock).not.toHaveBeenCalled();
});
it("rejects hostnames that resolve to private addresses", async () => {
lookupMock.mockResolvedValue([{ address: "169.254.169.254", family: 4 }]);
await expect(fetchJobPostingText("https://jobs.example/posting")).rejects.toMatchObject({ code: "BAD_REQUEST" });
expect(requestMock).not.toHaveBeenCalled();
});
it("converts DNS lookup failures to bad requests", async () => {
lookupMock.mockRejectedValue(new Error("ENOTFOUND"));
await expect(fetchJobPostingText("https://missing.example/posting")).rejects.toMatchObject({ code: "BAD_REQUEST" });
expect(requestMock).not.toHaveBeenCalled();
});
it("rejects redirects instead of following them", async () => {
lookupMock.mockResolvedValue([{ address: "93.184.216.34", family: 4 }]);
mockRequestResponse(302, { location: "/" });
await expect(fetchJobPostingText("https://jobs.example/posting")).rejects.toMatchObject({ code: "BAD_REQUEST" });
});
it("rejects oversized pages before reading the body", async () => {
lookupMock.mockResolvedValue([{ address: "93.184.216.34", family: 4 }]);
mockRequestResponse(200, { "content-length": "200001", "content-type": "text/html" }, "ignored");
await expect(fetchJobPostingText("https://jobs.example/posting")).rejects.toMatchObject({ code: "BAD_REQUEST" });
});
it("pins the request lookup to the validated public address", async () => {
lookupMock.mockResolvedValue([{ address: "93.184.216.34", family: 4 }]);
let pinnedAddress: string | undefined;
requestMock.mockImplementation((_url, options, callback) => {
options.lookup("jobs.example", {}, (_error: Error | null, address: string) => {
pinnedAddress = address;
});
const response = Readable.from([
Buffer.from("<html><script>nope</script><body><h1>Senior Engineer</h1></body></html>"),
]) as Readable & {
statusCode: number;
headers: Record<string, string>;
};
response.statusCode = 200;
response.headers = { "content-type": "text/html" };
callback(response);
return { on: vi.fn(), end: vi.fn() };
});
await expect(fetchJobPostingText("https://jobs.example/posting")).resolves.toBe("Senior Engineer");
expect(pinnedAddress).toBe("93.184.216.34");
});
});
describe("autofillInputSchema", () => {
it("rejects oversized pasted job descriptions", () => {
expect(() => autofillInputSchema.parse({ jobDescription: "x".repeat(20_001) })).toThrow();
});
});
+135 -16
View File
@@ -1,3 +1,8 @@
import type { IncomingHttpHeaders, IncomingMessage } from "node:http";
import { lookup } from "node:dns/promises";
import * as http from "node:http";
import * as https from "node:https";
import { isIP } from "node:net";
import { ORPCError } from "@orpc/client";
import { generateText } from "ai";
import z from "zod";
@@ -10,6 +15,10 @@ import { resumeService } from "../resume/service";
import { applicationService } from "./service";
const reserved = { tags: ["Applications", "AI"] } as const;
const MAX_JOB_POSTING_BYTES = 200_000;
const MAX_PASTED_JOB_DESCRIPTION_CHARS = 20_000;
const JOB_POSTING_CONTENT_TYPES = ["text/html", "text/plain", "application/xhtml+xml", "application/xml", "text/xml"];
type ValidatedAddress = { address: string; family: 4 | 6 };
// Resolve the user's default (tested + enabled) AI provider into a ready model instance.
async function resolveModel(userId: string) {
@@ -46,8 +55,40 @@ async function generatePlainText(model: Awaited<ReturnType<typeof resolveModel>>
return text.trim();
}
// Best-effort fetch + strip of a job posting page. http(s) only, size/time capped.
async function fetchJobPostingText(url: string): Promise<string> {
function isPrivateIPv4(address: string) {
const parts = address.split(".").map((part) => Number(part));
if (parts.length !== 4 || parts.some((part) => !Number.isInteger(part) || part < 0 || part > 255)) return true;
const [a = 0, b = 0] = parts;
return (
a === 0 ||
a === 10 ||
a === 127 ||
(a === 100 && b >= 64 && b <= 127) ||
(a === 169 && b === 254) ||
(a === 172 && b >= 16 && b <= 31) ||
(a === 192 && b === 168) ||
a >= 224
);
}
function isPrivateAddress(address: string) {
if (address.startsWith("::ffff:")) return isPrivateIPv4(address.slice(7));
if (isIP(address) === 4) return isPrivateIPv4(address);
const normalized = address.toLowerCase();
return (
normalized === "::1" ||
normalized === "::" ||
normalized.startsWith("fc") ||
normalized.startsWith("fd") ||
normalized.startsWith("fe8") ||
normalized.startsWith("fe9") ||
normalized.startsWith("fea") ||
normalized.startsWith("feb")
);
}
async function assertPublicHttpUrl(url: string): Promise<{ parsed: URL; address: ValidatedAddress }> {
let parsed: URL;
try {
parsed = new URL(url);
@@ -57,23 +98,96 @@ async function fetchJobPostingText(url: string): Promise<string> {
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
throw new ORPCError("BAD_REQUEST", { message: "Only http(s) job posting URLs are supported." });
}
if (parsed.hostname.toLowerCase() === "localhost") {
throw new ORPCError("BAD_REQUEST", { message: "Local job posting URLs are not supported." });
}
const addresses = isIP(parsed.hostname)
? [{ address: parsed.hostname, family: isIP(parsed.hostname) as 4 | 6 }]
: ((await lookup(parsed.hostname, { all: true, verbatim: true })) as ValidatedAddress[]);
if (addresses.length === 0 || addresses.some(({ address }) => isPrivateAddress(address))) {
throw new ORPCError("BAD_REQUEST", { message: "Private or local job posting URLs are not supported." });
}
const [address] = addresses;
if (!address) throw new ORPCError("BAD_REQUEST", { message: "The job posting URL could not be resolved." });
return { parsed, address };
}
function headerValue(headers: IncomingHttpHeaders, name: string) {
const value = headers[name];
return Array.isArray(value) ? value[0] : value;
}
async function readTextResponse(response: IncomingMessage) {
const contentType = headerValue(response.headers, "content-type")?.split(";")[0]?.trim().toLowerCase();
if (contentType && !JOB_POSTING_CONTENT_TYPES.includes(contentType)) {
throw new ORPCError("BAD_REQUEST", { message: "The job posting URL did not return a text page." });
}
const contentLength = Number(headerValue(response.headers, "content-length"));
if (Number.isFinite(contentLength) && contentLength > MAX_JOB_POSTING_BYTES) {
throw new ORPCError("BAD_REQUEST", {
message: "The job posting page is too large. Paste the description instead.",
});
}
const chunks: Uint8Array[] = [];
let total = 0;
for await (const value of response) {
const chunk = typeof value === "string" ? Buffer.from(value) : value;
total += chunk.byteLength;
if (total > MAX_JOB_POSTING_BYTES) {
response.destroy();
throw new ORPCError("BAD_REQUEST", {
message: "The job posting page is too large. Paste the description instead.",
});
}
chunks.push(chunk);
}
return new TextDecoder().decode(Buffer.concat(chunks));
}
function requestJobPosting(parsed: URL, address: ValidatedAddress, signal: AbortSignal) {
return new Promise<IncomingMessage>((resolve, reject) => {
const client = parsed.protocol === "https:" ? https : http;
const request = client.request(
parsed,
{
signal,
headers: {
"user-agent":
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"accept-language": "en-US,en;q=0.9",
},
lookup: (_hostname, _options, callback) => callback(null, address.address, address.family),
},
resolve,
);
request.on("error", reject);
request.end();
});
}
// Best-effort fetch + strip of a job posting page. http(s) only, size/time capped.
export async function fetchJobPostingText(url: string): Promise<string> {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 10_000);
try {
// Job boards 403 obvious bot user-agents, so present as a normal browser.
const response = await fetch(url, {
signal: controller.signal,
headers: {
"user-agent":
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"accept-language": "en-US,en;q=0.9",
},
});
if (!response.ok)
throw new ORPCError("BAD_REQUEST", { message: `Couldn't fetch the posting (HTTP ${response.status}).` });
const html = (await response.text()).slice(0, 200_000);
const { parsed, address } = await assertPublicHttpUrl(url);
const response = await requestJobPosting(parsed, address, controller.signal);
if (response.statusCode && response.statusCode >= 300 && response.statusCode < 400) {
throw new ORPCError("BAD_REQUEST", { message: "Redirecting job posting URLs are not supported." });
}
if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
throw new ORPCError("BAD_REQUEST", {
message: `Couldn't fetch the posting (HTTP ${response.statusCode ?? "unknown"}).`,
});
}
const html = await readTextResponse(response);
return html
.replace(/<script[\s\S]*?<\/script>/gi, " ")
.replace(/<style[\s\S]*?<\/style>/gi, " ")
@@ -97,6 +211,11 @@ const autofillOutput = z.object({
jobDescription: z.string(),
});
export const autofillInputSchema = z.object({
sourceUrl: z.string().optional(),
jobDescription: z.string().max(MAX_PASTED_JOB_DESCRIPTION_CHARS).optional(),
});
// Tolerant of LLM variance: clamp the score, cap the lists by slicing rather than rejecting.
const matchScoreOutput = z.object({
score: z.coerce
@@ -117,7 +236,7 @@ export const aiRouter = {
// Extract structured fields from a pasted job description or a posting URL.
autofill: protectedProcedure
.route({ method: "POST", path: "/applications/ai/autofill", operationId: "aiAutofillApplication", ...reserved })
.input(z.object({ sourceUrl: z.string().optional(), jobDescription: z.string().optional() }))
.input(autofillInputSchema)
.use(aiRequestRateLimit)
.output(autofillOutput)
.handler(async ({ context, input }) => {
@@ -5,13 +5,38 @@ const dbMock = vi.hoisted(() => ({
select: vi.fn(),
insert: vi.fn(),
update: vi.fn(),
delete: vi.fn(),
}));
const resumeGetByIdMock = vi.hoisted(() => vi.fn());
const storageDeleteMock = vi.hoisted(() => vi.fn());
vi.mock("@reactive-resume/db/client", () => ({ db: dbMock }));
vi.mock("@reactive-resume/db/schema", () => ({
application: { id: "id", userId: "user_id", status: "status", updatedAt: "updated_at" },
application: {
id: "id",
userId: "user_id",
status: "status",
updatedAt: "updated_at",
resumeFileUrl: "resume_file_url",
coverLetterUrl: "cover_letter_url",
},
}));
vi.mock("drizzle-orm", () => ({
and: (...a: unknown[]) => a,
arrayContains: (...a: unknown[]) => a,
desc: (x: unknown) => x,
eq: (...a: unknown[]) => a,
inArray: (...a: unknown[]) => a,
sql: Object.assign((strings: TemplateStringsArray, ...values: unknown[]) => ({ strings, values }), {
join: (values: unknown[]) => values,
}),
}));
vi.mock("../resume/service", () => ({
resumeService: { getById: resumeGetByIdMock },
}));
vi.mock("../storage/service", () => ({
getStorageService: () => ({ delete: storageDeleteMock }),
}));
vi.mock("drizzle-orm", () => ({ and: (...a: unknown[]) => a, desc: (x: unknown) => x, eq: (...a: unknown[]) => a }));
const { applicationService } = await import("./service");
@@ -22,12 +47,19 @@ const existing = {
role: "Engineer",
status: "saved" as const,
activity: [{ id: "e0", type: "created" as const, text: "Added to Saved", at: new Date() }],
resumeFileUrl: "http://localhost:3000/api/uploads/user-1/pictures/resume.pdf",
coverLetterUrl: "/api/uploads/user-1/pictures/cover.pdf",
};
beforeEach(() => {
dbMock.select.mockReset();
dbMock.insert.mockReset();
dbMock.update.mockReset();
dbMock.delete.mockReset();
resumeGetByIdMock.mockReset();
storageDeleteMock.mockReset();
resumeGetByIdMock.mockResolvedValue({ id: "resume-1" });
storageDeleteMock.mockResolvedValue(true);
// requireOwned: db.select().from().where() resolves to [existing]
dbMock.select.mockReturnValue({ from: () => ({ where: () => Promise.resolve([{ ...existing }]) }) });
});
@@ -43,6 +75,21 @@ describe("applicationService.create", () => {
expect(inserted.activity).toHaveLength(1);
expect(inserted.activity.at(0)?.type).toBe("created");
});
it("checks linked resume ownership before inserting", async () => {
const values = vi.fn(() => Promise.resolve());
dbMock.insert.mockReturnValue({ values });
await applicationService.create({
userId: "user-1",
company: "Stripe",
role: "Engineer",
resumeId: "resume-1",
});
expect(resumeGetByIdMock).toHaveBeenCalledWith({ id: "resume-1", userId: "user-1" });
expect(values).toHaveBeenCalled();
});
});
describe("applicationService.update", () => {
@@ -56,16 +103,64 @@ describe("applicationService.update", () => {
const set = captureSet();
await applicationService.update({ id: "app-1", userId: "user-1", status: "applied" });
const [[arg]] = set.mock.calls as unknown as [[{ activity: { type: string }[] }]];
expect(arg.activity).toHaveLength(2);
expect(arg.activity.at(-1)?.type).toBe("stage");
const [[arg]] = set.mock.calls as unknown as [[{ activity: unknown }]];
expect(arg.activity).toBeDefined();
});
it("does not append an event when the status is unchanged", async () => {
it("does not rewrite activity when the status is unchanged", async () => {
const set = captureSet();
await applicationService.update({ id: "app-1", userId: "user-1", notes: "hello" });
const [[arg]] = set.mock.calls as unknown as [[{ activity: unknown[] }]];
expect(arg.activity).toHaveLength(1);
const [[arg]] = set.mock.calls as unknown as [[{ activity?: unknown }]];
expect(arg.activity).toBeUndefined();
});
it("checks linked resume ownership before updating", async () => {
captureSet();
await applicationService.update({ id: "app-1", userId: "user-1", resumeId: "resume-1" });
expect(resumeGetByIdMock).toHaveBeenCalledWith({ id: "resume-1", userId: "user-1" });
});
});
describe("applicationService.delete", () => {
it("deletes owned uploaded attachments after deleting the application", async () => {
dbMock.delete.mockReturnValue({
where: () => ({ returning: () => Promise.resolve([{ id: "app-1" }]) }),
});
await applicationService.delete({ id: "app-1", userId: "user-1" });
expect(storageDeleteMock).toHaveBeenCalledWith("uploads/user-1/pictures/resume.pdf");
expect(storageDeleteMock).toHaveBeenCalledWith("uploads/user-1/pictures/cover.pdf");
});
});
describe("applicationService.bulkDelete", () => {
it("deletes uploaded attachments for deleted owned applications", async () => {
dbMock.select.mockReturnValue({
from: () => ({
where: () =>
Promise.resolve([
{ ...existing, id: "app-1" },
{
...existing,
id: "app-2",
resumeFileUrl: "http://localhost:3000/api/uploads/user-2/pictures/ignored.pdf",
coverLetterUrl: null,
},
]),
}),
});
dbMock.delete.mockReturnValue({
where: () => ({ returning: () => Promise.resolve([{ id: "app-1" }, { id: "app-2" }]) }),
});
const result = await applicationService.bulkDelete({ userId: "user-1", ids: ["app-1", "app-2"] });
expect(result).toEqual({ deleted: 2 });
expect(storageDeleteMock).toHaveBeenCalledWith("uploads/user-1/pictures/resume.pdf");
expect(storageDeleteMock).toHaveBeenCalledWith("uploads/user-1/pictures/cover.pdf");
expect(storageDeleteMock).not.toHaveBeenCalledWith("uploads/user-2/pictures/ignored.pdf");
});
});
@@ -5,6 +5,8 @@ import { db } from "@reactive-resume/db/client";
import * as schema from "@reactive-resume/db/schema";
import { STAGES } from "@reactive-resume/schema/applications/data";
import { generateId } from "@reactive-resume/utils/string";
import { resumeService } from "../resume/service";
import { getStorageService } from "../storage/service";
const stageLabel = (status: ApplicationStatus) => STAGES.find((s) => s.value === status)?.label ?? status;
@@ -46,6 +48,51 @@ async function requireOwned(id: string, userId: string) {
return row;
}
async function assertOwnedResume(userId: string, resumeId: string | null | undefined) {
if (!resumeId) return;
await resumeService.getById({ id: resumeId, userId });
}
async function assertOwnedResumes(userId: string, resumeIds: (string | null | undefined)[]) {
const uniqueResumeIds = [...new Set(resumeIds.filter((id): id is string => !!id))];
await Promise.all(uniqueResumeIds.map((resumeId) => assertOwnedResume(userId, resumeId)));
}
function storageKeyFromApplicationUrl(userId: string, value: string | null | undefined) {
if (!value) return null;
let pathname: string;
try {
pathname = value.startsWith("/") ? value : new URL(value).pathname;
} catch {
return null;
}
const match = pathname.match(/^\/(?:api\/)?uploads\/(.+)$/);
if (!match?.[1]) return null;
const key = `uploads/${match[1]}`;
return key.startsWith(`uploads/${userId}/`) ? key : null;
}
async function deleteApplicationAttachments(
userId: string,
applications: { resumeFileUrl?: string | null; coverLetterUrl?: string | null }[],
) {
const keys = [
...new Set(
applications.flatMap((application) => [
storageKeyFromApplicationUrl(userId, application.resumeFileUrl),
storageKeyFromApplicationUrl(userId, application.coverLetterUrl),
]),
),
].filter((key): key is string => !!key);
if (keys.length === 0) return;
const storageService = getStorageService();
await Promise.allSettled(keys.map((key) => storageService.delete(key)));
}
const stripUserId = <T extends { userId: string }>(row: T) => {
const { userId: _userId, ...rest } = row;
return rest;
@@ -78,6 +125,8 @@ export const applicationService = {
const { userId, status, ...fields } = input;
const id = generateId();
await assertOwnedResume(userId, fields.resumeId);
await db.insert(schema.application).values({
id,
userId,
@@ -95,6 +144,11 @@ export const applicationService = {
}) => {
if (input.items.length === 0) return { imported: 0 };
await assertOwnedResumes(
input.userId,
input.items.map((item) => item.resumeId),
);
const values = input.items.map(({ status, ...fields }) => ({
id: generateId(),
userId: input.userId,
@@ -115,15 +169,18 @@ export const applicationService = {
archived?: boolean | undefined;
},
) => {
const existing = await requireOwned(input.id, input.userId);
await requireOwned(input.id, input.userId);
const { id, userId, status, archived, ...fields } = input;
await assertOwnedResume(userId, fields.resumeId);
// Auto-log a timeline event when the stage actually changes.
const activity =
status && status !== existing.status
? [...existing.activity, activityEvent("stage", `Moved to ${stageLabel(status)}`)]
: existing.activity;
// Append in SQL so concurrent notes/stage events are not overwritten by a stale array.
const activityExpr =
status !== undefined
? sql`case when ${schema.application.status} <> ${status}
then ${schema.application.activity} || ${JSON.stringify([activityEvent("stage", `Moved to ${stageLabel(status)}`)])}::jsonb
else ${schema.application.activity} end`
: undefined;
const [updated] = await db
.update(schema.application)
@@ -131,7 +188,7 @@ export const applicationService = {
...fields,
...(status !== undefined ? { status } : {}),
...(archived !== undefined ? { archived } : {}),
activity,
...(activityExpr ? { activity: activityExpr } : {}),
})
.where(and(eq(schema.application.id, id), eq(schema.application.userId, userId)))
.returning();
@@ -176,11 +233,13 @@ export const applicationService = {
},
delete: async (input: { id: string; userId: string }) => {
const existing = await requireOwned(input.id, input.userId);
const result = await db
.delete(schema.application)
.where(and(eq(schema.application.id, input.id), eq(schema.application.userId, input.userId)))
.returning({ id: schema.application.id });
if (result.length === 0) throw new ORPCError("NOT_FOUND");
await deleteApplicationAttachments(input.userId, [existing]);
},
bulkUpdate: async (input: {
@@ -227,10 +286,18 @@ export const applicationService = {
},
bulkDelete: async (input: { userId: string; ids: string[] }) => {
const existing = await db
.select()
.from(schema.application)
.where(and(inArray(schema.application.id, input.ids), eq(schema.application.userId, input.userId)));
const rows = await db
.delete(schema.application)
.where(and(inArray(schema.application.id, input.ids), eq(schema.application.userId, input.userId)))
.returning({ id: schema.application.id });
await deleteApplicationAttachments(
input.userId,
existing.filter((application) => rows.some((row) => row.id === application.id)),
);
return { deleted: rows.length };
},
+1 -1
View File
@@ -8,7 +8,7 @@ test("exports and imports a resume JSON backup", async ({ authPage: page }, test
await openSidebarSection(page, "Export");
// Downloads now live in a dialog: open it, then trigger the JSON export.
await page.getByRole("button", { name: /Choose PDF, DOCX, or JSON/ }).click();
await page.getByRole("button", { name: /Choose PDF, DOCX, Markdown, or JSON/ }).click();
const downloadPromise = page.waitForEvent("download");
await page.getByRole("button", { name: "Download JSON" }).click();
const download = await downloadPromise;