mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-10 13:05:48 +10:00
fix: address application tracker review findings
This commit is contained in:
+84
-42
@@ -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 PDF‑be?"
|
||||
#: 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 "E‑mail"
|
||||
#. 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‑mail 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+348
-880
File diff suppressed because it is too large
Load Diff
+352
-893
File diff suppressed because it is too large
Load Diff
+330
-825
File diff suppressed because it is too large
Load Diff
+332
-829
File diff suppressed because it is too large
Load Diff
+342
-862
File diff suppressed because it is too large
Load Diff
+327
-809
File diff suppressed because it is too large
Load Diff
+324
-799
File diff suppressed because it is too large
Load Diff
+361
-940
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;
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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 };
|
||||
},
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user