feat(agent): adopt AI SDK v7 — crash safety, context pruning, HITL approvals (#3362)

* docs(adr): propose agent AI SDK v7 adoption plan

* fix(ai): bind analyzeResume through aiService in service test

The test destructured analyzeResume as a named export that does not exist; main was red.

* test(agent): keep pure ai helpers real via spread-actual mock factory

* feat(agent): add run guards, patch version guard, run wall-clock timeout

* feat(agent): validate UI messages at the send boundary

* feat(agent): crash-safe draft-row persistence and server-side cancellation

* feat(agent): reap stale run claims at boot, on send, and on thread open

* feat(agent): fresh-document patch output and tiered context pruning

* feat(ai): shared agent tool contracts and message metadata schema

* feat(agent): add per-thread review-patches setting with update endpoint

* feat(agent): gate resume patches behind hmac-signed tool approval

* feat(agent): merge question answers and approval decisions before run claim

* feat(agent): approval ui with composed auto-send and fixture-driven tests

* feat(agent): usage metadata, tool activity cards, smoother streaming

* feat(agent): tool-call repair, input examples, structured step logging

* chore(i18n): translate new agent workspace strings across all locales

* fix(agent): gate stale-run draft cancellation on winning the claim clear

Snapshot streaming drafts before the conditional clear and skip the flip entirely when another reaper or a replacement run already cleared the claim. Also address review nits in eleven locale catalogs.

* fix(agent): flip reaped drafts only when their snapshotted state is unchanged

* fix(agent): address review findings across run lifecycle, context budget, and approval flow

- bind patches to the revision the model read via signed baseUpdatedAt
- claim the run before consuming a continuation; recorded-but-unexecuted approvals retry as pending continuations
- keep run ownership on stop() until cancellation persists; preserve the claim for the reaper when final persistence fails
- estimate tokens without serializing binary attachments (tokenx) and enforce the budget by dropping oldest whole turns
- mark crash-recovered patch results as snapshot boundaries; strip /data prefixes at execution time
- retry failed continuations without regenerate; mount a single AgentChat; disable response controls on read-only threads; freeze review toggle during runs (client+server)
- accumulate usage across continuations and match the SDK's nested usage shape; label-form token strings; reorderable source label; accessible note field; state-neutral web-search label

* chore(i18n): translate revised agent strings across all locales

* fix(agent): harden baseUpdatedAt validation and address review follow-ups

- bundle tokenx in the server runtime dependencies (e2e boot failure)
- strict ISO schema for baseUpdatedAt plus loud executor rejection of unparseable values
- it-IT source label consistency (Fonte)
- prove penultimate-turn retention in the context pruning test

* chore(deps): exempt tokenx from knip for the externalized server bundle
This commit is contained in:
Amruth Pillai
2026-08-20 08:06:53 +02:00
committed by GitHub
parent dbbab6fd76
commit c8081ac2fe
95 changed files with 14919 additions and 497 deletions
+1
View File
@@ -79,6 +79,7 @@
"react-pdf-html": "^2.1.5", "react-pdf-html": "^2.1.5",
"resumable-stream": "^2.2.12", "resumable-stream": "^2.2.12",
"sharp": "^0.35.3", "sharp": "^0.35.3",
"tokenx": "^2.1.0",
"ts-pattern": "^5.9.0", "ts-pattern": "^5.9.0",
"unique-names-generator": "^4.7.1", "unique-names-generator": "^4.7.1",
"uuid": "^14.0.1", "uuid": "^14.0.1",
+11
View File
@@ -61,7 +61,18 @@ async function validateLocalStoragePath() {
} }
} }
async function reapStaleAgentRuns() {
try {
const { reapStaleAgentRunsAtBoot } = await import("@reactive-resume/api/features/agent/runs");
await reapStaleAgentRunsAtBoot();
} catch (error) {
// A reap failure must not block serving traffic; stuck runs also heal lazily on access.
console.error("Failed to reap stale agent runs at boot", { error });
}
}
export async function runStartupChecks() { export async function runStartupChecks() {
await runDatabaseMigrations(); await runDatabaseMigrations();
await validateLocalStoragePath(); await validateLocalStoragePath();
await reapStaleAgentRuns();
} }
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Aansoek gedoen"
msgid "Applied on" msgid "Applied on"
msgstr "Toegepas op" msgstr "Toegepas op"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Keur goed"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Goedgekeur — wag vir die agent…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabies" msgstr "Arabies"
@@ -1462,6 +1470,14 @@ msgstr "Besig om jou API-sleutel uit te vee..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Besig om jou CV uit te vee..." msgstr "Besig om jou CV uit te vee..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Geweier — wag vir die agent…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Weier"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Beskryf wat jy gedoen het sodat die inskrywing sleutelwoorde vir passing bydra." msgstr "Beskryf wat jy gedoen het sodat die inskrywing sleutelwoorde vir passing bydra."
@@ -1530,6 +1546,10 @@ msgstr "Skenk"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Skenk aan Reactive Resume" msgstr "Skenk aan Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Klaar"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Bewerk inhoud in volskermmodus"
msgid "Edit date" msgid "Edit date"
msgstr "Wysig datum" msgstr "Wysig datum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Wysiging afgekeur"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Voer jou CV onmiddellik na PDF uit, sonder enige wagtyd of vertragings."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Uitgevoerde pyplyn-vloei.png" msgstr "Uitgevoerde pyplyn-vloei.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Misluk"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Het misluk om die CV te ontleed." msgstr "Het misluk om die CV te ontleed."
@@ -1967,6 +1995,10 @@ msgstr "Misluk om die verskaffer los te koppel. Probeer asseblief weer."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Kon nie verskaffer opdateer nie." msgstr "Kon nie verskaffer opdateer nie."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Kon nie draadinstellings opdateer nie."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "maak in nuwe oortjie oop" msgstr "maak in nuwe oortjie oop"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Opsionele nota vir die agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Opsionele nota vir die agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Jy kan opsioneel 'n wagwoord stel sodat slegs mense met die wagwoord jou CV via die skakel kan bekyk." msgstr "Jy kan opsioneel 'n wagwoord stel sodat slegs mense met die wagwoord jou CV via die skakel kan bekyk."
@@ -3499,6 +3539,10 @@ msgstr "Publikasies"
msgid "Publisher" msgid "Publisher"
msgstr "Uitgewer" msgstr "Uitgewer"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Rou JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Hertelling" msgstr "Hertelling"
@@ -3546,10 +3590,18 @@ msgstr "Reaktiewe CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiewe CV v4 (JSON)" msgstr "Reaktiewe CV v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Het 'n aanhegsel gelees"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Lees die gids oor die toepassing van persoonlike style." msgstr "Lees die gids oor die toepassing van persoonlike style."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Het die CV gelees"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Lees die werksplasing…" msgstr "Lees die werksplasing…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Herstel" msgstr "Herstel"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Herstel die CV na voor hierdie opdatering? Dit sal hierdie opdatering en enige opdaterings wat daarna toegepas is, terugrol." msgstr "Herstel die CV na die toestand voor hierdie pleister?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "CV-analise voltooi."
msgid "Resume content" msgid "Resume content"
msgstr "CV-inhoud" msgstr "CV-inhoud"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "CV-wysiging"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "CV-lêer" msgstr "CV-lêer"
@@ -3754,10 +3810,18 @@ msgstr "CV's"
msgid "Retry" msgid "Retry"
msgstr "Probeer weer" msgstr "Probeer weer"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Hersien wysigings"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Hersien die CV teenoor 'n posbeskrywing en vra my vrae voordat jy onsekere afdelings verander." msgstr "Hersien die CV teenoor 'n posbeskrywing en vra my vrae voordat jy onsekere afdelings verander."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Hersien hierdie wysiging"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Hersien die opsomming sodat dit op 'n senior ingenieursbestuurderrol gemik is sonder om generies te klink." msgstr "Hersien die opsomming sodat dit op 'n senior ingenieursbestuurderrol gemik is sonder om generies te klink."
@@ -3798,6 +3862,10 @@ msgstr "Rotasie"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Voer jou eerste ontleding uit om 'n puntkaart, sterkpunte en geprioritiseerde voorstelle te kry." msgstr "Voer jou eerste ontleding uit om 'n puntkaart, sterkpunte en geprioritiseerde voorstelle te kry."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Besig…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russies" msgstr "Russies"
@@ -4253,6 +4321,15 @@ msgstr "Bron"
msgid "Source Code" msgid "Source Code"
msgstr "Bronkode" msgstr "Bronkode"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Bron: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Bronne"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Spasiëring (horisontaal)" msgstr "Spasiëring (horisontaal)"
@@ -4604,6 +4681,10 @@ msgstr "Hierdie assistent kon nie oopgemaak word nie."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Hierdie datum sal nie korrek gelees word nie." msgstr "Hierdie datum sal nie korrek gelees word nie."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Hierdie wysigingsversoek kan nie meer beantwoord word nie."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Hierdie e-posadres sal nie herken word nie." msgstr "Hierdie e-posadres sal nie herken word nie."
@@ -4712,6 +4793,10 @@ msgstr "Dit sal jou help om dit later te identifiseer, as jy beplan om verskeie
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Dit sal alle items uit hierdie afdeling verwyder." msgstr "Dit sal alle items uit hierdie afdeling verwyder."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Dit sal hierdie pleister en enige pleisters wat daarna toegepas is, terugrol."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Skakel regterkantpaneel aan"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Wissel drade" msgstr "Wissel drade"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} gekas)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Volg 'n werk waarvoor jy aansoek doen en skakel die CV wat jy gestuur het." msgstr "Volg 'n werk waarvoor jy aansoek doen en skakel die CV wat jy gestuur het."
@@ -5213,6 +5310,10 @@ msgstr "Ons kon nie die formaat outomaties opspoor nie — kies dit asseblief hi
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Ons kon nie daardie bladsy vind nie" msgstr "Ons kon nie daardie bladsy vind nie"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Websoektog"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zoem uit"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zoeloe" msgstr "Zoeloe"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "ተመልክቷል"
msgid "Applied on" msgid "Applied on"
msgstr "የተተገበረው በ" msgstr "የተተገበረው በ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "አጽድቅ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "ጸድቋል — ወኪሉን በመጠበቅ ላይ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ዓረብኛ" msgstr "ዓረብኛ"
@@ -1462,6 +1470,14 @@ msgstr "API ቁልፎትን በመሰረዝ ላይ…"
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "የየታሪክዎን በመሰረዝ ላይ…" msgstr "የየታሪክዎን በመሰረዝ ላይ…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "ተከልክሏል — ወኪሉን በመጠበቅ ላይ…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "ከልክል"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "ግቤቱ ለማዛመድ ቁልፍ ቃላትን እንዲያበረክት ያደረጉትን ይግለጹ።" msgstr "ግቤቱ ለማዛመድ ቁልፍ ቃላትን እንዲያበረክት ያደረጉትን ይግለጹ።"
@@ -1530,6 +1546,10 @@ msgstr "ይለግሱ"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "ለ Reactive Resume መዋጮ አድርግ" msgstr "ለ Reactive Resume መዋጮ አድርግ"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "ተጠናቅቋል"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ይዘትን በሙሉ ማያ ገጽ ሁነታ አርትዕ"
msgid "Edit date" msgid "Edit date"
msgstr "ቀን አርትዕ" msgstr "ቀን አርትዕ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "አርትዖቱ ውድቅ ተደርጓል"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "ያለምንም መዘግየት ወይም መጠበቅ፣ የስራ ል
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "ወደ ውጭ የተላከ የ pipeline-flow.png" msgstr "ወደ ውጭ የተላከ የ pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "አልተሳካም"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "የሥራ ማመልከቻ ሰነድን መተንተን አልተሳካም።" msgstr "የሥራ ማመልከቻ ሰነድን መተንተን አልተሳካም።"
@@ -1967,6 +1995,10 @@ msgstr "ከአቅራቢው ጋር ያለውን ግንኙነት ማቋረጥ አ
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "አቅራቢውን ማዘመን አልተሳካም።" msgstr "አቅራቢውን ማዘመን አልተሳካም።"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "የክሩን ቅንብሮች ማዘመን አልተሳካም።"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "በአዲስ ታብ ይከፈታል" msgstr "በአዲስ ታብ ይከፈታል"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ለወኪሉ አማራጭ ማስታወሻ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ለወኪሉ አማራጭ ማስታወሻ…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "በፈቃድ የይለፍ ቃል በመቀበል ብቻ እንዲመለከቱት ለምታስችላቸው ሰዎች የይለፍ ቃል ያቀናብሩ።" msgstr "በፈቃድ የይለፍ ቃል በመቀበል ብቻ እንዲመለከቱት ለምታስችላቸው ሰዎች የይለፍ ቃል ያቀናብሩ።"
@@ -3499,6 +3539,10 @@ msgstr "ህትመቶች"
msgid "Publisher" msgid "Publisher"
msgstr "አታሚ" msgstr "አታሚ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "ጥሬ JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "እንደገና ውጤት አስመዝግቧል" msgstr "እንደገና ውጤት አስመዝግቧል"
@@ -3546,10 +3590,18 @@ msgstr "ምላሽ ሰጪ የስራ ልምድ v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "አባሪ አንብቧል"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "የአጠቃቀም ብጁ ቅጦች መመሪያን ያንብቡ።" msgstr "የአጠቃቀም ብጁ ቅጦች መመሪያን ያንብቡ።"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "የስራ ልምድ ማስረጃውን አንብቧል"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "ማስታወቂያውን በማንበብ ላይ…" msgstr "ማስታወቂያውን በማንበብ ላይ…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "ወደነበረበት መልስ" msgstr "ወደነበረበት መልስ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "ከዚህ ፓች በፊት የነበረውን የስራ ልምድ (ሲቪ) ወደነበረበት ይመልሱ? ይህ ይህንን ፓች እና ከእሱ በኋላ የተተገበሩትን ፓችዎች ይመልሳል።" msgstr "የስራ ልምድ ማስረጃው ከዚህ ፓች በፊት ወደነበረበት ይመለስ?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "የሥራ ማመልከቻ ሰነድ ትንተና ተጠናቋል።"
msgid "Resume content" msgid "Resume content"
msgstr "የሪቪው ይዘት" msgstr "የሪቪው ይዘት"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "የስራ ልምድ ማስረጃ አርትዖት"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "የሪዙሜ ፋይል" msgstr "የሪዙሜ ፋይል"
@@ -3754,10 +3810,18 @@ msgstr "የየታሪክ ማቅረቢያዎች"
msgid "Retry" msgid "Retry"
msgstr "እንደገና ሞክር" msgstr "እንደገና ሞክር"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "አርትዖቶችን ገምግም"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "የሥራ መግለጫውን ከስራ መግለጫ ጋር በማነፃፀር ይገምግሙ እና እርግጠኛ ያልሆኑ ክፍሎችን ከመቀየርዎ በፊት ጥያቄዎችን ይጠይቁኝ።" msgstr "የሥራ መግለጫውን ከስራ መግለጫ ጋር በማነፃፀር ይገምግሙ እና እርግጠኛ ያልሆኑ ክፍሎችን ከመቀየርዎ በፊት ጥያቄዎችን ይጠይቁኝ።"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ይህን አርትዖት ገምግም"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "አጠቃላይ የሚመስል ሳይመስል የከፍተኛ የምህንድስና ሥራ አስኪያጅ ሚናን ኢላማ ለማድረግ ማጠቃለያውን እንደገና ያስተካክሉ።" msgstr "አጠቃላይ የሚመስል ሳይመስል የከፍተኛ የምህንድስና ሥራ አስኪያጅ ሚናን ኢላማ ለማድረግ ማጠቃለያውን እንደገና ያስተካክሉ።"
@@ -3798,6 +3862,10 @@ msgstr "ማሽከርከር"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "የውጤት ካርድ፣ ጥንካሬዎች እና ቅድሚያ የተሰጣቸው አስተያየቶችን ለማግኘት የመጀመሪያ ትንተናዎን ያከናውኑ።" msgstr "የውጤት ካርድ፣ ጥንካሬዎች እና ቅድሚያ የተሰጣቸው አስተያየቶችን ለማግኘት የመጀመሪያ ትንተናዎን ያከናውኑ።"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "በሂደት ላይ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "ሩስኛ" msgstr "ሩስኛ"
@@ -4253,6 +4321,15 @@ msgstr "ምንጭ"
msgid "Source Code" msgid "Source Code"
msgstr "የምንጭ ኮድ" msgstr "የምንጭ ኮድ"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "ምንጭ: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ምንጮች"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "ክፍተት (አግድም)" msgstr "ክፍተት (አግድም)"
@@ -4604,6 +4681,10 @@ msgstr "ይህ ረዳት ሊከፈት አልቻለም።"
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "ይህ ቀን በትክክል አይነበብም።" msgstr "ይህ ቀን በትክክል አይነበብም።"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "ይህ የአርትዖት ጥያቄ ከእንግዲህ ምላሽ ሊሰጠው አይችልም።"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "ይህ ኢሜይል አድራሻ አይታወቅም።" msgstr "ይህ ኢሜይል አድራሻ አይታወቅም።"
@@ -4712,6 +4793,10 @@ msgstr "ብዙ ፓስኪዎች እንዲኖሩዎት ካሰቡ፣ ይህ በኋ
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "ይህ ከዚህ ክፍል ውስጥ ያሉ ሁሉንም ንጥሎች ያስወግዳል።" msgstr "ይህ ከዚህ ክፍል ውስጥ ያሉ ሁሉንም ንጥሎች ያስወግዳል።"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "ይህ ይህን ፓች እና ከእሱ በኋላ የተተገበሩ ማናቸውንም ፓቾች ወደ ኋላ ይመልሳል።"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "የቀኝ የጎን አሞሌን ቀያይር"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "ክሮችን ቀያይር" msgstr "ክሮችን ቀያይር"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "ቶከኖች: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "ቶከኖች: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "ቶከኖች: {total} ({cached} የተሸጎጠ)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "የሚያመለክቱበትን ሥራ ይከታተሉ እና የላኩትን የሥራ ልምድ (ሲቪ) ያገናኙ።" msgstr "የሚያመለክቱበትን ሥራ ይከታተሉ እና የላኩትን የሥራ ልምድ (ሲቪ) ያገናኙ።"
@@ -5213,6 +5310,10 @@ msgstr "ቅርጸቱን በራስ-ሰር ማግኘት አልቻልንም፤ እ
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "ያንን ገጽ ማግኘት አልቻልንም" msgstr "ያንን ገጽ ማግኘት አልቻልንም"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "የድር ፍለጋ"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "አጉር"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ዙሉ" msgstr "ዙሉ"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "تم التقديم"
msgid "Applied on" msgid "Applied on"
msgstr "تم التقديم في" msgstr "تم التقديم في"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "موافقة"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "تمت الموافقة — في انتظار الوكيل…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "العربية" msgstr "العربية"
@@ -1462,6 +1470,14 @@ msgstr "جاري حذف مفتاح واجهة برمجة التطبيقات (API
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "جاري حذف سيرتك الذاتية..." msgstr "جاري حذف سيرتك الذاتية..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "تم الرفض — في انتظار الوكيل…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "رفض"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "قم بوصف ما قمت به حتى يساهم الإدخال بكلمات رئيسية للمطابقة." msgstr "قم بوصف ما قمت به حتى يساهم الإدخال بكلمات رئيسية للمطابقة."
@@ -1530,6 +1546,10 @@ msgstr "يتبرع"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "تبرع لـReactive Resume" msgstr "تبرع لـReactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "تم"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "تحرير المحتوى في وضع ملء الشاشة"
msgid "Edit date" msgid "Edit date"
msgstr "تعديل التاريخ" msgstr "تعديل التاريخ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "تم رفض التعديل"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "قم بتصدير سيرتك الذاتية إلى ملف PDF على ا
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "تم تصدير ملف pipeline-flow.png" msgstr "تم تصدير ملف pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "فشل"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "فشل في تحليل السيرة الذاتية." msgstr "فشل في تحليل السيرة الذاتية."
@@ -1967,6 +1995,10 @@ msgstr "فشل إلغاء ربط الموفر. يرجى المحاولة مرة
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "فشل تحديث الموفر." msgstr "فشل تحديث الموفر."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "فشل تحديث إعدادات الموضوع."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "الموجه المفتوح (OpenRouter)"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "يفتح في علامة تبويب جديدة" msgstr "يفتح في علامة تبويب جديدة"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ملاحظة اختيارية للوكيل"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ملاحظة اختيارية للوكيل…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "اختياريًا، يمكنك تعيين كلمة مرور حتى يتمكن فقط الأشخاص الذين لديهم كلمة المرور من عرض سيرتك الذاتية عبر الرابط." msgstr "اختياريًا، يمكنك تعيين كلمة مرور حتى يتمكن فقط الأشخاص الذين لديهم كلمة المرور من عرض سيرتك الذاتية عبر الرابط."
@@ -3499,6 +3539,10 @@ msgstr "المنشورات"
msgid "Publisher" msgid "Publisher"
msgstr "الناشر" msgstr "الناشر"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON خام"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "إعادة التقييم" msgstr "إعادة التقييم"
@@ -3546,10 +3590,18 @@ msgstr "السيرة الذاتية التفاعلية v<0>{__APP_VERSION__}</0>
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "استئناف تفاعلي الإصدار 4 (JSON)" msgstr "استئناف تفاعلي الإصدار 4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "قرأ مرفقًا"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "اقرأ دليل تطبيق الأنماط المخصصة." msgstr "اقرأ دليل تطبيق الأنماط المخصصة."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "قرأ السيرة الذاتية"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "جارٍ قراءة الإعلان…" msgstr "جارٍ قراءة الإعلان…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "يعيد" msgstr "يعيد"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "هل تريد استعادة النظام إلى ما قبل هذا التحديث؟ سيؤدي هذا إلى التراجع عن هذا التحديث وأي تحديثات أخرى تم تطبيقها بعده." msgstr "استعادة السيرة الذاتية إلى ما قبل هذه الرقعة؟"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "اكتمل تحليل السيرة الذاتية."
msgid "Resume content" msgid "Resume content"
msgstr "محتوى السيرة الذاتية" msgstr "محتوى السيرة الذاتية"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "تعديل السيرة الذاتية"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "ملف السيرة الذاتية" msgstr "ملف السيرة الذاتية"
@@ -3754,10 +3810,18 @@ msgstr "السير الذاتية"
msgid "Retry" msgid "Retry"
msgstr "إعادة المحاولة" msgstr "إعادة المحاولة"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "مراجعة التعديلات"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "راجع السيرة الذاتية مع وصف الوظيفة واطرح عليّ أسئلة قبل تغيير الأقسام غير الواضحة." msgstr "راجع السيرة الذاتية مع وصف الوظيفة واطرح عليّ أسئلة قبل تغيير الأقسام غير الواضحة."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "مراجعة هذا التعديل"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "أعد صياغة الملخص بحيث يستهدف منصب مدير هندسي رفيع المستوى دون أن يبدو عاماً." msgstr "أعد صياغة الملخص بحيث يستهدف منصب مدير هندسي رفيع المستوى دون أن يبدو عاماً."
@@ -3798,6 +3862,10 @@ msgstr "الدوران"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "قم بإجراء تحليلك الأول للحصول على بطاقة الأداء ونقاط القوة والاقتراحات ذات الأولوية." msgstr "قم بإجراء تحليلك الأول للحصول على بطاقة الأداء ونقاط القوة والاقتراحات ذات الأولوية."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "قيد التشغيل…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "الروسية" msgstr "الروسية"
@@ -4253,6 +4321,15 @@ msgstr "مصدر"
msgid "Source Code" msgid "Source Code"
msgstr "شفرة المصدر" msgstr "شفرة المصدر"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "المصدر: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "المصادر"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "تباعد (أفقي)" msgstr "تباعد (أفقي)"
@@ -4604,6 +4681,10 @@ msgstr "تعذر فتح هذا المساعد."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "لن يتم قراءة هذا التاريخ بشكل صحيح." msgstr "لن يتم قراءة هذا التاريخ بشكل صحيح."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "لم يعد من الممكن الرد على طلب التعديل هذا."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "لن يتم التعرف على عنوان البريد الإلكتروني هذا." msgstr "لن يتم التعرف على عنوان البريد الإلكتروني هذا."
@@ -4712,6 +4793,10 @@ msgstr "سيساعدك هذا في تحديدها لاحقاً، إذا كنت
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "سيؤدي ذلك إلى إزالة جميع العناصر من هذا القسم." msgstr "سيؤدي ذلك إلى إزالة جميع العناصر من هذا القسم."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "سيؤدي هذا إلى التراجع عن هذه الرقعة وأي رقع طُبّقت بعدها."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "تبديل الشريط الجانبي الأيمن"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "تبديل الخيوط" msgstr "تبديل الخيوط"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "الرموز: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "الرموز: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "الرموز: {total} ({cached} مخزّنة مؤقتًا)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "تتبع الوظيفة التي تتقدم لها وقم بربط السيرة الذاتية التي أرسلتها." msgstr "تتبع الوظيفة التي تتقدم لها وقم بربط السيرة الذاتية التي أرسلتها."
@@ -5213,6 +5310,10 @@ msgstr "لم نتمكن من اكتشاف التنسيق تلقائيًا - ير
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "لم نتمكن من العثور على تلك الصفحة" msgstr "لم نتمكن من العثور على تلك الصفحة"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "بحث الويب"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "تصغير"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "الزولو" msgstr "الزولو"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Müraciət edildi"
msgid "Applied on" msgid "Applied on"
msgstr "Tətbiq edildiyi tarix" msgstr "Tətbiq edildiyi tarix"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Təsdiqlə"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Təsdiqləndi — agent gözlənilir…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Ərəb" msgstr "Ərəb"
@@ -1462,6 +1470,14 @@ msgstr "API açarınız silinir..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Özgeçmişiniz silinir..." msgstr "Özgeçmişiniz silinir..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Rədd edildi — agent gözlənilir…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Rədd et"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Nə etdiyinizi təsvir edin ki, giriş uyğunluq üçün açar sözlərə kömək etsin." msgstr "Nə etdiyinizi təsvir edin ki, giriş uyğunluq üçün açar sözlərə kömək etsin."
@@ -1530,6 +1546,10 @@ msgstr "Bağışlayın"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resumeyə ianə et" msgstr "Reactive Resumeyə ianə et"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Tamamlandı"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Məzmununu tam ekran rejimində redaktə edin"
msgid "Edit date" msgid "Edit date"
msgstr "Tarixi redaktə et" msgstr "Tarixi redaktə et"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Redaktə rədd edildi"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "CV-nizi heç bir gözləmə və ya gecikmə olmadan dərhal PDF formatı
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "İxrac edilmiş boru kəməri axını.png" msgstr "İxrac edilmiş boru kəməri axını.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Uğursuz oldu"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Rezüməni təhlil etmək mümkün olmadı." msgstr "Rezüməni təhlil etmək mümkün olmadı."
@@ -1967,6 +1995,10 @@ msgstr "Təchizatçını ayırmaq mümkün olmadı. Zəhmət olmasa yenidən cə
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Provayderi yeniləmək alınmadı." msgstr "Provayderi yeniləmək alınmadı."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Mövzu parametrlərini yeniləmək mümkün olmadı."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "AçıqRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "yeni vərəqdə açılır" msgstr "yeni vərəqdə açılır"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Agent üçün istəyə bağlı qeyd"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Agent üçün istəyə bağlı qeyd…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "İstəyə görə parol təyin edin ki, link vasitəsilə yalnız parolu bilənlər özgeçmişinizə baxa bilsin." msgstr "İstəyə görə parol təyin edin ki, link vasitəsilə yalnız parolu bilənlər özgeçmişinizə baxa bilsin."
@@ -3499,6 +3539,10 @@ msgstr "Nəşrlər"
msgid "Publisher" msgid "Publisher"
msgstr "Nəşriyyatçı" msgstr "Nəşriyyatçı"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Xam JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Yenidən hesablayın" msgstr "Yenidən hesablayın"
@@ -3546,10 +3590,18 @@ msgstr "Reaktiv CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiv Rezume v4 (JSON)" msgstr "Reaktiv Rezume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Əlavəni oxudu"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Xüsusi Stillərin Tətbiqi təlimatını oxuyun." msgstr "Xüsusi Stillərin Tətbiqi təlimatını oxuyun."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "CV-ni oxudu"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Elan oxunur…" msgstr "Elan oxunur…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Bərpa et" msgstr "Bərpa et"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "CV-ni bu yamadan əvvəlki vəziyyətinə bərpa etsinlər? Bu, bu yamanı və ondan sonra tətbiq olunan bütün yamaları geri qaytaracaq." msgstr "CV bu yamaqdan əvvəlki vəziyyətinə qaytarılsın?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Təcrübə təhlili tamamlandı."
msgid "Resume content" msgid "Resume content"
msgstr "CV məzmunu" msgstr "CV məzmunu"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "CV redaktəsi"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "CV faylı" msgstr "CV faylı"
@@ -3754,10 +3810,18 @@ msgstr "Özgeçmişlər"
msgid "Retry" msgid "Retry"
msgstr "Təkrar cəhd edin" msgstr "Təkrar cəhd edin"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Redaktələri nəzərdən keçir"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "CV-ni iş təsviri ilə müqayisə edin və qeyri-müəyyən bölmələri dəyişdirməzdən əvvəl mənə suallar verin." msgstr "CV-ni iş təsviri ilə müqayisə edin və qeyri-müəyyən bölmələri dəyişdirməzdən əvvəl mənə suallar verin."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Bu redaktəni nəzərdən keçir"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Xülasəni ümumi səslənmədən baş mühəndislik meneceri vəzifəsini hədəf alacaq şəkildə yenidən işləyin." msgstr "Xülasəni ümumi səslənmədən baş mühəndislik meneceri vəzifəsini hədəf alacaq şəkildə yenidən işləyin."
@@ -3798,6 +3862,10 @@ msgstr "Döndürmə"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "İlk təhlilinizi işə salın, skor kartı, güclü tərəflər və prioritetləşdirilmiş təkliflər əldə edin." msgstr "İlk təhlilinizi işə salın, skor kartı, güclü tərəflər və prioritetləşdirilmiş təkliflər əldə edin."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "İcra olunur…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rus" msgstr "Rus"
@@ -4253,6 +4321,15 @@ msgstr "Mənbə"
msgid "Source Code" msgid "Source Code"
msgstr "Mənbə Kodu" msgstr "Mənbə Kodu"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Mənbə: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Mənbələr"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Aralıq (Üfüqi)" msgstr "Aralıq (Üfüqi)"
@@ -4604,6 +4681,10 @@ msgstr "Bu köməkçi açıla bilmədi."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Bu tarix düzgün oxunmayacaq." msgstr "Bu tarix düzgün oxunmayacaq."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Bu redaktə sorğusuna artıq cavab vermək mümkün deyil."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Bu e-poçt ünvanı tanınmayacaq." msgstr "Bu e-poçt ünvanı tanınmayacaq."
@@ -4712,6 +4793,10 @@ msgstr "Əgər bir neçə keçid açarı planlaşdırırsınızsa, bu, sonradan
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Bu, bu bölmədən bütün elementləri siləcək." msgstr "Bu, bu bölmədən bütün elementləri siləcək."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Bu, həmin yamağı və ondan sonra tətbiq edilən bütün yamaqları geri qaytaracaq."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Sağ yan menyunu aç/bağla"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Mövzuları aç/bağla" msgstr "Mövzuları aç/bağla"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokenlər: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokenlər: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokenlər: {total} ({cached} keşlənmiş)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Müraciət etdiyiniz işi izləyin və göndərdiyiniz CV-ni əlaqələndirin." msgstr "Müraciət etdiyiniz işi izləyin və göndərdiyiniz CV-ni əlaqələndirin."
@@ -5213,6 +5310,10 @@ msgstr "Formatı avtomatik olaraq aşkarlaya bilmədik — zəhmət olmasa, yuxa
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Həmin səhifəni tapa bilmədik" msgstr "Həmin səhifəni tapa bilmədik"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Veb axtarışı"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Uzaqlaşdır"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Кандидатствано"
msgid "Applied on" msgid "Applied on"
msgstr "Приложено на" msgstr "Приложено на"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Одобряване"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Одобрено — изчакване на агента…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арабски" msgstr "Арабски"
@@ -1462,6 +1470,14 @@ msgstr "Изтриване на вашия API ключ..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Вашата автобиография се изтрива..." msgstr "Вашата автобиография се изтрива..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Отхвърлено — изчакване на агента…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Отхвърляне"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Опишете какво сте направили, така че записът да допринесе с ключови думи за съвпадение." msgstr "Опишете какво сте направили, така че записът да допринесе с ключови думи за съвпадение."
@@ -1530,6 +1546,10 @@ msgstr "Дарете"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Дарете на Reactive Resume" msgstr "Дарете на Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Готово"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Редактиране на съдържание в режим на ця
msgid "Edit date" msgid "Edit date"
msgstr "Редактиране на дата" msgstr "Редактиране на дата"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Редакцията е отхвърлена"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Експортирайте автобиографията си в PDF ф
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Експортиран pipeline-flow.png" msgstr "Експортиран pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Неуспешно"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Не успя да анализира резюме." msgstr "Не успя да анализира резюме."
@@ -1967,6 +1995,10 @@ msgstr "Неуспех при развързването на доставчик
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Актуализирането на доставчика не бе успешно." msgstr "Актуализирането на доставчика не бе успешно."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Неуспешно актуализиране на настройките на нишката."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "отваря се в нов раздел" msgstr "отваря се в нов раздел"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Незадължителна бележка за агента"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Незадължителна бележка за агента…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "По желание задайте парола, така че само хората с нея да могат да виждат автобиографията ви чрез връзката." msgstr "По желание задайте парола, така че само хората с нея да могат да виждат автобиографията ви чрез връзката."
@@ -3499,6 +3539,10 @@ msgstr "Публикации"
msgid "Publisher" msgid "Publisher"
msgstr "Издател" msgstr "Издател"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Суров JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Преоценка" msgstr "Преоценка"
@@ -3546,10 +3590,18 @@ msgstr "Реактивно резюме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Прочете прикачен файл"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Прочетете ръководството за прилагане на персонализирани стилове." msgstr "Прочетете ръководството за прилагане на персонализирани стилове."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Прочете автобиографията"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Обявата се чете…" msgstr "Обявата се чете…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Възстановяване" msgstr "Възстановяване"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Да се възстанови ли автобиографията до състоянието преди този пач? Това ще отмени този пач и всички пачове, приложени след него." msgstr "Възстановяване на автобиографията до състоянието преди този пач?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Анализът на автобиографията е завършен
msgid "Resume content" msgid "Resume content"
msgstr "Съдържание на автобиографията" msgstr "Съдържание на автобиографията"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Редакция на автобиографията"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Файл с автобиография" msgstr "Файл с автобиография"
@@ -3754,10 +3810,18 @@ msgstr "Автобиографии"
msgid "Retry" msgid "Retry"
msgstr "Опитай отново" msgstr "Опитай отново"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Преглед на редакциите"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Прегледайте автобиографията си спрямо описанието на длъжността и ми задайте въпроси, преди да променяте неясните части." msgstr "Прегледайте автобиографията си спрямо описанието на длъжността и ми задайте въпроси, преди да променяте неясните части."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Преглед на тази редакция"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Преработете резюмето, така че да е насочено към позицията на старши инженерен мениджър, без да звучи обобщено." msgstr "Преработете резюмето, така че да е насочено към позицията на старши инженерен мениджър, без да звучи обобщено."
@@ -3798,6 +3862,10 @@ msgstr "Завъртане"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Извършете първия си анализ, за да получите карта с резултати, силни страни и предложения по приоритети." msgstr "Извършете първия си анализ, за да получите карта с резултати, силни страни и предложения по приоритети."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Изпълнява се…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Руски" msgstr "Руски"
@@ -4253,6 +4321,15 @@ msgstr "Източник"
msgid "Source Code" msgid "Source Code"
msgstr "Изходен код" msgstr "Изходен код"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Източник: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Източници"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Разстояние (хоризонтално)" msgstr "Разстояние (хоризонтално)"
@@ -4604,6 +4681,10 @@ msgstr "Този асистент не можа да бъде отворен."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Тази дата няма да бъде разчетена правилно." msgstr "Тази дата няма да бъде разчетена правилно."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "На тази заявка за редакция вече не може да се отговори."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Този имейл адрес няма да бъде разпознат." msgstr "Този имейл адрес няма да бъде разпознат."
@@ -4712,6 +4793,10 @@ msgstr "Това ще ви помогне да го идентифицирате
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Това ще премахне всички елементи от този раздел." msgstr "Това ще премахне всички елементи от този раздел."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Това ще върне този пач и всички пачове, приложени след него."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Превключване на дясната странична лент
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Превключване на нишки" msgstr "Превключване на нишки"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Токени: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Токени: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Токени: {total} ({cached} кеширани)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Проследете работата, за която кандидатствате, и добавете линк към автобиографията, която сте изпратили." msgstr "Проследете работата, за която кандидатствате, и добавете линк към автобиографията, която сте изпратили."
@@ -5213,6 +5310,10 @@ msgstr "Не успяхме да разпознаем формата автом
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Не успяхме да намерим тази страница" msgstr "Не успяхме да намерим тази страница"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Уеб търсене"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Намаляване"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулуски" msgstr "Зулуски"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "আবেদন করা হয়েছে"
msgid "Applied on" msgid "Applied on"
msgstr "প্রয়োগ করা হয়েছে" msgstr "প্রয়োগ করা হয়েছে"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "অনুমোদন করুন"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "অনুমোদিত — এজেন্টের জন্য অপেক্ষা করা হচ্ছে…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "আরবি" msgstr "আরবি"
@@ -1462,6 +1470,14 @@ msgstr "আপনার API কী মুছে ফেলা হচ্ছে..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "আপনার জীবনবৃত্তান্ত মুছে ফেলা হচ্ছে..." msgstr "আপনার জীবনবৃত্তান্ত মুছে ফেলা হচ্ছে..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "প্রত্যাখ্যাত — এজেন্টের জন্য অপেক্ষা করা হচ্ছে…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "প্রত্যাখ্যান করুন"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "আপনি কি করেছেন তা বর্ণনা করুন যাতে এন্ট্রিটি মিলের জন্য কীওয়ার্ডে অবদান রাখে।" msgstr "আপনি কি করেছেন তা বর্ণনা করুন যাতে এন্ট্রিটি মিলের জন্য কীওয়ার্ডে অবদান রাখে।"
@@ -1530,6 +1546,10 @@ msgstr "দান করুন"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume-এ অনুদান দিন" msgstr "Reactive Resume-এ অনুদান দিন"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "সম্পন্ন"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ফুলস্ক্রিন মোডে বিষয়বস্ত
msgid "Edit date" msgid "Edit date"
msgstr "তারিখ সম্পাদনা করুন" msgstr "তারিখ সম্পাদনা করুন"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "সম্পাদনা প্রত্যাখ্যান করা হয়েছে"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "কোনো অপেক্ষা বা বিলম্ব ছাড
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "রপ্তানিকৃত পাইপলাইন-প্রবাহ.png" msgstr "রপ্তানিকৃত পাইপলাইন-প্রবাহ.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "ব্যর্থ হয়েছে"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "রিজিউম বিশ্লেষণ করতে ব্যর্থ।" msgstr "রিজিউম বিশ্লেষণ করতে ব্যর্থ।"
@@ -1967,6 +1995,10 @@ msgstr "প্রোভাইডার আনলিঙ্ক করতে ব্
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "প্রোভাইডার আপডেট করতে ব্যর্থ হয়েছে।" msgstr "প্রোভাইডার আপডেট করতে ব্যর্থ হয়েছে।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "থ্রেড সেটিংস আপডেট করা সম্ভব হয়নি।"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ওপেনরাউটার"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "নতুন ট্যাবে খুলবে" msgstr "নতুন ট্যাবে খুলবে"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "এজেন্টের জন্য ঐচ্ছিক নোট"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "এজেন্টের জন্য ঐচ্ছিক নোট…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "প্রয়োজনে একটি পাসওয়ার্ড সেট করুন, যাতে শুধু পাসওয়ার্ড জানা ব্যক্তিরাই লিঙ্কের মাধ্যমে আপনার জীবনবৃত্তান্ত দেখতে পারে।" msgstr "প্রয়োজনে একটি পাসওয়ার্ড সেট করুন, যাতে শুধু পাসওয়ার্ড জানা ব্যক্তিরাই লিঙ্কের মাধ্যমে আপনার জীবনবৃত্তান্ত দেখতে পারে।"
@@ -3499,6 +3539,10 @@ msgstr "প্রকাশনাসমূহ"
msgid "Publisher" msgid "Publisher"
msgstr "প্রকাশক" msgstr "প্রকাশক"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "কাঁচা JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "পুনরায় স্কোর করুন" msgstr "পুনরায় স্কোর করুন"
@@ -3546,10 +3590,18 @@ msgstr "প্রতিক্রিয়াশীল জীবনবৃত্
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "প্রতিক্রিয়াশীল রিজ্যুম v4 (JSON)" msgstr "প্রতিক্রিয়াশীল রিজ্যুম v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "একটি সংযুক্তি পড়া হয়েছে"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "কাস্টম স্টাইল প্রয়োগ করার নির্দেশিকাটি পড়ুন।" msgstr "কাস্টম স্টাইল প্রয়োগ করার নির্দেশিকাটি পড়ুন।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "জীবনবৃত্তান্ত পড়া হয়েছে"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "বিজ্ঞপ্তি পড়া হচ্ছে…" msgstr "বিজ্ঞপ্তি পড়া হচ্ছে…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "পুনরুদ্ধার করুন" msgstr "পুনরুদ্ধার করুন"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "এই প্যাচের আগের অবস্থায় রেজিউমটি পুনরুদ্ধার করবেন? এটি এই প্যাচ এবং এর পরে প্রয়োগ করা যেকোনো প্যাচকে রোল ব্যাক করবে।" msgstr "এই প্যাচের আগের অবস্থায় জীবনবৃত্তান্ত পুনরুদ্ধার করবেন?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "রিজিউমে বিশ্লেষণ সম্পন্ন।"
msgid "Resume content" msgid "Resume content"
msgstr "জীবনবৃত্তান্তের বিষয়বস্তু" msgstr "জীবনবৃত্তান্তের বিষয়বস্তু"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "জীবনবৃত্তান্ত সম্পাদনা"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "জীবনবৃত্তান্ত ফাইল" msgstr "জীবনবৃত্তান্ত ফাইল"
@@ -3754,10 +3810,18 @@ msgstr "জীবনবৃত্তান্তসমূহ"
msgid "Retry" msgid "Retry"
msgstr "পুনরায় চেষ্টা করুন" msgstr "পুনরায় চেষ্টা করুন"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "সম্পাদনাগুলি পর্যালোচনা করুন"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "চাকরির বিবরণের সাথে জীবনবৃত্তান্তটি মিলিয়ে পর্যালোচনা করুন এবং কোনো অস্পষ্ট অংশ পরিবর্তন করার আগে আমাকে প্রশ্ন করুন।" msgstr "চাকরির বিবরণের সাথে জীবনবৃত্তান্তটি মিলিয়ে পর্যালোচনা করুন এবং কোনো অস্পষ্ট অংশ পরিবর্তন করার আগে আমাকে প্রশ্ন করুন।"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "এই সম্পাদনাটি পর্যালোচনা করুন"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "সারাংশটি এমনভাবে পুনর্গঠন করুন যাতে এটি গতানুগতিক না হয়ে একজন সিনিয়র ইঞ্জিনিয়ারিং ম্যানেজারের পদকে লক্ষ্য করে তৈরি হয়।" msgstr "সারাংশটি এমনভাবে পুনর্গঠন করুন যাতে এটি গতানুগতিক না হয়ে একজন সিনিয়র ইঞ্জিনিয়ারিং ম্যানেজারের পদকে লক্ষ্য করে তৈরি হয়।"
@@ -3798,6 +3862,10 @@ msgstr "রোটেশন"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "আপনার প্রথম বিশ্লেষণ চালান একটি স্কোরকার্ড, শক্তি এবং অগ্রাধিকারপ্রাপ্ত পরামর্শ পেতে।" msgstr "আপনার প্রথম বিশ্লেষণ চালান একটি স্কোরকার্ড, শক্তি এবং অগ্রাধিকারপ্রাপ্ত পরামর্শ পেতে।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "চলছে…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "রুশ" msgstr "রুশ"
@@ -4253,6 +4321,15 @@ msgstr "উৎস"
msgid "Source Code" msgid "Source Code"
msgstr "সোর্স কোড" msgstr "সোর্স কোড"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "উৎস: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "উৎসসমূহ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "স্পেসিং (অনুভূমিক)" msgstr "স্পেসিং (অনুভূমিক)"
@@ -4604,6 +4681,10 @@ msgstr "এই সহকারীকে খোলা যায়নি।"
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "এই তারিখ সঠিকভাবে পড়া হবে না." msgstr "এই তারিখ সঠিকভাবে পড়া হবে না."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "এই সম্পাদনার অনুরোধের আর উত্তর দেওয়া যাবে না।"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "এই ইমেল ঠিকানা স্বীকৃত হবে না." msgstr "এই ইমেল ঠিকানা স্বীকৃত হবে না."
@@ -4712,6 +4793,10 @@ msgstr "যদি আপনি একাধিক পাসকি ব্যব
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "এটি এই বিভাগের সমস্ত আইটেম মুছে ফেলবে।" msgstr "এটি এই বিভাগের সমস্ত আইটেম মুছে ফেলবে।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "এটি এই প্যাচ এবং এর পরে প্রয়োগ করা সমস্ত প্যাচ ফিরিয়ে নেবে।"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "ডান সাইডবার টগল করুন"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "থ্রেড টগল করুন" msgstr "থ্রেড টগল করুন"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "টোকেন: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "টোকেন: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "টোকেন: {total} ({cached} ক্যাশ করা)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "যে চাকরিতে আবেদন করছেন তার খোঁজ রাখুন এবং আপনার পাঠানো জীবনবৃত্তান্তটি লিঙ্ক করুন।" msgstr "যে চাকরিতে আবেদন করছেন তার খোঁজ রাখুন এবং আপনার পাঠানো জীবনবৃত্তান্তটি লিঙ্ক করুন।"
@@ -5213,6 +5310,10 @@ msgstr "আমরা স্বয়ংক্রিয়ভাবে ফরম
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "আমরা সেই পৃষ্ঠাটি খুঁজে পাইনি।" msgstr "আমরা সেই পৃষ্ঠাটি খুঁজে পাইনি।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "ওয়েব অনুসন্ধান"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "জুম আউট"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "জুলু" msgstr "জুলু"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Sol·licitada"
msgid "Applied on" msgid "Applied on"
msgstr "Aplicat a" msgstr "Aplicat a"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Aprova"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Aprovat — esperant l'agent…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Àrab" msgstr "Àrab"
@@ -1462,6 +1470,14 @@ msgstr "Sestà suprimint la clau API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Sestà suprimint el currículum..." msgstr "Sestà suprimint el currículum..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Denegat — esperant l'agent…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Denega"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Descriu què has fet perquè l'entrada aporti paraules clau per a la coincidència." msgstr "Descriu què has fet perquè l'entrada aporti paraules clau per a la coincidència."
@@ -1530,6 +1546,10 @@ msgstr "Donar"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Fes una donació a Reactive Resume" msgstr "Fes una donació a Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Fet"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Edita el contingut en mode de pantalla completa"
msgid "Edit date" msgid "Edit date"
msgstr "Edita la data" msgstr "Edita la data"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edició rebutjada"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exporta el teu currículum a PDF a l'instant, sense esperes ni demores."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "S'ha exportat el flux de la canonada.png" msgstr "S'ha exportat el flux de la canonada.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Ha fallat"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "S'ha fallat l'anàlisi del currículum." msgstr "S'ha fallat l'anàlisi del currículum."
@@ -1967,6 +1995,10 @@ msgstr "S'ha fallat la desactivació del proveïdor. Torni a provar."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "No s'ha pogut actualitzar el proveïdor." msgstr "No s'ha pogut actualitzar el proveïdor."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "No s'ha pogut actualitzar la configuració del fil."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "Routador obert"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "sobre en una pestanya nova" msgstr "sobre en una pestanya nova"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Nota opcional per a l'agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Nota opcional per a l'agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcionalment, estableix una contrasenya perquè només les persones que la tinguin puguin veure el currículum mitjançant lenllaç." msgstr "Opcionalment, estableix una contrasenya perquè només les persones que la tinguin puguin veure el currículum mitjançant lenllaç."
@@ -3499,6 +3539,10 @@ msgstr "Publicacions"
msgid "Publisher" msgid "Publisher"
msgstr "Editor" msgstr "Editor"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON en brut"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Torna a puntuar" msgstr "Torna a puntuar"
@@ -3546,10 +3590,18 @@ msgstr "Currículum reactiu v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Ha llegit un adjunt"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Llegiu la guia Aplicació d'estils personalitzats." msgstr "Llegiu la guia Aplicació d'estils personalitzats."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Ha llegit el currículum"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "S'està llegint l'oferta…" msgstr "S'està llegint l'oferta…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restaurar" msgstr "Restaurar"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Voleu restaurar el currículum anterior a aquest pegat? Això reverteix aquest pegat i qualsevol pegat aplicat després." msgstr "Vols restaurar el currículum a l'estat anterior a aquest pegat?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Anàlisi del currículum completada."
msgid "Resume content" msgid "Resume content"
msgstr "Reprendre el contingut" msgstr "Reprendre el contingut"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Edició del currículum"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Fitxer de currículum" msgstr "Fitxer de currículum"
@@ -3754,10 +3810,18 @@ msgstr "Currículums"
msgid "Retry" msgid "Retry"
msgstr "Torna-ho a intentar" msgstr "Torna-ho a intentar"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Revisa les edicions"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Revisa el currículum en relació amb la descripció del lloc de treball i fes-me preguntes abans de canviar les seccions incertes." msgstr "Revisa el currículum en relació amb la descripció del lloc de treball i fes-me preguntes abans de canviar les seccions incertes."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Revisa aquesta edició"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Reelabora el resum perquè s'adreci a un rol de gerent sènior d'enginyeria sense que sembli genèric." msgstr "Reelabora el resum perquè s'adreci a un rol de gerent sènior d'enginyeria sense que sembli genèric."
@@ -3798,6 +3862,10 @@ msgstr "Rotació"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Executa la teva primera anàlisi per obtenir un quadre de comandament, els punts forts i suggeriments prioritzats." msgstr "Executa la teva primera anàlisi per obtenir un quadre de comandament, els punts forts i suggeriments prioritzats."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "S'està executant…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rus" msgstr "Rus"
@@ -4253,6 +4321,15 @@ msgstr "Font"
msgid "Source Code" msgid "Source Code"
msgstr "Codi font" msgstr "Codi font"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Font: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Fonts"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Espaiat (horitzontal)" msgstr "Espaiat (horitzontal)"
@@ -4604,6 +4681,10 @@ msgstr "No s'ha pogut obrir aquest assistent."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Aquesta data no es llegirà correctament." msgstr "Aquesta data no es llegirà correctament."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Aquesta sol·licitud d'edició ja no es pot respondre."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Aquesta adreça de correu electrònic no serà reconeguda." msgstr "Aquesta adreça de correu electrònic no serà reconeguda."
@@ -4712,6 +4793,10 @@ msgstr "Això t'ajudarà a identificar-la més endavant, si tens previst tenir d
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Això eliminarà tots els elements d'aquesta secció." msgstr "Això eliminarà tots els elements d'aquesta secció."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Això desfarà aquest pegat i tots els pegats aplicats després."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Canvia la barra lateral dreta"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Activa/desactiva els fils" msgstr "Activa/desactiva els fils"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} en memòria cau)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Fes un seguiment de la feina a la qual estàs sol·licitant i enllaça el currículum que has enviat." msgstr "Fes un seguiment de la feina a la qual estàs sol·licitant i enllaça el currículum que has enviat."
@@ -5213,6 +5310,10 @@ msgstr "No hem pogut detectar el format automàticament. Trieu-lo a dalt."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "No hem pogut trobar aquesta pàgina" msgstr "No hem pogut trobar aquesta pàgina"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Cerca web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Allunya"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulú" msgstr "Zulú"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Podáno"
msgid "Applied on" msgid "Applied on"
msgstr "Aplikováno na" msgstr "Aplikováno na"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Schválit"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Schváleno — čeká se na agenta…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabština" msgstr "Arabština"
@@ -1462,6 +1470,14 @@ msgstr "Mazání API klíče…"
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Mazání životopisu…" msgstr "Mazání životopisu…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Zamítnuto — čeká se na agenta…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Zamítnout"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Popište, co jste udělali, aby záznam přispěl ke shodě klíčových slov." msgstr "Popište, co jste udělali, aby záznam přispěl ke shodě klíčových slov."
@@ -1530,6 +1546,10 @@ msgstr "Darovat"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Přispět na Reactive Resume" msgstr "Přispět na Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Hotovo"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Úprava obsahu v celoobrazovkovém režimu"
msgid "Edit date" msgid "Edit date"
msgstr "Upravit datum" msgstr "Upravit datum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Úprava zamítnuta"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportujte svůj životopis do PDF okamžitě, bez čekání nebo zpožd
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Exportovaný soubor pipeline-flow.png" msgstr "Exportovaný soubor pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Selhalo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Nepodařilo se analyzovat životopis." msgstr "Nepodařilo se analyzovat životopis."
@@ -1967,6 +1995,10 @@ msgstr "Nepodařilo se zrušit propojení poskytovatele. Zkuste to prosím znovu
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Aktualizace poskytovatele se nezdařilo." msgstr "Aktualizace poskytovatele se nezdařilo."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nepodařilo se aktualizovat nastavení vlákna."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "otevře se na nové kartě" msgstr "otevře se na nové kartě"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Volitelná poznámka pro agenta"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Volitelná poznámka pro agenta…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Volitelně můžete nastavit heslo, aby si váš životopis mohli přes odkaz prohlédnout jen lidé, kteří heslo znají." msgstr "Volitelně můžete nastavit heslo, aby si váš životopis mohli přes odkaz prohlédnout jen lidé, kteří heslo znají."
@@ -3499,6 +3539,10 @@ msgstr "Publikace"
msgid "Publisher" msgid "Publisher"
msgstr "Vydavatel" msgstr "Vydavatel"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Surový JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Přehodnotit" msgstr "Přehodnotit"
@@ -3546,10 +3590,18 @@ msgstr "Reaktivní životopis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivní životopis v4 (JSON)" msgstr "Reaktivní životopis v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Přečetl přílohu"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Přečtěte si průvodce Použití vlastních stylů." msgstr "Přečtěte si průvodce Použití vlastních stylů."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Přečetl životopis"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Čtení inzerátu…" msgstr "Čtení inzerátu…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Obnovit" msgstr "Obnovit"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Obnovit životopis do stavu před touto opravou? Tato akce vrátí zpět tuto opravu a všechny opravy použité po ní." msgstr "Obnovit životopis do stavu před touto záplatou?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analýza životopisu dokončena."
msgid "Resume content" msgid "Resume content"
msgstr "Obsah životopisu" msgstr "Obsah životopisu"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Úprava životopisu"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Soubor životopisu" msgstr "Soubor životopisu"
@@ -3754,10 +3810,18 @@ msgstr "Životopisy"
msgid "Retry" msgid "Retry"
msgstr "Zkusit znovu" msgstr "Zkusit znovu"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Zkontrolovat úpravy"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Projděte si životopis s ohledem na popis práce a před změnou nejasných částí se mě zeptejte na otázky." msgstr "Projděte si životopis s ohledem na popis práce a před změnou nejasných částí se mě zeptejte na otázky."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Zkontrolovat tuto úpravu"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Přepracujte shrnutí tak, aby se zaměřovalo na pozici seniorního technického manažera, aniž by znělo genericky." msgstr "Přepracujte shrnutí tak, aby se zaměřovalo na pozici seniorního technického manažera, aniž by znělo genericky."
@@ -3798,6 +3862,10 @@ msgstr "Otočení"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Proveďte první analýzu a získejte hodnotící tabulku, silné stránky a návrhy priorit." msgstr "Proveďte první analýzu a získejte hodnotící tabulku, silné stránky a návrhy priorit."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Probíhá…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Ruština" msgstr "Ruština"
@@ -4253,6 +4321,15 @@ msgstr "Zdroj"
msgid "Source Code" msgid "Source Code"
msgstr "Zdrojový kód" msgstr "Zdrojový kód"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Zdroj: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Zdroje"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Rozestupy (vodorovné)" msgstr "Rozestupy (vodorovné)"
@@ -4604,6 +4681,10 @@ msgstr "Tohoto asistenta se nepodařilo otevřít."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Toto datum nebude správně přečteno." msgstr "Toto datum nebude správně přečteno."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Na tuto žádost o úpravu již nelze odpovědět."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Tato e-mailová adresa nebude rozpoznána." msgstr "Tato e-mailová adresa nebude rozpoznána."
@@ -4712,6 +4793,10 @@ msgstr "To vám pomůže identifikovat jej později, pokud plánujete mít více
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Tím se z této sekce odstraní všechny položky." msgstr "Tím se z této sekce odstraní všechny položky."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Tím se vrátí zpět tato záplata a všechny záplaty použité po ní."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Přepnutí pravého postranního panelu"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Přepnout vlákna" msgstr "Přepnout vlákna"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokeny: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokeny: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokeny: {total} ({cached} v mezipaměti)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Sledujte pracovní pozici, o kterou se ucházíte, a přidejte odkaz na životopis, který jste odeslali." msgstr "Sledujte pracovní pozici, o kterou se ucházíte, a přidejte odkaz na životopis, který jste odeslali."
@@ -5213,6 +5310,10 @@ msgstr "Formát se nám nepodařilo automaticky rozpoznat vyberte jej prosí
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Tuto stránku jsme nenašli" msgstr "Tuto stránku jsme nenašli"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Vyhledávání na webu"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Oddálit"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Ansøgt"
msgid "Applied on" msgid "Applied on"
msgstr "Anvendt den" msgstr "Anvendt den"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Godkend"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Godkendt — venter på agenten…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisk" msgstr "Arabisk"
@@ -1462,6 +1470,14 @@ msgstr "Sletter din API-nøgle..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Sletter dit CV..." msgstr "Sletter dit CV..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Afvist — venter på agenten…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Afvis"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Beskriv, hvad du gjorde, så posten bidrager med søgeord til matchning." msgstr "Beskriv, hvad du gjorde, så posten bidrager med søgeord til matchning."
@@ -1530,6 +1546,10 @@ msgstr "Donér"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donér til Reactive Resume" msgstr "Donér til Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Færdig"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Rediger indhold i fuldskærmstilstand"
msgid "Edit date" msgid "Edit date"
msgstr "Rediger dato" msgstr "Rediger dato"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Redigering afvist"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksporter dit CV til PDF med det samme, uden ventetid eller forsinkelser
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Eksporteret pipeline-flow.png" msgstr "Eksporteret pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Mislykkedes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Kunne ikke analysere CV'et." msgstr "Kunne ikke analysere CV'et."
@@ -1967,6 +1995,10 @@ msgstr "Det lykkedes ikke at fjerne forbindelsen til udbyderen. Prøv venligst i
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Kunne ikke opdatere udbyderen." msgstr "Kunne ikke opdatere udbyderen."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Kunne ikke opdatere trådindstillinger."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "åbner i ny fane" msgstr "åbner i ny fane"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Valgfri note til agenten"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Valgfri note til agenten…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Du kan valgfrit angive en adgangskode, så kun personer med adgangskoden kan se dit CV via linket." msgstr "Du kan valgfrit angive en adgangskode, så kun personer med adgangskoden kan se dit CV via linket."
@@ -3499,6 +3539,10 @@ msgstr "Publikationer"
msgid "Publisher" msgid "Publisher"
msgstr "Udgiver" msgstr "Udgiver"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Rå JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Omscor" msgstr "Omscor"
@@ -3546,10 +3590,18 @@ msgstr "Reaktivt CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivt CV v4 (JSON)" msgstr "Reaktivt CV v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Læste en vedhæftet fil"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Læs vejledningen til anvendelse af brugerdefinerede stilarter." msgstr "Læs vejledningen til anvendelse af brugerdefinerede stilarter."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Læste CV'et"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Læser opslaget…" msgstr "Læser opslaget…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Gendan" msgstr "Gendan"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Vil du gendanne cv'et til før denne patch? Dette vil rulle denne patch og eventuelle patches, der blev anvendt efter den, tilbage." msgstr "Gendan CV'et til før denne programrettelse?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "CV-analysen er færdig."
msgid "Resume content" msgid "Resume content"
msgstr "CV-indhold" msgstr "CV-indhold"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "CV-redigering"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "CV-fil" msgstr "CV-fil"
@@ -3754,10 +3810,18 @@ msgstr "CV'er"
msgid "Retry" msgid "Retry"
msgstr "Prøv igen" msgstr "Prøv igen"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Gennemgå redigeringer"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Gennemgå CV'et i forhold til en jobbeskrivelse, og stil mig spørgsmål, før du ændrer usikre afsnit." msgstr "Gennemgå CV'et i forhold til en jobbeskrivelse, og stil mig spørgsmål, før du ændrer usikre afsnit."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Gennemgå denne redigering"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Omarbejd resuméet, så det er målrettet en stilling som senioringeniør uden at lyde generisk." msgstr "Omarbejd resuméet, så det er målrettet en stilling som senioringeniør uden at lyde generisk."
@@ -3798,6 +3862,10 @@ msgstr "Rotation"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Kør din første analyse for at få et scorekort, styrker og prioriterede forslag." msgstr "Kør din første analyse for at få et scorekort, styrker og prioriterede forslag."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Kører…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russisk" msgstr "Russisk"
@@ -4253,6 +4321,15 @@ msgstr "Kilde"
msgid "Source Code" msgid "Source Code"
msgstr "Kildekode" msgstr "Kildekode"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Kilde: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Kilder"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Mellemrum (vandret)" msgstr "Mellemrum (vandret)"
@@ -4604,6 +4681,10 @@ msgstr "Denne assistent kunne ikke åbnes."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Denne dato vil ikke blive læst korrekt." msgstr "Denne dato vil ikke blive læst korrekt."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Denne redigeringsanmodning kan ikke længere besvares."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Denne e-mailadresse vil ikke blive genkendt." msgstr "Denne e-mailadresse vil ikke blive genkendt."
@@ -4712,6 +4793,10 @@ msgstr "Det vil hjælpe dig med at identificere den senere, hvis du planlægger
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Dette vil fjerne alle elementer fra denne sektion." msgstr "Dette vil fjerne alle elementer fra denne sektion."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Dette vil rulle denne programrettelse tilbage samt alle programrettelser, der er anvendt efter den."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Skift til højre sidepanel"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Slå tråde til/fra" msgstr "Slå tråde til/fra"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} cachelagret)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Spor et job, du søger, og link det CV, du har sendt." msgstr "Spor et job, du søger, og link det CV, du har sendt."
@@ -5213,6 +5310,10 @@ msgstr "Vi kunne ikke registrere formatet automatisk vælg det venligst oven
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Vi kunne ikke finde den side" msgstr "Vi kunne ikke finde den side"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Websøgning"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zoom ud"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Beworben"
msgid "Applied on" msgid "Applied on"
msgstr "Beworben am" msgstr "Beworben am"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Genehmigen"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Genehmigt — Warten auf den Agenten…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisch" msgstr "Arabisch"
@@ -1462,6 +1470,14 @@ msgstr "Dein API-Schlüssel wird gelöscht ..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Ihr Lebenslauf wird gelöscht..." msgstr "Ihr Lebenslauf wird gelöscht..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Abgelehnt — Warten auf den Agenten…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Ablehnen"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Beschreiben Sie, was Sie getan haben, damit der Eintrag Schlüsselwörter für den Abgleich beisteuert." msgstr "Beschreiben Sie, was Sie getan haben, damit der Eintrag Schlüsselwörter für den Abgleich beisteuert."
@@ -1530,6 +1546,10 @@ msgstr "Spenden"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "An Reactive Resume spenden" msgstr "An Reactive Resume spenden"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Fertig"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Inhalt im Vollbildmodus bearbeiten"
msgid "Edit date" msgid "Edit date"
msgstr "Datum bearbeiten" msgstr "Datum bearbeiten"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Bearbeitung abgelehnt"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportieren Sie Ihren Lebenslauf sofort als PDF ohne Wartezeiten ode
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png exportiert" msgstr "pipeline-flow.png exportiert"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Fehlgeschlagen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Analyse des Lebenslaufs fehlgeschlagen." msgstr "Analyse des Lebenslaufs fehlgeschlagen."
@@ -1967,6 +1995,10 @@ msgstr "Die Verknüpfung des Anbieters konnte nicht aufgehoben werden. Bitte ver
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Fehler beim Aktualisieren des Providers." msgstr "Fehler beim Aktualisieren des Providers."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Thread-Einstellungen konnten nicht aktualisiert werden."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "öffnet in neuem Tab" msgstr "öffnet in neuem Tab"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Optionale Notiz für den Agenten"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Optionale Notiz für den Agenten…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Optional können Sie ein Passwort festlegen, damit nur Personen mit dem Passwort Ihren Lebenslauf über den Link ansehen können." msgstr "Optional können Sie ein Passwort festlegen, damit nur Personen mit dem Passwort Ihren Lebenslauf über den Link ansehen können."
@@ -3499,6 +3539,10 @@ msgstr "Veröffentlichungen"
msgid "Publisher" msgid "Publisher"
msgstr "Verlag" msgstr "Verlag"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Roh-JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Neu bewerten" msgstr "Neu bewerten"
@@ -3546,10 +3590,18 @@ msgstr "Reaktiver Lebenslauf v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiver Lebenslauf v4 (JSON)" msgstr "Reaktiver Lebenslauf v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Anhang gelesen"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Lesen Sie den Leitfaden zum Anwenden benutzerdefinierter Stile." msgstr "Lesen Sie den Leitfaden zum Anwenden benutzerdefinierter Stile."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Lebenslauf gelesen"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Ausschreibung wird gelesen…" msgstr "Ausschreibung wird gelesen…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Wiederherstellen" msgstr "Wiederherstellen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Soll der Spielstand auf den Stand vor diesem Patch wiederhergestellt werden? Dadurch werden dieser Patch und alle nachfolgend angewendeten Patches rückgängig gemacht." msgstr "Lebenslauf auf den Stand vor diesem Patch wiederherstellen?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analyse des Lebenslaufs abgeschlossen."
msgid "Resume content" msgid "Resume content"
msgstr "Lebenslaufinhalt" msgstr "Lebenslaufinhalt"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Lebenslauf-Bearbeitung"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Lebenslauf-Datei" msgstr "Lebenslauf-Datei"
@@ -3754,10 +3810,18 @@ msgstr "Lebensläufe"
msgid "Retry" msgid "Retry"
msgstr "Wiederholen" msgstr "Wiederholen"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Bearbeitungen prüfen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Prüfen Sie Ihren Lebenslauf anhand der Stellenbeschreibung und stellen Sie mir Fragen, bevor Sie unklare Abschnitte ändern." msgstr "Prüfen Sie Ihren Lebenslauf anhand der Stellenbeschreibung und stellen Sie mir Fragen, bevor Sie unklare Abschnitte ändern."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Diese Bearbeitung prüfen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Überarbeiten Sie die Zusammenfassung so, dass sie auf eine leitende Position im Ingenieurwesen zugeschnitten ist, ohne dabei zu allgemein zu klingen." msgstr "Überarbeiten Sie die Zusammenfassung so, dass sie auf eine leitende Position im Ingenieurwesen zugeschnitten ist, ohne dabei zu allgemein zu klingen."
@@ -3798,6 +3862,10 @@ msgstr "Drehung"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Führen Sie Ihre erste Analyse durch, um eine Scorecard, Stärken und priorisierte Vorschläge zu erhalten." msgstr "Führen Sie Ihre erste Analyse durch, um eine Scorecard, Stärken und priorisierte Vorschläge zu erhalten."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Wird ausgeführt…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russisch" msgstr "Russisch"
@@ -4253,6 +4321,15 @@ msgstr "Quelle"
msgid "Source Code" msgid "Source Code"
msgstr "Quellcode" msgstr "Quellcode"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Quelle: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Quellen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Abstand (horizontal)" msgstr "Abstand (horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "Dieser Assistent konnte nicht geöffnet werden."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Dieses Datum wird nicht korrekt gelesen." msgstr "Dieses Datum wird nicht korrekt gelesen."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Diese Bearbeitungsanfrage kann nicht mehr beantwortet werden."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Diese E-Mail-Adresse wird nicht erkannt." msgstr "Diese E-Mail-Adresse wird nicht erkannt."
@@ -4712,6 +4793,10 @@ msgstr "Dies hilft Ihnen später bei der Identifizierung, wenn Sie mehrere Passk
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Dadurch werden alle Artikel aus diesem Bereich entfernt." msgstr "Dadurch werden alle Artikel aus diesem Bereich entfernt."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Dadurch werden dieser Patch und alle danach angewendeten Patches zurückgesetzt."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Rechte Seitenleiste umschalten"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Threads umschalten" msgstr "Threads umschalten"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} im Cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Verfolge eine Stelle, auf die du dich bewirbst, und verknüpfe den gesendeten Lebenslauf." msgstr "Verfolge eine Stelle, auf die du dich bewirbst, und verknüpfe den gesendeten Lebenslauf."
@@ -5213,6 +5310,10 @@ msgstr "Das Format konnte nicht automatisch erkannt werden bitte wählen Sie
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Wir konnten diese Seite nicht finden." msgstr "Wir konnten diese Seite nicht finden."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Websuche"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Herauszoomen"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+104 -4
View File
@@ -543,6 +543,14 @@ msgstr "Υποβλήθηκε"
msgid "Applied on" msgid "Applied on"
msgstr "Ημερομηνία αίτησης" msgstr "Ημερομηνία αίτησης"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Έγκριση"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Εγκρίθηκε — αναμονή για τον πράκτορα…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Αραβικά" msgstr "Αραβικά"
@@ -636,7 +644,7 @@ msgstr "Επισύναψη αρχείων"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Attachment" msgid "Attachment"
msgstr "Προσάρτημα" msgstr "Συνημμένο"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Attachment uploaded." msgid "Attachment uploaded."
@@ -1462,6 +1470,14 @@ msgstr "Διαγραφή του κλειδιού API σας..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Διαγραφή του βιογραφικού σας σημειώματος..." msgstr "Διαγραφή του βιογραφικού σας σημειώματος..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Απορρίφθηκε — αναμονή για τον πράκτορα…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Απόρριψη"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Περιγράψτε τι κάνατε, ώστε η καταχώριση να συνεισφέρει λέξεις-κλειδιά για αντιστοίχιση." msgstr "Περιγράψτε τι κάνατε, ώστε η καταχώριση να συνεισφέρει λέξεις-κλειδιά για αντιστοίχιση."
@@ -1530,6 +1546,10 @@ msgstr "Προσφέρω"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Κάντε μία δωρεά στο Reactive Resume" msgstr "Κάντε μία δωρεά στο Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Ολοκληρώθηκε"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Επεξεργασία περιεχομένου σε λειτουργί
msgid "Edit date" msgid "Edit date"
msgstr "Επεξεργασία ημερομηνίας" msgstr "Επεξεργασία ημερομηνίας"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Η επεξεργασία απορρίφθηκε"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Εξαγάγετε το βιογραφικό σας σε μορφή PDF
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Έγινε εξαγωγή του pipeline-flow.png" msgstr "Έγινε εξαγωγή του pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Απέτυχε"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Απέτυχε να αναλύσει το βιογραφικό σημείωμα." msgstr "Απέτυχε να αναλύσει το βιογραφικό σημείωμα."
@@ -1967,6 +1995,10 @@ msgstr "Απέτυχε η αποσύνδεση του παρόχου. Προσπ
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Αποτυχία ενημέρωσης παρόχου." msgstr "Αποτυχία ενημέρωσης παρόχου."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Αποτυχία ενημέρωσης των ρυθμίσεων νήματος."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "ανοίγει σε νέα καρτέλα" msgstr "ανοίγει σε νέα καρτέλα"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Προαιρετική σημείωση για τον πράκτορα"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Προαιρετική σημείωση για τον πράκτορα…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Προαιρετικά, ορίστε έναν κωδικό πρόσβασης ώστε μόνο τα άτομα που γνωρίζουν τον κωδικό να μπορούν να βλέπουν το βιογραφικό σας σημείωμα μέσω του συνδέσμου." msgstr "Προαιρετικά, ορίστε έναν κωδικό πρόσβασης ώστε μόνο τα άτομα που γνωρίζουν τον κωδικό να μπορούν να βλέπουν το βιογραφικό σας σημείωμα μέσω του συνδέσμου."
@@ -3499,6 +3539,10 @@ msgstr "Δημοσιεύσεις"
msgid "Publisher" msgid "Publisher"
msgstr "Εκδότης" msgstr "Εκδότης"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Ακατέργαστο JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Επαναβαθμολόγηση" msgstr "Επαναβαθμολόγηση"
@@ -3546,10 +3590,18 @@ msgstr "Αντιδραστικό βιογραφικό v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Αντιδραστικό βιογραφικό σημείωμα v4 (JSON)" msgstr "Αντιδραστικό βιογραφικό σημείωμα v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Ανάγνωση συνημμένου"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Διαβάστε τον οδηγό Εφαρμογή προσαρμοσμένων στυλ." msgstr "Διαβάστε τον οδηγό Εφαρμογή προσαρμοσμένων στυλ."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Ανάγνωση του βιογραφικού"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Ανάγνωση της αγγελίας…" msgstr "Ανάγνωση της αγγελίας…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Επαναφέρω" msgstr "Επαναφέρω"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Επαναφορά του βιογραφικού σημειώματος πριν από αυτήν την ενημέρωση κώδικα; Αυτό θα ακυρώσει αυτήν την ενημέρωση κώδικα και τυχόν ενημερώσεις κώδικα που εφαρμόστηκαν μετά από αυτήν." msgstr "Επαναφορά του βιογραφικού στην κατάσταση πριν από αυτήν την ενημέρωση κώδικα;"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Η ανάλυση του βιογραφικού ολοκληρώθηκε
msgid "Resume content" msgid "Resume content"
msgstr "Περιεχόμενο βιογραφικού" msgstr "Περιεχόμενο βιογραφικού"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Επεξεργασία βιογραφικού"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Αρχείο βιογραφικού" msgstr "Αρχείο βιογραφικού"
@@ -3754,10 +3810,18 @@ msgstr "Βιογραφικά σημειώματα"
msgid "Retry" msgid "Retry"
msgstr "Δοκιμάζω πάλι" msgstr "Δοκιμάζω πάλι"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Έλεγχος επεξεργασιών"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Ελέγξτε το βιογραφικό σημείωμα με βάση την περιγραφή της θέσης εργασίας και κάντε μου ερωτήσεις πριν αλλάξετε αβέβαια σημεία." msgstr "Ελέγξτε το βιογραφικό σημείωμα με βάση την περιγραφή της θέσης εργασίας και κάντε μου ερωτήσεις πριν αλλάξετε αβέβαια σημεία."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Έλεγχος αυτής της επεξεργασίας"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Επαναδιατυπώστε την περίληψη ώστε να στοχεύει σε έναν ρόλο ανώτερου διευθυντή μηχανικών χωρίς να ακούγεται γενική." msgstr "Επαναδιατυπώστε την περίληψη ώστε να στοχεύει σε έναν ρόλο ανώτερου διευθυντή μηχανικών χωρίς να ακούγεται γενική."
@@ -3798,6 +3862,10 @@ msgstr "Περιστροφή"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Εκτελέστε την πρώτη σας ανάλυση για να λάβετε έναν πίνακα βαθμολογίας, τα δυνατά σημεία και τις προτάσεις με προτεραιότητες." msgstr "Εκτελέστε την πρώτη σας ανάλυση για να λάβετε έναν πίνακα βαθμολογίας, τα δυνατά σημεία και τις προτάσεις με προτεραιότητες."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Εκτελείται…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Ρωσικά" msgstr "Ρωσικά"
@@ -4253,6 +4321,15 @@ msgstr "Πηγή"
msgid "Source Code" msgid "Source Code"
msgstr "Πηγαίος κώδικας" msgstr "Πηγαίος κώδικας"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Πηγή: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Πηγές"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Κενό (οριζόντιο)" msgstr "Κενό (οριζόντιο)"
@@ -4604,6 +4681,10 @@ msgstr "Δεν ήταν δυνατό το άνοιγμα αυτού του βο
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Αυτή η ημερομηνία δεν θα διαβαστεί σωστά." msgstr "Αυτή η ημερομηνία δεν θα διαβαστεί σωστά."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Αυτό το αίτημα επεξεργασίας δεν μπορεί πλέον να απαντηθεί."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Αυτή η διεύθυνση email δεν θα αναγνωριστεί." msgstr "Αυτή η διεύθυνση email δεν θα αναγνωριστεί."
@@ -4712,6 +4793,10 @@ msgstr "Αυτό θα σας βοηθήσει να το αναγνωρίσετε
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Αυτό θα αφαιρέσει όλα τα στοιχεία από αυτό το τμήμα." msgstr "Αυτό θα αφαιρέσει όλα τα στοιχεία από αυτό το τμήμα."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Αυτό θα αναιρέσει αυτήν την ενημέρωση κώδικα και όλες τις ενημερώσεις που εφαρμόστηκαν μετά από αυτήν."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Εναλλαγή δεξιάς πλευρικής γραμμής"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Εναλλαγή νημάτων" msgstr "Εναλλαγή νημάτων"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} στην κρυφή μνήμη)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Παρακολουθήστε μια θέση στην οποία κάνετε αίτηση και συνδέστε το βιογραφικό που στείλατε." msgstr "Παρακολουθήστε μια θέση στην οποία κάνετε αίτηση και συνδέστε το βιογραφικό που στείλατε."
@@ -5213,6 +5310,10 @@ msgstr "Δεν ήταν δυνατός ο αυτόματος εντοπισμό
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Δεν μπορέσαμε να βρούμε αυτήν τη σελίδα" msgstr "Δεν μπορέσαμε να βρούμε αυτήν τη σελίδα"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Αναζήτηση στον ιστό"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Σμίκρυνση"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Ζουλού" msgstr "Ζουλού"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Applied"
msgid "Applied on" msgid "Applied on"
msgstr "Applied on" msgstr "Applied on"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Approve"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Approved — waiting for the agent…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabic" msgstr "Arabic"
@@ -1462,6 +1470,14 @@ msgstr "Deleting your API key..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Deleting your resume..." msgstr "Deleting your resume..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Denied — waiting for the agent…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Deny"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Describe what you did so the entry contributes keywords for matching." msgstr "Describe what you did so the entry contributes keywords for matching."
@@ -1530,6 +1546,10 @@ msgstr "Donate"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donate to Reactive Resume" msgstr "Donate to Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Done"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Edit content in fullscreen mode"
msgid "Edit date" msgid "Edit date"
msgstr "Edit date" msgstr "Edit date"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edit declined"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Export your resume to PDF instantly, without any waiting or delays."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Exported pipeline-flow.png" msgstr "Exported pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Failed"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Failed to analyze resume." msgstr "Failed to analyze resume."
@@ -1967,6 +1995,10 @@ msgstr "Failed to unlink provider. Please try again."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Failed to update provider." msgstr "Failed to update provider."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Failed to update thread settings."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "opens in new tab" msgstr "opens in new tab"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Optional note for the agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Optional note for the agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Optionally, set a password so that only people with the password can view your resume through the link." msgstr "Optionally, set a password so that only people with the password can view your resume through the link."
@@ -3499,6 +3539,10 @@ msgstr "Publications"
msgid "Publisher" msgid "Publisher"
msgstr "Publisher" msgstr "Publisher"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Raw JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Re-score" msgstr "Re-score"
@@ -3546,10 +3590,18 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Read an attachment"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Read the Applying Custom Styles guide." msgstr "Read the Applying Custom Styles guide."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Read the resume"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Reading the posting…" msgstr "Reading the posting…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restore" msgstr "Restore"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgstr "Restore the resume to before this patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Resume analysis complete."
msgid "Resume content" msgid "Resume content"
msgstr "Resume content" msgstr "Resume content"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Resume edit"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Resume file" msgstr "Resume file"
@@ -3754,10 +3810,18 @@ msgstr "Resumes"
msgid "Retry" msgid "Retry"
msgstr "Retry" msgstr "Retry"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Review edits"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Review the resume against a job description and ask me questions before changing uncertain sections." msgstr "Review the resume against a job description and ask me questions before changing uncertain sections."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Review this edit"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Rework the summary so it targets a senior engineering manager role without sounding generic." msgstr "Rework the summary so it targets a senior engineering manager role without sounding generic."
@@ -3798,6 +3862,10 @@ msgstr "Rotation"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Running…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russian" msgstr "Russian"
@@ -4253,6 +4321,15 @@ msgstr "Source"
msgid "Source Code" msgid "Source Code"
msgstr "Source Code" msgstr "Source Code"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Source: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Sources"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Spacing (Horizontal)" msgstr "Spacing (Horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "This assistant could not be opened."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "This date will not be read correctly." msgstr "This date will not be read correctly."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "This edit request can no longer be answered."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "This email address will not be recognized." msgstr "This email address will not be recognized."
@@ -4712,6 +4793,10 @@ msgstr "This will help you identify it later, if you plan to have multiple passk
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "This will remove all items from this section." msgstr "This will remove all items from this section."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "This will roll back this patch and any patches applied after it."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Toggle right sidebar"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Toggle threads" msgstr "Toggle threads"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} cached)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Track a job you're applying to and link the resume you sent." msgstr "Track a job you're applying to and link the resume you sent."
@@ -5213,6 +5310,10 @@ msgstr "We couldn't detect the format automatically — please choose it above."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "We couldn't find that page" msgstr "We couldn't find that page"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Web search"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zoom out"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -2
View File
@@ -538,6 +538,14 @@ msgstr "Applied"
msgid "Applied on" msgid "Applied on"
msgstr "Applied on" msgstr "Applied on"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Approve"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Approved — waiting for the agent…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabic" msgstr "Arabic"
@@ -1457,6 +1465,14 @@ msgstr "Deleting your API key..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Deleting your resume..." msgstr "Deleting your resume..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Denied — waiting for the agent…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Deny"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Describe what you did so the entry contributes keywords for matching." msgstr "Describe what you did so the entry contributes keywords for matching."
@@ -1525,6 +1541,10 @@ msgstr "Donate"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donate to Reactive Resume" msgstr "Donate to Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Done"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1637,6 +1657,10 @@ msgstr "Edit content in fullscreen mode"
msgid "Edit date" msgid "Edit date"
msgstr "Edit date" msgstr "Edit date"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edit declined"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1832,6 +1856,10 @@ msgstr "Export your resume to PDF instantly, without any waiting or delays."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Exported pipeline-flow.png" msgstr "Exported pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Failed"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Failed to analyze resume." msgstr "Failed to analyze resume."
@@ -1962,6 +1990,10 @@ msgstr "Failed to unlink provider. Please try again."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Failed to update provider." msgstr "Failed to update provider."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Failed to update thread settings."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3148,6 +3180,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "opens in new tab" msgstr "opens in new tab"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Optional note for the agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Optional note for the agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Optionally, set a password so that only people with the password can view your resume through the link." msgstr "Optionally, set a password so that only people with the password can view your resume through the link."
@@ -3494,6 +3534,10 @@ msgstr "Publications"
msgid "Publisher" msgid "Publisher"
msgstr "Publisher" msgstr "Publisher"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Raw JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Re-score" msgstr "Re-score"
@@ -3541,10 +3585,18 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Read an attachment"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Read the Applying Custom Styles guide." msgstr "Read the Applying Custom Styles guide."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Read the resume"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Reading the posting…" msgstr "Reading the posting…"
@@ -3695,8 +3747,8 @@ msgid "Restore"
msgstr "Restore" msgstr "Restore"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgstr "Restore the resume to before this patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3721,6 +3773,10 @@ msgstr "Resume analysis complete."
msgid "Resume content" msgid "Resume content"
msgstr "Resume content" msgstr "Resume content"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Resume edit"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Resume file" msgstr "Resume file"
@@ -3749,10 +3805,18 @@ msgstr "Resumes"
msgid "Retry" msgid "Retry"
msgstr "Retry" msgstr "Retry"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Review edits"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Review the resume against a job description and ask me questions before changing uncertain sections." msgstr "Review the resume against a job description and ask me questions before changing uncertain sections."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Review this edit"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Rework the summary so it targets a senior engineering manager role without sounding generic." msgstr "Rework the summary so it targets a senior engineering manager role without sounding generic."
@@ -3793,6 +3857,10 @@ msgstr "Rotation"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgstr "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Running…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russian" msgstr "Russian"
@@ -4248,6 +4316,15 @@ msgstr "Source"
msgid "Source Code" msgid "Source Code"
msgstr "Source Code" msgstr "Source Code"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Source: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Sources"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Spacing (Horizontal)" msgstr "Spacing (Horizontal)"
@@ -4599,6 +4676,10 @@ msgstr "This assistant could not be opened."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "This date will not be read correctly." msgstr "This date will not be read correctly."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "This edit request can no longer be answered."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "This email address will not be recognized." msgstr "This email address will not be recognized."
@@ -4707,6 +4788,10 @@ msgstr "This will help you identify it later, if you plan to have multiple passk
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "This will remove all items from this section." msgstr "This will remove all items from this section."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "This will roll back this patch and any patches applied after it."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4789,6 +4874,18 @@ msgstr "Toggle right sidebar"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Toggle threads" msgstr "Toggle threads"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} cached)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Track a job you're applying to and link the resume you sent." msgstr "Track a job you're applying to and link the resume you sent."
@@ -5208,6 +5305,10 @@ msgstr "We couldn't detect the format automatically — please choose it above."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "We couldn't find that page" msgstr "We couldn't find that page"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Web search"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Enviada"
msgid "Applied on" msgid "Applied on"
msgstr "Postulado el" msgstr "Postulado el"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Aprobar"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Aprobado — esperando al agente…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Árabe" msgstr "Árabe"
@@ -1462,6 +1470,14 @@ msgstr "Eliminando tu clave API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Eliminando tu currículum..." msgstr "Eliminando tu currículum..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Denegado — esperando al agente…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Denegar"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Describe lo que hiciste para que la entrada aporte palabras clave para la concordancia." msgstr "Describe lo que hiciste para que la entrada aporte palabras clave para la concordancia."
@@ -1530,6 +1546,10 @@ msgstr "Donar"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donar a Reactive Resume" msgstr "Donar a Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Hecho"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Editar contenidos en modo de pantalla completa"
msgid "Edit date" msgid "Edit date"
msgstr "Editar fecha" msgstr "Editar fecha"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edición rechazada"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exporta tu currículum a PDF al instante, sin esperas ni demoras."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png exportado" msgstr "pipeline-flow.png exportado"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Falló"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Fallo al analizar el currículum." msgstr "Fallo al analizar el currículum."
@@ -1967,6 +1995,10 @@ msgstr "Fallo al desvincular el proveedor. Por favor, inténtelo de nuevo."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "No se pudo actualizar el proveedor." msgstr "No se pudo actualizar el proveedor."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "No se pudieron actualizar los ajustes del hilo."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "abrir en una nueva pestaña" msgstr "abrir en una nueva pestaña"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Nota opcional para el agente"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Nota opcional para el agente…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcionalmente, establece una contraseña para que solo las personas que la tengan puedan ver tu currículum a través del enlace." msgstr "Opcionalmente, establece una contraseña para que solo las personas que la tengan puedan ver tu currículum a través del enlace."
@@ -3499,6 +3539,10 @@ msgstr "Publicaciones"
msgid "Publisher" msgid "Publisher"
msgstr "Editor" msgstr "Editor"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON sin procesar"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Volver a puntuar" msgstr "Volver a puntuar"
@@ -3546,10 +3590,18 @@ msgstr "Reanudación reactiva v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Currículum reactivo v4 (JSON)" msgstr "Currículum reactivo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Leyó un adjunto"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Lea la guía sobre cómo aplicar estilos personalizados." msgstr "Lea la guía sobre cómo aplicar estilos personalizados."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Leyó el currículum"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Leyendo la oferta…" msgstr "Leyendo la oferta…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restaurar" msgstr "Restaurar"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "¿Restaurar el estado anterior a este parche? Esto revertirá este parche y cualquier parche aplicado posteriormente." msgstr "¿Restaurar el currículum al estado anterior a este parche?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Análisis del currículum finalizado."
msgid "Resume content" msgid "Resume content"
msgstr "Contenido del currículum" msgstr "Contenido del currículum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Edición del currículum"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Archivo de currículum" msgstr "Archivo de currículum"
@@ -3754,10 +3810,18 @@ msgstr "Currículums"
msgid "Retry" msgid "Retry"
msgstr "Rever" msgstr "Rever"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Revisar ediciones"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Revisa el currículum comparándolo con la descripción del puesto y hazme preguntas antes de modificar las secciones que te generen dudas." msgstr "Revisa el currículum comparándolo con la descripción del puesto y hazme preguntas antes de modificar las secciones que te generen dudas."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Revisar esta edición"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Revisa el resumen para que se dirija a un puesto de gerente de ingeniería sénior sin que suene genérico." msgstr "Revisa el resumen para que se dirija a un puesto de gerente de ingeniería sénior sin que suene genérico."
@@ -3798,6 +3862,10 @@ msgstr "Rotación"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Realice su primer análisis para obtener un cuadro de mando, los puntos fuertes y las sugerencias priorizadas." msgstr "Realice su primer análisis para obtener un cuadro de mando, los puntos fuertes y las sugerencias priorizadas."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Ejecutando…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Ruso" msgstr "Ruso"
@@ -4253,6 +4321,15 @@ msgstr "Fuente"
msgid "Source Code" msgid "Source Code"
msgstr "Código fuente" msgstr "Código fuente"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Origen: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Fuentes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Espaciado (horizontal)" msgstr "Espaciado (horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "No se pudo abrir este asistente."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Esta fecha no se leerá correctamente." msgstr "Esta fecha no se leerá correctamente."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Esta solicitud de edición ya no puede responderse."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Esta dirección de correo electrónico no será reconocida." msgstr "Esta dirección de correo electrónico no será reconocida."
@@ -4712,6 +4793,10 @@ msgstr "Esto le ayudará a identificarlo más tarde, si planea tener varias clav
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Esto eliminará todos los elementos de esta sección." msgstr "Esto eliminará todos los elementos de esta sección."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Esto revertirá este parche y todos los parches aplicados después."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Alternar la barra lateral derecha"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Cambiar de hilo" msgstr "Cambiar de hilo"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} en caché)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Haz seguimiento de un empleo al que te postulas y vincula el currículum que enviaste." msgstr "Haz seguimiento de un empleo al que te postulas y vincula el currículum que enviaste."
@@ -5213,6 +5310,10 @@ msgstr "No pudimos detectar el formato automáticamente; por favor, selecciónel
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "No pudimos encontrar esa página" msgstr "No pudimos encontrar esa página"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Búsqueda web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Alejar"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulú" msgstr "Zulú"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "ارسال‌شده"
msgid "Applied on" msgid "Applied on"
msgstr "تاریخ درخواست" msgstr "تاریخ درخواست"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "تأیید"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "تأیید شد — در انتظار عامل…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "عربی" msgstr "عربی"
@@ -1462,6 +1470,14 @@ msgstr "در حال حذف کلید API شما..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "در حال حذف رزومه شما..." msgstr "در حال حذف رزومه شما..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "رد شد — در انتظار عامل…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "رد"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "کاری را که انجام داده‌اید شرح دهید تا این مورد کلمات کلیدی لازم برای تطبیق را داشته باشد." msgstr "کاری را که انجام داده‌اید شرح دهید تا این مورد کلمات کلیدی لازم برای تطبیق را داشته باشد."
@@ -1530,6 +1546,10 @@ msgstr "اهدا کنید"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "به Reactive Resume دونیت کنید" msgstr "به Reactive Resume دونیت کنید"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "انجام شد"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ویرایش محتوا در حالت تمام‌صفحه"
msgid "Edit date" msgid "Edit date"
msgstr "ویرایش تاریخ" msgstr "ویرایش تاریخ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "ویرایش رد شد"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "رزومه خود را فوراً و بدون هیچ گونه انتظا
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png خروجی گرفته شد" msgstr "pipeline-flow.png خروجی گرفته شد"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "ناموفق"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "در تحلیل رزومه شکست خورد." msgstr "در تحلیل رزومه شکست خورد."
@@ -1967,6 +1995,10 @@ msgstr "لینک ارائه‌دهنده را نمی‌توان قطع کرد.
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "به‌روزرسانی ارائه‌دهنده ناموفق بود." msgstr "به‌روزرسانی ارائه‌دهنده ناموفق بود."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "تنظیمات تاپیک به‌روزرسانی نشد."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "روتر آزاد"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "در زبانهٔ جدید باز می‌شود" msgstr "در زبانهٔ جدید باز می‌شود"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "یادداشت اختیاری برای عامل"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "یادداشت اختیاری برای عامل…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "در صورت تمایل می‌توانید گذرواژه‌ای تنظیم کنید تا فقط افرادی که گذرواژه را دارند بتوانند از طریق لینک، رزومه شما را ببینند." msgstr "در صورت تمایل می‌توانید گذرواژه‌ای تنظیم کنید تا فقط افرادی که گذرواژه را دارند بتوانند از طریق لینک، رزومه شما را ببینند."
@@ -3499,6 +3539,10 @@ msgstr "انتشارها"
msgid "Publisher" msgid "Publisher"
msgstr "منتشرکننده" msgstr "منتشرکننده"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON خام"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "امتیازدهی دوباره" msgstr "امتیازدهی دوباره"
@@ -3546,10 +3590,18 @@ msgstr "رزومه واکنشی نسخه<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "رزومهٔ واکنشی نسخهٔ ۴ (JSON)" msgstr "رزومهٔ واکنشی نسخهٔ ۴ (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "یک پیوست خوانده شد"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "راهنمای اعمال سبک‌های سفارشی را مطالعه کنید." msgstr "راهنمای اعمال سبک‌های سفارشی را مطالعه کنید."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "رزومه خوانده شد"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "در حال خواندن آگهی…" msgstr "در حال خواندن آگهی…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "بازیابی" msgstr "بازیابی"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "بازگرداندن از سرگیری به قبل از این وصله؟ این کار این وصله و هر وصله‌ای که بعد از آن اعمال شده را به حالت قبل برمی‌گرداند." msgstr "رزومه به حالت قبل از این پچ بازیابی شود؟"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "تحلیل رزومه کامل شد."
msgid "Resume content" msgid "Resume content"
msgstr "محتوای رزومه" msgstr "محتوای رزومه"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "ویرایش رزومه"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "فایل رزومه" msgstr "فایل رزومه"
@@ -3754,10 +3810,18 @@ msgstr "رزومه‌ها"
msgid "Retry" msgid "Retry"
msgstr "دوباره امتحان کنید" msgstr "دوباره امتحان کنید"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "بررسی ویرایش‌ها"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "رزومه را با شرح شغل مقایسه کنید و قبل از تغییر بخش‌های نامشخص، از من سوال بپرسید." msgstr "رزومه را با شرح شغل مقایسه کنید و قبل از تغییر بخش‌های نامشخص، از من سوال بپرسید."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "بررسی این ویرایش"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "خلاصه را طوری اصلاح کنید که نقش مدیر ارشد مهندسی را هدف قرار دهد، بدون اینکه کلی به نظر برسد." msgstr "خلاصه را طوری اصلاح کنید که نقش مدیر ارشد مهندسی را هدف قرار دهد، بدون اینکه کلی به نظر برسد."
@@ -3798,6 +3862,10 @@ msgstr "چرخش"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "اولین تحلیل خود را اجرا کنید تا کارت امتیاز، نقاط قوت و پیشنهادهای اولویت‌بندی‌شده را دریافت کنید." msgstr "اولین تحلیل خود را اجرا کنید تا کارت امتیاز، نقاط قوت و پیشنهادهای اولویت‌بندی‌شده را دریافت کنید."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "در حال اجرا…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "روسی" msgstr "روسی"
@@ -4253,6 +4321,15 @@ msgstr "منبع"
msgid "Source Code" msgid "Source Code"
msgstr "کد منبع" msgstr "کد منبع"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "منبع: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "منابع"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "فاصله (افقی)" msgstr "فاصله (افقی)"
@@ -4604,6 +4681,10 @@ msgstr "این دستیار قابل باز شدن نیست."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "این تاریخ به‌درستی خوانده نخواهد شد." msgstr "این تاریخ به‌درستی خوانده نخواهد شد."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "دیگر نمی‌توان به این درخواست ویرایش پاسخ داد."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "این نشانی ایمیل شناسایی نخواهد شد." msgstr "این نشانی ایمیل شناسایی نخواهد شد."
@@ -4712,6 +4793,10 @@ msgstr "این به شما کمک می‌کند تا بعداً آن را شنا
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "این همه موارد را از این بخش حذف خواهد کرد." msgstr "این همه موارد را از این بخش حذف خواهد کرد."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "این کار این پچ و همه پچ‌های اعمال‌شده پس از آن را برمی‌گرداند."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "گوشه‌ای کردن نوار کناری راست"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "تغییر وضعیت موضوعات" msgstr "تغییر وضعیت موضوعات"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "توکن‌ها: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "توکن‌ها: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "توکن‌ها: {total} ({cached} کش‌شده)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "شغلی را که برایش درخواست می‌دهید پیگیری کنید و رزومهٔ ارسالی را پیوند دهید." msgstr "شغلی را که برایش درخواست می‌دهید پیگیری کنید و رزومهٔ ارسالی را پیوند دهید."
@@ -5213,6 +5310,10 @@ msgstr "ما نتوانستیم قالب را به طور خودکار تشخی
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "ما نتوانستیم آن صفحه را پیدا کنیم" msgstr "ما نتوانستیم آن صفحه را پیدا کنیم"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "جستجوی وب"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "کوچک‌نمایی"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "زولو" msgstr "زولو"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Haettu"
msgid "Applied on" msgid "Applied on"
msgstr "Haettu" msgstr "Haettu"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Hyväksy"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Hyväksytty — odotetaan agenttia…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "arabia" msgstr "arabia"
@@ -1462,6 +1470,14 @@ msgstr "Poistetaan API-avaintasi..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Poistetaan ansioluetteloasi..." msgstr "Poistetaan ansioluetteloasi..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Hylätty — odotetaan agenttia…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Hylkää"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Kuvaile mitä teit, jotta merkintä antaa avainsanat hakua varten." msgstr "Kuvaile mitä teit, jotta merkintä antaa avainsanat hakua varten."
@@ -1530,6 +1546,10 @@ msgstr "Lahjoittaa"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Lahjoita Reactive Resumelle" msgstr "Lahjoita Reactive Resumelle"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Valmis"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Muokkaa sisältöä koko näytön tilassa"
msgid "Edit date" msgid "Edit date"
msgstr "Muokkaa päivämäärää" msgstr "Muokkaa päivämäärää"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Muokkaus hylätty"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Vie ansioluettelosi PDF-muotoon välittömästi, ilman odottelua tai vii
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png viety" msgstr "pipeline-flow.png viety"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Epäonnistui"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Epäonnistuin analysoimaan ansioluetteloa." msgstr "Epäonnistuin analysoimaan ansioluetteloa."
@@ -1967,6 +1995,10 @@ msgstr "Palveluntarjoajan linkityksen poistaminen epäonnistui. Yritä uudelleen
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Palveluntarjoajan päivittäminen epäonnistui." msgstr "Palveluntarjoajan päivittäminen epäonnistui."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Ketjun asetusten päivitys epäonnistui."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "avautuu uuteen välilehteen" msgstr "avautuu uuteen välilehteen"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Valinnainen huomautus agentille"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Valinnainen huomautus agentille…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Halutessasi voit asettaa salasanan, jotta vain salasanan tietävät voivat nähdä ansioluettelosi linkin kautta." msgstr "Halutessasi voit asettaa salasanan, jotta vain salasanan tietävät voivat nähdä ansioluettelosi linkin kautta."
@@ -3499,6 +3539,10 @@ msgstr "Julkaisut"
msgid "Publisher" msgid "Publisher"
msgstr "Julkaisija" msgstr "Julkaisija"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Raaka JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Pisteytä uudelleen" msgstr "Pisteytä uudelleen"
@@ -3546,10 +3590,18 @@ msgstr "Reaktiivinen ansioluettelo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiivinen ansioluettelo v4 (JSON)" msgstr "Reaktiivinen ansioluettelo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Luki liitteen"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Lue opas Mukautettujen tyylien käyttäminen." msgstr "Lue opas Mukautettujen tyylien käyttäminen."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Luki ansioluettelon"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Luetaan ilmoitusta…" msgstr "Luetaan ilmoitusta…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Palauttaa" msgstr "Palauttaa"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Palautetaanko ansioluettelo tätä korjausta edeltävään tilaan? Tämä palauttaa tämän korjauksen ja kaikki sen jälkeen asennetut korjaukset vanhaan tilaan." msgstr "Palautetaanko ansioluettelo tilaan ennen tätä korjausta?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Ansioluettelon analyysi valmis."
msgid "Resume content" msgid "Resume content"
msgstr "Ansioluettelon sisältö" msgstr "Ansioluettelon sisältö"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Ansioluettelon muokkaus"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Ansioluettelotiedosto" msgstr "Ansioluettelotiedosto"
@@ -3754,10 +3810,18 @@ msgstr "Ansioluettelot"
msgid "Retry" msgid "Retry"
msgstr "Yritä uudelleen" msgstr "Yritä uudelleen"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Tarkista muokkaukset"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Tarkista ansioluettelo työpaikkailmoitusta vasten ja kysy minulta kysymyksiä ennen kuin muutat epävarmoja kohtia." msgstr "Tarkista ansioluettelo työpaikkailmoitusta vasten ja kysy minulta kysymyksiä ennen kuin muutat epävarmoja kohtia."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Tarkista tämä muokkaus"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Muotoile yhteenveto uudelleen niin, että se kohdistuu vanhemman teknisen päällikön rooliin kuulostamatta kuitenkaan yleisluontoiselta." msgstr "Muotoile yhteenveto uudelleen niin, että se kohdistuu vanhemman teknisen päällikön rooliin kuulostamatta kuitenkaan yleisluontoiselta."
@@ -3798,6 +3862,10 @@ msgstr "Kierrätys"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Suorita ensimmäinen analyysi, jotta saat tuloskortin, vahvuudet ja priorisoidut ehdotukset." msgstr "Suorita ensimmäinen analyysi, jotta saat tuloskortin, vahvuudet ja priorisoidut ehdotukset."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Suoritetaan…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "venäjä" msgstr "venäjä"
@@ -4253,6 +4321,15 @@ msgstr "Lähde"
msgid "Source Code" msgid "Source Code"
msgstr "Lähdekoodi" msgstr "Lähdekoodi"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Lähde: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Lähteet"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Väli (vaaka)" msgstr "Väli (vaaka)"
@@ -4604,6 +4681,10 @@ msgstr "Tätä avustajaa ei voitu avata."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Tätä päivämäärää ei lueta oikein." msgstr "Tätä päivämäärää ei lueta oikein."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Tähän muokkauspyyntöön ei voi enää vastata."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Tätä sähköpostiosoitetta ei tunnisteta." msgstr "Tätä sähköpostiosoitetta ei tunnisteta."
@@ -4712,6 +4793,10 @@ msgstr "Tämä auttaa sinua tunnistamaan sen myöhemmin, jos aiot käyttää use
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Tämä poistaa kaikki kohteet tästä osiosta." msgstr "Tämä poistaa kaikki kohteet tästä osiosta."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Tämä peruu tämän korjauksen ja kaikki sen jälkeen tehdyt korjaukset."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Oikean sivupalkin vaihtaminen"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Näytä/piilota ketjut" msgstr "Näytä/piilota ketjut"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokenit: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokenit: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokenit: {total} ({cached} välimuistista)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Seuraa työpaikkaa, johon haet, ja linkitä lähettämäsi ansioluettelo." msgstr "Seuraa työpaikkaa, johon haet, ja linkitä lähettämäsi ansioluettelo."
@@ -5213,6 +5310,10 @@ msgstr "Emme havainneet muotoa automaattisesti valitse se yllä."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Emme löytäneet kyseistä sivua" msgstr "Emme löytäneet kyseistä sivua"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Verkkohaku"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Loitonna"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Candidature envoyée"
msgid "Applied on" msgid "Applied on"
msgstr "Postulé le" msgstr "Postulé le"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Approuver"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Approuvé — en attente de l'agent…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabe" msgstr "Arabe"
@@ -1462,6 +1470,14 @@ msgstr "Suppression de votre clé API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Suppression de votre CV en cours..." msgstr "Suppression de votre CV en cours..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Refusé — en attente de l'agent…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Refuser"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Décrivez ce que vous avez fait pour que l'entrée fournisse des mots-clés pour la correspondance." msgstr "Décrivez ce que vous avez fait pour que l'entrée fournisse des mots-clés pour la correspondance."
@@ -1530,6 +1546,10 @@ msgstr "Faire un don"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Faire un don à Reactive Resume" msgstr "Faire un don à Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Terminé"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Modifier le contenu en mode plein écran"
msgid "Edit date" msgid "Edit date"
msgstr "Modifier la date" msgstr "Modifier la date"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Modification refusée"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportez instantanément votre CV au format PDF, sans attente ni délai.
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png exporté" msgstr "pipeline-flow.png exporté"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Échec"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Échec de l'analyse du curriculum vitae." msgstr "Échec de l'analyse du curriculum vitae."
@@ -1967,6 +1995,10 @@ msgstr "Échec de la déconnexion du fournisseur. Veuillez réessayer."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Impossible de mettre à jour le fournisseur." msgstr "Impossible de mettre à jour le fournisseur."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Impossible de mettre à jour les paramètres du thread."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "s'ouvre dans un nouvel onglet" msgstr "s'ouvre dans un nouvel onglet"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Note facultative pour l'agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Note facultative pour l'agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Eventuellement, définissez un mot de passe pour que seules les personnes ayant le mot de passe puissent consulter votre CV par le biais du lien." msgstr "Eventuellement, définissez un mot de passe pour que seules les personnes ayant le mot de passe puissent consulter votre CV par le biais du lien."
@@ -3499,6 +3539,10 @@ msgstr "Publications"
msgid "Publisher" msgid "Publisher"
msgstr "Éditeur" msgstr "Éditeur"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON brut"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Réévaluer" msgstr "Réévaluer"
@@ -3546,10 +3590,18 @@ msgstr "React Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Lecture d'une pièce jointe"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Consultez le guide « Application des styles personnalisés »." msgstr "Consultez le guide « Application des styles personnalisés »."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Lecture du CV"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Lecture de l'annonce…" msgstr "Lecture de l'annonce…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restaurer" msgstr "Restaurer"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Restaurer la reprise à un état antérieur à ce correctif ? Cette action annulera ce correctif ainsi que tous les correctifs appliqués ultérieurement." msgstr "Restaurer le CV tel qu'il était avant ce correctif ?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "L'analyse du curriculum vitae est terminée."
msgid "Resume content" msgid "Resume content"
msgstr "Contenu du CV" msgstr "Contenu du CV"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Modification du CV"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Fichier de CV" msgstr "Fichier de CV"
@@ -3754,10 +3810,18 @@ msgstr "CVs"
msgid "Retry" msgid "Retry"
msgstr "Réessayer" msgstr "Réessayer"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Examiner les modifications"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Veuillez vérifier votre CV en le comparant à la description du poste et posez-moi des questions avant de modifier les sections qui vous semblent incertaines." msgstr "Veuillez vérifier votre CV en le comparant à la description du poste et posez-moi des questions avant de modifier les sections qui vous semblent incertaines."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Examiner cette modification"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Remaniez le résumé pour qu'il cible un poste de responsable d'ingénierie senior sans paraître générique." msgstr "Remaniez le résumé pour qu'il cible un poste de responsable d'ingénierie senior sans paraître générique."
@@ -3798,6 +3862,10 @@ msgstr "Rotation"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Effectuez votre première analyse pour obtenir un tableau de bord, des points forts et des suggestions classées par ordre de priorité." msgstr "Effectuez votre première analyse pour obtenir un tableau de bord, des points forts et des suggestions classées par ordre de priorité."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "En cours d'exécution…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russe" msgstr "Russe"
@@ -4253,6 +4321,15 @@ msgstr "Origine"
msgid "Source Code" msgid "Source Code"
msgstr "Code source" msgstr "Code source"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Source : {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Sources"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Espacement (horizontal)" msgstr "Espacement (horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "Impossible d'ouvrir cet assistant."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Cette date ne sera pas lue correctement." msgstr "Cette date ne sera pas lue correctement."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Il n'est plus possible de répondre à cette demande de modification."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Cette adresse email ne sera pas reconnue." msgstr "Cette adresse email ne sera pas reconnue."
@@ -4712,6 +4793,10 @@ msgstr "Cela vous aidera à l'identifier plus tard, si vous prévoyez d'avoir pl
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Cette opération permet de supprimer tous les éléments de cette section." msgstr "Cette opération permet de supprimer tous les éléments de cette section."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Cela annulera ce correctif ainsi que tous les correctifs appliqués après celui-ci."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Barre latérale droite"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Basculer les fils" msgstr "Basculer les fils"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Jetons : {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Jetons : {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Jetons : {total} ({cached} en cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Suivez une offre à laquelle vous postulez et liez le CV envoyé." msgstr "Suivez une offre à laquelle vous postulez et liez le CV envoyé."
@@ -5213,6 +5310,10 @@ msgstr "Nous n'avons pas pu détecter le format automatiquement — veuillez le
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Nous n'avons pas trouvé cette page." msgstr "Nous n'avons pas trouvé cette page."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Recherche web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zoom arrière"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zoulou" msgstr "Zoulou"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "הוגש"
msgid "Applied on" msgid "Applied on"
msgstr "הוגש בתאריך" msgstr "הוגש בתאריך"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "אישור"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "אושר — ממתין לסוכן…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ערבית" msgstr "ערבית"
@@ -1462,6 +1470,14 @@ msgstr "מוחק את מפתח ה־API שלך..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "מוחק את קורות החיים שלך..." msgstr "מוחק את קורות החיים שלך..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "נדחה — ממתין לסוכן…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "דחייה"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "תאר מה עשית כדי שהרשומה תוסיף מילות מפתח להתאמה." msgstr "תאר מה עשית כדי שהרשומה תוסיף מילות מפתח להתאמה."
@@ -1530,6 +1546,10 @@ msgstr "לִתְרוֹם"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "תרומה ל־Reactive Resume" msgstr "תרומה ל־Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "הושלם"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ערוך תוכן במצב מסך מלא"
msgid "Edit date" msgid "Edit date"
msgstr "עריכת תאריך" msgstr "עריכת תאריך"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "העריכה נדחתה"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "ייצא את קורות החיים שלך ל-PDF באופן מיידי,
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png יוצא" msgstr "pipeline-flow.png יוצא"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "נכשל"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "לא ניתן לנתח את קורות החיים." msgstr "לא ניתן לנתח את קורות החיים."
@@ -1967,6 +1995,10 @@ msgstr "לא הצליח לבטל את הקישור לספק. אנא נסה שו
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "עדכון הספק נכשל." msgstr "עדכון הספק נכשל."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "עדכון הגדרות השרשור נכשל."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "נפתח בלשונית חדשה" msgstr "נפתח בלשונית חדשה"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "הערה אופציונלית לסוכן"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "הערה אופציונלית לסוכן…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "רשותך להגדיר סיסמה כך שרק מי שמכיר אותה יוכל לצפות בקורות החיים דרך הקישור." msgstr "רשותך להגדיר סיסמה כך שרק מי שמכיר אותה יוכל לצפות בקורות החיים דרך הקישור."
@@ -3499,6 +3539,10 @@ msgstr "פרסומים"
msgid "Publisher" msgid "Publisher"
msgstr "מוציא לאור" msgstr "מוציא לאור"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON גולמי"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "דרג מחדש" msgstr "דרג מחדש"
@@ -3546,10 +3590,18 @@ msgstr "קורות חיים ריאקטיביים v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "קורות חיים תגובתיים גרסה 4 (JSON)" msgstr "קורות חיים תגובתיים גרסה 4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "קרא קובץ מצורף"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "קרא את המדריך להחלת סגנונות מותאמים אישית." msgstr "קרא את המדריך להחלת סגנונות מותאמים אישית."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "קרא את קורות החיים"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "קורא את המודעה…" msgstr "קורא את המודעה…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "לְשַׁחְזֵר" msgstr "לְשַׁחְזֵר"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "לשחזר את קורות החיים למצב שלפני תיקון זה? פעולה זו תחזיר את התיקון הזה וכל תיקון שהוחל לאחריו." msgstr "לשחזר את קורות החיים למצב שלפני התיקון הזה?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "ניתוח קורות החיים הושלם."
msgid "Resume content" msgid "Resume content"
msgstr "תוכן קורות חיים" msgstr "תוכן קורות חיים"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "עריכת קורות חיים"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "קובץ קורות חיים" msgstr "קובץ קורות חיים"
@@ -3754,10 +3810,18 @@ msgstr "מסמכי קורות חיים"
msgid "Retry" msgid "Retry"
msgstr "נסה שוב" msgstr "נסה שוב"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "סקירת עריכות"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "בדוק את קורות החיים מול תיאור התפקיד ושאל אותי שאלות לפני שינוי חלקים לא ודאיים." msgstr "בדוק את קורות החיים מול תיאור התפקיד ושאל אותי שאלות לפני שינוי חלקים לא ודאיים."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "סקירת העריכה הזו"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "עבדו מחדש את הסיכום כך שיתמקד בתפקיד מנהל הנדסה בכיר מבלי להישמע כללי." msgstr "עבדו מחדש את הסיכום כך שיתמקד בתפקיד מנהל הנדסה בכיר מבלי להישמע כללי."
@@ -3798,6 +3862,10 @@ msgstr "סיבוב"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "בצע את הניתוח הראשון שלך כדי לקבל דוח ביצועים, נקודות חוזק והצעות מסודרות לפי סדר עדיפויות." msgstr "בצע את הניתוח הראשון שלך כדי לקבל דוח ביצועים, נקודות חוזק והצעות מסודרות לפי סדר עדיפויות."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "פועל…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "רוסית" msgstr "רוסית"
@@ -4253,6 +4321,15 @@ msgstr "מקור"
msgid "Source Code" msgid "Source Code"
msgstr "קוד מקור" msgstr "קוד מקור"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "מקור: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "מקורות"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "ריווח (אופקי)" msgstr "ריווח (אופקי)"
@@ -4604,6 +4681,10 @@ msgstr "לא ניתן היה לפתוח את העוזר הזה."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "התאריך הזה לא ייקרא כראוי." msgstr "התאריך הזה לא ייקרא כראוי."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "לא ניתן עוד להשיב על בקשת העריכה הזו."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "כתובת הדוא״ל הזו לא תזוהה." msgstr "כתובת הדוא״ל הזו לא תזוהה."
@@ -4712,6 +4793,10 @@ msgstr "זה יעזור לך לזהות אותו בהמשך, אם אתה מתכ
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "פעולה זו תסיר את כל הפריטים מהקטע הזה." msgstr "פעולה זו תסיר את כל הפריטים מהקטע הזה."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "פעולה זו תבטל את התיקון הזה ואת כל התיקונים שהוחלו אחריו."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "הצג את הסרגל הצדדי הימני"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "החלף שרשורים" msgstr "החלף שרשורים"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "טוקנים: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "טוקנים: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "טוקנים: {total} ({cached} מהמטמון)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "עקוב אחר משרה שאליה אתה מגיש מועמדות וקשר את קורות החיים ששלחת." msgstr "עקוב אחר משרה שאליה אתה מגיש מועמדות וקשר את קורות החיים ששלחת."
@@ -5213,6 +5310,10 @@ msgstr "לא הצלחנו לזהות את הפורמט באופן אוטומטי
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "לא הצלחנו למצוא את הדף הזה" msgstr "לא הצלחנו למצוא את הדף הזה"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "חיפוש באינטרנט"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "התרחקות"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "זולו" msgstr "זולו"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "आवेदन किया"
msgid "Applied on" msgid "Applied on"
msgstr "आवेदन की तारीख" msgstr "आवेदन की तारीख"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "स्वीकृत करें"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "स्वीकृत — एजेंट की प्रतीक्षा में…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "अरबी" msgstr "अरबी"
@@ -1462,6 +1470,14 @@ msgstr "आपकी API कुंजी हटाई जा रही है...
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "आपका रेज़्यूमे हटाया जा रहा है..." msgstr "आपका रेज़्यूमे हटाया जा रहा है..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "अस्वीकृत — एजेंट की प्रतीक्षा में…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "अस्वीकार करें"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "वर्णन करें कि आपने क्या किया ताकि प्रविष्टि मिलान के लिए कीवर्ड का योगदान दे सके।" msgstr "वर्णन करें कि आपने क्या किया ताकि प्रविष्टि मिलान के लिए कीवर्ड का योगदान दे सके।"
@@ -1530,6 +1546,10 @@ msgstr "दान करें"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "रिएक्टिव रेज़्यूमे के लिए दान करें" msgstr "रिएक्टिव रेज़्यूमे के लिए दान करें"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "पूर्ण"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "पूर्ण स्क्रीन मोड में सामग
msgid "Edit date" msgid "Edit date"
msgstr "तारीख संपादित करें" msgstr "तारीख संपादित करें"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "संपादन अस्वीकृत"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "बिना किसी प्रतीक्षा या देर
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png निर्यात किया गया" msgstr "pipeline-flow.png निर्यात किया गया"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "विफल"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "रिज़्यूमे का विश्लेषण करने में असफल।" msgstr "रिज़्यूमे का विश्लेषण करने में असफल।"
@@ -1967,6 +1995,10 @@ msgstr "प्रदाता को अनलिंक करने में
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "प्रदाता को अपडेट करने में विफल।" msgstr "प्रदाता को अपडेट करने में विफल।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "थ्रेड सेटिंग्स अपडेट नहीं हो सकीं।"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ओपनराउटर"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "नए टैब में खुलता है" msgstr "नए टैब में खुलता है"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "एजेंट के लिए वैकल्पिक नोट"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "एजेंट के लिए वैकल्पिक नोट…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "वैकल्पिक रूप से, एक पासवर्ड सेट करें ताकि केवल पासवर्ड वाले लोग ही लिंक के माध्यम से आपका रेज़्यूमे देख सकें।" msgstr "वैकल्पिक रूप से, एक पासवर्ड सेट करें ताकि केवल पासवर्ड वाले लोग ही लिंक के माध्यम से आपका रेज़्यूमे देख सकें।"
@@ -3499,6 +3539,10 @@ msgstr "प्रकाशन"
msgid "Publisher" msgid "Publisher"
msgstr "प्रकाशक" msgstr "प्रकाशक"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "रॉ JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "फिर से स्कोर करें" msgstr "फिर से स्कोर करें"
@@ -3546,10 +3590,18 @@ msgstr "रिएक्टिव रिज्यूम v<0>{__APP_VERSION__}</0>
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील रिज़्यूमे v4 (JSON)" msgstr "प्रतिक्रियाशील रिज़्यूमे v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "अटैचमेंट पढ़ा"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "कस्टम स्टाइल लागू करने संबंधी गाइड पढ़ें।" msgstr "कस्टम स्टाइल लागू करने संबंधी गाइड पढ़ें।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "रेज़्यूमे पढ़ा"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "पोस्टिंग पढ़ी जा रही है…" msgstr "पोस्टिंग पढ़ी जा रही है…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "पुनर्स्थापित करना" msgstr "पुनर्स्थापित करना"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "क्या हम रिज्यूम को इस पैच से पहले की स्थिति में रीस्टोर करना चाहते हैं? इससे यह पैच और इसके बाद लागू किए गए सभी पैच वापस ले लिए जाएंगे।" msgstr "रेज़्यूम को इस पैच से पहले की स्थिति में पुनर्स्थापित करें?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "रिज़्यूमे विश्लेषण पूरा हो
msgid "Resume content" msgid "Resume content"
msgstr "रिज्यूमे की सामग्री" msgstr "रिज्यूमे की सामग्री"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "रेज़्यूमे संपादन"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "रेज़्यूमे फ़ाइल" msgstr "रेज़्यूमे फ़ाइल"
@@ -3754,10 +3810,18 @@ msgstr "रेज़्यूमे"
msgid "Retry" msgid "Retry"
msgstr "पुन: प्रयास करें" msgstr "पुन: प्रयास करें"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "संपादनों की समीक्षा करें"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "नौकरी के विवरण के आधार पर रिज्यूमे की समीक्षा करें और अनिश्चित अनुभागों में बदलाव करने से पहले मुझसे प्रश्न पूछें।" msgstr "नौकरी के विवरण के आधार पर रिज्यूमे की समीक्षा करें और अनिश्चित अनुभागों में बदलाव करने से पहले मुझसे प्रश्न पूछें।"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "इस संपादन की समीक्षा करें"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "सारांश को इस तरह से संशोधित करें कि यह एक वरिष्ठ इंजीनियरिंग प्रबंधक की भूमिका को लक्षित करे, लेकिन सामान्य न लगे।" msgstr "सारांश को इस तरह से संशोधित करें कि यह एक वरिष्ठ इंजीनियरिंग प्रबंधक की भूमिका को लक्षित करे, लेकिन सामान्य न लगे।"
@@ -3798,6 +3862,10 @@ msgstr "रोटेशन"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "अपना पहला विश्लेषण चलाएँ ताकि आपको एक स्कोरकार्ड, ताकतें और प्राथमिकता-आधारित सुझाव मिल सकें।" msgstr "अपना पहला विश्लेषण चलाएँ ताकि आपको एक स्कोरकार्ड, ताकतें और प्राथमिकता-आधारित सुझाव मिल सकें।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "चल रहा है…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "रूसी" msgstr "रूसी"
@@ -4253,6 +4321,15 @@ msgstr "स्रोत"
msgid "Source Code" msgid "Source Code"
msgstr "स्रोत कोड" msgstr "स्रोत कोड"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "स्रोत: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "स्रोत"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "स्पेसिंग (क्षैतिज)" msgstr "स्पेसिंग (क्षैतिज)"
@@ -4604,6 +4681,10 @@ msgstr "इस सहायक को खोला नहीं जा सका
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "यह तारीख सही से नहीं पढ़ी जाएगी." msgstr "यह तारीख सही से नहीं पढ़ी जाएगी."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "इस संपादन अनुरोध का अब उत्तर नहीं दिया जा सकता।"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "यह ईमेल पता पहचाना नहीं जाएगा." msgstr "यह ईमेल पता पहचाना नहीं जाएगा."
@@ -4712,6 +4793,10 @@ msgstr "यदि आप कई पासकी रखने की योजन
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "यह इस अनुभाग से सभी आइटम हटा देगा।" msgstr "यह इस अनुभाग से सभी आइटम हटा देगा।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "इससे यह पैच और इसके बाद लागू किए गए सभी पैच वापस हो जाएँगे।"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "दाएँ साइडबार टॉगल करें"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "टॉगल थ्रेड्स" msgstr "टॉगल थ्रेड्स"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "टोकन: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "टोकन: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "टोकन: {total} ({cached} कैश किए गए)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "जिस नौकरी के लिए आप आवेदन कर रहे हैं उसे ट्रैक करें और भेजा गया रेज़्यूमे लिंक करें।" msgstr "जिस नौकरी के लिए आप आवेदन कर रहे हैं उसे ट्रैक करें और भेजा गया रेज़्यूमे लिंक करें।"
@@ -5213,6 +5310,10 @@ msgstr "हम प्रारूप का स्वचालित रूप
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "हमें वह पेज नहीं मिला" msgstr "हमें वह पेज नहीं मिला"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "वेब खोज"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "ज़ूम आउट"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ज़ुलु" msgstr "ज़ुलु"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Jelentkezve"
msgid "Applied on" msgid "Applied on"
msgstr "Jelentkezés dátuma" msgstr "Jelentkezés dátuma"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Jóváhagyás"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Jóváhagyva — várakozás az ügynökre…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "arab" msgstr "arab"
@@ -1462,6 +1470,14 @@ msgstr "API kulcs törlése..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Önéletrajz törlése..." msgstr "Önéletrajz törlése..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Elutasítva — várakozás az ügynökre…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Elutasítás"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Írja le, mit tett, hogy a bejegyzés kulcsszavakat adjon az egyezéshez." msgstr "Írja le, mit tett, hogy a bejegyzés kulcsszavakat adjon az egyezéshez."
@@ -1530,6 +1546,10 @@ msgstr "Adományoz"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Adományozzon a Reactive Resume-nak" msgstr "Adományozzon a Reactive Resume-nak"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Kész"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Tartalom szerkesztése teljes képernyős módban"
msgid "Edit date" msgid "Edit date"
msgstr "Dátum szerkesztése" msgstr "Dátum szerkesztése"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Szerkesztés elutasítva"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportálja önéletrajzát PDF formátumba azonnal, várakozás vagy k
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "A pipeline-flow.png exportálva." msgstr "A pipeline-flow.png exportálva."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Sikertelen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Nem sikerült elemezni az önéletrajzot." msgstr "Nem sikerült elemezni az önéletrajzot."
@@ -1967,6 +1995,10 @@ msgstr "Sikertelen a szolgáltató függetlenítése. Kérjük, próbálja újra
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Nem sikerült frissíteni a szolgáltatót." msgstr "Nem sikerült frissíteni a szolgáltatót."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nem sikerült frissíteni a szál beállításait."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "új lapon nyílik meg" msgstr "új lapon nyílik meg"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Opcionális megjegyzés az ügynöknek"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Opcionális megjegyzés az ügynöknek…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcionálisan beállíthatsz egy jelszót is, így csak azok tekinthetik meg a linkkel elérhető önéletrajzodat, akik ismerik a jelszót." msgstr "Opcionálisan beállíthatsz egy jelszót is, így csak azok tekinthetik meg a linkkel elérhető önéletrajzodat, akik ismerik a jelszót."
@@ -3499,6 +3539,10 @@ msgstr "Publikációk"
msgid "Publisher" msgid "Publisher"
msgstr "Kiadó" msgstr "Kiadó"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Nyers JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Újrapontozás" msgstr "Újrapontozás"
@@ -3546,10 +3590,18 @@ msgstr "Reaktív önéletrajz v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktív önéletrajz v4 (JSON)" msgstr "Reaktív önéletrajz v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Elolvasott egy mellékletet"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Olvasd el az Egyéni stílusok alkalmazása útmutatót." msgstr "Olvasd el az Egyéni stílusok alkalmazása útmutatót."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Elolvasta az önéletrajzot"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Hirdetés beolvasása…" msgstr "Hirdetés beolvasása…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Visszaállítás" msgstr "Visszaállítás"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Visszaállítja az önéletrajzot a javítás előtti állapotra? Ez visszaállítja a jelenlegi javítást és az utána telepített javításokat." msgstr "Visszaállítja az önéletrajzot a javítás előtti állapotra?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Az önéletrajzelemzés befejeződött."
msgid "Resume content" msgid "Resume content"
msgstr "Önéletrajz tartalma" msgstr "Önéletrajz tartalma"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Önéletrajz-szerkesztés"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Önéletrajzfájl" msgstr "Önéletrajzfájl"
@@ -3754,10 +3810,18 @@ msgstr "Önéletrajzok"
msgid "Retry" msgid "Retry"
msgstr "Újrapróbálkozás" msgstr "Újrapróbálkozás"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Szerkesztések áttekintése"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Ellenőrizd az önéletrajzot a munkaköri leírás alapján, és tegyél fel kérdéseket, mielőtt megváltoztatod a bizonytalan részeket." msgstr "Ellenőrizd az önéletrajzot a munkaköri leírás alapján, és tegyél fel kérdéseket, mielőtt megváltoztatod a bizonytalan részeket."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Szerkesztés áttekintése"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Alakítsd át az összefoglalót úgy, hogy egy vezető mérnöki vezetői szerepkörre összpontosítson anélkül, hogy általánosnak tűnne." msgstr "Alakítsd át az összefoglalót úgy, hogy egy vezető mérnöki vezetői szerepkörre összpontosítson anélkül, hogy általánosnak tűnne."
@@ -3798,6 +3862,10 @@ msgstr "Forgatás"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Futtassa le az első elemzést, hogy kapjon egy értékelőlapot, erősségeket és rangsorolt javaslatokat." msgstr "Futtassa le az első elemzést, hogy kapjon egy értékelőlapot, erősségeket és rangsorolt javaslatokat."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Folyamatban…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "orosz" msgstr "orosz"
@@ -4253,6 +4321,15 @@ msgstr "Forrás"
msgid "Source Code" msgid "Source Code"
msgstr "Forráskód" msgstr "Forráskód"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Forrás: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Források"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Térköz (vízszintes)" msgstr "Térköz (vízszintes)"
@@ -4604,6 +4681,10 @@ msgstr "Ez az asszisztens nem nyitható meg."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Ez a dátum nem lesz helyesen olvasható." msgstr "Ez a dátum nem lesz helyesen olvasható."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Erre a szerkesztési kérésre már nem lehet válaszolni."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Ezt az e-mail címet a rendszer nem ismeri fel." msgstr "Ezt az e-mail címet a rendszer nem ismeri fel."
@@ -4712,6 +4793,10 @@ msgstr "Ez segít a későbbi azonosításban, ha több jelszókulcsot tervez."
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Ezzel az összes elemet eltávolítja ebből a szakaszból." msgstr "Ezzel az összes elemet eltávolítja ebből a szakaszból."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Ez visszavonja ezt a javítást és minden utána alkalmazott javítást."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Jobb oldalsáv bekapcsolása"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Témák ki-/bekapcsolása" msgstr "Témák ki-/bekapcsolása"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokenek: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokenek: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokenek: {total} ({cached} gyorsítótárazva)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Kövesd nyomon az állást, amelyre jelentkezel, és kapcsold hozzá az elküldött önéletrajzot." msgstr "Kövesd nyomon az állást, amelyre jelentkezel, és kapcsold hozzá az elküldött önéletrajzot."
@@ -5213,6 +5310,10 @@ msgstr "Nem tudtuk automatikusan felismerni a formátumot kérjük, válassz
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Nem találtuk meg az oldalt" msgstr "Nem találtuk meg az oldalt"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Webes keresés"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Kicsinyítés"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Dilamar"
msgid "Applied on" msgid "Applied on"
msgstr "Dilamar pada" msgstr "Dilamar pada"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Setujui"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Disetujui — menunggu agen…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arab" msgstr "Arab"
@@ -1462,6 +1470,14 @@ msgstr "Menghapus API key Anda..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Menghapus resume Anda..." msgstr "Menghapus resume Anda..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Ditolak — menunggu agen…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Tolak"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Jelaskan apa yang Anda lakukan sehingga entri tersebut menyumbangkan kata kunci untuk pencocokan." msgstr "Jelaskan apa yang Anda lakukan sehingga entri tersebut menyumbangkan kata kunci untuk pencocokan."
@@ -1530,6 +1546,10 @@ msgstr "Menyumbangkan"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donasi ke Reactive Resume" msgstr "Donasi ke Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Selesai"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Mengedit konten dalam mode layar penuh"
msgid "Edit date" msgid "Edit date"
msgstr "Edit tanggal" msgstr "Edit tanggal"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edit ditolak"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Ekspor resume Anda ke PDF secara instan, tanpa menunggu atau mengalami p
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png diekspor" msgstr "pipeline-flow.png diekspor"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Gagal"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Gagal menganalisis resume." msgstr "Gagal menganalisis resume."
@@ -1967,6 +1995,10 @@ msgstr "Gagal memutuskan tautan penyedia. Silakan coba lagi."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Gagal memperbarui penyedia." msgstr "Gagal memperbarui penyedia."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Gagal memperbarui pengaturan thread."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "terbuka di tab baru" msgstr "terbuka di tab baru"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Catatan opsional untuk agen"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Catatan opsional untuk agen…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Secara opsional, atur kata sandi sehingga hanya orang yang memiliki kata sandi yang dapat melihat resume Anda melalui tautan." msgstr "Secara opsional, atur kata sandi sehingga hanya orang yang memiliki kata sandi yang dapat melihat resume Anda melalui tautan."
@@ -3499,6 +3539,10 @@ msgstr "Publikasi"
msgid "Publisher" msgid "Publisher"
msgstr "Penerbit" msgstr "Penerbit"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON mentah"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Nilai ulang" msgstr "Nilai ulang"
@@ -3546,10 +3590,18 @@ msgstr "Reaktif Lanjutkan v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Lanjutkan Reaktif v4 (JSON)" msgstr "Lanjutkan Reaktif v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Membaca lampiran"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Bacalah panduan Menerapkan Gaya Kustom." msgstr "Bacalah panduan Menerapkan Gaya Kustom."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Membaca resume"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Membaca lowongan…" msgstr "Membaca lowongan…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Memulihkan" msgstr "Memulihkan"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Pulihkan resume ke sebelum patch ini? Ini akan mengembalikan patch ini dan semua patch yang diterapkan setelahnya." msgstr "Pulihkan resume ke kondisi sebelum patch ini?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Lanjutkan analisis hingga selesai."
msgid "Resume content" msgid "Resume content"
msgstr "Isi resume" msgstr "Isi resume"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Edit resume"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "File resume" msgstr "File resume"
@@ -3754,10 +3810,18 @@ msgstr "Resume"
msgid "Retry" msgid "Retry"
msgstr "Mencoba kembali" msgstr "Mencoba kembali"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Tinjau edit"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Tinjau resume Anda dan bandingkan dengan deskripsi pekerjaan, serta ajukan pertanyaan kepada saya sebelum mengubah bagian-bagian yang kurang jelas." msgstr "Tinjau resume Anda dan bandingkan dengan deskripsi pekerjaan, serta ajukan pertanyaan kepada saya sebelum mengubah bagian-bagian yang kurang jelas."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Tinjau edit ini"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Perbaiki ringkasan tersebut agar sesuai dengan peran manajer teknik senior tanpa terdengar umum." msgstr "Perbaiki ringkasan tersebut agar sesuai dengan peran manajer teknik senior tanpa terdengar umum."
@@ -3798,6 +3862,10 @@ msgstr "Rotasi"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Jalankan analisis pertama Anda untuk mendapatkan kartu skor, kekuatan, dan saran yang diprioritaskan." msgstr "Jalankan analisis pertama Anda untuk mendapatkan kartu skor, kekuatan, dan saran yang diprioritaskan."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Berjalan…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rusia" msgstr "Rusia"
@@ -4253,6 +4321,15 @@ msgstr "Sumber"
msgid "Source Code" msgid "Source Code"
msgstr "Kode Sumber" msgstr "Kode Sumber"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Sumber: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Sumber"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Jarak (Horizontal)" msgstr "Jarak (Horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "Asisten ini tidak dapat dibuka."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Tanggal ini tidak akan terbaca dengan benar." msgstr "Tanggal ini tidak akan terbaca dengan benar."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Permintaan edit ini tidak dapat dijawab lagi."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Alamat email ini tidak akan dikenali." msgstr "Alamat email ini tidak akan dikenali."
@@ -4712,6 +4793,10 @@ msgstr "Ini akan membantu Anda mengidentifikasinya nanti, jika Anda berencana un
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Hal ini akan menghapus semua item dari bagian ini." msgstr "Hal ini akan menghapus semua item dari bagian ini."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Ini akan membatalkan patch ini dan semua patch yang diterapkan setelahnya."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Beralih ke bilah sisi kanan"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Alihkan utas" msgstr "Alihkan utas"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token: {total} ({cached} di-cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Lacak pekerjaan yang kamu lamar dan tautkan resume yang kamu kirim." msgstr "Lacak pekerjaan yang kamu lamar dan tautkan resume yang kamu kirim."
@@ -5213,6 +5310,10 @@ msgstr "Kami tidak dapat mendeteksi format secara otomatis — silakan pilih for
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Kami tidak dapat menemukan halaman itu." msgstr "Kami tidak dapat menemukan halaman itu."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Pencarian web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Perkecil"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Candidatura inviata"
msgid "Applied on" msgid "Applied on"
msgstr "Candidatura inviata il" msgstr "Candidatura inviata il"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Approva"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Approvato — in attesa dell'agente…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabo" msgstr "Arabo"
@@ -1462,6 +1470,14 @@ msgstr "Eliminazione della chiave API in corso..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Eliminazione del tuo curriculum in corso..." msgstr "Eliminazione del tuo curriculum in corso..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Rifiutato — in attesa dell'agente…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Rifiuta"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Descrivi cosa hai fatto in modo che la voce fornisca parole chiave per la corrispondenza." msgstr "Descrivi cosa hai fatto in modo che la voce fornisca parole chiave per la corrispondenza."
@@ -1530,6 +1546,10 @@ msgstr "Donare"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Fai una donazione a Reactive Resume" msgstr "Fai una donazione a Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Completato"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Modifica dei contenuti in modalità fullscreen"
msgid "Edit date" msgid "Edit date"
msgstr "Modifica data" msgstr "Modifica data"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Modifica rifiutata"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Esporta il tuo curriculum in PDF all'istante, senza attese né ritardi."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png esportato" msgstr "pipeline-flow.png esportato"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Non riuscito"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Non è riuscito ad analizzare il curriculum." msgstr "Non è riuscito ad analizzare il curriculum."
@@ -1967,6 +1995,10 @@ msgstr "Impossibile scollegare il provider. Provi di nuovo."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Impossibile aggiornare il provider." msgstr "Impossibile aggiornare il provider."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Impossibile aggiornare le impostazioni della discussione."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "apre in una nuova scheda" msgstr "apre in una nuova scheda"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Nota facoltativa per l'agente"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Nota facoltativa per l'agente…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Facoltativamente, imposta una password affinché solo le persone che la conoscono possano visualizzare il tuo curriculum tramite il link." msgstr "Facoltativamente, imposta una password affinché solo le persone che la conoscono possano visualizzare il tuo curriculum tramite il link."
@@ -3499,6 +3539,10 @@ msgstr "Pubblicazioni"
msgid "Publisher" msgid "Publisher"
msgstr "Editore" msgstr "Editore"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON grezzo"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Ricalcola punteggio" msgstr "Ricalcola punteggio"
@@ -3546,10 +3590,18 @@ msgstr "Ripresa reattiva v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Ripresa reattiva v4 (JSON)" msgstr "Ripresa reattiva v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Ha letto un allegato"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Leggi la guida \"Applicazione di stili personalizzati\"." msgstr "Leggi la guida \"Applicazione di stili personalizzati\"."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Ha letto il curriculum"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Lettura dell'annuncio…" msgstr "Lettura dell'annuncio…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Ripristinare" msgstr "Ripristinare"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Ripristinare il ripristino a prima di questa patch? Questa opzione annullerà questa patch e tutte le patch applicate successivamente." msgstr "Ripristinare il curriculum allo stato precedente a questa patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analisi del curriculum completata."
msgid "Resume content" msgid "Resume content"
msgstr "Contenuto del curriculum" msgstr "Contenuto del curriculum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Modifica al curriculum"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "File curriculum" msgstr "File curriculum"
@@ -3754,10 +3810,18 @@ msgstr "Curriculum"
msgid "Retry" msgid "Retry"
msgstr "Riprova" msgstr "Riprova"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Rivedi le modifiche"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Esamina il curriculum confrontandolo con la descrizione del lavoro e fammi delle domande prima di modificare le sezioni in cui hai dei dubbi." msgstr "Esamina il curriculum confrontandolo con la descrizione del lavoro e fammi delle domande prima di modificare le sezioni in cui hai dei dubbi."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Rivedi questa modifica"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Rielabora il riepilogo in modo che si rivolga a un ruolo di responsabile senior dell'ingegneria senza risultare generico." msgstr "Rielabora il riepilogo in modo che si rivolga a un ruolo di responsabile senior dell'ingegneria senza risultare generico."
@@ -3798,6 +3862,10 @@ msgstr "Rotazione"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Esegua la prima analisi per ottenere una scorecard, i punti di forza e i suggerimenti prioritari." msgstr "Esegua la prima analisi per ottenere una scorecard, i punti di forza e i suggerimenti prioritari."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "In esecuzione…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russo" msgstr "Russo"
@@ -4253,6 +4321,15 @@ msgstr "Fonte"
msgid "Source Code" msgid "Source Code"
msgstr "Codice sorgente" msgstr "Codice sorgente"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Fonte: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Fonti"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Spaziatura (orizzontale)" msgstr "Spaziatura (orizzontale)"
@@ -4604,6 +4681,10 @@ msgstr "Impossibile aprire questo assistente."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Questa data non verrà letta correttamente." msgstr "Questa data non verrà letta correttamente."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Non è più possibile rispondere a questa richiesta di modifica."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Questo indirizzo email non verrà riconosciuto." msgstr "Questo indirizzo email non verrà riconosciuto."
@@ -4712,6 +4793,10 @@ msgstr "Questo la aiuterà a identificarlo in seguito, se prevede di avere più
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Questo rimuoverà tutti gli elementi da questa sezione." msgstr "Questo rimuoverà tutti gli elementi da questa sezione."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Questa operazione annullerà questa patch e tutte le patch applicate successivamente."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Alterna la barra laterale destra"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Discussioni di attivazione/disattivazione" msgstr "Discussioni di attivazione/disattivazione"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token: {total} ({cached} in cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Tieni traccia di un lavoro per cui ti candidi e collega il curriculum inviato." msgstr "Tieni traccia di un lavoro per cui ti candidi e collega il curriculum inviato."
@@ -5213,6 +5310,10 @@ msgstr "Non siamo riusciti a rilevare automaticamente il formato: selezionalo qu
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Non siamo riusciti a trovare quella pagina" msgstr "Non siamo riusciti a trovare quella pagina"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Ricerca web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Rimpicciolisci"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "応募済み"
msgid "Applied on" msgid "Applied on"
msgstr "応募日" msgstr "応募日"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "承認"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "承認済み — エージェントを待っています…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "アラビア語" msgstr "アラビア語"
@@ -1462,6 +1470,14 @@ msgstr "API キーを削除しています..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "レジュメを削除しています…" msgstr "レジュメを削除しています…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "拒否済み — エージェントを待っています…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "拒否"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "エントリが一致するキーワードに貢献するために行ったことを説明してください。" msgstr "エントリが一致するキーワードに貢献するために行ったことを説明してください。"
@@ -1530,6 +1546,10 @@ msgstr "寄付する"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume に寄付" msgstr "Reactive Resume に寄付"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "完了"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "フルスクリーンモードでのコンテンツ編集"
msgid "Edit date" msgid "Edit date"
msgstr "日付を編集" msgstr "日付を編集"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "編集は拒否されました"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "待ち時間や遅延なく、即座にPDF形式でエクスポートで
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png をエクスポートしました" msgstr "pipeline-flow.png をエクスポートしました"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "失敗"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "レジュメの解析に失敗しました。" msgstr "レジュメの解析に失敗しました。"
@@ -1967,6 +1995,10 @@ msgstr "プロバイダのリンク解除に失敗しました。もう一度お
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "プロバイダーの更新に失敗しました。" msgstr "プロバイダーの更新に失敗しました。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "スレッド設定の更新に失敗しました。"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "新しいタブで開きます" msgstr "新しいタブで開きます"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "エージェントへのメモ(任意)"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "エージェントへのメモ(任意)…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "必要に応じてパスワードを設定し、パスワードを知っている人だけがリンクを閲覧できるようにすることもできます。" msgstr "必要に応じてパスワードを設定し、パスワードを知っている人だけがリンクを閲覧できるようにすることもできます。"
@@ -3499,6 +3539,10 @@ msgstr "著作物"
msgid "Publisher" msgid "Publisher"
msgstr "出版社" msgstr "出版社"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "生のJSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "再採点" msgstr "再採点"
@@ -3546,10 +3590,18 @@ msgstr "リアクティブレジューム v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "添付ファイルを読み取りました"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "カスタムスタイルの適用ガイドをお読みください。" msgstr "カスタムスタイルの適用ガイドをお読みください。"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "レジュメを読み取りました"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "求人情報を読み取り中…" msgstr "求人情報を読み取り中…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "復元する" msgstr "復元する"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "このパッチ適用前の状態に復元しますか?これにより、このパッチと、その後に適用されたすべてのパッチがロールバックされます。" msgstr "このパッチ適用前の状態にレジュメを復元しますか?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "レジュメの分析が完了しました。"
msgid "Resume content" msgid "Resume content"
msgstr "履歴書の内容" msgstr "履歴書の内容"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "レジュメの編集"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "履歴書ファイル" msgstr "履歴書ファイル"
@@ -3754,10 +3810,18 @@ msgstr "レジュメ"
msgid "Retry" msgid "Retry"
msgstr "リトライ" msgstr "リトライ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "編集内容を確認"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "レジュメを求人内容と照らし合わせて確認し、不明な点があれば変更する前に私に質問してください。" msgstr "レジュメを求人内容と照らし合わせて確認し、不明な点があれば変更する前に私に質問してください。"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "この編集を確認"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "要約を修正して、一般的な表現にならないように、上級エンジニアリングマネージャーの職務を的確に捉えられるようにしてください。" msgstr "要約を修正して、一般的な表現にならないように、上級エンジニアリングマネージャーの職務を的確に捉えられるようにしてください。"
@@ -3798,6 +3862,10 @@ msgstr "回転"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "分析を実行すると、スコアカード・強み・改善提案が表示されます。" msgstr "分析を実行すると、スコアカード・強み・改善提案が表示されます。"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "実行中…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "ロシア語" msgstr "ロシア語"
@@ -4253,6 +4321,15 @@ msgstr "ソース"
msgid "Source Code" msgid "Source Code"
msgstr "ソースコード" msgstr "ソースコード"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "ソース: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ソース"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "間隔(左右)" msgstr "間隔(左右)"
@@ -4604,6 +4681,10 @@ msgstr "このアシスタントを開くことができませんでした。"
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "この日付は正しく読み取れません。" msgstr "この日付は正しく読み取れません。"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "この編集リクエストには回答できなくなりました。"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "このメールアドレスは認識されません。" msgstr "このメールアドレスは認識されません。"
@@ -4712,6 +4793,10 @@ msgstr "複数のパスキーを使用する予定がある場合、後で識別
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "これでこのセクションからすべての項目が削除される。" msgstr "これでこのセクションからすべての項目が削除される。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "このパッチと、その後に適用されたすべてのパッチがロールバックされます。"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "右サイドバーの切り替え"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "スレッドの切り替え" msgstr "スレッドの切り替え"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "トークン: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "トークン: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "トークン: {total}{cached} キャッシュ済み)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "応募中の求人を追跡し、送付した履歴書をリンクします。" msgstr "応募中の求人を追跡し、送付した履歴書をリンクします。"
@@ -5213,6 +5310,10 @@ msgstr "フォーマットを自動的に検出できませんでした。上記
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "そのページは見つかりませんでした" msgstr "そのページは見つかりませんでした"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "ウェブ検索"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "ズームアウト"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ズールー語" msgstr "ズールー語"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "បានដាក់ពាក្យ"
msgid "Applied on" msgid "Applied on"
msgstr "បានដាក់ពាក្យនៅ" msgstr "បានដាក់ពាក្យនៅ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "អនុម័ត"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "បានអនុម័ត — កំពុងរង់ចាំភ្នាក់ងារ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabic" msgstr "Arabic"
@@ -1462,6 +1470,14 @@ msgstr "កំពុង​លុប​កូនសោ API របស់​អ្
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "កំពុង​លុប​ប្រវត្តិរូប​របស់​អ្នក..." msgstr "កំពុង​លុប​ប្រវត្តិរូប​របស់​អ្នក..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "បានបដិសេធ — កំពុងរង់ចាំភ្នាក់ងារ…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "បដិសេធ"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "ពណ៌នាអំពីអ្វីដែលអ្នកបានធ្វើ ដូច្នេះធាតុចូលរួមចំណែកពាក្យគន្លឹះសម្រាប់ការផ្គូផ្គង។" msgstr "ពណ៌នាអំពីអ្វីដែលអ្នកបានធ្វើ ដូច្នេះធាតុចូលរួមចំណែកពាក្យគន្លឹះសម្រាប់ការផ្គូផ្គង។"
@@ -1530,6 +1546,10 @@ msgstr "បរិច្ចាគ"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "បរិច្ចាគ​ឲ្យ Reactive Resume" msgstr "បរិច្ចាគ​ឲ្យ Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "រួចរាល់"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "កែសម្រួលមាតិកាក្នុងរបៀបព
msgid "Edit date" msgid "Edit date"
msgstr "កែសម្រួលកាលបរិច្ឆេទ" msgstr "កែសម្រួលកាលបរិច្ឆេទ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "ការកែសម្រួលត្រូវបានបដិសេធ"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "នាំចេញប្រវត្តិរូបសង្ខេបរ
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "បាននាំចេញ pipeline-flow.png" msgstr "បាននាំចេញ pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "បរាជ័យ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "ការវិភាគប្រវត្តិរូបបានបរាជ័យ។" msgstr "ការវិភាគប្រវត្តិរូបបានបរាជ័យ។"
@@ -1967,6 +1995,10 @@ msgstr "បរាជ័យក្នុងការផ្តាច់អ្នក
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "មិនអាចធ្វើបច្ចុប្បន្នភាពអ្នកផ្តល់សេវាបានទេ។" msgstr "មិនអាចធ្វើបច្ចុប្បន្នភាពអ្នកផ្តល់សេវាបានទេ។"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពការកំណត់ខ្សែស្រឡាយ។"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "បើក​ក្នុង​ផ្ទាំង​ថ្មី" msgstr "បើក​ក្នុង​ផ្ទាំង​ថ្មី"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ចំណាំស្រេចចិត្តសម្រាប់ភ្នាក់ងារ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ចំណាំស្រេចចិត្តសម្រាប់ភ្នាក់ងារ…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ជា​ជម្រើស អ្នក​អាច​កំណត់​ពាក្យសម្ងាត់​មួយ ដូច្នេះ​តែ​មនុស្ស​ដែល​មាន​ពាក្យសម្ងាត់​ប៉ុណ្ណោះ អាច​មើល​ប្រវត្តិរូប​របស់​អ្នក​តាម​តំណ​បាន។" msgstr "ជា​ជម្រើស អ្នក​អាច​កំណត់​ពាក្យសម្ងាត់​មួយ ដូច្នេះ​តែ​មនុស្ស​ដែល​មាន​ពាក្យសម្ងាត់​ប៉ុណ្ណោះ អាច​មើល​ប្រវត្តិរូប​របស់​អ្នក​តាម​តំណ​បាន។"
@@ -3499,6 +3539,10 @@ msgstr "អត្ថបទផ្សព្វផ្សាយ"
msgid "Publisher" msgid "Publisher"
msgstr "អ្នកបោះពុម្ពផ្សាយ" msgstr "អ្នកបោះពុម្ពផ្សាយ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON ដើម"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "ដាក់ពិន្ទុម្តងទៀត" msgstr "ដាក់ពិន្ទុម្តងទៀត"
@@ -3546,10 +3590,18 @@ msgstr "ប្រវត្តិរូបសង្ខេបដែលមានប
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "បានអានឯកសារភ្ជាប់"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "សូមអានការណែនាំអំពីការអនុវត្តរចនាប័ទ្មផ្ទាល់ខ្លួន។" msgstr "សូមអានការណែនាំអំពីការអនុវត្តរចនាប័ទ្មផ្ទាល់ខ្លួន។"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "បានអានប្រវត្តិរូបសង្ខេប"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "កំពុងអានការប្រកាសការងារ…" msgstr "កំពុងអានការប្រកាសការងារ…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "ស្ដារឡើងវិញ" msgstr "ស្ដារឡើងវិញ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "ស្ដារប្រវត្តិរូបសង្ខេបទៅមុនបំណះនេះ? វានឹងរំកិលបំណះនេះ និងបំណះណាមួយដែលបានអនុវត្តបន្ទាប់ពីវា។" msgstr "ស្ដារប្រវត្តិរូបសង្ខេបទៅស្ថានភាពមុនបំណះនេះ?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "ការវិភាគប្រវត្តិរូបបានបញ
msgid "Resume content" msgid "Resume content"
msgstr "ខ្លឹមសារនៃប្រវត្តិរូបសង្ខេប" msgstr "ខ្លឹមសារនៃប្រវត្តិរូបសង្ខេប"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "ការកែសម្រួលប្រវត្តិរូបសង្ខេប"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "ឯកសារប្រវត្តិរូបសង្ខេប" msgstr "ឯកសារប្រវត្តិរូបសង្ខេប"
@@ -3754,10 +3810,18 @@ msgstr "ប្រវត្តិរូប"
msgid "Retry" msgid "Retry"
msgstr "សាកល្បងម្តងទៀត" msgstr "សាកល្បងម្តងទៀត"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "ពិនិត្យការកែសម្រួល"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "សូមពិនិត្យមើលប្រវត្តិរូបសង្ខេបជាមួយនឹងការពិពណ៌នាការងារ ហើយសួរខ្ញុំនូវសំណួរមុនពេលផ្លាស់ប្តូរផ្នែកដែលមិនច្បាស់លាស់។" msgstr "សូមពិនិត្យមើលប្រវត្តិរូបសង្ខេបជាមួយនឹងការពិពណ៌នាការងារ ហើយសួរខ្ញុំនូវសំណួរមុនពេលផ្លាស់ប្តូរផ្នែកដែលមិនច្បាស់លាស់។"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ពិនិត្យការកែសម្រួលនេះ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "សូមធ្វើការសង្ខេបឡើងវិញ ដើម្បីឱ្យវាផ្តោតលើតួនាទីជាអ្នកគ្រប់គ្រងវិស្វកម្មជាន់ខ្ពស់ ដោយមិនស្តាប់ទៅដូចជាទូទៅ។" msgstr "សូមធ្វើការសង្ខេបឡើងវិញ ដើម្បីឱ្យវាផ្តោតលើតួនាទីជាអ្នកគ្រប់គ្រងវិស្វកម្មជាន់ខ្ពស់ ដោយមិនស្តាប់ទៅដូចជាទូទៅ។"
@@ -3798,6 +3862,10 @@ msgstr "មុំ​បង្វែរ"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ដំណើរការវិភាគលើកដំបូងរបស់អ្នកដើម្បីទទួលបានតារាងពិន្ទុ ចំណុចខ្លាំង និងសំណើដែលបានកំណត់អាទិភាព។" msgstr "ដំណើរការវិភាគលើកដំបូងរបស់អ្នកដើម្បីទទួលបានតារាងពិន្ទុ ចំណុចខ្លាំង និងសំណើដែលបានកំណត់អាទិភាព។"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "កំពុងដំណើរការ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russian" msgstr "Russian"
@@ -4253,6 +4321,15 @@ msgstr "ប្រភព"
msgid "Source Code" msgid "Source Code"
msgstr "កូដ​ប្រភព" msgstr "កូដ​ប្រភព"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "ប្រភព៖ {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ប្រភព"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "គម្លាត (ផ្ដេក)" msgstr "គម្លាត (ផ្ដេក)"
@@ -4604,6 +4681,10 @@ msgstr "មិនអាចបើកជំនួយការនេះបានទ
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "កាលបរិច្ឆេទនេះនឹងមិនត្រូវបានអានត្រឹមត្រូវទេ។" msgstr "កាលបរិច្ឆេទនេះនឹងមិនត្រូវបានអានត្រឹមត្រូវទេ។"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "សំណើកែសម្រួលនេះមិនអាចឆ្លើយតបបានទៀតទេ។"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "អាសយដ្ឋានអ៊ីមែលនេះនឹងមិនត្រូវបានទទួលស្គាល់ទេ។" msgstr "អាសយដ្ឋានអ៊ីមែលនេះនឹងមិនត្រូវបានទទួលស្គាល់ទេ។"
@@ -4712,6 +4793,10 @@ msgstr "វានឹងជួយអ្នកកំណត់អត្តសញ្
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "វានឹងលុបធាតុទាំងអស់ចេញពីផ្នែកនេះ។" msgstr "វានឹងលុបធាតុទាំងអស់ចេញពីផ្នែកនេះ។"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "វានឹងត្រឡប់បំណះនេះ និងបំណះទាំងអស់ដែលបានអនុវត្តបន្ទាប់ពីវាមកវិញ។"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "បិទបើករបារចំហៀងខាងស្តាំ"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "បិទ/បើកខ្សែស្រឡាយ" msgstr "បិទ/បើកខ្សែស្រឡាយ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "ថូខឹន៖ {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "ថូខឹន៖ {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "ថូខឹន៖ {total} ({cached} ក្នុងឃ្លាំងសម្ងាត់)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "តាមដានការងារដែលអ្នកកំពុងដាក់ពាក្យ ហើយភ្ជាប់ប្រវត្តិរូបដែលបានផ្ញើ។" msgstr "តាមដានការងារដែលអ្នកកំពុងដាក់ពាក្យ ហើយភ្ជាប់ប្រវត្តិរូបដែលបានផ្ញើ។"
@@ -5213,6 +5310,10 @@ msgstr "យើងមិនអាចរកឃើញទម្រង់ដោយស
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "យើងរកមិនឃើញទំព័រនោះទេ" msgstr "យើងរកមិនឃើញទំព័រនោះទេ"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "ការស្វែងរកតាមអ៊ីនធឺណិត"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "បង្រួម"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "ಅರ್ಜಿಸಲಾಗಿದೆ"
msgid "Applied on" msgid "Applied on"
msgstr "ಅರ್ಜಿ ಸಲ್ಲಿಸಿದ ದಿನಾಂಕ" msgstr "ಅರ್ಜಿ ಸಲ್ಲಿಸಿದ ದಿನಾಂಕ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "ಅನುಮೋದಿಸಿ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "ಅನುಮೋದಿಸಲಾಗಿದೆ — ಏಜೆಂಟ್‌ಗಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ಅರೇಬಿಕ್" msgstr "ಅರೇಬಿಕ್"
@@ -1462,6 +1470,14 @@ msgstr "ನಿಮ್ಮ API ಕೀಲಿಯನ್ನು ಅಳಿಸಲಾಗು
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅಳಿಸಲಾಗುತ್ತಿದೆ..." msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅಳಿಸಲಾಗುತ್ತಿದೆ..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "ನಿರಾಕರಿಸಲಾಗಿದೆ — ಏಜೆಂಟ್‌ಗಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "ನಿರಾಕರಿಸಿ"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "ನೀವು ಏನು ಮಾಡಿದ್ದೀರಿ ಎಂಬುದನ್ನು ವಿವರಿಸಿ ಆದ್ದರಿಂದ ನಮೂದು ಹೊಂದಾಣಿಕೆಗೆ ಕೀವರ್ಡ್‌ಗಳನ್ನು ಕೊಡುಗೆ ನೀಡುತ್ತದೆ." msgstr "ನೀವು ಏನು ಮಾಡಿದ್ದೀರಿ ಎಂಬುದನ್ನು ವಿವರಿಸಿ ಆದ್ದರಿಂದ ನಮೂದು ಹೊಂದಾಣಿಕೆಗೆ ಕೀವರ್ಡ್‌ಗಳನ್ನು ಕೊಡುಗೆ ನೀಡುತ್ತದೆ."
@@ -1530,6 +1546,10 @@ msgstr "ದಾನ ಮಾಡಿ"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್‌ಗೆ ದೇಣಿಗೆ ನೀಡಿ" msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್‌ಗೆ ದೇಣಿಗೆ ನೀಡಿ"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "ಮುಗಿದಿದೆ"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ಪೂರ್ಣಪರದೆ ಮೋಡ್‌ನಲ್ಲಿ ವಿಷಯ
msgid "Edit date" msgid "Edit date"
msgstr "ದಿನಾಂಕ ಸಂಪಾದಿಸಿ" msgstr "ದಿನಾಂಕ ಸಂಪಾದಿಸಿ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "ಸಂಪಾದನೆ ನಿರಾಕರಿಸಲಾಗಿದೆ"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "ಯಾವುದೇ ಕಾಯುವಿಕೆ ಅಥವಾ ವಿಳಂಬ
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png ರಫ್ತು ಮಾಡಲಾಗಿದೆ" msgstr "pipeline-flow.png ರಫ್ತು ಮಾಡಲಾಗಿದೆ"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "ವಿಫಲವಾಗಿದೆ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "ರೆಸ್ಯೂಮ್ ವಿಶ್ಲೇಷಣೆ ವಿಫಲವಾಗಿದೆ." msgstr "ರೆಸ್ಯೂಮ್ ವಿಶ್ಲೇಷಣೆ ವಿಫಲವಾಗಿದೆ."
@@ -1967,6 +1995,10 @@ msgstr "ಪ್ರೊವೈಡರ್ ಅನ್ನು ಅನ್‌ಲಿಂಕ್
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "ಪೂರೈಕೆದಾರರನ್ನು ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ." msgstr "ಪೂರೈಕೆದಾರರನ್ನು ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "ಥ್ರೆಡ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ" msgstr "ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ಏಜೆಂಟ್‌ಗೆ ಐಚ್ಛಿಕ ಟಿಪ್ಪಣಿ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ಏಜೆಂಟ್‌ಗೆ ಐಚ್ಛಿಕ ಟಿಪ್ಪಣಿ…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ಐಚ್ಛಿಕವಾಗಿ, ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ, ಆಗ ಪಾಸ್‌ವರ್ಡ್ ಹೊಂದಿರುವವರಿಗಷ್ಟೇ ಲಿಂಕ್ ಮೂಲಕ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ." msgstr "ಐಚ್ಛಿಕವಾಗಿ, ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ, ಆಗ ಪಾಸ್‌ವರ್ಡ್ ಹೊಂದಿರುವವರಿಗಷ್ಟೇ ಲಿಂಕ್ ಮೂಲಕ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ."
@@ -3499,6 +3539,10 @@ msgstr "ಪ್ರಕಟನೆಗಳು"
msgid "Publisher" msgid "Publisher"
msgstr "ಪ್ರಕಾಶಕರು" msgstr "ಪ್ರಕಾಶಕರು"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "ಕಚ್ಚಾ JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "ಮರು ಅಂಕೀಕರಿಸಿ" msgstr "ಮರು ಅಂಕೀಕರಿಸಿ"
@@ -3546,10 +3590,18 @@ msgstr "ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ಪುನರಾರಂಭ v
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮೇ v4 (JSON)" msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮೇ v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "ಲಗತ್ತನ್ನು ಓದಲಾಗಿದೆ"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "ಕಸ್ಟಮ್ ಶೈಲಿಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ಓದಿ." msgstr "ಕಸ್ಟಮ್ ಶೈಲಿಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ಓದಿ."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "ರೆಸ್ಯೂಮ್ ಅನ್ನು ಓದಲಾಗಿದೆ"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "ಪೋಸ್ಟಿಂಗ್ ಓದಲಾಗುತ್ತಿದೆ…" msgstr "ಪೋಸ್ಟಿಂಗ್ ಓದಲಾಗುತ್ತಿದೆ…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "ಮರುಸ್ಥಾಪಿಸಿ" msgstr "ಮರುಸ್ಥಾಪಿಸಿ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "ಈ ಪ್ಯಾಚ್‌ಗಿಂತ ಮೊದಲಿನ ಸ್ಥಿತಿಗೆ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ? ಇದು ಈ ಪ್ಯಾಚ್ ಮತ್ತು ಅದರ ನಂತರ ಅನ್ವಯಿಸಲಾದ ಯಾವುದೇ ಪ್ಯಾಚ್‌ಗಳನ್ನು ಹಿಂದಕ್ಕೆ ತಿರುಗಿಸುತ್ತದೆ." msgstr "ಈ ಪ್ಯಾಚ್‌ಗ ಮೊದಲಿನ ಸ್ಥಿತಿಗೆ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "ರೆಸ್ಯೂಮ್ ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗ
msgid "Resume content" msgid "Resume content"
msgstr "ವಿಷಯವನ್ನು ಪುನರಾರಂಭಿಸಿ" msgstr "ವಿಷಯವನ್ನು ಪುನರಾರಂಭಿಸಿ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "ರೆಸ್ಯೂಮ್ ಸಂಪಾದನೆ"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "ರೆಸ್ಯೂಮ್ ಫೈಲ್" msgstr "ರೆಸ್ಯೂಮ್ ಫೈಲ್"
@@ -3754,10 +3810,18 @@ msgstr "ರೆಸ್ಯೂಮೇ"
msgid "Retry" msgid "Retry"
msgstr "ಮರುಪ್ರಯತ್ನಿಸಿ" msgstr "ಮರುಪ್ರಯತ್ನಿಸಿ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "ಸಂಪಾದನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "ಅನಿಶ್ಚಿತ ವಿಭಾಗಗಳನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು, ಕೆಲಸದ ವಿವರಣೆಯೊಂದಿಗೆ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ನನಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ." msgstr "ಅನಿಶ್ಚಿತ ವಿಭಾಗಗಳನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು, ಕೆಲಸದ ವಿವರಣೆಯೊಂದಿಗೆ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ನನಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ಈ ಸಂಪಾದನೆಯನ್ನು ಪರಿಶೀಲಿಸಿ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "ಸಾರಾಂಶವನ್ನು ಪುನಃ ಕೆಲಸ ಮಾಡಿ ಇದರಿಂದ ಅದು ಸಾಮಾನ್ಯವೆಂದು ತೋರದೆ ಹಿರಿಯ ಎಂಜಿನಿಯರಿಂಗ್ ವ್ಯವಸ್ಥಾಪಕ ಪಾತ್ರವನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಳ್ಳುತ್ತದೆ." msgstr "ಸಾರಾಂಶವನ್ನು ಪುನಃ ಕೆಲಸ ಮಾಡಿ ಇದರಿಂದ ಅದು ಸಾಮಾನ್ಯವೆಂದು ತೋರದೆ ಹಿರಿಯ ಎಂಜಿನಿಯರಿಂಗ್ ವ್ಯವಸ್ಥಾಪಕ ಪಾತ್ರವನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಳ್ಳುತ್ತದೆ."
@@ -3798,6 +3862,10 @@ msgstr "ಭ್ರಮನ"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ಸ್ಕೋರ್‌ಕಾರ್ಡ್, ಬಲಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು ನಿಮ್ಮ ಮೊದಲ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಚಲಾಯಿಸಿ." msgstr "ಸ್ಕೋರ್‌ಕಾರ್ಡ್, ಬಲಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು ನಿಮ್ಮ ಮೊದಲ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಚಲಾಯಿಸಿ."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "ಚಾಲನೆಯಲ್ಲಿದೆ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "ರಷಿಯನ್" msgstr "ರಷಿಯನ್"
@@ -4253,6 +4321,15 @@ msgstr "ಮೂಲ"
msgid "Source Code" msgid "Source Code"
msgstr "ಮೂಲ ಕೋಡ್" msgstr "ಮೂಲ ಕೋಡ್"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "ಮೂಲ: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ಮೂಲಗಳು"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "ಅಂತರ (ಅಡ್ಡ)" msgstr "ಅಂತರ (ಅಡ್ಡ)"
@@ -4604,6 +4681,10 @@ msgstr "ಈ ಸಹಾಯಕವನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯ
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "ಈ ದಿನಾಂಕವನ್ನು ಸರಿಯಾಗಿ ಓದಲಾಗುವುದಿಲ್ಲ." msgstr "ಈ ದಿನಾಂಕವನ್ನು ಸರಿಯಾಗಿ ಓದಲಾಗುವುದಿಲ್ಲ."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "ಈ ಸಂಪಾದನೆ ವಿನಂತಿಗೆ ಇನ್ನು ಮುಂದೆ ಉತ್ತರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "ಈ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಗುರುತಿಸಲಾಗುವುದಿಲ್ಲ." msgstr "ಈ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಗುರುತಿಸಲಾಗುವುದಿಲ್ಲ."
@@ -4712,6 +4793,10 @@ msgstr "ನೀವು ಹಲವಾರು ಪಾಸ್‌ಕೀಗಳನ್ನು
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "ಇದು ಈ ವಿಭಾಗದಿಂದ ಎಲ್ಲಾ ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ." msgstr "ಇದು ಈ ವಿಭಾಗದಿಂದ ಎಲ್ಲಾ ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "ಇದು ಈ ಪ್ಯಾಚ್ ಮತ್ತು ಅದರ ನಂತರ ಅನ್ವಯಿಸಲಾದ ಎಲ್ಲಾ ಪ್ಯಾಚ್‌ಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "ಬಲ ಸೈಡ್‌ಬಾರ್ ಟಾಗಲ್ ಮಾಡಿ"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "ಥ್ರೆಡ್‌ಗಳನ್ನು ಟಾಗಲ್ ಮಾಡಿ" msgstr "ಥ್ರೆಡ್‌ಗಳನ್ನು ಟಾಗಲ್ ಮಾಡಿ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "ಟೋಕನ್‌ಗಳು: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "ಟೋಕನ್‌ಗಳು: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "ಟೋಕನ್‌ಗಳು: {total} ({cached} ಕ್ಯಾಶ್ ಮಾಡಲಾಗಿದೆ)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "ನೀವು ಅರ್ಜಿ ಸಲ್ಲಿಸುತ್ತಿರುವ ಉದ್ಯೋಗವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ ಮತ್ತು ಕಳುಹಿಸಿದ ರೆಸ್ಯೂಮೆಯನ್ನು ಲಿಂಕ್ ಮಾಡಿ." msgstr "ನೀವು ಅರ್ಜಿ ಸಲ್ಲಿಸುತ್ತಿರುವ ಉದ್ಯೋಗವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ ಮತ್ತು ಕಳುಹಿಸಿದ ರೆಸ್ಯೂಮೆಯನ್ನು ಲಿಂಕ್ ಮಾಡಿ."
@@ -5213,6 +5310,10 @@ msgstr "ನಮಗೆ ಸ್ವರೂಪವನ್ನು ಸ್ವಯಂಚಾಲ
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "ನಮಗೆ ಆ ಪುಟ ಸಿಗಲಿಲ್ಲ." msgstr "ನಮಗೆ ಆ ಪುಟ ಸಿಗಲಿಲ್ಲ."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "ವೆಬ್ ಹುಡುಕಾಟ"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ಜೂಲೂ" msgstr "ಜೂಲೂ"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "지원함"
msgid "Applied on" msgid "Applied on"
msgstr "지원일" msgstr "지원일"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "승인"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "승인됨 — 에이전트를 기다리는 중…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "아랍어" msgstr "아랍어"
@@ -1462,6 +1470,14 @@ msgstr "API 키를 삭제하는 중입니다..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "이력서를 삭제하는 중입니다..." msgstr "이력서를 삭제하는 중입니다..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "거부됨 — 에이전트를 기다리는 중…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "거부"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "항목이 일치하는 키워드에 기여하도록 수행한 작업을 설명하십시오." msgstr "항목이 일치하는 키워드에 기여하도록 수행한 작업을 설명하십시오."
@@ -1530,6 +1546,10 @@ msgstr "기부하세요"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume에 기부하기" msgstr "Reactive Resume에 기부하기"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "완료"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "전체 화면 모드에서 콘텐츠 편집"
msgid "Edit date" msgid "Edit date"
msgstr "날짜 수정" msgstr "날짜 수정"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "편집 거부됨"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "기다림이나 지연 없이 이력서를 즉시 PDF로 내보내세요
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png를 내보냈습니다" msgstr "pipeline-flow.png를 내보냈습니다"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "실패"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "이력서를 분석하지 못했습니다." msgstr "이력서를 분석하지 못했습니다."
@@ -1967,6 +1995,10 @@ msgstr "공급자 연결을 해제하지 못했습니다. 다시 시도하세요
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "공급자 업데이트에 실패했습니다." msgstr "공급자 업데이트에 실패했습니다."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "스레드 설정을 업데이트하지 못했습니다."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "새 탭에서 열림" msgstr "새 탭에서 열림"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "에이전트를 위한 메모(선택 사항)"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "에이전트를 위한 메모(선택 사항)…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "원한다면 링크에 비밀번호를 설정해, 비밀번호를 아는 사람만 이력서를 볼 수 있도록 할 수 있습니다." msgstr "원한다면 링크에 비밀번호를 설정해, 비밀번호를 아는 사람만 이력서를 볼 수 있도록 할 수 있습니다."
@@ -3499,6 +3539,10 @@ msgstr "출판물"
msgid "Publisher" msgid "Publisher"
msgstr "발행인" msgstr "발행인"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "원시 JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "다시 점수화" msgstr "다시 점수화"
@@ -3546,10 +3590,18 @@ msgstr "반응형 재개 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "리액티브 이력서 v4(JSON)" msgstr "리액티브 이력서 v4(JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "첨부 파일을 읽음"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "사용자 지정 스타일 적용 가이드를 읽어보세요." msgstr "사용자 지정 스타일 적용 가이드를 읽어보세요."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "이력서를 읽음"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "공고를 읽는 중…" msgstr "공고를 읽는 중…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "복원하다" msgstr "복원하다"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "이 패치 이전 상태로 복원하시겠습니까? 이렇게 하면 이 패치와 그 이후에 적용된 모든 패치가 롤백됩니다." msgstr "이 패치 적용 이전 상태로 이력서를 복원하시겠습니까?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "이력서 분석 완료."
msgid "Resume content" msgid "Resume content"
msgstr "이력서 내용" msgstr "이력서 내용"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "이력서 편집"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "이력서 파일" msgstr "이력서 파일"
@@ -3754,10 +3810,18 @@ msgstr "이력서"
msgid "Retry" msgid "Retry"
msgstr "다시 해 보다" msgstr "다시 해 보다"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "편집 검토"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "이력서를 직무 설명과 대조해 보고, 불확실한 부분을 수정하기 전에 저에게 질문해 주세요." msgstr "이력서를 직무 설명과 대조해 보고, 불확실한 부분을 수정하기 전에 저에게 질문해 주세요."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "이 편집 검토"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "요약 내용을 수정하여 일반적인 느낌이 들지 않도록 선임 엔지니어링 관리자 직책을 구체적으로 나타내세요." msgstr "요약 내용을 수정하여 일반적인 느낌이 들지 않도록 선임 엔지니어링 관리자 직책을 구체적으로 나타내세요."
@@ -3798,6 +3862,10 @@ msgstr "회전"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "첫 번째 분석을 실행하여 스코어카드, 강점, 우선순위가 지정된 제안을 확인하세요." msgstr "첫 번째 분석을 실행하여 스코어카드, 강점, 우선순위가 지정된 제안을 확인하세요."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "실행 중…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "러시아어" msgstr "러시아어"
@@ -4253,6 +4321,15 @@ msgstr "출처"
msgid "Source Code" msgid "Source Code"
msgstr "소스 코드" msgstr "소스 코드"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "소스: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "출처"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "간격(가로)" msgstr "간격(가로)"
@@ -4604,6 +4681,10 @@ msgstr "이 도우미를 열 수 없습니다."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "이 날짜는 올바르게 읽혀지지 않습니다." msgstr "이 날짜는 올바르게 읽혀지지 않습니다."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "이 편집 요청에는 더 이상 응답할 수 없습니다."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "이 이메일 주소는 인식되지 않습니다." msgstr "이 이메일 주소는 인식되지 않습니다."
@@ -4712,6 +4793,10 @@ msgstr "나중에 여러 개의 패스키를 사용하려는 경우 이를 식
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "이렇게 하면 이 섹션에서 모든 항목이 제거됩니다." msgstr "이렇게 하면 이 섹션에서 모든 항목이 제거됩니다."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "이 패치와 그 이후에 적용된 모든 패치가 롤백됩니다."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "오른쪽 사이드바 토글"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "스레드 토글" msgstr "스레드 토글"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "토큰: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "토큰: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "토큰: {total} ({cached} 캐시됨)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "지원 중인 공고를 추적하고 보낸 이력서를 연결하세요." msgstr "지원 중인 공고를 추적하고 보낸 이력서를 연결하세요."
@@ -5213,6 +5310,10 @@ msgstr "형식을 자동으로 감지할 수 없습니다. 위에서 직접 선
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "해당 페이지를 찾을 수 없습니다." msgstr "해당 페이지를 찾을 수 없습니다."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "웹 검색"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "축소"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "줄루어" msgstr "줄루어"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Pateikta"
msgid "Applied on" msgid "Applied on"
msgstr "Pateikta" msgstr "Pateikta"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Patvirtinti"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Patvirtinta — laukiama agento…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabų" msgstr "Arabų"
@@ -1462,6 +1470,14 @@ msgstr "Ištrinamas jūsų API raktas..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Jūsų gyvenimo aprašymas ištrinamas..." msgstr "Jūsų gyvenimo aprašymas ištrinamas..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Atmesta — laukiama agento…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Atmesti"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Aprašykite, ką padarėte, kad įraše būtų pateikti atitikimo raktiniai žodžiai." msgstr "Aprašykite, ką padarėte, kad įraše būtų pateikti atitikimo raktiniai žodžiai."
@@ -1530,6 +1546,10 @@ msgstr "Paaukoti"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Paaukoti „Reactive Resume“" msgstr "Paaukoti „Reactive Resume“"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Atlikta"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Turinio redagavimas viso ekrano režimu"
msgid "Edit date" msgid "Edit date"
msgstr "Redaguoti datą" msgstr "Redaguoti datą"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Redagavimas atmestas"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksportuokite savo gyvenimo aprašymą į PDF formatą akimirksniu, be j
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png eksportuota" msgstr "pipeline-flow.png eksportuota"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Nepavyko"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Nepavyko išanalizuoti atnaujinimo." msgstr "Nepavyko išanalizuoti atnaujinimo."
@@ -1967,6 +1995,10 @@ msgstr "Nepavyko atjungti paslaugų teikėjo. Bandykite dar kartą."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Nepavyko atnaujinti teikėjo." msgstr "Nepavyko atnaujinti teikėjo."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nepavyko atnaujinti temos nustatymų."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "\"OpenRouter\""
msgid "opens in new tab" msgid "opens in new tab"
msgstr "atidaro naujame skirtuke" msgstr "atidaro naujame skirtuke"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Neprivaloma pastaba agentui"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Neprivaloma pastaba agentui…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Papildomai galite nustatyti slaptažodį, kad per nuorodą gyvenimo aprašymą matytų tik slaptažodį žinantys žmonės." msgstr "Papildomai galite nustatyti slaptažodį, kad per nuorodą gyvenimo aprašymą matytų tik slaptažodį žinantys žmonės."
@@ -3499,6 +3539,10 @@ msgstr "Publikacijos"
msgid "Publisher" msgid "Publisher"
msgstr "Leidėjas" msgstr "Leidėjas"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Neapdorotas JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Vertinti iš naujo" msgstr "Vertinti iš naujo"
@@ -3546,10 +3590,18 @@ msgstr "Reaktyvus gyvenimo aprašymas v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktyvusis CV v4 (JSON)" msgstr "Reaktyvusis CV v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Perskaitė priedą"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Perskaitykite vadovą „Pasirinktinių stilių taikymas“." msgstr "Perskaitykite vadovą „Pasirinktinių stilių taikymas“."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Perskaitė gyvenimo aprašymą"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Skaitomas skelbimas…" msgstr "Skaitomas skelbimas…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Atkurti" msgstr "Atkurti"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Atkurti gyvenimo aprašymą į ankstesnę būseną? Tai anuliuos šį ir visus po jo pritaikytus pataisymus." msgstr "Atkurti gyvenimo aprašymą į būseną prieš šį pataisymą?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Baigta gyvenimo aprašymo analizė."
msgid "Resume content" msgid "Resume content"
msgstr "Gyvenimo aprašymo turinys" msgstr "Gyvenimo aprašymo turinys"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Gyvenimo aprašymo redagavimas"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Gyvenimo aprašymo failas" msgstr "Gyvenimo aprašymo failas"
@@ -3754,10 +3810,18 @@ msgstr "Gyvenimo aprašymai"
msgid "Retry" msgid "Retry"
msgstr "Bandyti dar kartą" msgstr "Bandyti dar kartą"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Peržiūrėti redagavimus"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Peržiūrėkite gyvenimo aprašymą pagal pareigybės aprašymą ir užduokite man klausimus prieš keisdami neaiškias dalis." msgstr "Peržiūrėkite gyvenimo aprašymą pagal pareigybės aprašymą ir užduokite man klausimus prieš keisdami neaiškias dalis."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Peržiūrėti šį redagavimą"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Pertvarkykite santrauką taip, kad ji būtų skirta vyresniojo inžinerijos vadovo pareigoms, bet neskambėtų bendro pobūdžio." msgstr "Pertvarkykite santrauką taip, kad ji būtų skirta vyresniojo inžinerijos vadovo pareigoms, bet neskambėtų bendro pobūdžio."
@@ -3798,6 +3862,10 @@ msgstr "Sukimas"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Atlikite pirmąją analizę, kad gautumėte rezultatų lentelę, stipriąsias puses ir prioritetinius pasiūlymus." msgstr "Atlikite pirmąją analizę, kad gautumėte rezultatų lentelę, stipriąsias puses ir prioritetinius pasiūlymus."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Vykdoma…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rusų" msgstr "Rusų"
@@ -4253,6 +4321,15 @@ msgstr "Šaltinis"
msgid "Source Code" msgid "Source Code"
msgstr "Programos kodas" msgstr "Programos kodas"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Šaltinis: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Šaltiniai"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Tarpai (horizontalūs)" msgstr "Tarpai (horizontalūs)"
@@ -4604,6 +4681,10 @@ msgstr "Šio asistento atidaryti nepavyko."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Ši data nebus perskaityta teisingai." msgstr "Ši data nebus perskaityta teisingai."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Į šią redagavimo užklausą nebegalima atsakyti."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Šis el. pašto adresas nebus atpažintas." msgstr "Šis el. pašto adresas nebus atpažintas."
@@ -4712,6 +4793,10 @@ msgstr "Jei planuojate turėti kelis slaptažodžius, tai padės vėliau juos nu
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Taip iš šio skyriaus bus pašalinti visi elementai." msgstr "Taip iš šio skyriaus bus pašalinti visi elementai."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Tai atšauks šį pataisymą ir visus po jo pritaikytus pataisymus."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Dešiniosios šoninės juostos perjungimas"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Perjungti gijas" msgstr "Perjungti gijas"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Žetonai: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Žetonai: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Žetonai: {total} ({cached} talpykloje)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Sekite darbą, į kurį kandidatuojate, ir susiekite išsiųstą gyvenimo aprašymą." msgstr "Sekite darbą, į kurį kandidatuojate, ir susiekite išsiųstą gyvenimo aprašymą."
@@ -5213,6 +5310,10 @@ msgstr "Nepavyko automatiškai aptikti formato pasirinkite jį aukščiau."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Nepavyko rasti to puslapio" msgstr "Nepavyko rasti to puslapio"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Žiniatinklio paieška"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Tolinti"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulų" msgstr "Zulų"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Pieteikts"
msgid "Applied on" msgid "Applied on"
msgstr "Pieteikts" msgstr "Pieteikts"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Apstiprināt"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Apstiprināts — gaida aģentu…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arābu" msgstr "Arābu"
@@ -1462,6 +1470,14 @@ msgstr "Tiek dzēsta jūsu API atslēga..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Tiek dzēsts jūsu CV..." msgstr "Tiek dzēsts jūsu CV..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Noraidīts — gaida aģentu…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Noraidīt"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Aprakstiet, ko darījāt, lai ierakstā tiktu izmantoti atbilstības atslēgvārdi." msgstr "Aprakstiet, ko darījāt, lai ierakstā tiktu izmantoti atbilstības atslēgvārdi."
@@ -1530,6 +1546,10 @@ msgstr "Ziedot"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Ziedot Reactive Resume" msgstr "Ziedot Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Pabeigts"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Satura rediģēšana pilnekrāna režīmā"
msgid "Edit date" msgid "Edit date"
msgstr "Rediģēt datumu" msgstr "Rediģēt datumu"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Labojums noraidīts"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksportējiet savu CV PDF formātā acumirklī, bez gaidīšanas vai kav
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png eksportēts" msgstr "pipeline-flow.png eksportēts"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Neizdevās"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Neizdevās analizēt atsākšanu." msgstr "Neizdevās analizēt atsākšanu."
@@ -1967,6 +1995,10 @@ msgstr "Neizdevās atvienot pakalpojumu sniedzēju. Lūdzu, mēģiniet vēlreiz.
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Neizdevās atjaunināt pakalpojumu sniedzēju." msgstr "Neizdevās atjaunināt pakalpojumu sniedzēju."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Neizdevās atjaunināt pavediena iestatījumus."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "atveras jaunā cilnē" msgstr "atveras jaunā cilnē"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Neobligāta piezīme aģentam"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Neobligāta piezīme aģentam…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Pēc izvēles varat iestatīt paroli, lai tikai cilvēki ar paroli varētu skatīt jūsu CV, izmantojot saiti." msgstr "Pēc izvēles varat iestatīt paroli, lai tikai cilvēki ar paroli varētu skatīt jūsu CV, izmantojot saiti."
@@ -3499,6 +3539,10 @@ msgstr "Publikācijas"
msgid "Publisher" msgid "Publisher"
msgstr "Izdevējs" msgstr "Izdevējs"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Neapstrādāts JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Vērtēt atkārtoti" msgstr "Vērtēt atkārtoti"
@@ -3546,10 +3590,18 @@ msgstr "Reaktīvs CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Izlasīja pielikumu"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Izlasiet rokasgrāmatu Pielāgotu stilu lietošana." msgstr "Izlasiet rokasgrāmatu Pielāgotu stilu lietošana."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Izlasīja CV"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Notiek sludinājuma lasīšana…" msgstr "Notiek sludinājuma lasīšana…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Atjaunot" msgstr "Atjaunot"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Vai atjaunot CV versiju pirms šī ielāpa? Tādējādi tiks atiestatīts gan šis ielāps, gan visi pēc tā lietotie ielāpi." msgstr "Vai atjaunot CV stāvoklī pirms šī ielāpa?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "CV analīze pabeigta."
msgid "Resume content" msgid "Resume content"
msgstr "CV saturs" msgstr "CV saturs"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "CV labojums"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "CV fails" msgstr "CV fails"
@@ -3754,10 +3810,18 @@ msgstr "CV"
msgid "Retry" msgid "Retry"
msgstr "Mēģināt vēlreiz" msgstr "Mēģināt vēlreiz"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Pārskatīt labojumus"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Salīdzini CV ar amata aprakstu un uzdod man jautājumus, pirms maināt neskaidrās sadaļas." msgstr "Salīdzini CV ar amata aprakstu un uzdod man jautājumus, pirms maināt neskaidrās sadaļas."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Pārskatīt šo labojumu"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Pārstrādājiet kopsavilkumu, lai tas būtu paredzēts vecākā inženierzinātņu vadītāja amatam, neizklausoties vispārīgi." msgstr "Pārstrādājiet kopsavilkumu, lai tas būtu paredzēts vecākā inženierzinātņu vadītāja amatam, neizklausoties vispārīgi."
@@ -3798,6 +3862,10 @@ msgstr "Rotācija"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Veiciet pirmo analīzi, lai iegūtu rezultātu tabulu, stiprās puses un prioritizētus ieteikumus." msgstr "Veiciet pirmo analīzi, lai iegūtu rezultātu tabulu, stiprās puses un prioritizētus ieteikumus."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Darbojas…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Krievu" msgstr "Krievu"
@@ -4253,6 +4321,15 @@ msgstr "Avots"
msgid "Source Code" msgid "Source Code"
msgstr "Pirmkods" msgstr "Pirmkods"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Avots: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Avoti"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Atstatums (horizontāli)" msgstr "Atstatums (horizontāli)"
@@ -4604,6 +4681,10 @@ msgstr "Šo palīgu nevarēja atvērt."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Šis datums netiks nolasīts pareizi." msgstr "Šis datums netiks nolasīts pareizi."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Uz šo rediģēšanas pieprasījumu vairs nevar atbildēt."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Šī e-pasta adrese netiks atpazīta." msgstr "Šī e-pasta adrese netiks atpazīta."
@@ -4712,6 +4793,10 @@ msgstr "Tas palīdzēs to identificēt vēlāk, ja plānojat izmantot vairākus
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Tādējādi no šīs sadaļas tiks noņemti visi elementi." msgstr "Tādējādi no šīs sadaļas tiks noņemti visi elementi."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Tas atsauks šo ielāpu un visus pēc tā lietotos ielāpus."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Pārslēgt labo sānjjoslu"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Pārslēgt pavedienus" msgstr "Pārslēgt pavedienus"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokeni: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokeni: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokeni: {total} ({cached} kešatmiņā)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Sekojiet darbam, uz kuru piesakāties, un piesaistiet nosūtīto CV." msgstr "Sekojiet darbam, uz kuru piesakāties, un piesaistiet nosūtīto CV."
@@ -5213,6 +5310,10 @@ msgstr "Mēs nevarējām automātiski noteikt formātu — lūdzu, izvēlieties
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Mēs nevarējām atrast šo lapu." msgstr "Mēs nevarējām atrast šo lapu."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Meklēšana tīmeklī"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Tālināt"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "അപേക്ഷിച്ചു"
msgid "Applied on" msgid "Applied on"
msgstr "പ്രയോഗിച്ചു" msgstr "പ്രയോഗിച്ചു"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "അംഗീകരിക്കുക"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "അംഗീകരിച്ചു — ഏജന്റിനായി കാത്തിരിക്കുന്നു…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "അറബിക്" msgstr "അറബിക്"
@@ -1462,6 +1470,14 @@ msgstr "നിങ്ങളുടെ API കീ ഡിലീറ്റ് ചെ
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "നിങ്ങളുടെ റിസ്യൂം ഡിലീറ്റ് ചെയ്യുന്നു..." msgstr "നിങ്ങളുടെ റിസ്യൂം ഡിലീറ്റ് ചെയ്യുന്നു..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "നിരസിച്ചു — ഏജന്റിനായി കാത്തിരിക്കുന്നു…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "നിരസിക്കുക"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "നിങ്ങൾ എന്താണ് ചെയ്തതെന്ന് വിവരിക്കുക, അതിനാൽ എൻട്രി പൊരുത്തപ്പെടുത്തുന്നതിന് കീവേഡുകൾ സംഭാവന ചെയ്യുന്നു." msgstr "നിങ്ങൾ എന്താണ് ചെയ്തതെന്ന് വിവരിക്കുക, അതിനാൽ എൻട്രി പൊരുത്തപ്പെടുത്തുന്നതിന് കീവേഡുകൾ സംഭാവന ചെയ്യുന്നു."
@@ -1530,6 +1546,10 @@ msgstr "സംഭാവന ചെയ്യുക"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume‑ന് സംഭാവന ചെയ്യുക" msgstr "Reactive Resume‑ന് സംഭാവന ചെയ്യുക"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "പൂർത്തിയായി"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ഉള്ളടക്കം ഫുൾസ്ക്രീൻ മോഡി
msgid "Edit date" msgid "Edit date"
msgstr "തീയതി തിരുത്തുക" msgstr "തീയതി തിരുത്തുക"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "എഡിറ്റ് നിരസിച്ചു"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "കാത്തിരിപ്പോ കാലതാമസമോ ഇല
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "കയറ്റുമതി ചെയ്ത പൈപ്പ്ലൈൻ-ഫ്ലോ.png" msgstr "കയറ്റുമതി ചെയ്ത പൈപ്പ്ലൈൻ-ഫ്ലോ.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "പരാജയപ്പെട്ടു"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "റെസ്യൂമെ വിശകലനം ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു." msgstr "റെസ്യൂമെ വിശകലനം ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു."
@@ -1967,6 +1995,10 @@ msgstr "പ്രൊവൈഡർ അൺലിങ്ക് ചെയ്യുന
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "ദാതാവിനെ അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല." msgstr "ദാതാവിനെ അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "ത്രെഡ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ഓപ്പൺ റൂട്ടർ"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "പുതിയ ടാബിൽ തുറക്കും" msgstr "പുതിയ ടാബിൽ തുറക്കും"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ഏജന്റിനുള്ള ഓപ്ഷണൽ കുറിപ്പ്"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ഏജന്റിനുള്ള ഓപ്ഷണൽ കുറിപ്പ്…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ഓപ്ഷണലായി, ലിങ്ക് വഴി നിങ്ങളുടെ റിസ്യൂം കാണാൻ പാസ്‌വേഡ് ഉള്ളവർക്കു മാത്രമാകുന്നതിനായി ഒരു പാസ്‌വേഡ് സജ്ജമാക്കാം." msgstr "ഓപ്ഷണലായി, ലിങ്ക് വഴി നിങ്ങളുടെ റിസ്യൂം കാണാൻ പാസ്‌വേഡ് ഉള്ളവർക്കു മാത്രമാകുന്നതിനായി ഒരു പാസ്‌വേഡ് സജ്ജമാക്കാം."
@@ -3499,6 +3539,10 @@ msgstr "പ്രസിദ്ധീകരണങ്ങൾ"
msgid "Publisher" msgid "Publisher"
msgstr "പ്രസാധകൻ" msgstr "പ്രസാധകൻ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "റോ JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "വീണ്ടും സ്കോർ ചെയ്യുക" msgstr "വീണ്ടും സ്കോർ ചെയ്യുക"
@@ -3546,10 +3590,18 @@ msgstr "റിയാക്ടീവ് റെസ്യൂമെ v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "റിയാക്ടീവ് റെസ്യൂമെ v4 (ജെസൺ)" msgstr "റിയാക്ടീവ് റെസ്യൂമെ v4 (ജെസൺ)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "ഒരു അറ്റാച്ച്മെന്റ് വായിച്ചു"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "ഇഷ്ടാനുസൃത ശൈലികൾ പ്രയോഗിക്കുന്നതിനുള്ള ഗൈഡ് വായിക്കുക." msgstr "ഇഷ്ടാനുസൃത ശൈലികൾ പ്രയോഗിക്കുന്നതിനുള്ള ഗൈഡ് വായിക്കുക."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "റിസ്യൂം വായിച്ചു"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "പോസ്റ്റിംഗ് വായിക്കുന്നു…" msgstr "പോസ്റ്റിംഗ് വായിക്കുന്നു…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "പുനഃസ്ഥാപിക്കുക" msgstr "പുനഃസ്ഥാപിക്കുക"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "ഈ പാച്ചിന് മുമ്പുള്ളിലേക്ക് റസ്യൂമെ പുനഃസ്ഥാപിക്കണോ? ഇത് ഈ പാച്ചും അതിനു ശേഷം പ്രയോഗിക്കുന്ന ഏതെങ്കിലും പാച്ചുകളും പഴയപടിയാക്കും." msgstr "ഈ പാച്ചിന് മുമ്പുള്ള നിലയിലേക്ക് റിസ്യൂ പുനഃസ്ഥാപിക്കണോ?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "റെസ്യൂമെ വിശകലനം പൂർത്തിയ
msgid "Resume content" msgid "Resume content"
msgstr "ഉള്ളടക്കം പുനരാരംഭിക്കുക" msgstr "ഉള്ളടക്കം പുനരാരംഭിക്കുക"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "റിസ്യൂം എഡിറ്റ്"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "റെസ്യൂമേ ഫയൽ" msgstr "റെസ്യൂമേ ഫയൽ"
@@ -3754,10 +3810,18 @@ msgstr "റിസ്യൂങ്ങൾ"
msgid "Retry" msgid "Retry"
msgstr "വീണ്ടും ശ്രമിക്കുക" msgstr "വീണ്ടും ശ്രമിക്കുക"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "എഡിറ്റുകൾ അവലോകനം ചെയ്യുക"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "ജോലി വിവരണവുമായി പൊരുത്തപ്പെടുന്ന വിധത്തിൽ റെസ്യൂമെ പരിശോധിച്ച്, അനിശ്ചിതമായ വിഭാഗങ്ങൾ മാറ്റുന്നതിനുമുമ്പ് എന്നോട് ചോദ്യങ്ങൾ ചോദിക്കുക." msgstr "ജോലി വിവരണവുമായി പൊരുത്തപ്പെടുന്ന വിധത്തിൽ റെസ്യൂമെ പരിശോധിച്ച്, അനിശ്ചിതമായ വിഭാഗങ്ങൾ മാറ്റുന്നതിനുമുമ്പ് എന്നോട് ചോദ്യങ്ങൾ ചോദിക്കുക."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ഈ എഡിറ്റ് അവലോകനം ചെയ്യുക"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "പൊതുവായി തോന്നാതെ ഒരു സീനിയർ എഞ്ചിനീയറിംഗ് മാനേജർ റോളിനെ ലക്ഷ്യം വയ്ക്കുന്ന തരത്തിൽ സംഗ്രഹം പുനഃക്രമീകരിക്കുക." msgstr "പൊതുവായി തോന്നാതെ ഒരു സീനിയർ എഞ്ചിനീയറിംഗ് മാനേജർ റോളിനെ ലക്ഷ്യം വയ്ക്കുന്ന തരത്തിൽ സംഗ്രഹം പുനഃക്രമീകരിക്കുക."
@@ -3798,6 +3862,10 @@ msgstr "ററോട്ടേഷൻ"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "നിങ്ങളുടെ ആദ്യ വിശകലനം നടത്തി ഒരു സ്കോർകാർഡ്, ശക്തികൾ, മുൻഗണനാ നിർദ്ദേശങ്ങൾ എന്നിവ നേടുക." msgstr "നിങ്ങളുടെ ആദ്യ വിശകലനം നടത്തി ഒരു സ്കോർകാർഡ്, ശക്തികൾ, മുൻഗണനാ നിർദ്ദേശങ്ങൾ എന്നിവ നേടുക."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "പ്രവർത്തിക്കുന്നു…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "റഷ്യൻ" msgstr "റഷ്യൻ"
@@ -4253,6 +4321,15 @@ msgstr "ഉറവിടം"
msgid "Source Code" msgid "Source Code"
msgstr "സോഴ്‌സ് কোഡ്" msgstr "സോഴ്‌സ് কোഡ്"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "ഉറവിടം: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ഉറവിടങ്ങൾ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "സ്പേസിംഗ് (തിരശ്ചീനം)" msgstr "സ്പേസിംഗ് (തിരശ്ചീനം)"
@@ -4604,6 +4681,10 @@ msgstr "ഈ അസിസ്റ്റന്റ് തുറക്കാൻ കഴ
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "ഈ തീയതി ശരിയായി വായിക്കില്ല." msgstr "ഈ തീയതി ശരിയായി വായിക്കില്ല."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "ഈ എഡിറ്റ് അഭ്യർത്ഥനയ്ക്ക് ഇനി ഉത്തരം നൽകാൻ കഴിയില്ല."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "ഈ ഇമെയിൽ വിലാസം തിരിച്ചറിയപ്പെടില്ല." msgstr "ഈ ഇമെയിൽ വിലാസം തിരിച്ചറിയപ്പെടില്ല."
@@ -4712,6 +4793,10 @@ msgstr "നിങ്ങൾ ഒന്നിലധികം പാസ്‌കീ
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "ഇത് ഈ വിഭാഗത്തിലെ എല്ലാ ഇനങ്ങളും നീക്കം ചെയ്യും." msgstr "ഇത് ഈ വിഭാഗത്തിലെ എല്ലാ ഇനങ്ങളും നീക്കം ചെയ്യും."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "ഇത് ഈ പാച്ചും അതിനുശേഷം പ്രയോഗിച്ച എല്ലാ പാച്ചുകളും തിരികെ റോൾ ചെയ്യും."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "വലത് സൈഡ്ബാർ ഓൺ/ഓഫ് ചെയ്യു
msgid "Toggle threads" msgid "Toggle threads"
msgstr "ത്രെഡുകൾ ടോഗിൾ ചെയ്യുക" msgstr "ത്രെഡുകൾ ടോഗിൾ ചെയ്യുക"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "ടോക്കണുകൾ: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "ടോക്കണുകൾ: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "ടോക്കണുകൾ: {total} ({cached} കാഷെ ചെയ്‌തത്)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "നിങ്ങൾ അപേക്ഷിക്കുന്ന ജോലി ട്രാക്ക് ചെയ്യുകയും നിങ്ങൾ അയച്ച റെസ്യൂമെ ലിങ്ക് ചെയ്യുകയും ചെയ്യുക." msgstr "നിങ്ങൾ അപേക്ഷിക്കുന്ന ജോലി ട്രാക്ക് ചെയ്യുകയും നിങ്ങൾ അയച്ച റെസ്യൂമെ ലിങ്ക് ചെയ്യുകയും ചെയ്യുക."
@@ -5213,6 +5310,10 @@ msgstr "ഞങ്ങൾക്ക് ഫോർമാറ്റ് സ്വയമ
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "ഞങ്ങൾക്ക് ആ പേജ് കണ്ടെത്താൻ കഴിഞ്ഞില്ല." msgstr "ഞങ്ങൾക്ക് ആ പേജ് കണ്ടെത്താൻ കഴിഞ്ഞില്ല."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "വെബ് തിരയൽ"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "സൂളു" msgstr "സൂളു"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "अर्ज केला"
msgid "Applied on" msgid "Applied on"
msgstr "वर अर्ज केला" msgstr "वर अर्ज केला"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "मंजूर करा"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "मंजूर केले — एजंटची वाट पाहत आहे…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "अरबी" msgstr "अरबी"
@@ -1462,6 +1470,14 @@ msgstr "तुमची API key हटवली जात आहे..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "तुमचा रेझ्युमे हटवला जात आहे..." msgstr "तुमचा रेझ्युमे हटवला जात आहे..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "नाकारले — एजंटची वाट पाहत आहे…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "नाकारा"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "तुम्ही काय केले याचे वर्णन करा जेणेकरून एंट्री जुळण्यासाठी कीवर्डचे योगदान देते." msgstr "तुम्ही काय केले याचे वर्णन करा जेणेकरून एंट्री जुळण्यासाठी कीवर्डचे योगदान देते."
@@ -1530,6 +1546,10 @@ msgstr "दान करा"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "रिअ‍ॅक्टिव्ह रेझ्युमेला दान करा" msgstr "रिअ‍ॅक्टिव्ह रेझ्युमेला दान करा"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "पूर्ण झाले"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "पूर्णस्क्रीन मोडमध्ये साम
msgid "Edit date" msgid "Edit date"
msgstr "तारीख संपादित करा" msgstr "तारीख संपादित करा"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "संपादन नाकारले"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "कोणताही विलंब न होता, तुमचा
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "निर्यात केलेली पाइपलाइन-प्रवाह.png" msgstr "निर्यात केलेली पाइपलाइन-प्रवाह.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "अयशस्वी"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "बायोडाटाचे विश्लेषण करण्यात अयशस्वी." msgstr "बायोडाटाचे विश्लेषण करण्यात अयशस्वी."
@@ -1967,6 +1995,10 @@ msgstr "प्रदात्याचे अनलिंक करण्या
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "प्रोव्हायडर अद्ययावत करण्यात अयशस्वी." msgstr "प्रोव्हायडर अद्ययावत करण्यात अयशस्वी."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "थ्रेड सेटिंग्ज अपडेट करता आल्या नाहीत."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ओपनराऊटर"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "नवीन टॅबमध्ये उघडतो" msgstr "नवीन टॅबमध्ये उघडतो"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "एजंटसाठी ऐच्छिक टीप"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "एजंटसाठी ऐच्छिक टीप…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "पर्यायी पद्धतीने, पासवर्ड सेट करा जेणेकरून लिंकद्वारे फक्त पासवर्ड माहित असलेले लोकच तुमचा रेझ्युमे पाहू शकतील." msgstr "पर्यायी पद्धतीने, पासवर्ड सेट करा जेणेकरून लिंकद्वारे फक्त पासवर्ड माहित असलेले लोकच तुमचा रेझ्युमे पाहू शकतील."
@@ -3499,6 +3539,10 @@ msgstr "प्रकाशने"
msgid "Publisher" msgid "Publisher"
msgstr "प्रकाशक" msgstr "प्रकाशक"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "रॉ JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "री-स्कोअर" msgstr "री-स्कोअर"
@@ -3546,10 +3590,18 @@ msgstr "रिॲक्टिव्ह रिझ्युमे v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)" msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "संलग्नक वाचले"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "कस्टम स्टाईल लागू करण्याविषयीची मार्गदर्शिका वाचा." msgstr "कस्टम स्टाईल लागू करण्याविषयीची मार्गदर्शिका वाचा."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "रेझ्युमे वाचला"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "जाहिरात वाचत आहे…" msgstr "जाहिरात वाचत आहे…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "पुनर्संचयित करा" msgstr "पुनर्संचयित करा"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "या पॅचच्या आधीची स्थिती पुन्हा सुरू करायची आहे का? असे केल्यास हा पॅच आणि त्यानंतर लागू केलेले कोणतेही पॅचेस पूर्ववत होतील." msgstr "या पॅचपूर्वीच्या स्थितीत रेझ्युमे पुनर्संचयित करायचा?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "रेझ्युमे विश्लेषण पूर्ण झा
msgid "Resume content" msgid "Resume content"
msgstr "रिझ्युमेमधील मजकूर" msgstr "रिझ्युमेमधील मजकूर"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "रेझ्युमे संपादन"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "रेझ्युमे फाइल" msgstr "रेझ्युमे फाइल"
@@ -3754,10 +3810,18 @@ msgstr "रेझ्युमे"
msgid "Retry" msgid "Retry"
msgstr "पुन्हा प्रयत्न करा" msgstr "पुन्हा प्रयत्न करा"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "संपादनांचे पुनरावलोकन करा"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "नोकरीच्या वर्णनानुसार रेझ्युमे तपासा आणि शंकास्पद भाग बदलण्यापूर्वी मला प्रश्न विचारा." msgstr "नोकरीच्या वर्णनानुसार रेझ्युमे तपासा आणि शंकास्पद भाग बदलण्यापूर्वी मला प्रश्न विचारा."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "या संपादनाचे पुनरावलोकन करा"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "सारांशाची पुनर्रचना करा जेणेकरून तो सर्वसाधारण न वाटता वरिष्ठ अभियांत्रिकी व्यवस्थापकाच्या भूमिकेला लक्ष्य करेल." msgstr "सारांशाची पुनर्रचना करा जेणेकरून तो सर्वसाधारण न वाटता वरिष्ठ अभियांत्रिकी व्यवस्थापकाच्या भूमिकेला लक्ष्य करेल."
@@ -3798,6 +3862,10 @@ msgstr "रोटेशन"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "तुमचे पहिले विश्लेषण चालवा आणि स्कोरकार्ड, सामर्थ्ये आणि प्राधान्यक्रमाने सुचवलेल्या सूचना मिळवा." msgstr "तुमचे पहिले विश्लेषण चालवा आणि स्कोरकार्ड, सामर्थ्ये आणि प्राधान्यक्रमाने सुचवलेल्या सूचना मिळवा."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "चालू आहे…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "रशियन" msgstr "रशियन"
@@ -4253,6 +4321,15 @@ msgstr "स्त्रोत"
msgid "Source Code" msgid "Source Code"
msgstr "स्रोत कोड" msgstr "स्रोत कोड"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "स्त्रोत: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "स्त्रोत"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "स्पेसिंग (आडवे)" msgstr "स्पेसिंग (आडवे)"
@@ -4604,6 +4681,10 @@ msgstr "हा असिस्टंट उघडता आला नाही."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "ही तारीख बरोबर वाचली जाणार नाही." msgstr "ही तारीख बरोबर वाचली जाणार नाही."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "या संपादन विनंतीला आता उत्तर देता येणार नाही."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "हा ईमेल पत्ता ओळखला जाणार नाही." msgstr "हा ईमेल पत्ता ओळखला जाणार नाही."
@@ -4712,6 +4793,10 @@ msgstr "जर तुम्ही अनेक पासकी ठेवण्
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "यामुळे या विभागातील सर्व आयटम हटवले जातील." msgstr "यामुळे या विभागातील सर्व आयटम हटवले जातील."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "यामुळे हा पॅच आणि त्यानंतर लावलेले सर्व पॅच मागे घेतले जातील."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "उजव्या साइडबारची टॉगल"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "थ्रेड्स टॉगल करा" msgstr "थ्रेड्स टॉगल करा"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "टोकन: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "टोकन: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "टोकन: {total} ({cached} कॅश केलेले)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "तुम्ही अर्ज करत असलेल्या नोकरीचा मागोवा घ्या आणि तुम्ही पाठवलेल्या रेझ्युमेशी लिंक करा." msgstr "तुम्ही अर्ज करत असलेल्या नोकरीचा मागोवा घ्या आणि तुम्ही पाठवलेल्या रेझ्युमेशी लिंक करा."
@@ -5213,6 +5310,10 @@ msgstr "आम्ही फॉरमॅट आपोआप ओळखू शक
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "आम्हाला ते पान सापडले नाही." msgstr "आम्हाला ते पान सापडले नाही."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "वेब शोध"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "बाहेर झूम करा"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "झुलू" msgstr "झुलू"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Dimohon"
msgid "Applied on" msgid "Applied on"
msgstr "Digunakan pada" msgstr "Digunakan pada"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Luluskan"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Diluluskan — menunggu ejen…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Bahasa Arab" msgstr "Bahasa Arab"
@@ -1462,6 +1470,14 @@ msgstr "Memadam kunci API anda..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Memadam resume anda..." msgstr "Memadam resume anda..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Ditolak — menunggu ejen…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Tolak"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Terangkan perkara yang anda lakukan supaya entri menyumbang kata kunci untuk pemadanan." msgstr "Terangkan perkara yang anda lakukan supaya entri menyumbang kata kunci untuk pemadanan."
@@ -1530,6 +1546,10 @@ msgstr "Derma"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Derma kepada Reactive Resume" msgstr "Derma kepada Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Selesai"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Sunting kandungan dalam mod skrin penuh"
msgid "Edit date" msgid "Edit date"
msgstr "Edit tarikh" msgstr "Edit tarikh"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Suntingan ditolak"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksport resume anda ke PDF serta-merta, tanpa sebarang menunggu atau ber
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Aliran saluran paip yang dieksport.png" msgstr "Aliran saluran paip yang dieksport.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Gagal"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Gagal menganalisis resume." msgstr "Gagal menganalisis resume."
@@ -1967,6 +1995,10 @@ msgstr "Gagal menyahpaut penyedia. Sila cuba lagi."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Gagal mengemas kini pembekal." msgstr "Gagal mengemas kini pembekal."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Gagal mengemas kini tetapan bebenang."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "dibuka dalam tab baharu" msgstr "dibuka dalam tab baharu"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Nota pilihan untuk ejen"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Nota pilihan untuk ejen…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Secara pilihan, tetapkan kata laluan supaya hanya orang yang mempunyai kata laluan boleh melihat resume anda melalui pautan tersebut." msgstr "Secara pilihan, tetapkan kata laluan supaya hanya orang yang mempunyai kata laluan boleh melihat resume anda melalui pautan tersebut."
@@ -3499,6 +3539,10 @@ msgstr "Penerbitan"
msgid "Publisher" msgid "Publisher"
msgstr "Penerbit" msgstr "Penerbit"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON mentah"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Skor semula" msgstr "Skor semula"
@@ -3546,10 +3590,18 @@ msgstr "Resume Reaktif v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktif Resume v4 (JSON)" msgstr "Reaktif Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Membaca lampiran"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Baca panduan Menggunakan Gaya Tersuai." msgstr "Baca panduan Menggunakan Gaya Tersuai."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Membaca resume"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Membaca iklan kerja…" msgstr "Membaca iklan kerja…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Pulihkan" msgstr "Pulihkan"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Pulihkan resume ke tahap sebelum tampalan ini? Ini akan mengembalikan tampalan ini dan sebarang tampalan yang digunakan selepasnya." msgstr "Pulihkan resume ke keadaan sebelum tampalan ini?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analisis resume selesai."
msgid "Resume content" msgid "Resume content"
msgstr "Kandungan resume" msgstr "Kandungan resume"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Suntingan resume"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Fail resume" msgstr "Fail resume"
@@ -3754,10 +3810,18 @@ msgstr "Resume"
msgid "Retry" msgid "Retry"
msgstr "Cuba semula" msgstr "Cuba semula"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Semak suntingan"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Semak resume berdasarkan huraian kerja dan ajukan soalan kepada saya sebelum menukar bahagian yang tidak pasti." msgstr "Semak resume berdasarkan huraian kerja dan ajukan soalan kepada saya sebelum menukar bahagian yang tidak pasti."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Semak suntingan ini"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Ubah suai ringkasan supaya ia menyasarkan peranan pengurus kejuruteraan kanan tanpa kedengaran generik." msgstr "Ubah suai ringkasan supaya ia menyasarkan peranan pengurus kejuruteraan kanan tanpa kedengaran generik."
@@ -3798,6 +3862,10 @@ msgstr "Putaran"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Jalankan analisis pertama anda untuk mendapatkan kad skor, kekuatan, dan cadangan yang diutamakan." msgstr "Jalankan analisis pertama anda untuk mendapatkan kad skor, kekuatan, dan cadangan yang diutamakan."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Sedang berjalan…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rusia" msgstr "Rusia"
@@ -4253,6 +4321,15 @@ msgstr "Sumber"
msgid "Source Code" msgid "Source Code"
msgstr "Kod Sumber" msgstr "Kod Sumber"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Sumber: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Sumber"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Jarak (Mengufuk)" msgstr "Jarak (Mengufuk)"
@@ -4604,6 +4681,10 @@ msgstr "Pembantu ini tidak dapat dibuka."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Tarikh ini tidak akan dibaca dengan betul." msgstr "Tarikh ini tidak akan dibaca dengan betul."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Permintaan suntingan ini tidak lagi boleh dijawab."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Alamat e-mel ini tidak akan dikenali." msgstr "Alamat e-mel ini tidak akan dikenali."
@@ -4712,6 +4793,10 @@ msgstr "Ini akan membantu anda mengenalinya kemudian, jika anda merancang untuk
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Ini akan membuang semua item daripada bahagian ini." msgstr "Ini akan membuang semua item daripada bahagian ini."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Ini akan menggulung ke belakang tampalan ini dan semua tampalan yang digunakan selepasnya."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Togol bar sisi kanan"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Togol thread" msgstr "Togol thread"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token: {total} ({cached} dalam cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Jejaki pekerjaan yang anda mohon dan pautkan resume yang anda hantar." msgstr "Jejaki pekerjaan yang anda mohon dan pautkan resume yang anda hantar."
@@ -5213,6 +5310,10 @@ msgstr "Kami tidak dapat mengesan format secara automatik — sila pilihnya di a
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Kami tidak dapat menemui halaman itu" msgstr "Kami tidak dapat menemui halaman itu"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Carian web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zum keluar"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "आवेदन गरियो"
msgid "Applied on" msgid "Applied on"
msgstr "मा लागू गरियो" msgstr "मा लागू गरियो"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "स्वीकृत गर्नुहोस्"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "स्वीकृत गरियो — एजेन्टको प्रतीक्षा गर्दै…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "अरबी" msgstr "अरबी"
@@ -1462,6 +1470,14 @@ msgstr "तपाईंको API key मेटाइँदैछ..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "तपाईंको बायोडाटा मेटाउँदै..." msgstr "तपाईंको बायोडाटा मेटाउँदै..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "अस्वीकार गरियो — एजेन्टको प्रतीक्षा गर्दै…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "अस्वीकार गर्नुहोस्"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "तपाईंले के गर्नुभयो वर्णन गर्नुहोस् ताकि प्रविष्टिले मिलानको लागि कुञ्जी शब्दहरू योगदान गर्दछ।" msgstr "तपाईंले के गर्नुभयो वर्णन गर्नुहोस् ताकि प्रविष्टिले मिलानको लागि कुञ्जी शब्दहरू योगदान गर्दछ।"
@@ -1530,6 +1546,10 @@ msgstr "दान गर्नुहोस्"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume लाई दान गर्नुहोस्" msgstr "Reactive Resume लाई दान गर्नुहोस्"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "सम्पन्न भयो"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "पूर्ण स्क्रिन मोडमा सामग्र
msgid "Edit date" msgid "Edit date"
msgstr "मिति सम्पादन गर्नुहोस्" msgstr "मिति सम्पादन गर्नुहोस्"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "सम्पादन अस्वीकार गरियो"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "कुनै पनि पर्खाइ वा ढिलाइ बि
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "निर्यात गरिएको पाइपलाइन प्रवाह।png" msgstr "निर्यात गरिएको पाइपलाइन प्रवाह।png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "असफल भयो"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "बायोडाटा विश्लेषण गर्न असफल भयो।" msgstr "बायोडाटा विश्लेषण गर्न असफल भयो।"
@@ -1967,6 +1995,10 @@ msgstr "प्रदायक अनलिङ्क गर्न असफल
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "प्रदायक अद्यावधिक गर्न असफल भयो।" msgstr "प्रदायक अद्यावधिक गर्न असफल भयो।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "थ्रेड सेटिङहरू अपडेट गर्न सकिएन।"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ओपनराउटर"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "नयाँ ट्याबमा खुल्छ" msgstr "नयाँ ट्याबमा खुल्छ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "एजेन्टका लागि वैकल्पिक टिप्पणी"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "एजेन्टका लागि वैकल्पिक टिप्पणी…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "वैकल्पिक रूपमा, पासवर्ड राख्न सक्नुहुन्छ ताकि लिङ्कमार्फत बायोडाटा हेर्न केवल पासवर्ड भएको व्यक्तिले मात्र सकोस्।" msgstr "वैकल्पिक रूपमा, पासवर्ड राख्न सक्नुहुन्छ ताकि लिङ्कमार्फत बायोडाटा हेर्न केवल पासवर्ड भएको व्यक्तिले मात्र सकोस्।"
@@ -3499,6 +3539,10 @@ msgstr "प्रकाशनहरू"
msgid "Publisher" msgid "Publisher"
msgstr "प्रकाशक" msgstr "प्रकाशक"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "कच्चा JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "पुन: स्कोर" msgstr "पुन: स्कोर"
@@ -3546,10 +3590,18 @@ msgstr "प्रतिक्रियाशील रिजुमे v<0>{__APP
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)" msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "संलग्नक पढियो"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "अनुकूलन शैलीहरू लागू गर्ने गाइड पढ्नुहोस्।" msgstr "अनुकूलन शैलीहरू लागू गर्ने गाइड पढ्नुहोस्।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "बायोडाटा पढियो"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "पोस्टिंग पढ्दै…" msgstr "पोस्टिंग पढ्दै…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "पुनर्स्थापना गर्नुहोस्" msgstr "पुनर्स्थापना गर्नुहोस्"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "यो प्याचभन्दा पहिलेको रिजुमे पुनर्स्थापित गर्ने हो? यसले यो प्याच र त्यसपछि लागू गरिएका कुनै पनि प्याचहरूलाई रोलब्याक गर्नेछ।" msgstr "यो प्याचअघिको अवस्थामा बायोडाटा पुनर्स्थापना गर्ने हो?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "बायोडाटा विश्लेषण पूरा भयो
msgid "Resume content" msgid "Resume content"
msgstr "सामग्री पुनःसुरु गर्नुहोस्" msgstr "सामग्री पुनःसुरु गर्नुहोस्"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "बायोडाटा सम्पादन"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "रेजुमे फाइल" msgstr "रेजुमे फाइल"
@@ -3754,10 +3810,18 @@ msgstr "बायोडाटाहरू"
msgid "Retry" msgid "Retry"
msgstr "पुन: प्रयास गर्नुहोस्" msgstr "पुन: प्रयास गर्नुहोस्"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "सम्पादनहरू समीक्षा गर्नुहोस्"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "जागिरको विवरणसँग बायोडाटा समीक्षा गर्नुहोस् र अनिश्चित खण्डहरू परिवर्तन गर्नु अघि मलाई प्रश्नहरू सोध्नुहोस्।" msgstr "जागिरको विवरणसँग बायोडाटा समीक्षा गर्नुहोस् र अनिश्चित खण्डहरू परिवर्तन गर्नु अघि मलाई प्रश्नहरू सोध्नुहोस्।"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "यो सम्पादन समीक्षा गर्नुहोस्"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "सामान्य नलाग्ने गरी वरिष्ठ इन्जिनियरिङ प्रबन्धकको भूमिकालाई लक्षित गरी सारांशलाई पुन: तयार पार्नुहोस्।" msgstr "सामान्य नलाग्ने गरी वरिष्ठ इन्जिनियरिङ प्रबन्धकको भूमिकालाई लक्षित गरी सारांशलाई पुन: तयार पार्नुहोस्।"
@@ -3798,6 +3862,10 @@ msgstr "घुमाउने कोण (Rotation)"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "स्कोरकार्ड, शक्तिहरू, र प्राथमिकता दिइएका सुझावहरू प्राप्त गर्न आफ्नो पहिलो विश्लेषण चलाउनुहोस्।" msgstr "स्कोरकार्ड, शक्तिहरू, र प्राथमिकता दिइएका सुझावहरू प्राप्त गर्न आफ्नो पहिलो विश्लेषण चलाउनुहोस्।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "चलिरहेको छ…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "रुसियन" msgstr "रुसियन"
@@ -4253,6 +4321,15 @@ msgstr "स्रोत"
msgid "Source Code" msgid "Source Code"
msgstr "स्रोत कोड" msgstr "स्रोत कोड"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "स्रोत: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "स्रोतहरू"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "स्पेसिङ (तेर्सो)" msgstr "स्पेसिङ (तेर्सो)"
@@ -4604,6 +4681,10 @@ msgstr "यो सहायक खोल्न सकिएन।"
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "यो मिति सही रूपमा पढिने छैन।" msgstr "यो मिति सही रूपमा पढिने छैन।"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "यो सम्पादन अनुरोधको अब जवाफ दिन सकिँदैन।"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "यो इमेल ठेगाना पहिचान गरिने छैन।" msgstr "यो इमेल ठेगाना पहिचान गरिने छैन।"
@@ -4712,6 +4793,10 @@ msgstr "यदि तपाईंले धेरै पासकीहरू
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "यसले यस खण्डका सबै वस्तुहरू हटाउनेछ।" msgstr "यसले यस खण्डका सबै वस्तुहरू हटाउनेछ।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "यसले यो प्याच र त्यसपछि लागू गरिएका सबै प्याचहरू फिर्ता गर्नेछ।"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "दायाँ साइडबार स्विच गर्नुह
msgid "Toggle threads" msgid "Toggle threads"
msgstr "थ्रेडहरू टगल गर्नुहोस्" msgstr "थ्रेडहरू टगल गर्नुहोस्"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "टोकनहरू: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "टोकनहरू: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "टोकनहरू: {total} ({cached} क्यास गरिएको)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "तपाईंले आवेदन गरिरहनुभएको जागिर ट्र्याक गर्नुहोस् र तपाईंले पठाउनुभएको पुन: सुरुवात लिङ्क गर्नुहोस्।" msgstr "तपाईंले आवेदन गरिरहनुभएको जागिर ट्र्याक गर्नुहोस् र तपाईंले पठाउनुभएको पुन: सुरुवात लिङ्क गर्नुहोस्।"
@@ -5213,6 +5310,10 @@ msgstr "हामीले स्वचालित रूपमा ढाँच
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "हामीले त्यो पृष्ठ फेला पार्न सकेनौं।" msgstr "हामीले त्यो पृष्ठ फेला पार्न सकेनौं।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "वेब खोज"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "जूम आउट"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "जुलु" msgstr "जुलु"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Gesolliciteerd"
msgid "Applied on" msgid "Applied on"
msgstr "Toegepast op" msgstr "Toegepast op"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Goedkeuren"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Goedgekeurd — wachten op de agent…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisch" msgstr "Arabisch"
@@ -1462,6 +1470,14 @@ msgstr "Uw API-sleutel wordt verwijderd..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Uw cv wordt verwijderd..." msgstr "Uw cv wordt verwijderd..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Geweigerd — wachten op de agent…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Weigeren"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Alle controles zijn geslaagd. Niets hier zou een parser moeten verhinderen je cv te lezen." msgstr "Alle controles zijn geslaagd. Niets hier zou een parser moeten verhinderen je cv te lezen."
@@ -1530,6 +1546,10 @@ msgstr "Doneer"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Doneer aan Reactive Resume" msgstr "Doneer aan Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Klaar"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Inhoud bewerken in volledig scherm"
msgid "Edit date" msgid "Edit date"
msgstr "Datum bewerken" msgstr "Datum bewerken"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Bewerking afgewezen"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exporteer je cv direct naar PDF, zonder wachttijden of vertragingen."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Geëxporteerde pijplijnstroom.png" msgstr "Geëxporteerde pijplijnstroom.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Mislukt"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Kan cv niet analyseren." msgstr "Kan cv niet analyseren."
@@ -1967,6 +1995,10 @@ msgstr "Het ontkoppelen van de provider is mislukt. Probeer het opnieuw."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Provider kon niet worden bijgewerkt." msgstr "Provider kon niet worden bijgewerkt."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Kan de threadinstellingen niet bijwerken."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "opent in nieuw tabblad" msgstr "opent in nieuw tabblad"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Optionele notitie voor de agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Optionele notitie voor de agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "U kunt optioneel een wachtwoord instellen zodat alleen mensen met het wachtwoord uw cv via de link kunnen bekijken." msgstr "U kunt optioneel een wachtwoord instellen zodat alleen mensen met het wachtwoord uw cv via de link kunnen bekijken."
@@ -3499,6 +3539,10 @@ msgstr "Publicaties"
msgid "Publisher" msgid "Publisher"
msgstr "Uitgever" msgstr "Uitgever"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Ruwe JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Opnieuw scoren" msgstr "Opnieuw scoren"
@@ -3546,10 +3590,18 @@ msgstr "Reactief hervatten v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactieve cv v4 (JSON)" msgstr "Reactieve cv v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Bijlage gelezen"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Lees de handleiding 'Aangepaste stijlen toepassen'." msgstr "Lees de handleiding 'Aangepaste stijlen toepassen'."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Cv gelezen"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Vacature lezen…" msgstr "Vacature lezen…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Herstellen" msgstr "Herstellen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Wil je het systeem terugzetten naar de situatie van vóór deze patch? Hiermee worden deze patch en alle patches die erna zijn toegepast, teruggedraaid." msgstr "Het cv herstellen naar de staat van vóór deze patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "CV-analyse voltooid."
msgid "Resume content" msgid "Resume content"
msgstr "Inhoud van het cv" msgstr "Inhoud van het cv"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Cv-bewerking"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Cv-bestand" msgstr "Cv-bestand"
@@ -3754,10 +3810,18 @@ msgstr "Cv's"
msgid "Retry" msgid "Retry"
msgstr "Opnieuw proberen" msgstr "Opnieuw proberen"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Bewerkingen beoordelen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Vergelijk je cv met de functieomschrijving en stel me vragen voordat je onderdelen wijzigt waar je nog niet zeker van bent." msgstr "Vergelijk je cv met de functieomschrijving en stel me vragen voordat je onderdelen wijzigt waar je nog niet zeker van bent."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Deze bewerking beoordelen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Herschrijf de samenvatting zodat deze zich richt op een senior engineering manager-functie zonder generiek over te komen." msgstr "Herschrijf de samenvatting zodat deze zich richt op een senior engineering manager-functie zonder generiek over te komen."
@@ -3798,6 +3862,10 @@ msgstr "Rotatie"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Voer uw eerste analyse uit om een scorekaart, sterke punten en geprioriteerde suggesties te krijgen." msgstr "Voer uw eerste analyse uit om een scorekaart, sterke punten en geprioriteerde suggesties te krijgen."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Bezig…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russisch" msgstr "Russisch"
@@ -4253,6 +4321,15 @@ msgstr "Bron"
msgid "Source Code" msgid "Source Code"
msgstr "Broncode" msgstr "Broncode"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Bron: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Bronnen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Afstand (horizontaal)" msgstr "Afstand (horizontaal)"
@@ -4604,6 +4681,10 @@ msgstr "Deze assistent kon niet worden geopend."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Dit e-mailadres wordt niet herkend." msgstr "Dit e-mailadres wordt niet herkend."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Dit bewerkingsverzoek kan niet meer worden beantwoord."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Dit item bevat geen datums." msgstr "Dit item bevat geen datums."
@@ -4712,6 +4793,10 @@ msgstr "Dit zal u helpen om het later te identificeren, als u van plan bent om m
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Hiermee worden alle items uit deze sectie verwijderd." msgstr "Hiermee worden alle items uit deze sectie verwijderd."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Hiermee worden deze patch en alle daarna toegepaste patches teruggedraaid."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Schakel rechter zijbalk in"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Schakel threads in/uit" msgstr "Schakel threads in/uit"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} in cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Volg een vacature waarop u solliciteert en koppel het cv dat u heeft verzonden." msgstr "Volg een vacature waarop u solliciteert en koppel het cv dat u heeft verzonden."
@@ -5213,6 +5310,10 @@ msgstr "We konden het formaat niet automatisch detecteren — selecteer het hier
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "We konden die pagina niet vinden." msgstr "We konden die pagina niet vinden."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Zoeken op het web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Uitzoomen"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Søkt"
msgid "Applied on" msgid "Applied on"
msgstr "Påført på" msgstr "Påført på"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Godkjenn"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Godkjent — venter på agenten…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisk" msgstr "Arabisk"
@@ -1462,6 +1470,14 @@ msgstr "Sletter API-nøkkelen din..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Sletter CV-en din..." msgstr "Sletter CV-en din..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Avslått — venter på agenten…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Avslå"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Beskriv hva du gjorde, slik at oppføringen bidrar med nøkkelord for matching." msgstr "Beskriv hva du gjorde, slik at oppføringen bidrar med nøkkelord for matching."
@@ -1530,6 +1546,10 @@ msgstr "Donere"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Doner til Reactive Resume" msgstr "Doner til Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Ferdig"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Rediger innhold i fullskjermmodus"
msgid "Edit date" msgid "Edit date"
msgstr "Rediger dato" msgstr "Rediger dato"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Redigering avslått"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksporter CV-en din til PDF umiddelbart, uten venting eller forsinkelser
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Eksportert pipeline-flow.png" msgstr "Eksportert pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Mislyktes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Kunne ikke analysere CV-en." msgstr "Kunne ikke analysere CV-en."
@@ -1967,6 +1995,10 @@ msgstr "Kunne ikke koble fra leverandør. Prøv igjen."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Kunne ikke oppdatere leverandøren." msgstr "Kunne ikke oppdatere leverandøren."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Kunne ikke oppdatere trådinnstillingene."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "åpnes i ny fane" msgstr "åpnes i ny fane"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Valgfri merknad til agenten"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Valgfri merknad til agenten…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Du kan eventuelt angi et passord slik at bare personer med passordet kan se CV-en din via lenken." msgstr "Du kan eventuelt angi et passord slik at bare personer med passordet kan se CV-en din via lenken."
@@ -3499,6 +3539,10 @@ msgstr "Publikasjoner"
msgid "Publisher" msgid "Publisher"
msgstr "Utgiver" msgstr "Utgiver"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Rå JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Score på nytt" msgstr "Score på nytt"
@@ -3546,10 +3590,18 @@ msgstr "Reaktiv CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Leste et vedlegg"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Les veiledningen for bruk av tilpassede stiler." msgstr "Les veiledningen for bruk av tilpassede stiler."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Leste CV-en"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Leser utlysningen…" msgstr "Leser utlysningen…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restaurere" msgstr "Restaurere"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Vil du gjenopprette CV-en til før denne oppdateringen? Dette vil tilbakestille denne oppdateringen og eventuelle oppdateringer som ble brukt etter den." msgstr "Gjenopprette CV-en til slik den var før denne oppdateringen?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "CV-analysen er fullført."
msgid "Resume content" msgid "Resume content"
msgstr "CV-innhold" msgstr "CV-innhold"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "CV-redigering"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "CV-fil" msgstr "CV-fil"
@@ -3754,10 +3810,18 @@ msgstr "CV-er"
msgid "Retry" msgid "Retry"
msgstr "Prøv på nytt" msgstr "Prøv på nytt"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Gjennomgå redigeringer"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Gjennomgå CV-en mot en stillingsbeskrivelse og still meg spørsmål før du endrer usikre deler." msgstr "Gjennomgå CV-en mot en stillingsbeskrivelse og still meg spørsmål før du endrer usikre deler."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Gjennomgå denne redigeringen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Omarbeid sammendraget slik at det retter seg mot en stilling som senioringeniør uten å høres generisk ut." msgstr "Omarbeid sammendraget slik at det retter seg mot en stilling som senioringeniør uten å høres generisk ut."
@@ -3798,6 +3862,10 @@ msgstr "Rotasjon"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Kjør din første analyse for å få et poengkort, styrker og prioriterte forslag." msgstr "Kjør din første analyse for å få et poengkort, styrker og prioriterte forslag."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Kjører…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russisk" msgstr "Russisk"
@@ -4253,6 +4321,15 @@ msgstr "Kilde"
msgid "Source Code" msgid "Source Code"
msgstr "Kildekode" msgstr "Kildekode"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Kilde: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Kilder"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Avstand (horisontal)" msgstr "Avstand (horisontal)"
@@ -4604,6 +4681,10 @@ msgstr "Denne assistenten kunne ikke åpnes."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Denne datoen vil ikke bli lest riktig." msgstr "Denne datoen vil ikke bli lest riktig."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Denne redigeringsforespørselen kan ikke lenger besvares."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Denne e-postadressen vil ikke bli gjenkjent." msgstr "Denne e-postadressen vil ikke bli gjenkjent."
@@ -4712,6 +4793,10 @@ msgstr "Dette vil hjelpe deg med å identifisere den senere hvis du planlegger
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Dette vil fjerne alle elementer fra denne seksjonen." msgstr "Dette vil fjerne alle elementer fra denne seksjonen."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Dette vil rulle tilbake denne oppdateringen og alle oppdateringer som er brukt etter den."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Veksle høyre sidepanel"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Veksle tråder" msgstr "Veksle tråder"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} bufret)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Spor en jobb du søker på og koble til CV-en du sendte." msgstr "Spor en jobb du søker på og koble til CV-en du sendte."
@@ -5213,6 +5310,10 @@ msgstr "Vi kunne ikke oppdage formatet automatisk velg det ovenfor."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Vi fant ikke den siden" msgstr "Vi fant ikke den siden"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Nettsøk"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zoom ut"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "ଆବେଦନ କରାଯାଇଛି"
msgid "Applied on" msgid "Applied on"
msgstr "ପ୍ରୟୋଗ ହୋଇଛି |" msgstr "ପ୍ରୟୋଗ ହୋଇଛି |"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "ଅନୁମୋଦନ କରନ୍ତୁ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "ଅନୁମୋଦିତ — ଏଜେଣ୍ଟଙ୍କୁ ଅପେକ୍ଷା କରୁଛି…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "ଆରବୀ" msgstr "ଆରବୀ"
@@ -1462,6 +1470,14 @@ msgstr "ଆପଣଙ୍କ API କି ବିଲୋପ ହେଉଛି..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ବିଲୋପ ହୋଇଯାଉଛି..." msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ବିଲୋପ ହୋଇଯାଉଛି..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "ଅସ୍ୱୀକୃତ — ଏଜେଣ୍ଟଙ୍କୁ ଅପେକ୍ଷା କରୁଛି…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "ଅସ୍ୱୀକାର କରନ୍ତୁ"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "ମେଳ କରିବା ପାଇଁ ଏଣ୍ଟ୍ରିରେ କୀୱାର୍ଡ ଯୋଗ ହେବା ଭଳି ଆପଣ କଣ କରିଥିଲେ ଲେଖନ୍ତୁ।" msgstr "ମେଳ କରିବା ପାଇଁ ଏଣ୍ଟ୍ରିରେ କୀୱାର୍ଡ ଯୋଗ ହେବା ଭଳି ଆପଣ କଣ କରିଥିଲେ ଲେଖନ୍ତୁ।"
@@ -1530,6 +1546,10 @@ msgstr "ଦାନ କରନ୍ତୁ"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume କୁ ଦାନ କରନ୍ତୁ" msgstr "Reactive Resume କୁ ଦାନ କରନ୍ତୁ"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ପୂର୍ଣ୍ଣପର୍ଦ୍ଦା ମୋଡ୍‌ରେ ବି
msgid "Edit date" msgid "Edit date"
msgstr "ତାରିଖ ସମ୍ପାଦନ କରନ୍ତୁ" msgstr "ତାରିଖ ସମ୍ପାଦନ କରନ୍ତୁ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "ସମ୍ପାଦନ ଅସ୍ୱୀକୃତ ହୋଇଛି"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "ଅପେକ୍ଷା କିମ୍ବା ବିଳମ୍ବ ନକରି
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "ରପ୍ତାନି ହୋଇଥିବା ପାଇପଲାଇନ-ପ୍ରବାହ। png |" msgstr "ରପ୍ତାନି ହୋଇଥିବା ପାଇପଲାଇନ-ପ୍ରବାହ। png |"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "ବିଫଳ ହୋଇଛି"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "ରେଜ୍ୟୁମେ ବିଶ୍ଳେଷଣ କରିବାରେ ବିଫଳ ହେଲା।" msgstr "ରେଜ୍ୟୁମେ ବିଶ୍ଳେଷଣ କରିବାରେ ବିଫଳ ହେଲା।"
@@ -1967,6 +1995,10 @@ msgstr "ପ୍ରଦାନକାରୀକୁ ଅନଲିଙ୍କ କରିବ
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "ପ୍ରଦାତାଙ୍କୁ ଅପଡେଟ୍ କରିବାରେ ବିଫଳ ହୋଇଛି।" msgstr "ପ୍ରଦାତାଙ୍କୁ ଅପଡେଟ୍ କରିବାରେ ବିଫଳ ହୋଇଛି।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "ଥ୍ରେଡ୍ ସେଟିଂଗୁଡ଼ିକ ଅପଡେଟ୍ କରିବାରେ ବିଫଳ ହେଲା।"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "ନୂତନ ଟାବ୍‌ରେ ଖୋଲେ" msgstr "ନୂତନ ଟାବ୍‌ରେ ଖୋଲେ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ଏଜେଣ୍ଟଙ୍କ ପାଇଁ ଇଚ୍ଛାଧୀନ ଟିପ୍ପଣୀ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ଏଜେଣ୍ଟଙ୍କ ପାଇଁ ଇଚ୍ଛାଧୀନ ଟିପ୍ପଣୀ…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ଇଚ୍ଛାକୃତ ଭାବେ, ଏକ ପାସୱାର୍ଡ ସେଟ୍ କରନ୍ତୁ ଯାହାଦ୍ୱାରା କେବଳ ପାସୱାର୍ଡ ଥିବା ଲୋକମାନେ ଲିଙ୍କ ମାଧ୍ୟମରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଦେଖିପାରିବେ।" msgstr "ଇଚ୍ଛାକୃତ ଭାବେ, ଏକ ପାସୱାର୍ଡ ସେଟ୍ କରନ୍ତୁ ଯାହାଦ୍ୱାରା କେବଳ ପାସୱାର୍ଡ ଥିବା ଲୋକମାନେ ଲିଙ୍କ ମାଧ୍ୟମରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଦେଖିପାରିବେ।"
@@ -3499,6 +3539,10 @@ msgstr "ପ୍ରକାଶନଗୁଡିକ"
msgid "Publisher" msgid "Publisher"
msgstr "ପ୍ରକାଶକ" msgstr "ପ୍ରକାଶକ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "କଞ୍ଚା JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "ପୁନ score ସ୍କୋର କରନ୍ତୁ |" msgstr "ପୁନ score ସ୍କୋର କରନ୍ତୁ |"
@@ -3546,10 +3590,18 @@ msgstr "ପ୍ରତିକ୍ରିୟାଶୀଳ ରିଜ୍ୟୁମ୍ v<0>
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "ଗୋଟିଏ ଆଟାଚମେଣ୍ଟ୍ ପଢ଼ାଗଲା"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "କଷ୍ଟମ୍ ଷ୍ଟାଇଲ୍ସ ପ୍ରୟୋଗ କରିବା ଗାଇଡ୍ ପଢ଼ନ୍ତୁ।" msgstr "କଷ୍ଟମ୍ ଷ୍ଟାଇଲ୍ସ ପ୍ରୟୋଗ କରିବା ଗାଇଡ୍ ପଢ଼ନ୍ତୁ।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "ରେଜ୍ୟୁମେ ପଢ଼ାଗଲା"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "ପୋଷ୍ଟିଂ ପଢ଼ାଯାଉଛି…" msgstr "ପୋଷ୍ଟିଂ ପଢ଼ାଯାଉଛି…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "ପୁନଃସ୍ଥାପନ କରନ୍ତୁ" msgstr "ପୁନଃସ୍ଥାପନ କରନ୍ତୁ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "ଏହି ପ୍ୟାଚ୍ ପୂର୍ବରୁ ଥିବାିଜ୍ୟୁମ ପୁନଃସ୍ଥାପିତ କରିବେ କି? ଏହା ଏହି ପ୍ୟାଚ୍ ଏବଂ ଏହା ପରେ ଲାଗୁ ହୋଇଥିବା ଯେକୌଣସି ପ୍ୟାଚ୍‌କୁ ରୋଲ୍‌ବ୍ୟାକ୍ କରିବ।" msgstr "ଏହି ପ୍ୟାଚ୍ ପୂର୍ବର ଅବସ୍ଥାକୁ ରଜ୍ୟୁମ ପୁନଃସ୍ଥାପ କରିବେ କି?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "ରେଜ୍ୟୁମେ ବିଶ୍ଳେଷଣ ସମ୍ପୂର୍
msgid "Resume content" msgid "Resume content"
msgstr "ବିଷୟବସ୍ତୁକୁ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ" msgstr "ବିଷୟବସ୍ତୁକୁ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "ରେଜ୍ୟୁମେ ସମ୍ପାଦନ"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "ରେଜୁମେ ଫାଇଲ୍" msgstr "ରେଜୁମେ ଫାଇଲ୍"
@@ -3754,10 +3810,18 @@ msgstr "ରେଜ୍ୟୁମେଗୁଡିକ"
msgid "Retry" msgid "Retry"
msgstr "ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ" msgstr "ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "ସମ୍ପାଦନଗୁଡ଼ିକର ସମୀକ୍ଷା କରନ୍ତୁ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "ଚାକିରି ବର୍ଣ୍ଣନା ସହିତ ଜୀବନ ଜୀବିକା ସମୀକ୍ଷା କରନ୍ତୁ ଏବଂ ଅନିଶ୍ଚିତ ବିଭାଗ ପରିବର୍ତ୍ତନ କରିବା ପୂର୍ବରୁ ମୋତେ ପ୍ରଶ୍ନ ପଚାରନ୍ତୁ।" msgstr "ଚାକିରି ବର୍ଣ୍ଣନା ସହିତ ଜୀବନ ଜୀବିକା ସମୀକ୍ଷା କରନ୍ତୁ ଏବଂ ଅନିଶ୍ଚିତ ବିଭାଗ ପରିବର୍ତ୍ତନ କରିବା ପୂର୍ବରୁ ମୋତେ ପ୍ରଶ୍ନ ପଚାରନ୍ତୁ।"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ଏହି ସମ୍ପାଦନର ସମୀକ୍ଷା କରନ୍ତୁ"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "ସାଧାରଣ ଶବ୍ଦ ନ ଶୁଣାଇ ଜଣେ ବରିଷ୍ଠ ଇଞ୍ଜିନିୟରିଂ ପରିଚାଳକ ଭୂମିକାକୁ ଲକ୍ଷ୍ୟ କରି ସାରାଂଶକୁ ପୁନଃନିର୍ମାଣ କରନ୍ତୁ।" msgstr "ସାଧାରଣ ଶବ୍ଦ ନ ଶୁଣାଇ ଜଣେ ବରିଷ୍ଠ ଇଞ୍ଜିନିୟରିଂ ପରିଚାଳକ ଭୂମିକାକୁ ଲକ୍ଷ୍ୟ କରି ସାରାଂଶକୁ ପୁନଃନିର୍ମାଣ କରନ୍ତୁ।"
@@ -3798,6 +3862,10 @@ msgstr "ଘୁର୍ଣ୍ଣନ"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ସ୍କୋରକାର୍ଡ, ଶକ୍ତି ଏବଂ ପ୍ରାଥମିକତାଭିତ୍ତିକ ପରାମର୍ଶ ପାଇବା ପାଇଁ ଆପଣଙ୍କ ପ୍ରଥମ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।" msgstr "ସ୍କୋରକାର୍ଡ, ଶକ୍ତି ଏବଂ ପ୍ରାଥମିକତାଭିତ୍ତିକ ପରାମର୍ଶ ପାଇବା ପାଇଁ ଆପଣଙ୍କ ପ୍ରଥମ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "ଚାଲୁଛି…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "ରୁଷିଆନ୍" msgstr "ରୁଷିଆନ୍"
@@ -4253,6 +4321,15 @@ msgstr "ଉତ୍ସ"
msgid "Source Code" msgid "Source Code"
msgstr "ସୋର୍ସ କୋଡ୍" msgstr "ସୋର୍ସ କୋଡ୍"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "ଉତ୍ସ: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ଉତ୍ସଗୁଡ଼ିକ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "ଅନୁପ୍ରାସ୍ଥିତ ଭାବେ ଖାଲି ସ୍ଥାନ" msgstr "ଅନୁପ୍ରାସ୍ଥିତ ଭାବେ ଖାଲି ସ୍ଥାନ"
@@ -4604,6 +4681,10 @@ msgstr "ଏହି ସହାୟକକୁ ଖୋଲାଯାଇପାରିଲା
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "ଏହି ତାରିଖକୁ ଠିକ୍‌ଭାବେ ପଢ଼ାଯିବ ନାହିଁ।" msgstr "ଏହି ତାରିଖକୁ ଠିକ୍‌ଭାବେ ପଢ଼ାଯିବ ନାହିଁ।"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "ଏହି ସମ୍ପାଦନା ଅନୁରୋଧର ଆଉ ଉତ୍ତର ଦିଆଯାଇପାରିବ ନାହିଁ।"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "ଏହି ଇମେଲ୍ ଠିକଣାକୁ ଚିହ୍ନଟ କରାଯିବ ନାହିଁ।" msgstr "ଏହି ଇମେଲ୍ ଠିକଣାକୁ ଚିହ୍ନଟ କରାଯିବ ନାହିଁ।"
@@ -4712,6 +4793,10 @@ msgstr "ଯଦି ଆପଣ ଅନେକ ପାସକି ରଖିବାକୁ
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "ଏହା ଏହି ବିଭାଗରୁ ସମସ୍ତ ଆଇଟମ୍ କାଢିଦେବ।" msgstr "ଏହା ଏହି ବିଭାଗରୁ ସମସ୍ତ ଆଇଟମ୍ କାଢିଦେବ।"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "ଏହା ଏହି ପ୍ୟାଚ୍ ଏବଂ ଏହା ପରେ ଲାଗୁ କରାଯାଇଥିବା ସମସ୍ତ ପ୍ୟାଚ୍‌କୁ ପଛକୁ ଘୁଞ୍ଚାଇଦେବ।"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "ଡାହାଣ ସାଇଡବାର୍ ଟୋଗଲ୍ କରନ୍ତ
msgid "Toggle threads" msgid "Toggle threads"
msgstr "ଥ୍ରେଡଗୁଡ଼ିକୁ ଟୋଗଲ୍ କରନ୍ତୁ" msgstr "ଥ୍ରେଡଗୁଡ଼ିକୁ ଟୋଗଲ୍ କରନ୍ତୁ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "ଟୋକେନ୍: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "ଟୋକେନ୍: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "ଟୋକେନ୍: {total} ({cached} କ୍ୟାଶ୍ ହୋଇଛି)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "ଆପଣ ଆବେଦନ କରୁଥିବା ଏକ କାର୍ଯ୍ୟକୁ ଟ୍ରାକ୍ କରନ୍ତୁ ଏବଂ ଆପଣ ପଠାଇଥିବା ରିଜ୍ୟୁମକୁ ଲିଙ୍କ୍ କରନ୍ତୁ |" msgstr "ଆପଣ ଆବେଦନ କରୁଥିବା ଏକ କାର୍ଯ୍ୟକୁ ଟ୍ରାକ୍ କରନ୍ତୁ ଏବଂ ଆପଣ ପଠାଇଥିବା ରିଜ୍ୟୁମକୁ ଲିଙ୍କ୍ କରନ୍ତୁ |"
@@ -5213,6 +5310,10 @@ msgstr "ଆମେ ସ୍ଵଚାଳିତ ଭାବରେ ଫର୍ମାଟ୍
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "ଆମେ ସେହି ପୃଷ୍ଠା ପାଇଲୁ ନାହିଁ।" msgstr "ଆମେ ସେହି ପୃଷ୍ଠା ପାଇଲୁ ନାହିଁ।"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "ୱେବ୍ ଖୋଜ"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ଜୁଲୁ" msgstr "ଜୁଲୁ"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Złożono aplikację"
msgid "Applied on" msgid "Applied on"
msgstr "Zastosowano" msgstr "Zastosowano"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Zatwierdź"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Zatwierdzono — oczekiwanie na agenta…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabski" msgstr "Arabski"
@@ -1462,6 +1470,14 @@ msgstr "Usuwanie klucza API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Usuwanie CV..." msgstr "Usuwanie CV..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Odrzucono — oczekiwanie na agenta…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Odrzuć"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Opisz, co robiłeś, aby wpis zawierał słowa kluczowe pomocne przy dopasowaniu." msgstr "Opisz, co robiłeś, aby wpis zawierał słowa kluczowe pomocne przy dopasowaniu."
@@ -1530,6 +1546,10 @@ msgstr "Podarować"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Przekaż darowiznę na rzecz Reactive Resume" msgstr "Przekaż darowiznę na rzecz Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Gotowe"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Edycja zawartości w trybie pełnoekranowym"
msgid "Edit date" msgid "Edit date"
msgstr "Edytuj datę" msgstr "Edytuj datę"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edycja odrzucona"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksportuj swoje CV do formatu PDF natychmiast, bez czekania i opóźnie
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Wyeksportowany przepływ potoku.png" msgstr "Wyeksportowany przepływ potoku.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Niepowodzenie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Nie udało się przeanalizować wznowienia." msgstr "Nie udało się przeanalizować wznowienia."
@@ -1967,6 +1995,10 @@ msgstr "Nie udało się odłączyć dostawcy. Proszę spróbować ponownie."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Nie udało się zaktualizować dostawcy." msgstr "Nie udało się zaktualizować dostawcy."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nie udało się zaktualizować ustawień wątku."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "otwiera się w nowej karcie" msgstr "otwiera się w nowej karcie"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Opcjonalna notatka dla agenta"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Opcjonalna notatka dla agenta…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcjonalnie możesz ustawić hasło, aby tylko osoby je znające mogły wyświetlać Twoje CV przez link." msgstr "Opcjonalnie możesz ustawić hasło, aby tylko osoby je znające mogły wyświetlać Twoje CV przez link."
@@ -3499,6 +3539,10 @@ msgstr "Publikacje"
msgid "Publisher" msgid "Publisher"
msgstr "Wydawca" msgstr "Wydawca"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Surowy JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Ponownie zdobądź wynik" msgstr "Ponownie zdobądź wynik"
@@ -3546,10 +3590,18 @@ msgstr "Reaktywne CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Odczytano załącznik"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Przeczytaj przewodnik Stosowanie niestandardowych stylów." msgstr "Przeczytaj przewodnik Stosowanie niestandardowych stylów."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Odczytano CV"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Odczytywanie ogłoszenia…" msgstr "Odczytywanie ogłoszenia…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Przywrócić" msgstr "Przywrócić"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Przywrócić stan sprzed tej poprawki? Spowoduje to wycofanie tej poprawki i wszystkich poprawek zastosowanych po niej." msgstr "Przywrócić CV do stanu sprzed tej poprawki?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analiza CV zakończona."
msgid "Resume content" msgid "Resume content"
msgstr "Wznów treść" msgstr "Wznów treść"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Edycja CV"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Plik CV" msgstr "Plik CV"
@@ -3754,10 +3810,18 @@ msgstr "CV"
msgid "Retry" msgid "Retry"
msgstr "Spróbować ponownie" msgstr "Spróbować ponownie"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Przejrzyj edycje"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Porównaj CV z opisem stanowiska pracy i zadaj mi pytania, zanim zmienisz niejasne sekcje." msgstr "Porównaj CV z opisem stanowiska pracy i zadaj mi pytania, zanim zmienisz niejasne sekcje."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Przejrzyj tę edycję"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Przeredaguj podsumowanie tak, aby odnosiło się do stanowiska starszego kierownika ds. inżynierii i nie brzmiało zbyt ogólnikowo." msgstr "Przeredaguj podsumowanie tak, aby odnosiło się do stanowiska starszego kierownika ds. inżynierii i nie brzmiało zbyt ogólnikowo."
@@ -3798,6 +3862,10 @@ msgstr "Obrót"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Proszę przeprowadzić pierwszą analizę, aby uzyskać kartę wyników, mocne strony i sugestie dotyczące priorytetów." msgstr "Proszę przeprowadzić pierwszą analizę, aby uzyskać kartę wyników, mocne strony i sugestie dotyczące priorytetów."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "W toku…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rosyjski" msgstr "Rosyjski"
@@ -4253,6 +4321,15 @@ msgstr "Źródło"
msgid "Source Code" msgid "Source Code"
msgstr "Kod źródłowy" msgstr "Kod źródłowy"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Źródło: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Źródła"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Odstępy (poziome)" msgstr "Odstępy (poziome)"
@@ -4604,6 +4681,10 @@ msgstr "Nie udało się otworzyć tego asystenta."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Ta data nie zostanie poprawnie odczytana." msgstr "Ta data nie zostanie poprawnie odczytana."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Na tę prośbę o edycję nie można już odpowiedzieć."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Ten adres e-mail nie zostanie rozpoznany." msgstr "Ten adres e-mail nie zostanie rozpoznany."
@@ -4712,6 +4793,10 @@ msgstr "Pomoże to zidentyfikować go później, jeśli planują Państwo mieć
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Spowoduje to usunięcie wszystkich elementów z tej sekcji." msgstr "Spowoduje to usunięcie wszystkich elementów z tej sekcji."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Spowoduje to wycofanie tej poprawki oraz wszystkich poprawek zastosowanych po niej."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Przełączanie prawego paska bocznego"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Przełącz wątki" msgstr "Przełącz wątki"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokeny: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokeny: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokeny: {total} ({cached} z pamięci podręcznej)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Śledź ofertę pracy, na którą aplikujesz i połącz wysłane CV." msgstr "Śledź ofertę pracy, na którą aplikujesz i połącz wysłane CV."
@@ -5213,6 +5310,10 @@ msgstr "Nie udało się wykryć formatu automatycznie — wybierz go powyżej."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Nie znaleźliśmy tej strony" msgstr "Nie znaleźliśmy tej strony"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Wyszukiwanie w internecie"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Pomniejsz"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Aplicado"
msgid "Applied on" msgid "Applied on"
msgstr "Aplicado em" msgstr "Aplicado em"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Aprovar"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Aprovado — aguardando o agente…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Árabe" msgstr "Árabe"
@@ -1462,6 +1470,14 @@ msgstr "Excluindo sua chave de API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Excluindo seu currículo..." msgstr "Excluindo seu currículo..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Negado — aguardando o agente…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Negar"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Descreva o que você fez para que a entrada contribua com palavras-chave para a correspondência." msgstr "Descreva o que você fez para que a entrada contribua com palavras-chave para a correspondência."
@@ -1530,6 +1546,10 @@ msgstr "Doar"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Doe para o Reactive Resume" msgstr "Doe para o Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Concluído"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Editar conteúdo no modo de tela cheia"
msgid "Edit date" msgid "Edit date"
msgstr "Editar data" msgstr "Editar data"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edição recusada"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exporte seu currículo para PDF instantaneamente, sem esperas ou atrasos
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Fluxo de pipeline exportado.png" msgstr "Fluxo de pipeline exportado.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Falhou"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Falha ao analisar o currículo." msgstr "Falha ao analisar o currículo."
@@ -1967,6 +1995,10 @@ msgstr "Falha ao desvincular o provedor. Por favor, tente novamente."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Falha ao atualizar o provedor." msgstr "Falha ao atualizar o provedor."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Falha ao atualizar as configurações da conversa."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "abre em nova aba" msgstr "abre em nova aba"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Nota opcional para o agente"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Nota opcional para o agente…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcionalmente, defina uma senha para que apenas pessoas com a senha possam visualizar seu currículo através do link." msgstr "Opcionalmente, defina uma senha para que apenas pessoas com a senha possam visualizar seu currículo através do link."
@@ -3499,6 +3539,10 @@ msgstr "Publicações"
msgid "Publisher" msgid "Publisher"
msgstr "Editor" msgstr "Editor"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON bruto"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Re-pontuação" msgstr "Re-pontuação"
@@ -3546,10 +3590,18 @@ msgstr "Retomar reativo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)" msgstr "Currículo reativo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Leu um anexo"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Leia o guia Aplicando Estilos Personalizados." msgstr "Leia o guia Aplicando Estilos Personalizados."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Leu o currículo"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Lendo o anúncio…" msgstr "Lendo o anúncio…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restaurar" msgstr "Restaurar"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Restaurar o progresso para antes desta atualização? Isso reverterá esta atualização e quaisquer atualizações aplicadas posteriormente." msgstr "Restaurar o currículo ao estado anterior a este patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Análise de currículo concluída."
msgid "Resume content" msgid "Resume content"
msgstr "Conteúdo do currículo" msgstr "Conteúdo do currículo"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Edição do currículo"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Arquivo de currículo" msgstr "Arquivo de currículo"
@@ -3754,10 +3810,18 @@ msgstr "Currículos"
msgid "Retry" msgid "Retry"
msgstr "Tentar novamente" msgstr "Tentar novamente"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Revisar edições"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Analise o currículo comparando-o com a descrição da vaga e tire suas dúvidas antes de alterar qualquer informação que você não tenha certeza." msgstr "Analise o currículo comparando-o com a descrição da vaga e tire suas dúvidas antes de alterar qualquer informação que você não tenha certeza."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Revisar esta edição"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Reformule o resumo para que ele se concentre em um cargo de gerente sênior de engenharia, sem soar genérico." msgstr "Reformule o resumo para que ele se concentre em um cargo de gerente sênior de engenharia, sem soar genérico."
@@ -3798,6 +3862,10 @@ msgstr "Rotação"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Faça sua primeira análise para obter um quadro de resultados, pontos fortes e sugestões priorizadas." msgstr "Faça sua primeira análise para obter um quadro de resultados, pontos fortes e sugestões priorizadas."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Executando…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russo" msgstr "Russo"
@@ -4253,6 +4321,15 @@ msgstr "Fonte"
msgid "Source Code" msgid "Source Code"
msgstr "Código-fonte" msgstr "Código-fonte"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Fonte: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Fontes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Espaçamento (horizontal)" msgstr "Espaçamento (horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "Não foi possível abrir este assistente."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Esta data não será lida corretamente." msgstr "Esta data não será lida corretamente."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Esta solicitação de edição não pode mais ser respondida."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Este endereço de e-mail não será reconhecido." msgstr "Este endereço de e-mail não será reconhecido."
@@ -4712,6 +4793,10 @@ msgstr "Isso ajudará o senhor a identificá-la mais tarde, caso pretenda ter v
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Isso removerá todos os itens dessa seção." msgstr "Isso removerá todos os itens dessa seção."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Isso reverterá este patch e todos os patches aplicados depois dele."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Alternar a barra lateral direita"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Alternar tópicos" msgstr "Alternar tópicos"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} em cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Acompanhe uma vaga para a qual você está se candidatando e vincule o currículo que você enviou." msgstr "Acompanhe uma vaga para a qual você está se candidatando e vincule o currículo que você enviou."
@@ -5213,6 +5310,10 @@ msgstr "Não foi possível detectar o formato automaticamente — por favor, sel
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Não conseguimos encontrar essa página." msgstr "Não conseguimos encontrar essa página."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Pesquisa na web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Diminuir zoom"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Candidatura enviada"
msgid "Applied on" msgid "Applied on"
msgstr "Aplicado em" msgstr "Aplicado em"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Aprovar"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Aprovado — a aguardar o agente…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Árabe" msgstr "Árabe"
@@ -1462,6 +1470,14 @@ msgstr "A apagar a sua chave API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "A apagar o seu currículo..." msgstr "A apagar o seu currículo..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Recusado — a aguardar o agente…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Recusar"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Descreva o que você fez para que a entrada contribua com palavras-chave para correspondência." msgstr "Descreva o que você fez para que a entrada contribua com palavras-chave para correspondência."
@@ -1530,6 +1546,10 @@ msgstr "Doar"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Faça um donativo para o Reactive Resume" msgstr "Faça um donativo para o Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Concluído"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Edite conteúdos no modo de ecrã inteiro"
msgid "Edit date" msgid "Edit date"
msgstr "Editar data" msgstr "Editar data"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Edição recusada"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exporte o seu currículo para PDF instantaneamente, sem esperas ou atras
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Pipeline-flow. png exportado" msgstr "Pipeline-flow. png exportado"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Falhou"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Falha na análise do currículo." msgstr "Falha na análise do currículo."
@@ -1967,6 +1995,10 @@ msgstr "Falha na desvinculação do fornecedor. Tente novamente."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Falha ao atualizar o fornecedor." msgstr "Falha ao atualizar o fornecedor."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Não foi possível atualizar as definições do thread."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "abre num novo separador" msgstr "abre num novo separador"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Nota opcional para o agente"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Nota opcional para o agente…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcionalmente, defina uma senha para que apenas as pessoas com a senha possam ver o seu currículo através do link." msgstr "Opcionalmente, defina uma senha para que apenas as pessoas com a senha possam ver o seu currículo através do link."
@@ -3499,6 +3539,10 @@ msgstr "Publicações"
msgid "Publisher" msgid "Publisher"
msgstr "Editora" msgstr "Editora"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON bruto"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Re-pontuação" msgstr "Re-pontuação"
@@ -3546,10 +3590,18 @@ msgstr "Reativo reativo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)" msgstr "Currículo reativo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Leu um anexo"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Leia o guia Aplicando Estilos Personalizados." msgstr "Leia o guia Aplicando Estilos Personalizados."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Leu o currículo"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "A ler o anúncio…" msgstr "A ler o anúncio…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restaurar" msgstr "Restaurar"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Restaurar o progresso para antes desta atualização? Isto reverterá esta atualização e quaisquer atualizações aplicadas posteriormente." msgstr "Restaurar o currículo para antes deste patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Análise do currículo concluída."
msgid "Resume content" msgid "Resume content"
msgstr "Conteúdo do currículo" msgstr "Conteúdo do currículo"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Edição do currículo"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Ficheiro de currículo" msgstr "Ficheiro de currículo"
@@ -3754,10 +3810,18 @@ msgstr "Currículos"
msgid "Retry" msgid "Retry"
msgstr "Tentar novamente" msgstr "Tentar novamente"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Rever edições"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Analise o currículo comparando-o com a descrição da função e tire as suas dúvidas antes de alterar qualquer informação que não tenha a certeza." msgstr "Analise o currículo comparando-o com a descrição da função e tire as suas dúvidas antes de alterar qualquer informação que não tenha a certeza."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Rever esta edição"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Reformule o resumo para que se concentre num cargo de gestor sénior de engenharia, sem soar genérico." msgstr "Reformule o resumo para que se concentre num cargo de gestor sénior de engenharia, sem soar genérico."
@@ -3798,6 +3862,10 @@ msgstr "Rotação"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Execute a sua primeira análise para obter um quadro de pontuação, pontos fortes e sugestões prioritárias." msgstr "Execute a sua primeira análise para obter um quadro de pontuação, pontos fortes e sugestões prioritárias."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "A executar…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Russo" msgstr "Russo"
@@ -4253,6 +4321,15 @@ msgstr "Fonte"
msgid "Source Code" msgid "Source Code"
msgstr "Código-fonte" msgstr "Código-fonte"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Origem: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Fontes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Espaçamento (horizontal)" msgstr "Espaçamento (horizontal)"
@@ -4604,6 +4681,10 @@ msgstr "Não foi possível abrir este assistente."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Esta data não será lida corretamente." msgstr "Esta data não será lida corretamente."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Este pedido de edição já não pode ser respondido."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Este endereço de e-mail não será reconhecido." msgstr "Este endereço de e-mail não será reconhecido."
@@ -4712,6 +4793,10 @@ msgstr "Isto ajudá-lo-á a identificá-la mais tarde, se planear ter várias ch
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Isto irá remover todos os itens desta secção." msgstr "Isto irá remover todos os itens desta secção."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Isto irá reverter este patch e todos os patches aplicados depois dele."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Alternar a barra lateral direita"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Alternar tópicos" msgstr "Alternar tópicos"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} em cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Acompanhe uma vaga para a qual se está a candidatar e vincule o currículo que enviou." msgstr "Acompanhe uma vaga para a qual se está a candidatar e vincule o currículo que enviou."
@@ -5213,6 +5310,10 @@ msgstr "Não foi possível detetar o formato automaticamente — por favor, sele
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Não conseguimos encontrar essa página." msgstr "Não conseguimos encontrar essa página."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Pesquisa na web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Afastar"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Candidatură trimisă"
msgid "Applied on" msgid "Applied on"
msgstr "Aplicat pe" msgstr "Aplicat pe"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Aprobă"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Aprobat — se așteaptă agentul…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabă" msgstr "Arabă"
@@ -1462,6 +1470,14 @@ msgstr "Se șterge cheia API..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Se șterge CV-ul..." msgstr "Se șterge CV-ul..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Refuzat — se așteaptă agentul…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Refuză"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Descrieți ce ați făcut, astfel încât intrarea să contribuie cu cuvinte cheie pentru potrivire." msgstr "Descrieți ce ați făcut, astfel încât intrarea să contribuie cu cuvinte cheie pentru potrivire."
@@ -1530,6 +1546,10 @@ msgstr "Dona"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donează către Reactive Resume" msgstr "Donează către Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Finalizat"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Editarea conținutului în modul fullscreen"
msgid "Edit date" msgid "Edit date"
msgstr "Editați data" msgstr "Editați data"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Editare refuzată"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportă-ți CV-ul instantaneu în format PDF, fără nicio așteptare s
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Exportat pipeline-flow.png" msgstr "Exportat pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Eșuat"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "A eșuat analiza CV-ului." msgstr "A eșuat analiza CV-ului."
@@ -1967,6 +1995,10 @@ msgstr "A eșuat dezlegarea furnizorului. Vă rugăm să încercați din nou."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Nu s-a putut actualiza furnizorul." msgstr "Nu s-a putut actualiza furnizorul."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nu s-au putut actualiza setările firului de execuție."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "se deschide într-o filă nouă" msgstr "se deschide într-o filă nouă"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Notă opțională pentru agent"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Notă opțională pentru agent…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opțional, setați o parolă astfel încât doar persoanele care o cunosc să poată vedea CV-ul prin link." msgstr "Opțional, setați o parolă astfel încât doar persoanele care o cunosc să poată vedea CV-ul prin link."
@@ -3499,6 +3539,10 @@ msgstr "Publicații"
msgid "Publisher" msgid "Publisher"
msgstr "Editor" msgstr "Editor"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON brut"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Re-scorați" msgstr "Re-scorați"
@@ -3546,10 +3590,18 @@ msgstr "CV reactiv v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "CV reactiv v4 (JSON)" msgstr "CV reactiv v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "A citit un atașament"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Citiți ghidul Aplicarea stilurilor personalizate." msgstr "Citiți ghidul Aplicarea stilurilor personalizate."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "A citit CV-ul"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Se citește postarea…" msgstr "Se citește postarea…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Restabili" msgstr "Restabili"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Restaurați CV-ul la starea anterioară acestui patch? Această acțiune va anula acest patch și orice patch-uri aplicate după acesta." msgstr "Restaurați CV-ul la starea de dinaintea acestui patch?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analiza CV-ului este completă."
msgid "Resume content" msgid "Resume content"
msgstr "Conținut CV" msgstr "Conținut CV"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Editare CV"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Fișier CV" msgstr "Fișier CV"
@@ -3754,10 +3810,18 @@ msgstr "CV-uri"
msgid "Retry" msgid "Retry"
msgstr "Reîncercați" msgstr "Reîncercați"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Revizuiește editările"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Verifică CV-ul în raport cu fișa postului și pune-mi întrebări înainte de a modifica secțiunile incerte." msgstr "Verifică CV-ul în raport cu fișa postului și pune-mi întrebări înainte de a modifica secțiunile incerte."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Revizuiește această editare"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Reelaborați rezumatul astfel încât să vizeze un rol de manager senior de inginerie, fără a suna generic." msgstr "Reelaborați rezumatul astfel încât să vizeze un rol de manager senior de inginerie, fără a suna generic."
@@ -3798,6 +3862,10 @@ msgstr "Rotire"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Efectuați prima analiză pentru a obține o fișă de evaluare, puncte forte și sugestii prioritizate." msgstr "Efectuați prima analiză pentru a obține o fișă de evaluare, puncte forte și sugestii prioritizate."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Se execută…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rusă" msgstr "Rusă"
@@ -4253,6 +4321,15 @@ msgstr "Sursă"
msgid "Source Code" msgid "Source Code"
msgstr "Cod sursă" msgstr "Cod sursă"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Sursă: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Surse"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Spațiere (orizontală)" msgstr "Spațiere (orizontală)"
@@ -4604,6 +4681,10 @@ msgstr "Acest asistent nu a putut fi deschis."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Această dată nu va fi citită corect." msgstr "Această dată nu va fi citită corect."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Această solicitare de editare nu mai poate primi răspuns."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Această adresă de e-mail nu va fi recunoscută." msgstr "Această adresă de e-mail nu va fi recunoscută."
@@ -4712,6 +4793,10 @@ msgstr "Acest lucru vă va ajuta să o identificați ulterior, dacă intenționa
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Acest lucru va elimina toate elementele din această secțiune." msgstr "Acest lucru va elimina toate elementele din această secțiune."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Acest lucru va retrage acest patch și toate patch-urile aplicate după el."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Alternați bara laterală din dreapta"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Comutare fir de discuție" msgstr "Comutare fir de discuție"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokeni: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokeni: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokeni: {total} ({cached} în cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Urmăriți un loc de muncă la care aplicați și conectați CV-ul pe care l-ați trimis." msgstr "Urmăriți un loc de muncă la care aplicați și conectați CV-ul pe care l-ați trimis."
@@ -5213,6 +5310,10 @@ msgstr "Nu am putut detecta formatul automat — vă rugăm să îl alegeți mai
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Nu am putut găsi pagina respectivă" msgstr "Nu am putut găsi pagina respectivă"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Căutare pe web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Micșorează"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Отклик отправлен"
msgid "Applied on" msgid "Applied on"
msgstr "Применяется на" msgstr "Применяется на"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Одобрить"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Одобрено — ожидание агента…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арабский" msgstr "Арабский"
@@ -1462,6 +1470,14 @@ msgstr "Удаление вашего API-ключа..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Удаление вашего резюме..." msgstr "Удаление вашего резюме..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Отклонено — ожидание агента…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Отклонить"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Опишите, что вы сделали, чтобы в запись были добавлены ключевые слова для сопоставления." msgstr "Опишите, что вы сделали, чтобы в запись были добавлены ключевые слова для сопоставления."
@@ -1530,6 +1546,10 @@ msgstr "Пожертвовать"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Пожертвовать Reactive Resume" msgstr "Пожертвовать Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Готово"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Редактируйте содержимое в полноэкранн
msgid "Edit date" msgid "Edit date"
msgstr "Изменить дату" msgstr "Изменить дату"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Правка отклонена"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Мгновенно экспортируйте свое резюме в
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Экспортированный конвейер-flow.png" msgstr "Экспортированный конвейер-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Ошибка"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Не удалось проанализировать резюме." msgstr "Не удалось проанализировать резюме."
@@ -1967,6 +1995,10 @@ msgstr "Не удалось отвязать провайдера. Пожалу
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Не удалось обновить поставщика услуг." msgstr "Не удалось обновить поставщика услуг."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Не удалось обновить настройки потока."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "открывается в новой вкладке" msgstr "открывается в новой вкладке"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Необязательная заметка для агента"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Необязательная заметка для агента…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "При желании вы можете установить пароль, чтобы просматривать резюме по ссылке могли только пользователи с паролем." msgstr "При желании вы можете установить пароль, чтобы просматривать резюме по ссылке могли только пользователи с паролем."
@@ -3499,6 +3539,10 @@ msgstr "Публикации"
msgid "Publisher" msgid "Publisher"
msgstr "Издатель" msgstr "Издатель"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Необработанный JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Повторный результат" msgstr "Повторный результат"
@@ -3546,10 +3590,18 @@ msgstr "Реактивное возобновление v<0>{__APP_VERSION__}</0
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Прочитал вложение"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Ознакомьтесь с руководством по применению пользовательских стилей." msgstr "Ознакомьтесь с руководством по применению пользовательских стилей."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Прочитал резюме"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Чтение объявления…" msgstr "Чтение объявления…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Восстановить" msgstr "Восстановить"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Восстановить состояние до установки этого обновления? Это отменит данное обновление и все обновления, установленные после него." msgstr "Восстановить резюме к состоянию до этого патча?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Анализ резюме завершен."
msgid "Resume content" msgid "Resume content"
msgstr "Содержание резюме" msgstr "Содержание резюме"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Правка резюме"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Файл резюме" msgstr "Файл резюме"
@@ -3754,10 +3810,18 @@ msgstr "Резюме"
msgid "Retry" msgid "Retry"
msgstr "Повторить попытку" msgstr "Повторить попытку"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Просмотреть правки"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Сравните резюме с описанием вакансии и задайте мне вопросы, прежде чем вносить изменения в непонятные разделы." msgstr "Сравните резюме с описанием вакансии и задайте мне вопросы, прежде чем вносить изменения в непонятные разделы."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Просмотреть эту правку"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Переработайте резюме так, чтобы оно было ориентировано на должность старшего инженерного менеджера, но при этом не звучало слишком шаблонно." msgstr "Переработайте резюме так, чтобы оно было ориентировано на должность старшего инженерного менеджера, но при этом не звучало слишком шаблонно."
@@ -3798,6 +3862,10 @@ msgstr "Поворот"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Проведите свой первый анализ, чтобы получить оценочный лист, сильные стороны и приоритетные предложения." msgstr "Проведите свой первый анализ, чтобы получить оценочный лист, сильные стороны и приоритетные предложения."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Выполняется…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Русский" msgstr "Русский"
@@ -4253,6 +4321,15 @@ msgstr "Источник"
msgid "Source Code" msgid "Source Code"
msgstr "Исходный код" msgstr "Исходный код"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Источник: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Источники"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Интервал (по горизонтали)" msgstr "Интервал (по горизонтали)"
@@ -4604,6 +4681,10 @@ msgstr "Не удалось открыть этого помощника."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Эта дата не будет прочитана правильно." msgstr "Эта дата не будет прочитана правильно."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "На этот запрос на редактирование больше нельзя ответить."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Этот адрес электронной почты не будет распознан." msgstr "Этот адрес электронной почты не будет распознан."
@@ -4712,6 +4793,10 @@ msgstr "Это поможет Вам определить его позже, е
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Это позволит удалить все элементы из этого раздела." msgstr "Это позволит удалить все элементы из этого раздела."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Это откатит этот патч и все патчи, применённые после него."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Переключите правую боковую панель"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Переключить потоки" msgstr "Переключить потоки"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Токены: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Токены: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Токены: {total} ({cached} из кэша)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Отслеживайте вакансию, на которую вы претендуете, и связывайте отправленное вами резюме." msgstr "Отслеживайте вакансию, на которую вы претендуете, и связывайте отправленное вами резюме."
@@ -5213,6 +5310,10 @@ msgstr "Нам не удалось автоматически определит
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Мы не смогли найти эту страницу." msgstr "Мы не смогли найти эту страницу."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Веб-поиск"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Уменьшить"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулу" msgstr "Зулу"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Odoslané"
msgid "Applied on" msgid "Applied on"
msgstr "Aplikované dňa" msgstr "Aplikované dňa"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Schváliť"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Schválené — čaká sa na agenta…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabčina" msgstr "Arabčina"
@@ -1462,6 +1470,14 @@ msgstr "Vymazávam tvoj API kľúč..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Vymazávam tvoj životopis..." msgstr "Vymazávam tvoj životopis..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Zamietnuté — čaká sa na agenta…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Zamietnuť"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Popíšte, čo ste urobili, aby záznam prispel k zhode kľúčových slov." msgstr "Popíšte, čo ste urobili, aby záznam prispel k zhode kľúčových slov."
@@ -1530,6 +1546,10 @@ msgstr "Darovať"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Prispej projektu Reactive Resume" msgstr "Prispej projektu Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Hotovo"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Úprava obsahu v režime celej obrazovky"
msgid "Edit date" msgid "Edit date"
msgstr "Upraviť dátum" msgstr "Upraviť dátum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Úprava zamietnutá"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportujte svoj životopis do PDF okamžite, bez čakania alebo zdržani
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Exportované pipeline-flow.png" msgstr "Exportované pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Zlyhalo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Nepodarilo sa analyzovať životopis." msgstr "Nepodarilo sa analyzovať životopis."
@@ -1967,6 +1995,10 @@ msgstr "Nepodarilo sa odpojiť poskytovateľa. Skúste to prosím znova."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Aktualizácia poskytovateľa zlyhala." msgstr "Aktualizácia poskytovateľa zlyhala."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nepodarilo sa aktualizovať nastavenia vlákna."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "otvorí sa na novej karte" msgstr "otvorí sa na novej karte"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Voliteľná poznámka pre agenta"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Voliteľná poznámka pre agenta…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Voliteľne môžeš nastaviť heslo, aby si životopis cez odkaz mohli pozrieť len ľudia, ktorí heslo poznajú." msgstr "Voliteľne môžeš nastaviť heslo, aby si životopis cez odkaz mohli pozrieť len ľudia, ktorí heslo poznajú."
@@ -3499,6 +3539,10 @@ msgstr "Publikácie"
msgid "Publisher" msgid "Publisher"
msgstr "Vydavateľ" msgstr "Vydavateľ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Surový JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Opätovné skóre" msgstr "Opätovné skóre"
@@ -3546,10 +3590,18 @@ msgstr "Reaktívny životopis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktívny životopis v4 (JSON)" msgstr "Reaktívny životopis v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Prečítal prílohu"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Prečítajte si príručku Používanie vlastných štýlov." msgstr "Prečítajte si príručku Používanie vlastných štýlov."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Prečítal životopis"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Číta sa inzerát…" msgstr "Číta sa inzerát…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Obnoviť" msgstr "Obnoviť"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Obnoviť životopis do stavu pred touto opravou? Táto akcia vráti späť túto opravu a všetky opravy použité po nej." msgstr "Obnoviť životopis do stavu pred touto záplatou?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Dokončenie analýzy životopisu."
msgid "Resume content" msgid "Resume content"
msgstr "Obsah životopisu" msgstr "Obsah životopisu"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Úprava životopisu"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Súbor životopisu" msgstr "Súbor životopisu"
@@ -3754,10 +3810,18 @@ msgstr "Životopisy"
msgid "Retry" msgid "Retry"
msgstr "Skúsiť znova" msgstr "Skúsiť znova"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Skontrolovať úpravy"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Pred zmenou nejasných častí si skontrolujte životopis v porovnaní s popisom práce a položte mi otázky." msgstr "Pred zmenou nejasných častí si skontrolujte životopis v porovnaní s popisom práce a položte mi otázky."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Skontrolovať túto úpravu"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Prepracujte súhrn tak, aby sa zameriaval na pozíciu senior inžinierskeho manažéra bez toho, aby znel všeobecne." msgstr "Prepracujte súhrn tak, aby sa zameriaval na pozíciu senior inžinierskeho manažéra bez toho, aby znel všeobecne."
@@ -3798,6 +3862,10 @@ msgstr "Otočenie"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Spustite prvú analýzu, aby ste získali hodnotiacu tabuľku, silné stránky a prioritné návrhy." msgstr "Spustite prvú analýzu, aby ste získali hodnotiacu tabuľku, silné stránky a prioritné návrhy."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Prebieha…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Ruština" msgstr "Ruština"
@@ -4253,6 +4321,15 @@ msgstr "Zdroj"
msgid "Source Code" msgid "Source Code"
msgstr "Zdrojový kód" msgstr "Zdrojový kód"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Zdroj: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Zdroje"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Rozostup (vodorovne)" msgstr "Rozostup (vodorovne)"
@@ -4604,6 +4681,10 @@ msgstr "Tohto asistenta sa nepodarilo otvoriť."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Tento dátum sa neprečíta správne." msgstr "Tento dátum sa neprečíta správne."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Na túto žiadosť o úpravu už nie je možné odpovedať."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Táto e-mailová adresa nebude rozpoznaná." msgstr "Táto e-mailová adresa nebude rozpoznaná."
@@ -4712,6 +4793,10 @@ msgstr "To vám pomôže identifikovať ho neskôr, ak plánujete mať viacero p
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Týmto odstránite všetky položky z tejto časti." msgstr "Týmto odstránite všetky položky z tejto časti."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Týmto sa vráti späť táto záplata a všetky záplaty použité po nej."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Prepnutie pravého bočného panela"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Prepínať vlákna" msgstr "Prepínať vlákna"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokeny: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokeny: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokeny: {total} ({cached} z medzipamäte)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Sledujte prácu, o ktorú sa uchádzate, a prepojte životopis, ktorý ste poslali." msgstr "Sledujte prácu, o ktorú sa uchádzate, a prepojte životopis, ktorý ste poslali."
@@ -5213,6 +5310,10 @@ msgstr "Formát sa nám nepodarilo automaticky rozpoznať vyberte ho vyšši
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Túto stránku sme nenašli" msgstr "Túto stránku sme nenašli"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Vyhľadávanie na webe"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Oddialiť"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Prijavljeno"
msgid "Applied on" msgid "Applied on"
msgstr "Uporabljeno na" msgstr "Uporabljeno na"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Odobri"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Odobreno — čakanje na agenta…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabščina" msgstr "Arabščina"
@@ -1462,6 +1470,14 @@ msgstr "Brišem vaš API ključ ..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Brišem vaš življenjepis..." msgstr "Brišem vaš življenjepis..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Zavrnjeno — čakanje na agenta…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Zavrni"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Opišite, kaj ste storili, da vnos prispeva ključne besede za ujemanje." msgstr "Opišite, kaj ste storili, da vnos prispeva ključne besede za ujemanje."
@@ -1530,6 +1546,10 @@ msgstr "Donirajte"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donirajte za Reactive Resume" msgstr "Donirajte za Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Končano"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Urejanje vsebine v celozaslonskem načinu"
msgid "Edit date" msgid "Edit date"
msgstr "Uredi datum" msgstr "Uredi datum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Sprememba zavrnjena"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Izvozite svoj življenjepis v PDF takoj, brez čakanja ali zamud."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Izvožen pipeline-flow.png" msgstr "Izvožen pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Ni uspelo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Ni uspelo analizirati življenjepisa." msgstr "Ni uspelo analizirati življenjepisa."
@@ -1967,6 +1995,10 @@ msgstr "Ni uspelo odvezati ponudnika. Poskusite znova."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Ponudnika ni bilo mogoče posodobiti." msgstr "Ponudnika ni bilo mogoče posodobiti."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nastavitev niti ni bilo mogoče posodobiti."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "odpre se v novem zavihku" msgstr "odpre se v novem zavihku"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Neobvezna opomba za agenta"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Neobvezna opomba za agenta…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Po želji nastavite geslo, tako da si lahko vaš življenjepis preko povezave ogledajo le tisti, ki imajo geslo." msgstr "Po želji nastavite geslo, tako da si lahko vaš življenjepis preko povezave ogledajo le tisti, ki imajo geslo."
@@ -3499,6 +3539,10 @@ msgstr "Publikacije"
msgid "Publisher" msgid "Publisher"
msgstr "Založnik" msgstr "Založnik"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Neobdelan JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Ponovno rezultat" msgstr "Ponovno rezultat"
@@ -3546,10 +3590,18 @@ msgstr "Reaktivni življenjepis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivni življenjepis v4 (JSON)" msgstr "Reaktivni življenjepis v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Prebral prilogo"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Preberite vodnik Uporaba slogov po meri." msgstr "Preberite vodnik Uporaba slogov po meri."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Prebral življenjepis"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Branje objave…" msgstr "Branje objave…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Obnovi" msgstr "Obnovi"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Želite obnoviti življenjepis na stanje pred tem popravkom? S tem boste povrnili ta popravek in vse popravke, ki so bili uporabljeni po njem." msgstr "Želite obnoviti življenjepis v stanje pred tem popravkom?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analiza življenjepisa je končana."
msgid "Resume content" msgid "Resume content"
msgstr "Vsebina življenjepisa" msgstr "Vsebina življenjepisa"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Urejanje življenjepisa"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Datoteka življenjepisa" msgstr "Datoteka življenjepisa"
@@ -3754,10 +3810,18 @@ msgstr "Življenjepisi"
msgid "Retry" msgid "Retry"
msgstr "Poskusi znova" msgstr "Poskusi znova"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Preglej spremembe"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Preden spremenite negotove dele, preglejte življenjepis glede na opis delovnega mesta in mi postavite vprašanja." msgstr "Preden spremenite negotove dele, preglejte življenjepis glede na opis delovnega mesta in mi postavite vprašanja."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Preglej to spremembo"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Preoblikujte povzetek, da bo namenjen višjemu inženirskemu vodji, ne da bi zvenel generično." msgstr "Preoblikujte povzetek, da bo namenjen višjemu inženirskemu vodji, ne da bi zvenel generično."
@@ -3798,6 +3862,10 @@ msgstr "Rotacija"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Izvedite prvo analizo in pridobite preglednico, prednosti in prednostne predloge." msgstr "Izvedite prvo analizo in pridobite preglednico, prednosti in prednostne predloge."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Izvajanje…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "ruščina" msgstr "ruščina"
@@ -4253,6 +4321,15 @@ msgstr "Vir"
msgid "Source Code" msgid "Source Code"
msgstr "Izvorna koda" msgstr "Izvorna koda"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Vir: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Viri"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Razmik (vodoravno)" msgstr "Razmik (vodoravno)"
@@ -4604,6 +4681,10 @@ msgstr "Tega pomočnika ni bilo mogoče odpreti."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Ta datum ne bo pravilno prebran." msgstr "Ta datum ne bo pravilno prebran."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Na to zahtevo za urejanje ni več mogoče odgovoriti."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Ta e-poštni naslov ne bo prepoznan." msgstr "Ta e-poštni naslov ne bo prepoznan."
@@ -4712,6 +4793,10 @@ msgstr "Če nameravate imeti več ključev, vam bo to pomagalo pri kasnejši ide
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "S tem boste odstranili vse elemente iz tega razdelka." msgstr "S tem boste odstranili vse elemente iz tega razdelka."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "To bo razveljavilo ta popravek in vse popravke, uporabljene po njem."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Preklapljanje desne stranske vrstice"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Preklopi niti" msgstr "Preklopi niti"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Žetoni: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Žetoni: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Žetoni: {total} ({cached} predpomnjenih)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Sledite delovnemu mestu, na katerega se prijavljate, in povežite življenjepis, ki ste ga poslali." msgstr "Sledite delovnemu mestu, na katerega se prijavljate, in povežite življenjepis, ki ste ga poslali."
@@ -5213,6 +5310,10 @@ msgstr "Oblike ni bilo mogoče samodejno zaznati izberite jo zgoraj."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Te strani nismo mogli najti." msgstr "Te strani nismo mogli najti."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Spletno iskanje"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Oddalji"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zuluščina" msgstr "Zuluščina"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Aplikuar"
msgid "Applied on" msgid "Applied on"
msgstr "Aplikuar në" msgstr "Aplikuar në"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Mirato"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Miratuar — në pritje të agjentit…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabisht" msgstr "Arabisht"
@@ -1462,6 +1470,14 @@ msgstr "Po fshihet API key-ja juaj..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Po fshihet CV-ja juaj..." msgstr "Po fshihet CV-ja juaj..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Refuzuar — në pritje të agjentit…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Refuzo"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Përshkruani atë që keni bërë në mënyrë që hyrja të kontribuojë me fjalë kyçe për përputhje." msgstr "Përshkruani atë që keni bërë në mënyrë që hyrja të kontribuojë me fjalë kyçe për përputhje."
@@ -1530,6 +1546,10 @@ msgstr "Dhuro"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Dhuro në Reactive Resume" msgstr "Dhuro në Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "U krye"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Redakto përmbajtjen në modalitetin me ekran të plotë"
msgid "Edit date" msgid "Edit date"
msgstr "Redakto datën" msgstr "Redakto datën"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Modifikimi u refuzua"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Eksportoni CV-në tuaj në PDF menjëherë, pa pritje ose vonesa."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Pipeline-flow.png u eksportua" msgstr "Pipeline-flow.png u eksportua"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Dështoi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Dështoi të analizojë CV-në." msgstr "Dështoi të analizojë CV-në."
@@ -1967,6 +1995,10 @@ msgstr "Dështoi shkëputja e lidhjes me ofruesin. Ju lutemi provoni përsëri."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Përditësimi i ofruesit dështoi." msgstr "Përditësimi i ofruesit dështoi."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Nuk u përditësuan dot parametrat e fijes."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "Ruter i hapur"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "hapet në skedë të re" msgstr "hapet në skedë të re"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Shënim opsional për agjentin"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Shënim opsional për agjentin…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opsionalisht, vendosni një fjalëkalim në mënyrë që vetëm personat me fjalëkalim të mund ta shikojnë CV-në tuaj përmes linkut." msgstr "Opsionalisht, vendosni një fjalëkalim në mënyrë që vetëm personat me fjalëkalim të mund ta shikojnë CV-në tuaj përmes linkut."
@@ -3499,6 +3539,10 @@ msgstr "Publikime"
msgid "Publisher" msgid "Publisher"
msgstr "Botues" msgstr "Botues"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON i papërpunuar"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Ri-shënoni" msgstr "Ri-shënoni"
@@ -3546,10 +3590,18 @@ msgstr "Rezyme Reaktive v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)" msgstr "Reactive Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Lexoi një shtojcë"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Lexoni udhëzuesin Zbatimi i Stileve të Personalizuara." msgstr "Lexoni udhëzuesin Zbatimi i Stileve të Personalizuara."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Lexoi CV-në"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Po lexohet shpallja…" msgstr "Po lexohet shpallja…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Rivendos" msgstr "Rivendos"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Të rikthehet CV-ja në gjendjen para këtij përditësimi? Kjo do ta anulojë këtë përditësim dhe çdo përditësim të aplikuar pas tij." msgstr "Të rikthehet CV-ja në gjendjen para këtij patch-i?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Analiza e rezumesë e përfunduar."
msgid "Resume content" msgid "Resume content"
msgstr "Përmbajtja e rifillimit" msgstr "Përmbajtja e rifillimit"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Modifikim i CV-së"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Skedari i CV-së" msgstr "Skedari i CV-së"
@@ -3754,10 +3810,18 @@ msgstr "CV-të"
msgid "Retry" msgid "Retry"
msgstr "Riprovo" msgstr "Riprovo"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Shqyrto modifikimet"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Rishikoni CV-në tuaj me një përshkrim pune dhe më bëni pyetje përpara se të ndryshoni seksionet e pasigurta." msgstr "Rishikoni CV-në tuaj me një përshkrim pune dhe më bëni pyetje përpara se të ndryshoni seksionet e pasigurta."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Shqyrto këtë modifikim"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Ripërpunoni përmbledhjen në mënyrë që të synojë një rol të menaxherit të lartë të inxhinierisë pa tingëlluar si i përgjithshëm." msgstr "Ripërpunoni përmbledhjen në mënyrë që të synojë një rol të menaxherit të lartë të inxhinierisë pa tingëlluar si i përgjithshëm."
@@ -3798,6 +3862,10 @@ msgstr "Rrotullimi"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Ekzekutoni analizën tuaj të parë për të marrë një kartë rezultatesh, pikat e forta dhe sugjerime të prioritizuara." msgstr "Ekzekutoni analizën tuaj të parë për të marrë një kartë rezultatesh, pikat e forta dhe sugjerime të prioritizuara."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Duke u ekzekutuar…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rusisht" msgstr "Rusisht"
@@ -4253,6 +4321,15 @@ msgstr "Burimi"
msgid "Source Code" msgid "Source Code"
msgstr "Kodi burim" msgstr "Kodi burim"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Burimi: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Burimet"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Hapësira (Horizontale)" msgstr "Hapësira (Horizontale)"
@@ -4604,6 +4681,10 @@ msgstr "Ky asistent nuk mund të hapej."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Kjo datë nuk do të lexohet saktë”." msgstr "Kjo datë nuk do të lexohet saktë”."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Kësaj kërkese për redaktim nuk mund t'i përgjigjeni më."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Kjo adresë emaili nuk do të njihet." msgstr "Kjo adresë emaili nuk do të njihet."
@@ -4712,6 +4793,10 @@ msgstr "Kjo do t'ju ndihmojë ta identifikoni më vonë, nëse planifikoni të k
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Kjo do të heqë të gjitha artikujt nga ky seksion." msgstr "Kjo do të heqë të gjitha artikujt nga ky seksion."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Kjo do ta rikthejë këtë patch dhe të gjitha patch-et e aplikuara pas tij."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Aktivizo shiritin anësor të djathtë"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Aktivizo/çaktivizo temat" msgstr "Aktivizo/çaktivizo temat"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokenë: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokenë: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokenë: {total} ({cached} në cache)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Ndiqni një punë për të cilën po aplikoni dhe lidhni CV-në që keni dërguar." msgstr "Ndiqni një punë për të cilën po aplikoni dhe lidhni CV-në që keni dërguar."
@@ -5213,6 +5310,10 @@ msgstr "Nuk mundëm ta zbulonim formatin automatikisht — ju lutemi zgjidhni at
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Nuk mundëm ta gjenim atë faqe" msgstr "Nuk mundëm ta gjenim atë faqe"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Kërkim në internet"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zvogëlo"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Пријављено"
msgid "Applied on" msgid "Applied on"
msgstr "Примењено на" msgstr "Примењено на"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Одобри"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Одобрено — чека се агент…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арапски" msgstr "Арапски"
@@ -1462,6 +1470,14 @@ msgstr "Брисање вашег API кључа..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Брисање вашег резимеа..." msgstr "Брисање вашег резимеа..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Одбијено — чека се агент…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Одбиј"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Опишите шта сте урадили како би унос допринео кључним речима за подударање." msgstr "Опишите шта сте урадили како би унос допринео кључним речима за подударање."
@@ -1530,6 +1546,10 @@ msgstr "Донирајте"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Донирајте Реактивном Резимеу" msgstr "Донирајте Реактивном Резимеу"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Готово"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Уређивати садржај у режиму пуног екран
msgid "Edit date" msgid "Edit date"
msgstr "Уреди датум" msgstr "Уреди датум"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Измена одбијена"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Експортујте свој животопис у ПДФ одмах,
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Извезен пипелине-флов.пнг" msgstr "Извезен пипелине-флов.пнг"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Неуспешно"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Није успело да анализира резиме." msgstr "Није успело да анализира резиме."
@@ -1967,6 +1995,10 @@ msgstr "Није успело да се уклони провајдер. Мол
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Ажурирање добављача није успело." msgstr "Ажурирање добављача није успело."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Није могуће ажурирати подешавања нити."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "Отворени рутер"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "отвара се у новом језичку" msgstr "отвара се у новом језичку"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Опциона напомена за агента"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Опциона напомена за агента…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Опционално подесите лозинку тако да само особе са лозинком могу да виде ваш резиме путем везе." msgstr "Опционално подесите лозинку тако да само особе са лозинком могу да виде ваш резиме путем везе."
@@ -3499,6 +3539,10 @@ msgstr "Публикације"
msgid "Publisher" msgid "Publisher"
msgstr "Издавач" msgstr "Издавач"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Сирови JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Ре-сцоре" msgstr "Ре-сцоре"
@@ -3546,10 +3590,18 @@ msgstr "Реактивни резиме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Реактивни резиме v4 (JSON)" msgstr "Реактивни резиме v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Прочитан прилог"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Прочитајте водич за примену прилагођених стилова." msgstr "Прочитајте водич за примену прилагођених стилова."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Прочитан животопис"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Читање огласа…" msgstr "Читање огласа…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Врати" msgstr "Врати"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Врати животопис на стање пре ове закрпе? Ово ће вратити ову закрпу и све закрпе примењене након ње." msgstr "Вратити животопис на стање пре ове закрпе?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Анализа резимеа је завршена."
msgid "Resume content" msgid "Resume content"
msgstr "Садржај резимеа" msgstr "Садржај резимеа"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Измена животописа"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Датотека резимеа" msgstr "Датотека резимеа"
@@ -3754,10 +3810,18 @@ msgstr "Резимеи"
msgid "Retry" msgid "Retry"
msgstr "Покушај поново" msgstr "Покушај поново"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Прегледај измене"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Упоредите биографију са описом посла и поставите ми питања пре него што измените несигурне делове." msgstr "Упоредите биографију са описом посла и поставите ми питања пре него што измените несигурне делове."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Прегледај ову измену"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Прерадите резиме тако да циља на позицију вишег инжењерског менаџера, а да притом не звучи генерички." msgstr "Прерадите резиме тако да циља на позицију вишег инжењерског менаџера, а да притом не звучи генерички."
@@ -3798,6 +3862,10 @@ msgstr "Ротација"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Покрените прву анализу да бисте добили контролну таблу, снаге и приоритезоване предлоге." msgstr "Покрените прву анализу да бисте добили контролну таблу, снаге и приоритезоване предлоге."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "У току…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Руски" msgstr "Руски"
@@ -4253,6 +4321,15 @@ msgstr "Извор"
msgid "Source Code" msgid "Source Code"
msgstr "Изворни код" msgstr "Изворни код"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Извор: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Извори"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Размак (хоризонтални)" msgstr "Размак (хоризонтални)"
@@ -4604,6 +4681,10 @@ msgstr "Овај помоћник није могао бити отворен."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Овај датум неће бити правилно прочитан“." msgstr "Овај датум неће бити правилно прочитан“."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "На овај захтев за измену више није могуће одговорити."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Ова адреса е-поште неће бити препозната." msgstr "Ова адреса е-поште неће бити препозната."
@@ -4712,6 +4793,10 @@ msgstr "Ово ће вам помоћи да га касније идентиф
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Ово ће уклонити све ставке из овог одељка." msgstr "Ово ће уклонити све ставке из овог одељка."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Ово ће поништити ову закрпу и све закрпе примењене после ње."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Пребаци десну бочну траку"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Укључи/искључи нити" msgstr "Укључи/искључи нити"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Токени: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Токени: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Токени: {total} ({cached} кеширано)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Пратите посао за који се пријављујете и повежите животопис који сте послали." msgstr "Пратите посао за који се пријављујете и повежите животопис који сте послали."
@@ -5213,6 +5310,10 @@ msgstr "Нисмо могли аутоматски да детектујемо
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Нисмо могли да пронађемо ту страницу" msgstr "Нисмо могли да пронађемо ту страницу"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Веб претрага"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Умањи"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулу" msgstr "Зулу"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Ansökt"
msgid "Applied on" msgid "Applied on"
msgstr "Tillämpas på" msgstr "Tillämpas på"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Godkänn"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Godkänt — väntar på agenten…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arabiska" msgstr "Arabiska"
@@ -1462,6 +1470,14 @@ msgstr "Raderar din API-nyckel..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Raderar ditt CV..." msgstr "Raderar ditt CV..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Nekat — väntar på agenten…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Neka"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Beskriv vad du gjorde så att posten bidrar med sökord för matchning." msgstr "Beskriv vad du gjorde så att posten bidrar med sökord för matchning."
@@ -1530,6 +1546,10 @@ msgstr "Donera"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Donera till Reactive Resume" msgstr "Donera till Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Klart"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Redigera innehåll i helskärmsläge"
msgid "Edit date" msgid "Edit date"
msgstr "Redigera datum" msgstr "Redigera datum"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Redigering avböjd"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Exportera ditt CV till PDF direkt, utan väntetid eller förseningar."
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Exporterad pipeline-flow.png" msgstr "Exporterad pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Misslyckades"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Misslyckades med att analysera CV." msgstr "Misslyckades med att analysera CV."
@@ -1967,6 +1995,10 @@ msgstr "Misslyckades med att koppla bort leverantören. Vänligen försök igen.
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Misslyckades med att uppdatera leverantören." msgstr "Misslyckades med att uppdatera leverantören."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Det gick inte att uppdatera trådinställningarna."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "öppnas i ny flik" msgstr "öppnas i ny flik"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Valfri anteckning till agenten"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Valfri anteckning till agenten…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Valfritt kan du ange ett lösenord så att endast personer med lösenordet kan visa ditt CV via länken." msgstr "Valfritt kan du ange ett lösenord så att endast personer med lösenordet kan visa ditt CV via länken."
@@ -3499,6 +3539,10 @@ msgstr "Publikationer"
msgid "Publisher" msgid "Publisher"
msgstr "Utgivare" msgstr "Utgivare"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Rå JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Gör om poäng" msgstr "Gör om poäng"
@@ -3546,10 +3590,18 @@ msgstr "Reaktivt CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivt CV v4 (JSON)" msgstr "Reaktivt CV v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Läste en bilaga"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Läs guiden för att tillämpa anpassade stilar." msgstr "Läs guiden för att tillämpa anpassade stilar."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Läste CV:t"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Läser annonsen…" msgstr "Läser annonsen…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Återställa" msgstr "Återställa"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Återställa CV:t till före den här patchen? Detta kommer att återställa den här patchen och alla patchar som installerats efter den." msgstr "Återställ CV:t till innan den här patchen?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "CV-analysen är klar."
msgid "Resume content" msgid "Resume content"
msgstr "CV-innehåll" msgstr "CV-innehåll"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "CV-redigering"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "CV-fil" msgstr "CV-fil"
@@ -3754,10 +3810,18 @@ msgstr "CV"
msgid "Retry" msgid "Retry"
msgstr "Försöka igen" msgstr "Försöka igen"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Granska redigeringar"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Granska CV:t mot en arbetsbeskrivning och ställ frågor till mig innan du ändrar osäkra avsnitt." msgstr "Granska CV:t mot en arbetsbeskrivning och ställ frågor till mig innan du ändrar osäkra avsnitt."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Granska den här redigeringen"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Omarbeta sammanfattningen så att den riktar sig till en roll som senior teknisk chef utan att låta generisk." msgstr "Omarbeta sammanfattningen så att den riktar sig till en roll som senior teknisk chef utan att låta generisk."
@@ -3798,6 +3862,10 @@ msgstr "Rotation"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Kör din första analys för att få ett scorecard, styrkor och prioriterade förslag." msgstr "Kör din första analys för att få ett scorecard, styrkor och prioriterade förslag."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Körs…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Ryska" msgstr "Ryska"
@@ -4253,6 +4321,15 @@ msgstr "Källa"
msgid "Source Code" msgid "Source Code"
msgstr "Källkod" msgstr "Källkod"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Källa: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Källor"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Mellanrum (horisontellt)" msgstr "Mellanrum (horisontellt)"
@@ -4604,6 +4681,10 @@ msgstr "Den här assistenten kunde inte öppnas."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Detta datum kommer inte att läsas korrekt." msgstr "Detta datum kommer inte att läsas korrekt."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Den här redigeringsförfrågan kan inte längre besvaras."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Denna e-postadress kommer inte att kännas igen." msgstr "Denna e-postadress kommer inte att kännas igen."
@@ -4712,6 +4793,10 @@ msgstr "Detta hjälper dig att identifiera den senare, om du planerar att ha fle
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Detta kommer att ta bort alla objekt från detta avsnitt." msgstr "Detta kommer att ta bort alla objekt från detta avsnitt."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Detta rullar tillbaka den här patchen och alla patchar som tillämpats efter den."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Växla höger sidofält"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Växla trådar" msgstr "Växla trådar"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokens: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokens: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokens: {total} ({cached} cachade)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Spåra ett jobb du ansöker till och länka det CV du skickade." msgstr "Spåra ett jobb du ansöker till och länka det CV du skickade."
@@ -5213,6 +5310,10 @@ msgstr "Vi kunde inte identifiera formatet automatiskt — vänligen välj det o
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Vi kunde inte hitta den sidan" msgstr "Vi kunde inte hitta den sidan"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Webbsökning"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Zooma ut"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "விண்ணப்பிக்கப்பட்டது"
msgid "Applied on" msgid "Applied on"
msgstr "அன்று விண்ணப்பித்தது" msgstr "அன்று விண்ணப்பித்தது"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "அங்கீகரி"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "அங்கீகரிக்கப்பட்டது — ஏஜென்டுக்காகக் காத்திருக்கிறது…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "அரபிக்" msgstr "அரபிக்"
@@ -1462,6 +1470,14 @@ msgstr "உங்கள் API விசையை நீக்கிக் க
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "உங்கள் ரெஸ்யூமியை நீக்கிக் கொண்டிருக்கிறது..." msgstr "உங்கள் ரெஸ்யூமியை நீக்கிக் கொண்டிருக்கிறது..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "நிராகரிக்கப்பட்டது — ஏஜென்டுக்காகக் காத்திருக்கிறது…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "நிராகரி"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "நீங்கள் என்ன செய்தீர்கள் என்பதை விவரிக்கவும்." msgstr "நீங்கள் என்ன செய்தீர்கள் என்பதை விவரிக்கவும்."
@@ -1530,6 +1546,10 @@ msgstr "நன்கொடை அளிக்கவும்"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume-க்கு நன்கொடை அளிக்கவும்" msgstr "Reactive Resume-க்கு நன்கொடை அளிக்கவும்"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "முடிந்தது"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "முழுத்திரை பயன்முறையில் உ
msgid "Edit date" msgid "Edit date"
msgstr "தேதியைத் திருத்து" msgstr "தேதியைத் திருத்து"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "திருத்தம் நிராகரிக்கப்பட்டது"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "உங்கள் சுயவிவரத்தை எந்தவி
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "ஏற்றுமதி செய்யப்பட்ட குழாய்-ஓட்டம்.png" msgstr "ஏற்றுமதி செய்யப்பட்ட குழாய்-ஓட்டம்.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "தோல்வியடைந்தது"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "வாழ்க்கை வரலாற்றை பகுப்பாய்வு செய்யத் தவறியது." msgstr "வாழ்க்கை வரலாற்றை பகுப்பாய்வு செய்யத் தவறியது."
@@ -1967,6 +1995,10 @@ msgstr "செயலியைத் துண்டிக்கத் தவற
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "வழங்குநரைப் புதுப்பிக்க முடியவில்லை." msgstr "வழங்குநரைப் புதுப்பிக்க முடியவில்லை."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "த்ரெட் அமைப்புகளைப் புதுப்பிக்க முடியவில்லை."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ஓப்பன்ரவுட்டர்"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "புதிய தாவலில் திறக்கிறது" msgstr "புதிய தாவலில் திறக்கிறது"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ஏஜென்டுக்கான விருப்பக் குறிப்பு"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ஏஜென்டுக்கான விருப்பக் குறிப்பு…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "விருப்பமாக, ஒரு கடவுச்சொல்லை அமைக்கலாம்; அப்போது அந்த கடவுச்சொல்லை தெரிந்தவர்களுக்கே இணைப்பின் மூலம் உங்கள் ரெஸ்யூமியைப் பார்க்க முடியும்." msgstr "விருப்பமாக, ஒரு கடவுச்சொல்லை அமைக்கலாம்; அப்போது அந்த கடவுச்சொல்லை தெரிந்தவர்களுக்கே இணைப்பின் மூலம் உங்கள் ரெஸ்யூமியைப் பார்க்க முடியும்."
@@ -3499,6 +3539,10 @@ msgstr "வெளியீடுகள்"
msgid "Publisher" msgid "Publisher"
msgstr "பதிப்பாளர்" msgstr "பதிப்பாளர்"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "மூல JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "மீண்டும் மதிப்பெண்" msgstr "மீண்டும் மதிப்பெண்"
@@ -3546,10 +3590,18 @@ msgstr "ரியாக்டிவ் ரெஸ்யூம் v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "எதிர்வினை ரெஸ்யூம் v4 (ஜேசன்)" msgstr "எதிர்வினை ரெஸ்யூம் v4 (ஜேசன்)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "ஒரு இணைப்பைப் படித்தது"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "தனிப்பயன் பாணிகளைப் பயன்படுத்துதல் வழிகாட்டியைப் படிக்கவும்." msgstr "தனிப்பயன் பாணிகளைப் பயன்படுத்துதல் வழிகாட்டியைப் படிக்கவும்."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "சுயவிவரத்தைப் படித்தது"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "அறிவிப்பைப் படிக்கிறது…" msgstr "அறிவிப்பைப் படிக்கிறது…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "மீட்டெடு" msgstr "மீட்டெடு"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "இந்தப் பேட்ச்சிற்கு முந்தைய நிலைக்கு மீட்டமைப்பதா? இது இந்தப் பேட்ச்சையும், இதற்குப் பிறகு செயல்படுத்தப்பட்ட பேட்ச்கள் அனைத்தையும் பின்னோக்கிச் செலுத்தும்." msgstr "இந்தப் பேட்ச்சுக்கு முந்தைய நிலைக்கு சுயவிவரத்தை மீட்டெடுக்கவா?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "விண்ணப்பப் பகுப்பாய்வு நி
msgid "Resume content" msgid "Resume content"
msgstr "சுயவிவர உள்ளடக்கம்" msgstr "சுயவிவர உள்ளடக்கம்"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "சுயவிவரத் திருத்தம்"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "ரெஸ்யூம் கோப்பு" msgstr "ரெஸ்யூம் கோப்பு"
@@ -3754,10 +3810,18 @@ msgstr "ரெஸ்யூமிகள்"
msgid "Retry" msgid "Retry"
msgstr "மீண்டும் முயற்சிக்கவும்" msgstr "மீண்டும் முயற்சிக்கவும்"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "திருத்தங்களை மதிப்பாய்வு செய்"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "பணி விவரத்துடன் சுயவிவரத்தை ஒப்பிட்டுப் பார்த்து, உறுதியற்ற பகுதிகளை மாற்றுவதற்கு முன் என்னிடம் கேள்விகளைக் கேளுங்கள்." msgstr "பணி விவரத்துடன் சுயவிவரத்தை ஒப்பிட்டுப் பார்த்து, உறுதியற்ற பகுதிகளை மாற்றுவதற்கு முன் என்னிடம் கேள்விகளைக் கேளுங்கள்."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "இந்தத் திருத்தத்தை மதிப்பாய்வு செய்"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "பொதுவானதாகத் தோன்றாமல், மூத்த பொறியியல் மேலாளர் பதவியைக் குறிவைக்கும் வகையில் சுருக்கத்தை மாற்றி அமைக்கவும்." msgstr "பொதுவானதாகத் தோன்றாமல், மூத்த பொறியியல் மேலாளர் பதவியைக் குறிவைக்கும் வகையில் சுருக்கத்தை மாற்றி அமைக்கவும்."
@@ -3798,6 +3862,10 @@ msgstr "சுழற்சி"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "மதிப்பெண் அட்டை, பலங்கள் மற்றும் முன்னுரிமைப்படுத்தப்பட்ட பரிந்துரைகளைப் பெற உங்கள் முதல் பகுப்பாய்வை இயக்கவும்." msgstr "மதிப்பெண் அட்டை, பலங்கள் மற்றும் முன்னுரிமைப்படுத்தப்பட்ட பரிந்துரைகளைப் பெற உங்கள் முதல் பகுப்பாய்வை இயக்கவும்."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "இயங்குகிறது…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "ரஷ்யன்" msgstr "ரஷ்யன்"
@@ -4253,6 +4321,15 @@ msgstr "ஆதாரம்"
msgid "Source Code" msgid "Source Code"
msgstr "மூல குறியீடு" msgstr "மூல குறியீடு"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "மூலம்: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "ஆதாரங்கள்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "இடைவெளி (கிடைமட்ட)" msgstr "இடைவெளி (கிடைமட்ட)"
@@ -4604,6 +4681,10 @@ msgstr "இந்த உதவியாளரைத் திறக்க மு
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "இந்த தேதி சரியாக படிக்கப்படாது." msgstr "இந்த தேதி சரியாக படிக்கப்படாது."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "இந்தத் திருத்தக் கோரிக்கைக்கு இனி பதிலளிக்க முடியாது."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "இந்த மின்னஞ்சல் முகவரி அங்கீகரிக்கப்படாது." msgstr "இந்த மின்னஞ்சல் முகவரி அங்கீகரிக்கப்படாது."
@@ -4712,6 +4793,10 @@ msgstr "நீங்கள் பல பாஸ்கீகளை வைத்த
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "இது இந்தப் பிரிவிலிருந்து அனைத்துப் பொருட்களையும் நீக்கும்." msgstr "இது இந்தப் பிரிவிலிருந்து அனைத்துப் பொருட்களையும் நீக்கும்."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "இது இந்தப் பேட்ச்சையும் அதன் பிறகு பயன்படுத்தப்பட்ட அனைத்துப் பேட்ச்களையும் திரும்பப் பெறும்."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "வலது பக்கப் பட்டை மாற்று"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "இழைகளை நிலைமாற்று" msgstr "இழைகளை நிலைமாற்று"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "டோக்கன்கள்: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "டோக்கன்கள்: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "டோக்கன்கள்: {total} ({cached} கேச் செய்யப்பட்டவை)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "நீங்கள் விண்ணப்பிக்கும் வேலையைக் கண்காணித்து, நீங்கள் அனுப்பிய விண்ணப்பத்தை இணைக்கவும்." msgstr "நீங்கள் விண்ணப்பிக்கும் வேலையைக் கண்காணித்து, நீங்கள் அனுப்பிய விண்ணப்பத்தை இணைக்கவும்."
@@ -5213,6 +5310,10 @@ msgstr "எங்களால் வடிவமைப்பைத் தான
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "எங்களால் அந்தப் பக்கத்தைக் கண்டுபிடிக்க முடியவில்லை." msgstr "எங்களால் அந்தப் பக்கத்தைக் கண்டுபிடிக்க முடியவில்லை."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "இணையத் தேடல்"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "சிறிதாக்கு"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ஜூலு" msgstr "ஜூலு"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "దరఖాస్తు చేశారు"
msgid "Applied on" msgid "Applied on"
msgstr "దరఖాస్తు చేసిన తేదీ" msgstr "దరఖాస్తు చేసిన తేదీ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "ఆమోదించు"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "ఆమోదించబడింది — ఏజెంట్ కోసం వేచి ఉంది…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "అరబిక్" msgstr "అరబిక్"
@@ -1462,6 +1470,14 @@ msgstr "మీ API కీ తొలగించబడుతోంది..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "మీ రిజ్యూమ్‌ను తొలగిస్తున్నారు..." msgstr "మీ రిజ్యూమ్‌ను తొలగిస్తున్నారు..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "తిరస్కరించబడింది — ఏజెంట్ కోసం వేచి ఉంది…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "తిరస్కరించు"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "మీరు ఏమి చేశారో వివరించండి, తద్వారా నమోదు సరిపోలిక కోసం కీలకపదాలను అందిస్తుంది." msgstr "మీరు ఏమి చేశారో వివరించండి, తద్వారా నమోదు సరిపోలిక కోసం కీలకపదాలను అందిస్తుంది."
@@ -1530,6 +1546,10 @@ msgstr "విరాళం ఇవ్వండి"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume కు దానం చేయండి" msgstr "Reactive Resume కు దానం చేయండి"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "పూర్తయింది"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "ఫుల్‌స్క్రీన్ మోడ్‌లో కంట
msgid "Edit date" msgid "Edit date"
msgstr "తేదీని సవరించండి" msgstr "తేదీని సవరించండి"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "సవరణ తిరస్కరించబడింది"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "ఎటువంటి నిరీక్షణ లేదా ఆలస్
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png ఎగుమతి చేయబడింది" msgstr "pipeline-flow.png ఎగుమతి చేయబడింది"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "విఫలమైంది"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "రిజ్యూమ్‌ను విశ్లేషించడంలో విఫలమయ్యాము." msgstr "రిజ్యూమ్‌ను విశ్లేషించడంలో విఫలమయ్యాము."
@@ -1967,6 +1995,10 @@ msgstr "ప్రొవైడర్‌ను అన్‌లింక్ చే
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "ప్రొవైడర్‌ను అప్‌డేట్ చేయడంలో విఫలమైంది." msgstr "ప్రొవైడర్‌ను అప్‌డేట్ చేయడంలో విఫలమైంది."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "థ్రెడ్ సెట్టింగ్‌లను నవీకరించడంలో విఫలమైంది."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "ఓపెన్‌రౌటర్"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "కొత్త ట్యాబ్‌లో తెరవబడుతుంది" msgstr "కొత్త ట్యాబ్‌లో తెరవబడుతుంది"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "ఏజెంట్ కోసం ఐచ్ఛిక గమనిక"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "ఏజెంట్ కోసం ఐచ్ఛిక గమనిక…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ఆప్షనల్‌గా, పాస్‌వర్డ్ సెట్ చేయండి, అప్పుడు పాస్‌వర్డ్ ఉన్నవారు మాత్రమే లింక్ ద్వారా మీ రిజ్యూమ్‌ను చూడగలుగుతారు." msgstr "ఆప్షనల్‌గా, పాస్‌వర్డ్ సెట్ చేయండి, అప్పుడు పాస్‌వర్డ్ ఉన్నవారు మాత్రమే లింక్ ద్వారా మీ రిజ్యూమ్‌ను చూడగలుగుతారు."
@@ -3499,6 +3539,10 @@ msgstr "పబ్లికేషన్స్"
msgid "Publisher" msgid "Publisher"
msgstr "పబ్లిషర్" msgstr "పబ్లిషర్"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "ముడి JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "మళ్లీ స్కోర్ చేయండి" msgstr "మళ్లీ స్కోర్ చేయండి"
@@ -3546,10 +3590,18 @@ msgstr "రియాక్టివ్ రెజ్యూమ్ v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "రియాక్టివ్ రెజ్యూమ్ v4 (JSON)" msgstr "రియాక్టివ్ రెజ్యూమ్ v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "అటాచ్‌మెంట్‌ను చదివింది"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "కస్టమ్ స్టైల్స్ వర్తింపజేయడం గైడ్‌ను చదవండి." msgstr "కస్టమ్ స్టైల్స్ వర్తింపజేయడం గైడ్‌ను చదవండి."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "రెజ్యూమెను చదివింది"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "పోస్టింగ్‌ను చదువుతోంది…" msgstr "పోస్టింగ్‌ను చదువుతోంది…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "పునరుద్ధరించండి" msgstr "పునరుద్ధరించండి"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "ఈ ప్యాచ్‌కు ముందు స్థితికి రె్యూమ్‌ను పునరుద్ధరించాలా? ఇది ఈ ప్యాచ్‌ను మరియు దాని తర్వాత వర్తింపజేసిన ఏవైనా ప్యాచ్‌లను వెనక్కి తీసుకుంటుంది." msgstr "ఈ ప్యాచ్‌కు ముందు స్థితికి రె్యూమను పునరుద్ధరించాలా?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "రిజ్యూమ్ విశ్లేషణ పూర్తయి
msgid "Resume content" msgid "Resume content"
msgstr "పునఃప్రారంభ కంటెంట్" msgstr "పునఃప్రారంభ కంటెంట్"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "రెజ్యూమె సవరణ"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "రెజ్యూమే ఫైల్" msgstr "రెజ్యూమే ఫైల్"
@@ -3754,10 +3810,18 @@ msgstr "రిజ్యూమ్స్"
msgid "Retry" msgid "Retry"
msgstr "మళ్ళీ ప్రయత్నించండి" msgstr "మళ్ళీ ప్రయత్నించండి"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "సవరణలను సమీక్షించండి"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "ఉద్యోగ వివరణతో రెజ్యూమెను సరిపోల్చి చూసుకోండి మరియు సందేహాస్పదమైన విభాగాలలో మార్పులు చేసే ముందు నన్ను ప్రశ్నలు అడగండి." msgstr "ఉద్యోగ వివరణతో రెజ్యూమెను సరిపోల్చి చూసుకోండి మరియు సందేహాస్పదమైన విభాగాలలో మార్పులు చేసే ముందు నన్ను ప్రశ్నలు అడగండి."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ఈ సవరణను సమీక్షించండి"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "సారాంశాన్ని సాధారణంగా అనిపించకుండా, సీనియర్ ఇంజనీరింగ్ మేనేజర్ పాత్రను లక్ష్యంగా చేసుకునే విధంగా తిరిగి రూపొందించండి." msgstr "సారాంశాన్ని సాధారణంగా అనిపించకుండా, సీనియర్ ఇంజనీరింగ్ మేనేజర్ పాత్రను లక్ష్యంగా చేసుకునే విధంగా తిరిగి రూపొందించండి."
@@ -3798,6 +3862,10 @@ msgstr "రోటేషన్"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "స్కోర్‌కార్డ్, బలాలు మరియు ప్రాధాన్యతా సూచనలను పొందడానికి మీ మొదటి విశ్లేషణను అమలు చేయండి." msgstr "స్కోర్‌కార్డ్, బలాలు మరియు ప్రాధాన్యతా సూచనలను పొందడానికి మీ మొదటి విశ్లేషణను అమలు చేయండి."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "అమలవుతోంది…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "రష్యన్" msgstr "రష్యన్"
@@ -4253,6 +4321,15 @@ msgstr "మూలం"
msgid "Source Code" msgid "Source Code"
msgstr "సోర్స్ కోడ్" msgstr "సోర్స్ కోడ్"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "మూలం: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "మూలాలు"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "స్పేసింగ్ (అడ్డంగా)" msgstr "స్పేసింగ్ (అడ్డంగా)"
@@ -4604,6 +4681,10 @@ msgstr "ఈ సహాయకుడిని తెరవలేకపోయిం
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "ఈ తేదీ సరిగ్గా చదవబడదు." msgstr "ఈ తేదీ సరిగ్గా చదవబడదు."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "ఈ సవరణ అభ్యర్థనకు ఇకపై సమాధానం ఇవ్వడం సాధ్యం కాదు."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "ఈ ఇమెయిల్ చిరునామా గుర్తించబడదు." msgstr "ఈ ఇమెయిల్ చిరునామా గుర్తించబడదు."
@@ -4712,6 +4793,10 @@ msgstr "మీరు బహుళ పాస్‌కీలను కలిగి
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "ఇది ఈ విభాగంలోని అన్ని అంశాలను తొలగిస్తుంది." msgstr "ఇది ఈ విభాగంలోని అన్ని అంశాలను తొలగిస్తుంది."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "ఇది ఈ ప్యాచ్‌ను, దాని తర్వాత వర్తింపజేసిన అన్ని ప్యాచ్‌లను వెనక్కి తీసుకుంటుంది."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "కుడి వైపు పక్క పట్టీని టోగ
msgid "Toggle threads" msgid "Toggle threads"
msgstr "థ్రెడ్‌లను టోగుల్ చేయండి" msgstr "థ్రెడ్‌లను టోగుల్ చేయండి"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "టోకెన్లు: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "టోకెన్లు: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "టోకెన్లు: {total} ({cached} కాష్ చేయబడినవి)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "మీరు దరఖాస్తు చేస్తున్న ఉద్యోగాన్ని ట్రాక్ చేసి, పంపిన రెజ్యూమ్‌ను లింక్ చేయండి." msgstr "మీరు దరఖాస్తు చేస్తున్న ఉద్యోగాన్ని ట్రాక్ చేసి, పంపిన రెజ్యూమ్‌ను లింక్ చేయండి."
@@ -5213,6 +5310,10 @@ msgstr "మేము ఫార్మాట్‌ను స్వయంచాల
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "మేము ఆ పేజీని కనుగొనలేకపోయాము" msgstr "మేము ఆ పేజీని కనుగొనలేకపోయాము"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "వెబ్ శోధన"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "జూమ్ అవుట్ చేయండి"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "జులు" msgstr "జులు"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "สมัครแล้ว"
msgid "Applied on" msgid "Applied on"
msgstr "สมัครเมื่อ" msgstr "สมัครเมื่อ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "อนุมัติ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "อนุมัติแล้ว — กำลังรอตัวแทน…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "อารบิก" msgstr "อารบิก"
@@ -1462,6 +1470,14 @@ msgstr "กำลังลบคีย์ API ของคุณ..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "กำลังลบเรซูเม่ของคุณ..." msgstr "กำลังลบเรซูเม่ของคุณ..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "ปฏิเสธแล้ว — กำลังรอตัวแทน…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "ปฏิเสธ"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "อธิบายสิ่งที่คุณทำเพื่อให้รายการมีส่วนช่วยในการจับคู่คำหลัก" msgstr "อธิบายสิ่งที่คุณทำเพื่อให้รายการมีส่วนช่วยในการจับคู่คำหลัก"
@@ -1530,6 +1546,10 @@ msgstr "บริจาค"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "บริจาคให้กับ Reactive Resume" msgstr "บริจาคให้กับ Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "เสร็จสิ้น"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "แก้ไขเนื้อหาในโหมดเต็มหน
msgid "Edit date" msgid "Edit date"
msgstr "แก้ไขวันที่" msgstr "แก้ไขวันที่"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "การแก้ไขถูกปฏิเสธ"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "ส่งออกเรซูเม่ของคุณเป็นไ
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "ส่งออก pipeline-flow.png แล้ว" msgstr "ส่งออก pipeline-flow.png แล้ว"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "ล้มเหลว"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "ไม่สามารถวิเคราะห์ประวัติการทำงานได้" msgstr "ไม่สามารถวิเคราะห์ประวัติการทำงานได้"
@@ -1967,6 +1995,10 @@ msgstr "ไม่สามารถยกเลิกการเชื่อม
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "ไม่สามารถอัปเดตผู้ให้บริการได้" msgstr "ไม่สามารถอัปเดตผู้ให้บริการได้"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "ไม่สามารถอัปเดตการตั้งค่ากระทู้ได้"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "โอเพ่นรูเตอร์"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "เปิดในแท็บใหม่" msgstr "เปิดในแท็บใหม่"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "หมายเหตุถึงตัวแทน (ไม่บังคับ)"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "หมายเหตุถึงตัวแทน (ไม่บังคับ)…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "คุณสามารถตั้งรหัสผ่านเพิ่มเติมได้ เพื่อให้เฉพาะผู้ที่มีรหัสผ่านจึงจะดูเรซูเม่ของคุณผ่านลิงก์ได้" msgstr "คุณสามารถตั้งรหัสผ่านเพิ่มเติมได้ เพื่อให้เฉพาะผู้ที่มีรหัสผ่านจึงจะดูเรซูเม่ของคุณผ่านลิงก์ได้"
@@ -3499,6 +3539,10 @@ msgstr "สิ่งตีพิมพ์"
msgid "Publisher" msgid "Publisher"
msgstr "สำนักพิมพ์" msgstr "สำนักพิมพ์"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON ดิบ"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "ให้คะแนนใหม่" msgstr "ให้คะแนนใหม่"
@@ -3546,10 +3590,18 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "เรแอคทีฟ เรซูเม่ v4 (JSON)" msgstr "เรแอคทีฟ เรซูเม่ v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "อ่านไฟล์แนบแล้ว"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "โปรดอ่านคู่มือการใช้สไตล์ที่กำหนดเอง" msgstr "โปรดอ่านคู่มือการใช้สไตล์ที่กำหนดเอง"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "อ่านเรซูเม่แล้ว"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "กำลังอ่านประกาศ…" msgstr "กำลังอ่านประกาศ…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "คืนค่า" msgstr "คืนค่า"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "กู้คืนสถานะก่อนการติดตั้งแพทช์นี้หรือไม่? การดำเนินการนี้จะย้อนกลับแพทช์นี้และแพทช์ใดๆ ที่ติดตั้งหลังจากนั้น" msgstr "กู้คืนเรซูเม่กลับไปเป็นสถานะก่อนแพทช์นี้หรือไม่?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "การวิเคราะห์ประวัติย่อเส
msgid "Resume content" msgid "Resume content"
msgstr "เนื้อหาประวัติย่อ" msgstr "เนื้อหาประวัติย่อ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "การแก้ไขเรซูเม่"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "ไฟล์เรซูเม่" msgstr "ไฟล์เรซูเม่"
@@ -3754,10 +3810,18 @@ msgstr "เรซูเม่"
msgid "Retry" msgid "Retry"
msgstr "ลองใหม่อีกครั้ง" msgstr "ลองใหม่อีกครั้ง"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "ตรวจสอบการแก้ไข"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "โปรดตรวจสอบประวัติการทำงานของคุณเทียบกับรายละเอียดงาน และสอบถามฉันได้ก่อนที่จะแก้ไขส่วนใดส่วนหนึ่งที่ไม่แน่ใจ" msgstr "โปรดตรวจสอบประวัติการทำงานของคุณเทียบกับรายละเอียดงาน และสอบถามฉันได้ก่อนที่จะแก้ไขส่วนใดส่วนหนึ่งที่ไม่แน่ใจ"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "ตรวจสอบการแก้ไขนี้"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "ปรับปรุงบทสรุปให้เหมาะสมกับตำแหน่งผู้จัดการฝ่ายวิศวกรรมอาวุโสโดยไม่ให้ฟังดูทั่วไปเกินไป" msgstr "ปรับปรุงบทสรุปให้เหมาะสมกับตำแหน่งผู้จัดการฝ่ายวิศวกรรมอาวุโสโดยไม่ให้ฟังดูทั่วไปเกินไป"
@@ -3798,6 +3862,10 @@ msgstr "การหมุน"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ดำเนินการวิเคราะห์ครั้งแรกของคุณเพื่อรับสกอร์การ์ด จุดแข็ง และข้อเสนอแนะที่จัดลำดับความสำคัญ" msgstr "ดำเนินการวิเคราะห์ครั้งแรกของคุณเพื่อรับสกอร์การ์ด จุดแข็ง และข้อเสนอแนะที่จัดลำดับความสำคัญ"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "กำลังทำงาน…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "รัสเซีย" msgstr "รัสเซีย"
@@ -4253,6 +4321,15 @@ msgstr "แหล่งที่มา"
msgid "Source Code" msgid "Source Code"
msgstr "ซอร์สโค้ด" msgstr "ซอร์สโค้ด"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "แหล่งที่มา: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "แหล่งที่มา"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "ระยะห่าง (แนวนอน)" msgstr "ระยะห่าง (แนวนอน)"
@@ -4604,6 +4681,10 @@ msgstr "ไม่สามารถเปิดผู้ช่วยนี้ไ
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "วันที่นี้จะอ่านไม่ถูกต้อง" msgstr "วันที่นี้จะอ่านไม่ถูกต้อง"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "คำขอแก้ไขนี้ไม่สามารถตอบกลับได้อีกต่อไป"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "ที่อยู่อีเมลนี้จะไม่ถูกจดจำ" msgstr "ที่อยู่อีเมลนี้จะไม่ถูกจดจำ"
@@ -4712,6 +4793,10 @@ msgstr "สิ่งนี้จะช่วยให้คุณระบุไ
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "นี่จะลบรายการทั้งหมดออกจากส่วนนี้" msgstr "นี่จะลบรายการทั้งหมดออกจากส่วนนี้"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "การดำเนินการนี้จะยกเลิกแพทช์นี้และแพทช์ทั้งหมดที่ใช้หลังจากนั้น"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "สลับแถบด้านขวา"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "สลับเธรด" msgstr "สลับเธรด"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "โทเค็น: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "โทเค็น: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "โทเค็น: {total} ({cached} จากแคช)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "ติดตามงานที่คุณกำลังสมัครและเชื่อมโยงเรซูเม่ที่ส่งไป" msgstr "ติดตามงานที่คุณกำลังสมัครและเชื่อมโยงเรซูเม่ที่ส่งไป"
@@ -5213,6 +5310,10 @@ msgstr "เราไม่สามารถตรวจจับรูปแบ
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "เราไม่พบหน้านั้น" msgstr "เราไม่พบหน้านั้น"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "ค้นหาเว็บ"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "ซูมออก"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "ซูลู" msgstr "ซูลู"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Başvuruldu"
msgid "Applied on" msgid "Applied on"
msgstr "Başvuru tarihi" msgstr "Başvuru tarihi"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Onayla"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Onaylandı — ajan bekleniyor…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arapça" msgstr "Arapça"
@@ -1462,6 +1470,14 @@ msgstr "API anahtarınız siliniyor..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Özgeçmişiniz siliniyor..." msgstr "Özgeçmişiniz siliniyor..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Reddedildi — ajan bekleniyor…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Reddet"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Girişin eşleştirme için anahtar kelimelere katkıda bulunması için ne yaptığınızı açıklayın." msgstr "Girişin eşleştirme için anahtar kelimelere katkıda bulunması için ne yaptığınızı açıklayın."
@@ -1530,6 +1546,10 @@ msgstr "Bağış yapmak"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reaktif Özgeçmiş'e Bağış Yapın" msgstr "Reaktif Özgeçmiş'e Bağış Yapın"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Tamamlandı"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "İçeriği tam ekran modunda düzenleme"
msgid "Edit date" msgid "Edit date"
msgstr "Tarihi düzenle" msgstr "Tarihi düzenle"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Düzenleme reddedildi"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Özgeçmişinizi herhangi bir bekleme veya gecikme olmadan anında PDF'y
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png dışa aktarıldı" msgstr "pipeline-flow.png dışa aktarıldı"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Başarısız"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Özgeçmiş analiz edilemedi." msgstr "Özgeçmiş analiz edilemedi."
@@ -1967,6 +1995,10 @@ msgstr "Sağlayıcının bağlantısı kaldırılamadı. Lütfen tekrar deneyin.
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Sağlayıcı güncellenemedi." msgstr "Sağlayıcı güncellenemedi."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Konu ayarları güncellenemedi."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "yeni sekmede açılır" msgstr "yeni sekmede açılır"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Ajan için isteğe bağlı not"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Ajan için isteğe bağlı not…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "İsterseniz bir şifre belirleyin, böylece yalnızca şifreye sahip olanlar bağlantı üzerinden özgeçmişinizi görüntüleyebilir." msgstr "İsterseniz bir şifre belirleyin, böylece yalnızca şifreye sahip olanlar bağlantı üzerinden özgeçmişinizi görüntüleyebilir."
@@ -3499,6 +3539,10 @@ msgstr "Yayınlar"
msgid "Publisher" msgid "Publisher"
msgstr "Yayınlayıcı" msgstr "Yayınlayıcı"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Ham JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Yeniden puanla" msgstr "Yeniden puanla"
@@ -3546,10 +3590,18 @@ msgstr "Reaktif Özgeçmiş v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktif Özgeçmiş v4 (JSON)" msgstr "Reaktif Özgeçmiş v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Bir eki okudu"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Özel Stilleri Uygulama kılavuzunu okuyun." msgstr "Özel Stilleri Uygulama kılavuzunu okuyun."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Özgeçmişi okudu"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "İlan okunuyor…" msgstr "İlan okunuyor…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Eski haline getirmek" msgstr "Eski haline getirmek"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Bu yamadan önceki haline geri döndür? Bu işlem, bu yamayı ve sonrasında uygulanan tüm yamaları geri alacaktır." msgstr "Özgeçmiş bu yamadan önceki hâline geri yüklensin mi?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Özgeçmiş analizi tamamlandı."
msgid "Resume content" msgid "Resume content"
msgstr "Özgeçmiş içeriği" msgstr "Özgeçmiş içeriği"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Özgeçmiş düzenlemesi"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Özgeçmiş dosyası" msgstr "Özgeçmiş dosyası"
@@ -3754,10 +3810,18 @@ msgstr "Özgeçmişler"
msgid "Retry" msgid "Retry"
msgstr "Tekrar dene" msgstr "Tekrar dene"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Düzenlemeleri incele"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Özgeçmişinizi iş tanımıyla karşılaştırın ve emin olmadığınız bölümleri değiştirmeden önce bana sorular sorun." msgstr "Özgeçmişinizi iş tanımıyla karşılaştırın ve emin olmadığınız bölümleri değiştirmeden önce bana sorular sorun."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Bu düzenlemeyi incele"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Özeti, genel bir ifade kullanmadan, kıdemli mühendislik yöneticisi rolünü hedefleyecek şekilde yeniden düzenleyin." msgstr "Özeti, genel bir ifade kullanmadan, kıdemli mühendislik yöneticisi rolünü hedefleyecek şekilde yeniden düzenleyin."
@@ -3798,6 +3862,10 @@ msgstr "Döndürme"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Bir puan kartı, güçlü yönler ve önceliklendirilmiş öneriler elde etmek için ilk analizinizi çalıştırın." msgstr "Bir puan kartı, güçlü yönler ve önceliklendirilmiş öneriler elde etmek için ilk analizinizi çalıştırın."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Çalışıyor…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rusça" msgstr "Rusça"
@@ -4253,6 +4321,15 @@ msgstr "Kaynak"
msgid "Source Code" msgid "Source Code"
msgstr "Kaynak Kod" msgstr "Kaynak Kod"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Kaynak: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Kaynaklar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Boşluk (Yatay)" msgstr "Boşluk (Yatay)"
@@ -4604,6 +4681,10 @@ msgstr "Bu asistan açılamadı."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Bu tarih doğru okunmayacaktır." msgstr "Bu tarih doğru okunmayacaktır."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Bu düzenleme isteği artık yanıtlanamaz."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Bu e-posta adresi tanınmayacak." msgstr "Bu e-posta adresi tanınmayacak."
@@ -4712,6 +4793,10 @@ msgstr "Bu, birden fazla geçiş anahtarına sahip olmayı planlıyorsanız, dah
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Bu, bu bölümdeki tüm öğeleri kaldıracaktır." msgstr "Bu, bu bölümdeki tüm öğeleri kaldıracaktır."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Bu işlem, bu yamayı ve sonrasında uygulanan tüm yamaları geri alacaktır."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Sağ kenar çubuğunu aç / kapat"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Konuları açıp kapat" msgstr "Konuları açıp kapat"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token: {total} ({cached} önbelleğe alınmış)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Başvurduğunuz işi takip edin ve gönderdiğiniz özgeçmişi bağlayın." msgstr "Başvurduğunuz işi takip edin ve gönderdiğiniz özgeçmişi bağlayın."
@@ -5213,6 +5310,10 @@ msgstr "Formatı otomatik olarak algılayamadık — lütfen yukarıdan seçin."
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "O sayfayı bulamadık." msgstr "O sayfayı bulamadık."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Web araması"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Uzaklaştır"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Подано"
msgid "Applied on" msgid "Applied on"
msgstr "Подано" msgstr "Подано"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Схвалити"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Схвалено — очікування агента…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Арабська" msgstr "Арабська"
@@ -1462,6 +1470,14 @@ msgstr "Видаляємо ваш API-ключ..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Видалення вашого резюме..." msgstr "Видалення вашого резюме..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Відхилено — очікування агента…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Відхилити"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Опишіть, що ви зробили, щоб запис додав ключові слова для відповідності." msgstr "Опишіть, що ви зробили, щоб запис додав ключові слова для відповідності."
@@ -1530,6 +1546,10 @@ msgstr "Пожертвувати"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Пожертвувати на Reactive Resume" msgstr "Пожертвувати на Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Готово"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Редагувати вміст у повноекранному режи
msgid "Edit date" msgid "Edit date"
msgstr "Редагувати дату" msgstr "Редагувати дату"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Редагування відхилено"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Експортуйте своє резюме у PDF миттєво, бе
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Експортовано pipeline-flow.png" msgstr "Експортовано pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Помилка"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Не вдалося проаналізувати резюме." msgstr "Не вдалося проаналізувати резюме."
@@ -1967,6 +1995,10 @@ msgstr "Не вдалося від'єднати провайдера. Спроб
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Не вдалося оновити постачальника." msgstr "Не вдалося оновити постачальника."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Не вдалося оновити налаштування ланцюжка повідомлень."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "відкриється у новій вкладці" msgstr "відкриється у новій вкладці"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Необов'язкова примітка для агента"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Необов'язкова примітка для агента…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "За бажанням встановіть пароль, щоб лише користувачі з паролем могли переглядати ваше резюме через посилання." msgstr "За бажанням встановіть пароль, щоб лише користувачі з паролем могли переглядати ваше резюме через посилання."
@@ -3499,6 +3539,10 @@ msgstr "Публікації"
msgid "Publisher" msgid "Publisher"
msgstr "Видавець" msgstr "Видавець"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Необроблений JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Переоцінити" msgstr "Переоцінити"
@@ -3546,10 +3590,18 @@ msgstr "Реактивне резюме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Реактивне резюме v4 (JSON)" msgstr "Реактивне резюме v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Прочитано вкладення"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Ознайомтеся з посібником із застосування власних стилів." msgstr "Ознайомтеся з посібником із застосування власних стилів."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Прочитано резюме"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Читання оголошення…" msgstr "Читання оголошення…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Відновити" msgstr "Відновити"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Відновити резюме до стану до цього патчу? Це призведе до скасування цього патчу та будь-яких патчів, застосованих після нього." msgstr "Відновити резюме до стану перед цим патчем?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Аналіз резюме завершено."
msgid "Resume content" msgid "Resume content"
msgstr "Зміст резюме" msgstr "Зміст резюме"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Редагування резюме"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Файл резюме" msgstr "Файл резюме"
@@ -3754,10 +3810,18 @@ msgstr "Резюме"
msgid "Retry" msgid "Retry"
msgstr "Повторити спробу" msgstr "Повторити спробу"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Переглянути редагування"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Перегляньте резюме на відповідність опису вакансії та поставте мені запитання, перш ніж вносити зміни до невизначених розділів." msgstr "Перегляньте резюме на відповідність опису вакансії та поставте мені запитання, перш ніж вносити зміни до невизначених розділів."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Переглянути це редагування"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Переробіть резюме, щоб воно було орієнтоване на посаду старшого інженера-менеджера, але не звучало шаблонно." msgstr "Переробіть резюме, щоб воно було орієнтоване на посаду старшого інженера-менеджера, але не звучало шаблонно."
@@ -3798,6 +3862,10 @@ msgstr "Обертання"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Проведіть перший аналіз, щоб отримати оціночну таблицю, сильні сторони та пріоритетні пропозиції." msgstr "Проведіть перший аналіз, щоб отримати оціночну таблицю, сильні сторони та пріоритетні пропозиції."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Виконується…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Російська" msgstr "Російська"
@@ -4253,6 +4321,15 @@ msgstr "Джерело"
msgid "Source Code" msgid "Source Code"
msgstr "Вихідний код" msgstr "Вихідний код"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Джерело: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Джерела"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Відступи (горизонтальні)" msgstr "Відступи (горизонтальні)"
@@ -4604,6 +4681,10 @@ msgstr "Цей помічник не вдалося відкрити."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Ця дата не буде прочитана правильно." msgstr "Ця дата не буде прочитана правильно."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "На цей запит на редагування більше не можна відповісти."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Ця електронна адреса не буде розпізнана." msgstr "Ця електронна адреса не буде розпізнана."
@@ -4712,6 +4793,10 @@ msgstr "Це допоможе вам ідентифікувати його пі
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Це призведе до видалення всіх елементів з цього розділу." msgstr "Це призведе до видалення всіх елементів з цього розділу."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Це відкотить цей патч і всі патчі, застосовані після нього."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Перемикання правої бічної панелі"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Перемикання тем" msgstr "Перемикання тем"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Токени: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Токени: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Токени: {total} ({cached} кешовано)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Відстежуйте вакансію, на яку подаєтеся, і прив'яжіть надіслане резюме." msgstr "Відстежуйте вакансію, на яку подаєтеся, і прив'яжіть надіслане резюме."
@@ -5213,6 +5310,10 @@ msgstr "Нам не вдалося автоматично визначити ф
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Нам не вдалося знайти цю сторінку" msgstr "Нам не вдалося знайти цю сторінку"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Пошук в інтернеті"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Зменшити"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Зулу" msgstr "Зулу"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Topshirildi"
msgid "Applied on" msgid "Applied on"
msgstr "Ariza sanasi" msgstr "Ariza sanasi"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Tasdiqlash"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Tasdiqlandi — agent kutilmoqda…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Arab tili" msgstr "Arab tili"
@@ -1462,6 +1470,14 @@ msgstr "API kalitingiz o'chirilmoqda..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Rezyumeni ochirilmoqda..." msgstr "Rezyumeni ochirilmoqda..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Rad etildi — agent kutilmoqda…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Rad etish"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Nima qilganingizni tasvirlab bering, shunda kirish mos keladigan kalit so'zlarga hissa qo'shadi." msgstr "Nima qilganingizni tasvirlab bering, shunda kirish mos keladigan kalit so'zlarga hissa qo'shadi."
@@ -1530,6 +1546,10 @@ msgstr "Xayriya qiling"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Reactive Resume'ga xayriya qiling" msgstr "Reactive Resume'ga xayriya qiling"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Bajarildi"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Mazmunni to'liq ekran rejimida tahrirlang"
msgid "Edit date" msgid "Edit date"
msgstr "Sanani tahrirlash" msgstr "Sanani tahrirlash"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Tahrir rad etildi"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Rezyumeni PDF formatiga darhol, hech qanday kutish yoki kechikishlarsiz
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "pipeline-flow.png eksport qilindi" msgstr "pipeline-flow.png eksport qilindi"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Muvaffaqiyatsiz"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Rezyumeni tahlil qilish muvaffaqiyatsiz bo'ldi." msgstr "Rezyumeni tahlil qilish muvaffaqiyatsiz bo'ldi."
@@ -1967,6 +1995,10 @@ msgstr "Provayderni bog'lanishni bekor qila olmadik. Iltimos, yana urinib ko'rin
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Provayderni yangilashda xatolik yuz berdi." msgstr "Provayderni yangilashda xatolik yuz berdi."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Mavzu sozlamalarini yangilab bo'lmadi."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "Ochiq marshrutizator"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "yangi tabda ochiladi" msgstr "yangi tabda ochiladi"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Agent uchun ixtiyoriy izoh"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Agent uchun ixtiyoriy izoh…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Istasangiz, maxfiy soʻz kiriting, faqat parolni bilganlar havola orqali rezyumeni koʻra oladi." msgstr "Istasangiz, maxfiy soʻz kiriting, faqat parolni bilganlar havola orqali rezyumeni koʻra oladi."
@@ -3499,6 +3539,10 @@ msgstr "Nashrlar"
msgid "Publisher" msgid "Publisher"
msgstr "Nashriyotchi" msgstr "Nashriyotchi"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "Xom JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Qayta baholash" msgstr "Qayta baholash"
@@ -3546,10 +3590,18 @@ msgstr "Reaktiv rezyume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiv Rezume v4 (JSON)" msgstr "Reaktiv Rezume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Ilovani o'qidi"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Maxsus uslublarni qo'llash qo'llanmasini o'qing." msgstr "Maxsus uslublarni qo'llash qo'llanmasini o'qing."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Rezyumeni o'qidi"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "E'lon o'qilmoqda…" msgstr "E'lon o'qilmoqda…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Qayta tiklash" msgstr "Qayta tiklash"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Rezyume ushbu yamoqni avvalgi holatiga qaytarilsinmi? Bu ushbu yamoqni va undan keyin qo'llanilgan barcha yamoqlarni orqaga qaytaradi." msgstr "Rezyume ushbu yamoqdan oldingi holatiga qaytarilsinmi?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Rezyume tahlili yakunlandi."
msgid "Resume content" msgid "Resume content"
msgstr "Rezyume mazmuni" msgstr "Rezyume mazmuni"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Rezyume tahriri"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Rezyume fayli" msgstr "Rezyume fayli"
@@ -3754,10 +3810,18 @@ msgstr "Rezyumelar"
msgid "Retry" msgid "Retry"
msgstr "Qayta urinish" msgstr "Qayta urinish"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Tahrirlarni ko'rib chiqish"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Rezyumeni ish tavsifi bilan taqqoslang va noaniq bo'limlarni o'zgartirishdan oldin menga savollar bering." msgstr "Rezyumeni ish tavsifi bilan taqqoslang va noaniq bo'limlarni o'zgartirishdan oldin menga savollar bering."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Ushbu tahrirni ko'rib chiqish"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Xulosa umumiy ko'rinmasdan, katta muhandislik menejeri lavozimiga yo'naltirilgan bo'lishi uchun uni qayta ishlang." msgstr "Xulosa umumiy ko'rinmasdan, katta muhandislik menejeri lavozimiga yo'naltirilgan bo'lishi uchun uni qayta ishlang."
@@ -3798,6 +3862,10 @@ msgstr "Aylantirish"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Birinchi tahlilingizni ishga tushiring va ballar jadvali, kuchli tomonlar hamda ustuvor tavsiyalarni oling." msgstr "Birinchi tahlilingizni ishga tushiring va ballar jadvali, kuchli tomonlar hamda ustuvor tavsiyalarni oling."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Bajarilmoqda…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Rus tili" msgstr "Rus tili"
@@ -4253,6 +4321,15 @@ msgstr "Manba"
msgid "Source Code" msgid "Source Code"
msgstr "Manba kodi" msgstr "Manba kodi"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Manba: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Manbalar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Bo'shliq (gorizontal)" msgstr "Bo'shliq (gorizontal)"
@@ -4604,6 +4681,10 @@ msgstr "Bu yordamchini ochib bo'lmadi."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Bu sana to'g'ri o'qilmaydi." msgstr "Bu sana to'g'ri o'qilmaydi."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Bu tahrirlash so'roviga endi javob berib bo'lmaydi."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Ushbu elektron pochta manzili tanib bo'lmaydi." msgstr "Ushbu elektron pochta manzili tanib bo'lmaydi."
@@ -4712,6 +4793,10 @@ msgstr "Agar bir nechta passkey bo'lishni rejalashtirsangiz, bu keyinchalik uni
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Bu bo'limdagi barcha elementlarni o'chirib tashlaydi." msgstr "Bu bo'limdagi barcha elementlarni o'chirib tashlaydi."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Bu ushbu yamoqni va undan keyin qo'llanilgan barcha yamoqlarni orqaga qaytaradi."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "O'ng yon panelni yoqish/o'chirish"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Mavzularni ochish/o'chirish" msgstr "Mavzularni ochish/o'chirish"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Tokenlar: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Tokenlar: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Tokenlar: {total} ({cached} keshlangan)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Ariza topshirayotgan ishni kuzating va yuborgan rezyumeni bog'lang." msgstr "Ariza topshirayotgan ishni kuzating va yuborgan rezyumeni bog'lang."
@@ -5213,6 +5310,10 @@ msgstr "Formatni avtomatik ravishda aniqlay olmadik — iltimos, uni yuqoridan t
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Biz o'sha sahifani topa olmadik" msgstr "Biz o'sha sahifani topa olmadik"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Veb-qidiruv"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Kichraytirish"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "Đã ứng tuyển"
msgid "Applied on" msgid "Applied on"
msgstr "Đã ứng tuyển vào" msgstr "Đã ứng tuyển vào"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "Phê duyệt"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "Đã phê duyệt — đang chờ tác nhân…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "Tiếng Ả Rập" msgstr "Tiếng Ả Rập"
@@ -1462,6 +1470,14 @@ msgstr "Đang xoá khoá API của bạn..."
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "Đang xóa bản lý lịch của bạn..." msgstr "Đang xóa bản lý lịch của bạn..."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "Đã từ chối — đang chờ tác nhân…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "Từ chối"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "Mô tả những gì bạn đã làm để mục nhập đóng góp từ khóa cho việc đối sánh." msgstr "Mô tả những gì bạn đã làm để mục nhập đóng góp từ khóa cho việc đối sánh."
@@ -1530,6 +1546,10 @@ msgstr "Quyên tặng"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "Đóng góp cho Reactive Resume" msgstr "Đóng góp cho Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "Hoàn tất"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "Chỉnh sửa nội dung ở chế độ toàn màn hình"
msgid "Edit date" msgid "Edit date"
msgstr "Sửa ngày" msgstr "Sửa ngày"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "Chỉnh sửa bị từ chối"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "Xuất CV của bạn sang PDF ngay lập tức, không cần chờ đ
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "Đã xuất pipeline-flow.png" msgstr "Đã xuất pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "Thất bại"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "Không thể phân tích sơ yếu lý lịch." msgstr "Không thể phân tích sơ yếu lý lịch."
@@ -1967,6 +1995,10 @@ msgstr "Không thể hủy liên kết nhà cung cấp. Vui lòng thử lại."
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "Không thể cập nhật nhà cung cấp." msgstr "Không thể cập nhật nhà cung cấp."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Không thể cập nhật cài đặt chủ đề."
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "mở ở tab mới" msgstr "mở ở tab mới"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "Ghi chú tùy chọn cho tác nhân"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "Ghi chú tùy chọn cho tác nhân…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Tùy chọn, đặt mật khẩu để chỉ những ai có mật khẩu mới có thể xem sơ yếu lý lịch của bạn qua liên kết này." msgstr "Tùy chọn, đặt mật khẩu để chỉ những ai có mật khẩu mới có thể xem sơ yếu lý lịch của bạn qua liên kết này."
@@ -3499,6 +3539,10 @@ msgstr "Ấn phẩm"
msgid "Publisher" msgid "Publisher"
msgstr "Nhà xuất bản" msgstr "Nhà xuất bản"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "JSON thô"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "Chấm điểm lại" msgstr "Chấm điểm lại"
@@ -3546,10 +3590,18 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "Sơ yếu lý lịch phản hồi phiên bản 4 (JSON)" msgstr "Sơ yếu lý lịch phản hồi phiên bản 4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "Đã đọc tệp đính kèm"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "Hãy đọc hướng dẫn Áp dụng kiểu tùy chỉnh." msgstr "Hãy đọc hướng dẫn Áp dụng kiểu tùy chỉnh."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "Đã đọc sơ yếu lý lịch"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "Đang đọc tin tuyển dụng…" msgstr "Đang đọc tin tuyển dụng…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "Khôi phục" msgstr "Khôi phục"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "Khôi phục trạng thái trước khi cập nhật bản vá này? Thao tác này sẽ hoàn tác bản vá này và bất kỳ bản vá nào được áp dụng sau đó." msgstr "Khôi phục sơ yếu lý lịch về trạng thái trước bản vá này?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "Việc phân tích sơ yếu lý lịch đã hoàn tất."
msgid "Resume content" msgid "Resume content"
msgstr "Nội dung sơ yếu lý lịch" msgstr "Nội dung sơ yếu lý lịch"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "Chỉnh sửa sơ yếu lý lịch"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "Tệp CV" msgstr "Tệp CV"
@@ -3754,10 +3810,18 @@ msgstr "Sơ yếu lý lịch"
msgid "Retry" msgid "Retry"
msgstr "Thử lại" msgstr "Thử lại"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "Xem lại các chỉnh sửa"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "Hãy xem lại sơ yếu lý lịch so với mô tả công việc và đặt câu hỏi cho tôi trước khi thay đổi những phần không chắc chắn." msgstr "Hãy xem lại sơ yếu lý lịch so với mô tả công việc và đặt câu hỏi cho tôi trước khi thay đổi những phần không chắc chắn."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "Xem lại chỉnh sửa này"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "Chỉnh sửa lại phần tóm tắt sao cho phù hợp với vị trí quản lý kỹ thuật cấp cao mà không gây cảm giác chung chung." msgstr "Chỉnh sửa lại phần tóm tắt sao cho phù hợp với vị trí quản lý kỹ thuật cấp cao mà không gây cảm giác chung chung."
@@ -3798,6 +3862,10 @@ msgstr "Xoay"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Hãy thực hiện phân tích đầu tiên để nhận được bảng điểm, điểm mạnh và các đề xuất được sắp xếp theo mức độ ưu tiên." msgstr "Hãy thực hiện phân tích đầu tiên để nhận được bảng điểm, điểm mạnh và các đề xuất được sắp xếp theo mức độ ưu tiên."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "Đang chạy…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "Nga" msgstr "Nga"
@@ -4253,6 +4321,15 @@ msgstr "Nguồn"
msgid "Source Code" msgid "Source Code"
msgstr "Mã nguồn" msgstr "Mã nguồn"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "Nguồn: {0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "Nguồn"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "Khoảng cách (Ngang)" msgstr "Khoảng cách (Ngang)"
@@ -4604,6 +4681,10 @@ msgstr "Không thể mở trình trợ lý này."
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "Ngày này sẽ không được đọc chính xác." msgstr "Ngày này sẽ không được đọc chính xác."
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "Không thể trả lời yêu cầu chỉnh sửa này được nữa."
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "Địa chỉ email này sẽ không được công nhận." msgstr "Địa chỉ email này sẽ không được công nhận."
@@ -4712,6 +4793,10 @@ msgstr "Điều này sẽ giúp bạn nhận diện nó sau này, nếu bạn d
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "Thao tác này sẽ xóa tất cả các mục trong phần này." msgstr "Thao tác này sẽ xóa tất cả các mục trong phần này."
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "Thao tác này sẽ hoàn tác bản vá này và mọi bản vá được áp dụng sau nó."
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "Bật/tắt thanh bên phải"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "Luồng chuyển đổi" msgstr "Luồng chuyển đổi"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token: {threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token: {total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token: {total} ({cached} từ bộ nhớ đệm)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "Theo dõi công việc bạn đang ứng tuyển và liên kết sơ yếu lý lịch đã gửi." msgstr "Theo dõi công việc bạn đang ứng tuyển và liên kết sơ yếu lý lịch đã gửi."
@@ -5213,6 +5310,10 @@ msgstr "Chúng tôi không thể tự động nhận diện định dạng — v
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "Chúng tôi không tìm thấy trang đó." msgstr "Chúng tôi không tìm thấy trang đó."
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "Tìm kiếm trên web"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "Thu nhỏ"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "Zulu" msgstr "Zulu"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "已申请"
msgid "Applied on" msgid "Applied on"
msgstr "申请日期" msgstr "申请日期"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "批准"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "已批准 — 正在等待代理…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "阿拉伯语" msgstr "阿拉伯语"
@@ -1462,6 +1470,14 @@ msgstr "正在删除你的 API key…"
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "正在删除你的简历…" msgstr "正在删除你的简历…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "已拒绝 — 正在等待代理…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "拒绝"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "描述您做了什么,以便该条目提供用于匹配的关键字。”" msgstr "描述您做了什么,以便该条目提供用于匹配的关键字。”"
@@ -1530,6 +1546,10 @@ msgstr "捐赠"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "为 Reactive Resume 捐款" msgstr "为 Reactive Resume 捐款"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "完成"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "在全屏模式下编辑内容"
msgid "Edit date" msgid "Edit date"
msgstr "编辑日期" msgstr "编辑日期"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "编辑已被拒绝"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "立即将简历导出为PDF格式,无需等待或延迟。"
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "已导出 pipeline-flow.png" msgstr "已导出 pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "失败"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "简历分析失败。" msgstr "简历分析失败。"
@@ -1967,6 +1995,10 @@ msgstr "取消链接提供商失败。请重试。"
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "更新提供商失败。" msgstr "更新提供商失败。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "更新线程设置失败。"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "开放路由器"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "在新标签页中打开" msgstr "在新标签页中打开"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "给代理的备注(可选)"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "给代理的备注(可选)…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "你也可以选择设置密码,这样只有拥有密码的人才能通过链接查看你的简历。" msgstr "你也可以选择设置密码,这样只有拥有密码的人才能通过链接查看你的简历。"
@@ -3499,6 +3539,10 @@ msgstr "出版物"
msgid "Publisher" msgid "Publisher"
msgstr "发布者" msgstr "发布者"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "原始 JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "重新评分" msgstr "重新评分"
@@ -3546,10 +3590,18 @@ msgstr "响应式恢复 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "反应式简历 v4JSON" msgstr "反应式简历 v4JSON"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "已读取附件"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "请阅读“应用自定义样式”指南。" msgstr "请阅读“应用自定义样式”指南。"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "已读取简历"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "正在读取招聘信息…" msgstr "正在读取招聘信息…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "恢复" msgstr "恢复"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "恢复到此补丁之前的状态?这将回滚此补丁以及其后应用的所有补丁。" msgstr "将简历恢复到此补丁之前的状态?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "简历分析完毕。"
msgid "Resume content" msgid "Resume content"
msgstr "简历内容" msgstr "简历内容"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "简历编辑"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "简历文件" msgstr "简历文件"
@@ -3754,10 +3810,18 @@ msgstr "简历"
msgid "Retry" msgid "Retry"
msgstr "重试" msgstr "重试"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "审核编辑"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "请对照职位描述仔细检查简历,如有疑问请随时向我咨询,然后再修改不确定的部分。" msgstr "请对照职位描述仔细检查简历,如有疑问请随时向我咨询,然后再修改不确定的部分。"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "审核此编辑"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "修改摘要,使其针对高级工程经理职位,避免显得过于笼统。" msgstr "修改摘要,使其针对高级工程经理职位,避免显得过于笼统。"
@@ -3798,6 +3862,10 @@ msgstr "旋转"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "进行首次分析,以获得记分卡、优势和优先建议。" msgstr "进行首次分析,以获得记分卡、优势和优先建议。"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "运行中…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "俄语" msgstr "俄语"
@@ -4253,6 +4321,15 @@ msgstr "来源"
msgid "Source Code" msgid "Source Code"
msgstr "源代码" msgstr "源代码"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "来源:{0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "来源"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "间距(水平)" msgstr "间距(水平)"
@@ -4604,6 +4681,10 @@ msgstr "此助手无法打开。"
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "该日期将无法正确读取。”" msgstr "该日期将无法正确读取。”"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "此编辑请求已无法回应。"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "该电子邮件地址将不会被识别。”" msgstr "该电子邮件地址将不会被识别。”"
@@ -4712,6 +4793,10 @@ msgstr "如果您计划使用多个密码匙,这将有助于您以后识别密
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "这将删除该部分的所有项目。" msgstr "这将删除该部分的所有项目。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "这将回滚此补丁以及之后应用的所有补丁。"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "切换右侧边栏"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "切换线程" msgstr "切换线程"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token{threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token{total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token{total}{cached} 已缓存)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "跟踪你正在申请的职位并关联已发送的简历。" msgstr "跟踪你正在申请的职位并关联已发送的简历。"
@@ -5213,6 +5310,10 @@ msgstr "我们无法自动检测格式——请在上方选择格式。"
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "我们找不到那一页" msgstr "我们找不到那一页"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "网络搜索"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "缩小"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "祖鲁语" msgstr "祖鲁语"
+103 -3
View File
@@ -543,6 +543,14 @@ msgstr "已申請"
msgid "Applied on" msgid "Applied on"
msgstr "應徵日期" msgstr "應徵日期"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr "核准"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr "已核准 — 正在等待代理…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "阿拉伯文" msgstr "阿拉伯文"
@@ -1462,6 +1470,14 @@ msgstr "正在刪除您的 API Key…"
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "正在刪除您的履歷…" msgstr "正在刪除您的履歷…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr "已拒絕 — 正在等待代理…"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr "拒絕"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "描述您做了什麼,以便該條目提供用於匹配的關鍵字。 」" msgstr "描述您做了什麼,以便該條目提供用於匹配的關鍵字。 」"
@@ -1530,6 +1546,10 @@ msgstr "捐"
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "捐助 Reactive Resume" msgstr "捐助 Reactive Resume"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr "完成"
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1642,6 +1662,10 @@ msgstr "在全螢幕模式下編輯內容"
msgid "Edit date" msgid "Edit date"
msgstr "編輯日期" msgstr "編輯日期"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr "編輯已被拒絕"
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1837,6 +1861,10 @@ msgstr "立即將履歷匯出為PDF格式,無需等待或延遲。"
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "已匯出 pipeline-flow.png" msgstr "已匯出 pipeline-flow.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr "失敗"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "分析履歷失敗。" msgstr "分析履歷失敗。"
@@ -1967,6 +1995,10 @@ msgstr "解除供應商的連結失敗。請再試一次。"
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "更新提供者失敗。" msgstr "更新提供者失敗。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "更新線程設定失敗。"
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3153,6 +3185,14 @@ msgstr "OpenRouter"
msgid "opens in new tab" msgid "opens in new tab"
msgstr "在新分頁中開啟" msgstr "在新分頁中開啟"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr "給代理的備註(選填)"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr "給代理的備註(選填)…"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "您也可以選擇設定密碼,讓只有知道密碼的人才能透過連結檢視您的履歷。" msgstr "您也可以選擇設定密碼,讓只有知道密碼的人才能透過連結檢視您的履歷。"
@@ -3499,6 +3539,10 @@ msgstr "出版品"
msgid "Publisher" msgid "Publisher"
msgstr "出版者" msgstr "出版者"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr "原始 JSON"
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "重新評分" msgstr "重新評分"
@@ -3546,10 +3590,18 @@ msgstr "響應式恢復 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "反應式履歷 v4 (JSON)" msgstr "反應式履歷 v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr "讀取附件"
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "請閱讀“套用自訂樣式”指南。" msgstr "請閱讀“套用自訂樣式”指南。"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr "讀取簡歷"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "正在讀取職缺公告…" msgstr "正在讀取職缺公告…"
@@ -3700,8 +3752,8 @@ msgid "Restore"
msgstr "恢復" msgstr "恢復"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "恢復到此補丁之前的狀態?這將回滾此補丁以及其後套用的所有補丁。" msgstr "將簡歷恢復到此補丁之前的狀態?"
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
msgid "Restore this version?" msgid "Restore this version?"
@@ -3726,6 +3778,10 @@ msgstr "履歷分析完成。"
msgid "Resume content" msgid "Resume content"
msgstr "履歷內容" msgstr "履歷內容"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr "簡歷編輯"
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "履歷檔案" msgstr "履歷檔案"
@@ -3754,10 +3810,18 @@ msgstr "履歷"
msgid "Retry" msgid "Retry"
msgstr "重試" msgstr "重試"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr "審核編輯"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "請對照職位描述仔細檢查履歷,如有疑問請隨時向我諮詢,然後再修改不確定的部分。" msgstr "請對照職位描述仔細檢查履歷,如有疑問請隨時向我諮詢,然後再修改不確定的部分。"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr "審核此編輯"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "修改摘要,使其針對高階工程經理職位,避免顯得過於籠統。" msgstr "修改摘要,使其針對高階工程經理職位,避免顯得過於籠統。"
@@ -3798,6 +3862,10 @@ msgstr "旋轉"
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "執行您的第一次分析,以獲得計分卡、優勢和優先建議。" msgstr "執行您的第一次分析,以獲得計分卡、優勢和優先建議。"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr "執行中…"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "俄文" msgstr "俄文"
@@ -4253,6 +4321,15 @@ msgstr "來源"
msgid "Source Code" msgid "Source Code"
msgstr "原始碼" msgstr "原始碼"
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr "來源:{0}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr "來源"
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "間距(水平)" msgstr "間距(水平)"
@@ -4604,6 +4681,10 @@ msgstr "此助手無法打開。"
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "該日期將無法正確讀取。 」" msgstr "該日期將無法正確讀取。 」"
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr "此編輯請求已無法回應。"
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "該電子郵件地址將不會被辨識。 」" msgstr "該電子郵件地址將不會被辨識。 」"
@@ -4712,6 +4793,10 @@ msgstr "如果您打算使用多個通行鑰,這將有助於您稍後辨識。
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "這將移除此區中的所有項目。" msgstr "這將移除此區中的所有項目。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr "這將回滾此補丁以及之後套用的所有補丁。"
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4794,6 +4879,18 @@ msgstr "切換右側邊欄"
msgid "Toggle threads" msgid "Toggle threads"
msgstr "切換線程" msgstr "切換線程"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr "Token{threadTokenTotal}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr "Token{total}"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr "Token{total}{cached} 已快取)"
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "追蹤你正在應徵的職缺並連結已送出的履歷。" msgstr "追蹤你正在應徵的職缺並連結已送出的履歷。"
@@ -5213,6 +5310,10 @@ msgstr "我們無法自動偵測格式—請在上方選擇格式。"
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "我們找不到那一頁" msgstr "我們找不到那一頁"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr "網路搜尋"
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
@@ -5445,4 +5546,3 @@ msgstr "縮小"
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Zulu" msgid "Zulu"
msgstr "祖魯語" msgstr "祖魯語"
+102 -1
View File
@@ -538,6 +538,14 @@ msgstr ""
msgid "Applied on" msgid "Applied on"
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approve"
msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Approved — waiting for the agent…"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Arabic" msgid "Arabic"
msgstr "" msgstr ""
@@ -1457,6 +1465,14 @@ msgstr ""
msgid "Deleting your resume..." msgid "Deleting your resume..."
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Denied — waiting for the agent…"
msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Deny"
msgstr ""
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "Describe what you did so the entry contributes keywords for matching." msgid "Describe what you did so the entry contributes keywords for matching."
msgstr "" msgstr ""
@@ -1525,6 +1541,10 @@ msgstr ""
msgid "Donate to Reactive Resume" msgid "Donate to Reactive Resume"
msgstr "" msgstr ""
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Done"
msgstr ""
#. Action button to download two-factor backup codes as a text file #. Action button to download two-factor backup codes as a text file
#. Primary action in the builder header to open resume download options #. Primary action in the builder header to open resume download options
#: src/dialogs/auth/enable-two-factor.tsx #: src/dialogs/auth/enable-two-factor.tsx
@@ -1637,6 +1657,10 @@ msgstr ""
msgid "Edit date" msgid "Edit date"
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Edit declined"
msgstr ""
#. Resume card context menu action to edit resume metadata #. Resume card context menu action to edit resume metadata
#. Resume card dropdown action to edit resume metadata #. Resume card dropdown action to edit resume metadata
#: src/routes/builder/$resumeId/-components/header.tsx #: src/routes/builder/$resumeId/-components/header.tsx
@@ -1832,6 +1856,10 @@ msgstr ""
msgid "Exported pipeline-flow.png" msgid "Exported pipeline-flow.png"
msgstr "" msgstr ""
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Failed to analyze resume." msgid "Failed to analyze resume."
msgstr "" msgstr ""
@@ -1962,6 +1990,10 @@ msgstr ""
msgid "Failed to update provider." msgid "Failed to update provider."
msgstr "" msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr ""
#. Fallback toast when changing account password fails #. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx #: src/dialogs/auth/change-password.tsx
msgid "Failed to update your password. Please try again." msgid "Failed to update your password. Please try again."
@@ -3148,6 +3180,14 @@ msgstr ""
msgid "opens in new tab" msgid "opens in new tab"
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent"
msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Optional note for the agent…"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link." msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "" msgstr ""
@@ -3494,6 +3534,10 @@ msgstr ""
msgid "Publisher" msgid "Publisher"
msgstr "" msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Raw JSON"
msgstr ""
#: src/features/applications/components/application-ai-copilot.tsx #: src/features/applications/components/application-ai-copilot.tsx
msgid "Re-score" msgid "Re-score"
msgstr "" msgstr ""
@@ -3541,10 +3585,18 @@ msgstr ""
msgid "Reactive Resume v4 (JSON)" msgid "Reactive Resume v4 (JSON)"
msgstr "" msgstr ""
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx #: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide." msgid "Read the Applying Custom Styles guide."
msgstr "" msgstr ""
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read the resume"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Reading the posting…" msgid "Reading the posting…"
msgstr "" msgstr ""
@@ -3695,7 +3747,7 @@ msgid "Restore"
msgstr "" msgstr ""
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Restore the resume to before this patch? This will roll back this patch and any patches applied after it." msgid "Restore the resume to before this patch?"
msgstr "" msgstr ""
#: src/routes/builder/$resumeId/-components/version-history.tsx #: src/routes/builder/$resumeId/-components/version-history.tsx
@@ -3721,6 +3773,10 @@ msgstr ""
msgid "Resume content" msgid "Resume content"
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Resume edit"
msgstr ""
#: src/features/applications/components/application-detail-sheet.tsx #: src/features/applications/components/application-detail-sheet.tsx
msgid "Resume file" msgid "Resume file"
msgstr "" msgstr ""
@@ -3749,10 +3805,18 @@ msgstr ""
msgid "Retry" msgid "Retry"
msgstr "" msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Review edits"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Review the resume against a job description and ask me questions before changing uncertain sections." msgid "Review the resume against a job description and ask me questions before changing uncertain sections."
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Review this edit"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
msgid "Rework the summary so it targets a senior engineering manager role without sounding generic." msgid "Rework the summary so it targets a senior engineering manager role without sounding generic."
msgstr "" msgstr ""
@@ -3793,6 +3857,10 @@ msgstr ""
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions." msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "" msgstr ""
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Running…"
msgstr ""
#: src/libs/locale.ts #: src/libs/locale.ts
msgid "Russian" msgid "Russian"
msgstr "" msgstr ""
@@ -4248,6 +4316,15 @@ msgstr ""
msgid "Source Code" msgid "Source Code"
msgstr "" msgstr ""
#. placeholder {0}: operation.from
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "Source: {0}"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Sources"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx #: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
msgid "Spacing (Horizontal)" msgid "Spacing (Horizontal)"
msgstr "" msgstr ""
@@ -4599,6 +4676,10 @@ msgstr ""
msgid "This date will not be read correctly." msgid "This date will not be read correctly."
msgstr "" msgstr ""
#: src/routes/agent/-components/patch-approval-card.tsx
msgid "This edit request can no longer be answered."
msgstr ""
#: src/libs/resume/ats.ts #: src/libs/resume/ats.ts
msgid "This email address will not be recognized." msgid "This email address will not be recognized."
msgstr "" msgstr ""
@@ -4707,6 +4788,10 @@ msgstr ""
msgid "This will remove all items from this section." msgid "This will remove all items from this section."
msgstr "" msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "This will roll back this patch and any patches applied after it."
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx #: src/routes/agent/-components/agent-chat.tsx
#: src/routes/agent/-components/thread-sidebar.tsx #: src/routes/agent/-components/thread-sidebar.tsx
msgid "Thread actions" msgid "Thread actions"
@@ -4789,6 +4874,18 @@ msgstr ""
msgid "Toggle threads" msgid "Toggle threads"
msgstr "" msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {threadTokenTotal}"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total}"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tokens: {total} ({cached} cached)"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx #: src/features/applications/components/application-form-sheet.tsx
msgid "Track a job you're applying to and link the resume you sent." msgid "Track a job you're applying to and link the resume you sent."
msgstr "" msgstr ""
@@ -5208,6 +5305,10 @@ msgstr ""
msgid "We couldn't find that page" msgid "We couldn't find that page"
msgstr "" msgstr ""
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Web search"
msgstr ""
#: src/dialogs/resume/sections/award.tsx #: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx #: src/dialogs/resume/sections/certification.tsx
#: src/dialogs/resume/sections/education.tsx #: src/dialogs/resume/sections/education.tsx
+1
View File
@@ -101,6 +101,7 @@
"@lingui/vite-plugin": "^6.6.0", "@lingui/vite-plugin": "^6.6.0",
"@reactive-resume/config": "workspace:*", "@reactive-resume/config": "workspace:*",
"@rolldown/plugin-babel": "^0.2.3", "@rolldown/plugin-babel": "^0.2.3",
"@shadcn/helpers": "^0.2.0",
"@tanstack/devtools-vite": "^0.8.3", "@tanstack/devtools-vite": "^0.8.3",
"@tanstack/react-devtools": "^0.10.10", "@tanstack/react-devtools": "^0.10.10",
"@tanstack/react-query-devtools": "^5.101.4", "@tanstack/react-query-devtools": "^5.101.4",
+29 -4
View File
@@ -3,7 +3,7 @@ import { Trans } from "@lingui/react/macro";
import { ChatCircleDotsIcon, SidebarSimpleIcon, SquaresFourIcon } from "@phosphor-icons/react"; import { ChatCircleDotsIcon, SidebarSimpleIcon, SquaresFourIcon } from "@phosphor-icons/react";
import { useQuery } from "@tanstack/react-query"; import { useQuery } from "@tanstack/react-query";
import { createFileRoute, useNavigate } from "@tanstack/react-router"; import { createFileRoute, useNavigate } from "@tanstack/react-router";
import { useCallback, useRef, useState } from "react"; import { useCallback, useRef, useState, useSyncExternalStore } from "react";
import { Button } from "@reactive-resume/ui/components/button"; import { Button } from "@reactive-resume/ui/components/button";
import { ResizableGroup, ResizablePanel, ResizableSeparator } from "@reactive-resume/ui/components/resizable"; import { ResizableGroup, ResizablePanel, ResizableSeparator } from "@reactive-resume/ui/components/resizable";
import { Tabs, TabsList, TabsTrigger } from "@reactive-resume/ui/components/tabs"; import { Tabs, TabsList, TabsTrigger } from "@reactive-resume/ui/components/tabs";
@@ -19,6 +19,26 @@ export const Route = createFileRoute("/agent/$threadId")({
component: RouteComponent, component: RouteComponent,
}); });
// Matches Tailwind's `lg` breakpoint, which this route's two layouts switch on.
const DESKTOP_QUERY = "(min-width: 1024px)";
// Exactly one layout may mount: each AgentChat owns its own useChat state and stream
// reconnection, so CSS-hiding a second instance would double-connect streams and expose
// stale pending approval controls after a resize.
function useIsDesktopLayout() {
const [mediaQueryList] = useState(() => (typeof window === "undefined" ? null : window.matchMedia(DESKTOP_QUERY)));
return useSyncExternalStore(
(onStoreChange) => {
if (!mediaQueryList) return () => {};
mediaQueryList.addEventListener("change", onStoreChange);
return () => mediaQueryList.removeEventListener("change", onStoreChange);
},
() => mediaQueryList?.matches ?? false,
() => false,
);
}
function RouteComponent() { function RouteComponent() {
const { threadId } = Route.useParams(); const { threadId } = Route.useParams();
const navigate = useNavigate(); const navigate = useNavigate();
@@ -27,6 +47,7 @@ function RouteComponent() {
const resumePanelRef = useRef<PanelImperativeHandle | null>(null); const resumePanelRef = useRef<PanelImperativeHandle | null>(null);
const [isThreadsCollapsed, setIsThreadsCollapsed] = useState(false); const [isThreadsCollapsed, setIsThreadsCollapsed] = useState(false);
const [isResumeCollapsed, setIsResumeCollapsed] = useState(false); const [isResumeCollapsed, setIsResumeCollapsed] = useState(false);
const isDesktopLayout = useIsDesktopLayout();
const { data, isLoading, error } = useQuery(orpc.agent.threads.get.queryOptions({ input: { id: threadId } })); const { data, isLoading, error } = useQuery(orpc.agent.threads.get.queryOptions({ input: { id: threadId } }));
useAgentResumeUpdateSubscription({ resumeId: data?.resume?.id, threadId }); useAgentResumeUpdateSubscription({ resumeId: data?.resume?.id, threadId });
@@ -79,7 +100,8 @@ function RouteComponent() {
return ( return (
<div className="h-svh min-w-0 overflow-hidden bg-background"> <div className="h-svh min-w-0 overflow-hidden bg-background">
<div className="hidden h-full lg:block"> {isDesktopLayout ? (
<div className="h-full">
<ResizableGroup orientation="horizontal" className="h-full"> <ResizableGroup orientation="horizontal" className="h-full">
<ResizablePanel <ResizablePanel
id="threads" id="threads"
@@ -101,6 +123,7 @@ function RouteComponent() {
isReadOnly={data.isReadOnly} isReadOnly={data.isReadOnly}
readOnlyReason={readOnlyReason} readOnlyReason={readOnlyReason}
threadStatus={data.thread.status} threadStatus={data.thread.status}
reviewPatches={data.thread.reviewPatches}
activeRunId={data.thread.activeRunId} activeRunId={data.thread.activeRunId}
actions={data.actions} actions={data.actions}
onToggleThreads={toggleThreadsPanel} onToggleThreads={toggleThreadsPanel}
@@ -124,8 +147,8 @@ function RouteComponent() {
</ResizablePanel> </ResizablePanel>
</ResizableGroup> </ResizableGroup>
</div> </div>
) : (
<div className="flex h-full min-w-0 flex-col lg:hidden"> <div className="flex h-full min-w-0 flex-col">
<div className="shrink-0 border-b p-2"> <div className="shrink-0 border-b p-2">
<Tabs value={mobileTab} onValueChange={setMobileTab}> <Tabs value={mobileTab} onValueChange={setMobileTab}>
<TabsList className="grid w-full grid-cols-3"> <TabsList className="grid w-full grid-cols-3">
@@ -155,6 +178,7 @@ function RouteComponent() {
isReadOnly={data.isReadOnly} isReadOnly={data.isReadOnly}
readOnlyReason={readOnlyReason} readOnlyReason={readOnlyReason}
threadStatus={data.thread.status} threadStatus={data.thread.status}
reviewPatches={data.thread.reviewPatches}
activeRunId={data.thread.activeRunId} activeRunId={data.thread.activeRunId}
actions={data.actions} actions={data.actions}
/> />
@@ -164,6 +188,7 @@ function RouteComponent() {
</div> </div>
</div> </div>
</div> </div>
)}
</div> </div>
); );
} }
@@ -0,0 +1,115 @@
// @vitest-environment happy-dom
// Backend-free approval flow: a scripted ChatTransport from @shadcn/helpers drives useChat through
// halt (approval-requested) → user decision → composed sendAutomaticallyWhen → continuation.
import type { AgentUIMessage } from "@reactive-resume/ai/tools/agent-tool-contracts";
import { render, screen, waitFor } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { useChat } from "@ai-sdk/react";
import { createChat } from "@shadcn/helpers/ai-sdk";
import { lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls } from "ai";
function buildScriptedChat() {
return createChat<AgentUIMessage>()
.user("Tighten my summary")
.assistant(({ writer }) => {
writer.text("I would like to apply this edit.", { mode: "instant" });
writer.tool("apply_resume_patch", {
toolCallId: "call-1",
approvalId: "approval-1",
needsApproval: true,
input: {
title: "Tighten summary",
operations: [{ op: "replace", path: "/sections/summary/content", value: "Impact-driven engineer" }],
},
// With needsApproval, output means "stream this after approval"; denial streams
// tool-output-denied automatically.
output: {
actionId: "action-1",
resumeId: "resume-1",
title: "Tighten summary",
operations: [{ op: "replace", path: "/sections/summary/content", value: "Impact-driven engineer" }],
appliedUpdatedAt: "2026-08-20T00:00:00.000Z",
},
});
})
.assistant(({ writer, toolCall }) => {
writer.text(toolCall?.denied ? "Understood, I left the resume unchanged." : "Done — the edit is applied.", {
mode: "instant",
});
});
}
type HarnessProps = {
chat: ReturnType<typeof buildScriptedChat>;
decision: { approved: boolean; reason?: string };
};
// Minimal stand-in for AgentChat's wiring: same composed auto-send, same approval response call.
// AgentChat itself is deliberately not refactored to accept a transport prop for tests.
function ApprovalHarness({ chat, decision }: HarnessProps) {
const { messages, sendMessage, addToolApprovalResponse } = useChat<AgentUIMessage>({
transport: chat.transport({ delayMs: undefined }),
sendAutomaticallyWhen: (options) =>
lastAssistantMessageIsCompleteWithToolCalls(options) ||
lastAssistantMessageIsCompleteWithApprovalResponses(options),
});
const pendingApproval = messages
.flatMap((message) => message.parts)
.find((part) => "state" in part && part.state === "approval-requested") as
| { approval?: { id: string } }
| undefined;
return (
<div>
<button type="button" onClick={() => sendMessage({ text: "Tighten my summary" })}>
send
</button>
{pendingApproval?.approval ? (
<button
type="button"
onClick={() => void addToolApprovalResponse({ id: pendingApproval.approval?.id ?? "", ...decision })}
>
respond
</button>
) : null}
<output>
{messages
.flatMap((message) => message.parts)
.map((part) => ("state" in part && typeof part.state === "string" ? part.state : part.type))
.join(",")}
</output>
<pre>
{messages.map((message) => message.parts.map((part) => ("text" in part ? part.text : "")).join(" ")).join("\n")}
</pre>
</div>
);
}
describe("agent approval flow (scripted transport)", () => {
it("halts on approval-requested, then approves and streams the continuation with the tool output", async () => {
render(<ApprovalHarness chat={buildScriptedChat()} decision={{ approved: true }} />);
screen.getByRole("button", { name: "send" }).click();
await waitFor(() => expect(screen.getByRole("status").textContent).toContain("approval-requested"));
screen.getByRole("button", { name: "respond" }).click();
// Composed sendAutomaticallyWhen fires the continuation without a manual send.
await waitFor(() => expect(screen.getByText(/Done — the edit is applied/)).toBeInTheDocument());
await waitFor(() => expect(screen.getByRole("status").textContent).toContain("output-available"));
});
it("denies: the call ends output-denied and the continuation reflects the denial", async () => {
render(<ApprovalHarness chat={buildScriptedChat()} decision={{ approved: false, reason: "Wrong section" }} />);
screen.getByRole("button", { name: "send" }).click();
await waitFor(() => expect(screen.getByRole("status").textContent).toContain("approval-requested"));
screen.getByRole("button", { name: "respond" }).click();
await waitFor(() => expect(screen.getByText(/left the resume unchanged/)).toBeInTheDocument());
await waitFor(() => expect(screen.getByRole("status").textContent).toContain("output-denied"));
});
});
@@ -1,6 +1,8 @@
import type { AgentUIMessage } from "@reactive-resume/ai/tools/agent-tool-contracts";
import type { UIMessage, UIMessageChunk } from "ai"; import type { UIMessage, UIMessageChunk } from "ai";
import type * as React from "react"; import type * as React from "react";
import type { RouterOutput } from "@/libs/orpc/client"; import type { RouterOutput } from "@/libs/orpc/client";
import type { PatchApprovalResponse } from "./patch-approval-card";
import { useChat } from "@ai-sdk/react"; import { useChat } from "@ai-sdk/react";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { Trans } from "@lingui/react/macro"; import { Trans } from "@lingui/react/macro";
@@ -23,11 +25,12 @@ import {
} from "@phosphor-icons/react"; } from "@phosphor-icons/react";
import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useMutation, useQueryClient } from "@tanstack/react-query";
import { useNavigate } from "@tanstack/react-router"; import { useNavigate } from "@tanstack/react-router";
import { lastAssistantMessageIsCompleteWithToolCalls } from "ai"; import { lastAssistantMessageIsCompleteWithApprovalResponses, lastAssistantMessageIsCompleteWithToolCalls } from "ai";
import { m } from "motion/react"; import { m } from "motion/react";
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
import ReactMarkdown from "react-markdown"; import ReactMarkdown from "react-markdown";
import remarkGfm from "remark-gfm"; import remarkGfm from "remark-gfm";
import { agentMessageMetadataSchema } from "@reactive-resume/ai/tools/agent-tool-contracts";
import { import {
Attachment, Attachment,
AttachmentContent, AttachmentContent,
@@ -39,6 +42,7 @@ import { Bubble, BubbleContent } from "@reactive-resume/ui/components/bubble";
import { Button } from "@reactive-resume/ui/components/button"; import { Button } from "@reactive-resume/ui/components/button";
import { import {
DropdownMenu, DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent, DropdownMenuContent,
DropdownMenuItem, DropdownMenuItem,
DropdownMenuSeparator, DropdownMenuSeparator,
@@ -73,6 +77,8 @@ import { useConfirm } from "@/hooks/use-confirm";
import { getOrpcErrorMessage } from "@/libs/error-message"; import { getOrpcErrorMessage } from "@/libs/error-message";
import { client, orpc, streamClient } from "@/libs/orpc/client"; import { client, orpc, streamClient } from "@/libs/orpc/client";
import { attachmentIdsFromTransportBody, buildAgentChatSubmission } from "../-helpers/chat-attachments"; import { attachmentIdsFromTransportBody, buildAgentChatSubmission } from "../-helpers/chat-attachments";
import { OperationRow, PatchApprovalCard } from "./patch-approval-card";
import { ToolPartCard } from "./tool-part-card";
type AgentThreadDetail = RouterOutput["agent"]["threads"]["get"]; type AgentThreadDetail = RouterOutput["agent"]["threads"]["get"];
type AgentAction = AgentThreadDetail["actions"][number]; type AgentAction = AgentThreadDetail["actions"][number];
@@ -103,13 +109,16 @@ type FileAttachmentProps = {
type AskUserQuestionProps = { type AskUserQuestionProps = {
part: UIMessage["parts"][number]; part: UIMessage["parts"][number];
answer: string | null; answer: string | null;
disabled?: boolean;
onAnswer: (toolCallId: string, answer: string) => void; onAnswer: (toolCallId: string, answer: string) => void;
}; };
type MessagePartProps = { type MessagePartProps = {
part: UIMessage["parts"][number]; part: UIMessage["parts"][number];
isUser: boolean; isUser: boolean;
isReadOnly: boolean;
onAnswer: (toolCallId: string, answer: string) => void; onAnswer: (toolCallId: string, answer: string) => void;
onApprovalRespond: (response: PatchApprovalResponse) => void;
onRevert: (actionId: string) => void; onRevert: (actionId: string) => void;
isReverting: boolean; isReverting: boolean;
actionsById: Map<string, AgentAction>; actionsById: Map<string, AgentAction>;
@@ -117,7 +126,9 @@ type MessagePartProps = {
type ChatMessageProps = { type ChatMessageProps = {
message: UIMessage; message: UIMessage;
isReadOnly: boolean;
onAnswer: (toolCallId: string, answer: string) => void; onAnswer: (toolCallId: string, answer: string) => void;
onApprovalRespond: (response: PatchApprovalResponse) => void;
onRevert: (actionId: string) => void; onRevert: (actionId: string) => void;
isReverting: boolean; isReverting: boolean;
actionsById: Map<string, AgentAction>; actionsById: Map<string, AgentAction>;
@@ -129,6 +140,7 @@ export type AgentChatProps = {
isReadOnly: boolean; isReadOnly: boolean;
readOnlyReason: "archived" | "missing" | null; readOnlyReason: "archived" | "missing" | null;
threadStatus: string; threadStatus: string;
reviewPatches: boolean;
activeRunId: string | null; activeRunId: string | null;
actions: AgentAction[]; actions: AgentAction[];
onToggleThreads?: () => void; onToggleThreads?: () => void;
@@ -149,6 +161,7 @@ type AgentChatMessagesProps = {
isStreaming: boolean; isStreaming: boolean;
messages: UIMessage[]; messages: UIMessage[];
onAnswer: (toolCallId: string, answer: string) => void; onAnswer: (toolCallId: string, answer: string) => void;
onApprovalRespond: (response: PatchApprovalResponse) => void;
onRevert: (actionId: string) => void; onRevert: (actionId: string) => void;
onRetry: () => void; onRetry: () => void;
onStarterSelect: (prompt: string) => void; onStarterSelect: (prompt: string) => void;
@@ -158,12 +171,17 @@ type AgentChatHeaderProps = {
isArchived: boolean; isArchived: boolean;
isArchivePending: boolean; isArchivePending: boolean;
isDeletePending: boolean; isDeletePending: boolean;
isUpdatePending: boolean;
isStreaming: boolean;
reviewPatches: boolean;
threadTokenTotal: number;
onArchive: () => void; onArchive: () => void;
onCopyConversation: () => void; onCopyConversation: () => void;
onCopyConversationJson: () => void; onCopyConversationJson: () => void;
onDelete: () => void; onDelete: () => void;
onClose?: () => void; onClose?: () => void;
onToggleResume?: () => void; onToggleResume?: () => void;
onToggleReviewPatches: (reviewPatches: boolean) => void;
onToggleThreads?: () => void; onToggleThreads?: () => void;
}; };
@@ -263,9 +281,21 @@ function PatchToolCard({ part, action, onRevert, isReverting }: PatchToolCardPro
</Button> </Button>
) : null} ) : null}
</div> </div>
<pre className="max-h-72 overflow-auto whitespace-pre-wrap break-words rounded border bg-background p-3 font-mono text-[0.7rem] leading-relaxed"> {operations.length > 0 ? (
<ul className="max-h-48 space-y-1 overflow-auto rounded border bg-background p-2">
{operations.map((operation, index) => (
<OperationRow key={`${String((operation as { path?: unknown }).path)}-${index}`} operation={operation} />
))}
</ul>
) : null}
<details>
<summary className="cursor-pointer text-muted-foreground/70 hover:text-foreground">
<Trans>Raw JSON</Trans>
</summary>
<pre className="mt-1 max-h-72 overflow-auto whitespace-pre-wrap break-words rounded border bg-background p-3 font-mono text-[0.7rem] leading-relaxed">
{rawPayload} {rawPayload}
</pre> </pre>
</details>
</div> </div>
</details> </details>
); );
@@ -397,7 +427,8 @@ function StarterPromptMarquee({ onSelect }: StarterPromptMarqueeProps) {
// unique key. Content-derived keys collide — every `step-start` part serializes identically. // unique key. Content-derived keys collide — every `step-start` part serializes identically.
const getMessagePartKey = (messageId: string, index: number) => `${messageId}-${index}`; const getMessagePartKey = (messageId: string, index: number) => `${messageId}-${index}`;
export function AssistantMarkdown({ text }: AssistantMarkdownProps) { // Memoized on the text string, so completed markdown stops re-rendering during streaming.
export const AssistantMarkdown = memo(function AssistantMarkdown({ text }: AssistantMarkdownProps) {
return ( return (
<ReactMarkdown <ReactMarkdown
skipHtml skipHtml
@@ -437,7 +468,7 @@ export function AssistantMarkdown({ text }: AssistantMarkdownProps) {
{text} {text}
</ReactMarkdown> </ReactMarkdown>
); );
} });
function FileAttachment({ filename, mediaType, state = "done" }: FileAttachmentProps) { function FileAttachment({ filename, mediaType, state = "done" }: FileAttachmentProps) {
return ( return (
@@ -456,7 +487,7 @@ function FileAttachment({ filename, mediaType, state = "done" }: FileAttachmentP
// The agent asks one question at a time, so this is a single-item Questionnaire: radio choices plus a // The agent asks one question at a time, so this is a single-item Questionnaire: radio choices plus a
// freeform answer, submitted as the tool output. `Questionnaire` owns the fieldset/legend semantics, // freeform answer, submitted as the tool output. `Questionnaire` owns the fieldset/legend semantics,
// keyboard shortcuts, focus management, and required-answer validation. // keyboard shortcuts, focus management, and required-answer validation.
export function AskUserQuestion({ part, answer, onAnswer }: AskUserQuestionProps) { export function AskUserQuestion({ part, answer, disabled, onAnswer }: AskUserQuestionProps) {
const input = const input =
"input" in part && typeof part.input === "object" && part.input ? (part.input as Record<string, unknown>) : {}; "input" in part && typeof part.input === "object" && part.input ? (part.input as Record<string, unknown>) : {};
const choices = Array.isArray(input.choices) const choices = Array.isArray(input.choices)
@@ -465,7 +496,9 @@ export function AskUserQuestion({ part, answer, onAnswer }: AskUserQuestionProps
const question = typeof input.question === "string" ? input.question : t`The agent needs your input.`; const question = typeof input.question === "string" ? input.question : t`The agent needs your input.`;
const toolCallId = "toolCallId" in part && typeof part.toolCallId === "string" ? part.toolCallId : null; const toolCallId = "toolCallId" in part && typeof part.toolCallId === "string" ? part.toolCallId : null;
if (answer !== null || !toolCallId) { // Read-only threads (archived, missing resume/provider) render the static view: answering would
// only mutate local state before the server rejects the continuation.
if (answer !== null || !toolCallId || disabled) {
return ( return (
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1">
<p className="font-medium">{question}</p> <p className="font-medium">{question}</p>
@@ -507,7 +540,16 @@ export function AskUserQuestion({ part, answer, onAnswer }: AskUserQuestionProps
); );
} }
function MessagePart({ part, isUser, onAnswer, onRevert, isReverting, actionsById }: MessagePartProps) { function MessagePart({
part,
isUser,
isReadOnly,
onAnswer,
onApprovalRespond,
onRevert,
isReverting,
actionsById,
}: MessagePartProps) {
if (part.type === "text") { if (part.type === "text") {
return ( return (
<Bubble variant={isUser ? "default" : "ghost"} align={isUser ? "end" : "start"}> <Bubble variant={isUser ? "default" : "ghost"} align={isUser ? "end" : "start"}>
@@ -543,13 +585,25 @@ function MessagePart({ part, isUser, onAnswer, onRevert, isReverting, actionsByI
return ( return (
<Bubble variant="outline" className="max-w-full"> <Bubble variant="outline" className="max-w-full">
<BubbleContent className="w-full"> <BubbleContent className="w-full">
<AskUserQuestion part={part} answer={answer} onAnswer={onAnswer} /> <AskUserQuestion part={part} answer={answer} disabled={isReadOnly} onAnswer={onAnswer} />
</BubbleContent> </BubbleContent>
</Bubble> </Bubble>
); );
} }
if (part.type === "tool-apply_resume_patch") { if (part.type === "tool-apply_resume_patch") {
const state = "state" in part && typeof part.state === "string" ? part.state : null;
if (state === "approval-requested" || state === "approval-responded" || state === "output-denied") {
return (
<Bubble variant="outline" className="max-w-full">
<BubbleContent className="w-full">
<PatchApprovalCard part={part} disabled={isReadOnly} onRespond={onApprovalRespond} />
</BubbleContent>
</Bubble>
);
}
const output = const output =
"output" in part && typeof part.output === "object" && part.output "output" in part && typeof part.output === "object" && part.output
? (part.output as Record<string, unknown>) ? (part.output as Record<string, unknown>)
@@ -566,55 +620,149 @@ function MessagePart({ part, isUser, onAnswer, onRevert, isReverting, actionsByI
); );
} }
if (part.type === "source-url") { if (part.type === "file") {
const title = part.title?.trim() || null; return <FileAttachment filename={part.filename ?? part.url} mediaType={part.mediaType} />;
}
// Previously-invisible tool activity: read_resume, read_attachment, provider-native web_search,
// and dynamic tools echoed back after a provider switch.
if (
part.type === "tool-read_resume" ||
part.type === "tool-read_attachment" ||
part.type === "tool-web_search" ||
part.type === "dynamic-tool"
) {
return ( return (
<Bubble variant="ghost" className="max-w-full"> <Bubble variant="ghost" className="max-w-full">
<BubbleContent className="w-full"> <BubbleContent className="w-full">
<a className="block text-primary text-sm underline" href={part.url} target="_blank" rel="noreferrer"> <ToolPartCard part={part} />
{title ? (
<>
<span className="block truncate">{title}</span>
<span className="block truncate text-muted-foreground">{part.url}</span>
</>
) : (
<span className="block truncate">{part.url}</span>
)}
</a>
</BubbleContent> </BubbleContent>
</Bubble> </Bubble>
); );
} }
if (part.type === "file") {
return <FileAttachment filename={part.filename ?? part.url} mediaType={part.mediaType} />;
}
return null; return null;
} }
function ChatMessage({ message, onAnswer, onRevert, isReverting, actionsById }: ChatMessageProps) { type SourceUrlPartLike = { type: "source-url"; url: string; title?: string | null };
function SourcesBlock({ parts }: { parts: SourceUrlPartLike[] }) {
return (
<Bubble variant="ghost" className="max-w-full">
<BubbleContent className="w-full">
<p className="mb-1 font-medium text-muted-foreground text-xs">
<Trans>Sources</Trans>
</p>
<ul className="space-y-1">
{parts.map((part, index) => {
const title = part.title?.trim() || null;
return (
// Providers can cite the same URL more than once; the index keeps keys unique.
<li key={`${part.url}-${index}`}>
<a className="block text-primary text-sm underline" href={part.url} target="_blank" rel="noreferrer">
<span className="block truncate">{title ?? part.url}</span>
{title ? <span className="block truncate text-muted-foreground">{part.url}</span> : null}
</a>
</li>
);
})}
</ul>
</BubbleContent>
</Bubble>
);
}
type MessageRenderItem =
| { kind: "part"; key: string; part: UIMessage["parts"][number] }
| { kind: "sources"; key: string; parts: SourceUrlPartLike[] };
// Consecutive source-url parts collapse into one sources block instead of a bubble per link.
function buildRenderItems(message: UIMessage): MessageRenderItem[] {
const items: MessageRenderItem[] = [];
for (const [index, part] of message.parts.entries()) {
if (part.type === "source-url") {
const last = items.at(-1);
if (last?.kind === "sources") {
last.parts.push(part as SourceUrlPartLike);
continue;
}
items.push({ kind: "sources", key: getMessagePartKey(message.id, index), parts: [part as SourceUrlPartLike] });
continue;
}
items.push({ kind: "part", key: getMessagePartKey(message.id, index), part });
}
return items;
}
type MessageUsageMetadata = {
model?: string;
usage?: { totalTokens?: number; cachedInputTokens?: number };
};
function MessageTokenFooter({ message }: { message: UIMessage }) {
// Loose read: legacy rows have no metadata and must keep rendering.
const metadata = (message as { metadata?: MessageUsageMetadata }).metadata;
const total = metadata?.usage?.totalTokens;
if (typeof total !== "number") return null;
const cached = metadata?.usage?.cachedInputTokens;
// Label-form ("Tokens: N") avoids noun declension against the count entirely, so the string
// stays grammatical at N=1 in every locale without ICU plural catalogs.
return (
<p className="px-1 text-[0.7rem] text-muted-foreground/70">
{metadata?.model ? `${metadata.model} · ` : null}
{typeof cached === "number" && cached > 0 ? (
<Trans>
Tokens: {total} ({cached} cached)
</Trans>
) : (
<Trans>Tokens: {total}</Trans>
)}
</p>
);
}
// Memoized: completed messages keep stable part references, so they stop re-rendering while a
// later message streams (the handlers passed down are useCallback-stable).
const ChatMessage = memo(function ChatMessage({
message,
isReadOnly,
onAnswer,
onApprovalRespond,
onRevert,
isReverting,
actionsById,
}: ChatMessageProps) {
const isUser = message.role === "user"; const isUser = message.role === "user";
return ( return (
<Message align={isUser ? "end" : "start"}> <Message align={isUser ? "end" : "start"}>
<MessageContent className={cn(isUser ? "items-end" : "items-start")}> <MessageContent className={cn(isUser ? "items-end" : "items-start")}>
{message.parts.map((part, index) => ( {buildRenderItems(message).map((item) =>
item.kind === "sources" ? (
<SourcesBlock key={item.key} parts={item.parts} />
) : (
<MessagePart <MessagePart
key={getMessagePartKey(message.id, index)} key={item.key}
part={part} part={item.part}
isUser={isUser} isUser={isUser}
isReadOnly={isReadOnly}
onAnswer={onAnswer} onAnswer={onAnswer}
onApprovalRespond={onApprovalRespond}
onRevert={onRevert} onRevert={onRevert}
isReverting={isReverting} isReverting={isReverting}
actionsById={actionsById} actionsById={actionsById}
/> />
))} ),
)}
{message.role === "assistant" ? <MessageTokenFooter message={message} /> : null}
</MessageContent> </MessageContent>
</Message> </Message>
); );
} });
export function AgentChat({ export function AgentChat({
threadId, threadId,
@@ -622,6 +770,7 @@ export function AgentChat({
isReadOnly, isReadOnly,
readOnlyReason, readOnlyReason,
threadStatus, threadStatus,
reviewPatches,
activeRunId, activeRunId,
actions, actions,
onToggleThreads, onToggleThreads,
@@ -642,6 +791,7 @@ export function AgentChat({
const revertMutation = useMutation(orpc.agent.actions.revert.mutationOptions()); const revertMutation = useMutation(orpc.agent.actions.revert.mutationOptions());
const archiveMutation = useMutation(orpc.agent.threads.archive.mutationOptions()); const archiveMutation = useMutation(orpc.agent.threads.archive.mutationOptions());
const deleteMutation = useMutation(orpc.agent.threads.delete.mutationOptions()); const deleteMutation = useMutation(orpc.agent.threads.delete.mutationOptions());
const updateThreadMutation = useMutation(orpc.agent.threads.update.mutationOptions());
const isArchived = threadStatus === "archived"; const isArchived = threadStatus === "archived";
const refreshThread = useCallback(async () => { const refreshThread = useCallback(async () => {
@@ -726,12 +876,26 @@ export function AgentChat({
[threadId], [threadId],
); );
const { messages, sendMessage, regenerate, setMessages, status, error, clearError, addToolOutput } = useChat({ const {
messages,
sendMessage,
regenerate,
setMessages,
status,
error,
clearError,
addToolOutput,
addToolApprovalResponse,
} = useChat<AgentUIMessage>({
id: threadId, id: threadId,
messages: initialMessages, messages: initialMessages as AgentUIMessage[],
resume: !!activeRunId, resume: !!activeRunId,
transport, transport,
sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithToolCalls, throttle: 50,
messageMetadataSchema: agentMessageMetadataSchema,
sendAutomaticallyWhen: (options) =>
lastAssistantMessageIsCompleteWithToolCalls(options) ||
lastAssistantMessageIsCompleteWithApprovalResponses(options),
onFinish: () => { onFinish: () => {
void refreshThread(); void refreshThread();
}, },
@@ -762,11 +926,20 @@ export function AgentChat({
useEffect(() => { useEffect(() => {
if (lastSyncedThreadIdRef.current === threadId) return; if (lastSyncedThreadIdRef.current === threadId) return;
lastSyncedThreadIdRef.current = threadId; lastSyncedThreadIdRef.current = threadId;
setMessages(initialMessages); setMessages(initialMessages as AgentUIMessage[]);
}, [threadId, initialMessages, setMessages]); }, [threadId, initialMessages, setMessages]);
const isStreaming = status === "submitted" || status === "streaming"; const isStreaming = status === "submitted" || status === "streaming";
const threadTokenTotal = useMemo(
() =>
messages.reduce(
(sum, message) => sum + ((message as { metadata?: MessageUsageMetadata }).metadata?.usage?.totalTokens ?? 0),
0,
),
[messages],
);
const send = () => { const send = () => {
const text = input.trim(); const text = input.trim();
if ((!text && pendingAttachments.length === 0) || isReadOnly || isStreaming || isUploading) return; if ((!text && pendingAttachments.length === 0) || isReadOnly || isStreaming || isUploading) return;
@@ -809,11 +982,7 @@ export function AgentChat({
}; };
const stopRun = async () => { const stopRun = async () => {
const last = messages.at(-1); await client.agent.messages.stop({ threadId });
await client.agent.messages.stop({
threadId,
...(last?.role === "assistant" ? { partialMessage: last } : {}),
});
}; };
const copyConversationJson = () => { const copyConversationJson = () => {
@@ -840,17 +1009,46 @@ export function AgentChat({
toast.add({ type: "success", description: t`Conversation copied.` }); toast.add({ type: "success", description: t`Conversation copied.` });
}; };
const answerToolCall = (toolCallId: string, answer: string) => { const answerToolCall = useCallback(
(toolCallId: string, answer: string) => {
addToolOutput({ tool: "ask_user_question", toolCallId, output: answer }); addToolOutput({ tool: "ask_user_question", toolCallId, output: answer });
},
[addToolOutput],
);
// Responds locally; the composed sendAutomaticallyWhen resubmits the assistant message once
// every pending approval on it has a decision.
const respondToApproval = useCallback(
(response: PatchApprovalResponse) => {
void addToolApprovalResponse(response);
},
[addToolApprovalResponse],
);
const toggleReviewPatches = (nextReviewPatches: boolean) => {
updateThreadMutation.mutate(
{ id: threadId, reviewPatches: nextReviewPatches },
{
onSuccess: () => void refreshThread(),
onError: (error) =>
toast.add({
type: "error",
description: getOrpcErrorMessage(error, { fallback: t`Failed to update thread settings.` }),
}),
},
);
}; };
const revertAction = (actionId: string) => { const revertActionMutate = revertMutation.mutate;
const confirmation = window.confirm( const revertAction = useCallback(
t`Restore the resume to before this patch? This will roll back this patch and any patches applied after it.`, (actionId: string) => {
); void (async () => {
const confirmation = await confirm(t`Restore the resume to before this patch?`, {
description: t`This will roll back this patch and any patches applied after it.`,
});
if (!confirmation) return; if (!confirmation) return;
revertMutation.mutate( revertActionMutate(
{ id: actionId }, { id: actionId },
{ {
onSuccess: (action) => { onSuccess: (action) => {
@@ -872,10 +1070,26 @@ export function AgentChat({
}), }),
}, },
); );
}; })();
},
[confirm, revertActionMutate, refreshThread],
);
const retryLastMessage = () => { const retryLastMessage = () => {
clearError(); clearError();
// A failed question/approval continuation must not regenerate: regenerate() removes the
// answered assistant message and resends the prior user prompt, losing the recorded
// decision. Resubmitting the transcript (sendMessage with no message) retries the
// continuation itself; regenerate stays for ordinary generation failures.
const last = messages.at(-1);
if (
last?.role === "assistant" &&
(lastAssistantMessageIsCompleteWithToolCalls({ messages }) ||
lastAssistantMessageIsCompleteWithApprovalResponses({ messages }))
) {
void sendMessage();
return;
}
void regenerate(); void regenerate();
}; };
@@ -885,12 +1099,17 @@ export function AgentChat({
isArchived={isArchived} isArchived={isArchived}
isArchivePending={archiveMutation.isPending} isArchivePending={archiveMutation.isPending}
isDeletePending={deleteMutation.isPending} isDeletePending={deleteMutation.isPending}
isUpdatePending={updateThreadMutation.isPending}
isStreaming={isStreaming}
reviewPatches={reviewPatches}
threadTokenTotal={threadTokenTotal}
onArchive={handleArchive} onArchive={handleArchive}
onClose={onClose} onClose={onClose}
onCopyConversation={copyConversationText} onCopyConversation={copyConversationText}
onCopyConversationJson={copyConversationJson} onCopyConversationJson={copyConversationJson}
onDelete={() => void handleDelete()} onDelete={() => void handleDelete()}
onToggleResume={onToggleResume} onToggleResume={onToggleResume}
onToggleReviewPatches={toggleReviewPatches}
onToggleThreads={onToggleThreads} onToggleThreads={onToggleThreads}
/> />
@@ -904,6 +1123,7 @@ export function AgentChat({
isStreaming={isStreaming} isStreaming={isStreaming}
messages={messages} messages={messages}
onAnswer={answerToolCall} onAnswer={answerToolCall}
onApprovalRespond={respondToApproval}
onRevert={revertAction} onRevert={revertAction}
onRetry={retryLastMessage} onRetry={retryLastMessage}
onStarterSelect={setInput} onStarterSelect={setInput}
@@ -947,6 +1167,7 @@ function AgentChatMessages({
isStreaming, isStreaming,
messages, messages,
onAnswer, onAnswer,
onApprovalRespond,
onRevert, onRevert,
onRetry, onRetry,
onStarterSelect, onStarterSelect,
@@ -976,9 +1197,11 @@ function AgentChatMessages({
<MessageScrollerItem key={message.id} messageId={message.id} scrollAnchor={message.role === "user"}> <MessageScrollerItem key={message.id} messageId={message.id} scrollAnchor={message.role === "user"}>
<ChatMessage <ChatMessage
message={message} message={message}
isReadOnly={isReadOnly}
isReverting={isReverting} isReverting={isReverting}
actionsById={actionsById} actionsById={actionsById}
onAnswer={onAnswer} onAnswer={onAnswer}
onApprovalRespond={onApprovalRespond}
onRevert={onRevert} onRevert={onRevert}
/> />
</MessageScrollerItem> </MessageScrollerItem>
@@ -1022,12 +1245,17 @@ function AgentChatHeader({
isArchived, isArchived,
isArchivePending, isArchivePending,
isDeletePending, isDeletePending,
isUpdatePending,
isStreaming,
reviewPatches,
threadTokenTotal,
onArchive, onArchive,
onClose, onClose,
onCopyConversation, onCopyConversation,
onCopyConversationJson, onCopyConversationJson,
onDelete, onDelete,
onToggleResume, onToggleResume,
onToggleReviewPatches,
onToggleThreads, onToggleThreads,
}: AgentChatHeaderProps) { }: AgentChatHeaderProps) {
return ( return (
@@ -1045,6 +1273,11 @@ function AgentChatHeader({
<div className="min-w-0 truncate font-semibold"> <div className="min-w-0 truncate font-semibold">
<Trans>Chat</Trans> <Trans>Chat</Trans>
</div> </div>
{threadTokenTotal > 0 ? (
<span className="shrink-0 text-muted-foreground/70 text-xs">
<Trans>Tokens: {threadTokenTotal}</Trans>
</span>
) : null}
</div> </div>
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
{onToggleResume ? ( {onToggleResume ? (
@@ -1079,6 +1312,18 @@ function AgentChatHeader({
<DropdownMenuSeparator /> <DropdownMenuSeparator />
{!isArchived ? (
<DropdownMenuCheckboxItem
checked={reviewPatches}
// Approval behavior is captured when a run starts; toggling mid-run would
// misrepresent what the streaming run actually does (server rejects it too).
disabled={isUpdatePending || isStreaming}
onCheckedChange={(checked) => onToggleReviewPatches(checked === true)}
>
<Trans>Review edits</Trans>
</DropdownMenuCheckboxItem>
) : null}
{!isArchived ? ( {!isArchived ? (
<DropdownMenuItem disabled={isArchivePending} onClick={onArchive}> <DropdownMenuItem disabled={isArchivePending} onClick={onArchive}>
<ArchiveIcon /> <ArchiveIcon />
@@ -0,0 +1,96 @@
// @vitest-environment happy-dom
import type { UIMessage } from "ai";
import type { PatchApprovalResponse } from "./patch-approval-card";
import { fireEvent, render, screen } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { PatchApprovalCard } from "./patch-approval-card";
function approvalPart(overrides: Record<string, unknown> = {}) {
return {
type: "tool-apply_resume_patch",
toolCallId: "call-1",
state: "approval-requested",
input: {
title: "Tighten summary",
summary: "Rewrites the opening line",
operations: [{ op: "replace", path: "/sections/summary/content", value: "Impact-driven engineer" }],
},
approval: { id: "approval-1", signature: "sig" },
...overrides,
} as unknown as UIMessage["parts"][number];
}
const renderCard = (part: UIMessage["parts"][number], onRespond: (response: PatchApprovalResponse) => void) =>
render(
<I18nProvider i18n={i18n}>
<PatchApprovalCard part={part} onRespond={onRespond} />
</I18nProvider>,
);
describe("PatchApprovalCard", () => {
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
it("renders the request with operation rows and calls back on approve", () => {
const onRespond = vi.fn();
renderCard(approvalPart(), onRespond);
expect(screen.getByText("Tighten summary")).toBeInTheDocument();
expect(screen.getByText("/sections/summary/content")).toBeInTheDocument();
fireEvent.click(screen.getByRole("button", { name: "Approve" }));
expect(onRespond).toHaveBeenCalledWith({ id: "approval-1", approved: true });
});
it("calls back on deny with the optional reason", () => {
const onRespond = vi.fn();
renderCard(approvalPart(), onRespond);
fireEvent.change(screen.getByRole("textbox", { name: "Optional note for the agent" }), {
target: { value: "Wrong section" },
});
fireEvent.click(screen.getByRole("button", { name: "Deny" }));
expect(onRespond).toHaveBeenCalledWith({ id: "approval-1", approved: false, reason: "Wrong section" });
});
it("renders no response controls when disabled (read-only thread)", () => {
const onRespond = vi.fn();
render(
<I18nProvider i18n={i18n}>
<PatchApprovalCard part={approvalPart()} disabled onRespond={onRespond} />
</I18nProvider>,
);
expect(screen.queryByRole("button")).not.toBeInTheDocument();
expect(screen.queryByRole("textbox")).not.toBeInTheDocument();
expect(screen.getByText("This edit request can no longer be answered.")).toBeInTheDocument();
});
it("hides the buttons once the approval has been responded to", () => {
const onRespond = vi.fn();
renderCard(
approvalPart({ state: "approval-responded", approval: { id: "approval-1", approved: true } }),
onRespond,
);
expect(screen.queryByRole("button", { name: "Approve" })).not.toBeInTheDocument();
expect(screen.getByText("Approved — waiting for the agent…")).toBeInTheDocument();
});
it("renders the declined terminal state", () => {
const onRespond = vi.fn();
renderCard(
approvalPart({ state: "output-denied", approval: { id: "approval-1", approved: false, reason: "No" } }),
onRespond,
);
expect(screen.getByText(/Edit declined/)).toBeInTheDocument();
expect(screen.queryByRole("button")).not.toBeInTheDocument();
});
});
@@ -0,0 +1,152 @@
import type { UIMessage } from "ai";
import { t } from "@lingui/core/macro";
import { Trans } from "@lingui/react/macro";
import { CheckIcon, ProhibitIcon, ShieldCheckIcon } from "@phosphor-icons/react";
import { useState } from "react";
import { Badge } from "@reactive-resume/ui/components/badge";
import { Button } from "@reactive-resume/ui/components/button";
import { Textarea } from "@reactive-resume/ui/components/textarea";
import { cn } from "@reactive-resume/utils/style";
export type PatchApprovalResponse = {
id: string;
approved: boolean;
reason?: string;
};
export type PatchApprovalCardProps = {
part: UIMessage["parts"][number];
disabled?: boolean;
onRespond: (response: PatchApprovalResponse) => void;
};
type ApprovalPartFields = {
state?: string;
input?: unknown;
approval?: { id?: string; approved?: boolean; reason?: string };
};
export type PatchOperationLike = { op?: unknown; path?: unknown; value?: unknown; from?: unknown };
function truncateValue(value: unknown, max = 80) {
if (value === undefined) return null;
const text = typeof value === "string" ? value : JSON.stringify(value);
return text.length > max ? `${text.slice(0, max - 1)}` : text;
}
export function OperationRow({ operation }: { operation: PatchOperationLike }) {
const valuePreview = truncateValue(operation.value);
return (
<li className="flex min-w-0 items-baseline gap-2 font-mono text-[0.7rem] leading-relaxed">
<Badge variant="outline" className="shrink-0 font-mono uppercase">
{String(operation.op ?? "?")}
</Badge>
<span className="shrink-0 text-foreground">{String(operation.path ?? "")}</span>
{typeof operation.from === "string" ? (
<span className="truncate text-muted-foreground">
{/* One translatable phrase: several languages place the source marker after the path. */}
<Trans>Source: {operation.from}</Trans>
</span>
) : null}
{valuePreview ? <span className="truncate text-muted-foreground">{valuePreview}</span> : null}
</li>
);
}
// Renders the approval lifecycle of an apply_resume_patch call: a pending request with
// Approve/Deny, the waiting state after a response, and the declined terminal state.
export function PatchApprovalCard({ part, disabled, onRespond }: PatchApprovalCardProps) {
const [reason, setReason] = useState("");
const fields = part as ApprovalPartFields;
const input = (typeof fields.input === "object" && fields.input ? fields.input : {}) as Record<string, unknown>;
const title = typeof input.title === "string" ? input.title : t`Resume edit`;
const summary = typeof input.summary === "string" ? input.summary : null;
const operations = Array.isArray(input.operations) ? (input.operations as PatchOperationLike[]) : [];
const approvalId = typeof fields.approval?.id === "string" ? fields.approval.id : null;
const state = fields.state;
if (state === "output-denied") {
return (
<div className="flex items-center gap-2 text-muted-foreground text-xs">
<ProhibitIcon />
<span>
<Trans>Edit declined</Trans>
{fields.approval?.reason ? `${fields.approval.reason}` : null}
</span>
</div>
);
}
// Read-only threads keep the request visible but never actionable: responding would only
// change local state before the server rejects the continuation.
const isPending = state === "approval-requested" && approvalId !== null && !disabled;
return (
<div className="space-y-3 text-sm">
<div className="flex items-center gap-2 font-medium">
<ShieldCheckIcon className="text-muted-foreground" />
<span>
<Trans>Review this edit</Trans>
</span>
</div>
<div className="min-w-0">
<p className="truncate font-medium">{title}</p>
{summary ? <p className="mt-0.5 text-muted-foreground text-xs">{summary}</p> : null}
</div>
{operations.length > 0 ? (
<ul className="max-h-48 space-y-1 overflow-auto rounded-md border bg-muted/20 p-2">
{operations.map((operation, index) => (
<OperationRow key={`${String(operation.path)}-${index}`} operation={operation} />
))}
</ul>
) : null}
{isPending ? (
<>
<Textarea
rows={1}
value={reason}
aria-label={t`Optional note for the agent`}
placeholder={t`Optional note for the agent…`}
className="min-h-8 text-xs"
onChange={(event) => setReason(event.target.value)}
/>
<div className="flex items-center gap-2">
<Button
size="sm"
onClick={() =>
onRespond({ id: approvalId, approved: true, ...(reason.trim() ? { reason: reason.trim() } : {}) })
}
>
<CheckIcon />
<Trans>Approve</Trans>
</Button>
<Button
size="sm"
variant="outline"
onClick={() =>
onRespond({ id: approvalId, approved: false, ...(reason.trim() ? { reason: reason.trim() } : {}) })
}
>
<ProhibitIcon />
<Trans>Deny</Trans>
</Button>
</div>
</>
) : (
<p className={cn("text-muted-foreground text-xs")}>
{fields.approval?.approved === false ? (
<Trans>Denied waiting for the agent</Trans>
) : fields.approval?.approved === true ? (
<Trans>Approved waiting for the agent</Trans>
) : (
<Trans>This edit request can no longer be answered.</Trans>
)}
</p>
)}
</div>
);
}
@@ -0,0 +1,81 @@
import type { UIMessage } from "ai";
import { t } from "@lingui/core/macro";
import { FileTextIcon, GlobeIcon, ReadCvLogoIcon, WrenchIcon } from "@phosphor-icons/react";
import { Badge } from "@reactive-resume/ui/components/badge";
export type ToolPartCardProps = {
part: UIMessage["parts"][number];
};
type ToolPartFields = {
type: string;
toolName?: string;
state?: string;
input?: unknown;
output?: unknown;
errorText?: string;
};
function toolDisplay(part: ToolPartFields): { label: string; icon: React.ReactNode } {
switch (part.type) {
case "tool-read_resume": {
return { label: t`Read the resume`, icon: <ReadCvLogoIcon /> };
}
case "tool-read_attachment": {
return { label: t`Read an attachment`, icon: <FileTextIcon /> };
}
case "tool-web_search": {
// State-neutral: this label sits next to a live Running…/Done/Failed badge.
return { label: t`Web search`, icon: <GlobeIcon /> };
}
default: {
return { label: part.toolName ?? part.type, icon: <WrenchIcon /> };
}
}
}
function stateBadge(state: string | undefined, errorText: string | undefined) {
if (state === "output-error" || errorText) return { label: t`Failed`, variant: "destructive" as const };
if (state === "output-available") return { label: t`Done`, variant: "outline" as const };
return { label: t`Running…`, variant: "secondary" as const };
}
function payloadPreview(value: unknown) {
if (value === undefined || value === null) return null;
const text = typeof value === "string" ? value : JSON.stringify(value, null, 2);
return text.length > 4_000 ? `${text.slice(0, 4_000)}` : text;
}
// Generic collapsed card for tool activity that previously rendered as nothing:
// read_resume / read_attachment / web_search plus the dynamic-tool fallback.
export function ToolPartCard({ part }: ToolPartCardProps) {
const fields = part as ToolPartFields;
const { label, icon } = toolDisplay(fields);
const badge = stateBadge(fields.state, fields.errorText);
const inputPreview = payloadPreview(fields.input);
const outputPreview = payloadPreview(fields.output);
return (
<details className="group text-muted-foreground text-xs">
<summary className="inline-flex cursor-pointer list-none items-center gap-2 rounded-md py-1 font-medium hover:text-foreground [&::-webkit-details-marker]:hidden">
{icon}
<span>{label}</span>
<Badge variant={badge.variant}>{badge.label}</Badge>
</summary>
<div className="mt-2 space-y-2 rounded-md border bg-muted/20 p-3">
{fields.errorText ? <p className="text-rose-500">{fields.errorText}</p> : null}
{inputPreview && inputPreview !== "{}" ? (
<pre className="max-h-40 overflow-auto whitespace-pre-wrap break-words rounded border bg-background p-2 font-mono text-[0.7rem]">
{inputPreview}
</pre>
) : null}
{outputPreview ? (
<pre className="max-h-72 overflow-auto whitespace-pre-wrap break-words rounded border bg-background p-2 font-mono text-[0.7rem]">
{outputPreview}
</pre>
) : null}
</div>
</details>
);
}
@@ -82,6 +82,7 @@ function AiAssistantThread({ threadId, onClose }: AiAssistantThreadProps) {
isReadOnly={data.isReadOnly} isReadOnly={data.isReadOnly}
readOnlyReason={readOnlyReason} readOnlyReason={readOnlyReason}
threadStatus={data.thread.status} threadStatus={data.thread.status}
reviewPatches={data.thread.reviewPatches}
activeRunId={data.thread.activeRunId} activeRunId={data.thread.activeRunId}
actions={data.actions} actions={data.actions}
onClose={onClose} onClose={onClose}
+111
View File
@@ -0,0 +1,111 @@
# ADR 0002: Agent AI SDK Adoption
## Status
Proposed
## Context
The `/agent` workspace (and the builder's in-resume assistant) is a single `ToolLoopAgent` loop in `packages/api/src/features/agent/service.ts` with four tools, resumable Redis streams, Postgres-persisted `UIMessage` history, and snapshot-based undo.
LangGraph was evaluated and rejected: everything it would add (loop control, persistence, resumability, interrupts) is already built here on the AI SDK. This work instead adopts more of the AI SDK v7 surface (`ai@7.0.66`, already installed) to fix real defects and add the features it makes cheap, plus shadcn's `@shadcn/helpers` ai-sdk fixture library (a deterministic scripted `ChatTransport` for `useChat` — a testing harness, not a runtime HITL implementation) for backend-free UI tests.
Defects driving this:
1. Unbounded context growth — every turn replays the full thread, including every full-resume `read_resume` dump; long threads will exceed model context and permanently break.
2. Stale-resume editing — `apply_resume_patch` returns only metadata; subsequent JSON Patch array indexes can silently target wrong items after removes/moves.
3. Crash-unsafe runs — patches commit immediately but the assistant message persists only in `onFinish`; process death orphans applied edits; a stuck `activeRunId` (no reaper; `activeRunStartedAt` written, never read) permanently CONFLICTs the thread.
4. Client-trusted cancellation — `messages.stop` persists a client-authored `partialMessage`.
5. Weak validation — `isUiMessage` checks three fields; arbitrary `parts` get persisted and replayed.
6. No run guards — no timeout, `maxRetries`, or `maxOutputTokens` on the run.
7. Invisible tool activity — `tool-read_resume`/`read_attachment`/`web_search`/`dynamic-tool` parts render as nothing; the patch card is a raw `JSON.stringify` dump; zero token-usage visibility.
8. Latent bug found during design: on an `ask_user_question` continuation, `toUIMessageStream({originalMessages})` continues the existing assistant message (same `uiMessage.id`) but `persistMessage` is insert-only, producing duplicate rows sharing one message id. Fixed by the Phase 1 upsert; regression-tested.
Verified API surface from published `ai@7.0.66` and `@ai-sdk/react@4.0.69` typings and docs: `prepareStep` and `pruneMessages`; tool-level `needsApproval`, call-level `toolApproval`, `experimental_toolApprovalSecret` (HMAC-signs approval requests); UIMessage tool-part states `approval-requested`/`approval-responded`/`output-denied`; `lastAssistantMessageIsCompleteWithApprovalResponses`; `useChat().addToolApprovalResponse`; `validateUIMessages`/`safeValidateUIMessages`; `repairToolCall`; tool `inputExamples` plus `addToolInputExamplesMiddleware`; `messageMetadata` on `toUIMessageStream` (plus `messageMetadataSchema` on `useChat`); `onStepEnd`; `ToolLoopAgentSettings` extends `LanguageModelCallOptions` so `timeout`/`maxOutputTokens`/`maxRetries` are valid in the constructor; `smoothStream` passed as `agent.stream({ experimental_transform })`; `useChat` `throttle`; `isStepCount`; `InferAgentUIMessage`; `LanguageModelUsage` with cache read/write detail; `totalUsage` on finish events.
Constraints the implementation must respect:
- `getAgentModel` silently switches to the OpenAI Responses API for direct-OpenAI web-search models — every model-facing change is QA'd on both a Responses and a chat-completions provider.
- Abort reasons must be `DOMException(label, "AbortError")`; `AbortSignal.timeout()`/`AbortSignal.any()` produce `TimeoutError` and would crash the resumable-stream pump, so the run timeout uses `setTimeout` plus `controller.abort(abortReason("RUN_TIMEOUT"))`.
- The `activeRunControllers` map is single-process; multi-process abort (Redis pub/sub) is explicitly out of scope.
- `service.test.ts` mocks the whole `"ai"` module with a closed factory and scripts DB queries positionally; the test harness is migrated first (Phase 1.0).
- Shared contracts live in `packages/ai` (runtime-universal per ADR 0001): zod-only runtime, `import type` from `"ai"` only, with `ai` added to devDependencies.
- No new environment variables anywhere in this plan (the approval secret derives from `ENCRYPTION_SECRET`), so `turbo.json` `globalEnv` stays untouched.
- `resumeService.patchInTransaction` already accepts `expectedUpdatedAt` and throws `RESUME_VERSION_CONFLICT`; the agent tool just passes it.
- Legacy persisted rows must never hard-fail: validation happens only at the network boundary (schema-less), and the metadata schema is loose and optional.
- Lingui macros for all new user-facing copy; Base UI `render` prop (no Radix `asChild`); `cn` from `@reactive-resume/utils/style`; toasts via `toast.add`.
## Decision
Adopt the AI SDK v7 surface in three phases on top of the existing loop, rather than introducing a graph framework.
### Phase 1 — correctness
Order: 1.0 → 1.1 → 1.2 → 1.3 → 1.4 → 1.5 → 1.6 (spine: 1.3 → 1.4 → 1.5; 1.6 last because it changes model-visible behavior).
- **1.0 Test-harness prep (no behavior change).** Replace the closed `vi.mock("ai")` factory with a spread-actual factory so pure helpers (`isStepCount`, `safeValidateUIMessages`, `pruneMessages`, `JsonToSseTransformStream`) stay real and only the scripted seams (`convertToModelMessages`, `ToolLoopAgent`) stay mocked. Adopt the rule that new DB queries on the send path go into separate injectable modules (the `runs.ts` pattern) and are module-mocked wholesale. Gate: suite green with zero source changes.
- **1.1 Run guards, snapshot consistency, misc.** `createAgent` adds `maxOutputTokens: 8_192`, `maxRetries: 2`, `timeout: 120_000` (per provider request). Whole-run wall clock: after run claim, `setTimeout(() => controller.abort(abortReason("RUN_TIMEOUT")), 600_000)`, handle stored in a module map keyed by runId and cleared in `cleanupActiveRun`. `applyResumePatch` passes `expectedUpdatedAt` to `patchInTransaction` and rethrows `RESUME_VERSION_CONFLICT` as a recoverable tool error. `readAttachment` uses a named `MAX_ATTACHMENT_TEXT_CHARS` constant.
- **1.2 Real message validation at the send boundary.** Keep `isUiMessage` as the sync oRPC gate; inside `messages.send`, run `safeValidateUIMessages({ messages: [input.message] })` before `claimActiveAgentRun` and return BAD_REQUEST on failure. Deliberately schema-less so provider-echoed parts pass and replayed history is never re-validated.
- **1.3 Crash-safe incremental persistence (draft row).** New `messages-persistence.ts` (injectable DB): `applyStepToUiMessage` (pure fold), `insertDraftAssistantMessage`, `upsertAssistantUiMessage` (by row id, then by `uiMessage->>'id'`, then insert), `deleteDraftIfEmpty`. The service pre-generates the response message id, inserts a draft before `agent.stream`, folds and upserts on `onStepEnd` (≤30 writes/run), and upserts the SDK's authoritative message with `completed|canceled` in `onFinish`. `apply_resume_patch` threads `toolCallId` through and sets `agentAction.messageId` at INSERT time. The upsert also fixes the duplicate-row continuation bug (defect 8).
- **1.4 Server-side cancellation.** `messages.stop` drops `partialMessage` persistence; the body aborts with `abortReason("USER_STOPPED")`, clears the timeout handle, and clears the run claim. Partial content persists server-side via `onFinish({isAborted: true})`. The router keeps `partialMessage` in the input schema for one release (deprecated, ignored).
- **1.5 Stale-run reaper.** `STALE_AGENT_RUN_TTL_MS = 15 * 60_000` (greater than the run timeout, so live runs always die by their own timeout first; deliberately TTL-only and multi-replica-safe). Wired at server boot, lazily in `messages.send` before the CONFLICT throw, and at the top of `threads.get`. Reap conditionally clears run columns and flips `streaming` draft rows to `canceled`, appending synthetic `tool-apply_resume_patch` parts rebuilt from action rows so replayed history stays provider-valid. Applied actions stay applied — they are real committed edits, individually revertable.
- **1.6 Context growth: fresh-document patch output plus pruning.** `applyResumePatch` returns the full post-patch document plus `changedPaths`, with a tool description telling the model to base further patches on it. New pure `context.ts`: `AGENT_CONTEXT_TOKEN_BUDGET = 40_000`, `estimateTokenCount` (chars/4), `pruneAgentModelContext`. `createAgent` gains `prepareStep` wiring so pruning runs every loop step.
Pruning tiers (all pure, wired via `prepareStep`):
- Tier 0, always: supersede resume snapshots — every `read_resume` result and every patch result's embedded `resume` except the last in the conversation becomes a stub note. A stale snapshot is actively harmful (shifted indexes), so this runs even in short threads; exactly one full snapshot survives, positioned where the model last acted.
- Tier 1, over budget: strip reasoning from all but the last assistant message.
- Tier 2, still over: collapse oldest tool call/result pairs (never orphan one side — several BYOK gateways reject unpaired tool messages) into one-line stubs, excluding the last assistant message, unresolved question/approval parts, and the surviving snapshot.
- Tier 3, last resort: attachment parts on non-latest user messages become stubs teaching the `read_attachment` recovery path.
- Never pruned: instructions, latest user message, last assistant message, unresolved interactive parts.
Full-document patch output was chosen over a `prepareStep`-injected "current resume" reminder because a reminder re-sends a snapshot every step, defeats provider prompt caching, and splits authority into two places; a summarized view invites hallucination and forces a `read_resume` round-trip per edit against a 30-step cap. Output plus Tier 0 bounds cost: N patches do not produce N surviving snapshots.
### Phase 2 — human-in-the-loop approvals
Order: 2.1 contracts → 2.2 migration/endpoint → 2.3 tool+secret → 2.4 merge/continuation → 2.5 UI → 2.6 tests.
- **2.1 Shared typed tool contracts in `packages/ai`.** New `agent-tool-contracts.ts` with zod schemas for tool inputs/outputs and a loose all-optional message metadata schema, plus `AgentTools`/`AgentUIMessage` types. `"ai"` goes in devDependencies, `import type` only; zod stays the only runtime import.
- **2.2 Migration plus thread setting.** `reviewPatches: boolean, default false` on `agentThread` (the plan's only migration), a `threads.update` procedure, and the flag in `toThreadSummary`. Auto-apply stays the default.
- **2.3 `needsApproval` plus HMAC secret.** `getAgentToolApprovalSecret()` derives `sha256(ENCRYPTION_SECRET + ":agent-tool-approval")` — domain-separated from the AES key, no new env var, and deterministic so a signature minted at halt verifies at continuation even across a restart. `buildAgentTools` gains `requirePatchApproval`; `createAgent` reads `thread.reviewPatches` and passes `experimental_toolApprovalSecret`.
- **2.4 Merge generalization plus continuation.** Extract the tool-response merge into `messages-merge.ts` as `mergeClientToolResponses`, handling both `ask_user_question` outputs and `approval-responded` parts in one pass. `{0,0}` maps to BAD_REQUEST, `{0,>0}` to CONFLICT("already handled") before claiming a run.
- **2.5 Client: approval UI, composed auto-send, `useConfirm`.** `sendAutomaticallyWhen` composes `lastAssistantMessageIsCompleteWithToolCalls` with `lastAssistantMessageIsCompleteWithApprovalResponses`. New `patch-approval-card.tsx` (web feature, not `packages/ui`) renders `approval-requested` with Approve/Deny plus optional reason, and `output-denied` as a muted declined card. A "Review edits" toggle lands in the thread menu. `window.confirm` is replaced with the existing `useConfirm()`.
- **2.6 Approval-flow tests with `@shadcn/helpers`.** Component tests for the card, plus a small harness wiring `useChat` to the scripted transport to exercise the composed auto-send and approval state machine with no backend. `AgentChat` is not refactored to accept a transport prop just for tests.
Approval flow end-to-end: the halt leaves no active run (identical lifecycle to today's `ask_user_question` halt); the client resubmits the last assistant message byte-for-byte through the existing transport; the merge copies approval-response fields onto the stored, signed request part matched by `toolCallId` plus approval id, so a client cannot substitute a forged request; the continuation run replays history, the fresh agent derives the same secret, the signature verifies, and the SDK executes (or denies) the call, streaming into the same message id via the 1.3 upsert — which is load-bearing, so 1.3 ships before 2.4. Idempotency ladder: UI disables buttons on state flip → concurrent sends race the atomic `claimActiveAgentRun` → post-completion resubmits match `alreadyResolved` and CONFLICT before any run is claimed → conflicting approved values are BAD_REQUEST.
### Phase 3 — visibility and polish
- **3.1 Usage metadata.** `messageMetadata` on `toUIMessageStream` records `{usage, model}` on finish; it round-trips in the `uiMessage` jsonb with no migration. The client renders a muted per-message token footer and a per-thread aggregate; legacy rows without metadata render fine.
- **3.2 Render the invisible parts plus a real patch card.** New generic `tool-part-card.tsx` (collapsed icon/label/state card with expandable input/output) for `read_resume`/`read_attachment`/`web_search`/`dynamic-tool`; the patch card gains human-readable operation rows with raw JSON demoted to a nested `details` block; consecutive `source-url` parts group into one sources block.
- **3.3 Streaming performance.** `useChat({throttle: 50})`, memoized markdown/message components, and `smoothStream({chunking: "word"})` via `experimental_transform`.
- **3.4 Tool-input robustness.** `inputExamples` on `apply_resume_patch` plus `addToolInputExamplesMiddleware`; a `repairToolCall` callback (`repair.ts`) that runs `jsonrepair`, strips `/data` prefixes and section shortcuts, and re-validates against the shared schema, falling back to the SDK re-ask on `null`. `normalizeAgentResumePatchOperations` stays as last-line defense; the instructions blob shrinks accordingly.
- **3.5 Structured logging plus provider options.** One JSON line per step (`agent.step`) and per tool execution (`agent.tool`) — greppable structured console, no OpenTelemetry dependency. Optionally `anthropic.cacheControl: ephemeral` on the instructions block.
### Crash-safety design: draft-row upsert over reconciliation-on-read
The failure that matters is a patch committed plus process death before `onFinish`. Reconciliation would synthesize an assistant message from action rows, but a synthesized message has no model-authored text and no tool call/result pairing that replays validly. The draft row records the real transcript step-by-step (≤30 single-row jsonb upserts per run); a patch executes within a step, so the orphan window shrinks from "entire run" to milliseconds. It also subsumes server-side cancellation partials, `agentAction.messageId` at INSERT time, and the duplicate-row continuation bug. The reaper covers the remaining sliver by appending synthetic tool parts from action rows during reap.
## Consequences
- Long threads stop growing without bound; exactly one resume snapshot survives in model context, and patch results carry the fresh document so array indexes never go stale.
- Runs are bounded (per-request timeout, whole-run wall clock, output-token cap, retry cap) and crash-safe (draft-row persistence, boot/lazy/read-path reaping); cancellation is server-authored.
- Users can opt threads into edit review; approvals are HMAC-signed server-side and survive restarts.
- Tool activity, token usage, and patch contents become visible in the UI; streaming is smoother and cheaper to render.
- The send path gains real message validation without breaking legacy rows.
- Test coverage moves toward pure, mock-free modules; the `"ai"` mock keeps real helpers.
- An approval continuation costs a second `send` against the in-process rate limit (20/min) — acceptable, noted for tuning.
Out of scope, documented as follow-ups: multi-process cancellation via Redis pub/sub; OpenTelemetry; removing the deprecated `partialMessage` input (next release); the legacy non-agent `chat()` in `ai/service.ts`; thread-title generation via a cheap model call.
## Rejected Alternatives
LangGraph: rejected — loop control, persistence, resumability, and interrupts are already built here on the AI SDK; a graph framework would add a dependency and a second orchestration model without removing any existing code.
`prepareStep`-injected "current resume" reminder instead of full-document patch output: rejected — re-sends a snapshot every step, defeats provider prompt caching, and splits document authority.
Reconciliation-on-read instead of draft-row persistence: rejected — synthesized messages replay invalidly against providers that require call/result pairing.
Random per-boot approval secret: rejected — it would strand pending approvals across restarts; the deterministic derivation from `ENCRYPTION_SECRET` keeps signatures verifiable.
New environment variable for the approval secret: rejected — derivation avoids env, `turbo.json`, and deployment churn.
+1
View File
@@ -56,6 +56,7 @@
"react-pdf-html", "react-pdf-html",
"resumable-stream", "resumable-stream",
"sharp", "sharp",
"tokenx",
"ts-pattern", "ts-pattern",
"unique-names-generator", "unique-names-generator",
"uuid" "uuid"
@@ -0,0 +1 @@
ALTER TABLE "agent_threads" ADD COLUMN "review_patches" boolean DEFAULT false NOT NULL;
File diff suppressed because it is too large Load Diff
+2
View File
@@ -6,6 +6,7 @@
"exports": { "exports": {
"./types": "./src/types.ts", "./types": "./src/types.ts",
"./prompts": "./src/prompts.ts", "./prompts": "./src/prompts.ts",
"./tools/agent-tool-contracts": "./src/tools/agent-tool-contracts.ts",
"./tools/resume-tool-contracts": "./src/tools/resume-tool-contracts.ts", "./tools/resume-tool-contracts": "./src/tools/resume-tool-contracts.ts",
"./tools/patch-proposal": "./src/tools/patch-proposal.ts", "./tools/patch-proposal": "./src/tools/patch-proposal.ts",
"./resume/extraction-template": "./src/resume/extraction-template.ts", "./resume/extraction-template": "./src/resume/extraction-template.ts",
@@ -28,6 +29,7 @@
}, },
"devDependencies": { "devDependencies": {
"@reactive-resume/config": "workspace:*", "@reactive-resume/config": "workspace:*",
"ai": "^7.0.66",
"@typescript/native-preview": "7.0.0-dev.20260707.2", "@typescript/native-preview": "7.0.0-dev.20260707.2",
"typescript": "^7.0.2" "typescript": "^7.0.2"
} }
@@ -0,0 +1,82 @@
import { describe, expect, it } from "vitest";
import {
agentMessageMetadataSchema,
applyResumePatchInputSchema,
applyResumePatchOutputSchema,
askUserQuestionInputSchema,
} from "./agent-tool-contracts";
describe("askUserQuestionInputSchema", () => {
it("accepts a question with up to four choices", () => {
expect(
askUserQuestionInputSchema.safeParse({ question: "Which tone?", choices: ["Formal", "Casual"] }).success,
).toBe(true);
});
it("rejects an empty question and too many choices", () => {
expect(askUserQuestionInputSchema.safeParse({ question: " " }).success).toBe(false);
expect(askUserQuestionInputSchema.safeParse({ question: "?", choices: ["a", "b", "c", "d", "e"] }).success).toBe(
false,
);
});
});
describe("applyResumePatchInputSchema", () => {
it("requires a title and at least one operation", () => {
expect(
applyResumePatchInputSchema.safeParse({
title: "Edit",
operations: [{ op: "replace", path: "/basics/name", value: "Bob" }],
}).success,
).toBe(true);
expect(applyResumePatchInputSchema.safeParse({ title: "Edit", operations: [] }).success).toBe(false);
});
it("accepts a strict ISO baseUpdatedAt and rejects malformed values", () => {
const operations = [{ op: "replace", path: "/basics/name", value: "Bob" }];
expect(
applyResumePatchInputSchema.safeParse({
title: "Edit",
baseUpdatedAt: "2026-08-20T10:15:00.000Z",
operations,
}).success,
).toBe(true);
expect(
applyResumePatchInputSchema.safeParse({ title: "Edit", baseUpdatedAt: "yesterday", operations }).success,
).toBe(false);
});
});
describe("applyResumePatchOutputSchema", () => {
const base = {
actionId: "action-1",
resumeId: "resume-1",
title: "Edit",
summary: null,
operations: [{ op: "remove" as const, path: "/sections/experience/items/0" }],
appliedUpdatedAt: "2026-08-20T00:00:00.000Z",
};
it("accepts legacy outputs without changedPaths or resume", () => {
expect(applyResumePatchOutputSchema.safeParse(base).success).toBe(true);
});
it("accepts fresh outputs carrying the post-patch document", () => {
expect(
applyResumePatchOutputSchema.safeParse({ ...base, changedPaths: ["/basics/name"], resume: { basics: {} } })
.success,
).toBe(true);
});
});
describe("agentMessageMetadataSchema", () => {
it("accepts missing metadata, empty metadata, and unknown extra fields", () => {
expect(agentMessageMetadataSchema.safeParse(undefined).success).toBe(true);
expect(agentMessageMetadataSchema.safeParse({}).success).toBe(true);
expect(
agentMessageMetadataSchema.safeParse({ model: "gpt-5", usage: { totalTokens: 12, custom: true }, extra: 1 })
.success,
).toBe(true);
});
});
@@ -0,0 +1,80 @@
// Shared typed contracts for the /agent workspace tools. Zod is the only runtime import — the
// "ai" package is a devDependency used with `import type` only, so this file stays
// runtime-universal (consumed by both the API tool definitions and the web chat UI).
import type { UIDataTypes, UIMessage } from "ai";
import z from "zod";
import { jsonPatchOperationSchema } from "@reactive-resume/resume/patch";
export const askUserQuestionInputSchema = z.object({
question: z.string().trim().min(1),
choices: z.array(z.string().trim().min(1)).min(1).max(4).optional(),
recommendedChoice: z.string().trim().optional(),
});
export const applyResumePatchInputSchema = z.object({
title: z.string().trim().min(1),
summary: z.string().trim().optional(),
// The `updatedAt` of the read_resume / apply_resume_patch result the operations were built
// against. Execution rejects the patch when the resume has changed since, so index-based
// operations can never silently target different items (e.g. after a user edit while an
// approval was pending). Optional for weaker models; strict ISO when present, so a malformed
// value is rejected at the schema (SDK re-asks) instead of silently skipping the check.
baseUpdatedAt: z.iso.datetime().optional(),
operations: z.array(jsonPatchOperationSchema).min(1),
});
// Loose on purpose: legacy persisted outputs predate changedPaths/resume.
export const applyResumePatchOutputSchema = z.looseObject({
actionId: z.string(),
resumeId: z.string(),
title: z.string(),
summary: z.string().nullish(),
operations: z.array(jsonPatchOperationSchema),
appliedUpdatedAt: z.string(),
changedPaths: z.array(z.string()).optional(),
resume: z.unknown().optional(),
});
// All-optional and loose: legacy rows have no metadata and must keep rendering.
// The usage shape mirrors the AI SDK's LanguageModelUsage (nested token details).
export const agentMessageMetadataSchema = z
.looseObject({
model: z.string().optional(),
usage: z
.looseObject({
inputTokens: z.number().optional(),
outputTokens: z.number().optional(),
totalTokens: z.number().optional(),
inputTokenDetails: z
.looseObject({
noCacheTokens: z.number().optional(),
cacheReadTokens: z.number().optional(),
cacheWriteTokens: z.number().optional(),
})
.optional(),
outputTokenDetails: z
.looseObject({
textTokens: z.number().optional(),
reasoningTokens: z.number().optional(),
})
.optional(),
})
.optional(),
})
.optional();
export type AskUserQuestionInput = z.infer<typeof askUserQuestionInputSchema>;
export type ApplyResumePatchInput = z.infer<typeof applyResumePatchInputSchema>;
export type ApplyResumePatchOutput = z.infer<typeof applyResumePatchOutputSchema>;
export type AgentMessageMetadata = z.infer<typeof agentMessageMetadataSchema>;
export type AgentTools = {
ask_user_question: { input: AskUserQuestionInput; output: string };
read_resume: { input: Record<string, never>; output: unknown };
read_attachment: { input: { attachmentId: string }; output: unknown };
apply_resume_patch: { input: ApplyResumePatchInput; output: ApplyResumePatchOutput };
// Provider-native web search (OpenAI Responses); input/output shapes are provider-owned.
web_search: { input: unknown; output: unknown };
};
export type AgentUIMessage = UIMessage<AgentMessageMetadata, UIDataTypes, AgentTools>;
+3
View File
@@ -5,6 +5,7 @@
"private": true, "private": true,
"exports": { "exports": {
"./context": "./src/context.ts", "./context": "./src/context.ts",
"./features/agent/runs": "./src/features/agent/runs.ts",
"./features/flags": "./src/features/flags/index.ts", "./features/flags": "./src/features/flags/index.ts",
"./features/resume/export": "./src/features/resume/export.ts", "./features/resume/export": "./src/features/resume/export.ts",
"./features/resume/public-pdf": "./src/features/resume/public-pdf.ts", "./features/resume/public-pdf": "./src/features/resume/public-pdf.ts",
@@ -52,10 +53,12 @@
"drizzle-zod": "1.0.0-beta.14-a36c63d", "drizzle-zod": "1.0.0-beta.14-a36c63d",
"es-toolkit": "^1.51.0", "es-toolkit": "^1.51.0",
"ioredis": "^6.0.0", "ioredis": "^6.0.0",
"jsonrepair": "^3.15.0",
"ollama-ai-provider-v2": "^4.0.1", "ollama-ai-provider-v2": "^4.0.1",
"react": "^19.2.8", "react": "^19.2.8",
"resumable-stream": "^2.2.12", "resumable-stream": "^2.2.12",
"sharp": "^0.35.3", "sharp": "^0.35.3",
"tokenx": "^2.1.0",
"ts-pattern": "^5.9.0", "ts-pattern": "^5.9.0",
"zod": "^4.4.3" "zod": "^4.4.3"
}, },
@@ -0,0 +1,288 @@
import type { ModelMessage } from "ai";
import { describe, expect, it } from "vitest";
import { estimateTokenCount, pruneAgentModelContext } from "./context";
const BIG_RESUME = { basics: { name: "Alice" }, sections: { summary: { content: "x".repeat(2_000) } } };
function readResumeExchange(callId: string): ModelMessage[] {
return [
{
role: "assistant",
content: [{ type: "tool-call", toolCallId: callId, toolName: "read_resume", input: {} }],
},
{
role: "tool",
content: [
{
type: "tool-result",
toolCallId: callId,
toolName: "read_resume",
output: { type: "json", value: { id: "resume-1", data: BIG_RESUME } },
},
],
},
] as ModelMessage[];
}
function patchExchange(callId: string): ModelMessage[] {
return [
{
role: "assistant",
content: [{ type: "tool-call", toolCallId: callId, toolName: "apply_resume_patch", input: { title: "Edit" } }],
},
{
role: "tool",
content: [
{
type: "tool-result",
toolCallId: callId,
toolName: "apply_resume_patch",
output: { type: "json", value: { actionId: `action-${callId}`, resume: BIG_RESUME } },
},
],
},
] as ModelMessage[];
}
function user(text: string): ModelMessage {
return { role: "user", content: [{ type: "text", text }] };
}
function messageParts(message: ModelMessage | undefined) {
return (message?.content ?? []) as Array<Record<string, unknown>>;
}
function snapshotValue(message: ModelMessage | undefined) {
const part = messageParts(message)[0];
return ((part?.output ?? {}) as { value?: Record<string, unknown> }).value ?? {};
}
describe("pruneAgentModelContext — tier 0 (snapshot supersession)", () => {
it("keeps only the last resume snapshot even when under budget", () => {
const messages = [user("hi"), ...readResumeExchange("call-1"), ...patchExchange("call-2")];
const pruned = pruneAgentModelContext(messages, 1_000_000);
expect(snapshotValue(pruned[2])).not.toHaveProperty("data");
expect(snapshotValue(pruned[2]).note).toContain("Superseded resume snapshot");
expect(snapshotValue(pruned[4])).toHaveProperty("resume");
});
it("returns the same array reference when there is at most one snapshot", () => {
const messages = [user("hi"), ...readResumeExchange("call-1")];
expect(pruneAgentModelContext(messages, 1_000_000)).toBe(messages);
});
it("treats a crash-recovered synthetic patch result (resume: null) as the surviving snapshot boundary", () => {
const synthetic: ModelMessage[] = [
{
role: "assistant",
content: [{ type: "tool-call", toolCallId: "synthetic-1", toolName: "apply_resume_patch", input: {} }],
},
{
role: "tool",
content: [
{
type: "tool-result",
toolCallId: "synthetic-1",
toolName: "apply_resume_patch",
output: { type: "json", value: { actionId: "action-1", resume: null, note: "Re-read the resume" } },
},
],
},
];
const pruned = pruneAgentModelContext([user("hi"), ...readResumeExchange("call-1"), ...synthetic], 1_000_000);
// The older full read_resume snapshot is superseded; the recovery note survives.
expect(snapshotValue(pruned[2])).not.toHaveProperty("data");
expect(snapshotValue(pruned[4])).toMatchObject({ note: "Re-read the resume" });
});
it("keeps non-snapshot fields of a superseded patch result (indexes may matter)", () => {
const messages = [user("hi"), ...patchExchange("call-1"), ...patchExchange("call-2")];
const pruned = pruneAgentModelContext(messages, 1_000_000);
expect(snapshotValue(pruned[2])).toMatchObject({ actionId: "action-call-1" });
expect(snapshotValue(pruned[2])).not.toHaveProperty("resume");
});
});
describe("pruneAgentModelContext — tier 1 (reasoning)", () => {
it("strips reasoning from all but the last assistant message when over budget", () => {
const messages: ModelMessage[] = [
user("hi"),
{
role: "assistant",
content: [
{ type: "reasoning", text: "r".repeat(400) },
{ type: "text", text: "First answer" },
],
},
user("more"),
{
role: "assistant",
content: [
{ type: "reasoning", text: "keep me" },
{ type: "text", text: "Second answer" },
],
},
];
const pruned = pruneAgentModelContext(messages, 50);
const firstAssistant = pruned.find((message) => message.role === "assistant");
expect(JSON.stringify(firstAssistant)).not.toContain("rrrr");
expect(JSON.stringify(pruned.at(-1))).toContain("keep me");
});
});
describe("pruneAgentModelContext — tier 2 (tool pairs)", () => {
it("stubs old pairs together, protecting the surviving snapshot and the last assistant message", () => {
const messages = [
user("hi"),
...patchExchange("call-1"),
...patchExchange("call-2"),
{
role: "assistant",
content: [{ type: "text", text: "All done" }],
} as ModelMessage,
];
const pruned = pruneAgentModelContext(messages, 100);
// Oldest pair stubbed on both sides.
const firstCall = messageParts(pruned[1])[0];
expect(firstCall?.input).toEqual({});
expect(snapshotValue(pruned[2]).note).toBeDefined();
// Surviving snapshot pair untouched by tier 2 (still carries the resume).
expect(snapshotValue(pruned[4])).toHaveProperty("resume");
});
it("never stubs a call that has no result (unresolved question stays intact)", () => {
const question = {
role: "assistant",
content: [
{
type: "tool-call",
toolCallId: "call-q",
toolName: "ask_user_question",
input: { question: "?".repeat(400) },
},
],
} as ModelMessage;
const pruned = pruneAgentModelContext([user("hi"), question, user("answer pending")], 20);
const call = messageParts(pruned[1])[0];
expect(call?.input).toEqual({ question: "?".repeat(400) });
});
it("skips messages carrying approval content", () => {
const approval = {
role: "assistant",
content: [
{ type: "tool-call", toolCallId: "call-a", toolName: "apply_resume_patch", input: { title: "x".repeat(400) } },
{ type: "tool-approval-request", approvalId: "approval-1", toolCallId: "call-a" },
],
} as ModelMessage;
const result = {
role: "tool",
content: [
{
type: "tool-result",
toolCallId: "call-a",
toolName: "apply_resume_patch",
output: { type: "json", value: { actionId: "action-a" } },
},
],
} as ModelMessage;
const pruned = pruneAgentModelContext([user("hi"), approval, result, user("next")], 20);
const call = messageParts(pruned[1])[0];
expect(call?.input).toEqual({ title: "x".repeat(400) });
});
});
describe("pruneAgentModelContext — tier 3 (turn dropping)", () => {
function textTurn(userText: string, assistantText: string): ModelMessage[] {
return [
{ role: "user", content: [{ type: "text", text: userText }] },
{ role: "assistant", content: [{ type: "text", text: assistantText }] },
];
}
it("drops the oldest complete turns until the budget is met", () => {
const messages = [
...textTurn("old question ".repeat(50), "old answer ".repeat(50)),
...textTurn("middle question ".repeat(50), "middle answer ".repeat(50)),
...textTurn("latest question", "latest answer"),
];
const pruned = pruneAgentModelContext(messages, 60);
expect(JSON.stringify(pruned)).not.toContain("old question");
expect(JSON.stringify(pruned)).toContain("latest question");
expect(JSON.stringify(pruned)).toContain("latest answer");
});
it("drops tool call/result pairs atomically with their turn", () => {
const messages = [
...textTurn("intro ".repeat(60), "ok"),
{ role: "user", content: [{ type: "text", text: "edit please ".repeat(60) }] } as ModelMessage,
...patchExchange("call-old"),
...textTurn("follow up ".repeat(30), "done"),
...textTurn("latest question", "latest answer"),
];
const pruned = pruneAgentModelContext(messages, 40);
// The dropped turn takes both the tool call and its result with it — no orphaned side.
const text = JSON.stringify(pruned);
expect(text).not.toContain("call-old");
expect(text).not.toContain('"tool-result"');
expect(text).toContain("latest question");
});
it("never drops the final two turns even when still over budget", () => {
const messages = [
...textTurn("first question ".repeat(100), "first answer ".repeat(100)),
...textTurn("second question ".repeat(100), "second answer ".repeat(100)),
...textTurn("third question ".repeat(100), "third answer ".repeat(100)),
];
const pruned = pruneAgentModelContext(messages, 10);
// Only the oldest turn is droppable; the penultimate and final turns must both survive
// even though the result is still over budget.
expect(pruned).toHaveLength(4);
expect(JSON.stringify(pruned)).not.toContain("first question");
expect(JSON.stringify(pruned)).toContain("second question");
expect(JSON.stringify(pruned)).toContain("third question");
});
});
describe("estimateTokenCount", () => {
it("estimates natural text at roughly one token per word", () => {
expect(estimateTokenCount("old question ".repeat(50))).toBeGreaterThanOrEqual(90);
expect(estimateTokenCount("old question ".repeat(50))).toBeLessThan(120);
expect(estimateTokenCount({ a: 1 })).toBeGreaterThan(0);
});
it("treats binary attachment data as opaque bytes instead of serializing it", () => {
const bytes = new Uint8Array(1024 * 1024);
const message = { role: "user", content: [{ type: "image", image: bytes, mediaType: "image/png" }] };
const started = performance.now();
const estimate = estimateTokenCount(message);
const elapsedMs = performance.now() - started;
// ~bytes/4 tokens, computed without expanding each byte into JSON.
expect(estimate).toBeGreaterThan(200_000);
expect(estimate).toBeLessThan(300_000);
expect(elapsedMs).toBeLessThan(200);
});
});
+220
View File
@@ -0,0 +1,220 @@
import type { ModelMessage } from "ai";
import { pruneMessages } from "ai";
import { estimateTokenCount as estimateTextTokenCount } from "tokenx";
// Pure model-context pruning, wired into the agent loop via prepareStep so it runs before every
// step. Tier 0 always runs (a stale resume snapshot is actively harmful — shifted array indexes);
// the remaining tiers only fire once the estimated token count exceeds the budget.
const AGENT_CONTEXT_TOKEN_BUDGET = 40_000;
const SNAPSHOT_TOOL_NAMES = new Set(["read_resume", "apply_resume_patch"]);
const SUPERSEDED_SNAPSHOT_NOTE =
"Superseded resume snapshot removed. Base further edits on the resume state in the latest read_resume or apply_resume_patch result.";
const PRUNED_TOOL_RESULT_NOTE = "Older tool result pruned to fit the context budget.";
type LoosePart = Record<string, unknown> & { type: string };
// Binary attachment data (up to 25MB per file) must never be JSON.stringified — each byte would
// expand into a numeric-key object entry and repeated estimation would exhaust the heap.
function isBinary(value: unknown): value is ArrayBufferView | ArrayBuffer {
return ArrayBuffer.isView(value) || value instanceof ArrayBuffer;
}
// Manual walk instead of JSON.stringify: a Buffer's toJSON() runs before any stringify replacer,
// so serialization-based estimation would expand binary into per-byte entries (hundreds of MB of
// JSON for one allowed 25MB attachment). String leaves go through tokenx; binary counts as
// opaque bytes; structural syntax gets a small flat cost.
function estimateTokens(value: unknown): number {
if (value === null || value === undefined) return 1;
if (typeof value === "string") return estimateTextTokenCount(value);
if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") return 2;
if (isBinary(value)) return Math.ceil(value.byteLength / 4);
if (Array.isArray(value)) {
let sum = 1;
for (const item of value) sum += estimateTokens(item) + 1;
return sum;
}
if (typeof value === "object") {
let sum = 1;
for (const [key, nested] of Object.entries(value)) sum += estimateTextTokenCount(key) + 1 + estimateTokens(nested);
return sum;
}
return 2;
}
export function estimateTokenCount(value: unknown): number {
return estimateTokens(value);
}
function contentParts(message: ModelMessage): LoosePart[] {
return Array.isArray(message.content) ? (message.content as unknown as LoosePart[]) : [];
}
function unwrapToolOutput(output: unknown): unknown {
if (output && typeof output === "object" && "type" in output && "value" in output) {
return (output as { value: unknown }).value;
}
return output;
}
function wrapToolOutput(original: unknown, value: unknown): unknown {
if (original && typeof original === "object" && "type" in original && "value" in original) {
return { ...(original as Record<string, unknown>), type: "json", value };
}
return value;
}
function isSnapshotResultPart(part: LoosePart): boolean {
if (part.type !== "tool-result" || typeof part.toolName !== "string" || !SNAPSHOT_TOOL_NAMES.has(part.toolName)) {
return false;
}
const value = unwrapToolOutput(part.output);
if (!value || typeof value !== "object") return false;
return part.toolName === "read_resume" ? "data" in value : "resume" in value;
}
function supersedeSnapshotPart(part: LoosePart): LoosePart {
const value = unwrapToolOutput(part.output);
const record = value && typeof value === "object" ? (value as Record<string, unknown>) : {};
const { data: _data, resume: _resume, ...rest } = record;
return { ...part, output: wrapToolOutput(part.output, { ...rest, note: SUPERSEDED_SNAPSHOT_NOTE }) };
}
// Tier 0: exactly one full resume snapshot survives — the last one, positioned where the model
// last acted. Runs regardless of budget.
function supersedeStaleSnapshots(messages: ModelMessage[]): ModelMessage[] {
const locations: Array<{ messageIndex: number; partIndex: number }> = [];
for (const [messageIndex, message] of messages.entries()) {
for (const [partIndex, part] of contentParts(message).entries()) {
if (isSnapshotResultPart(part)) locations.push({ messageIndex, partIndex });
}
}
if (locations.length <= 1) return messages;
const stale = locations.slice(0, -1);
const next = [...messages];
for (const { messageIndex, partIndex } of stale) {
const message = next[messageIndex] as ModelMessage & { content: LoosePart[] };
const parts = [...contentParts(message)];
// biome-ignore lint/style/noNonNullAssertion: location was collected from this array
parts[partIndex] = supersedeSnapshotPart(parts[partIndex]!);
next[messageIndex] = { ...message, content: parts } as ModelMessage;
}
return next;
}
function hasApprovalContent(message: ModelMessage): boolean {
return contentParts(message).some(
(part) => part.type === "tool-approval-request" || part.type === "tool-approval-response",
);
}
function lastIndexWhere<T>(items: T[], predicate: (item: T) => boolean): number {
for (let index = items.length - 1; index >= 0; index--) {
// biome-ignore lint/style/noNonNullAssertion: index is in range
if (predicate(items[index]!)) return index;
}
return -1;
}
// Tier 2: collapse the oldest tool call/result pairs into stubs — always both sides of a pair
// (several BYOK gateways reject unpaired tool messages), never the protected regions.
function collapseOldestToolPairs(messages: ModelMessage[], budget: number): ModelMessage[] {
const lastAssistantIndex = lastIndexWhere(messages, (message) => message.role === "assistant");
const survivingSnapshotCallIds = new Set<string>();
// The surviving snapshot (last one, by Tier 0) must keep its full pair.
for (let index = messages.length - 1; index >= 0; index--) {
// biome-ignore lint/style/noNonNullAssertion: index is in range
const part = contentParts(messages[index]!).findLast(isSnapshotResultPart);
if (part && typeof part.toolCallId === "string") {
survivingSnapshotCallIds.add(part.toolCallId);
break;
}
}
const resolvedCallIds = new Set<string>();
for (const message of messages) {
for (const part of contentParts(message)) {
if (part.type === "tool-result" && typeof part.toolCallId === "string") resolvedCallIds.add(part.toolCallId);
}
}
const next = [...messages];
const stubbedCallIds = new Set<string>();
let changed = false;
for (const [index, message] of next.entries()) {
if (estimateTokenCount(next) <= budget) break;
if (index === lastAssistantIndex || hasApprovalContent(message)) continue;
if (message.role !== "assistant" && message.role !== "tool") continue;
const parts = contentParts(message).map((part) => {
const toolCallId = typeof part.toolCallId === "string" ? part.toolCallId : null;
if (!toolCallId || survivingSnapshotCallIds.has(toolCallId)) return part;
if (part.type === "tool-call" && resolvedCallIds.has(toolCallId)) {
stubbedCallIds.add(toolCallId);
return { ...part, input: {} };
}
if (part.type === "tool-result" && stubbedCallIds.has(toolCallId)) {
return { ...part, output: wrapToolOutput(part.output, { note: PRUNED_TOOL_RESULT_NOTE }) };
}
return part;
});
if (parts.some((part, partIndex) => part !== contentParts(message)[partIndex])) {
next[index] = { ...message, content: parts } as ModelMessage;
changed = true;
}
}
return changed ? next : messages;
}
// Tier 3 (last resort): drop the oldest complete turns. A turn is one user message plus every
// message up to the next user message, so tool call/result and approval request/response pairs
// are always dropped atomically. The final two turns (latest user turn and the trailing
// assistant turn, when present) are never dropped.
function dropOldestTurns(messages: ModelMessage[], budget: number): ModelMessage[] {
const turnStarts: number[] = [];
for (const [index, message] of messages.entries()) {
if (message.role === "user" || turnStarts.length === 0) turnStarts.push(index);
}
if (turnStarts.length <= 2) return messages;
const turns = turnStarts.map((start, turnIndex) => messages.slice(start, turnStarts[turnIndex + 1]));
let dropCount = 0;
while (dropCount < turns.length - 2 && estimateTokenCount(turns.slice(dropCount).flat()) > budget) {
dropCount += 1;
}
return dropCount === 0 ? messages : turns.slice(dropCount).flat();
}
export function pruneAgentModelContext(
messages: ModelMessage[],
budget: number = AGENT_CONTEXT_TOKEN_BUDGET,
): ModelMessage[] {
let current = supersedeStaleSnapshots(messages);
if (estimateTokenCount(current) <= budget) return current;
// Tier 1: strip reasoning from all but the last assistant message.
const withoutReasoning = pruneMessages({ messages: current, reasoning: "before-last-message" });
if (estimateTokenCount(withoutReasoning) < estimateTokenCount(current)) current = withoutReasoning;
if (estimateTokenCount(current) <= budget) return current;
current = collapseOldestToolPairs(current, budget);
if (estimateTokenCount(current) <= budget) return current;
return dropOldestTurns(current, budget);
}
@@ -0,0 +1,168 @@
import type { UIMessage } from "ai";
import { describe, expect, it } from "vitest";
import { mergeClientToolResponses } from "./messages-merge";
type LoosePart = Record<string, unknown> & { type: string };
function assistantMessage(parts: LoosePart[]): UIMessage {
return { id: "ui-1", role: "assistant", parts: parts as UIMessage["parts"] };
}
const QUESTION_PENDING: LoosePart = {
type: "tool-ask_user_question",
toolCallId: "call-q",
state: "input-available",
input: { question: "Which tone?" },
};
const APPROVAL_REQUESTED: LoosePart = {
type: "tool-apply_resume_patch",
toolCallId: "call-p",
state: "approval-requested",
input: { title: "Edit", operations: [] },
approval: { id: "approval-1", signature: "server-signature" },
};
function approvalResponse(approved: boolean, reason?: string): LoosePart {
return {
type: "tool-apply_resume_patch",
toolCallId: "call-p",
state: "approval-responded",
input: { title: "Edit", operations: [] },
approval: { id: "approval-1", approved, ...(reason ? { reason } : {}), signature: "client-signature" },
};
}
function questionAnswer(output = "Formal"): LoosePart {
return { type: "tool-ask_user_question", toolCallId: "call-q", state: "output-available", input: {}, output };
}
describe("mergeClientToolResponses — questions (legacy behavior)", () => {
it("merges an answer into a pending question", () => {
const result = mergeClientToolResponses(assistantMessage([QUESTION_PENDING]), assistantMessage([questionAnswer()]));
expect(result.mergedCount).toBe(1);
expect(result.message.parts[0]).toMatchObject({ state: "output-available", output: "Formal" });
});
it("merges an error answer with its errorText", () => {
const result = mergeClientToolResponses(
assistantMessage([QUESTION_PENDING]),
assistantMessage([
{ type: "tool-ask_user_question", toolCallId: "call-q", state: "output-error", errorText: "boom" },
]),
);
expect(result.message.parts[0]).toMatchObject({ state: "output-error", errorText: "boom" });
});
it("counts a re-submitted answer as already resolved", () => {
const answered = assistantMessage([{ ...QUESTION_PENDING, state: "output-available", output: "Formal" }]);
const result = mergeClientToolResponses(answered, assistantMessage([questionAnswer()]));
expect(result.mergedCount).toBe(0);
expect(result.alreadyResolvedCount).toBe(1);
});
it("returns zero counts when nothing matches", () => {
const result = mergeClientToolResponses(assistantMessage([QUESTION_PENDING]), assistantMessage([]));
expect(result).toMatchObject({ mergedCount: 0, alreadyResolvedCount: 0, conflictingCount: 0 });
});
});
describe("mergeClientToolResponses — approvals", () => {
it("approves: flips the stored part but keeps the server-signed request payload", () => {
const result = mergeClientToolResponses(
assistantMessage([APPROVAL_REQUESTED]),
assistantMessage([approvalResponse(true)]),
);
expect(result.mergedCount).toBe(1);
expect(result.message.parts[0]).toMatchObject({
state: "approval-responded",
approval: { id: "approval-1", approved: true, signature: "server-signature" },
});
});
it("denies with a reason", () => {
const result = mergeClientToolResponses(
assistantMessage([APPROVAL_REQUESTED]),
assistantMessage([approvalResponse(false, "Wrong section")]),
);
expect(result.message.parts[0]).toMatchObject({
state: "approval-responded",
approval: { approved: false, reason: "Wrong section", signature: "server-signature" },
});
});
it("resubmitting the same decision on a responded-but-unexecuted approval is a pending continuation", () => {
const responded = assistantMessage([
{ ...APPROVAL_REQUESTED, state: "approval-responded", approval: { id: "approval-1", approved: true } },
]);
const result = mergeClientToolResponses(responded, assistantMessage([approvalResponse(true)]));
expect(result).toMatchObject({
mergedCount: 0,
alreadyResolvedCount: 0,
pendingContinuationCount: 1,
conflictingCount: 0,
});
});
it("resubmitting the decision after the approved call executed is already resolved", () => {
const executed = assistantMessage([
{
...APPROVAL_REQUESTED,
state: "output-available",
output: { actionId: "action-1" },
approval: { id: "approval-1", approved: true },
},
]);
const result = mergeClientToolResponses(executed, assistantMessage([approvalResponse(true)]));
expect(result).toMatchObject({ mergedCount: 0, alreadyResolvedCount: 1, pendingContinuationCount: 0 });
});
it("double submit with a conflicting decision is flagged", () => {
const responded = assistantMessage([
{ ...APPROVAL_REQUESTED, state: "approval-responded", approval: { id: "approval-1", approved: true } },
]);
const result = mergeClientToolResponses(responded, assistantMessage([approvalResponse(false)]));
expect(result).toMatchObject({ mergedCount: 0, alreadyResolvedCount: 0, conflictingCount: 1 });
});
it("a response for a different approval id does not touch the stored part", () => {
const result = mergeClientToolResponses(
assistantMessage([APPROVAL_REQUESTED]),
assistantMessage([
{
...approvalResponse(true),
approval: { id: "approval-other", approved: true },
},
]),
);
expect(result.mergedCount).toBe(0);
expect(result.message.parts[0]).toMatchObject({ state: "approval-requested" });
});
});
describe("mergeClientToolResponses — mixed", () => {
it("handles a question answer and an approval decision in one pass", () => {
const result = mergeClientToolResponses(
assistantMessage([QUESTION_PENDING, APPROVAL_REQUESTED]),
assistantMessage([questionAnswer(), approvalResponse(true)]),
);
expect(result.mergedCount).toBe(2);
expect(result.message.parts[0]).toMatchObject({ state: "output-available" });
expect(result.message.parts[1]).toMatchObject({ state: "approval-responded" });
});
});
@@ -0,0 +1,145 @@
import type { UIMessage } from "ai";
// Pure merge of client-authored tool responses into a stored assistant message. Handles both
// ask_user_question answers and tool-approval responses in one pass (a message can carry both).
// For approvals only the client's decision fields are copied — the stored, server-signed request
// payload (approval id + signature) is kept, so a client cannot substitute a forged request.
type AgentToolPart = UIMessage["parts"][number] & {
toolCallId?: string;
state?: string;
output?: unknown;
errorText?: string;
approval?: {
id: string;
approved?: boolean;
reason?: string;
isAutomatic?: boolean;
signature?: string;
};
};
type ApprovalDecision = { approved: boolean; reason?: string };
export type MergeClientToolResponsesResult = {
message: UIMessage;
mergedCount: number;
/** Matches on terminal parts (question answered, approval executed or denied). */
alreadyResolvedCount: number;
/**
* Matches on approval parts that are responded but not yet executed a continuation run was
* claimed (or persisted) earlier but never completed. Callers should proceed with a run so the
* recorded decision can still execute instead of stranding it.
*/
pendingContinuationCount: number;
conflictingCount: number;
};
function isAnsweredQuestionPart(part: AgentToolPart): part is AgentToolPart & { toolCallId: string } {
return (
part.type === "tool-ask_user_question" &&
typeof part.toolCallId === "string" &&
(part.state === "output-available" || part.state === "output-error")
);
}
function approvalKey(toolCallId: string, approvalId: string) {
return `${toolCallId}:${approvalId}`;
}
export function mergeClientToolResponses(
existingMessage: UIMessage,
incomingMessage: UIMessage,
): MergeClientToolResponsesResult {
const answeredQuestions = new Map<string, AgentToolPart>();
const approvalDecisions = new Map<string, ApprovalDecision>();
for (const part of incomingMessage.parts as AgentToolPart[]) {
if (isAnsweredQuestionPart(part)) {
answeredQuestions.set(part.toolCallId, part);
continue;
}
if (
part.state === "approval-responded" &&
typeof part.toolCallId === "string" &&
typeof part.approval?.id === "string" &&
typeof part.approval.approved === "boolean"
) {
approvalDecisions.set(approvalKey(part.toolCallId, part.approval.id), {
approved: part.approval.approved,
...(part.approval.reason ? { reason: part.approval.reason } : {}),
});
}
}
let mergedCount = 0;
let alreadyResolvedCount = 0;
let pendingContinuationCount = 0;
let conflictingCount = 0;
const parts = existingMessage.parts.map((part) => {
const existingPart = part as AgentToolPart;
if (existingPart.type === "tool-ask_user_question" && typeof existingPart.toolCallId === "string") {
const answer = answeredQuestions.get(existingPart.toolCallId);
if (answer) {
if (existingPart.state === "input-available") {
mergedCount += 1;
if (answer.state === "output-error") {
return {
...part,
state: "output-error",
errorText: answer.errorText ?? "User answer failed.",
} as UIMessage["parts"][number];
}
return { ...part, state: "output-available", output: answer.output } as UIMessage["parts"][number];
}
if (existingPart.state === "output-available" || existingPart.state === "output-error") {
alreadyResolvedCount += 1;
}
return part;
}
}
if (typeof existingPart.toolCallId === "string" && typeof existingPart.approval?.id === "string") {
const decision = approvalDecisions.get(approvalKey(existingPart.toolCallId, existingPart.approval.id));
if (decision) {
if (existingPart.state === "approval-requested") {
mergedCount += 1;
return {
...part,
state: "approval-responded",
// Keep the stored (signed) request payload; copy only the decision fields.
approval: {
...existingPart.approval,
approved: decision.approved,
...(decision.reason ? { reason: decision.reason } : {}),
},
} as UIMessage["parts"][number];
}
if (typeof existingPart.approval.approved === "boolean") {
if (existingPart.approval.approved !== decision.approved) conflictingCount += 1;
else if (existingPart.state === "approval-responded") pendingContinuationCount += 1;
else alreadyResolvedCount += 1;
}
return part;
}
}
return part;
});
return {
message: { ...existingMessage, parts },
mergedCount,
alreadyResolvedCount,
pendingContinuationCount,
conflictingCount,
};
}
@@ -0,0 +1,227 @@
import type { UIMessage } from "ai";
import { describe, expect, it } from "vitest";
import { applyStepToUiMessage, upsertAssistantUiMessage, withAccumulatedUsageMetadata } from "./messages-persistence";
function emptyMessage(): UIMessage {
return { id: "ui-1", role: "assistant", parts: [] };
}
describe("applyStepToUiMessage", () => {
it("folds text, reasoning, and paired tool call/result content into UI parts", () => {
const folded = applyStepToUiMessage(emptyMessage(), {
content: [
{ type: "reasoning", text: "thinking" },
{ type: "tool-call", toolCallId: "call-1", toolName: "apply_resume_patch", input: { title: "Edit" } },
{
type: "tool-result",
toolCallId: "call-1",
toolName: "apply_resume_patch",
output: { actionId: "action-1" },
},
{ type: "text", text: "Done." },
],
});
expect(folded.parts).toEqual([
{ type: "step-start" },
{ type: "reasoning", text: "thinking" },
{
type: "tool-apply_resume_patch",
toolCallId: "call-1",
state: "output-available",
input: { title: "Edit" },
output: { actionId: "action-1" },
},
{ type: "text", text: "Done." },
]);
});
it("appends to existing parts instead of replacing them", () => {
const first = applyStepToUiMessage(emptyMessage(), { content: [{ type: "text", text: "one" }] });
const second = applyStepToUiMessage(first, { content: [{ type: "text", text: "two" }] });
expect(second.parts.map((part) => part.type)).toEqual(["step-start", "text", "step-start", "text"]);
});
it("marks tool errors as output-error with the error message", () => {
const folded = applyStepToUiMessage(emptyMessage(), {
content: [
{ type: "tool-call", toolCallId: "call-1", toolName: "apply_resume_patch", input: {} },
{
type: "tool-error",
toolCallId: "call-1",
toolName: "apply_resume_patch",
input: {},
error: new Error("The resume changed"),
},
],
});
expect(folded.parts.at(-1)).toMatchObject({ state: "output-error", errorText: "The resume changed" });
});
it("keeps an unpaired tool result by synthesizing a complete tool part", () => {
const folded = applyStepToUiMessage(emptyMessage(), {
content: [{ type: "tool-result", toolCallId: "call-9", toolName: "read_resume", input: {}, output: { id: "r" } }],
});
expect(folded.parts.at(-1)).toMatchObject({
type: "tool-read_resume",
toolCallId: "call-9",
state: "output-available",
});
});
it("folds dynamic tool calls into dynamic-tool parts", () => {
const folded = applyStepToUiMessage(emptyMessage(), {
content: [
{ type: "tool-call", toolCallId: "call-2", toolName: "web_search", input: { q: "x" }, dynamic: true },
{ type: "tool-result", toolCallId: "call-2", toolName: "web_search", output: [], dynamic: true },
],
});
expect(folded.parts.at(-1)).toMatchObject({
type: "dynamic-tool",
toolName: "web_search",
state: "output-available",
});
});
it("skips sources, files, and approval content", () => {
const folded = applyStepToUiMessage(emptyMessage(), {
content: [
{ type: "source", sourceType: "url", url: "https://example.com" },
{ type: "file", file: {} },
{ type: "tool-approval-request", approvalId: "a-1" },
],
});
expect(folded.parts).toEqual([{ type: "step-start" }]);
});
});
describe("withAccumulatedUsageMetadata", () => {
function messageWithUsage(usage: Record<string, unknown>): UIMessage {
return { id: "ui-1", role: "assistant", parts: [], metadata: { model: "gpt-5", usage } } as UIMessage;
}
it("sums token counts across a continuation, including nested details", () => {
const previous = messageWithUsage({
inputTokens: 100,
outputTokens: 50,
totalTokens: 150,
inputTokenDetails: { cacheReadTokens: 40 },
outputTokenDetails: { reasoningTokens: 10 },
});
const next = messageWithUsage({
inputTokens: 200,
outputTokens: 30,
totalTokens: 230,
inputTokenDetails: { cacheReadTokens: 60, cacheWriteTokens: 5 },
});
const merged = withAccumulatedUsageMetadata(previous, next) as UIMessage & {
metadata: { usage: Record<string, unknown> };
};
expect(merged.metadata.usage).toMatchObject({
inputTokens: 300,
outputTokens: 80,
totalTokens: 380,
inputTokenDetails: { cacheReadTokens: 100, cacheWriteTokens: 5 },
outputTokenDetails: { reasoningTokens: 10 },
});
});
it("returns the next message unchanged when either side has no usage", () => {
const next = messageWithUsage({ totalTokens: 42 });
const noUsage: UIMessage = { id: "ui-1", role: "assistant", parts: [] };
expect(withAccumulatedUsageMetadata(noUsage, next)).toBe(next);
expect(withAccumulatedUsageMetadata(next, noUsage)).toBe(noUsage);
});
});
type ScriptedDb = {
updates: unknown[];
inserts: unknown[];
};
// Minimal scripted stand-in for the drizzle client: each update() consumes the next scripted
// returning() result; insert() always succeeds. No vi.mock — the database is an injected value.
function scriptedDatabase(updateResults: Array<Array<{ id: string }>>): ScriptedDb & Record<string, unknown> {
const state: ScriptedDb = { updates: [], inserts: [] };
let updateCall = 0;
return {
updates: state.updates,
inserts: state.inserts,
select: () => ({
from: () => ({
where: async () => [{ maxSequence: 3 }],
}),
}),
update: () => ({
set: (value: unknown) => {
state.updates.push(value);
return {
where: () => {
const result = updateResults[updateCall] ?? [];
updateCall += 1;
return Object.assign(Promise.resolve(undefined), {
returning: async () => result,
});
},
};
},
}),
insert: () => ({
values: (value: unknown) => {
state.inserts.push(value);
return { returning: async () => [{ id: "inserted-row" }] };
},
}),
delete: () => ({ where: async () => undefined }),
};
}
describe("upsertAssistantUiMessage", () => {
const message: UIMessage = { id: "ui-1", role: "assistant", parts: [{ type: "text", text: "hi" }] };
it("updates by row id when the row exists", async () => {
const database = scriptedDatabase([[{ id: "row-1" }], []]);
const result = await upsertAssistantUiMessage(
{ userId: "user-1", threadId: "thread-1", rowId: "row-1", message, status: "streaming" },
database as never,
);
expect(result).toEqual({ rowId: "row-1" });
expect(database.inserts).toHaveLength(0);
});
it("falls back to matching the stored uiMessage id, then updates in place", async () => {
const database = scriptedDatabase([[{ id: "row-2" }]]);
const result = await upsertAssistantUiMessage(
{ userId: "user-1", threadId: "thread-1", message, status: "completed" },
database as never,
);
expect(result).toEqual({ rowId: "row-2" });
expect(database.inserts).toHaveLength(0);
});
it("inserts a new row only when no existing row matches", async () => {
const database = scriptedDatabase([[], []]);
const result = await upsertAssistantUiMessage(
{ userId: "user-1", threadId: "thread-1", rowId: "row-gone", message, status: "completed" },
database as never,
);
expect(result).toEqual({ rowId: "inserted-row" });
expect(database.inserts).toHaveLength(1);
expect(database.inserts[0]).toMatchObject({ role: "assistant", status: "completed", sequence: 4 });
});
});
@@ -0,0 +1,265 @@
import type { UIMessage } from "ai";
import { and, eq, max, sql } from "drizzle-orm";
import { db } from "@reactive-resume/db/client";
import * as schema from "@reactive-resume/db/schema";
// Crash-safe incremental persistence for the assistant message of an agent run.
// A draft row is inserted before the stream starts, folded step-by-step in onStepEnd,
// and finalized (upserted) with the SDK's authoritative response message in onFinish.
// All functions take an injectable database so tests can stub queries without
// touching the send path's positional db mock.
type AgentMessagesDb = Pick<typeof db, "select" | "insert" | "update" | "delete">;
type UiMessagePart = UIMessage["parts"][number];
type StepContentPart = Record<string, unknown> & { type: string };
type AgentStepLike = { content: ReadonlyArray<unknown> };
function toolPartFromCall(part: StepContentPart): UiMessagePart {
if (part.dynamic) {
return {
type: "dynamic-tool",
toolName: String(part.toolName),
toolCallId: String(part.toolCallId),
state: "input-available",
input: part.input,
} as UiMessagePart;
}
return {
type: `tool-${String(part.toolName)}`,
toolCallId: String(part.toolCallId),
state: "input-available",
input: part.input,
} as UiMessagePart;
}
// Pure fold: append one step's content (text, reasoning, tool call/result/error) to a UI message.
// Sources, files, and approval parts are skipped — the authoritative onFinish message carries them.
export function applyStepToUiMessage(message: UIMessage, step: AgentStepLike): UIMessage {
const parts: UiMessagePart[] = [...message.parts, { type: "step-start" } as UiMessagePart];
const toolPartIndexByCallId = new Map<string, number>();
for (const rawContent of step.content) {
if (!rawContent || typeof rawContent !== "object" || typeof (rawContent as { type?: unknown }).type !== "string") {
continue;
}
const content = rawContent as StepContentPart;
if (content.type === "text" && typeof content.text === "string" && content.text) {
parts.push({ type: "text", text: content.text } as UiMessagePart);
continue;
}
if (content.type === "reasoning" && typeof content.text === "string" && content.text) {
parts.push({ type: "reasoning", text: content.text } as UiMessagePart);
continue;
}
if (content.type === "tool-call" && typeof content.toolCallId === "string") {
toolPartIndexByCallId.set(content.toolCallId, parts.length);
parts.push(toolPartFromCall(content));
continue;
}
if ((content.type === "tool-result" || content.type === "tool-error") && typeof content.toolCallId === "string") {
const resolution =
content.type === "tool-result"
? { state: "output-available", output: content.output }
: {
state: "output-error",
errorText: content.error instanceof Error ? content.error.message : String(content.error),
};
const index = toolPartIndexByCallId.get(content.toolCallId);
if (index === undefined) {
parts.push({ ...toolPartFromCall(content), ...resolution } as UiMessagePart);
} else {
parts[index] = { ...(parts[index] as Record<string, unknown>), ...resolution } as UiMessagePart;
}
}
}
return { ...message, parts };
}
type UsageDetails = Record<string, number | undefined>;
type UsageLike = {
inputTokens?: number | undefined;
outputTokens?: number | undefined;
totalTokens?: number | undefined;
inputTokenDetails?: UsageDetails | undefined;
outputTokenDetails?: UsageDetails | undefined;
};
type MessageWithUsage = { metadata?: Record<string, unknown> & { usage?: UsageLike } };
function addCounts(a: number | undefined, b: number | undefined): number | undefined {
if (typeof a !== "number" && typeof b !== "number") return undefined;
return (a ?? 0) + (b ?? 0);
}
function addDetails(a: UsageDetails | undefined, b: UsageDetails | undefined): UsageDetails | undefined {
if (!a && !b) return undefined;
const keys = new Set([...Object.keys(a ?? {}), ...Object.keys(b ?? {})]);
const sum: UsageDetails = {};
for (const key of keys) {
const value = addCounts(a?.[key], b?.[key]);
if (value !== undefined) sum[key] = value;
}
return sum;
}
// A question/approval continuation streams into the SAME assistant message; the SDK deep-merges
// metadata but replaces primitive token counts, so the continuation's usage would silently
// overwrite the pre-halt run's. Sum the previous usage into the final message before persisting.
export function withAccumulatedUsageMetadata(previous: UIMessage, next: UIMessage): UIMessage {
const previousUsage = (previous as MessageWithUsage).metadata?.usage;
const nextMetadata = (next as MessageWithUsage).metadata;
if (!previousUsage || !nextMetadata?.usage) return next;
const usage: UsageLike = {
inputTokens: addCounts(previousUsage.inputTokens, nextMetadata.usage.inputTokens),
outputTokens: addCounts(previousUsage.outputTokens, nextMetadata.usage.outputTokens),
totalTokens: addCounts(previousUsage.totalTokens, nextMetadata.usage.totalTokens),
inputTokenDetails: addDetails(previousUsage.inputTokenDetails, nextMetadata.usage.inputTokenDetails),
outputTokenDetails: addDetails(previousUsage.outputTokenDetails, nextMetadata.usage.outputTokenDetails),
};
return { ...next, metadata: { ...nextMetadata, usage } } as UIMessage;
}
async function nextMessageSequence(threadId: string, database: AgentMessagesDb) {
const [row] = await database
.select({ maxSequence: max(schema.agentMessage.sequence) })
.from(schema.agentMessage)
.where(eq(schema.agentMessage.threadId, threadId));
return (row?.maxSequence ?? -1) + 1;
}
async function touchThread(input: { threadId: string; userId: string }, database: AgentMessagesDb) {
await database
.update(schema.agentThread)
.set({ lastMessageAt: new Date() })
.where(and(eq(schema.agentThread.id, input.threadId), eq(schema.agentThread.userId, input.userId)));
}
export async function insertDraftAssistantMessage(
input: { userId: string; threadId: string; uiMessageId: string },
database: AgentMessagesDb = db,
) {
const sequence = await nextMessageSequence(input.threadId, database);
const [row] = await database
.insert(schema.agentMessage)
.values({
userId: input.userId,
threadId: input.threadId,
role: "assistant",
status: "streaming",
sequence,
uiMessage: { id: input.uiMessageId, role: "assistant", parts: [] },
})
.returning({ id: schema.agentMessage.id });
if (!row) throw new Error("AGENT_DRAFT_MESSAGE_CREATE_FAILED");
await touchThread(input, database);
return { rowId: row.id, sequence };
}
// Upsert by row id first, then by the uiMessage's embedded id (a question/approval continuation
// streams into the SAME uiMessage id as the stored assistant row), then insert as a last resort.
export async function upsertAssistantUiMessage(
input: {
userId: string;
threadId: string;
rowId?: string;
message: UIMessage;
status: "streaming" | "completed" | "canceled";
},
database: AgentMessagesDb = db,
) {
const set = {
status: input.status,
uiMessage: input.message as unknown as Record<string, unknown>,
};
const isFinal = input.status !== "streaming";
if (input.rowId) {
const updated = await database
.update(schema.agentMessage)
.set(set)
.where(
and(
eq(schema.agentMessage.id, input.rowId),
eq(schema.agentMessage.threadId, input.threadId),
eq(schema.agentMessage.userId, input.userId),
),
)
.returning({ id: schema.agentMessage.id });
if (updated.length === 1) {
if (isFinal) await touchThread(input, database);
// biome-ignore lint/style/noNonNullAssertion: length checked above
return { rowId: updated[0]!.id };
}
}
const updatedById = await database
.update(schema.agentMessage)
.set(set)
.where(
and(
eq(schema.agentMessage.threadId, input.threadId),
eq(schema.agentMessage.userId, input.userId),
eq(schema.agentMessage.role, "assistant"),
sql`${schema.agentMessage.uiMessage}->>'id' = ${input.message.id}`,
),
)
.returning({ id: schema.agentMessage.id });
if (updatedById.length >= 1) {
if (isFinal) await touchThread(input, database);
// biome-ignore lint/style/noNonNullAssertion: length checked above
return { rowId: updatedById[0]!.id };
}
const sequence = await nextMessageSequence(input.threadId, database);
const [inserted] = await database
.insert(schema.agentMessage)
.values({
userId: input.userId,
threadId: input.threadId,
role: input.message.role,
status: input.status,
sequence,
uiMessage: input.message as unknown as Record<string, unknown>,
})
.returning({ id: schema.agentMessage.id });
if (!inserted) throw new Error("AGENT_MESSAGE_CREATE_FAILED");
await touchThread(input, database);
return { rowId: inserted.id };
}
// Removes a draft that never received content (sync failure before the stream produced anything).
export async function deleteDraftIfEmpty(
input: { rowId: string; threadId: string; userId: string },
database: AgentMessagesDb = db,
) {
await database
.delete(schema.agentMessage)
.where(
and(
eq(schema.agentMessage.id, input.rowId),
eq(schema.agentMessage.threadId, input.threadId),
eq(schema.agentMessage.userId, input.userId),
eq(schema.agentMessage.status, "streaming"),
sql`jsonb_array_length(${schema.agentMessage.uiMessage}->'parts') = 0`,
),
);
}
+2 -1
View File
@@ -43,6 +43,8 @@ export const messagesRouter = {
.input( .input(
z.object({ z.object({
threadId: z.string(), threadId: z.string(),
// Deprecated and ignored: partial content now persists server-side via the run's
// abort path. Kept in the schema for one release so mid-deploy clients still parse.
partialMessage: z.custom<UIMessage>(isUiMessage, { message: "Invalid UI message." }).optional(), partialMessage: z.custom<UIMessage>(isUiMessage, { message: "Invalid UI message." }).optional(),
}), }),
) )
@@ -52,7 +54,6 @@ export const messagesRouter = {
agentService.messages.stop({ agentService.messages.stop({
userId: context.user.id, userId: context.user.id,
threadId: input.threadId, threadId: input.threadId,
...(input.partialMessage ? { partialMessage: input.partialMessage } : {}),
}), }),
), ),
@@ -0,0 +1,63 @@
import { describe, expect, it } from "vitest";
import { repairAgentPatchToolCallInput, repairAgentToolCall } from "./repair";
const VALID_INPUT = JSON.stringify({
title: "Edit",
operations: [{ op: "replace", path: "/basics/name", value: "Bob" }],
});
describe("repairAgentPatchToolCallInput", () => {
it("repairs sloppy JSON (single quotes, trailing commas)", () => {
const sloppy = `{'title': 'Edit', 'operations': [{'op': 'replace', 'path': '/basics/name', 'value': 'Bob'},]}`;
const repaired = repairAgentPatchToolCallInput(sloppy);
expect(repaired).not.toBeNull();
expect(JSON.parse(repaired ?? "")).toMatchObject({ title: "Edit" });
});
it("strips /data prefixes from path and from", () => {
const input = JSON.stringify({
title: "Move",
operations: [{ op: "move", path: "/data/basics/name", from: "/data/basics/headline" }],
});
const repaired = JSON.parse(repairAgentPatchToolCallInput(input) ?? "");
expect(repaired.operations[0]).toEqual({ op: "move", path: "/basics/name", from: "/basics/headline" });
});
it("returns null when the input cannot be made schema-valid", () => {
expect(repairAgentPatchToolCallInput(`{"title": "Edit", "operations": []}`)).toBeNull();
expect(repairAgentPatchToolCallInput("not even close {{{")).toBeNull();
});
});
describe("repairAgentToolCall", () => {
const baseCall = {
type: "tool-call" as const,
toolCallId: "call-1",
toolName: "apply_resume_patch",
};
it("returns a repaired call for fixable apply_resume_patch input", async () => {
const result = await repairAgentToolCall({
toolCall: {
...baseCall,
input: `{'title': 'Edit', 'operations': [{'op': 'remove', 'path': '/data/basics/url'}]}`,
},
} as never);
expect(result).not.toBeNull();
expect(JSON.parse(result?.input ?? "")).toMatchObject({
operations: [{ op: "remove", path: "/basics/url" }],
});
});
it("returns null for other tools and for already-valid input", async () => {
expect(
await repairAgentToolCall({ toolCall: { ...baseCall, toolName: "read_resume", input: "{}" } } as never),
).toBeNull();
expect(await repairAgentToolCall({ toolCall: { ...baseCall, input: VALID_INPUT } } as never)).toBeNull();
});
});
+56
View File
@@ -0,0 +1,56 @@
import type { ToolCallRepairFunction, ToolSet } from "ai";
import { jsonrepair } from "jsonrepair";
import { applyResumePatchInputSchema } from "@reactive-resume/ai/tools/agent-tool-contracts";
// Repairs sloppy apply_resume_patch calls from weaker BYOK models: fix broken JSON with
// jsonrepair, strip the common `/data` path prefix, then re-validate against the shared schema.
// Returning null falls back to the SDK's re-ask. Section-shortcut normalization stays in
// normalizeAgentResumePatchOperations (it needs the resume's section ids at execute time).
function stripDataPrefix(path: unknown): unknown {
if (typeof path !== "string") return path;
if (path === "/data") return "";
return path.startsWith("/data/") ? path.slice("/data".length) : path;
}
function normalizeRepairedInput(parsed: unknown): unknown {
if (!parsed || typeof parsed !== "object" || !Array.isArray((parsed as { operations?: unknown }).operations)) {
return parsed;
}
const record = parsed as Record<string, unknown> & { operations: unknown[] };
return {
...record,
operations: record.operations.map((operation) => {
if (!operation || typeof operation !== "object") return operation;
const op = operation as Record<string, unknown>;
return {
...op,
path: stripDataPrefix(op.path),
...("from" in op ? { from: stripDataPrefix(op.from) } : {}),
};
}),
};
}
// Pure core, exported for tests: returns the repaired stringified input or null.
export function repairAgentPatchToolCallInput(rawInput: string): string | null {
let parsed: unknown;
try {
parsed = JSON.parse(jsonrepair(rawInput));
} catch {
return null;
}
const validated = applyResumePatchInputSchema.safeParse(normalizeRepairedInput(parsed));
return validated.success ? JSON.stringify(validated.data) : null;
}
export const repairAgentToolCall: ToolCallRepairFunction<ToolSet> = ({ toolCall }) => {
if (toolCall.toolName !== "apply_resume_patch") return Promise.resolve(null);
const repairedInput = repairAgentPatchToolCallInput(toolCall.input);
if (repairedInput === null || repairedInput === toolCall.input) return Promise.resolve(null);
return Promise.resolve({ ...toolCall, input: repairedInput });
};
@@ -35,4 +35,18 @@ describe("normalizeAgentResumePatchOperations", () => {
{ op: "copy", from: "/sections/education/items/0", path: "/customSections/0/items/-" }, { op: "copy", from: "/sections/education/items/0", path: "/customSections/0/items/-" },
]); ]);
}); });
it("strips the /data prefix from path and from at execution time", () => {
const result = normalizeAgentResumePatchOperations({ sections: { experience: {} } }, [
{ op: "replace", path: "/data/basics/name", value: "Bob" },
{ op: "move", path: "/data/basics/headline", from: "/data/basics/label" },
{ op: "replace", path: "/data/experience/items/0/description", value: "Combined with section shortcut" },
]);
expect(result).toEqual([
{ op: "replace", path: "/basics/name", value: "Bob" },
{ op: "move", path: "/basics/headline", from: "/basics/label" },
{ op: "replace", path: "/sections/experience/items/0/description", value: "Combined with section shortcut" },
]);
});
}); });
+11 -2
View File
@@ -29,6 +29,15 @@ function decodeJsonPointerSegment(segment: string) {
return segment.replace(/~1/g, "/").replace(/~0/g, "~"); return segment.replace(/~1/g, "/").replace(/~0/g, "~");
} }
// Models frequently prefix paths with /data because read_resume nests the document under `data`.
// Patch paths are rooted at the document itself, and the root has no `data` key, so stripping is
// always safe. This runs at execution time — the schema accepts such paths, so the SDK's
// repairToolCall hook (parse/validation failures only) never sees them.
function stripDataPrefix(path: string) {
if (path === "/data") return "";
return path.startsWith("/data/") ? path.slice("/data".length) : path;
}
function normalizeSectionShortcutPath(data: { sections: Record<string, unknown> }, path: string) { function normalizeSectionShortcutPath(data: { sections: Record<string, unknown> }, path: string) {
if (!path.startsWith("/") || path.startsWith("/sections/")) return path; if (!path.startsWith("/") || path.startsWith("/sections/")) return path;
@@ -43,12 +52,12 @@ export function normalizeAgentResumePatchOperations(
operations: JsonPatchOperation[], operations: JsonPatchOperation[],
): JsonPatchOperation[] { ): JsonPatchOperation[] {
return operations.map((operation) => { return operations.map((operation) => {
const path = normalizeSectionShortcutPath(data, operation.path); const path = normalizeSectionShortcutPath(data, stripDataPrefix(operation.path));
const normalized = path === operation.path ? operation : { ...operation, path }; const normalized = path === operation.path ? operation : { ...operation, path };
if (!("from" in normalized)) return normalized; if (!("from" in normalized)) return normalized;
const from = normalizeSectionShortcutPath(data, normalized.from); const from = normalizeSectionShortcutPath(data, stripDataPrefix(normalized.from));
return from === normalized.from ? normalized : { ...normalized, from }; return from === normalized.from ? normalized : { ...normalized, from };
}); });
} }
@@ -0,0 +1,168 @@
import type { UIMessage } from "ai";
import { describe, expect, it, vi } from "vitest";
vi.mock("@reactive-resume/db/client", () => ({ db: {} }));
const { appendMissingActionParts, isStaleAgentRun, reapStaleAgentRun, STALE_AGENT_RUN_TTL_MS } = await import("./runs");
const NOW = new Date("2026-08-20T12:00:00.000Z");
function minutesBefore(minutes: number) {
return new Date(NOW.getTime() - minutes * 60_000);
}
describe("isStaleAgentRun", () => {
it("is false without an active run", () => {
expect(isStaleAgentRun({ activeRunId: null, activeRunStartedAt: null }, NOW)).toBe(false);
});
it("is false while the run is younger than the TTL", () => {
expect(isStaleAgentRun({ activeRunId: "run-1", activeRunStartedAt: minutesBefore(14) }, NOW)).toBe(false);
});
it("is true once the run outlives the TTL", () => {
expect(isStaleAgentRun({ activeRunId: "run-1", activeRunStartedAt: minutesBefore(16) }, NOW)).toBe(true);
expect(STALE_AGENT_RUN_TTL_MS).toBe(15 * 60_000);
});
it("treats a legacy claim without a start timestamp as stale", () => {
expect(isStaleAgentRun({ activeRunId: "run-1", activeRunStartedAt: null }, NOW)).toBe(true);
});
});
function buildAction(overrides: Record<string, unknown> = {}) {
return {
id: "action-1",
resumeId: "resume-1",
title: "Tighten summary",
summary: null,
operations: [{ op: "replace" as const, path: "/basics/name", value: "Bob" }],
appliedUpdatedAt: NOW,
...overrides,
};
}
describe("appendMissingActionParts", () => {
const draft: UIMessage = { id: "ui-1", role: "assistant", parts: [{ type: "text", text: "Editing…" }] };
it("appends a synthetic call/result pair for an action missing from the parts", () => {
const patched = appendMissingActionParts(draft, [buildAction()]);
expect(patched.parts.at(-1)).toMatchObject({
type: "tool-apply_resume_patch",
toolCallId: "synthetic-action-1",
state: "output-available",
output: expect.objectContaining({ actionId: "action-1" }),
});
});
it("returns the message unchanged when every action is already represented", () => {
const withPart: UIMessage = {
...draft,
parts: [
{
type: "tool-apply_resume_patch",
toolCallId: "call-1",
state: "output-available",
input: {},
output: { actionId: "action-1" },
} as UIMessage["parts"][number],
],
};
expect(appendMissingActionParts(withPart, [buildAction()])).toBe(withPart);
});
});
type ScriptedReaperDb = {
updates: Array<{ set: unknown }>;
};
function scriptedReaperDatabase(input: {
drafts: Array<Record<string, unknown>>;
actions: Array<Record<string, unknown>>;
clearMatches?: boolean;
}) {
const state: ScriptedReaperDb = { updates: [] };
let selectCall = 0;
return {
state,
select: () => {
const call = selectCall;
selectCall += 1;
return {
from: () => ({
where: async () => (call === 0 ? input.drafts : input.actions),
}),
};
},
update: () => ({
set: (set: unknown) => {
state.updates.push({ set });
return {
where: () =>
Object.assign(Promise.resolve(undefined), {
returning: async () => ((input.clearMatches ?? true) ? [{ id: "thread-1" }] : []),
}),
};
},
}),
};
}
describe("reapStaleAgentRun", () => {
it("clears the run claim and flips streaming drafts to canceled with synthetic action parts", async () => {
const database = scriptedReaperDatabase({
drafts: [
{
id: "row-1",
uiMessage: { id: "ui-1", role: "assistant", parts: [{ type: "text", text: "Editing…" }] },
},
],
actions: [buildAction()],
});
await reapStaleAgentRun(
{ threadId: "thread-1", userId: "user-1", runId: "run-1", streamId: "stream-1" },
database as never,
);
// First update clears the run claim; second flips the draft.
expect(database.state.updates[0]?.set).toMatchObject({ activeRunId: null, activeStreamId: null });
expect(database.state.updates[1]?.set).toMatchObject({ status: "canceled" });
const uiMessage = (database.state.updates[1]?.set as { uiMessage?: UIMessage } | undefined)?.uiMessage;
expect(uiMessage?.parts.at(-1)).toMatchObject({ toolCallId: "synthetic-action-1" });
});
it("only clears the claim when there is no streaming draft", async () => {
const database = scriptedReaperDatabase({ drafts: [], actions: [] });
await reapStaleAgentRun(
{ threadId: "thread-1", userId: "user-1", runId: "run-1", streamId: null },
database as never,
);
expect(database.state.updates).toHaveLength(1);
});
// Regression: a concurrent request/replica can claim a replacement run (and insert a live
// draft) between the stale read and this reap. When the conditional clear matches nothing,
// the loser must not flip any draft.
it("does not touch drafts when another reaper already cleared or replaced the run", async () => {
const database = scriptedReaperDatabase({
drafts: [{ id: "row-live", uiMessage: { id: "ui-live", role: "assistant", parts: [] } }],
actions: [],
clearMatches: false,
});
await reapStaleAgentRun(
{ threadId: "thread-1", userId: "user-1", runId: "run-stale", streamId: "stream-stale" },
database as never,
);
// Only the (no-op) conditional clear ran; no draft status flip.
expect(database.state.updates).toHaveLength(1);
expect(database.state.updates[0]?.set).toMatchObject({ activeRunId: null });
});
});
+164 -2
View File
@@ -1,8 +1,27 @@
import { and, eq, isNull } from "drizzle-orm"; import type { UIMessage } from "ai";
import { and, eq, isNotNull, isNull, sql } from "drizzle-orm";
import { db } from "@reactive-resume/db/client"; import { db } from "@reactive-resume/db/client";
import * as schema from "@reactive-resume/db/schema"; import * as schema from "@reactive-resume/db/schema";
type AgentRunStateDb = Pick<typeof db, "update">; type AgentRunStateDb = Pick<typeof db, "update">;
type AgentRunReaperDb = Pick<typeof db, "select" | "update">;
// Deliberately TTL-only (no controller-map heuristic) so reaping stays multi-replica-safe. The TTL
// exceeds the 10-minute run wall clock, so a live run always dies by its own timeout first.
export const STALE_AGENT_RUN_TTL_MS = 15 * 60_000;
type StaleRunThreadFields = {
activeRunId: string | null;
activeRunStartedAt: Date | null;
};
export function isStaleAgentRun(thread: StaleRunThreadFields, now = new Date()) {
if (!thread.activeRunId) return false;
// A run claim without a start timestamp is a legacy row that can never age out on its own.
if (!thread.activeRunStartedAt) return true;
return now.getTime() - thread.activeRunStartedAt.getTime() > STALE_AGENT_RUN_TTL_MS;
}
export async function claimActiveAgentRun( export async function claimActiveAgentRun(
input: { threadId: string; userId: string; runId: string; streamId: string }, input: { threadId: string; userId: string; runId: string; streamId: string },
@@ -27,7 +46,7 @@ export async function clearActiveAgentRunIfCurrent(
input: { threadId: string; userId: string; runId: string; streamId: string | null }, input: { threadId: string; userId: string; runId: string; streamId: string | null },
database: AgentRunStateDb = db, database: AgentRunStateDb = db,
) { ) {
await database const cleared = await database
.update(schema.agentThread) .update(schema.agentThread)
.set({ activeRunId: null, activeStreamId: null, activeRunStartedAt: null }) .set({ activeRunId: null, activeStreamId: null, activeRunStartedAt: null })
.where( .where(
@@ -39,5 +58,148 @@ export async function clearActiveAgentRunIfCurrent(
? isNull(schema.agentThread.activeStreamId) ? isNull(schema.agentThread.activeStreamId)
: eq(schema.agentThread.activeStreamId, input.streamId), : eq(schema.agentThread.activeStreamId, input.streamId),
), ),
)
.returning({ id: schema.agentThread.id });
return cleared.length === 1;
}
type ReapableActionRow = Pick<
typeof schema.agentAction.$inferSelect,
"id" | "resumeId" | "title" | "summary" | "operations" | "appliedUpdatedAt"
>;
function hasActionPart(message: UIMessage, actionId: string) {
return message.parts.some((part) => {
const output = (part as { output?: unknown }).output;
return (
part.type === "tool-apply_resume_patch" &&
typeof output === "object" &&
output !== null &&
(output as { actionId?: unknown }).actionId === actionId
); );
});
}
// Applied actions missing from a dead draft's parts get a synthetic call/result pair so the
// replayed history stays provider-valid (providers reject tool results without matching calls).
export function appendMissingActionParts(message: UIMessage, actions: ReapableActionRow[]): UIMessage {
const missing = actions.filter((action) => !hasActionPart(message, action.id));
if (missing.length === 0) return message;
return {
...message,
parts: [
...message.parts,
...missing.map(
(action) =>
({
type: "tool-apply_resume_patch",
toolCallId: `synthetic-${action.id}`,
state: "output-available",
input: {
title: action.title,
...(action.summary ? { summary: action.summary } : {}),
operations: action.operations,
},
output: {
actionId: action.id,
resumeId: action.resumeId,
title: action.title,
summary: action.summary,
operations: action.operations,
appliedUpdatedAt: action.appliedUpdatedAt.toISOString(),
// Snapshot boundary: the `resume` key makes context pruning supersede older
// full snapshots, and the null value forces a fresh read_resume — the edit
// committed, but the post-patch document was lost with the crashed run.
resume: null,
note: "This edit was applied, but the run was interrupted before the updated resume could be recorded. Re-read the resume before making further edits.",
},
}) as UIMessage["parts"][number],
),
],
};
}
// Reap = conditionally clear the run claim, then flip dead "streaming" drafts to canceled with
// their committed actions represented. Applied actions stay applied — they are real, individually
// revertable edits; auto-reverting on reap would be worse than the crash.
export async function reapStaleAgentRun(
input: { threadId: string; userId: string; runId: string; streamId: string | null },
database: AgentRunReaperDb = db,
) {
// Snapshot drafts BEFORE clearing the claim: while the stale claim still holds, no new run can
// start, so every "streaming" draft visible here belongs to the dead run — a draft inserted by
// a replacement run claimed after this point is never in the snapshot.
const drafts = await database
.select()
.from(schema.agentMessage)
.where(
and(
eq(schema.agentMessage.threadId, input.threadId),
eq(schema.agentMessage.userId, input.userId),
eq(schema.agentMessage.status, "streaming"),
),
);
// Concurrent reapers (another request or replica) race on this conditional clear; the loser
// must not touch drafts — the thread has already moved on under a different run.
const cleared = await clearActiveAgentRunIfCurrent(input, database);
if (!cleared) return;
for (const draft of drafts) {
const actions = await database
.select({
id: schema.agentAction.id,
resumeId: schema.agentAction.resumeId,
title: schema.agentAction.title,
summary: schema.agentAction.summary,
operations: schema.agentAction.operations,
appliedUpdatedAt: schema.agentAction.appliedUpdatedAt,
})
.from(schema.agentAction)
.where(
and(
eq(schema.agentAction.messageId, draft.id),
eq(schema.agentAction.kind, "resume_patch"),
eq(schema.agentAction.status, "applied"),
),
);
const message = appendMissingActionParts(draft.uiMessage as unknown as UIMessage, actions);
await database
.update(schema.agentMessage)
.set({ status: "canceled", uiMessage: message as unknown as Record<string, unknown> })
.where(
and(
eq(schema.agentMessage.id, draft.id),
// A continuation can claim the thread right after our conditional clear and start
// writing into this very row. Flip only the exact state we snapshotted — any
// concurrent write changes status or uiMessage and makes this a no-op.
eq(schema.agentMessage.status, "streaming"),
sql`${schema.agentMessage.uiMessage} = ${JSON.stringify(draft.uiMessage)}::jsonb`,
),
);
}
}
export async function reapStaleAgentRunsAtBoot(database: AgentRunReaperDb = db) {
const threads = await database
.select({
id: schema.agentThread.id,
userId: schema.agentThread.userId,
activeRunId: schema.agentThread.activeRunId,
activeStreamId: schema.agentThread.activeStreamId,
activeRunStartedAt: schema.agentThread.activeRunStartedAt,
})
.from(schema.agentThread)
.where(isNotNull(schema.agentThread.activeRunId));
for (const thread of threads) {
if (!isStaleAgentRun(thread) || !thread.activeRunId) continue;
await reapStaleAgentRun(
{ threadId: thread.id, userId: thread.userId, runId: thread.activeRunId, streamId: thread.activeStreamId },
database,
);
}
} }
+266 -7
View File
@@ -11,6 +11,13 @@ const dbMock = {
const clearActiveAgentRunIfCurrentMock = vi.fn(); const clearActiveAgentRunIfCurrentMock = vi.fn();
const claimActiveAgentRunMock = vi.fn(); const claimActiveAgentRunMock = vi.fn();
const messagesPersistenceMock = {
applyStepToUiMessage: vi.fn((message: unknown) => message),
insertDraftAssistantMessage: vi.fn(),
upsertAssistantUiMessage: vi.fn(),
deleteDraftIfEmpty: vi.fn(),
withAccumulatedUsageMetadata: vi.fn((_previous: unknown, next: unknown) => next),
};
const storageServiceMock = { const storageServiceMock = {
delete: vi.fn(), delete: vi.fn(),
write: vi.fn(), write: vi.fn(),
@@ -38,6 +45,7 @@ vi.mock("@reactive-resume/db/schema", () => ({
deletedAt: "agent_threads.deleted_at", deletedAt: "agent_threads.deleted_at",
archivedAt: "agent_threads.archived_at", archivedAt: "agent_threads.archived_at",
status: "agent_threads.status", status: "agent_threads.status",
reviewPatches: "agent_threads.review_patches",
activeRunId: "agent_threads.active_run_id", activeRunId: "agent_threads.active_run_id",
activeStreamId: "agent_threads.active_stream_id", activeStreamId: "agent_threads.active_stream_id",
activeRunStartedAt: "agent_threads.active_run_started_at", activeRunStartedAt: "agent_threads.active_run_started_at",
@@ -96,14 +104,29 @@ vi.mock("drizzle-orm", () => ({
sql: () => ({ type: "sql" }), sql: () => ({ type: "sql" }),
})); }));
vi.mock("ai", () => ({ // Spread-actual: pure helpers (isStepCount, safeValidateUIMessages, pruneMessages, ...) stay real;
// only the scripted seams are mocked.
vi.mock("ai", async (importOriginal) => ({
...(await importOriginal<typeof import("ai")>()),
convertToModelMessages: vi.fn(), convertToModelMessages: vi.fn(),
stepCountIs: vi.fn(),
ToolLoopAgent: vi.fn(), ToolLoopAgent: vi.fn(),
})); }));
vi.mock("../ai/service", () => ({ getAgentModel: vi.fn() })); // Minimal V4 model stub: the real wrapLanguageModel/addToolInputExamplesMiddleware run against it.
vi.mock("../ai/credentials", () => ({ assertAgentEnvironment: vi.fn() })); vi.mock("../ai/service", () => ({
getAgentModel: vi.fn(() => ({
specificationVersion: "v4",
provider: "mock",
modelId: "mock-model",
supportedUrls: {},
doGenerate: vi.fn(),
doStream: vi.fn(),
})),
}));
vi.mock("../ai/credentials", () => ({
assertAgentEnvironment: vi.fn(),
getAgentToolApprovalSecret: vi.fn(() => "test-approval-secret"),
}));
vi.mock("../ai-providers/service", () => ({ aiProvidersService: aiProvidersServiceMock })); vi.mock("../ai-providers/service", () => ({ aiProvidersService: aiProvidersServiceMock }));
vi.mock("../resume/service", () => ({ resumeService: resumeServiceMock })); vi.mock("../resume/service", () => ({ resumeService: resumeServiceMock }));
vi.mock("../storage/service", () => ({ vi.mock("../storage/service", () => ({
@@ -118,7 +141,10 @@ vi.mock("./resume", () => ({
vi.mock("./runs", () => ({ vi.mock("./runs", () => ({
claimActiveAgentRun: claimActiveAgentRunMock, claimActiveAgentRun: claimActiveAgentRunMock,
clearActiveAgentRunIfCurrent: clearActiveAgentRunIfCurrentMock, clearActiveAgentRunIfCurrent: clearActiveAgentRunIfCurrentMock,
isStaleAgentRun: vi.fn(() => false),
reapStaleAgentRun: vi.fn(),
})); }));
vi.mock("./messages-persistence", () => messagesPersistenceMock);
vi.mock("./streams", () => ({ vi.mock("./streams", () => ({
agentStreamLifecycle: { create: vi.fn(), resume: vi.fn() }, agentStreamLifecycle: { create: vi.fn(), resume: vi.fn() },
})); }));
@@ -135,6 +161,12 @@ beforeEach(() => {
dbMock.transaction.mockImplementation(async <T>(callback: (tx: typeof dbMock) => Promise<T>) => callback(dbMock)); dbMock.transaction.mockImplementation(async <T>(callback: (tx: typeof dbMock) => Promise<T>) => callback(dbMock));
clearActiveAgentRunIfCurrentMock.mockReset(); clearActiveAgentRunIfCurrentMock.mockReset();
claimActiveAgentRunMock.mockReset(); claimActiveAgentRunMock.mockReset();
for (const mock of Object.values(messagesPersistenceMock)) mock.mockReset();
messagesPersistenceMock.applyStepToUiMessage.mockImplementation((message: unknown) => message);
messagesPersistenceMock.insertDraftAssistantMessage.mockResolvedValue({ rowId: "draft-row-1", sequence: 1 });
messagesPersistenceMock.upsertAssistantUiMessage.mockResolvedValue({ rowId: "draft-row-1" });
messagesPersistenceMock.deleteDraftIfEmpty.mockResolvedValue(undefined);
messagesPersistenceMock.withAccumulatedUsageMetadata.mockImplementation((_previous: unknown, next: unknown) => next);
for (const mock of Object.values(storageServiceMock)) mock.mockReset(); for (const mock of Object.values(storageServiceMock)) mock.mockReset();
for (const mock of Object.values(resumeServiceMock)) mock.mockReset(); for (const mock of Object.values(resumeServiceMock)) mock.mockReset();
for (const mock of Object.values(aiProvidersServiceMock)) mock.mockReset(); for (const mock of Object.values(aiProvidersServiceMock)) mock.mockReset();
@@ -149,6 +181,7 @@ function buildArchivedThread(overrides: Record<string, unknown> = {}) {
sourceResumeId: null, sourceResumeId: null,
title: "Archived thread", title: "Archived thread",
status: "archived", status: "archived",
reviewPatches: false,
activeRunId: null, activeRunId: null,
activeStreamId: null, activeStreamId: null,
activeRunStartedAt: null, activeRunStartedAt: null,
@@ -398,7 +431,7 @@ describe("agentService.messages.send", () => {
]); ]);
}); });
it("stores snapshotData and applies a valid JSON Patch without a timestamp conflict guard", async () => { it("stores snapshotData and applies a valid JSON Patch guarded by the pre-read timestamp", async () => {
const activeThread = buildActiveThread(); const activeThread = buildActiveThread();
const persistedMessage = { const persistedMessage = {
id: "message-1", id: "message-1",
@@ -472,8 +505,13 @@ describe("agentService.messages.send", () => {
]; ];
const insertValues: unknown[] = []; const insertValues: unknown[] = [];
const patchedData = { basics: { customFields: [{ id: "field-1" }] } };
resumeServiceMock.getById.mockResolvedValue({ data: beforeData, updatedAt: beforeUpdatedAt }); resumeServiceMock.getById.mockResolvedValue({ data: beforeData, updatedAt: beforeUpdatedAt });
resumeServiceMock.patchInTransaction.mockResolvedValue({ id: "resume-1", updatedAt: patchedUpdatedAt }); resumeServiceMock.patchInTransaction.mockResolvedValue({
id: "resume-1",
updatedAt: patchedUpdatedAt,
data: patchedData,
});
dbMock.insert.mockReturnValue({ dbMock.insert.mockReturnValue({
values: vi.fn((value) => { values: vi.fn((value) => {
insertValues.push(value); insertValues.push(value);
@@ -501,6 +539,7 @@ describe("agentService.messages.send", () => {
id: "resume-1", id: "resume-1",
userId: "user-1", userId: "user-1",
operations, operations,
expectedUpdatedAt: beforeUpdatedAt,
}); });
expect(insertValues).toContainEqual( expect(insertValues).toContainEqual(
expect.objectContaining({ expect.objectContaining({
@@ -510,7 +549,83 @@ describe("agentService.messages.send", () => {
appliedUpdatedAt: patchedUpdatedAt, appliedUpdatedAt: patchedUpdatedAt,
}), }),
); );
expect(result).toEqual(expect.objectContaining({ actionId: "action-1", resumeId: "resume-1" })); expect(result).toEqual(
expect.objectContaining({
actionId: "action-1",
resumeId: "resume-1",
changedPaths: ["/basics/customFields/-"],
resume: patchedData,
}),
);
});
it("rethrows a resume version conflict as a recoverable plain tool error", async () => {
const activeThread = buildActiveThread();
const persistedMessage = {
id: "message-1",
userId: "user-1",
threadId: "thread-1",
role: "user",
status: "completed",
sequence: 0,
uiMessage: { id: "ui-message-1", role: "user", parts: [{ type: "text", text: "Edit" }] },
};
dbMock.select
.mockImplementationOnce(() => selectLimitResult([activeThread]))
.mockImplementationOnce(() => selectWhereResult([{ maxSequence: -1 }]))
.mockImplementationOnce(() => selectWhereResult([{ total: 1 }]))
.mockImplementationOnce(() => selectOrderByResult([persistedMessage]));
dbMock.insert.mockReturnValue({
values: vi.fn(() => ({ returning: vi.fn(async () => [persistedMessage]) })),
});
dbMock.update.mockReturnValue({ set: vi.fn(() => ({ where: vi.fn(async () => undefined) })) });
claimActiveAgentRunMock.mockResolvedValue(true);
aiProvidersServiceMock.getRunnableById.mockResolvedValue({
id: "provider-1",
provider: "openai",
model: "gpt-5",
apiKey: "secret",
baseURL: null,
});
aiProvidersServiceMock.markUsed.mockResolvedValue(undefined);
const [
{ convertToModelMessages, ToolLoopAgent },
{ agentStreamLifecycle },
{ buildAgentTools },
{ streamToEventIterator },
] = await Promise.all([import("ai"), import("./streams"), import("./tools"), import("@orpc/server")]);
vi.mocked(convertToModelMessages).mockResolvedValue([{ role: "user", content: [{ type: "text", text: "Edit" }] }]);
class MockToolLoopAgent {
stream = vi.fn(async () => ({ toUIMessageStream: vi.fn(() => new ReadableStream()) }));
}
vi.mocked(ToolLoopAgent).mockImplementation(MockToolLoopAgent as never);
vi.mocked(agentStreamLifecycle.create).mockResolvedValue(new ReadableStream());
vi.mocked(streamToEventIterator).mockReturnValue("iterator" as never);
const { agentService } = await import("./service");
await agentService.messages.send({
threadId: "thread-1",
userId: "user-1",
// biome-ignore lint/suspicious/noExplicitAny: minimal fixture for unit test
message: { id: "ui-message-1", role: "user", parts: [{ type: "text", text: "Edit" }] } as any,
});
resumeServiceMock.getById.mockResolvedValue({ data: {}, updatedAt: new Date("2026-05-01T00:00:00.000Z") });
resumeServiceMock.patchInTransaction.mockRejectedValue(new ORPCError("RESUME_VERSION_CONFLICT"));
const toolConfig = vi.mocked(buildAgentTools).mock.calls.at(-1)?.[0];
// biome-ignore lint/suspicious/noExplicitAny: captured mocked tool config has intentionally loose handler types
const applying = (toolConfig as any).handlers.applyResumePatch({
title: "Edit",
operations: [{ op: "replace", path: "/basics/name", value: "Bob" }],
});
await expect(applying).rejects.toThrowError("The resume changed while this edit was being prepared");
await expect(applying).rejects.not.toBeInstanceOf(ORPCError);
}); });
it("persists canonical attachment UI parts, links selected attachments, and appends server-read model parts", async () => { it("persists canonical attachment UI parts, links selected attachments, and appends server-read model parts", async () => {
@@ -784,6 +899,10 @@ describe("agentService.messages.send", () => {
type: "tool-ask_user_question", type: "tool-ask_user_question",
toolCallId: "call-1", toolCallId: "call-1",
state: "output-available", state: "output-available",
input: {
question: "How broadly should I rename?",
choices: ["Only change the main resume header name"],
},
output: "Only change the main resume header name", output: "Only change the main resume header name",
}, },
], ],
@@ -809,6 +928,122 @@ describe("agentService.messages.send", () => {
expect(convertToModelMessages).toHaveBeenCalledWith([userMessage.uiMessage, answeredAssistantModelInput]); expect(convertToModelMessages).toHaveBeenCalledWith([userMessage.uiMessage, answeredAssistantModelInput]);
}); });
// Regression (defect 8): a question continuation streams into the SAME uiMessage id; onFinish
// must upsert the existing assistant row instead of inserting a duplicate row.
it("continues the existing assistant row on a question continuation instead of inserting a duplicate", async () => {
const activeThread = buildActiveThread();
const userMessage = {
id: "message-user-1",
userId: "user-1",
threadId: "thread-1",
role: "user",
status: "completed",
sequence: 0,
uiMessage: { id: "ui-user-1", role: "user", parts: [{ type: "text", text: "Change the name" }] },
};
const question = { question: "How broadly should I rename?", choices: ["Only the header"] };
const unansweredAssistantMessage = {
id: "message-assistant-1",
userId: "user-1",
threadId: "thread-1",
role: "assistant",
status: "completed",
sequence: 1,
uiMessage: {
id: "ui-assistant-1",
role: "assistant",
parts: [{ type: "tool-ask_user_question", toolCallId: "call-1", state: "input-available", input: question }],
},
};
const answeredAssistantMessage = {
...unansweredAssistantMessage,
uiMessage: {
...unansweredAssistantMessage.uiMessage,
parts: [
{
type: "tool-ask_user_question",
toolCallId: "call-1",
state: "output-available",
input: question,
output: "Only the header",
},
],
},
};
dbMock.select
.mockImplementationOnce(() => selectLimitResult([activeThread]))
.mockImplementationOnce(() => selectOrderByResult([userMessage, unansweredAssistantMessage]))
.mockImplementationOnce(() => selectOrderByResult([userMessage, answeredAssistantMessage]));
dbMock.update.mockImplementation(() => ({ set: vi.fn(() => ({ where: vi.fn(async () => undefined) })) }));
claimActiveAgentRunMock.mockResolvedValue(true);
aiProvidersServiceMock.getRunnableById.mockResolvedValue({
id: "provider-1",
provider: "openai",
model: "gpt-5",
apiKey: "secret",
baseURL: null,
});
aiProvidersServiceMock.markUsed.mockResolvedValue(undefined);
const [{ convertToModelMessages, ToolLoopAgent }, { agentStreamLifecycle }, { streamToEventIterator }] =
await Promise.all([import("ai"), import("./streams"), import("@orpc/server")]);
vi.mocked(convertToModelMessages).mockResolvedValue([
{ role: "user", content: [{ type: "text", text: "Change the name" }] },
]);
let uiStreamOptions: Record<string, unknown> | undefined;
class MockToolLoopAgent {
stream = vi.fn(async () => ({
toUIMessageStream: vi.fn((options: Record<string, unknown>) => {
uiStreamOptions = options;
return new ReadableStream();
}),
}));
}
vi.mocked(ToolLoopAgent).mockImplementation(MockToolLoopAgent as never);
vi.mocked(agentStreamLifecycle.create).mockImplementation((_streamId, makeStream) => {
(makeStream as () => unknown)();
return Promise.resolve(new ReadableStream());
});
vi.mocked(streamToEventIterator).mockReturnValue("iterator" as never);
const { agentService } = await import("./service");
await agentService.messages.send({
threadId: "thread-1",
userId: "user-1",
// biome-ignore lint/suspicious/noExplicitAny: minimal fixture for unit test
message: answeredAssistantMessage.uiMessage as any,
});
const onFinish = uiStreamOptions?.onFinish as (event: Record<string, unknown>) => Promise<void>;
const continuedMessage = {
...answeredAssistantMessage.uiMessage,
parts: [...answeredAssistantMessage.uiMessage.parts, { type: "text", text: "Renamed the header." }],
};
await onFinish({ responseMessage: continuedMessage, isAborted: false, isContinuation: true, messages: [] });
expect(messagesPersistenceMock.insertDraftAssistantMessage).not.toHaveBeenCalled();
expect(dbMock.insert).not.toHaveBeenCalled();
expect(messagesPersistenceMock.upsertAssistantUiMessage).toHaveBeenCalledWith(
expect.objectContaining({
rowId: "message-assistant-1",
status: "completed",
message: expect.objectContaining({ id: "ui-assistant-1" }),
}),
);
// Usage metadata is attached on the finish part only and carries the provider's model id.
const messageMetadata = uiStreamOptions?.messageMetadata as (options: { part: Record<string, unknown> }) => unknown;
expect(messageMetadata({ part: { type: "finish", totalUsage: { totalTokens: 42 } } })).toEqual({
usage: { totalTokens: 42 },
model: "gpt-5",
});
expect(messageMetadata({ part: { type: "text-delta" } })).toBeUndefined();
});
it("repairs legacy user-answer messages that followed an unresolved ask-user-question tool call", async () => { it("repairs legacy user-answer messages that followed an unresolved ask-user-question tool call", async () => {
const activeThread = buildActiveThread(); const activeThread = buildActiveThread();
const firstUserMessage = { const firstUserMessage = {
@@ -952,6 +1187,30 @@ describe("agentService.messages.send", () => {
]); ]);
}); });
it("rejects malformed UI message parts before claiming a run", async () => {
dbMock.select.mockImplementationOnce(() => selectLimitResult([buildActiveThread()]));
aiProvidersServiceMock.getRunnableById.mockResolvedValue({
id: "provider-1",
provider: "openai",
model: "gpt-5",
apiKey: "secret",
baseURL: null,
});
const { agentService } = await import("./service");
const sending = agentService.messages.send({
threadId: "thread-1",
userId: "user-1",
// biome-ignore lint/suspicious/noExplicitAny: malformed fixture on purpose
message: { id: "ui-message-1", role: "user", parts: [{ type: "text" }] } as any,
});
await expect(sending).rejects.toMatchObject({ code: "BAD_REQUEST", message: "Invalid UI message parts." });
expect(claimActiveAgentRunMock).not.toHaveBeenCalled();
expect(dbMock.insert).not.toHaveBeenCalled();
});
it("rejects malformed attachment IDs before persisting a message", async () => { it("rejects malformed attachment IDs before persisting a message", async () => {
dbMock.select.mockImplementationOnce(() => selectLimitResult([buildActiveThread()])); dbMock.select.mockImplementationOnce(() => selectLimitResult([buildActiveThread()]));
aiProvidersServiceMock.getRunnableById.mockResolvedValue({ aiProvidersServiceMock.getRunnableById.mockResolvedValue({
+308 -108
View File
@@ -1,26 +1,49 @@
import type { ApplyResumePatchInput } from "@reactive-resume/ai/tools/agent-tool-contracts";
import type { JsonPatchOperation } from "@reactive-resume/resume/patch"; import type { JsonPatchOperation } from "@reactive-resume/resume/patch";
import type { Locale } from "@reactive-resume/utils/locale"; import type { Locale } from "@reactive-resume/utils/locale";
import type { FilePart, ImagePart, ModelMessage, TextPart, UIMessage } from "ai"; import type { FilePart, ImagePart, ModelMessage, TextPart, UIMessage } from "ai";
import type { getModel } from "../ai/service"; import type { getModel } from "../ai/service";
import { ORPCError } from "@orpc/client"; import { ORPCError } from "@orpc/client";
import { streamToEventIterator } from "@orpc/server"; import { streamToEventIterator } from "@orpc/server";
import { convertToModelMessages, stepCountIs, ToolLoopAgent } from "ai"; import {
addToolInputExamplesMiddleware,
convertToModelMessages,
isStepCount,
safeValidateUIMessages,
smoothStream,
ToolLoopAgent,
wrapLanguageModel,
} from "ai";
import { and, asc, count, desc, eq, gte, inArray, isNull, max, sql } from "drizzle-orm"; import { and, asc, count, desc, eq, gte, inArray, isNull, max, sql } from "drizzle-orm";
import { db } from "@reactive-resume/db/client"; import { db } from "@reactive-resume/db/client";
import * as schema from "@reactive-resume/db/schema"; import * as schema from "@reactive-resume/db/schema";
import { defaultResumeData } from "@reactive-resume/schema/resume/default"; import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { generateId } from "@reactive-resume/utils/string"; import { generateId } from "@reactive-resume/utils/string";
import { assertAgentEnvironment } from "../ai/credentials"; import { assertAgentEnvironment, getAgentToolApprovalSecret } from "../ai/credentials";
import { getAgentModel } from "../ai/service"; import { getAgentModel } from "../ai/service";
import { aiProvidersService } from "../ai-providers/service"; import { aiProvidersService } from "../ai-providers/service";
import { resumeService } from "../resume/service"; import { resumeService } from "../resume/service";
import { getStorageService, inferContentType } from "../storage/service"; import { getStorageService, inferContentType } from "../storage/service";
import { pruneAgentModelContext } from "./context";
import { mergeClientToolResponses } from "./messages-merge";
import {
applyStepToUiMessage,
deleteDraftIfEmpty,
insertDraftAssistantMessage,
upsertAssistantUiMessage,
withAccumulatedUsageMetadata,
} from "./messages-persistence";
import { repairAgentToolCall } from "./repair";
import { buildAgentDraftResumeName, buildUniqueAgentDraftSlug, normalizeAgentResumePatchOperations } from "./resume"; import { buildAgentDraftResumeName, buildUniqueAgentDraftSlug, normalizeAgentResumePatchOperations } from "./resume";
import { claimActiveAgentRun, clearActiveAgentRunIfCurrent } from "./runs"; import { claimActiveAgentRun, clearActiveAgentRunIfCurrent, isStaleAgentRun, reapStaleAgentRun } from "./runs";
import { agentStreamLifecycle } from "./streams"; import { agentStreamLifecycle } from "./streams";
import { buildAgentInstructions, buildAgentTools } from "./tools"; import { buildAgentInstructions, buildAgentTools } from "./tools";
const MAX_AGENT_STEPS = 30; const MAX_AGENT_STEPS = 30;
const MAX_AGENT_OUTPUT_TOKENS = 8_192;
const MAX_AGENT_MODEL_RETRIES = 2;
const AGENT_STEP_TIMEOUT_MS = 120_000;
const AGENT_RUN_TIMEOUT_MS = 600_000;
const MAX_ATTACHMENTS_PER_MESSAGE = 10; const MAX_ATTACHMENTS_PER_MESSAGE = 10;
const MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024; const MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024;
const MAX_THREAD_ATTACHMENT_BYTES = 100 * 1024 * 1024; const MAX_THREAD_ATTACHMENT_BYTES = 100 * 1024 * 1024;
@@ -39,7 +62,7 @@ const ROLLBACK_CONFLICT_MESSAGE = "The resume changed after this action was appl
const ROLLED_BACK_MESSAGE = "This patch was rolled back when the resume was restored to an earlier state."; const ROLLED_BACK_MESSAGE = "This patch was rolled back when the resume was restored to an earlier state.";
const activeRunControllers = new Map<string, AbortController>(); const activeRunControllers = new Map<string, AbortController>();
const canceledRunsWithPersistedPartial = new Set<string>(); const activeRunTimeouts = new Map<string, ReturnType<typeof setTimeout>>();
// Abort reasons MUST be an AbortError: the AI SDK only treats `err.name === "AbortError"` // Abort reasons MUST be an AbortError: the AI SDK only treats `err.name === "AbortError"`
// (via isAbortError) as a cancellation. A bare-string reason is treated as a genuine stream // (via isAbortError) as a cancellation. A bare-string reason is treated as a genuine stream
@@ -88,6 +111,7 @@ function toThreadSummary(row: AgentThreadRecord & { resumeName?: string | null;
id: row.id, id: row.id,
title: row.title, title: row.title,
status: row.status, status: row.status,
reviewPatches: row.reviewPatches,
sourceResumeId: row.sourceResumeId, sourceResumeId: row.sourceResumeId,
workingResumeId: row.workingResumeId, workingResumeId: row.workingResumeId,
aiProviderId: row.aiProviderId, aiProviderId: row.aiProviderId,
@@ -193,63 +217,6 @@ type AgentToolPart = UIMessage["parts"][number] & {
toolCallId?: string; toolCallId?: string;
}; };
type AnsweredAskUserQuestionPart = AgentToolPart & {
toolCallId: string;
};
function isAnsweredAskUserQuestionPart(part: UIMessage["parts"][number]): part is AnsweredAskUserQuestionPart {
const toolPart = part as AgentToolPart;
return (
toolPart.type === "tool-ask_user_question" &&
typeof toolPart.toolCallId === "string" &&
(toolPart.state === "output-available" || toolPart.state === "output-error")
);
}
function mergeAskUserQuestionOutputs(existingMessage: UIMessage, incomingMessage: UIMessage): UIMessage {
const answeredParts = new Map<string, AgentToolPart>();
for (const part of incomingMessage.parts) {
if (isAnsweredAskUserQuestionPart(part)) answeredParts.set(part.toolCallId, part);
}
let didMerge = false;
const parts = existingMessage.parts.map((part) => {
const existingPart = part as AgentToolPart;
if (
existingPart.type !== "tool-ask_user_question" ||
typeof existingPart.toolCallId !== "string" ||
existingPart.state !== "input-available"
) {
return part;
}
const answeredPart = answeredParts.get(existingPart.toolCallId);
if (!answeredPart) return part;
didMerge = true;
if (answeredPart.state === "output-error") {
return {
...part,
state: "output-error",
errorText: answeredPart.errorText ?? "User answer failed.",
} as UIMessage["parts"][number];
}
return {
...part,
state: "output-available",
output: answeredPart.output,
} as UIMessage["parts"][number];
});
if (!didMerge) {
throw new ORPCError("BAD_REQUEST", { message: "No matching unanswered user question was found." });
}
return { ...existingMessage, parts };
}
function getFirstUnansweredAskUserQuestionToolCallId(message: UIMessage) { function getFirstUnansweredAskUserQuestionToolCallId(message: UIMessage) {
const part = message.parts.find((part) => { const part = message.parts.find((part) => {
const toolPart = part as AgentToolPart; const toolPart = part as AgentToolPart;
@@ -264,7 +231,7 @@ function getFirstUnansweredAskUserQuestionToolCallId(message: UIMessage) {
} }
function answerAskUserQuestionToolCall(message: UIMessage, toolCallId: string, answer: string) { function answerAskUserQuestionToolCall(message: UIMessage, toolCallId: string, answer: string) {
return mergeAskUserQuestionOutputs(message, { const { message: merged } = mergeClientToolResponses(message, {
...message, ...message,
parts: [ parts: [
{ {
@@ -276,6 +243,8 @@ function answerAskUserQuestionToolCall(message: UIMessage, toolCallId: string, a
} as UIMessage["parts"][number], } as UIMessage["parts"][number],
], ],
}); });
return merged;
} }
function attachmentLabel(attachment: AgentAttachmentRecord) { function attachmentLabel(attachment: AgentAttachmentRecord) {
@@ -534,7 +503,25 @@ async function updateAssistantToolResultMessage(input: { userId: string; threadI
throw new ORPCError("BAD_REQUEST", { message: "The answered assistant message was not found." }); throw new ORPCError("BAD_REQUEST", { message: "The answered assistant message was not found." });
} }
const mergedMessage = mergeAskUserQuestionOutputs(toMessage(existingRow), input.message); const {
message: mergedMessage,
mergedCount,
alreadyResolvedCount,
pendingContinuationCount,
conflictingCount,
} = mergeClientToolResponses(toMessage(existingRow), input.message);
if (conflictingCount > 0) {
throw new ORPCError("BAD_REQUEST", { message: "This approval was already answered with a different decision." });
}
// A recorded-but-unexecuted approval (pendingContinuationCount) proceeds: a prior continuation
// attempt failed after persisting the decision, and this retry is the recovery path.
if (mergedCount === 0 && pendingContinuationCount === 0) {
if (alreadyResolvedCount > 0) {
throw new ORPCError("CONFLICT", { message: "This response was already handled." });
}
throw new ORPCError("BAD_REQUEST", { message: "No matching unanswered user question was found." });
}
await db await db
.update(schema.agentMessage) .update(schema.agentMessage)
@@ -555,7 +542,7 @@ async function updateAssistantToolResultMessage(input: { userId: string; threadI
.set({ lastMessageAt: new Date() }) .set({ lastMessageAt: new Date() })
.where(and(eq(schema.agentThread.id, input.threadId), eq(schema.agentThread.userId, input.userId))); .where(and(eq(schema.agentThread.id, input.threadId), eq(schema.agentThread.userId, input.userId)));
return mergedMessage; return { message: mergedMessage, rowId: existingRow.id };
} }
async function repairLegacyAskUserQuestionAnswers( async function repairLegacyAskUserQuestionAnswers(
@@ -610,9 +597,16 @@ async function cleanupActiveRun(input: {
runId: string; runId: string;
streamId: string; streamId: string;
primaryError?: unknown; primaryError?: unknown;
// When final persistence failed, keep the run claim: the reaper only examines threads with an
// active claim, so releasing it here would orphan the "streaming" draft forever. The TTL reap
// heals the claim and the draft together.
preserveClaimForReaper?: boolean;
}) { }) {
activeRunControllers.delete(input.runId); activeRunControllers.delete(input.runId);
canceledRunsWithPersistedPartial.delete(input.runId); clearTimeout(activeRunTimeouts.get(input.runId));
activeRunTimeouts.delete(input.runId);
if (input.preserveClaimForReaper) return;
try { try {
await clearActiveAgentRunIfCurrent(input); await clearActiveAgentRunIfCurrent(input);
@@ -680,7 +674,7 @@ async function readAttachment(input: { id: string; threadId: string; userId: str
filename: attachment.filename, filename: attachment.filename,
mediaType: attachment.mediaType, mediaType: attachment.mediaType,
size: attachment.size, size: attachment.size,
content: new TextDecoder().decode(stored.data).slice(0, 40_000), content: new TextDecoder().decode(stored.data).slice(0, MAX_ATTACHMENT_TEXT_CHARS),
}; };
} }
@@ -688,19 +682,43 @@ async function applyResumePatch(input: {
userId: string; userId: string;
threadId: string; threadId: string;
resumeId: string; resumeId: string;
messageId?: string;
title: string; title: string;
summary?: string; summary?: string;
baseUpdatedAt?: string;
operations: JsonPatchOperation[]; operations: JsonPatchOperation[];
}) { }) {
const before = await resumeService.getById({ id: input.resumeId, userId: input.userId }); const before = await resumeService.getById({ id: input.resumeId, userId: input.userId });
// Bind the patch to the revision the model actually read (and, under review, the revision the
// user approved): index-based operations built against an older document could otherwise
// silently target different items after a concurrent edit. baseUpdatedAt travels inside the
// signed tool input, so an approval cannot be replayed against a changed resume either.
if (input.baseUpdatedAt) {
const baseTime = new Date(input.baseUpdatedAt).getTime();
// An unparseable value must fail loudly rather than silently skip the revision check.
if (Number.isNaN(baseTime)) {
throw new Error(
`baseUpdatedAt is not a valid timestamp. Pass the updatedAt from the read_resume or apply_resume_patch result verbatim (currently ${before.updatedAt.toISOString()}).`,
);
}
if (baseTime !== before.updatedAt.getTime()) {
throw new Error(
`The resume changed after it was read (its updatedAt is now ${before.updatedAt.toISOString()}). Re-read the resume and rebuild the patch against the current document.`,
);
}
}
const snapshotData = cloneResumeData(before.data); const snapshotData = cloneResumeData(before.data);
const operations = normalizeAgentResumePatchOperations(before.data, input.operations); const operations = normalizeAgentResumePatchOperations(before.data, input.operations);
const { action, patched } = await db.transaction(async (tx) => { const { action, patched } = await db
.transaction(async (tx) => {
const patched = await resumeService.patchInTransaction(tx, { const patched = await resumeService.patchInTransaction(tx, {
id: input.resumeId, id: input.resumeId,
userId: input.userId, userId: input.userId,
operations, operations,
expectedUpdatedAt: before.updatedAt,
}); });
const [action] = await tx const [action] = await tx
@@ -709,6 +727,7 @@ async function applyResumePatch(input: {
userId: input.userId, userId: input.userId,
threadId: input.threadId, threadId: input.threadId,
resumeId: input.resumeId, resumeId: input.resumeId,
...(input.messageId ? { messageId: input.messageId } : {}),
kind: "resume_patch", kind: "resume_patch",
status: "applied", status: "applied",
title: input.title, title: input.title,
@@ -723,6 +742,13 @@ async function applyResumePatch(input: {
if (!action) throw new Error("AGENT_ACTION_CREATE_FAILED"); if (!action) throw new Error("AGENT_ACTION_CREATE_FAILED");
return { action, patched }; return { action, patched };
})
.catch((error: unknown) => {
// Surface the version conflict as a recoverable tool error, not a run-fatal ORPCError.
if (error instanceof ORPCError && error.code === "RESUME_VERSION_CONFLICT") {
throw new Error("The resume changed while this edit was being prepared. Re-read the resume and retry.");
}
throw error;
}); });
await resumeService.notifyResumePatched({ await resumeService.notifyResumePatched({
@@ -738,6 +764,10 @@ async function applyResumePatch(input: {
summary: action.summary, summary: action.summary,
operations: action.operations, operations: action.operations,
appliedUpdatedAt: action.appliedUpdatedAt.toISOString(), appliedUpdatedAt: action.appliedUpdatedAt.toISOString(),
changedPaths: [...new Set(operations.flatMap((op) => ("from" in op ? [op.path, op.from] : [op.path])))],
// Full post-patch document: array indexes may have shifted, so the model must base
// further patches on this instead of an earlier read_resume snapshot.
resume: patched.data,
}; };
} }
@@ -745,6 +775,8 @@ function createAgent(input: {
userId: string; userId: string;
threadId: string; threadId: string;
resumeId: string; resumeId: string;
draftRowId?: string;
requirePatchApproval?: boolean;
provider: { provider: {
provider: Parameters<typeof getModel>[0]["provider"]; provider: Parameters<typeof getModel>[0]["provider"];
model: string; model: string;
@@ -753,10 +785,35 @@ function createAgent(input: {
}; };
model: ReturnType<typeof getModel>; model: ReturnType<typeof getModel>;
}) { }) {
// One greppable JSON line per tool execution.
const timedToolHandler =
<A extends unknown[], R>(toolName: string, run: (...args: A) => Promise<R>) =>
async (...args: A): Promise<R> => {
const startedAt = Date.now();
let ok = true;
try {
return await run(...args);
} catch (error) {
ok = false;
throw error;
} finally {
console.info(
JSON.stringify({
evt: "agent.tool",
threadId: input.threadId,
tool: toolName,
ok,
durationMs: Date.now() - startedAt,
}),
);
}
};
const tools = buildAgentTools({ const tools = buildAgentTools({
provider: input.provider, provider: input.provider,
options: { requirePatchApproval: !!input.requirePatchApproval },
handlers: { handlers: {
readResume: async () => { readResume: timedToolHandler("read_resume", async () => {
const resume = await resumeService.getById({ id: input.resumeId, userId: input.userId }); const resume = await resumeService.getById({ id: input.resumeId, userId: input.userId });
return { return {
id: resume.id, id: resume.id,
@@ -777,25 +834,56 @@ function createAgent(input: {
], ],
data: resume.data, data: resume.data,
}; };
}, }),
readAttachment: (attachmentId) => readAttachment: timedToolHandler("read_attachment", (attachmentId: string) =>
readAttachment({ id: attachmentId, threadId: input.threadId, userId: input.userId }), readAttachment({ id: attachmentId, threadId: input.threadId, userId: input.userId }),
applyResumePatch: ({ title, summary, operations }) => ),
applyResumePatch: timedToolHandler(
"apply_resume_patch",
({ title, summary, baseUpdatedAt, operations }: ApplyResumePatchInput) =>
applyResumePatch({ applyResumePatch({
userId: input.userId, userId: input.userId,
threadId: input.threadId, threadId: input.threadId,
resumeId: input.resumeId, resumeId: input.resumeId,
...(input.draftRowId ? { messageId: input.draftRowId } : {}),
title, title,
...(summary !== undefined ? { summary } : {}), ...(summary !== undefined ? { summary } : {}),
...(baseUpdatedAt !== undefined ? { baseUpdatedAt } : {}),
operations, operations,
}), }),
),
}, },
}); });
const instructionsText = buildAgentInstructions({ hasProviderNativeSearch: "web_search" in tools });
return new ToolLoopAgent({ return new ToolLoopAgent({
model: input.model, // Providers without native inputExamples support get them appended to the tool description.
instructions: buildAgentInstructions({ hasProviderNativeSearch: "web_search" in tools }), model: wrapLanguageModel({ model: input.model, middleware: addToolInputExamplesMiddleware() }),
stopWhen: stepCountIs(MAX_AGENT_STEPS), // The loop re-sends stable instructions every step; on anthropic, prompt caching pays from step 2.
instructions:
input.provider.provider === "anthropic"
? {
role: "system",
content: instructionsText,
providerOptions: { anthropic: { cacheControl: { type: "ephemeral" } } },
}
: instructionsText,
repairToolCall: repairAgentToolCall,
stopWhen: isStepCount(MAX_AGENT_STEPS),
maxOutputTokens: MAX_AGENT_OUTPUT_TOKENS,
maxRetries: MAX_AGENT_MODEL_RETRIES,
timeout: { stepMs: AGENT_STEP_TIMEOUT_MS },
// HMAC-signs approval requests at issuance and verifies them when replayed on the
// continuation run, so a client cannot forge or alter an approval payload. The agent
// runtime forwards constructor settings to streamText verbatim; ToolLoopAgentSettings
// does not type this key yet, hence the spread-cast.
...({ experimental_toolApprovalSecret: getAgentToolApprovalSecret() } as object),
// Runs before every loop step, so intra-run growth (N patches → N snapshots) is pruned too.
prepareStep: ({ messages }) => {
const pruned = pruneAgentModelContext(messages);
return pruned === messages ? {} : { messages: pruned };
},
tools, tools,
}); });
} }
@@ -808,6 +896,7 @@ const threadSummarySelection = {
workingResumeId: schema.agentThread.workingResumeId, workingResumeId: schema.agentThread.workingResumeId,
title: schema.agentThread.title, title: schema.agentThread.title,
status: schema.agentThread.status, status: schema.agentThread.status,
reviewPatches: schema.agentThread.reviewPatches,
activeRunId: schema.agentThread.activeRunId, activeRunId: schema.agentThread.activeRunId,
activeStreamId: schema.agentThread.activeStreamId, activeStreamId: schema.agentThread.activeStreamId,
activeRunStartedAt: schema.agentThread.activeRunStartedAt, activeRunStartedAt: schema.agentThread.activeRunStartedAt,
@@ -931,6 +1020,21 @@ export const agentService = {
assertAgentEnvironment(); assertAgentEnvironment();
const thread = await getThread(input); const thread = await getThread(input);
// Heal on open: clear a dead run's claim before reading messages so the client neither
// resumes a dead stream nor renders a perpetually "streaming" draft.
if (thread.activeRunId && isStaleAgentRun(thread)) {
await reapStaleAgentRun({
threadId: input.id,
userId: input.userId,
runId: thread.activeRunId,
streamId: thread.activeStreamId,
});
thread.activeRunId = null;
thread.activeStreamId = null;
thread.activeRunStartedAt = null;
}
const [messages, actions, attachments, resume] = await Promise.all([ const [messages, actions, attachments, resume] = await Promise.all([
listThreadMessages({ threadId: input.id, userId: input.userId }), listThreadMessages({ threadId: input.id, userId: input.userId }),
db db
@@ -963,6 +1067,27 @@ export const agentService = {
}; };
}, },
update: async (input: { id: string; userId: string; reviewPatches: boolean }) => {
assertAgentEnvironment();
const thread = await getThread({ id: input.id, userId: input.userId });
// Approval behavior is captured when a run's agent is created; toggling mid-run would
// show "review on" while later patches from the same run still auto-apply.
if (thread.activeRunId && !isStaleAgentRun(thread)) {
throw new ORPCError("CONFLICT", { message: "Review settings cannot change while a run is active." });
}
const [updated] = await db
.update(schema.agentThread)
.set({ reviewPatches: input.reviewPatches })
.where(and(eq(schema.agentThread.id, input.id), eq(schema.agentThread.userId, input.userId)))
.returning();
if (!updated) throw new ORPCError("NOT_FOUND");
return toThreadSummary(updated);
},
archive: async (input: { id: string; userId: string }) => { archive: async (input: { id: string; userId: string }) => {
assertAgentEnvironment(); assertAgentEnvironment();
@@ -1025,8 +1150,17 @@ export const agentService = {
throw new ORPCError("CONFLICT", { message: "This thread is archived." }); throw new ORPCError("CONFLICT", { message: "This thread is archived." });
} }
if (thread.activeRunId) { if (thread.activeRunId) {
if (!isStaleAgentRun(thread)) {
throw new ORPCError("CONFLICT", { message: "This thread already has an active run." }); throw new ORPCError("CONFLICT", { message: "This thread already has an active run." });
} }
// Lazy reap: a dead run's claim heals on the next send instead of CONFLICTing forever.
await reapStaleAgentRun({
threadId: input.threadId,
userId: input.userId,
runId: thread.activeRunId,
streamId: thread.activeStreamId,
});
}
if (!thread.workingResumeId || !thread.aiProviderId) { if (!thread.workingResumeId || !thread.aiProviderId) {
throw new ORPCError("BAD_REQUEST", { message: "This thread is read-only." }); throw new ORPCError("BAD_REQUEST", { message: "This thread is read-only." });
} }
@@ -1034,6 +1168,12 @@ export const agentService = {
throw new ORPCError("BAD_REQUEST", { message: "Agent messages must be user messages or tool results." }); throw new ORPCError("BAD_REQUEST", { message: "Agent messages must be user messages or tool results." });
} }
// Deliberately schema-less: provider-echoed tool parts must pass, and replayed history is never re-validated.
const validated = await safeValidateUIMessages({ messages: [input.message] });
if (!validated.success) {
throw new ORPCError("BAD_REQUEST", { message: "Invalid UI message parts." });
}
const [runnableProvider, attachments] = await Promise.all([ const [runnableProvider, attachments] = await Promise.all([
aiProvidersService.getRunnableById({ aiProvidersService.getRunnableById({
id: thread.aiProviderId, id: thread.aiProviderId,
@@ -1056,6 +1196,19 @@ export const agentService = {
throw new ORPCError("CONFLICT", { message: "This thread already has an active run." }); throw new ORPCError("CONFLICT", { message: "This thread already has an active run." });
} }
// Whole-run wall clock. Must abort with an AbortError (see abortReason) — never AbortSignal.timeout().
activeRunTimeouts.set(
runId,
setTimeout(() => controller.abort(abortReason("RUN_TIMEOUT")), AGENT_RUN_TIMEOUT_MS),
);
// Row + message the run streams into. A continuation reuses the existing assistant
// row (same uiMessage id); a fresh turn inserts a "streaming" draft row below.
let draftRowId: string | undefined;
let insertedDraft = false;
const responseMessageId = generateId();
let draftUiMessage: UIMessage = { id: responseMessageId, role: "assistant", parts: [] };
try { try {
let attachmentsForModel: AgentAttachmentRecord[] = []; let attachmentsForModel: AgentAttachmentRecord[] = [];
@@ -1064,11 +1217,17 @@ export const agentService = {
throw new ORPCError("BAD_REQUEST", { message: "Tool result messages cannot include attachments." }); throw new ORPCError("BAD_REQUEST", { message: "Tool result messages cannot include attachments." });
} }
await updateAssistantToolResultMessage({ // Merge AFTER the exclusive claim: concurrent approve/deny requests serialize on
// the claim instead of both persisting, and a merge that is rejected (or any later
// setup failure) releases the claim via the catch below. A response persisted by a
// failed earlier attempt re-enters as pendingContinuation and still gets its run.
const continuation = await updateAssistantToolResultMessage({
userId: input.userId, userId: input.userId,
threadId: input.threadId, threadId: input.threadId,
message: input.message, message: input.message,
}); });
draftRowId = continuation.rowId;
draftUiMessage = continuation.message;
} else { } else {
attachmentsForModel = attachments; attachmentsForModel = attachments;
const sequence = await getNextMessageSequence(input.threadId); const sequence = await getNextMessageSequence(input.threadId);
@@ -1109,10 +1268,25 @@ export const agentService = {
const messages = messageRows.map(toMessage); const messages = messageRows.map(toMessage);
const modelMessages = await convertToModelMessages(messages.map(toModelInputMessage)); const modelMessages = await convertToModelMessages(messages.map(toModelInputMessage));
const attachmentModelParts = buildAttachmentModelParts(await readAttachmentModelInputs(attachmentsForModel)); const attachmentModelParts = buildAttachmentModelParts(await readAttachmentModelInputs(attachmentsForModel));
// Draft row inserted after the replay snapshot (so it is not replayed) and before the
// stream starts, so a crash mid-run leaves a resumable record instead of nothing.
if (input.message.role === "user") {
const draft = await insertDraftAssistantMessage({
userId: input.userId,
threadId: input.threadId,
uiMessageId: responseMessageId,
});
draftRowId = draft.rowId;
insertedDraft = true;
}
const agent = createAgent({ const agent = createAgent({
userId: input.userId, userId: input.userId,
threadId: input.threadId, threadId: input.threadId,
resumeId: thread.workingResumeId, resumeId: thread.workingResumeId,
...(draftRowId ? { draftRowId } : {}),
requirePatchApproval: thread.reviewPatches,
provider: { provider: {
provider: runnableProvider.provider, provider: runnableProvider.provider,
model: runnableProvider.model, model: runnableProvider.model,
@@ -1130,25 +1304,58 @@ export const agentService = {
const result = await agent.stream({ const result = await agent.stream({
messages: attachModelPartsToLatestUserMessage(modelMessages, attachmentModelParts), messages: attachModelPartsToLatestUserMessage(modelMessages, attachmentModelParts),
abortSignal: controller.signal, abortSignal: controller.signal,
experimental_transform: smoothStream({ chunking: "word" }),
// Crash-safety: fold each finished step into the draft row so a process death
// mid-run loses at most the current step, never the whole transcript.
onStepEnd: async (step) => {
console.info(
JSON.stringify({
evt: "agent.step",
threadId: input.threadId,
runId,
step: step.stepNumber,
toolNames: step.toolCalls.map((call) => call.toolName),
usage: step.usage,
finishReason: step.finishReason,
}),
);
try {
draftUiMessage = applyStepToUiMessage(draftUiMessage, step);
const upserted = await upsertAssistantUiMessage({
userId: input.userId,
threadId: input.threadId,
...(draftRowId ? { rowId: draftRowId } : {}),
message: draftUiMessage,
status: "streaming",
});
draftRowId = upserted.rowId;
} catch (error) {
console.error("[agent] Failed to persist step draft", error);
}
},
}); });
return streamToEventIterator( return streamToEventIterator(
await agentStreamLifecycle.create(streamId, () => await agentStreamLifecycle.create(streamId, () =>
result.toUIMessageStream({ result.toUIMessageStream({
originalMessages: messages, originalMessages: messages,
generateMessageId: generateId, generateMessageId: () => responseMessageId,
sendSources: true, sendSources: true,
// Round-trips inside the persisted uiMessage jsonb — no migration needed.
messageMetadata: ({ part }) =>
part.type === "finish" ? { usage: part.totalUsage, model: runnableProvider.model } : undefined,
onFinish: async ({ responseMessage, isAborted }) => { onFinish: async ({ responseMessage, isAborted }) => {
let persistError: unknown; let persistError: unknown;
try { try {
if (!(isAborted && canceledRunsWithPersistedPartial.has(runId))) { await upsertAssistantUiMessage({
await persistMessage({
userId: input.userId, userId: input.userId,
threadId: input.threadId, threadId: input.threadId,
message: responseMessage, ...(draftRowId ? { rowId: draftRowId } : {}),
// A continuation reuses the message; the SDK replaces primitive
// metadata, so prior-run usage must be summed back in.
message: withAccumulatedUsageMetadata(draftUiMessage, responseMessage),
status: isAborted ? "canceled" : "completed", status: isAborted ? "canceled" : "completed",
}); });
}
} catch (error) { } catch (error) {
persistError = error; persistError = error;
throw error; throw error;
@@ -1159,6 +1366,7 @@ export const agentService = {
runId, runId,
streamId, streamId,
primaryError: persistError, primaryError: persistError,
preserveClaimForReaper: !!persistError,
}); });
} }
}, },
@@ -1167,6 +1375,11 @@ export const agentService = {
), ),
); );
} catch (error) { } catch (error) {
if (insertedDraft && draftRowId) {
await deleteDraftIfEmpty({ rowId: draftRowId, threadId: input.threadId, userId: input.userId }).catch(
(cleanupError: unknown) => console.error("[agent] Failed to delete empty draft", cleanupError),
);
}
await cleanupActiveRun({ await cleanupActiveRun({
threadId: input.threadId, threadId: input.threadId,
userId: input.userId, userId: input.userId,
@@ -1178,47 +1391,34 @@ export const agentService = {
} }
}, },
stop: async (input: { userId: string; threadId: string; partialMessage?: UIMessage }) => { // Server-authored cancellation: the abort makes onFinish({isAborted: true}) persist exactly
// what the server generated. The deprecated client `partialMessage` is ignored.
stop: async (input: { userId: string; threadId: string }) => {
assertAgentEnvironment(); assertAgentEnvironment();
const thread = await getThread({ id: input.threadId, userId: input.userId }); const thread = await getThread({ id: input.threadId, userId: input.userId });
const activeRunId = thread.activeRunId; const activeRunId = thread.activeRunId;
const activeStreamId = thread.activeStreamId; const activeStreamId = thread.activeStreamId;
if (!activeRunId) return;
let persistError: unknown; const controller = activeRunControllers.get(activeRunId);
let cleanupError: unknown; if (controller) {
try { // This replica owns the run: abort only. The claim stays until onFinish has
if (input.partialMessage) { // persisted the terminal (canceled) state, so no new run can interleave with a
await persistMessage({ // still-committing tool or write. onFinish's cleanup releases the claim.
userId: input.userId, controller.abort(abortReason("USER_STOPPED"));
threadId: input.threadId, return;
message: input.partialMessage,
status: "canceled",
});
if (activeRunId) canceledRunsWithPersistedPartial.add(activeRunId);
} }
} catch (error) {
persistError = error; // No local controller (another replica owns the run, or the process restarted):
} finally { // best-effort claim release so the user is not stuck. Cross-replica abort signaling
if (activeRunId) { // is a documented follow-up; the stale-run reaper covers the leftovers.
activeRunControllers.get(activeRunId)?.abort(abortReason("USER_STOPPED"));
activeRunControllers.delete(activeRunId);
try {
await clearActiveAgentRunIfCurrent({ await clearActiveAgentRunIfCurrent({
threadId: input.threadId, threadId: input.threadId,
userId: input.userId, userId: input.userId,
runId: activeRunId, runId: activeRunId,
streamId: activeStreamId, streamId: activeStreamId,
}); });
} catch (error) {
cleanupError = error;
if (persistError) console.error("[agent] Failed to clear active run after stop persistence error", error);
}
}
}
if (persistError) throw persistError;
if (cleanupError) throw cleanupError;
}, },
resume: async (input: { userId: string; threadId: string }) => { resume: async (input: { userId: string; threadId: string }) => {
assertAgentEnvironment(); assertAgentEnvironment();
@@ -64,6 +64,24 @@ export const threadsRouter = {
.use(mapAgentEnvironmentError) .use(mapAgentEnvironmentError)
.handler(({ context, input }) => agentService.threads.get({ id: input.id, userId: context.user.id })), .handler(({ context, input }) => agentService.threads.get({ id: input.id, userId: context.user.id })),
update: protectedProcedure
.route({
method: "PATCH",
path: "/agent/threads/{id}",
tags: ["Agent"],
operationId: "updateAgentThread",
summary: "Update agent thread settings",
})
.input(z.object({ id: z.string(), reviewPatches: z.boolean() }))
.use(mapAgentEnvironmentError)
.handler(({ context, input }) =>
agentService.threads.update({
id: input.id,
userId: context.user.id,
reviewPatches: input.reviewPatches,
}),
),
archive: protectedProcedure archive: protectedProcedure
.route({ .route({
method: "POST", method: "POST",
+16 -2
View File
@@ -26,9 +26,15 @@ const handlers = {
}), }),
}; };
function buildTools(provider: AIProvider, options?: { model?: string; baseURL?: string }) { function buildTools(
provider: AIProvider,
options?: { model?: string; baseURL?: string; requirePatchApproval?: boolean },
) {
return buildAgentTools({ return buildAgentTools({
provider: { provider, model: options?.model ?? "gpt-5-mini", apiKey: "test-key", baseURL: options?.baseURL ?? "" }, provider: { provider, model: options?.model ?? "gpt-5-mini", apiKey: "test-key", baseURL: options?.baseURL ?? "" },
...(options?.requirePatchApproval !== undefined
? { options: { requirePatchApproval: options.requirePatchApproval } }
: {}),
handlers, handlers,
}); });
} }
@@ -76,6 +82,14 @@ describe("agent tools", () => {
}, },
); );
it("marks apply_resume_patch as needing approval only when review is required", () => {
const gated = buildTools("openai-compatible", { requirePatchApproval: true });
const open = buildTools("openai-compatible");
expect(gated.apply_resume_patch).toMatchObject({ needsApproval: true });
expect(open.apply_resume_patch?.needsApproval).toBeUndefined();
});
it("keeps instructions explicit about native search availability", () => { it("keeps instructions explicit about native search availability", () => {
expect(buildAgentInstructions({ hasProviderNativeSearch: true })).toContain("Use web_search"); expect(buildAgentInstructions({ hasProviderNativeSearch: true })).toContain("Use web_search");
expect(buildAgentInstructions({ hasProviderNativeSearch: true })).toContain("user-provided public URLs"); expect(buildAgentInstructions({ hasProviderNativeSearch: true })).toContain("user-provided public URLs");
@@ -92,7 +106,7 @@ describe("agent tools", () => {
expect(buildAgentInstructions({ hasProviderNativeSearch: false })).toContain( expect(buildAgentInstructions({ hasProviderNativeSearch: false })).toContain(
"/customSections/0/items/0/description", "/customSections/0/items/0/description",
); );
expect(buildAgentInstructions({ hasProviderNativeSearch: false })).toContain("never /data/basics/name or /name"); expect(buildAgentInstructions({ hasProviderNativeSearch: false })).toContain("never prefixed with /data");
expect(buildAgentInstructions({ hasProviderNativeSearch: false })).toContain("clean Markdown"); expect(buildAgentInstructions({ hasProviderNativeSearch: false })).toContain("clean Markdown");
}); });
}); });
+29 -16
View File
@@ -1,9 +1,13 @@
import type { ApplyResumePatchInput } from "@reactive-resume/ai/tools/agent-tool-contracts";
import type { AIProvider } from "@reactive-resume/ai/types"; import type { AIProvider } from "@reactive-resume/ai/types";
import type { ToolSet } from "ai"; import type { ToolSet } from "ai";
import { createOpenAI } from "@ai-sdk/openai"; import { createOpenAI } from "@ai-sdk/openai";
import { tool } from "ai"; import { tool } from "ai";
import z from "zod"; import z from "zod";
import { jsonPatchOperationSchema } from "@reactive-resume/resume/patch"; import {
applyResumePatchInputSchema,
askUserQuestionInputSchema,
} from "@reactive-resume/ai/tools/agent-tool-contracts";
import { supportsProviderNativeWebSearch } from "../ai/capabilities"; import { supportsProviderNativeWebSearch } from "../ai/capabilities";
type AgentProviderConfig = { type AgentProviderConfig = {
@@ -13,16 +17,13 @@ type AgentProviderConfig = {
baseURL?: string | null; baseURL?: string | null;
}; };
const applyResumePatchToolInputSchema = z.object({ type ApplyResumePatchToolInput = ApplyResumePatchInput;
title: z.string().trim().min(1),
summary: z.string().trim().optional(),
operations: z.array(jsonPatchOperationSchema).min(1),
});
type ApplyResumePatchToolInput = z.infer<typeof applyResumePatchToolInputSchema>;
type BuildAgentToolsInput = { type BuildAgentToolsInput = {
provider: AgentProviderConfig; provider: AgentProviderConfig;
options?: {
requirePatchApproval?: boolean;
};
handlers: { handlers: {
readResume: () => Promise<unknown>; readResume: () => Promise<unknown>;
readAttachment: (attachmentId: string) => Promise<unknown>; readAttachment: (attachmentId: string) => Promise<unknown>;
@@ -51,8 +52,10 @@ function buildProviderNativeAgentTools(provider: AgentProviderConfig): ToolSet {
} }
export function buildAgentInstructions({ hasProviderNativeSearch }: { hasProviderNativeSearch: boolean }) { export function buildAgentInstructions({ hasProviderNativeSearch }: { hasProviderNativeSearch: boolean }) {
// The JSON-Pointer conventions live in the read_resume result, the tool descriptions, and the
// tool input examples; the instructions keep only a compact reminder to save tokens per step.
const baseInstructions = const baseInstructions =
"You are an expert resume-writing agent inside Reactive Resume. Help the user improve the working resume for a target role. Read the resume before editing. Respond to the user in clean Markdown with concise paragraphs, bullets, and bold text when it improves scanability. Apply concise, valid JSON Patch operations when changes are useful. Patch paths are evaluated against the resume data object returned by read_resume, so use paths like /basics/name for the visible name and never /data/basics/name or /name. Built-in sections must use /sections/<sectionId>, for example /sections/experience/items/0/description. Custom sections must use /customSections/<index>, for example /customSections/0/items/0/description, even when their type is experience, education, or another built-in section type. apply_resume_patch cannot rename the resume file/title metadata. Batch related JSON Patch operations into one apply_resume_patch call for each coherent edit instead of making repeated patch calls for the same request. Ask the user a question when a missing preference blocks a high-confidence edit."; "You are an expert resume-writing agent inside Reactive Resume. Help the user improve the working resume for a target role. Read the resume before editing. Respond to the user in clean Markdown with concise paragraphs, bullets, and bold text when it improves scanability. Apply concise, valid JSON Patch operations when changes are useful. Patch paths are rooted at the resume data object returned by read_resume — for example /basics/name, /sections/experience/items/0/description, or /customSections/0/items/0/description — never prefixed with /data. apply_resume_patch cannot rename the resume file/title metadata. Batch related JSON Patch operations into one apply_resume_patch call for each coherent edit instead of making repeated patch calls for the same request. Ask the user a question when a missing preference blocks a high-confidence edit.";
if (!hasProviderNativeSearch) { if (!hasProviderNativeSearch) {
return `${baseInstructions} Live web research is unavailable with the selected provider or model. If the user asks you to browse, search the web, fetch a URL, or use current online context, briefly tell them live web research is unavailable with the selected provider/model and ask them to paste or attach the relevant content. Continue normal resume editing using the resume, chat context, and attachments.`; return `${baseInstructions} Live web research is unavailable with the selected provider or model. If the user asks you to browse, search the web, fetch a URL, or use current online context, briefly tell them live web research is unavailable with the selected provider/model and ask them to paste or attach the relevant content. Continue normal resume editing using the resume, chat context, and attachments.`;
@@ -67,11 +70,7 @@ export function buildAgentTools(input: BuildAgentToolsInput): ToolSet {
ask_user_question: tool({ ask_user_question: tool({
description: description:
"Ask the user a short question when you need a preference, missing fact, or choice before continuing. Provide 2-4 recommended answer choices when possible.", "Ask the user a short question when you need a preference, missing fact, or choice before continuing. Provide 2-4 recommended answer choices when possible.",
inputSchema: z.object({ inputSchema: askUserQuestionInputSchema,
question: z.string().trim().min(1),
choices: z.array(z.string().trim().min(1)).min(1).max(4).optional(),
recommendedChoice: z.string().trim().optional(),
}),
}), }),
read_resume: tool({ read_resume: tool({
description: "Read the current working resume JSON and metadata.", description: "Read the current working resume JSON and metadata.",
@@ -86,8 +85,22 @@ export function buildAgentTools(input: BuildAgentToolsInput): ToolSet {
}), }),
apply_resume_patch: tool({ apply_resume_patch: tool({
description: description:
"Apply one cohesive batch of JSON Patch operations to the working resume data immediately. Paths are rooted at resume data; use /basics/name for the visible resume name, not /data/basics/name or /name. This tool cannot rename the resume file/title metadata. The user can restore the draft to the snapshot captured before a patch later.", "Apply one cohesive batch of JSON Patch operations to the working resume data immediately. Paths are rooted at resume data; use /basics/name for the visible resume name, not /data/basics/name or /name. This tool cannot rename the resume file/title metadata. The user can restore the draft to the snapshot captured before a patch later. The result includes the complete post-patch resume; array indexes may have shifted — base further patches on it, never on an earlier read_resume. Always pass baseUpdatedAt: the updatedAt of the read_resume or apply_resume_patch result these operations were built against; the edit is rejected if the resume changed since.",
inputSchema: applyResumePatchToolInputSchema, inputSchema: applyResumePatchInputSchema,
inputExamples: [
{
input: {
title: "Tighten the summary",
baseUpdatedAt: "2026-08-20T10:15:00.000Z",
operations: [
{ op: "replace", path: "/sections/summary/content", value: "Impact-driven engineer with 8 years…" },
],
},
},
],
// Static approval gate: when the thread has "Review edits" on, the loop halts with an
// approval-requested part instead of executing; the SDK executes after approval.
...(input.options?.requirePatchApproval ? { needsApproval: true } : {}),
execute: (toolInput) => input.handlers.applyResumePatch(toolInput), execute: (toolInput) => input.handlers.applyResumePatch(toolInput),
}), }),
}; };
@@ -84,6 +84,15 @@ export function redactEncryptedCredential(fields: StoredCredentialFields): Redac
}; };
} }
// Domain-separated from the AES key. Deterministic derivation (no new env var) means an approval
// signature minted when a run halts still verifies at continuation, even across a server restart.
export function getAgentToolApprovalSecret() {
const secret = getEncryptionSecret();
if (!secret) throw new Error("AI_CREDENTIAL_ENCRYPTION_UNAVAILABLE");
return createHash("sha256").update(`${secret}:agent-tool-approval`).digest("hex");
}
function isCredentialEncryptionConfigured() { function isCredentialEncryptionConfigured() {
return !!getEncryptionSecret(); return !!getEncryptionSecret();
} }
+2 -1
View File
@@ -69,7 +69,8 @@ function stubRejectedFetch(error: unknown) {
return fetchMock; return fetchMock;
} }
const { analyzeResume, testConnection } = await import("./service"); const { aiService, testConnection } = await import("./service");
const { analyzeResume } = aiService;
describe("AI provider connection test", () => { describe("AI provider connection test", () => {
it("names the rejected key instead of reporting a transport failure", async () => { it("names the rejected key instead of reporting a transport failure", async () => {
+2
View File
@@ -70,6 +70,8 @@ export const agentThread = pg.pgTable(
workingResumeId: pg.text("working_resume_id").references(() => resume.id, { onDelete: "set null" }), workingResumeId: pg.text("working_resume_id").references(() => resume.id, { onDelete: "set null" }),
title: pg.text("title").notNull(), title: pg.text("title").notNull(),
status: pg.text("status").notNull().default("active"), status: pg.text("status").notNull().default("active"),
// Per-thread "Review edits" toggle: when true, apply_resume_patch requires user approval.
reviewPatches: pg.boolean("review_patches").notNull().default(false),
activeRunId: pg.text("active_run_id"), activeRunId: pg.text("active_run_id"),
activeStreamId: pg.text("active_stream_id"), activeStreamId: pg.text("active_stream_id"),
activeRunStartedAt: pg.timestamp("active_run_started_at", { withTimezone: true }), activeRunStartedAt: pg.timestamp("active_run_started_at", { withTimezone: true }),
+39
View File
@@ -267,6 +267,9 @@ importers:
sharp: sharp:
specifier: ^0.35.3 specifier: ^0.35.3
version: 0.35.3(@types/node@26.2.0) version: 0.35.3(@types/node@26.2.0)
tokenx:
specifier: ^2.1.0
version: 2.1.0
ts-pattern: ts-pattern:
specifier: ^5.9.0 specifier: ^5.9.0
version: 5.9.0 version: 5.9.0
@@ -560,6 +563,9 @@ importers:
'@rolldown/plugin-babel': '@rolldown/plugin-babel':
specifier: ^0.2.3 specifier: ^0.2.3
version: 0.2.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(rolldown@1.2.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.12)(yaml@2.9.0)) version: 0.2.3(@babel/core@8.0.1)(@babel/runtime@7.29.7)(rolldown@1.2.4)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.12)(yaml@2.9.0))
'@shadcn/helpers':
specifier: ^0.2.0
version: 0.2.0(ai@7.0.66(zod@4.4.3))
'@tanstack/devtools-vite': '@tanstack/devtools-vite':
specifier: ^0.8.3 specifier: ^0.8.3
version: 0.8.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.12)(yaml@2.9.0)) version: 0.8.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(vite@8.2.1(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.12)(yaml@2.9.0))
@@ -636,6 +642,9 @@ importers:
'@typescript/native-preview': '@typescript/native-preview':
specifier: 7.0.0-dev.20260707.2 specifier: 7.0.0-dev.20260707.2
version: 7.0.0-dev.20260707.2 version: 7.0.0-dev.20260707.2
ai:
specifier: ^7.0.66
version: 7.0.66(zod@4.4.3)
typescript: typescript:
specifier: ^7.0.2 specifier: ^7.0.2
version: 7.0.2 version: 7.0.2
@@ -738,6 +747,9 @@ importers:
ioredis: ioredis:
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.0.0(supports-color@7.2.0) version: 6.0.0(supports-color@7.2.0)
jsonrepair:
specifier: ^3.15.0
version: 3.15.0
ollama-ai-provider-v2: ollama-ai-provider-v2:
specifier: ^4.0.1 specifier: ^4.0.1
version: 4.0.1(ai@7.0.66(zod@4.4.3))(zod@4.4.3) version: 4.0.1(ai@7.0.66(zod@4.4.3))(zod@4.4.3)
@@ -750,6 +762,9 @@ importers:
sharp: sharp:
specifier: ^0.35.3 specifier: ^0.35.3
version: 0.35.3(@types/node@26.2.0) version: 0.35.3(@types/node@26.2.0)
tokenx:
specifier: ^2.1.0
version: 2.1.0
ts-pattern: ts-pattern:
specifier: ^5.9.0 specifier: ^5.9.0
version: 5.9.0 version: 5.9.0
@@ -3879,6 +3894,20 @@ packages:
'@selderee/plugin-htmlparser2@0.11.0': '@selderee/plugin-htmlparser2@0.11.0':
resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
'@shadcn/helpers@0.2.0':
resolution: {integrity: sha512-wpcZNuRgdW16jLwjvh4mbREKpVFrGY+nBM3Okgic8b04sijN5CHW1Nl/AEMajsP3INaCTNnqMCouOalZ7OHvEQ==}
peerDependencies:
'@tanstack/ai': '>=0.40.0 <0.41.0'
'@tanstack/ai-client': '>=0.20.0 <0.21.0'
ai: '>=7.0.0 <8'
peerDependenciesMeta:
'@tanstack/ai':
optional: true
'@tanstack/ai-client':
optional: true
ai:
optional: true
'@shadcn/react@0.3.0': '@shadcn/react@0.3.0':
resolution: {integrity: sha512-iKN0NuYe850VDHlxEfvppFrpa7CMV3zArTHusXlaSmeFeQhohGbIqclv6WwPTs/44I8EkXQpcuRt6sXEVKkWqQ==} resolution: {integrity: sha512-iKN0NuYe850VDHlxEfvppFrpa7CMV3zArTHusXlaSmeFeQhohGbIqclv6WwPTs/44I8EkXQpcuRt6sXEVKkWqQ==}
peerDependencies: peerDependencies:
@@ -8218,6 +8247,10 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'} engines: {node: '>=0.6'}
tokenx@2.1.0:
resolution: {integrity: sha512-iHhqfDuFFbMWHGfjEnVALgatV10KqcO5W5Fl99fYJmFjhE57JXPdnFrDlp6BTFIMmbbazsCg/lZYpJ2mPsPeQQ==}
hasBin: true
tree-kill@1.2.2: tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true hasBin: true
@@ -11252,6 +11285,10 @@ snapshots:
domhandler: 5.0.3 domhandler: 5.0.3
selderee: 0.11.0 selderee: 0.11.0
'@shadcn/helpers@0.2.0(ai@7.0.66(zod@4.4.3))':
optionalDependencies:
ai: 7.0.66(zod@4.4.3)
'@shadcn/react@0.3.0(@types/react@19.2.18)(react@19.2.8)': '@shadcn/react@0.3.0(@types/react@19.2.18)(react@19.2.8)':
optionalDependencies: optionalDependencies:
'@types/react': 19.2.18 '@types/react': 19.2.18
@@ -15632,6 +15669,8 @@ snapshots:
toidentifier@1.0.1: {} toidentifier@1.0.1: {}
tokenx@2.1.0: {}
tree-kill@1.2.2: {} tree-kill@1.2.2: {}
trim-lines@3.0.1: {} trim-lines@3.0.1: {}