Compare commits

...
68 Commits
Author SHA1 Message Date
Amruth Pillai 409d09809a chore: release v5.2.6 2026-08-14 05:24:08 +02:00
ignaciocarreandAmruth Pillai 6d9ebccc63 feat(mcp): add cover-letter PDF downloads (#3304)
* feat(mcp): add cover-letter PDF downloads

* fix(mcp): bind signed PDF targets

* test(mcp): cover unavailable cover letters

* fix(api): accept legacy PDF download targets

* fix(server): limit legacy PDF tokens to resumes

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 23:09:56 +02:00
Syed Ali Abbas ZaidiandAmruth Pillai 45303fb465 feat(resume): add a deterministic ATS parseability check (#3314)
* feat(resume): add a deterministic ATS parseability check

Adds an offline ATS linter that reports whether a parser can read a
resume, surfaced as an always-on panel in the builder.

The existing Resume Analysis panel needs a configured AI provider, so
users who never set one up get no feedback at all. These 22 rules run
as a pure function over ResumeData with no provider, no network and no
rendered PDF, so they work for everyone on every edit.

Rules cover contact details, date parseability, sections that hold
content but never render, column and sidebar placement, and typography
thresholds. The catalog mirrors the Semantic CSS diagnostic catalog:
stable codes carrying a severity, meaning and action, with no i18n
dependency so the web layer translates by code. Each finding carries a
JSON Pointer, which is what makes jump-to-field work.

Deliberately no second score. Resume Analysis owns overallScore, so
this reports "N of M checks passed" and counts by severity instead.

* fix(resume): accept localized ongoing periods and reject bare ones

Two period-parsing bugs found in review.

The ongoing-token set was English-only, so a German resume reading
"2020 - heute" was reported as unparseable and the panel told the user
to rewrite a perfectly valid range. Rather than guess translations for
55 locales, a range ending that carries no digits and is not a month
name in the resume's locale is now read as ongoing. That keeps a
genuinely incomplete ending such as "Jan 2020 - Feb" reported, since
"Feb" resolves as a month.

A bare "Present" also parsed as a valid period, so an experience entry
with no start date passed the check. A standalone ongoing token is now
rejected; ongoing tokens remain valid as the end of a range.

* feat(web): scroll ATS findings to the item they belong to

Findings for different items in one section all landed on the section
header, so a date problem on the third role gave no more help than
naming the section.

getAtsFindingTarget now resolves the offending item from the finding's
JSON Pointer against the resume, and SectionItem carries a matching DOM
id. The panel scrolls to that item and falls back to the section header
when the item is not mounted, which is what happens while its section
is collapsed.

* fix(resume): recognize ongoing periods by token, not by shape

The previous heuristic read any short, digit-free range ending as an
ongoing marker, so "2020 - unknown", "2020 - later" and "2020 - tbd"
parsed cleanly and suppressed the finding they should have raised.

Replaced with an explicit table of ongoing words keyed by language,
covering the locales the app ships. Matching is exact, so unrecognized
endings are reported again. A locale missing from the table falls back
to the earlier behaviour of reporting its ongoing periods, which is a
visible gap someone can close by adding a word rather than a silent
hole in detection.

Tests assert every listed token parses and that the table stays
lowercase, since lookups normalize that way.

* fix(ats): parse punctuated ongoing tokens

* fix(ats): parse Unicode punctuated ongoing tokens

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 23:07:55 +02:00
Santhi PrakashandAmruth Pillai f64d02df7f fix(pdf): ignore phantom gengar skill text nodes (#3289)
* docs(agents): align Redis compose commands with development guide

- Problem: AGENTS.md omitted Redis from dev infrastructure compose commands
  while docs/contributing/development.mdx starts redis for local dev.
- Fix: document full postgres/redis/seaweedfs compose command and note that
  REDIS_URL and ENCRYPTION_SECRET are required for AI agent features.
- Verification: preflight upstream fetch; manual diff against development.mdx
  and compose.dev.yml redis service; duplicate PR gate passed.

* fix(pdf): ignore phantom gengar skill text nodes

- Problem: gengar template resumes with skills keywords fail semantic CSS activation because the legacy renderer emits a harmless empty text node that parity treats as a mismatch.

- Fix: treat the specific empty text artifact as presentation-neutral in the legacy parity comparator and add a regression test for the phantom fontSize 9 node.

- Verification: pnpm test src/semantic/legacy-parity.test.ts in packages/pdf passed (31 tests).

* docs: clarify host and container Redis URLs

- Problem: the development guide only showed the Docker Redis hostname, which fails for host-run development.\n- Fix: document localhost for host execution and redis for Docker execution.\n- Verification: pnpm test src/semantic/legacy-parity.test.ts (31 passed).

* fix(pdf): omit empty skill proficiency text

* test(pdf): cover blank skill proficiency

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 23:07:49 +02:00
bad431b2fc fix(import): auto-detect JSON format and show readable errors (#1) (#3296)
* fix(import): auto-detect JSON format and show readable errors (#1)

Readable import errors, a fail-soft v4 parser, and auto-detect of the JSON format so uploads just work. The format dropdown becomes an optional override. PDF and DOCX (AI) paths are untouched.

* fix(import): address review feedback on the v4 guard and error message

- reactive-resume-v4-json.tsx: reject arrays in isRecord so array-valued
  basics, sections, or metadata no longer pass the v4 shape guard.
- reactive-resume-v4-json.tsx: reuse the guard's error instance in the
  catch arm instead of allocating a duplicate NOT_V4_MESSAGE.
- error.ts: use a singular "Problem" label for root-level Zod issues so
  the message stays grammatical.
- add a regression test for array-valued v4 branches.

* fix(import): preserve selected JSON format

* test(import): cover selected JSON parser

---------

Co-authored-by: MrTig-afk <MrTig-afk@users.noreply.github.com>
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 23:01:06 +02:00
Syed Ali Abbas ZaidiandAmruth Pillai 9f13638eab fix(web): drop focus when panning the builder canvas (#3303)
react-zoom-pan-pinch calls preventDefault() on its window-level mousedown
listener so that dragging the canvas does not select text. That also cancels the
browser's native focus shift, so focus stays wherever it was before the pan --
typically the sidebar button that opened the last dialog, since closing a dialog
restores focus to its trigger. A focused button activates on Space keyup, so
holding space to pan and then releasing it reopened the most recent dialog.

Blur the focused element from onPanningStart, which reinstates exactly the focus
change the browser would have made on its own. onPanningStart only fires when the
mousedown target is inside the transform wrapper, so sidebar and dialog clicks are
unaffected, and keyboard-only users never trigger a pointer pan.

Closes #3300

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:54:23 +02:00
13e584d522 fix(icon-picker): allow selecting the empty/no-icon option (#3298)
The icon picker grid starts with an empty string entry that renders the
"no icon" (prohibit) symbol, but the onClick guard "if (icon)" treated
the empty string as falsy and ignored the click. Change the guard to
check for a defined string value so the empty/no-icon option can be
selected.

Closes #3252
Closes #3261

Co-authored-by: Devin <devin@example.com>
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:54:16 +02:00
Santhi PrakashandAmruth Pillai 6035402832 docs(agents): align Redis compose commands with development guide (#3288)
* docs(agents): align Redis compose commands with development guide

- Problem: AGENTS.md omitted Redis from dev infrastructure compose commands
  while docs/contributing/development.mdx starts redis for local dev.
- Fix: document full postgres/redis/seaweedfs compose command and note that
  REDIS_URL and ENCRYPTION_SECRET are required for AI agent features.
- Verification: preflight upstream fetch; manual diff against development.mdx
  and compose.dev.yml redis service; duplicate PR gate passed.

* docs(agents): clarify Redis development URLs

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:54:10 +02:00
Shehraan HafizandAmruth Pillai 69961210bd fix(pdf): missing spaces around bold rich text in PDFs (#3273)
* fix(pdf): missing spaces around bold rich text in PDFs

* fix(pdf): make bold tag matching quote-aware

* fix(pdf): preserve quoted bold tag attributes

* fix(pdf): handle encoded non-breaking spaces in bold boundaries

* fix(pdf): preserve top-level bold boundary spaces

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:54:05 +02:00
Santhi PrakashandAmruth Pillai 7eb6d3bdbf fix(auth): use loopback URL for MCP OAuth JWKS verification (#3297)
* fix(auth): use loopback URL for MCP OAuth JWKS verification

Fetch the JWKS endpoint over the internal loopback address instead of the public APP_URL, so token verification works under Docker port-mapping, reverse proxies, and other deployments where the public URL does not loop back to the Node process.

Also log the specific MCP OAuth verification error instead of swallowing it with a bare catch.

Fixes #3077

* fix(auth): normalize internal JWKS URL and throttle MCP OAuth warnings

 - Problem: default loopback JWKS URL used PORT in dev where the server
   listens on SERVER_PORT (3001), and trailing-slash overrides produced
   //api/auth/jwks; unthrottled warn logs could flood on bad bearer tokens.
 - Fix: resolveInternalBaseUrl trims/normalizes BETTER_AUTH_INTERNAL_URL,
   mirrors apps/server listen-port selection, and MCP OAuth warnings are
   throttled to once per minute.
 - Verification: pnpm exec biome check on changed files; pnpm typecheck.

* fix(auth): declare BETTER_AUTH_INTERNAL_URL in turbo globalEnv

- Problem: Turborepo strict env mode strips undeclared BETTER_AUTH_INTERNAL_URL under pnpm dev, so the JWKS override silently falls back to loopback.
- Fix: add BETTER_AUTH_INTERNAL_URL to turbo.json globalEnv (required for any new env var per CLAUDE.md).
- Verification: python3 JSON parse of turbo.json; confirmed var was absent from globalEnv before this change.

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:51:02 +02:00
Santhi PrakashandAmruth Pillai 5fc9c3ee04 fix(pdf): register Noto punctuation fallback for missing glyphs (#3294)
* fix(pdf): register Noto punctuation fallback for missing glyphs

- Problem: U+2022 bullet characters render as garbled glyphs when the body
  font (e.g. IBM Plex Serif) lacks the glyph and no PDF fallback is registered.
- Fix: append Noto Serif/Sans to the PDF fallback stack as a general-purpose
  punctuation source covering General Punctuation (U+2000–U+206F).
- Verification: pnpm --filter @reactive-resume/fonts test;
  pnpm --filter @reactive-resume/pdf test src/hooks/use-register-fonts.test.ts

* test(fonts): clarify zh-CN fallback test description

- Problem: getPdfFallbackFontFamilies("Times-Roman", { locale: "zh-CN" }) now
  returns ["Noto Serif SC", "Noto Serif"] (the general-purpose punctuation
  fallback is appended), so the test description "returns only the Simplified
  Chinese font for zh-CN (unchanged behavior)" is no longer accurate.
- Fix: rename the test to describe that it uses the Simplified Chinese font
  plus the punctuation fallback. The assertion is unchanged.
- Verification: pnpm --filter @reactive-resume/fonts test -> 45/45 passing.

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:50:58 +02:00
Santhi PrakashandAmruth Pillai a8d1f5a685 docs(contributing): align app names in guide frontmatter (#3287)
- Problem: development.mdx and architecture.mdx frontmatter still referenced
  removed client/worker/artboard apps even though the monorepo only ships
  apps/web and apps/server.
- Fix: update both descriptions to say web and server apps.
- Verification: docs-only; grep confirms only apps/web and apps/server exist.

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:50:53 +02:00
Santhi PrakashandAmruth Pillai dd9843172b docs(contributing): align development guide with dotenvx workflow (#3286)
* docs(contributing): align development guide with dotenvx workflow

- Problem: development.mdx told contributors to use a root `.env` file and
  export DATABASE_URL manually, while AGENTS.md and compose.dev.yml use
  `.env.local` loaded through dotenvx for dev and migration commands.
- Fix: update the setup, migration, dev-server, and database sections to
  match the dotenvx commands documented in AGENTS.md.
- Verification: preflight_ship.py (upstream bug marker present); duplicate
  PR check clean; docs-only change.

* docs(contributing): add cp command to env setup step

- Problem: setup step said to copy .env.example but the bash block only listed variable assignments.
- Fix: add explicit cp .env.example .env.local command and label the following block as edits.
- Verification: manual review of development.mdx; addresses CodeRabbit review on #3286.

* docs(contributing): align AGENTS.md env copy target with dotenvx

- Problem: AGENTS.md told contributors to copy .env.example to .env while all dev commands use .env.local.
- Fix: update the copy instruction to .env.local for consistency with the dotenvx workflow.
- Verification: manual review; folded into #3286 dotenvx alignment PR.

* docs(contributing): dotenvx-wrap remaining dev script references

- Problem: scripts table and troubleshooting still showed bare pnpm dev/db commands after the dotenvx workflow update.
- Fix: prefix dev, db, and port-override examples with dotenvx run -f .env.local --.
- Verification: manual review of development.mdx; folded into #3286.

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-08-13 22:50:48 +02:00
Amruth Pillai 28d698635f build: use official pnpm image 2026-08-13 22:43:53 +02:00
Amruth Pillai 3635b3d578 fix(stylesheet): skip parity on explicit activation (#3316) 2026-08-13 15:53:28 +02:00
Amruth Pillai 5a75eda893 ci: remove semantic CSS acceptance test 2026-08-13 09:40:54 +02:00
github-actions[bot]andCrowdin Bot e4b28e9825 Sync Translations from Crowdin (#3315)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-08-13 09:36:15 +02:00
Amruth Pillai 2d6ea9ce8d fix(auth): allow implicit social signup 2026-08-13 09:23:04 +02:00
Amruth Pillai 0e463883af docs: design implicit social signup 2026-08-13 09:16:18 +02:00
Syed Ali Abbas Zaidi 3a5b12e2a4 fix(web): confirm before the import dialog's provider link navigates away (#3308) 2026-08-11 10:26:04 +02:00
Amruth Pillai 035d94183b fix(web): show static template previews in gallery (#3302) 2026-08-10 12:18:47 +02:00
Amruth Pillai efd950bd93 fix(server): log unhandled rejections instead of crashing the process
Node 24 terminates the whole process on an unhandled promise rejection, so a
single request's stray rejection could take the server down for every user
(as the USER_STOPPED agent-abort bug did). Add a process-level unhandledRejection
handler that logs and keeps serving. Uncaught exceptions are intentionally left
on Node's default crash-and-restart, since process state is unsafe afterward.

Claude-Session: https://claude.ai/code/session_01ULhhLQ24DvnYwzP4afDuye
2026-08-09 16:01:23 +02:00
Amruth Pillai 04100aa9ef fix(agent): abort stopped runs with an AbortError, not a bare string
Stopping (or archiving) an agent run called controller.abort("USER_STOPPED")
with a plain string reason. The AI SDK only recognizes a cancellation when the
reason is an AbortError (err.name === "AbortError" / isAbortError); a bare
string is treated as a real stream error, and its rejection escaped the
background resumable-stream pump and crashed the whole server process with
ERR_UNHANDLED_REJECTION on every user Stop. Abort with a DOMException named
AbortError (label preserved as the message) so the SDK cancels the run
gracefully. Same fix for the USER_ARCHIVED path.

Claude-Session: https://claude.ai/code/session_01ULhhLQ24DvnYwzP4afDuye
2026-08-09 15:46:31 +02:00
Amruth Pillai c292968314 chore: update translations 2026-08-09 15:10:09 +02:00
Amruth Pillai ba1f469950 fix(a11y): label 2FA copy button, restore template focus ring, guard API-key double-submit
- Add an sr-only "Copy secret" label to the icon-only copy button in the 2FA
  enable dialog; it was previously announced as an unlabeled button.
- Add a focus-visible ring to template gallery cards. The only ring was gated
  on the selected state, so keyboard focus was invisible while tabbing.
- Disable the API-key create submit button while the request is in flight to
  prevent duplicate keys from a double-click.

Surfaced by a shadscan UI audit. The remaining ~95 findings were false
positives from the auditor not understanding the pnpm monorepo and the
TanStack Start root-route shell, and were waived.

Claude-Session: https://claude.ai/code/session_01JYTniVDeA56o1kGhdoCUoD
2026-08-09 14:48:46 +02:00
Amruth Pillai b4f245a38e fix(deps): restore @react-pdf/textkit patch dropped by the 4.6.0 bump
The dependency-update commit bumped @react-pdf/renderer 4.5.1->4.6.0 (textkit
6.3.0->6.4.0) and silently dropped the pnpm patch that overrides font vertical
metrics to prefer OS/2 sTypo* over inflated hhea values, matching browser line
boxes. 6.4.0 did not upstream it, so the semantic-CSS template visual snapshots
(baselined with the patch, maxDiffPixelRatio 0) no longer matched and the E2E
job failed. Re-create the patch for textkit@6.4.0 and re-register it in
patchedDependencies; remove the orphaned 6.3.0 patch.

Claude-Session: https://claude.ai/code/session_01ULhhLQ24DvnYwzP4afDuye
2026-08-09 14:41:01 +02:00
Amruth Pillai e6a31aab97 fix(stylesheet): warm and reuse the server PDF preflight worker
The server PDF preflight spawned a fresh worker per semantic-CSS edit, each
racing a 15s startup deadline to cold-load the ~721kB+5MB PDF runtime. That
load is super-linear in CPU (~3s at 1 vCPU, >15s on a throttled/shared vCPU),
so on a constrained box every edit hit the startup-timeout path and returned
STYLESHEET_PREFLIGHT_WORKER_FAILED. Since the service only advances the applied
stylesheet when preflight passes, custom styles never applied and the editor
stuck on Checking.

Warm one worker at boot and reuse it (message-based input, respawn on
crash/timeout), so the cold load is paid once instead of per edit. Raise the
render deadline 5s->30s (a rich resume renders ~5-18s on a slow box) and the
readiness ceiling to 120s so the one-time warm completes even when throttled.
Surface worker load failures instead of an unhandled-rejection crash, and log
runner-side failure paths so the previously opaque failure is diagnosable.
Verified in node:24-slim under --cpus=0.25/0.35/0.5: all reused requests pass.

Claude-Session: https://claude.ai/code/session_01ULhhLQ24DvnYwzP4afDuye
2026-08-09 14:30:55 +02:00
Amruth Pillai 88a19619da chore: update dependencies 2026-08-09 12:17:09 +02:00
autofix-ci[bot] 36232b631d [autofix.ci] apply automated fixes 2026-07-31 15:25:43 +00:00
Amruth Pillai 9eec1520a1 Merge branch 'main' of github.com:amruthpillai/reactive-resume 2026-07-31 17:24:40 +02:00
Amruth Pillai 131c1492cd chore: update dependencies 2026-07-31 17:24:32 +02:00
Amruth PillaiandCursor Agent ba8e1be2ab fix(stylesheet): harden PDF preflight and surface worker failures (#3284)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-31 07:57:54 +02:00
Amruth PillaiandCursor Agent 4a8f87ab8f fix(web): stop custom styles from sticking on Checking (#3283)
Concurrent compile requests from editor intelligence were rejecting
in-flight edit compiles as stale, and the store swallowed that rejection
without leaving compiling. Resolve all compile results and surface
compile failures as an error status so styles can apply again.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-31 01:00:45 +02:00
github-actions[bot]andCrowdin Bot 186c400ab7 Sync Translations from Crowdin (#3281)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-30 18:59:23 +02:00
Amruth Pillai d314361ad6 fix(ci): run current semantic CSS tests 2026-07-30 18:48:56 +02:00
Amruth Pillai b071a118a3 test: remove slow OpenAPI spec synchronization test 2026-07-30 16:37:03 +02:00
Amruth Pillai 3589b534f5 feat: enable semantic CSS by default 2026-07-30 16:28:44 +02:00
github-actions[bot]andCrowdin Bot 1ee24e5a9f Sync Translations from Crowdin (#3280)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-30 13:01:23 +02:00
Amruth Pillai 93bf1e882d docs: update spec.json 2026-07-30 13:00:30 +02:00
Amruth Pillai ae8d48bcee chore: update translations 2026-07-30 12:59:19 +02:00
Amruth Pillai 517199471a docs: add changelog of v5.2.5 2026-07-30 12:56:28 +02:00
Santhi Prakash 15f8bce988 docs: align pnpm version with packageManager field (#3278) 2026-07-30 12:47:00 +02:00
Amruth Pillai 164a279306 chore: update dependencies 2026-07-30 12:45:49 +02:00
github-actions[bot]andCrowdin Bot 79e4a3ddc8 Sync Translations from Crowdin (#3279)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-30 12:41:45 +02:00
Amruth PillaiandCursor Agent d2ffbf9618 feat: add semantic CSS stylesheets (#3274)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-30 12:39:15 +02:00
4ac19f81b3 fix: clamp page margin values to [0, 100] to prevent crash on paste (#3277)
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-07-29 18:13:42 +02:00
Amruth Pillai b303b89758 fix(web): restore Tiptap Enter and list editing 2026-07-28 15:10:24 +02:00
Amruth Pillai c6ac3fd1a9 docs: remove redirects 2026-07-28 09:39:23 +02:00
Amruth Pillai fe6f84e06d docs: resolve final comparison review findings 2026-07-28 09:19:16 +02:00
Amruth Pillai 9d6426b2e0 docs: publish resume builder comparison cluster 2026-07-28 09:04:43 +02:00
Amruth Pillai d34a429dea docs: remove unsupported deployment comparisons 2026-07-28 08:59:56 +02:00
Amruth Pillai b69583c181 docs: compare career and template resume tools 2026-07-28 08:57:31 +02:00
Amruth Pillai 50f50b2672 fix(server): use public URL for homepage metadata 2026-07-28 08:56:43 +02:00
Amruth Pillai fb8c73be76 docs: narrow unsupported AI comparison claims 2026-07-28 08:53:18 +02:00
Amruth Pillai 18468a5658 docs: tighten AI comparison sourcing 2026-07-28 08:50:03 +02:00
Amruth Pillai 048eab3b49 fix(web): preserve bootstrap attribute order 2026-07-28 08:48:14 +02:00
Amruth Pillai ca774c77c8 docs: compare AI and ATS resume builders 2026-07-28 08:46:25 +02:00
Amruth Pillai a4897c20d7 docs: canonicalize getting started routes 2026-07-28 08:41:53 +02:00
Amruth Pillai bed14a72af docs: compare mainstream resume builders 2026-07-28 08:39:18 +02:00
Amruth Pillai 93c06934bd fix(web): preserve Rocket Loader exclusion in build 2026-07-28 08:38:05 +02:00
Amruth Pillai 1e665fbe7e perf(web): remove homepage video from the LCP path 2026-07-28 08:35:07 +02:00
Amruth Pillai 30812f8a8e docs: compare Reactive Resume with design editors 2026-07-28 08:33:08 +02:00
Amruth Pillai dd0531091b fix(server): limit immutable media cache headers 2026-07-28 08:31:26 +02:00
Amruth Pillai a2901bfb2e docs: plan SEO comparison content cluster 2026-07-28 08:08:29 +02:00
Amruth Pillai 418c7887ee fix(server): emit initial homepage SEO metadata 2026-07-28 08:07:53 +02:00
Amruth Pillai 12407d473d docs: plan SEO and AEO performance improvements 2026-07-28 07:36:27 +02:00
Amruth Pillai 36a46cfd66 docs: design SEO comparison content cluster 2026-07-28 07:34:36 +02:00
Amruth Pillai 0868a92e62 docs: design SEO and AEO performance improvements 2026-07-28 07:31:35 +02:00
477 changed files with 94079 additions and 8779 deletions
+5 -2
View File
@@ -56,6 +56,9 @@ jobs:
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Run Server and Tooling Tests
run: pnpm exec turbo run test:ci --filter=server --filter=@reactive-resume/tooling
- name: Install Playwright Browser
run: pnpm exec playwright install --with-deps chromium
@@ -73,8 +76,8 @@ jobs:
- name: Build
run: pnpm build
- name: Run E2E Tests
run: pnpm test:e2e:ci
- name: Run Baseline E2E Tests
run: pnpm exec playwright test --grep-invert "@semantic-css"
- name: Upload Playwright Report
if: always()
+1
View File
@@ -51,6 +51,7 @@ temp
.cursor
.codegraph
.superpowers
.worktrees
.migration
# Local Storage Data
@@ -0,0 +1,23 @@
# Task 1: Harden public PDF response contract
## Implemented
- Pinned successful public PDF responses to `Content-Type: application/pdf` at the HTTP boundary.
- Kept `Cache-Control: private, no-store` hardcoded at that boundary for successful, validation-error, and service-error responses.
- Removed the unused `cacheControl` member from `createPublicResumePdf` and all affected tests/mocks.
- Updated the route regression to return a `text/plain` file from the service mock while asserting the HTTP response remains `application/pdf`.
## Verification
- `pnpm --filter server test -- src/http/public-resume-pdf.test.ts` — 13 files / 71 tests passed.
- `dotenvx run -f .env.local -- pnpm exec vitest run packages/api/src/features/resume/public-pdf.test.ts` — 1 file / 7 tests passed.
- `pnpm exec biome check apps/server/src/http/public-resume-pdf.ts apps/server/src/http/public-resume-pdf.test.ts packages/api/src/features/resume/public-pdf.ts packages/api/src/features/resume/public-pdf.test.ts` — passed.
- `pnpm --filter server typecheck` and `pnpm --filter @reactive-resume/api typecheck` — passed.
## Note
The API package test script did not scope to the supplied test path and initially ran the package suite, which has two unrelated baseline failures: `src/features/ai/url-policy.test.ts` and `src/features/resume/export.test.ts` (missing required env). The target test was then run directly with `.env.local` and passed.
## Self-review
`git diff --check` passed. The diff is restricted to the public PDF service contract, HTTP response header, and their focused tests.
+5 -2
View File
@@ -12,7 +12,7 @@ Internal packages are source-consumed through `package.json` export maps that po
- **Node.js 24** (matches Dockerfile `ARG NODE_VERSION=24`). Use `nvm install 24 && nvm use 24` if needed.
- **Docker** is required to run PostgreSQL. Start it with `sudo dockerd &` if the daemon isn't running.
- **pnpm 11.1.2** is managed via corepack (`corepack enable`).
- **pnpm 11.21.0**. Install pnpm directly using the [official installation guide](https://pnpm.io/installation).
### Codebase map
@@ -107,7 +107,7 @@ The production server runs migrations during startup before serving traffic. Man
### Environment
Copy `.env.example` to `.env`. The three required variables are:
Copy `.env.example` to `.env.local`. The three required variables are:
- `APP_URL` (default `http://localhost:3000`)
- `DATABASE_URL` (default `postgresql://postgres:postgres@localhost:5432/postgres`)
@@ -115,6 +115,8 @@ Copy `.env.example` to `.env`. The three required variables are:
S3/SeaweedFS is optional. If `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, and `S3_BUCKET` are all set, the app uses S3-compatible storage. The checked-in `.env.example` sets SeaweedFS defaults, so either start the `seaweedfs` compose service too or comment out those S3 vars to use local filesystem storage under `<workspace>/data`. `LOCAL_STORAGE_PATH` must be absolute when set.
`REDIS_URL` and `ENCRYPTION_SECRET` are optional for core resume flows, but both are required for saved AI providers and the authenticated `/agent` workspace. Start the `redis` compose service and set both vars in `.env.local` when working on those features. For host-run development, use `REDIS_URL=redis://localhost:6379`; the container-run app uses `REDIS_URL=redis://redis:6379`.
When running dev servers or migration commands, prefix the command with `dotenvx run -f .env.local --`. For example: `dotenvx run -f .env.local -- pnpm dev`. Tests, typechecks, linters, boundary checks, and `pnpm build` do not need this prefix by default. If one of those commands fails because a specific environment variable is required, rerun it with the `dotenvx run -f .env.local --` prefix.
### Common commands
@@ -124,6 +126,7 @@ When running dev servers or migration commands, prefix the command with `dotenvx
| Install deps | `pnpm install` |
| Start Postgres only | `sudo docker compose -f compose.dev.yml up -d postgres` |
| Start Postgres + SeaweedFS | `sudo docker compose -f compose.dev.yml up -d postgres seaweedfs seaweedfs_create_bucket` |
| Start full dev infrastructure | `sudo docker compose -f compose.dev.yml up -d postgres redis seaweedfs seaweedfs_create_bucket` |
| Generate migrations | `dotenvx run -f .env.local -- pnpm db:generate` |
| Run migrations | `dotenvx run -f .env.local -- pnpm db:migrate` |
| Dev server | `dotenvx run -f .env.local -- pnpm dev` (starts on port 3000) |
+7 -7
View File
@@ -1,17 +1,17 @@
# syntax=docker/dockerfile:1.7
ARG PNPM_VERSION=11.21.0
ARG NODE_VERSION=24
FROM node:${NODE_VERSION}-slim AS base
FROM ghcr.io/pnpm/pnpm:${PNPM_VERSION} AS base
ARG NODE_VERSION
RUN pnpm runtime set node ${NODE_VERSION} -g --config.store-dir=/pnpm/runtime-store
WORKDIR /app
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \
PNPM_HOME="/pnpm" \
PATH="/pnpm:$PATH" \
TURBO_TELEMETRY_DISABLED=1
RUN corepack enable
ENV TURBO_TELEMETRY_DISABLED=1
FROM base AS pruner
COPY . .
+7 -7
View File
@@ -1,19 +1,19 @@
# syntax=docker/dockerfile:1.7
ARG PNPM_VERSION=11.21.0
ARG NODE_VERSION=24
FROM node:${NODE_VERSION}-slim AS dev
FROM ghcr.io/pnpm/pnpm:${PNPM_VERSION} AS dev
ARG NODE_VERSION
RUN pnpm runtime set node ${NODE_VERSION} -g --config.store-dir=/pnpm/runtime-store
WORKDIR /app
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \
PNPM_HOME="/pnpm" \
PATH="/pnpm:$PATH" \
NODE_ENV=development \
ENV NODE_ENV=development \
TURBO_TELEMETRY_DISABLED=1
RUN corepack enable
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
COPY patches ./patches
COPY apps/server/package.json ./apps/server/package.json
+43 -37
View File
@@ -7,6 +7,7 @@
"dev": "tsx watch src/index.ts",
"build": "tsdown",
"start": "node dist/index.mjs",
"docs:gen": "tsx src/openapi/generate-spec.ts",
"typecheck": "tsgo --noEmit",
"test": "vitest run --passWithNoTests",
"test:coverage": "vitest run --coverage --passWithNoTests",
@@ -17,62 +18,67 @@
"#react-pdf-renderer": "@react-pdf/renderer"
},
"dependencies": {
"@ai-sdk/anthropic": "^4.0.21",
"@ai-sdk/cerebras": "^3.0.14",
"@ai-sdk/cohere": "^4.0.12",
"@ai-sdk/deepseek": "^3.0.13",
"@ai-sdk/fireworks": "^3.0.15",
"@ai-sdk/google": "^4.0.24",
"@ai-sdk/groq": "^4.0.13",
"@ai-sdk/mistral": "^4.0.14",
"@ai-sdk/openai": "^4.0.20",
"@ai-sdk/openai-compatible": "^3.0.14",
"@ai-sdk/perplexity": "^4.0.13",
"@ai-sdk/togetherai": "^3.0.15",
"@ai-sdk/xai": "^4.0.18",
"@aws-sdk/client-s3": "^3.1096.0",
"@better-auth/api-key": "^1.6.25",
"@better-auth/drizzle-adapter": "^1.6.25",
"@ai-sdk/anthropic": "^4.0.36",
"@ai-sdk/cerebras": "^3.0.28",
"@ai-sdk/cohere": "^4.0.25",
"@ai-sdk/deepseek": "^3.0.26",
"@ai-sdk/fireworks": "^3.0.30",
"@ai-sdk/google": "^4.0.39",
"@ai-sdk/groq": "^4.0.26",
"@ai-sdk/mistral": "^4.0.27",
"@ai-sdk/openai": "^4.0.36",
"@ai-sdk/openai-compatible": "^3.0.28",
"@ai-sdk/perplexity": "^4.0.27",
"@ai-sdk/togetherai": "^3.0.29",
"@ai-sdk/xai": "^4.0.33",
"@aws-sdk/client-s3": "^3.1106.0",
"@better-auth/api-key": "^1.6.26",
"@better-auth/drizzle-adapter": "^1.6.26",
"@better-auth/infra": "^0.3.7",
"@better-auth/oauth-provider": "^1.6.25",
"@better-auth/passkey": "^1.6.25",
"@hono/node-server": "^2.0.12",
"@better-auth/oauth-provider": "^1.6.26",
"@better-auth/passkey": "^1.6.26",
"@bramus/specificity": "^2.4.2",
"@hono/node-server": "^2.1.0",
"@modelcontextprotocol/sdk": "^1.30.0",
"@orpc/client": "^1.14.12",
"@orpc/experimental-ratelimit": "^1.14.12",
"@orpc/json-schema": "^1.14.12",
"@orpc/openapi": "^1.14.12",
"@orpc/server": "^1.14.12",
"@orpc/zod": "^1.14.12",
"@react-pdf/renderer": "^4.5.1",
"@orpc/client": "^1.15.0",
"@orpc/experimental-ratelimit": "^1.15.0",
"@orpc/json-schema": "^1.15.0",
"@orpc/openapi": "^1.15.0",
"@orpc/server": "^1.15.0",
"@orpc/zod": "^1.15.0",
"@react-pdf/renderer": "^4.6.0",
"@reactive-resume/api": "workspace:*",
"@reactive-resume/auth": "workspace:*",
"@reactive-resume/db": "workspace:*",
"@reactive-resume/env": "workspace:*",
"@reactive-resume/mcp": "workspace:*",
"@reactive-resume/pdf": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"@sindresorhus/slugify": "^3.0.0",
"@t3-oss/env-core": "^0.13.11",
"@uiw/color-convert": "^2.10.3",
"ai": "^7.0.37",
"ai": "^7.0.58",
"bcrypt": "^6.0.0",
"better-auth": "1.6.25",
"better-auth": "1.6.26",
"canonicalize": "^3.0.0",
"cjk-regex": "^3.4.0",
"css-tree": "^3.2.1",
"deepmerge-ts": "^7.1.5",
"drizzle-orm": "1.0.0-rc.4",
"drizzle-zod": "1.0.0-beta.14-a36c63d",
"es-toolkit": "^1.50.0",
"fast-json-patch": "^3.1.1",
"hono": "^4.12.32",
"hono": "^4.13.1",
"jsonrepair": "^3.15.0",
"node-html-parser": "^9.0.0",
"nodemailer": "^9.0.3",
"node-html-parser": "^9.0.1",
"nodemailer": "^9.0.5",
"ollama-ai-provider-v2": "^4.0.1",
"pg": "^8.22.0",
"pdfjs-dist": "^6.2.108",
"pg": "^8.23.0",
"phosphor-icons-react-pdf": "^0.1.3",
"react": "^19.2.8",
"react-email": "^6.9.1",
"react-email": "^6.9.2",
"react-pdf-html": "^2.1.5",
"resumable-stream": "^2.2.12",
"sharp": "^0.35.3",
@@ -83,12 +89,12 @@
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@types/node": "^26.1.2",
"@types/pg": "^8.20.0",
"@types/react": "^19.2.17",
"@types/node": "^26.2.0",
"@types/pg": "^8.21.0",
"@types/react": "^19.2.18",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"tsdown": "^0.22.14",
"tsx": "^4.23.1",
"tsx": "^4.23.12",
"typescript": "^7.0.2",
"vitest": "^4.1.10"
}
+56
View File
@@ -9,6 +9,7 @@ const mocks = vi.hoisted(() => ({
handleUpload: vi.fn(),
handleMcp: vi.fn(),
handleResumePdfDownload: vi.fn(),
handlePublicResumePdf: vi.fn(),
handleMcpServerCard: vi.fn(),
handleOAuthAuthorizationServer: vi.fn(),
handleOAuthProtectedResource: vi.fn(),
@@ -69,6 +70,15 @@ vi.mock("./resume-pdf", () => ({
handleResumePdfDownload: mocks.handleResumePdfDownload,
}));
vi.mock("./public-resume-pdf", () => ({
handlePublicResumePdf: mocks.handlePublicResumePdf,
}));
const transportEnv = (remoteAddress: string) =>
({
incoming: { socket: { remoteAddress } },
}) as never;
beforeEach(() => {
vi.clearAllMocks();
mocks.handleAuth.mockResolvedValue(new Response("auth"));
@@ -79,6 +89,7 @@ beforeEach(() => {
mocks.handleUpload.mockResolvedValue(new Response("upload"));
mocks.handleMcp.mockResolvedValue(new Response("mcp"));
mocks.handleResumePdfDownload.mockResolvedValue(new Response("pdf"));
mocks.handlePublicResumePdf.mockResolvedValue(new Response("public-pdf"));
mocks.handleMcpServerCard.mockReturnValue(new Response("server-card"));
mocks.handleOAuthAuthorizationServer.mockReturnValue(new Response("oauth-authorization-server"));
mocks.handleOAuthProtectedResource.mockReturnValue(new Response("oauth-protected-resource"));
@@ -117,6 +128,51 @@ describe("createApp", () => {
expect(mocks.handleWebApp).not.toHaveBeenCalled();
});
it("uses the transport address for public PDF fallback despite rotated forwarding headers", async () => {
const { createApp } = await import("./app");
const app = createApp();
const first = new Request("http://localhost:3001/api/resumes/jane/resume/pdf?reason=render-data-hash", {
headers: { "x-forwarded-for": "198.51.100.1" },
});
const rotated = new Request("http://localhost:3001/api/resumes/jane/resume/pdf?reason=render-data-hash", {
headers: { "x-forwarded-for": "198.51.100.2" },
});
const env = transportEnv("203.0.113.9");
const response = await app.fetch(first, env);
await app.fetch(rotated, env);
await expect(response.text()).resolves.toBe("public-pdf");
expect(mocks.handlePublicResumePdf).toHaveBeenNthCalledWith(1, first, "jane", "resume", "203.0.113.9");
expect(mocks.handlePublicResumePdf).toHaveBeenNthCalledWith(2, rotated, "jane", "resume", "203.0.113.9");
expect(mocks.handleResumePdfDownload).not.toHaveBeenCalled();
expect(mocks.serveWebDistStatic).not.toHaveBeenCalled();
expect(mocks.handleWebApp).not.toHaveBeenCalled();
});
it("passes the transport address to RPC and OpenAPI and fails closed when it is unavailable", async () => {
const { createApp } = await import("./app");
const app = createApp();
const trustedRpcRequest = new Request("http://localhost:3001/api/rpc", {
headers: { "cf-connecting-ip": "198.51.100.1" },
});
const unknownRpcRequest = new Request("http://localhost:3001/api/rpc", {
headers: { "cf-connecting-ip": "198.51.100.2" },
});
const trustedOpenApiRequest = new Request("http://localhost:3001/api/openapi/resumes/jane/resume/style-projection");
const unknownOpenApiRequest = new Request("http://localhost:3001/api/openapi/resumes/jane/resume/style-projection");
await app.fetch(trustedRpcRequest, transportEnv("203.0.113.9"));
await app.fetch(unknownRpcRequest);
await app.fetch(trustedOpenApiRequest, transportEnv("203.0.113.9"));
await app.fetch(unknownOpenApiRequest);
expect(mocks.handleRpc).toHaveBeenNthCalledWith(1, trustedRpcRequest, "203.0.113.9");
expect(mocks.handleRpc).toHaveBeenNthCalledWith(2, unknownRpcRequest, "unknown");
expect(mocks.handleOpenApi).toHaveBeenNthCalledWith(1, trustedOpenApiRequest, "203.0.113.9");
expect(mocks.handleOpenApi).toHaveBeenNthCalledWith(2, unknownOpenApiRequest, "unknown");
});
it.each([
["GET", "/robots.txt", "robots", mocks.handleRobots],
["HEAD", "/robots.txt", "", mocks.handleRobots],
+25 -6
View File
@@ -1,3 +1,7 @@
import type { Http2Bindings, HttpBindings } from "@hono/node-server";
import type { Context } from "hono";
import { isIP } from "node:net";
import { getConnInfo } from "@hono/node-server/conninfo";
import { Hono } from "hono";
import { handleMcp } from "../mcp/handler";
import { handleOpenApi } from "../openapi/handler";
@@ -15,18 +19,33 @@ import { handleUpload } from "../static/uploads";
import { handleWebApp, serveWebDistStatic } from "../static/web";
import { handleAuth, handleOAuth } from "./auth";
import { handleHealth } from "./health";
import { handlePublicResumePdf } from "./public-resume-pdf";
import { handleResumePdfDownload } from "./resume-pdf";
export function createApp() {
const app = new Hono();
type ServerEnvironment = { Bindings: HttpBindings | Http2Bindings };
app.all("/api/rpc", (c) => handleRpc(c.req.raw));
app.all("/api/rpc/*", (c) => handleRpc(c.req.raw));
app.all("/api/openapi", (c) => handleOpenApi(c.req.raw));
app.all("/api/openapi/*", (c) => handleOpenApi(c.req.raw));
const getTrustedClient = (context: Context<ServerEnvironment>): string => {
try {
const address = getConnInfo(context).remote.address?.trim();
return address && isIP(address) ? address : "unknown";
} catch {
return "unknown";
}
};
export function createApp() {
const app = new Hono<ServerEnvironment>();
app.all("/api/rpc", (c) => handleRpc(c.req.raw, getTrustedClient(c)));
app.all("/api/rpc/*", (c) => handleRpc(c.req.raw, getTrustedClient(c)));
app.all("/api/openapi", (c) => handleOpenApi(c.req.raw, getTrustedClient(c)));
app.all("/api/openapi/*", (c) => handleOpenApi(c.req.raw, getTrustedClient(c)));
app.get("/api/auth/oauth", (c) => handleOAuth(c.req.raw));
app.all("/api/auth/*", (c) => handleAuth(c.req.raw));
app.get("/api/health", () => handleHealth());
app.get("/api/resumes/:username/:slug/pdf", (c) =>
handlePublicResumePdf(c.req.raw, c.req.param("username"), c.req.param("slug"), getTrustedClient(c)),
);
app.get("/api/resumes/:id/pdf", (c) => handleResumePdfDownload(c.req.raw, c.req.param("id")));
app.get("/api/uploads/*", (c) => handleUpload(c.req.raw));
app.get("/uploads/*", (c) => handleUpload(c.req.raw));
@@ -0,0 +1,109 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
const mocks = vi.hoisted(() => ({
createPublicResumePdf: vi.fn(),
}));
vi.mock("@reactive-resume/api/features/resume/public-pdf", () => ({
createPublicResumePdf: mocks.createPublicResumePdf,
PUBLIC_RESUME_PDF_MISMATCH_REASONS: [
"missing-projection",
"format-version",
"language-version",
"semantic-tree-version",
"registry-fingerprint",
"adapter-fingerprint",
"render-data-hash",
"invalid-projection",
],
}));
const { handlePublicResumePdf } = await import("./public-resume-pdf");
const trustedClient = "203.0.113.9";
describe("handlePublicResumePdf", () => {
beforeEach(() => vi.clearAllMocks());
it("returns the authorized fallback PDF with strict mismatch metadata and cache policy", async () => {
const body = new File(["%PDF"], "Ada_Lovelace.pdf", { type: "text/plain" });
mocks.createPublicResumePdf.mockResolvedValueOnce({
body,
filename: "Ada_Lovelace.pdf",
});
const registry = "0".repeat(64);
const adapter = "1".repeat(64);
const request = new Request(
`https://example.com/api/resumes/jane/resume/pdf?reason=render-data-hash&registryFingerprint=${registry}&adapterFingerprint=${adapter}`,
{ headers: { "x-forwarded-for": "203.0.113.7" } },
);
const response = await handlePublicResumePdf(request, "jane", "resume", trustedClient);
expect(response.status).toBe(200);
expect(response.headers.get("Content-Type")).toBe("application/pdf");
expect(response.headers.get("Content-Disposition")).toBe('inline; filename="Ada_Lovelace.pdf"');
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(response.headers.get("X-Content-Type-Options")).toBe("nosniff");
expect(await response.text()).toBe("%PDF");
expect(mocks.createPublicResumePdf).toHaveBeenCalledWith({
username: "jane",
slug: "resume",
requestHeaders: request.headers,
trustedClient,
mismatchReason: "render-data-hash",
clientRegistryFingerprint: registry,
clientAdapterFingerprint: adapter,
});
});
it("defaults a missing mismatch reason and keeps password/private responses uncacheable", async () => {
mocks.createPublicResumePdf.mockResolvedValueOnce({
body: new File(["%PDF"], "resume.pdf", { type: "application/pdf" }),
filename: "resume.pdf",
});
const request = new Request("https://example.com/api/resumes/jane/resume/pdf");
const response = await handlePublicResumePdf(request, "jane", "resume", trustedClient);
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(mocks.createPublicResumePdf).toHaveBeenCalledWith(
expect.objectContaining({ mismatchReason: "missing-projection" }),
);
});
it.each([
[{ code: "BAD_REQUEST" }, 400],
[{ code: "NEED_PASSWORD" }, 401],
[{ code: "NOT_FOUND" }, 404],
[{ code: "RATE_LIMIT_EXCEEDED" }, 429],
[{ code: "INTERNAL_SERVER_ERROR" }, 500],
])("maps controlled API errors without caching the response", async (error, status) => {
mocks.createPublicResumePdf.mockRejectedValueOnce(error);
const response = await handlePublicResumePdf(
new Request("https://example.com/api/resumes/jane/resume/pdf"),
"jane",
"resume",
trustedClient,
);
expect(response.status).toBe(status);
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
});
it.each(["?reason=private-source", "?registryFingerprint=unsafe", "?adapterFingerprint=unsafe"])(
"rejects invalid fallback metadata before the API service",
async (search) => {
const response = await handlePublicResumePdf(
new Request(`https://example.com/api/resumes/jane/resume/pdf${search}`),
"jane",
"resume",
trustedClient,
);
expect(response.status).toBe(400);
expect(response.headers.get("Cache-Control")).toBe("private, no-store");
expect(mocks.createPublicResumePdf).not.toHaveBeenCalled();
},
);
});
+72
View File
@@ -0,0 +1,72 @@
import type { PublicResumePdfMismatchReason } from "@reactive-resume/api/features/resume/public-pdf";
import {
createPublicResumePdf,
PUBLIC_RESUME_PDF_MISMATCH_REASONS,
} from "@reactive-resume/api/features/resume/public-pdf";
const noStoreResponse = (body: string, status: number) =>
new Response(body, { status, headers: { "Cache-Control": "private, no-store" } });
const errorStatus = (error: unknown): number => {
const code = typeof error === "object" && error && "code" in error ? (error as { code?: unknown }).code : undefined;
if (code === "BAD_REQUEST") return 400;
if (code === "NEED_PASSWORD") return 401;
if (code === "NOT_FOUND") return 404;
if (code === "RATE_LIMIT_EXCEEDED") return 429;
return 500;
};
const fingerprint = (value: string | null): string | undefined => {
if (value === null) return;
return /^[a-f0-9]{64}$/.test(value) ? value : undefined;
};
export async function handlePublicResumePdf(
request: Request,
username: string,
slug: string,
trustedClient = "unknown",
): Promise<Response> {
const searchParams = new URL(request.url).searchParams;
const rawReason = searchParams.get("reason") ?? "missing-projection";
if (!PUBLIC_RESUME_PDF_MISMATCH_REASONS.includes(rawReason as PublicResumePdfMismatchReason)) {
return noStoreResponse("Invalid fallback metadata", 400);
}
const rawRegistryFingerprint = searchParams.get("registryFingerprint");
const rawAdapterFingerprint = searchParams.get("adapterFingerprint");
const clientRegistryFingerprint = fingerprint(rawRegistryFingerprint);
const clientAdapterFingerprint = fingerprint(rawAdapterFingerprint);
if (
(rawRegistryFingerprint !== null && clientRegistryFingerprint === undefined) ||
(rawAdapterFingerprint !== null && clientAdapterFingerprint === undefined)
) {
return noStoreResponse("Invalid fallback metadata", 400);
}
try {
const result = await createPublicResumePdf({
username,
slug,
requestHeaders: request.headers,
trustedClient,
mismatchReason: rawReason as PublicResumePdfMismatchReason,
...(clientRegistryFingerprint ? { clientRegistryFingerprint } : {}),
...(clientAdapterFingerprint ? { clientAdapterFingerprint } : {}),
});
return new Response(result.body, {
headers: {
"Content-Type": "application/pdf",
"Content-Disposition": `inline; filename="${result.filename.replaceAll('"', "")}"`,
"Cache-Control": "private, no-store",
"X-Content-Type-Options": "nosniff",
},
});
} catch (error) {
const status = errorStatus(error);
return noStoreResponse(
status === 500 ? "Failed to generate public resume PDF" : "Public resume PDF unavailable",
status,
);
}
}
+58
View File
@@ -23,6 +23,7 @@ describe("handleResumePdfDownload", () => {
ok: true,
resumeId: "resume-1",
userId: "user-1",
target: "resume",
expiresAt: "2026-06-01T10:10:00.000Z",
});
mocks.createResumePdfDownload.mockResolvedValueOnce({
@@ -49,6 +50,7 @@ describe("handleResumePdfDownload", () => {
ok: true,
resumeId: "resume-1",
userId: "user-1",
target: "cover-letter",
expiresAt: "2026-06-01T10:10:00.000Z",
});
mocks.createResumePdfDownload.mockResolvedValueOnce({
@@ -68,6 +70,62 @@ describe("handleResumePdfDownload", () => {
});
});
it("defaults a legacy token without a target to resume", async () => {
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
ok: true,
resumeId: "resume-1",
userId: "user-1",
expiresAt: "2026-06-01T10:10:00.000Z",
});
mocks.createResumePdfDownload.mockResolvedValueOnce({
headers: { "content-disposition": 'attachment; filename="Cover Letter.pdf"' },
body: new File([], "Cover Letter.pdf", { type: "application/pdf" }),
});
await handleResumePdfDownload(new Request("https://example.com/api/resumes/resume-1/pdf?token=legacy"), "resume-1");
expect(mocks.createResumePdfDownload).toHaveBeenCalledWith({
id: "resume-1",
userId: "user-1",
target: "resume",
});
});
it("rejects a cover-letter target for a legacy token without one", async () => {
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
ok: true,
resumeId: "resume-1",
userId: "user-1",
expiresAt: "2026-06-01T10:10:00.000Z",
});
const response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf?token=legacy&target=cover-letter"),
"resume-1",
);
expect(response.status).toBe(401);
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
});
it("rejects a target that differs from the signed token", async () => {
mocks.verifyResumePdfDownloadToken.mockReturnValueOnce({
ok: true,
resumeId: "resume-1",
userId: "user-1",
target: "resume",
expiresAt: "2026-06-01T10:10:00.000Z",
});
const response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf?token=signed&target=cover-letter"),
"resume-1",
);
expect(response.status).toBe(401);
expect(mocks.createResumePdfDownload).not.toHaveBeenCalled();
});
it("rejects missing, invalid, and expired tokens before rendering", async () => {
let response = await handleResumePdfDownload(
new Request("https://example.com/api/resumes/resume-1/pdf"),
+8 -1
View File
@@ -30,9 +30,16 @@ export async function handleResumePdfDownload(request: Request, id: string) {
const verification = verifyResumePdfDownloadToken({ resumeId: id, token });
if (!verification.ok) return verification.reason === "expired" ? expiredResponse() : unauthorizedResponse();
const queryTarget = searchParams.get("target");
if (
verification.target
? queryTarget !== null && queryTarget !== verification.target
: queryTarget && queryTarget !== "resume"
)
return unauthorizedResponse();
try {
const target = searchParams.get("target") === "cover-letter" ? "cover-letter" : "resume";
const target = verification.target ?? "resume";
const download = await createResumePdfDownload({ id, userId: verification.userId, target });
return new Response(download.body, {
+13
View File
@@ -2,6 +2,7 @@ import { pathToFileURL } from "node:url";
import { serve } from "@hono/node-server";
import { env } from "@reactive-resume/env/server";
import { createApp } from "./http/app";
import { stylesheetPreflightRunner } from "./services/stylesheet-preflight";
import { runStartupChecks } from "./startup/checks";
export { createApp } from "./http/app";
@@ -9,6 +10,14 @@ export { createApp } from "./http/app";
async function main() {
await runStartupChecks();
// Safety net: Node 24 crashes the whole process on an unhandled rejection. One request's
// stray promise must not take the server down for everyone, so log and keep serving.
// Registered after startup checks so a broken startup still fails loudly. (Left uncaught
// exceptions on Node's default crash-and-restart, since process state is unsafe after one.)
process.on("unhandledRejection", (reason) => {
console.error("[unhandledRejection]", reason);
});
const port =
process.env.NODE_ENV === "production" ? Number.parseInt(process.env.PORT ?? "3000", 10) : env.SERVER_PORT;
@@ -23,6 +32,10 @@ async function main() {
console.info(`🚀 Up and running on http://localhost:${info.port}`);
},
);
// Load the heavy PDF preflight runtime once, now, so the first semantic-CSS edit
// does not pay (and time out on) the cold worker start.
stylesheetPreflightRunner.warmup();
}
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
+19 -2
View File
@@ -1,5 +1,21 @@
import { auth, verifyOAuthToken } from "@reactive-resume/auth/config";
const OAUTH_WARN_THROTTLE_MS = 60_000;
let lastOAuthWarnAt = 0;
function warnOAuthThrottled(message: string, detail?: unknown): void {
const now = Date.now();
if (now - lastOAuthWarnAt < OAUTH_WARN_THROTTLE_MS) return;
lastOAuthWarnAt = now;
if (detail !== undefined) {
console.warn(message, detail);
return;
}
console.warn(message);
}
export class AuthError extends Error {
constructor() {
super("Unauthorized");
@@ -13,8 +29,9 @@ export async function authenticateRequest(request: Request): Promise<void> {
try {
const payload = await verifyOAuthToken(authHeader.slice(7));
if (payload?.sub) return;
} catch {
// Invalid or expired token; fall through to API key auth.
warnOAuthThrottled("[MCP] OAuth token verified but missing `sub` claim");
} catch (error) {
warnOAuthThrottled("[MCP] OAuth token verification failed:", error);
}
}
+1 -1
View File
@@ -53,7 +53,7 @@ export function createMcpServer(request: Request) {
`Read schema at \`resume://_meta/schema\`; read resume JSON via \`resume://{id}\` or \`${MCP_TOOL_NAME.getResume}\`.`,
`Apply body edits with JSON Patch through \`${MCP_TOOL_NAME.patchResume}\`.`,
`Change name, slug, tags, or public visibility with \`${MCP_TOOL_NAME.updateResume}\` (returns canonical share URL; anonymous access only when \`isPublic\` is true; passwords are managed in the web app only).`,
`Create short-lived authenticated PDF download URLs with \`${MCP_TOOL_NAME.downloadResumePdf}\`.`,
`Create short-lived authenticated PDF download URLs with \`${MCP_TOOL_NAME.downloadResumePdf}\`; set target to \`cover-letter\` to export a visible cover letter separately.`,
`Import full ResumeData JSON with \`${MCP_TOOL_NAME.importResume}\`; read saved AI analysis with \`${MCP_TOOL_NAME.getResumeAnalysis}\`.`,
].join(" "),
},
+20
View File
@@ -0,0 +1,20 @@
import { readFile, writeFile } from "node:fs/promises";
import { fileURLToPath } from "node:url";
export async function generateOpenApiDocumentation(
target = fileURLToPath(new URL("../../../../docs/spec.json", import.meta.url)),
) {
const packageJson = JSON.parse(await readFile(new URL("../../../../package.json", import.meta.url), "utf8")) as {
version: string;
};
process.env.APP_URL ??= "https://rxresu.me";
process.env.DATABASE_URL ??= "postgresql://localhost/reactive_resume_docs";
process.env.AUTH_SECRET ??= "documentation-generation-isolated-process-only";
const { generateOpenApiSpec } = await import("./generator");
const spec = await generateOpenApiSpec({ appUrl: "https://rxresu.me", version: packageJson.version });
await writeFile(target, `${JSON.stringify(spec, null, "\t")}\n`);
}
if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {
await generateOpenApiDocumentation(process.argv[2]);
}
+147
View File
@@ -0,0 +1,147 @@
import { describe, expect, it } from "vitest";
import z from "zod";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { createResumeDataJsonSchema } from "@reactive-resume/schema/resume/json-schema";
type GeneratedSpecView = {
components?: { schemas?: Record<string, unknown> };
paths?: Record<
string,
Record<
string,
{
requestBody?: {
content?: Record<string, { schema?: unknown }>;
};
}
>
>;
};
async function generateSpec() {
process.env.APP_URL ??= "https://rxresu.me";
process.env.DATABASE_URL ??= "postgresql://localhost/reactive_resume_test";
process.env.AUTH_SECRET ??= "openapi-generator-test-process-only";
const { generateOpenApiSpec } = await import("./generator");
return generateOpenApiSpec({
appUrl: "https://rxresu.me",
version: "9.8.7",
});
}
function getRequestSchema(spec: GeneratedSpecView, path: string, method: string) {
return spec.paths?.[path]?.[method]?.requestBody?.content?.["application/json"]?.schema;
}
function containsImpossibleSchema(value: unknown): boolean {
if (Array.isArray(value)) return value.some(containsImpossibleSchema);
if (typeof value !== "object" || value === null) return false;
const object = value as Record<string, unknown>;
const negated = object.not;
if (typeof negated === "object" && negated !== null && Object.keys(negated).length === 0) {
return true;
}
return Object.values(object).some(containsImpossibleSchema);
}
function findImpossibleRequestSchemas(spec: GeneratedSpecView) {
const impossibleRequests: string[] = [];
for (const [path, operations] of Object.entries(spec.paths ?? {})) {
for (const [method, operation] of Object.entries(operations)) {
for (const [mediaType, content] of Object.entries(operation.requestBody?.content ?? {})) {
if (containsImpossibleSchema(content.schema)) {
impossibleRequests.push(`${method.toUpperCase()} ${path} (${mediaType})`);
}
}
}
}
return impossibleRequests;
}
describe("generateOpenApiSpec", () => {
it("uses caller-provided application URL and version", async () => {
const spec = await generateSpec();
expect(spec.info).toMatchObject({
title: "Reactive Resume",
version: "9.8.7",
});
expect(spec.servers).toEqual([{ url: "https://rxresu.me/api/openapi" }]);
expect(spec.externalDocs).toEqual({
url: "https://docs.rxresu.me",
description: "Reactive Resume Documentation",
});
}, 15_000);
it("uses the canonical input-side ResumeData schema in update requests", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
const { $schema: _dialect, ...canonicalInputSchema } = createResumeDataJsonSchema();
expect(spec.components?.schemas?.ResumeData).toEqual(canonicalInputSchema);
expect(getRequestSchema(spec, "/resumes/{id}", "put")).toMatchObject({
properties: {
data: { $ref: "#/components/schemas/ResumeData" },
},
});
});
it("publishes the custom-section type and item correlation", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
const schema = z.fromJSONSchema(spec.components?.schemas?.ResumeData as Parameters<typeof z.fromJSONSchema>[0]);
const mismatched = {
...defaultResumeData,
customSections: [
{
id: "custom-experience",
type: "experience",
title: "Experience",
icon: "",
columns: 1,
hidden: false,
keepTogether: false,
startOnNewPage: false,
items: [{ id: "summary-item", hidden: false, content: "<p>Not an experience item</p>" }],
},
],
};
expect(schema.safeParse(mismatched).success).toBe(false);
});
it("does not publish impossible request schemas", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
expect(findImpossibleRequestSchemas(spec)).toEqual([]);
});
it("checks every request body media type for impossible schemas", () => {
const spec: GeneratedSpecView = {
paths: {
"/documents": {
post: {
requestBody: {
content: {
"application/json": { schema: { type: "object" } },
"multipart/form-data": { schema: { not: {} } },
},
},
},
},
},
};
expect(findImpossibleRequestSchemas(spec)).toEqual(["POST /documents (multipart/form-data)"]);
});
it("documents imported data as an accepted ResumeData input", async () => {
const spec = (await generateSpec()) as GeneratedSpecView;
expect(getRequestSchema(spec, "/resumes/import", "post")).toEqual({
type: "object",
properties: {
data: { $ref: "#/components/schemas/ResumeData" },
},
required: ["data"],
});
});
});
+80
View File
@@ -0,0 +1,80 @@
import { OpenAPIGenerator } from "@orpc/openapi";
import { JSON_SCHEMA_INPUT_REGISTRY, ZodToJsonSchemaConverter } from "@orpc/zod/zod4";
import { downloadResumePdfProcedure } from "@reactive-resume/api/features/resume/export";
import router from "@reactive-resume/api/routers";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { createResumeDataJsonSchema } from "@reactive-resume/schema/resume/json-schema";
export const openAPIRouter = {
...router,
resume: {
...router.resume,
downloadPdf: downloadResumePdfProcedure,
},
};
const { $schema: _dialect, ...resumeDataInputSchema } = createResumeDataJsonSchema();
type ResumeDataInputJsonSchema = Parameters<typeof JSON_SCHEMA_INPUT_REGISTRY.add<typeof resumeDataSchema>>[1];
JSON_SCHEMA_INPUT_REGISTRY.add(resumeDataSchema, resumeDataInputSchema as unknown as ResumeDataInputJsonSchema);
const importResumeInputSchema = openAPIRouter.resume.import["~orpc"].inputSchema;
if (importResumeInputSchema) {
JSON_SCHEMA_INPUT_REGISTRY.add(importResumeInputSchema, {
type: "object",
properties: {
data: { $ref: "#/components/schemas/ResumeData" },
},
required: ["data"],
});
}
const openAPIGenerator = new OpenAPIGenerator({
schemaConverters: [
new ZodToJsonSchemaConverter({
interceptors: [
({ options, next }) => {
const [required, schema] = next();
const impossible =
Object.keys(schema).length === 1 &&
typeof schema.not === "object" &&
schema.not !== null &&
Object.keys(schema.not).length === 0;
return options.strategy === "input" && impossible ? [required, {}] : [required, schema];
},
],
}),
],
});
type GenerateOpenApiSpecOptions = {
appUrl: string;
version: string;
};
export async function generateOpenApiSpec({ appUrl, version }: GenerateOpenApiSpecOptions) {
return await openAPIGenerator.generate(openAPIRouter, {
info: {
title: "Reactive Resume",
version,
description: "Reactive Resume API",
license: { name: "MIT", url: "https://github.com/amruthpillai/reactive-resume/blob/main/LICENSE" },
contact: { name: "Amruth Pillai", email: "hello@amruthpillai.com", url: "https://amruthpillai.com" },
},
servers: [{ url: `${appUrl}/api/openapi` }],
externalDocs: { url: "https://docs.rxresu.me", description: "Reactive Resume Documentation" },
commonSchemas: {
ResumeData: { schema: resumeDataSchema, strategy: "input" },
},
components: {
securitySchemes: {
apiKey: {
type: "apiKey",
name: "x-api-key",
in: "header",
description: "The API key to authenticate requests.",
},
},
},
security: [{ apiKey: [] }],
filter: ({ contract }) => !contract["~orpc"].route.tags?.includes("Internal"),
});
}
+4 -46
View File
@@ -1,24 +1,13 @@
import { SmartCoercionPlugin } from "@orpc/json-schema";
import { OpenAPIGenerator } from "@orpc/openapi";
import { OpenAPIHandler } from "@orpc/openapi/fetch";
import { onError } from "@orpc/server";
import { BatchHandlerPlugin, RequestHeadersPlugin, StrictGetMethodPlugin } from "@orpc/server/plugins";
import { ZodToJsonSchemaConverter } from "@orpc/zod/zod4";
import { downloadResumePdfProcedure } from "@reactive-resume/api/features/resume/export";
import router from "@reactive-resume/api/routers";
import { env } from "@reactive-resume/env/server";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { appVersion } from "../app-version";
import { mergeResponseHeaders } from "../http/headers";
import { getRequestLocale } from "../rpc/locale";
const openAPIRouter = {
...router,
resume: {
...router.resume,
downloadPdf: downloadResumePdfProcedure,
},
};
import { generateOpenApiSpec, openAPIRouter } from "./generator";
const openAPIHandler = new OpenAPIHandler(openAPIRouter, {
plugins: [
@@ -36,46 +25,15 @@ const openAPIHandler = new OpenAPIHandler(openAPIRouter, {
],
});
const openAPIGenerator = new OpenAPIGenerator({
schemaConverters: [new ZodToJsonSchemaConverter()],
});
export async function handleOpenApi(request: Request) {
export async function handleOpenApi(request: Request, trustedClient = "unknown") {
if (request.method === "GET" && (request.url.endsWith("/spec.json") || request.url.endsWith("/spec"))) {
const spec = await openAPIGenerator.generate(openAPIRouter, {
info: {
title: "Reactive Resume",
version: appVersion,
description: "Reactive Resume API",
license: { name: "MIT", url: "https://github.com/amruthpillai/reactive-resume/blob/main/LICENSE" },
contact: { name: "Amruth Pillai", email: "hello@amruthpillai.com", url: "https://amruthpillai.com" },
},
servers: [{ url: `${env.APP_URL}/api/openapi` }],
externalDocs: { url: "https://docs.rxresu.me", description: "Reactive Resume Documentation" },
commonSchemas: {
ResumeData: { schema: resumeDataSchema },
},
components: {
securitySchemes: {
apiKey: {
type: "apiKey",
name: "x-api-key",
in: "header",
description: "The API key to authenticate requests.",
},
},
},
security: [{ apiKey: [] }],
filter: ({ contract }) => !contract["~orpc"].route.tags?.includes("Internal"),
});
return Response.json(spec);
return Response.json(await generateOpenApiSpec({ appUrl: env.APP_URL, version: appVersion }));
}
const resHeaders = new Headers();
const { response } = await openAPIHandler.handle(request, {
prefix: "/api/openapi",
context: { locale: getRequestLocale(request), reqHeaders: request.headers, resHeaders },
context: { locale: getRequestLocale(request), reqHeaders: request.headers, resHeaders, trustedClient },
});
if (!response) return new Response("NOT_FOUND", { status: 404 });
+9 -2
View File
@@ -3,6 +3,7 @@ import { RPCHandler } from "@orpc/server/fetch";
import { BatchHandlerPlugin, RequestHeadersPlugin, StrictGetMethodPlugin } from "@orpc/server/plugins";
import router from "@reactive-resume/api/routers";
import { mergeResponseHeaders } from "../http/headers";
import { stylesheetPreflightRunner } from "../services/stylesheet-preflight";
import { getRequestLocale } from "./locale";
const rpcHandler = new RPCHandler(router, {
@@ -14,11 +15,17 @@ const rpcHandler = new RPCHandler(router, {
],
});
export async function handleRpc(request: Request) {
export async function handleRpc(request: Request, trustedClient = "unknown") {
const resHeaders = new Headers();
const { response } = await rpcHandler.handle(request, {
prefix: "/api/rpc",
context: { locale: getRequestLocale(request), reqHeaders: request.headers, resHeaders },
context: {
locale: getRequestLocale(request),
reqHeaders: request.headers,
resHeaders,
trustedClient,
stylesheetPreflightRunner,
},
});
if (!response) return new Response("NOT_FOUND", { status: 404 });
@@ -0,0 +1,332 @@
import { afterEach, describe, expect, it } from "vitest";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { createStylesheetPreflightRunner, STYLESHEET_PREFLIGHT_LIMITS } from "./stylesheet-preflight";
const validStylesheet = {
languageVersion: 1,
text: "@version 1;",
} as const;
const input = {
data: defaultResumeData,
template: defaultResumeData.metadata.template,
stylesheet: validStylesheet,
} as const;
// Runners now own a long-lived, reused worker; destroy them so no worker thread
// outlives its test.
const runners: Array<{ destroy(): Promise<void> }> = [];
const track = <T extends { destroy(): Promise<void> }>(runner: T): T => {
runners.push(runner);
return runner;
};
afterEach(async () => {
await Promise.all(runners.splice(0).map((runner) => runner.destroy()));
});
const memoryExhaustionWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
const retained = [];
while (true) {
const batch = Array.from({ length: 100_000 }, (_, index) => ({ batch: retained.length, index }));
retained.push(batch);
}
`)}`,
);
const failedWorker = new URL(
`data:text/javascript,${encodeURIComponent('throw new Error("sensitive worker details");')}`,
);
// Counts how many preflights this single worker instance served so a reuse test
// can prove the worker is not respawned per request.
const reuseCountingWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
let served = 0;
parentPort.postMessage({ type: "ready" });
parentPort.on("message", (message) => {
if (message?.type !== "preflight") return;
served += 1;
parentPort.postMessage({
type: "result",
requestId: message.requestId,
result: { ok: true, pageCount: 1, byteCount: served, diagnostics: [] },
});
});
`)}`,
);
const delayedSuccessfulWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
parentPort.postMessage({ type: "ready" });
parentPort.on("message", (message) => {
if (message?.type !== "preflight") return;
setTimeout(() => {
parentPort.postMessage({
type: "result",
requestId: message.requestId,
result: {
ok: true,
pageCount: 1,
byteCount: Number(message.input.data.basics.name),
diagnostics: [],
},
});
}, 300);
});
`)}`,
);
const delayedReadyWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
parentPort.on("message", (message) => {
if (message?.type !== "preflight") return;
setTimeout(() => {
parentPort.postMessage({
type: "result",
requestId: message.requestId,
result: { ok: true, pageCount: 1, byteCount: 1, diagnostics: [] },
});
}, 10);
});
setTimeout(() => parentPort.postMessage({ type: "ready" }), 50);
`)}`,
);
const neverCompletesWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
parentPort.postMessage({ type: "ready" });
setInterval(() => {}, 1_000);
`)}`,
);
const synchronousFailureWorker = new URL("https://example.com/stylesheet-preflight.mjs");
const numberedInput = (number: number) => ({
...input,
data: {
...input.data,
basics: {
...input.data.basics,
name: String(number),
},
},
});
const invalidInput = () => {
const data = structuredClone(defaultResumeData);
data.customSections = [
{
id: "custom-experience",
type: "experience",
title: "Experience",
icon: "",
columns: 1,
hidden: false,
keepTogether: false,
startOnNewPage: false,
items: [{ id: "summary-shaped-item", hidden: false, content: "<p>Missing company</p>" }],
} as never,
];
return { ...input, data };
};
describe("stylesheet PDF preflight worker", () => {
it("keeps the production resource policy fixed and immutable", () => {
expect(STYLESHEET_PREFLIGHT_LIMITS).toEqual({
timeoutMs: 30_000,
maxPages: 20,
maxBytes: 10_000_000,
maxPageWidthPt: 2_000,
maxPageHeightPt: 20_000,
maxPageAreaPt2: 20_000_000,
maxOldGenerationMb: 256,
maxConcurrentWorkers: 1,
maxQueuedRequests: 32,
});
expect(Object.isFrozen(STYLESHEET_PREFLIGHT_LIMITS)).toBe(true);
});
it("accepts a bounded candidate render in an isolated worker", async () => {
const runner = track(createStylesheetPreflightRunner({ timeoutMs: 15_000 }));
const result = await runner.run(input);
expect(result).toEqual(
expect.objectContaining({
ok: true,
pageCount: 1,
byteCount: expect.any(Number),
}),
);
if (!result.ok) throw new Error(`Expected successful preflight, received ${result.code}.`);
expect(result.byteCount).toBeGreaterThan(0);
expect(runner.activeWorkerCount).toBe(0);
}, 45_000);
it("reuses one warm worker across sequential requests instead of cold-starting each one", async () => {
const runner = track(createStylesheetPreflightRunner({}, reuseCountingWorker));
const first = await runner.run(input);
const second = await runner.run(input);
const third = await runner.run(input);
// A single reused worker increments its per-instance counter; a per-request
// worker would report byteCount 1 every time.
expect([first, second, third].map((result) => (result.ok ? result.byteCount : -1))).toEqual([1, 2, 3]);
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
it("preserves structured resume-data failures across the worker boundary", async () => {
const runner = track(createStylesheetPreflightRunner({ timeoutMs: 15_000 }));
const result = runner.run(invalidInput());
await expect(result).rejects.toMatchObject({
name: "ZodError",
issues: expect.arrayContaining([expect.objectContaining({ path: ["customSections", 0, "items", 0, "company"] })]),
});
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
}, 20_000);
it("terminates a worker when the render exceeds its deadline", async () => {
const runner = track(createStylesheetPreflightRunner({ timeoutMs: 1 }, neverCompletesWorker));
const result = await runner.run(input);
expect(result).toEqual(expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_TIMEOUT" }));
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
it("starts the authored render deadline after the worker runtime is ready", async () => {
const runner = track(createStylesheetPreflightRunner({ timeoutMs: 20 }, delayedReadyWorker));
await expect(runner.run(input)).resolves.toEqual(expect.objectContaining({ ok: true, pageCount: 1 }));
expect(runner.activeWorkerCount).toBe(0);
});
it("returns deterministic output byte and page limit codes", async () => {
const byteRunner = track(createStylesheetPreflightRunner({ maxBytes: 16 }));
const pageRunner = track(createStylesheetPreflightRunner({ maxPages: 0 }));
await expect(byteRunner.run(input)).resolves.toEqual(
expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_BYTE_LIMIT" }),
);
await expect(pageRunner.run(input)).resolves.toEqual(
expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_PAGE_LIMIT" }),
);
expect(byteRunner.activeWorkerCount).toBe(0);
expect(pageRunner.activeWorkerCount).toBe(0);
}, 30_000);
it("maps worker heap exhaustion to a controlled memory-limit result", async () => {
const runner = track(
createStylesheetPreflightRunner({ maxOldGenerationMb: 8, timeoutMs: 10_000 }, memoryExhaustionWorker),
);
const result = await runner.run(input);
expect(result).toEqual(expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_MEMORY_LIMIT" }));
expect(runner.activeWorkerCount).toBe(0);
}, 15_000);
it("does not expose internal errors from a failed worker bootstrap", async () => {
const runner = track(createStylesheetPreflightRunner({}, failedWorker));
const result = await runner.run(input);
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight worker failed.",
diagnostics: [],
});
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
it("surfaces sanitized render failures from inside the worker catch path", async () => {
const throwingWorker = new URL(
`data:text/javascript,${encodeURIComponent(`
import { parentPort } from "node:worker_threads";
parentPort.postMessage({ type: "ready" });
parentPort.on("message", (message) => {
if (message?.type !== "preflight") return;
parentPort.postMessage({
type: "result",
requestId: message.requestId,
result: {
ok: false,
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight worker failed. (Error: Canvas is already closed)",
diagnostics: [],
},
});
});
`)}`,
);
const runner = track(createStylesheetPreflightRunner({ timeoutMs: 5_000 }, throwingWorker));
const result = await runner.run(input);
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight worker failed. (Error: Canvas is already closed)",
diagnostics: [],
});
});
it("bounds concurrent workers and queued requests without charging queue time to the worker deadline", async () => {
const runner = track(
createStylesheetPreflightRunner(
{
timeoutMs: 500,
maxConcurrentWorkers: 1,
maxQueuedRequests: 2,
},
delayedSuccessfulWorker,
),
);
const completionOrder: number[] = [];
const accepted = [1, 2, 3].map((number) =>
runner.run(numberedInput(number)).then((result) => {
if (result.ok) completionOrder.push(result.byteCount);
return result;
}),
);
const rejected = runner.run(numberedInput(4));
expect(runner.activeWorkerCount).toBe(1);
expect(runner.queuedPreflightCount).toBe(2);
await expect(rejected).resolves.toEqual(
expect.objectContaining({
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: "The PDF preflight queue is full.",
}),
);
const results = await Promise.all(accepted);
expect(results.every((result) => result.ok)).toBe(true);
expect(completionOrder).toEqual([1, 2, 3]);
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
}, 5_000);
it("does not leak a slot when the worker constructor throws synchronously", async () => {
const runner = track(createStylesheetPreflightRunner({}, synchronousFailureWorker));
await expect(runner.run(input)).resolves.toEqual(
expect.objectContaining({ ok: false, code: "STYLESHEET_PREFLIGHT_WORKER_FAILED" }),
);
expect(runner.activeWorkerCount).toBe(0);
expect(runner.queuedPreflightCount).toBe(0);
});
});
@@ -0,0 +1,362 @@
import type {
PdfPreflightFailure,
PdfPreflightResult,
StylesheetPreflightInput,
StylesheetPreflightRunner,
} from "@reactive-resume/pdf/server";
import { fileURLToPath } from "node:url";
import { Worker } from "node:worker_threads";
import { STYLESHEET_PREFLIGHT_LIMITS } from "@reactive-resume/pdf/preflight-reference";
export { STYLESHEET_PREFLIGHT_LIMITS } from "@reactive-resume/pdf/preflight-reference";
type StylesheetPreflightLimits = {
timeoutMs: number;
maxPages: number;
maxBytes: number;
maxPageWidthPt: number;
maxPageHeightPt: number;
maxPageAreaPt2: number;
maxOldGenerationMb: number;
maxConcurrentWorkers: number;
maxQueuedRequests: number;
};
const SOURCE_WORKER_LOADER_HEAP_MB = 256;
// The worker is warmed once and reused, so the one-time cold load (which is
// super-linear in available CPU — measured ~9s at 0.5 vCPU, ~53s at 0.35, ~93s at
// 0.25) is paid at startup, not per request. This ceiling must exceed that cold
// load or warmup is killed mid-bootstrap and never completes on a throttled box;
// it only bounds a genuinely stuck bootstrap and is off the per-edit path.
const WORKER_READINESS_TIMEOUT_MS = 120_000;
type SerializedPreflightCause = {
name: string;
message: string;
issues: readonly unknown[];
};
type StylesheetPreflightWorkerMessage =
| { type: "ready" }
| { type: "load_error"; message: string }
| { type: "result"; requestId: number; result: PdfPreflightResult }
| { type: "preflight_error"; requestId: number; cause: SerializedPreflightCause };
export type NodeStylesheetPreflightRunner = StylesheetPreflightRunner & {
readonly activeWorkerCount: number;
readonly queuedPreflightCount: number;
warmup(): void;
destroy(): Promise<void>;
};
const failure = (code: PdfPreflightFailure["code"], message: string): PdfPreflightFailure => ({
ok: false,
code,
message,
diagnostics: [],
});
const workerFailure = (error: Error): PdfPreflightFailure => {
const code = (error as NodeJS.ErrnoException).code;
return code === "ERR_WORKER_OUT_OF_MEMORY" || /heap out of memory/i.test(error.message)
? failure("STYLESHEET_PREFLIGHT_MEMORY_LIMIT", "The PDF preflight worker exceeded its memory limit.")
: failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker failed.");
};
const sourceWorkerExecArgv = () => {
const importIndex = process.execArgv.findIndex(
(argument, index, arguments_) =>
(argument === "--import" && arguments_[index + 1]?.includes("tsx")) ||
(argument.startsWith("--import=") && argument.includes("tsx")),
);
const inherited = process.execArgv[importIndex];
if (inherited?.startsWith("--import=")) return [inherited];
if (inherited === "--import") return [inherited, process.execArgv[importIndex + 1] as string];
return ["--import", import.meta.resolve("tsx")];
};
const workerLocation = () => {
const source = import.meta.url.endsWith(".ts");
return {
source,
url: source
? new URL("../workers/stylesheet-preflight.ts", import.meta.url)
: new URL("./stylesheet-preflight-worker.mjs", import.meta.url),
// Production must not inherit parent execArgv (e.g. --import/--input-type); source workers need tsx.
execArgv: source ? sourceWorkerExecArgv() : [],
...(source
? {
env: {
...process.env,
TSX_TSCONFIG_PATH: fileURLToPath(new URL("../../tsconfig.json", import.meta.url)),
},
}
: {}),
};
};
type PendingRequest = {
resolve: (result: PdfPreflightResult) => void;
reject: (cause: unknown) => void;
renderTimer?: ReturnType<typeof setTimeout>;
};
type Readiness = {
promise: Promise<Worker>;
resolve: (worker: Worker) => void;
reject: (error: Error) => void;
timer: ReturnType<typeof setTimeout>;
};
export function createStylesheetPreflightRunner(
overrides: Partial<StylesheetPreflightLimits> = {},
testWorkerUrl?: URL,
): NodeStylesheetPreflightRunner {
const limits = Object.freeze({ ...STYLESHEET_PREFLIGHT_LIMITS, ...overrides });
let worker: Worker | undefined;
let ready = false;
let readiness: Readiness | undefined;
let destroyed = false;
let requestSeq = 0;
const pending = new Map<number, PendingRequest>();
// ponytail: process-local, bounded admission; upgrade to a pooled/distributed queue only for multi-process coordination.
const queue: Array<{
input: StylesheetPreflightInput;
resolve: PendingRequest["resolve"];
reject: PendingRequest["reject"];
}> = [];
const teardownWorker = () => {
const dead = worker;
worker = undefined;
ready = false;
if (readiness) {
clearTimeout(readiness.timer);
readiness.reject(new Error("Stylesheet preflight worker did not become ready."));
readiness = undefined;
}
if (!dead) return;
dead.off("message", onMessage);
dead.off("error", onError);
dead.off("exit", onExit);
void dead.terminate().catch(() => undefined);
};
const clearPending = (requestId: number): PendingRequest | undefined => {
const entry = pending.get(requestId);
if (!entry) return undefined;
if (entry.renderTimer) clearTimeout(entry.renderTimer);
pending.delete(requestId);
return entry;
};
const drainQueue = () => {
while (!destroyed && pending.size < limits.maxConcurrentWorkers && queue.length > 0) {
const next = queue.shift();
if (!next) return;
dispatch(next.input, next.resolve, next.reject);
}
};
const resolveRequest = (requestId: number, result: PdfPreflightResult) => {
const entry = clearPending(requestId);
if (!entry) return;
entry.resolve(result);
drainQueue();
};
const rejectRequest = (requestId: number, cause: unknown) => {
const entry = clearPending(requestId);
if (!entry) return;
entry.reject(cause);
drainQueue();
};
// A crashed/exited/timed-out worker is torn down and its in-flight requests are
// failed; the next dispatch (including any queued requests) spawns a fresh one,
// so a poisoned render never lingers across requests.
const failWorker = (result: PdfPreflightFailure) => {
teardownWorker();
const stale = [...pending.keys()];
for (const requestId of stale) resolveRequest(requestId, result);
drainQueue();
};
function onMessage(message: StylesheetPreflightWorkerMessage) {
if (message.type === "ready") {
if (readiness) {
clearTimeout(readiness.timer);
ready = true;
const resolveReady = readiness.resolve;
const readyWorker = worker;
readiness = undefined;
if (readyWorker) resolveReady(readyWorker);
}
return;
}
if (message.type === "load_error") {
failWorker(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", message.message));
return;
}
if (message.type === "result") {
resolveRequest(message.requestId, message.result);
return;
}
if (message.type === "preflight_error") {
rejectRequest(
message.requestId,
Object.assign(new Error(message.cause.message), { name: message.cause.name, issues: message.cause.issues }),
);
}
}
function onError(error: Error) {
console.warn("[stylesheet-preflight] worker error:", error.message);
failWorker(workerFailure(error));
}
function onExit(code: number) {
if (destroyed || (!worker && pending.size === 0)) return;
console.warn(`[stylesheet-preflight] worker exited unexpectedly (code ${code})`);
failWorker(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker failed."));
}
const startWorker = (): Promise<Worker> => {
const location = testWorkerUrl ? { source: false, url: testWorkerUrl, execArgv: [] as string[] } : workerLocation();
let spawned: Worker;
try {
spawned = new Worker(location.url, {
name: "stylesheet-preflight",
resourceLimits: {
// The source-only tsx compiler heap is outside the production render budget.
maxOldGenerationSizeMb: limits.maxOldGenerationMb + (location.source ? SOURCE_WORKER_LOADER_HEAP_MB : 0),
},
execArgv: location.execArgv,
...("env" in location ? { env: location.env } : {}),
});
} catch (error) {
return Promise.reject(error instanceof Error ? error : new Error("Failed to start PDF preflight worker."));
}
worker = spawned;
ready = false;
// The idle reused worker must not keep the process (or a test run) alive; active
// requests stay alive through their ref'd readiness/render timers.
spawned.unref();
spawned.on("message", onMessage);
spawned.once("error", onError);
spawned.once("exit", onExit);
let resolve!: (value: Worker) => void;
let reject!: (error: Error) => void;
const promise = new Promise<Worker>((resolvePromise, rejectPromise) => {
resolve = resolvePromise;
reject = rejectPromise;
});
const timer = setTimeout(() => {
console.warn(`[stylesheet-preflight] worker did not become ready within ${WORKER_READINESS_TIMEOUT_MS}ms`);
teardownWorker();
}, WORKER_READINESS_TIMEOUT_MS);
readiness = { promise, resolve, reject, timer };
return promise;
};
const getReadyWorker = (): Promise<Worker> => {
if (destroyed) return Promise.reject(new Error("Stylesheet preflight worker was terminated."));
if (worker && ready) return Promise.resolve(worker);
if (readiness) return readiness.promise;
return startWorker();
};
// One retry: a worker that failed to become ready is torn down; a second
// attempt spawns a fresh worker before the request gives up.
const waitUntilReady = async (): Promise<Worker> => {
try {
return await getReadyWorker();
} catch {
return await getReadyWorker();
}
};
function dispatch(
input: StylesheetPreflightInput,
resolve: PendingRequest["resolve"],
reject: PendingRequest["reject"],
) {
const requestId = ++requestSeq;
pending.set(requestId, { resolve, reject });
void waitUntilReady()
.then((readyWorker) => {
const entry = pending.get(requestId);
if (!entry) return;
entry.renderTimer = setTimeout(() => {
// A stuck render poisons the reused worker: tear it down and respawn — but
// only the worker this request actually ran on, so a stale timer can never
// kill a newer worker already serving other requests.
clearPending(requestId);
if (worker === readyWorker) teardownWorker();
resolve(failure("STYLESHEET_PREFLIGHT_TIMEOUT", "The PDF preflight exceeded its deadline."));
drainQueue();
}, limits.timeoutMs);
readyWorker.postMessage({ type: "preflight", requestId, input, limits });
})
.catch((error: unknown) => {
resolveRequest(
requestId,
workerFailure(error instanceof Error ? error : new Error("Failed to start PDF preflight worker.")),
);
});
}
return {
get activeWorkerCount() {
return pending.size;
},
get queuedPreflightCount() {
return queue.length;
},
warmup() {
void waitUntilReady().catch(() => undefined);
},
run(input: StylesheetPreflightInput): Promise<PdfPreflightResult> {
return new Promise<PdfPreflightResult>((resolve, reject) => {
if (destroyed) {
resolve(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker was terminated."));
return;
}
if (pending.size < limits.maxConcurrentWorkers) {
dispatch(input, resolve, reject);
return;
}
if (queue.length >= limits.maxQueuedRequests) {
resolve(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight queue is full."));
return;
}
queue.push({ input, resolve, reject });
});
},
async destroy() {
destroyed = true;
const dead = worker;
teardownWorker();
await dead?.terminate().catch(() => undefined);
for (const requestId of [...pending.keys()]) {
resolveRequest(
requestId,
failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker was terminated."),
);
}
while (queue.length > 0) {
const next = queue.shift();
next?.resolve(failure("STYLESHEET_PREFLIGHT_WORKER_FAILED", "The PDF preflight worker was terminated."));
}
},
};
}
export const stylesheetPreflightRunner = createStylesheetPreflightRunner();
+29
View File
@@ -0,0 +1,29 @@
import { describe, expect, it } from "vitest";
import z from "zod";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { handleSchemaJson } from "./schema";
describe("handleSchemaJson", () => {
it("publishes the custom-section type and item correlation", async () => {
const response = handleSchemaJson();
const schema = z.fromJSONSchema((await response.json()) as Parameters<typeof z.fromJSONSchema>[0]);
const mismatched = {
...defaultResumeData,
customSections: [
{
id: "custom-experience",
type: "experience",
title: "Experience",
icon: "",
columns: 1,
hidden: false,
keepTogether: false,
startOnNewPage: false,
items: [{ id: "summary-item", hidden: false, content: "<p>Not an experience item</p>" }],
},
],
};
expect(schema.safeParse(mismatched).success).toBe(false);
});
});
+2 -5
View File
@@ -1,11 +1,8 @@
import z from "zod";
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
import { createResumeDataJsonSchema } from "@reactive-resume/schema/resume/json-schema";
import { appVersion } from "../app-version";
export function handleSchemaJson() {
const resumeDataJSONSchema = z.toJSONSchema(resumeDataSchema);
return Response.json(resumeDataJSONSchema, {
return Response.json(createResumeDataJsonSchema(), {
status: 200,
headers: {
"Content-Type": "application/schema+json; charset=utf-8",
+71 -1
View File
@@ -1,6 +1,11 @@
import fs from "node:fs/promises";
import { beforeEach, describe, expect, it, vi } from "vitest";
const mocks = vi.hoisted(() => ({
env: { APP_URL: "https://rxresu.me" },
serveStatic: vi.fn((_options?: unknown) => vi.fn()),
}));
vi.mock("node:fs", () => ({
existsSync: vi.fn(() => true),
}));
@@ -12,10 +17,25 @@ vi.mock("node:fs/promises", () => ({
}));
vi.mock("@hono/node-server/serve-static", () => ({
serveStatic: vi.fn(() => vi.fn()),
serveStatic: mocks.serveStatic,
}));
vi.mock("@reactive-resume/env/server", () => ({
env: mocks.env,
}));
type StaticOptions = {
onFound?: (
path: string,
context: {
req: { path: string };
header: (name: string, value: string) => void;
},
) => void | Promise<void>;
};
const { handleWebApp } = await import("./web");
const staticOptions = mocks.serveStatic.mock.calls[0]?.[0] as StaticOptions | undefined;
describe("web app fallback classification", () => {
beforeEach(() => {
@@ -32,6 +52,56 @@ describe("web app fallback classification", () => {
expect(await response.text()).toBe("<html>app</html>");
});
it("injects canonical metadata and structured data into tracking-parameter root requests only", async () => {
vi.mocked(fs.readFile).mockResolvedValue(`
<!doctype html>
<html>
<head>
<title>Reactive Resume — A free and open-source resume builder</title>
<meta
name="description"
content="Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
>
</head>
<body><div id="app"></div></body>
</html>
`);
const response = await handleWebApp(new Request("http://server.internal/?utm_source=search"));
const html = await response.text();
expect(html).toContain('<link rel="canonical" href="https://rxresu.me/">');
expect(html).toContain('<link rel="preload" href="/videos/timelapse-v1.webp" as="image" fetchpriority="high">');
expect(html).toContain('<meta property="og:url" content="https://rxresu.me/">');
expect(html).toContain('<meta property="og:image" content="https://rxresu.me/opengraph/banner.jpg">');
expect(html).toContain('id="reactive-resume-structured-data"');
expect(html).toContain('"@type":["SoftwareApplication","WebApplication"]');
expect(html).toContain('"url":"https://rxresu.me/"');
expect(html).not.toContain("utm_source");
const dashboardResponse = await handleWebApp(new Request("https://example.com/dashboard"));
expect(await dashboardResponse.text()).not.toContain('rel="canonical"');
});
it("caches versioned homepage media immutably", async () => {
const headers = new Headers();
await staticOptions?.onFound?.("", {
req: { path: "/videos/timelapse-v1.mp4" },
header: (name, value) => headers.set(name, value),
});
expect(headers.get("Cache-Control")).toBe("public, max-age=31536000, immutable");
const unversionedHeaders = new Headers();
await staticOptions?.onFound?.("", {
req: { path: "/videos/timelapse.mp4" },
header: (name, value) => unversionedHeaders.set(name, value),
});
expect(unversionedHeaders.get("Cache-Control")).toBeNull();
});
it.each(["/", "/alice/resume"])("sets framing and report-only CSP security headers on %s", async (pathname) => {
const response = await handleWebApp(new Request(`https://example.com${pathname}`));
+114 -3
View File
@@ -2,6 +2,7 @@ import { existsSync } from "node:fs";
import fs from "node:fs/promises";
import { fileURLToPath } from "node:url";
import { serveStatic } from "@hono/node-server/serve-static";
import { env } from "@reactive-resume/env/server";
function resolveWebDistPath() {
const candidates = [
@@ -31,8 +32,6 @@ const reservedPublicResumeSegments = new Set([
"templates",
]);
export const serveWebDistStatic = serveStatic({ root: staticRoot });
function isAssetPath(pathname: string): boolean {
return pathname.split("/").pop()?.includes(".") ?? false;
}
@@ -60,6 +59,115 @@ const BASE_SECURITY_HEADERS = {
"default-src 'self'; img-src 'self' data: blob:; font-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; object-src 'none'",
};
const ROOT_TITLE = "Reactive Resume — A free and open-source resume builder";
const ROOT_DESCRIPTION =
"Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.";
const ROOT_POSTER_PATH = "/videos/timelapse-v1.webp";
const ROOT_FAQ_ITEMS = [
{
question: "Is Reactive Resume really free?",
answer:
"Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free.",
},
{
question: "How is my data protected?",
answer:
"Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data.",
},
{
question: "Can I export my resume to PDF?",
answer:
"Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly.",
},
{
question: "Is Reactive Resume available in multiple languages?",
answer:
"Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can contribute to the translations on Crowdin.",
},
{
question: "What makes Reactive Resume different from other resume builders?",
answer:
"Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall.",
},
{
question: "How do I share my resume?",
answer:
"You can share your resume via a unique public URL, protect it with a password, or download it as a PDF to share directly. The choice is yours!",
},
] as const;
function createRootSeoMarkup(canonicalUrl: string) {
const origin = new URL(canonicalUrl).origin;
const imageUrl = `${origin}/opengraph/banner.jpg`;
const structuredData = {
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
name: "Reactive Resume",
url: canonicalUrl,
},
{
"@type": ["SoftwareApplication", "WebApplication"],
name: "Reactive Resume",
url: canonicalUrl,
description: ROOT_DESCRIPTION,
applicationCategory: "BusinessApplication",
operatingSystem: "Web",
isAccessibleForFree: true,
offers: {
"@type": "Offer",
price: "0",
priceCurrency: "USD",
},
codeRepository: "https://github.com/amruthpillai/reactive-resume",
},
{
"@type": "Project",
name: "Reactive Resume",
url: canonicalUrl,
sameAs: ["https://github.com/amruthpillai/reactive-resume"],
},
{
"@type": "FAQPage",
mainEntity: ROOT_FAQ_ITEMS.map((item) => ({
"@type": "Question",
name: item.question,
acceptedAnswer: {
"@type": "Answer",
text: item.answer,
},
})),
},
],
};
return `
<link rel="canonical" href="${canonicalUrl}">
<link rel="preload" href="${ROOT_POSTER_PATH}" as="image" fetchpriority="high">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Reactive Resume">
<meta property="og:title" content="${ROOT_TITLE}">
<meta property="og:description" content="${ROOT_DESCRIPTION}">
<meta property="og:url" content="${canonicalUrl}">
<meta property="og:image" content="${imageUrl}">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="${ROOT_TITLE}">
<meta name="twitter:description" content="${ROOT_DESCRIPTION}">
<meta name="twitter:image" content="${imageUrl}">
<script id="reactive-resume-structured-data" type="application/ld+json">${JSON.stringify(structuredData)}</script>
`;
}
export const serveWebDistStatic = serveStatic({
root: staticRoot,
onFound: (_path, context) => {
if (/^\/videos\/.*-v\d+\.(?:mp4|webp)$/.test(context.req.path)) {
context.header("Cache-Control", "public, max-age=31536000, immutable");
}
},
});
function getFallbackResponseHeaders(pathname: string) {
if (pathname === "/") return { "Content-Type": "text/html; charset=UTF-8", ...BASE_SECURITY_HEADERS };
if (isNoindexShellPath(pathname) || isPublicResumePath(pathname)) {
@@ -98,5 +206,8 @@ export async function handleWebApp(request: Request) {
if (isHead) return new Response(null, { status: 200, headers });
const html = await fs.readFile(indexHtmlPath, "utf-8");
return new Response(html, { headers });
const canonicalUrl = new URL("/", env.APP_URL).toString();
const responseHtml = pathname === "/" ? html.replace("</head>", `${createRootSeoMarkup(canonicalUrl)}</head>`) : html;
return new Response(responseHtml, { headers });
}
@@ -0,0 +1,78 @@
import type {
PdfPreflightPageLimits,
PdfPreflightResult,
RenderPreflightPdfResult,
} from "@reactive-resume/pdf/preflight";
import { getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
type StylesheetPreflightInspectionLimits = PdfPreflightPageLimits & {
maxPages: number;
maxBytes: number;
};
type PdfLoadingTask = {
promise: PromiseLike<{ numPages: number }>;
destroy(): Promise<void>;
};
type LoadPdf = (options: { data: Uint8Array }) => PdfLoadingTask;
export async function inspectPreflightPdf(
rendered: Extract<RenderPreflightPdfResult, { ok: true }>,
limits: StylesheetPreflightInspectionLimits,
loadPdf: LoadPdf = getDocument,
): Promise<PdfPreflightResult> {
if (rendered.bytes.byteLength > limits.maxBytes) {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_BYTE_LIMIT",
message: "The rendered PDF exceeds the preflight byte limit.",
diagnostics: rendered.diagnostics,
};
}
const byteCount = rendered.bytes.byteLength;
let loadingTask: PdfLoadingTask;
try {
loadingTask = loadPdf({ data: rendered.bytes });
} catch {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: rendered.diagnostics,
};
}
try {
let document: { numPages: number };
try {
document = await loadingTask.promise;
} catch {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: rendered.diagnostics,
};
}
if (document.numPages > limits.maxPages) {
return {
ok: false,
code: "STYLESHEET_PREFLIGHT_PAGE_LIMIT",
message: "The rendered PDF exceeds the preflight page limit.",
diagnostics: rendered.diagnostics,
};
}
return {
ok: true,
pageCount: document.numPages,
byteCount,
diagnostics: rendered.diagnostics,
};
} finally {
await loadingTask.destroy().catch(() => undefined);
}
}
@@ -0,0 +1,58 @@
import { describe, expect, it, vi } from "vitest";
import { inspectPreflightPdf } from "./stylesheet-preflight-inspection";
const warning = {
code: "EXTREME_VALUE",
severity: "warning",
message: "The authored value is unusually large.",
range: {
start: { line: 1, column: 1, offset: 0 },
end: { line: 1, column: 10, offset: 9 },
},
} as const;
const rendered = {
ok: true as const,
bytes: new TextEncoder().encode("%PDF-1.7"),
diagnostics: [warning],
};
const limits = {
maxPages: 20,
maxBytes: 10_000_000,
maxPageWidthPt: 2_000,
maxPageHeightPt: 20_000,
maxPageAreaPt2: 20_000_000,
};
describe("stylesheet preflight PDF inspection", () => {
it("preserves compiler warnings and hides parser exceptions", async () => {
const destroy = vi.fn(async () => undefined);
const result = await inspectPreflightPdf(rendered, limits, () => ({
promise: Promise.reject(new Error("sensitive parser details")),
destroy,
}));
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: [warning],
});
expect(destroy).toHaveBeenCalledOnce();
});
it("preserves compiler warnings when PDF.js fails before returning a loading task", async () => {
const result = await inspectPreflightPdf(rendered, limits, () => {
throw new Error("sensitive parser setup details");
});
expect(result).toEqual({
ok: false,
code: "STYLESHEET_PREFLIGHT_PARSE_FAILED",
message: "PDF inspection failed.",
diagnostics: [warning],
});
});
});
@@ -0,0 +1,90 @@
import type {
PdfPreflightPageLimits,
PdfPreflightResult,
StylesheetPreflightInput,
} from "@reactive-resume/pdf/preflight";
import { parentPort } from "node:worker_threads";
import * as React from "react";
import { inspectPreflightPdf } from "./stylesheet-preflight-inspection";
(globalThis as typeof globalThis & { React: typeof React }).React = React;
type StylesheetPreflightWorkerLimits = PdfPreflightPageLimits & {
maxPages: number;
maxBytes: number;
};
// The worker is long-lived and reused across requests: the heavy PDF runtime is
// loaded once at startup and each preflight arrives as a message (input can no
// longer come from `workerData`, which is fixed at construction time).
type StylesheetPreflightWorkerRequest = {
type: "preflight";
requestId: number;
input: StylesheetPreflightInput;
limits: StylesheetPreflightWorkerLimits;
};
type SerializedPreflightCause = {
name: string;
message: string;
issues: readonly unknown[];
};
const sanitizeWorkerCause = (cause: unknown): string => {
if (!(cause instanceof Error)) return "The PDF preflight worker failed.";
const detail = cause.message.replace(/\s+/g, " ").trim().slice(0, 200);
if (!detail) return "The PDF preflight worker failed.";
return `The PDF preflight worker failed. (${cause.name}: ${detail})`;
};
const serializeZodCause = (cause: unknown): SerializedPreflightCause | undefined => {
if (!(cause instanceof Error) || cause.name !== "ZodError" || !("issues" in cause) || !Array.isArray(cause.issues)) {
return;
}
return { name: cause.name, message: cause.message, issues: cause.issues };
};
// Load the heavy PDF runtime once. A rejection here (missing/broken dependency in
// a pruned production install) is reported explicitly instead of becoming an
// unhandled rejection that silently kills the worker and surfaces as an opaque
// runner-side failure.
const initialization = import("@reactive-resume/pdf/preflight");
void initialization.then(
() => parentPort?.postMessage({ type: "ready" }),
(cause: unknown) => {
console.error("[stylesheet-preflight] worker runtime failed to load", cause);
parentPort?.postMessage({ type: "load_error", message: sanitizeWorkerCause(cause) });
},
);
const handle = async (request: StylesheetPreflightWorkerRequest): Promise<void> => {
try {
const { renderPreflightPdf } = await initialization;
const rendered = await renderPreflightPdf(request.input, request.limits);
const result: PdfPreflightResult = rendered.ok ? await inspectPreflightPdf(rendered, request.limits) : rendered;
parentPort?.postMessage({ type: "result", requestId: request.requestId, result });
} catch (cause) {
const serializedCause = serializeZodCause(cause);
if (serializedCause) {
parentPort?.postMessage({ type: "preflight_error", requestId: request.requestId, cause: serializedCause });
return;
}
console.error("[stylesheet-preflight]", cause);
parentPort?.postMessage({
type: "result",
requestId: request.requestId,
result: {
ok: false,
code: "STYLESHEET_PREFLIGHT_WORKER_FAILED",
message: sanitizeWorkerCause(cause),
diagnostics: [],
},
});
}
};
parentPort?.on("message", (message: StylesheetPreflightWorkerRequest) => {
if (message.type !== "preflight") return;
void handle(message);
});
+7 -1
View File
@@ -33,7 +33,10 @@ const promptAssetsPlugin: TsdownPlugin = {
};
export default defineConfig({
entry: { index: "src/index.ts" },
entry: {
index: "src/index.ts",
"stylesheet-preflight-worker": "src/workers/stylesheet-preflight.ts",
},
format: "esm",
platform: "node",
target: "node24",
@@ -42,6 +45,9 @@ export default defineConfig({
shims: true,
dts: false,
define: { __APP_VERSION__: JSON.stringify(rootPackageJson.version ?? "0.0.0") },
// The flagged dynamic imports are deliberate: they defer evaluation of env-dependent
// modules so tests can run without env vars, not to split chunks.
suppressWarnings: [/dynamic import will not move module into another chunk/],
outExtensions: () => ({ js: ".mjs" }),
deps: {
alwaysBundle: [/^@reactive-resume\//],
+6 -1
View File
@@ -1,4 +1,9 @@
{
"extends": ["//"],
"tags": ["app:server", "runtime:server", "role:adapter"]
"tags": ["app:server", "runtime:server", "role:adapter"],
"tasks": {
"test:ci": {
"cache": false
}
}
}
+2 -2
View File
@@ -16,7 +16,7 @@
<link rel="apple-touch-icon" href="/apple-touch-icon-180x180.png" type="image/png" sizes="180x180 any" />
<link rel="manifest" href="/manifest.webmanifest" crossorigin="use-credentials" />
<title>Reactive Resume</title>
<title>Reactive Resume — A free and open-source resume builder</title>
</head>
<body>
<!-- Keep #app empty: main.tsx only mounts React when rootElement has no children. -->
@@ -56,6 +56,6 @@
clip: rect(0 0 0 0);
}
</style>
<script type="module" src="/src/main.tsx"></script>
<script type="module" data-cfasync="false" src="/src/main.tsx"></script>
</body>
</html>
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: af\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Rekeningkieslys"
msgid "Actions"
msgstr "Aksies"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktiveer Semantiese CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Werklike grootte (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Aansoeke per week gestuur (laaste 8 weke)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Aansoek gedoen"
@@ -489,9 +494,9 @@ msgstr "Aansoek gedoen"
msgid "Applied on"
msgstr "Toegepas op"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Toegepaste Reëls"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Toegepas met waarskuwings"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Gaan jou e-pos na vir 'n skakel om jou wagwoord te herstel."
msgid "Check your email for a link to verify your account."
msgstr "Gaan jou e-pos na vir 'n skakel om jou rekening te verifieer."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontroleer"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontroleer konsep"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinees (Vereenvoudig)"
@@ -966,6 +979,10 @@ msgstr "Gesprek gekopieer."
msgid "Conversation JSON copied."
msgstr "Gesprek JSON gekopieer."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Omgeskakelde stylbladkonsep"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Na knipbord gekopieer."
@@ -989,6 +1006,15 @@ msgstr "Kopieer rugsteunkodes"
msgid "Copy JSON"
msgstr "Kopieer JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopieer geheim"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopieer stylblad"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopieer hierdie geheime sleutel en gebruik dit in jou toepassings om toegang tot jou data te kry."
@@ -1545,6 +1571,11 @@ msgstr "Wysig {chip}"
msgid "Edit application"
msgstr "Wysig toepassing"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Wysig kleur {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Voer jou wagwoord in om die opstel van twee-faktor-magtiging te bevestig
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Voer jou wagwoord in om twee-faktor-magtiging te deaktiveer. Jou rekening sal minder veilig wees sonder 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fout"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Elke bydrae, groot of klein, maak 'n reuseverskil vir die projek.<0/>Dankie vir jou ondersteuning!"
@@ -1682,6 +1717,10 @@ msgstr "Elke bydrae, groot of klein, maak 'n reuseverskil vir die projek.<0/>Da
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alles wat jy nodig het om professionele CV's te skep, te pasmaak en te deel. Gebou met privaatheid in gedagte, aangedryf deur oopbron, en heeltemal gratis vir altyd."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Verlaat fokusmodus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Verlaat volskerm"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formaat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formateer stylblad"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Lig"
msgid "Light theme"
msgstr "Lig tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Lyn {0}, kolom {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Reëlhoogte"
@@ -2898,10 +2947,6 @@ msgstr "Geen gestoorde weergawes nog nie."
msgid "No source data yet."
msgstr "Geen brondata nog nie."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Geen stylreëls nog nie."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Geen getoetste verskaffer nie"
@@ -2918,6 +2963,10 @@ msgstr "Noors"
msgid "Not connected"
msgstr "Nie gekoppel nie"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nie seker wat om te skryf nie?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Maak KI-assistent oop"
msgid "Open Email Client"
msgstr "Maak e-posklient oop"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Maak fokusmodus oop"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Maak oop in bouer"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-versoenbaar"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Druk <0>Enter</0> om oop te maak"
msgid "Preview"
msgstr "Voorskou"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Voorskou en uitvoer gebruik die laaste geldige weergawe."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primêre kleur"
@@ -3374,10 +3432,22 @@ msgstr "Reaktiewe CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiewe CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Lees die gids oor die toepassing van persoonlike style."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lees…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gereed om te aktiveer"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gereed om te aktiveer met waarskuwings"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Ontvanger"
@@ -3394,6 +3464,10 @@ msgstr "Reghoek (volle breedte)"
msgid "Redo"
msgstr "Herdoen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Herhaal stylbladwysiging"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Herstel"
msgid "Reset Password"
msgstr "Herstel wagwoord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Stel styl terug"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Stel terug na toegepaste stylblad"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Roemeens"
msgid "Rotation"
msgstr "Rotasie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "reël"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "reëls"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "gekies"
msgid "Self-Host with Docker"
msgstr "Self-aanbieding met Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantiese CSS-stylblad"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Stuur boodskap"
@@ -4152,6 +4222,14 @@ msgstr "Deurstreep"
msgid "Strong fit"
msgstr "Sterk pasvorm"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylbladredigeerder"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylblad bevat foute"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Die bladsy waarna jy soek, is dalk geskuif of bestaan nie meer nie."
msgid "The password you entered is incorrect"
msgstr "Die wagwoord wat jy ingevoer het, is verkeerd"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Die CV-voorskou kon nie opgedateer word nie. Die laaste geldige voorskou word steeds gewys."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Die CV waarna jy probeer toegang kry, word met 'n wagwoord beskerm"
@@ -4639,6 +4721,10 @@ msgstr "Onderstreep"
msgid "Undo"
msgstr "Ongedaan maak"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Maak stylbladwysiging ongedaan"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Onbeperkte CV's"
@@ -5013,6 +5099,10 @@ msgstr "Jou data word veilig gestoor en nooit met derde partye gedeel nie. Jy ka
msgid "Your latest changes could not be saved."
msgstr "Jou jongste veranderinge kon nie gestoor word nie."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Jou ouer style bly aktief totdat jy hierdie Semantiese CSS-konsep eksplisiet aktiveer."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Jou wagwoord is suksesvol herstel. Jy kan nou met jou nuwe wagwoord aanmeld."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: am\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -163,6 +163,10 @@ msgstr "የመለያ ምናሌ"
msgid "Actions"
msgstr "እርምጃዎች"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "የሴማንቲክ CSS ን ያግብሩ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ትክክለኛው መጠን (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "በሳምንት የተላኩ ማመልከቻዎች (ያለፉት 8 ሳምንታት)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ተመልክቷል"
@@ -489,9 +494,9 @@ msgstr "ተመልክቷል"
msgid "Applied on"
msgstr "የተተገበረው በ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "የተተገበሩ ህጎች"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ከማስጠንቀቂያዎች ጋር ተተግብሯል"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "የይለፍ ቃልዎን ለመደገፍ አገናኝ በኢሜልዎ
msgid "Check your email for a link to verify your account."
msgstr "መለያዎን ለማረጋገጥ አገናኝ በኢሜልዎ ውስጥ ይፈልጉ።"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "ፍተሻ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ረቂቅን በመፈተሽ ላይ"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ቻይንኛ (ቀለል ያለ)"
@@ -966,6 +979,10 @@ msgstr "ውይይት ተቀድቷል።"
msgid "Conversation JSON copied."
msgstr "ውይይት JSON ተገልብጧል።"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "የተቀየረ የቅጥ ሉህ ረቂቅ"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ወደ ቅንጥብ ሰሌዳ ተገልብጧል።"
@@ -989,6 +1006,15 @@ msgstr "የመከላከያ ኮዶችን ቅጂ አድርግ"
msgid "Copy JSON"
msgstr "JSONን ይቅዱ"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "ሚስጥርን ይቅዱ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "የቅጥ ሉህን ቅዳ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ይህንን ሚስጥራዊ ቁልፍ ቅጂ አድርጉ እና ውስጥ በመተግበሪያዎቻችሁ መረጃዎን ለመድረስ ይጠቀሙበት።"
@@ -1545,6 +1571,11 @@ msgstr "{chip} አርትዕ"
msgid "Edit application"
msgstr "መተግበሪያን ያርትዑ"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ቀለምን አርትዕ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "ሁለት-ደረጃ ማረጋገጫን ስትቆጣጠሩ የሚሆን
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ሁለት-ደረጃ ማረጋገጫን ለማቦዘን የይለፍ ቃልዎን ያስገቡ። 2FA ባቦዘነ ጊዜ መለያዎ ያነሰ ደህንነት ይኖረዋል።"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ስህተት"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "እያንዳንዱ መዋጮ፣ ትልቅ ወይም ትንሽ፣ በፕሮጀክቱ ላይ ትልቅ ልዩነት ያመጣል።<0/>ስለ ድጋፍዎ እናመሰግናለን!"
@@ -1682,6 +1717,10 @@ msgstr "እያንዳንዱ መዋጮ፣ ትልቅ ወይም ትንሽ፣ በፕ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ሙያዊ የየታሪክ ማቅረቢያዎችን ለመፍጠር፣ ለማበጀት እና ለመካፈል ያስፈልግዎትን ሁሉ ይዟል። የግላዊነትን ጥበቃ በማስቡ፣ በክፍት ምንጭ የሚነቃቃ፣ ፍጹም ነፃ የሆነ ነው።"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ከትኩረት ሁነታ ውጣ"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ሙሉ ስክሪን ውጣ"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ቅርጸት"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "የቅርጸት ቅጥ ሉህ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ነፃ"
@@ -2584,6 +2627,12 @@ msgstr "ብርሃን"
msgid "Light theme"
msgstr "ብርሃን ገጽታ"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "መስመር {0}፣ አምድ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "የመስመር ከፍታ"
@@ -2898,10 +2947,6 @@ msgstr "እስካሁን ምንም የተቀመጡ ስሪቶች የሉም።"
msgid "No source data yet."
msgstr "እስካሁን ምንም የምንጭ ውሂብ የለም።"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "እስካሁን የቅጥ ደንቦች የሉም።"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "የተፈተነ አቅራቢ የለም"
@@ -2918,6 +2963,10 @@ msgstr "ኖርዌጂያንኛ"
msgid "Not connected"
msgstr "አልተገናኘም"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "ምን መጻፍ እንዳለብህ እርግጠኛ አይደለህም?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "ክፍት የ AI ረዳት"
msgid "Open Email Client"
msgstr "የኢሜል ደንበኛን ክፈት"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "የትኩረት ሁነታን ክፈት"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "በገንቢ ውስጥ ክፈት"
@@ -2992,6 +3045,7 @@ msgstr "ከ OpenAI ጋር ተኳሃኝ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "ለመክፈት <0>Enter</0>ን ይጫኑ"
msgid "Preview"
msgstr "ቅድመ እይታ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ቅድመ እይታ እና ወደ ውጭ መላክ የመጨረሻውን ትክክለኛ ስሪት ይጠቀሙ።"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ዋና ቀለም"
@@ -3374,10 +3432,22 @@ msgstr "ምላሽ ሰጪ የስራ ልምድ v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "የአጠቃቀም ብጁ ቅጦች መመሪያን ያንብቡ።"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "ንባብ…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "ለማግበር ዝግጁ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "ከማስጠንቀቂያዎች ጋር ለማግበር ዝግጁ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ተቀባይ"
@@ -3394,6 +3464,10 @@ msgstr "አክታ (ሙሉ ወፍር)"
msgid "Redo"
msgstr "ድገም"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "የቅጥ ሉህ አርትዖትን ድገም"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "ዳግም ለመጀመር"
msgid "Reset Password"
msgstr "የይለፍ ቃል ዳግም አስጀምር"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "ቅጥን ዳግም አስጀምር"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "ወደ ተተገበረ የቅጥ ሉህ ዳግም አስጀምር"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "ሮማኒያንኛ"
msgid "Rotation"
msgstr "ማሽከርከር"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "ደንብ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "ደንቦች"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "የውጤት ካርድ፣ ጥንካሬዎች እና ቅድሚያ የተሰጣቸው አስተያየቶችን ለማግኘት የመጀመሪያ ትንተናዎን ያከናውኑ።"
@@ -3791,6 +3857,10 @@ msgstr "ተመርጧል"
msgid "Self-Host with Docker"
msgstr "በ Docker ራስህን አስተናግድ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "የትርጓሜ CSS የቅጥ ሉህ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "መልእክት ላክ"
@@ -4152,6 +4222,14 @@ msgstr "መሰረዣ"
msgid "Strong fit"
msgstr "ጠንካራ መገጣጠም"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "የቅጥ ሉህ አርታኢ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "የቅጥ ሉህ ስህተቶች አሉት"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ሰብሬዲት"
@@ -4308,6 +4386,10 @@ msgstr "የሚፈልጉት ገጽ ተዛውሮ ወይም ከአሁን በኋላ
msgid "The password you entered is incorrect"
msgstr "ያስገቡት የይለፍ ቃል ትክክል አይደለም"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "የሪሴምዩ ቅድመ እይታ ሊዘመን አልቻለም። የመጨረሻው ትክክለኛ ቅድመ እይታ አሁንም ይታያል።"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "መድረስ የሚሞክሩት የየታሪክ ማቅረቢያ በይለፍ ቃል የተጠበቀ ነው"
@@ -4639,6 +4721,10 @@ msgstr "ነጥብ ተስማሚ"
msgid "Undo"
msgstr "ቀልብስ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "የቅጥ ሉህ አርትዖትን ቀልብስ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ያለ ገደብ የየታሪክ ማቅረቢያዎች"
@@ -5013,6 +5099,10 @@ msgstr "መረጃዎ በደህና ይከማቻል እና ከሶስተኛ ወገ
msgid "Your latest changes could not be saved."
msgstr "የቅርብ ጊዜ ለውጦችዎ ሊቀመጡ አልቻሉም።"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "የቆዩ ቅጦችዎ ይህንን የሴማንቲክ CSS ረቂቅ በግልጽ እስኪያነቁ ድረስ ንቁ ሆነው ይቆያሉ።"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "የይለፍ ቃልዎ በተሳካ ሁኔታ ዳግም ተጀምሯል። አሁን በአዲሱ የይለፍ ቃል መግባት ትችላላችሁ።"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
@@ -163,6 +163,10 @@ msgstr "قائمة الحساب"
msgid "Actions"
msgstr "الإجراءات"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "تفعيل CSS الدلالي"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "الحجم الفعلي (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "الطلبات المرسلة أسبوعيًا (آخر 8 أسابيع)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "تم التقديم"
@@ -489,9 +494,9 @@ msgstr "تم التقديم"
msgid "Applied on"
msgstr "تم التقديم في"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "القواعد المطبقة"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "تم استخدامه مع التحذيرات"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "تحقق من بريدك الإلكتروني للحصول على راب
msgid "Check your email for a link to verify your account."
msgstr "تحقق من بريدك الإلكتروني للحصول على رابط للتحقق من حسابك."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "التحقق"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "مراجعة المسودة"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "الصينية (المبسطة)"
@@ -966,6 +979,10 @@ msgstr "تم نسخ المحادثة."
msgid "Conversation JSON copied."
msgstr "تم نسخ بيانات المحادثة بصيغة JSON."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "مسودة ورقة الأنماط المحولة"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "تم نسخها إلى الحافظة."
@@ -989,6 +1006,15 @@ msgstr "نسخ رموز النسخ الاحتياطي"
msgid "Copy JSON"
msgstr "نسخ JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "حقوق الطبع والنشر"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "انسخ ورقة الأنماط"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "انسخ مفتاحك السري هذا واستخدمه في تطبيقاتك للوصول إلى بياناتك."
@@ -1545,6 +1571,11 @@ msgstr "تحرير {chip}"
msgid "Edit application"
msgstr "تعديل الطلب"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "تعديل اللون {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "أدخِل كلمة المرور الخاصة بك لتأكيد إعدا
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "أدخِل كلمة المرور الخاصة بك لتعطيل المصادقة الثنائية. سيكون حسابك أقل أمانًا بدون تمكين المصادقة الثنائية (2FA)."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "خطأ"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "كل مساهمة، كبيرة كانت أم صغيرة، تُحدث فارقًا كبيرًا في المشروع.<0/>شكرًا لك على دعمك!"
@@ -1682,6 +1717,10 @@ msgstr "كل مساهمة، كبيرة كانت أم صغيرة، تُحدث ف
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "كل ما تحتاجه لإنشاء سير ذاتية احترافية وتخصيصها ومشاركتها. بُني مع مراعاة الخصوصية، ومدعوم بالمصدر المفتوح، ومجاني تمامًا إلى الأبد."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "الخروج من وضع التركيز"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "الخروج من وضع ملء الشاشة"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "الصيغة"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "نمط التنسيق"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "مجاني"
@@ -2584,6 +2627,12 @@ msgstr "مضيء"
msgid "Light theme"
msgstr "سمة مضيئة"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "السطر {0}، العمود {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ارتفاع السطر"
@@ -2898,10 +2947,6 @@ msgstr "لا توجد نسخ محفوظة حتى الآن."
msgid "No source data yet."
msgstr "لا توجد بيانات مصدرية حتى الآن."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "لا توجد قواعد أسلوبية حتى الآن."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "لم يتم اختبار أي مزود خدمة"
@@ -2918,6 +2963,10 @@ msgstr "النرويجية"
msgid "Not connected"
msgstr "غير متصل"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "لست متأكدًا مما يجب كتابته؟"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "مساعد الذكاء الاصطناعي المفتوح"
msgid "Open Email Client"
msgstr "فتح عميل البريد الإلكتروني"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "وضع التركيز المفتوح"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "افتح في أداة الإنشاء"
@@ -2992,6 +3045,7 @@ msgstr "متوافق مع OpenAI"
msgid "OpenRouter"
msgstr "الموجه المفتوح (OpenRouter)"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "اضغط على <0>Enter</0> لفتح"
msgid "Preview"
msgstr "معاينة"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "استخدم آخر نسخة صالحة للمعاينة والتصدير."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "اللون الأساسي"
@@ -3374,10 +3432,22 @@ msgstr "السيرة الذاتية التفاعلية v<0>{__APP_VERSION__}</0>
msgid "Reactive Resume v4 (JSON)"
msgstr "استئناف تفاعلي الإصدار 4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "اقرأ دليل تطبيق الأنماط المخصصة."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "قراءة…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "جاهز للتفعيل"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "جاهز للتفعيل مع التحذيرات"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "المستلم"
@@ -3394,6 +3464,10 @@ msgstr "مستطيل (عرض كامل)"
msgid "Redo"
msgstr "إعادة العمل"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "إعادة تحرير ورقة الأنماط"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "إعادة تعيين"
msgid "Reset Password"
msgstr "إعادة تعيين كلمة المرور"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "إعادة ضبط النمط"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "إعادة ضبط نمط التنسيق المُطبق"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "الرومانية"
msgid "Rotation"
msgstr "الدوران"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "قاعدة"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "قواعد"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "قم بإجراء تحليلك الأول للحصول على بطاقة الأداء ونقاط القوة والاقتراحات ذات الأولوية."
@@ -3791,6 +3857,10 @@ msgstr "تم الاختيار"
msgid "Self-Host with Docker"
msgstr "الاستضافة الذاتية مع Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "ورقة أنماط CSS الدلالية"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "إرسال الرسائل"
@@ -4152,6 +4222,14 @@ msgstr "شطب"
msgid "Strong fit"
msgstr "ملاءمة قوية"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "محرر أنماط CSS"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "يحتوي ملف الأنماط على أخطاء"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "سبريديت"
@@ -4308,6 +4386,10 @@ msgstr "قد تكون الصفحة التي تبحث عنها قد نُقلت أ
msgid "The password you entered is incorrect"
msgstr "كلمة المرور التي أدخلتها غير صحيحة"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "تعذر تحديث معاينة السيرة الذاتية. لا تزال آخر معاينة صالحة معروضة."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "السيرة الذاتية التي تحاول الوصول إليها محمية بكلمة مرور"
@@ -4639,6 +4721,10 @@ msgstr "تسطير"
msgid "Undo"
msgstr "التراجع"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "التراجع عن تعديل ورقة الأنماط"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "سير ذاتية غير محدودة"
@@ -5013,6 +5099,10 @@ msgstr "تُخزَّن بياناتك بأمان ولا تتم مشاركتها
msgid "Your latest changes could not be saved."
msgstr "لم يتم حفظ آخر التغييرات التي أجريتها."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ستبقى أنماطك القديمة نشطة حتى تقوم بتفعيل مسودة CSS الدلالية هذه بشكل صريح."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "تمت إعادة تعيين كلمة المرور الخاصة بك بنجاح. يمكنك الآن تسجيل الدخول باستخدام كلمة المرور الجديدة."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: az\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Azerbaijani\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Hesab menyusu"
msgid "Actions"
msgstr "Əməliyyatlar"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantik CSS-i aktivləşdirin"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Həqiqi ölçü (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Həftəlik göndərilən müraciətlər (son 8 həftə)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Müraciət edildi"
@@ -489,9 +494,9 @@ msgstr "Müraciət edildi"
msgid "Applied on"
msgstr "Tətbiq edildiyi tarix"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Tətbiq olunan Qaydalar"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Xəbərdarlıqlarla tətbiq olunur"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Parolu sıfırlamaq üçün link üçün e‑poçtunuzu yoxlayın."
msgid "Check your email for a link to verify your account."
msgstr "Hesabınızı təsdiqləmək üçün link üçün e‑poçtunuzu yoxlayın."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Yoxlama"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Qaralama yoxlanılır"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Çin (Sadələşdirilmiş)"
@@ -966,6 +979,10 @@ msgstr "Söhbət kopyalandı."
msgid "Conversation JSON copied."
msgstr "Söhbət JSON formatında kopyalandı."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Çevirilmiş stil cədvəli qaralaması"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Panoya kopyalandı."
@@ -989,6 +1006,15 @@ msgstr "Ehtiyat Kodlarını Kopyala"
msgid "Copy JSON"
msgstr "JSON-u kopyalayın"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Sirri kopyalayın"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stil cədvəlini kopyalayın"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Bu gizli açarı kopyalayın və verilənlərinizə daxil olmaq üçün tətbiqlərinizdə istifadə edin."
@@ -1545,6 +1571,11 @@ msgstr "Düzəliş et {chip}"
msgid "Edit application"
msgstr "Tətbiqi redaktə edin"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rəngi redaktə edin {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "İki mərhələli autentifikasiyanı qurmağı təsdiqləmək üçün pa
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "İki mərhələli autentifikasiyanı deaktiv etmək üçün parolunuzu daxil edin. 2FA deaktiv edildikdə, hesabınız daha az təhlükəsiz olacaq."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Xəta"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hər bir töhfə, böyük və ya kiçik olmasından asılı olmayaraq, layihə üçün böyük fərq yaradır.<0/>Dəstəyiniz üçün təşəkkür edirik!"
@@ -1682,6 +1717,10 @@ msgstr "Hər bir töhfə, böyük və ya kiçik olmasından asılı olmayaraq, l
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Peşəkar özgeçmişlər yaratmaq, fərdiləşdirmək və paylaşmaq üçün lazım olan hər şey. Məxfilik nəzərə alınaraq qurulub, açıq mənbə ilə işləyir və tamamilə pulsuzdur."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Fokus rejimindən çıxın"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Tam ekrandan çıx"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stil cədvəlini formatlayın"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Pulsuz"
@@ -2584,6 +2627,12 @@ msgstr "Açıq"
msgid "Light theme"
msgstr "Açıq mövzu"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Sətir {0}, sütun {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Sətir Hündürlüyü"
@@ -2898,10 +2947,6 @@ msgstr "Hələ ki, yadda saxlanılan versiya yoxdur."
msgid "No source data yet."
msgstr "Hələlik mənbə məlumatları yoxdur."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Hələ ki, stil qaydaları yoxdur."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Test edilmiş provayder yoxdur"
@@ -2918,6 +2963,10 @@ msgstr "Norveç"
msgid "Not connected"
msgstr "Qoşulmamışdır"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nə yazacağınızdan əmin deyilsiniz?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Açıq süni intellekt köməkçisi"
msgid "Open Email Client"
msgstr "E‑poçt müştərisini aç"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Fokus rejimini açın"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Qurucuda açın"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI ilə uyğun"
msgid "OpenRouter"
msgstr "AçıqRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Açmaq üçün <0>Enter düyməsini</0> basın"
msgid "Preview"
msgstr "Önizləmə"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Önizləmə və ixrac üçün son etibarlı versiyadan istifadə edin."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Əsas Rəng"
@@ -3374,10 +3432,22 @@ msgstr "Reaktiv CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiv Rezume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Xüsusi Stillərin Tətbiqi təlimatını oxuyun."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "… oxunur"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Aktivləşdirməyə hazırdır"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Xəbərdarlıqlarla aktivləşdirməyə hazırdır"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Alıcı"
@@ -3394,6 +3464,10 @@ msgstr "Düzbucaqlı (Tam En)"
msgid "Redo"
msgstr "Təkrar et"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stil cədvəli redaktəsini yenidən edin"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Sıfırla"
msgid "Reset Password"
msgstr "Parolu Sıfırla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Stilini Sıfırla"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Tətbiq olunmuş stil cədvəlinə sıfırlayın"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumın"
msgid "Rotation"
msgstr "Döndürmə"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "qayda"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "qaydalar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "seçilmiş"
msgid "Self-Host with Docker"
msgstr "Docker ilə Özün‑host et"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantik CSS stil cədvəli"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Mesaj göndərin"
@@ -4152,6 +4222,14 @@ msgstr "Üstündən xətt çək"
msgid "Strong fit"
msgstr "Güclü uyğunluq"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stil cədvəli redaktoru"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stil cədvəlində səhvlər var"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Axtardığınız səhifə köçürülmüş və ya artıq mövcud olmamı
msgid "The password you entered is incorrect"
msgstr "Daxil etdiyiniz parol yanlışdır"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "CV önizləməsi yenilənə bilmədi. Son etibarlı önizləmə hələ də göstərilir."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Daxil olmağa çalışdığınız özgeçmiş parol ilə qorunur"
@@ -4639,6 +4721,10 @@ msgstr "Altını Xətlə"
msgid "Undo"
msgstr "Geri al"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stil cədvəli düzəlişini geri qaytarın"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Limitsiz Özgeçmişlər"
@@ -5013,6 +5099,10 @@ msgstr "Məlumatlarınız təhlükəsiz şəkildə saxlanılır və heç vaxt ü
msgid "Your latest changes could not be saved."
msgstr "Son dəyişiklikləriniz yadda saxlanıla bilmədi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Bu Semantik CSS layihəsini açıq şəkildə aktivləşdirənə qədər köhnə üslublarınız aktiv qalır."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Parolunuz uğurla sıfırlandı. İndi yeni parolunuzla daxil ola bilərsiniz."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Меню на акаунта"
msgid "Actions"
msgstr "Действия"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активиране на семантичен CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Действителен размер (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Изпратени кандидатури на седмица (последните 8 седмици)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Кандидатствано"
@@ -489,9 +494,9 @@ msgstr "Кандидатствано"
msgid "Applied on"
msgstr "Приложено на"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Приложени правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Прилага се с предупреждения"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Проверете имейла си за връзка за нулира
msgid "Check your email for a link to verify your account."
msgstr "Проверете имейла си за връзка за потвърждение на профила."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Проверка"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Проверка на черновата"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Китайски (опростен)"
@@ -966,6 +979,10 @@ msgstr "Разговорът е копиран."
msgid "Conversation JSON copied."
msgstr "JSON файлът на разговора е копиран."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Конвертирана чернова на стилов лист"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Копирано в клипборда."
@@ -989,6 +1006,15 @@ msgstr "Копиране на резервни кодове"
msgid "Copy JSON"
msgstr "Копиране на JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Копиране на тайна"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Копиране на стилов лист"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Копирайте този таен ключ и го използвайте във вашите приложения, за да получите достъп до данните си."
@@ -1545,6 +1571,11 @@ msgstr "Редактиране на {chip}"
msgid "Edit application"
msgstr "Редактиране на приложението"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Редактиране на цвят {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Въведете паролата си, за да потвърдите
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Въведете паролата си, за да изключите двуфакторното удостоверяване. Вашият профил ще бъде по-малко защитен без активирано 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Грешка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Всеки принос, голям или малък, прави огромна разлика за проекта.<0/>Благодарим ви за подкрепата!"
@@ -1682,6 +1717,10 @@ msgstr "Всеки принос, голям или малък, прави огр
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Всичко, от което се нуждаете, за да създавате, персонализирате и споделяте професионални автобиографии. Създадено с мисъл за поверителността, базирано на отворен код и напълно безплатно завинаги."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Изход от режим на фокус"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Излизане от цял екран"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Форматиране на стилов лист"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Безплатно"
@@ -2584,6 +2627,12 @@ msgstr "Светла"
msgid "Light theme"
msgstr "Светла тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Ред {0}, колона {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Междуредие"
@@ -2898,10 +2947,6 @@ msgstr "Все още няма запазени версии."
msgid "No source data yet."
msgstr "Все още няма данни за източника."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Все още няма стилови правила."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Няма тестван доставчик"
@@ -2918,6 +2963,10 @@ msgstr "Норвежки"
msgid "Not connected"
msgstr "Няма връзка"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Не сте сигурни какво да напишете?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Отворете AI асистент"
msgid "Open Email Client"
msgstr "Отваряне на имейл клиент"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Отвори режим на фокус"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Отваряне в конструктора"
@@ -2992,6 +3045,7 @@ msgstr "Съвместим с OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Натиснете <0>Enter</0>, за да отворите"
msgid "Preview"
msgstr "Преглед"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Прегледът и експортът използват последната валидна версия."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основен цвят"
@@ -3374,10 +3432,22 @@ msgstr "Реактивно резюме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Прочетете ръководството за прилагане на персонализирани стилове."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Четене…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Готов за активиране"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Готово за активиране с предупреждения"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Получател"
@@ -3394,6 +3464,10 @@ msgstr "Правоъгълник (пълна ширина)"
msgid "Redo"
msgstr "Преработи"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Възстановяване на редакцията на стиловия лист"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Нулиране"
msgid "Reset Password"
msgstr "Нулиране на паролата"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Нулиране на стила"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Възстановяване към приложения стилов лист"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Румънски"
msgid "Rotation"
msgstr "Завъртане"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "правило"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "правила"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Извършете първия си анализ, за да получите карта с резултати, силни страни и предложения по приоритети."
@@ -3791,6 +3857,10 @@ msgstr "избран"
msgid "Self-Host with Docker"
msgstr "Самостоятелно хостване с Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантичен CSS стилов лист"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Изпрати съобщение"
@@ -4152,6 +4222,14 @@ msgstr "Зачеркване"
msgid "Strong fit"
msgstr "Силно прилягане"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Редактор на стилови листове"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Стилният лист съдържа грешки"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Страницата, която търсите, може да е бил
msgid "The password you entered is incorrect"
msgstr "Въведената от вас парола е неправилна"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Прегледът на автобиографията не можа да бъде актуализиран. Последният валиден преглед все още се показва."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Автобиографията, до която се опитвате да получите достъп, е защитена с парола"
@@ -4639,6 +4721,10 @@ msgstr "Подчертаване"
msgid "Undo"
msgstr "Отмяна"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Отмяна на редакцията на стиловия лист"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Неограничен брой автобиографии"
@@ -5013,6 +5099,10 @@ msgstr "Вашите данни се съхраняват сигурно и ни
msgid "Your latest changes could not be saved."
msgstr "Последните ви промени не можаха да бъдат запазени."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Вашите стари стилове остават активни, докато изрично не активирате този проект на Semantic CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Паролата ви беше нулирана успешно. Сега можете да влезете с новата си парола."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Bengali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "অ্যাকাউন্ট মেনু"
msgid "Actions"
msgstr "অ্যাকশন"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "সিমান্টিক CSS সক্রিয় করুন"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "প্রকৃত আকার (১০০%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "প্রতি সপ্তাহে পাঠানো আবেদন (শেষ 8 সপ্তাহ)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "আবেদন করা হয়েছে"
@@ -489,9 +494,9 @@ msgstr "আবেদন করা হয়েছে"
msgid "Applied on"
msgstr "প্রয়োগ করা হয়েছে"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "প্রয়োগকৃত নিয়মাবলী"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "সতর্কতাসহ প্রয়োগ করা হয়েছে"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "আপনার পাসওয়ার্ড রিসেট করা
msgid "Check your email for a link to verify your account."
msgstr "আপনার অ্যাকাউন্ট যাচাই করার লিঙ্কের জন্য ইমেইল চেক করুন।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "চেকিং"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "খসড়া পরীক্ষা করা হচ্ছে"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "চীনা (সরলীকৃত)"
@@ -966,6 +979,10 @@ msgstr "কথোপকথনটি অনুলিপি করা হয়ে
msgid "Conversation JSON copied."
msgstr "কথোপকথনের JSON কপি করা হয়েছে।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "রূপান্তরিত স্টাইলশীট খসড়া"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ক্লিপবোর্ডে কপি করা হয়েছে।"
@@ -989,6 +1006,15 @@ msgstr "ব্যাকআপ কোড কপি করুন"
msgid "Copy JSON"
msgstr "JSON কপি করুন"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "গোপন অনুলিপি"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "স্টাইলশিট কপি করুন"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "এই সিক্রেট কী কপি করে আপনার অ্যাপ্লিকেশনগুলোতে ব্যবহার করুন আপনার ডেটায় প্রবেশ করার জন্য।"
@@ -1545,6 +1571,11 @@ msgstr "সম্পাদনা {chip}"
msgid "Edit application"
msgstr "অ্যাপ্লিকেশন সম্পাদনা করুন"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "রঙ সম্পাদনা করুন {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "টু‑ফ্যাক্টর প্রমাণীকরণ সে
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "টু‑ফ্যাক্টর প্রমাণীকরণ বন্ধ করতে আপনার পাসওয়ার্ড লিখুন। 2FA বন্ধ করলে আপনার অ্যাকাউন্ট কম সুরক্ষিত থাকবে।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ত্রুটি"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "প্রতিটি অবদান, বড় বা ছোট, প্রজেক্টটিতে বিশাল পরিবর্তন আনে।<0/>আপনার সহায়তার জন্য ধন্যবাদ!"
@@ -1682,6 +1717,10 @@ msgstr "প্রতিটি অবদান, বড় বা ছোট, প
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "পেশাদার জীবনবৃত্তান্ত তৈরি, কাস্টমাইজ এবং শেয়ার করার জন্য যা যা প্রয়োজন সবই এখানে আছে। গোপনীয়তা মাথায় রেখে তৈরি, মুক্ত উৎস দ্বারা চালিত এবং চিরদিনের জন্য সম্পূর্ণ বিনামূল্যে।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ফোকাস মোড থেকে প্রস্থান করুন"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "পূর্ণ স্ক্রীন থেকে বের হন"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "রূপ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ফরম্যাট স্টাইলশিট"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "বিনামূল্যে"
@@ -2584,6 +2627,12 @@ msgstr "লাইট"
msgid "Light theme"
msgstr "লাইট থিম"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "লাইন {0}, কলাম {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "লাইন হাইট"
@@ -2898,10 +2947,6 @@ msgstr "এখনো কোনো সংরক্ষিত সংস্করণ
msgid "No source data yet."
msgstr "এখনো কোনো উৎস ডেটা নেই।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "এখনো কোনো স্টাইল নিয়ম ঠিক করা হয়নি।"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "কোন পরীক্ষিত সরবরাহকারী নেই"
@@ -2918,6 +2963,10 @@ msgstr "নরওয়েজিয়ান"
msgid "Not connected"
msgstr "সংযুক্ত নয়"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "কী লিখবেন বুঝতে পারছেন না?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "ওপেন এআই অ্যাসিস্ট্যান্ট"
msgid "Open Email Client"
msgstr "ইমেইল ক্লায়েন্ট খুলুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ফোকাস মোড খুলুন"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "বিল্ডারে খুলুন"
@@ -2992,6 +3045,7 @@ msgstr "ওপেনএআই-সামঞ্জস্যপূর্ণ"
msgid "OpenRouter"
msgstr "ওপেনরাউটার"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "খুলতে <0>এন্টার</0> চাপুন"
msgid "Preview"
msgstr "প্রিভিউ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "প্রিভিউ এবং এক্সপোর্টের জন্য সর্বশেষ বৈধ সংস্করণটি ব্যবহার করা হয়।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "প্রাথমিক রঙ"
@@ -3374,10 +3432,22 @@ msgstr "প্রতিক্রিয়াশীল জীবনবৃত্
msgid "Reactive Resume v4 (JSON)"
msgstr "প্রতিক্রিয়াশীল রিজ্যুম v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "কাস্টম স্টাইল প্রয়োগ করার নির্দেশিকাটি পড়ুন।"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "পড়া…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "সক্রিয় করার জন্য প্রস্তুত"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "সতর্কতা সহ সক্রিয় করার জন্য প্রস্তুত"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "প্রাপক"
@@ -3394,6 +3464,10 @@ msgstr "আয়তক্ষেত্র (পূর্ণ প্রস্থ)"
msgid "Redo"
msgstr "পুনরায় করুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "স্টাইলশীট সম্পাদনা পুনরায় করুন"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "রিসেট"
msgid "Reset Password"
msgstr "পাসওয়ার্ড রিসেট করুন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "স্টাইল রিসেট করুন"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "প্রয়োগকৃত স্টাইলশীটে রিসেট করুন"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "রোমানিয়ান"
msgid "Rotation"
msgstr "রোটেশন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "নিয়ম"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "নিয়ম"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "আপনার প্রথম বিশ্লেষণ চালান একটি স্কোরকার্ড, শক্তি এবং অগ্রাধিকারপ্রাপ্ত পরামর্শ পেতে।"
@@ -3791,6 +3857,10 @@ msgstr "নির্বাচিত"
msgid "Self-Host with Docker"
msgstr "ডকার দিয়ে নিজে হোস্ট করুন"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "সিমান্টিক সিএসএস স্টাইলশিট"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "বার্তা পাঠান"
@@ -4152,6 +4222,14 @@ msgstr "স্ট্রাইক"
msgid "Strong fit"
msgstr "শক্তিশালী ফিট"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "স্টাইলশিট সম্পাদক"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "স্টাইলশিটে ত্রুটি আছে"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "সাবরেডিট"
@@ -4308,6 +4386,10 @@ msgstr "আপনি যে পৃষ্ঠাটি খুঁজছেন স
msgid "The password you entered is incorrect"
msgstr "আপনি যে পাসওয়ার্ড লিখেছেন তা সঠিক নয়"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "জীবনবৃত্তান্তের প্রিভিউ আপডেট করা যায়নি। সর্বশেষ বৈধ প্রিভিউটিই এখনও দেখানো হচ্ছে।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "আপনি যে জীবনবৃত্তান্তে প্রবেশ করার চেষ্টা করছেন তা পাসওয়ার্ড দ্বারা সুরক্ষিত"
@@ -4639,6 +4721,10 @@ msgstr "আন্ডারলাইন"
msgid "Undo"
msgstr "পূর্বাবস্থায় ফেরান"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "স্টাইলশীট সম্পাদনা পূর্বাবস্থায় ফেরান"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "আনলিমিটেড জীবনবৃত্তান্ত"
@@ -5013,6 +5099,10 @@ msgstr "আপনার ডেটা নিরাপদভাবে সংরক
msgid "Your latest changes could not be saved."
msgstr "আপনার সর্বশেষ পরিবর্তনগুলো সংরক্ষণ করা যায়নি।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "যতক্ষণ না আপনি স্পষ্টভাবে এই সিম্যান্টিক সিএসএস ড্রাফটটি সক্রিয় করছেন, ততক্ষণ আপনার পুরোনো স্টাইলগুলো সক্রিয় থাকবে।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "আপনার পাসওয়ার্ড সফলভাবে রিসেট হয়েছে। এখন আপনি নতুন পাসওয়ার্ড দিয়ে সাইন ইন করতে পারবেন।"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menú del compte"
msgid "Actions"
msgstr "Accions"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activa el CSS semàntic"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Mida real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Sol·licituds enviades per setmana (darreres 8 setmanes)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Sol·licitada"
@@ -489,9 +494,9 @@ msgstr "Sol·licitada"
msgid "Applied on"
msgstr "Aplicat a"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Normes aplicades"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicat amb avisos"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Comprova el correu electrònic per trobar un enllaç per restablir la co
msgid "Check your email for a link to verify your account."
msgstr "Comprova el correu electrònic per trobar un enllaç per verificar el compte."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Comprovació"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "S'està revisant l'esborrany"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Xinès (simplificat)"
@@ -966,6 +979,10 @@ msgstr "Conversa copiada."
msgid "Conversation JSON copied."
msgstr "S'ha copiat el fitxer JSON de la conversa."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Esborrany de full d'estil convertit"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiat al porta-retalls."
@@ -989,6 +1006,15 @@ msgstr "Copia els codis de reserva"
msgid "Copy JSON"
msgstr "Copia JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copia el secret"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar full d'estils"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copia aquesta clau secreta i utilitza-la a les aplicacions per accedir a les dades."
@@ -1545,6 +1571,11 @@ msgstr "Edita {chip}"
msgid "Edit application"
msgstr "Edita l'aplicació"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edita el color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Introdueix la contrasenya per confirmar la configuració de l’autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introdueix la contrasenya per desactivar l’autenticació en dos passos. El compte serà menys segur sense l’A2F activada."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribució, gran o petita, marca una gran diferència per al projecte.<0/>Gràcies pel teu suport!"
@@ -1682,6 +1717,10 @@ msgstr "Cada contribució, gran o petita, marca una gran diferència per al proj
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tot el que necessites per crear, personalitzar i compartir currículums professionals. Creat amb la privadesa en ment, impulsat per codi obert i completament gratuït per sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Surt del mode d'enfocament"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Surt de la pantalla completa"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Full d'estils de format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuït"
@@ -2584,6 +2627,12 @@ msgstr "Clar"
msgid "Light theme"
msgstr "Tema clar"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Línia {0}, columna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Interlineat"
@@ -2898,10 +2947,6 @@ msgstr "Encara no hi ha versions desades."
msgid "No source data yet."
msgstr "Encara no hi ha dades d'origen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Encara no hi ha regles d'estil."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Cap proveïdor provat"
@@ -2918,6 +2963,10 @@ msgstr "Noruec"
msgid "Not connected"
msgstr "No connectat"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "No saps què escriure?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Assistent d'IA oberta"
msgid "Open Email Client"
msgstr "Obre el client de correu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Obre el mode d'enfocament"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Obre al constructor"
@@ -2992,6 +3045,7 @@ msgstr "Compatible amb OpenAI"
msgid "OpenRouter"
msgstr "Routador obert"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Premeu <0>Intro</0> per obrir"
msgid "Preview"
msgstr "Vista prèvia"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "La vista prèvia i l'exportació utilitzen l'última versió vàlida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color principal"
@@ -3374,10 +3432,22 @@ msgstr "Currículum reactiu v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Llegiu la guia Aplicació d'estils personalitzats."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Llegint…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Llest per activar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Llest per activar amb avisos"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatari"
@@ -3394,6 +3464,10 @@ msgstr "Rectangle (amplada completa)"
msgid "Redo"
msgstr "Refer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refés l'edició del full d'estils"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Restableix"
msgid "Reset Password"
msgstr "Restableix la contrasenya"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Restableix l'estil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Restableix al full d'estils aplicat"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Romanès"
msgid "Rotation"
msgstr "Rotació"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regles"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "seleccionat"
msgid "Self-Host with Docker"
msgstr "Allotjament propi amb Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Full d'estil CSS semàntic"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar missatge"
@@ -4152,6 +4222,14 @@ msgstr "Barrat"
msgid "Strong fit"
msgstr "Ajust fort"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de fulls d'estil"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "El full d'estil té errors"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Pot ser que la pàgina que busques s'hagi mogut o que ja no existeixi."
msgid "The password you entered is incorrect"
msgstr "La contrasenya introduïda és incorrecta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "No s'ha pogut actualitzar la vista prèvia del currículum. Encara es mostra l'última vista prèvia vàlida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "El currículum al qual intentes accedir està protegit amb contrasenya"
@@ -4639,6 +4721,10 @@ msgstr "Subratllat"
msgid "Undo"
msgstr "Desfer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Desfés l'edició del full d'estils"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículums il·limitats"
@@ -5013,6 +5099,10 @@ msgstr "Les dades s’emmagatzemen de manera segura i mai no es comparteixen amb
msgid "Your latest changes could not be saved."
msgstr "No s'han pogut desar els darrers canvis."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Els vostres estils antics romanen actius fins que activeu explícitament aquest esborrany de CSS semàntic."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "La contrasenya s’ha restablert correctament. Ara ja pots iniciar sessió amb la contrasenya nova."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "Nabídka účtu"
msgid "Actions"
msgstr "Akce"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivace sémantického CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Skutečná velikost (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Žádosti odeslané týdně (posledních 8 týdnů)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Podáno"
@@ -489,9 +494,9 @@ msgstr "Podáno"
msgid "Applied on"
msgstr "Aplikováno na"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Použitá pravidla"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Použito s varováním"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Zkontrolujte svůj e-mail, kde najdete odkaz pro obnovení hesla."
msgid "Check your email for a link to verify your account."
msgstr "Zkontrolujte svůj e-mail, kde najdete odkaz pro ověření účtu."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrola"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontrola návrhu"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Čínština (zjednodušená)"
@@ -966,6 +979,10 @@ msgstr "Konverzace zkopírována."
msgid "Conversation JSON copied."
msgstr "JSON konverzace zkopírován."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konverze konceptu stylů"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Zkopírováno do schránky."
@@ -989,6 +1006,15 @@ msgstr "Zkopírovat záložní kódy"
msgid "Copy JSON"
msgstr "Kopírovat JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopírovat tajný kód"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopírovat stylový list"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Zkopírujte tento tajný klíč a použijte ho ve svých aplikacích pro přístup k vašim datům."
@@ -1545,6 +1571,11 @@ msgstr "Upravit {chip}"
msgid "Edit application"
msgstr "Upravit aplikaci"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Upravit barvu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Zadejte své heslo pro potvrzení nastavení dvoufázového ověření.
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Zadejte své heslo pro deaktivaci dvoufázového ověření. Bez aktivního 2FA bude váš účet méně zabezpečený."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Chyba"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Každý příspěvek, velký i malý, má pro projekt obrovský význam.<0/>Děkujeme za vaši podporu!"
@@ -1682,6 +1717,10 @@ msgstr "Každý příspěvek, velký i malý, má pro projekt obrovský význam.
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Vše, co potřebujete k vytvoření, přizpůsobení a sdílení profesionálních životopisů. Vytvořeno s ohledem na soukromí, poháněno open source a zcela zdarma, navždy."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Ukončit režim ostření"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ukončit celou obrazovku"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formát"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formátovat stylový list"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Zdarma"
@@ -2584,6 +2627,12 @@ msgstr "Světlý"
msgid "Light theme"
msgstr "Světlý motiv"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Řádek {0}, sloupec {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Výška řádku"
@@ -2898,10 +2947,6 @@ msgstr "Zatím žádné uložené verze."
msgid "No source data yet."
msgstr "Zatím žádné zdrojové údaje."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Zatím žádná stylistická pravidla."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Žádný ověřený poskytovatel"
@@ -2918,6 +2963,10 @@ msgstr "Norština"
msgid "Not connected"
msgstr "Nepřipojeno"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nejste si jisti, co napsat?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Otevřený asistent s umělou inteligencí"
msgid "Open Email Client"
msgstr "Otevřít e-mailového klienta"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Otevřít režim ostření"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Otevřít v editoru"
@@ -2992,6 +3045,7 @@ msgstr "Kompatibilní s OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Stisknutím klávesy <0>Enter</0> otevřete"
msgid "Preview"
msgstr "Náhled"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Náhled a export použijí poslední platnou verzi."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hlavní barva"
@@ -3374,10 +3432,22 @@ msgstr "Reaktivní životopis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivní životopis v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Přečtěte si průvodce Použití vlastních stylů."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Čtení…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Připraveno k aktivaci"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Připraveno k aktivaci s varováními"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Příjemce"
@@ -3394,6 +3464,10 @@ msgstr "Obdélník (plná šířka)"
msgid "Redo"
msgstr "Předělat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Znovu upravit stylový list"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Resetovat"
msgid "Reset Password"
msgstr "Obnovit heslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Obnovit styl"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Obnovit použitý stylový list"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumunština"
msgid "Rotation"
msgstr "Otočení"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "pravidlo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "pravidla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "vybraný"
msgid "Self-Host with Docker"
msgstr "Vlastní hosting pomocí Dockeru"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Sémantický CSS stylový list"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Odeslat zprávu"
@@ -4152,6 +4222,14 @@ msgstr "Přeškrtnutí"
msgid "Strong fit"
msgstr "Silné uchycení"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor stylů"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylový list obsahuje chyby"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Stránka, kterou hledáte, mohla být přesunuta nebo již neexistuje."
msgid "The password you entered is incorrect"
msgstr "Zadané heslo je nesprávné"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Náhled životopisu se nepodařilo aktualizovat. Stále se zobrazuje poslední platný náhled."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Životopis, ke kterému se snažíte získat přístup, je chráněn heslem"
@@ -4639,6 +4721,10 @@ msgstr "Podtržení"
msgid "Undo"
msgstr "Zpět"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Zrušit úpravu stylového listu"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neomezené životopisy"
@@ -5013,6 +5099,10 @@ msgstr "Vaše data jsou ukládána bezpečně a nikdy nejsou sdílena s třetím
msgid "Your latest changes could not be saved."
msgstr "Vaše poslední změny se nepodařilo uložit."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vaše starší styly zůstanou aktivní, dokud explicitně neaktivujete tento koncept sémantického CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Vaše heslo bylo úspěšně obnoveno. Nyní se můžete přihlásit pomocí nového hesla."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Kontomenu"
msgid "Actions"
msgstr "Handlinger"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivér semantisk CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Faktisk størrelse (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Ansøgninger sendt pr. uge (sidste 8 uger)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Ansøgt"
@@ -489,9 +494,9 @@ msgstr "Ansøgt"
msgid "Applied on"
msgstr "Anvendt den"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Anvendte regler"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Anvendt med advarsler"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Tjek din e-mail for et link til at nulstille din adgangskode."
msgid "Check your email for a link to verify your account."
msgstr "Tjek din e-mail for et link til at verificere din konto."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrol"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Tjekker udkast"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinesisk (forenklet)"
@@ -966,6 +979,10 @@ msgstr "Samtalen er kopieret."
msgid "Conversation JSON copied."
msgstr "Samtalens JSON-fil kopieret."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konverteret stylesheet-kladde"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopieret til udklipsholder."
@@ -989,6 +1006,15 @@ msgstr "Kopiér backup-koder"
msgid "Copy JSON"
msgstr "Kopiér JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopiér hemmelighed"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiér stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopiér denne hemmelige nøgle og brug den i dine applikationer for at få adgang til dine data."
@@ -1545,6 +1571,11 @@ msgstr "Rediger {chip}"
msgid "Edit application"
msgstr "Rediger applikation"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rediger farve {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Indtast din adgangskode for at bekræfte opsætning af to-faktor-godkend
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Indtast din adgangskode for at deaktivere to-faktor-godkendelse. Din konto vil være mindre sikker uden 2FA aktiveret."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fejl"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hvert bidrag, stort som lille, gør en stor forskel for projektet.<0/>Tak for din støtte!"
@@ -1682,6 +1717,10 @@ msgstr "Hvert bidrag, stort som lille, gør en stor forskel for projektet.<0/>Ta
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alt hvad du behøver for at oprette, tilpasse og dele professionelle CV'er. Bygget med fokus på privatliv, drevet af open source og helt gratis for altid."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Afslut fokustilstand"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Afslut fuldskærm"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatér typografiark"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Lys"
msgid "Light theme"
msgstr "Lyst tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linje {0}, kolonne {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Linjehøjde"
@@ -2898,10 +2947,6 @@ msgstr "Ingen gemte versioner endnu."
msgid "No source data yet."
msgstr "Ingen kildedata endnu."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Ingen stilregler endnu."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Ingen testet udbyder"
@@ -2918,6 +2963,10 @@ msgstr "Norsk"
msgid "Not connected"
msgstr "Ikke forbundet"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Ikke sikker på, hvad du skal skrive?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Åbn AI-assistent"
msgid "Open Email Client"
msgstr "Åbn e-mailklient"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Åbn fokustilstand"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Åbn i builderen"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Tryk på <0>Enter</0> for at åbne"
msgid "Preview"
msgstr "Forhåndsvisning"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Forhåndsvisning og eksport med den seneste gyldige version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primær farve"
@@ -3374,10 +3432,22 @@ msgstr "Reaktivt CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivt CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Læs vejledningen til anvendelse af brugerdefinerede stilarter."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Læsning…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klar til aktivering"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klar til aktivering med advarsler"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Modtager"
@@ -3394,6 +3464,10 @@ msgstr "Rektangel (fuld bredde)"
msgid "Redo"
msgstr "Gentag"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Gentag redigering af stylesheet"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Nulstil"
msgid "Reset Password"
msgstr "Nulstil adgangskode"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Nulstil stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Nulstil til anvendt stylesheet"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumænsk"
msgid "Rotation"
msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "herske"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regler"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "udvalgte"
msgid "Self-Host with Docker"
msgstr "Selvhostning med Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisk CSS-stilark"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send besked"
@@ -4152,6 +4222,14 @@ msgstr "Gennemstreget"
msgid "Strong fit"
msgstr "Stærk pasform"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet-editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet indeholder fejl"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Den side, du leder efter, er muligvis blevet flyttet eller findes ikke l
msgid "The password you entered is incorrect"
msgstr "Den adgangskode, du indtastede, er forkert"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Forhåndsvisningen af CV'et kunne ikke opdateres. Den sidste gyldige forhåndsvisning vises stadig."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Det CV, du prøver at få adgang til, er beskyttet af en adgangskode"
@@ -4639,6 +4721,10 @@ msgstr "Understreg"
msgid "Undo"
msgstr "Fortryd"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Fortryd redigering af stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Ubegrænsede CV'er"
@@ -5013,6 +5099,10 @@ msgstr "Dine data lagres sikkert og deles aldrig med tredjeparter. Du kan også
msgid "Your latest changes could not be saved."
msgstr "Dine seneste ændringer kunne ikke gemmes."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Dine ældre stilarter forbliver aktive, indtil du eksplicit aktiverer denne semantiske CSS-kladde."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Din adgangskode er blevet nulstillet. Du kan nu logge ind med din nye adgangskode."
+116 -26
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-13 07:27\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Kontomenü"
msgid "Actions"
msgstr "Aktionen"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantisches CSS aktivieren"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tatsächliche Größe (100 %)"
@@ -397,7 +401,7 @@ msgstr "Und viele weitere ..."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Anthropic Claude"
msgstr "Anthropischer Claude"
msgstr "Anthropic Claude"
#: src/routes/dashboard/applications/index.tsx
msgid "Any tag"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Pro Woche gesendete Bewerbungen (letzte 8 Wochen)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Beworben"
@@ -489,9 +494,9 @@ msgstr "Beworben"
msgid "Applied on"
msgstr "Beworben am"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Angewandte Regeln"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Mit Warnungen angewendet"
#: src/libs/locale.ts
msgid "Arabic"
@@ -759,7 +764,7 @@ msgstr "Zentriert"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Cerebras"
msgstr "Großhirn"
msgstr "Cerebras"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
@@ -800,6 +805,14 @@ msgstr "Bitte prüfen Sie Ihre E-Mails auf einen Link zum Zurücksetzen Ihres Pa
msgid "Check your email for a link to verify your account."
msgstr "Bitte prüfen Sie Ihre E-Mails auf einen Link, um Ihr Konto zu verifizieren."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Überprüfung"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Entwurf prüfen"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinesisch (vereinfacht)"
@@ -859,7 +872,7 @@ msgstr "Schließen Sie den KI-Assistenten"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Cohere"
msgstr "Zusammenhängen"
msgstr "Cohere"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
@@ -966,6 +979,10 @@ msgstr "Konversation kopiert."
msgid "Conversation JSON copied."
msgstr "Konversations-JSON kopiert."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertierter Stylesheet-Entwurf"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "In die Zwischenablage kopiert."
@@ -989,6 +1006,15 @@ msgstr "Backup-Codes kopieren"
msgid "Copy JSON"
msgstr "JSON kopieren"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Geheimnis kopieren"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stylesheet kopieren"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopiere diesen geheimen Schlüssel und verwende ihn in deinen Anwendungen, um auf deine Daten zuzugreifen."
@@ -1424,7 +1450,7 @@ msgstr "Discord"
#: src/components/ui/donation-toast.tsx
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Dismiss"
msgstr "Zurückweisen"
msgstr "Ausblenden"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
@@ -1545,6 +1571,11 @@ msgstr "{chip} bearbeiten"
msgid "Edit application"
msgstr "Bewerbung bearbeiten"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Farbe bearbeiten {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Geben Sie Ihr Passwort ein, um die Einrichtung der Zwei-Faktor-Authentif
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Geben Sie Ihr Passwort ein, um die Zwei-Faktor-Authentifizierung zu deaktivieren. Ihr Konto ist ohne 2FA weniger sicher."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fehler"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Jeder Beitrag, ob groß oder klein, macht einen riesigen Unterschied für das Projekt.<0/>Vielen Dank für deine Unterstützung!"
@@ -1682,6 +1717,10 @@ msgstr "Jeder Beitrag, ob groß oder klein, macht einen riesigen Unterschied fü
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alles, was du brauchst, um professionelle Lebensläufe zu erstellen, anzupassen und zu teilen. Mit Blick auf Datenschutz entwickelt, von Open Source angetrieben und für immer komplett kostenlos."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Fokusmodus beenden"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Vollbild schließen"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Seitenformat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format-Stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Kostenlos"
@@ -2100,7 +2143,7 @@ msgstr "Google"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Google Gemini"
msgstr "Google Zwillinge"
msgstr "Google Gemini"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "gpt-4.1"
@@ -2584,6 +2627,12 @@ msgstr "Hell"
msgid "Light theme"
msgstr "Helles Design"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Zeile {0}, Spalte {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Zeilenhöhe"
@@ -2898,10 +2947,6 @@ msgstr "Bisher keine gespeicherten Versionen."
msgid "No source data yet."
msgstr "Noch keine Quelldaten."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Noch keine Stilregeln."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Kein geprüfter Anbieter"
@@ -2918,6 +2963,10 @@ msgstr "Norwegisch"
msgid "Not connected"
msgstr "Nicht verbunden"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Sie wissen nicht, was Sie schreiben sollen?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Offener KI-Assistent"
msgid "Open Email Client"
msgstr "E-Mail-Programm öffnen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Offener Fokusmodus"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Im Builder öffnen"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3150,7 +3204,7 @@ msgstr "Zeitraum"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Perplexity"
msgstr "Verwirrung"
msgstr "Perplexity"
#: src/libs/locale.ts
msgid "Persian"
@@ -3267,6 +3321,10 @@ msgstr "Drücken Sie <0>Enter</0> zum Öffnen"
msgid "Preview"
msgstr "Vorschau"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Vorschau und Export verwenden die letzte gültige Version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfarbe"
@@ -3374,10 +3432,22 @@ msgstr "Reaktiver Lebenslauf v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiver Lebenslauf v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Lesen Sie den Leitfaden zum Anwenden benutzerdefinierter Stile."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Wird gelesen…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Bereit zur Aktivierung"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Bereit zur Aktivierung mit Warnungen"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Empfänger"
@@ -3394,6 +3464,10 @@ msgstr "Rechteck (volle Breite)"
msgid "Redo"
msgstr "Wiederholen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stylesheet-Bearbeitung wiederholen"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Zurücksetzen"
msgid "Reset Password"
msgstr "Passwort zurücksetzen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Stil zurücksetzen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Auf angewendetes Stylesheet zurücksetzen"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumänisch"
msgid "Rotation"
msgstr "Drehung"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "Regel"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "Regeln"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3635,7 +3701,7 @@ msgstr "Gehaltsspanne"
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/settings/authentication/components/passkeys.tsx
msgid "Save"
msgstr "Speichern Sie"
msgstr "Speichern"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Save & Test Provider"
@@ -3791,6 +3857,10 @@ msgstr "ausgewählt"
msgid "Self-Host with Docker"
msgstr "Selbst hosten mit Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisches CSS-Stylesheet"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Nachricht senden"
@@ -4152,6 +4222,14 @@ msgstr "Durchgestrichen"
msgid "Strong fit"
msgstr "Starke Passung"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet-Editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Das Stylesheet enthält Fehler."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Die gesuchte Seite wurde möglicherweise verschoben oder existiert nicht
msgid "The password you entered is incorrect"
msgstr "Das eingegebene Passwort ist falsch"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Die Lebenslaufvorschau konnte nicht aktualisiert werden. Die letzte gültige Vorschau wird weiterhin angezeigt."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Der Lebenslauf, auf den Sie zugreifen möchten, ist passwortgeschützt"
@@ -4639,6 +4721,10 @@ msgstr "Unterstreichen"
msgid "Undo"
msgstr "Rückgängig machen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stylesheet-Änderung rückgängig machen"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Unbegrenzte Lebensläufe"
@@ -5013,6 +5099,10 @@ msgstr "Deine Daten werden sicher gespeichert und niemals an Dritte weitergegebe
msgid "Your latest changes could not be saved."
msgstr "Ihre letzten Änderungen konnten nicht gespeichert werden."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ihre bisherigen Stile bleiben aktiv, bis Sie diesen Entwurf für semantisches CSS explizit aktivieren."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt. Sie können sich nun mit Ihrem neuen Passwort anmelden."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Μενού λογαριασμού"
msgid "Actions"
msgstr "Ενέργειες"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Ενεργοποίηση Σημασιολογικού CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Πραγματικό μέγεθος (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Αιτήσεις που στάλθηκαν ανά εβδομάδα (τελευταίες 8 εβδομάδες)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Υποβλήθηκε"
@@ -489,9 +494,9 @@ msgstr "Υποβλήθηκε"
msgid "Applied on"
msgstr "Ημερομηνία αίτησης"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Εφαρμοσμένοι κανόνες"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Εφαρμόζεται με προειδοποιήσεις"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Ελέγξτε το email σας για έναν σύνδεσμο επα
msgid "Check your email for a link to verify your account."
msgstr "Ελέγξτε το email σας για έναν σύνδεσμο επαλήθευσης του λογαριασμού σας."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Ελεγχος"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Έλεγχος προσχεδίου"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Κινέζικα (Απλοποιημένα)"
@@ -966,6 +979,10 @@ msgstr "Η συνομιλία αντιγράφηκε."
msgid "Conversation JSON copied."
msgstr "Το JSON συνομιλίας αντιγράφηκε."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Μετατρεπόμενο προσχέδιο φύλλου στυλ"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Αντιγράφηκε στο πρόχειρο."
@@ -989,6 +1006,15 @@ msgstr "Αντιγραφή εφεδρικών κωδικών"
msgid "Copy JSON"
msgstr "Αντιγραφή JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Μυστικό αντιγραφής"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Αντιγραφή φύλλου στυλ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Αντιγράψτε αυτό το μυστικό κλειδί και χρησιμοποιήστε το στις εφαρμογές σας για να αποκτήσετε πρόσβαση στα δεδομένα σας."
@@ -1545,6 +1571,11 @@ msgstr "Επεξεργασία {chip}"
msgid "Edit application"
msgstr "Επεξεργασία αίτησης"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Επεξεργασία χρώματος {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Εισαγάγετε τον κωδικό πρόσβασής σας γι
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Εισαγάγετε τον κωδικό πρόσβασής σας για να απενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων. Ο λογαριασμός σας θα είναι λιγότερο ασφαλής χωρίς ενεργοποιημένο 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Σφάλμα"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Κάθε συνεισφορά, μικρή ή μεγάλη, κάνει τεράστια διαφορά στο έργο.<0/>Σας ευχαριστούμε για την υποστήριξή σας!"
@@ -1682,6 +1717,10 @@ msgstr "Κάθε συνεισφορά, μικρή ή μεγάλη, κάνει τ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Όλα όσα χρειάζεστε για να δημιουργήσετε, να προσαρμόσετε και να μοιραστείτε επαγγελματικά βιογραφικά σημειώματα. Δημιουργήθηκε με γνώμονα το απόρρητο, βασισμένο σε ανοικτό κώδικα και εντελώς δωρεάν για πάντα."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Έξοδος από τη λειτουργία εστίασης"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Έξοδος από πλήρη οθόνη"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Μορφή"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Μορφοποίηση φύλλου στυλ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Δωρεάν"
@@ -2584,6 +2627,12 @@ msgstr "Φωτεινό"
msgid "Light theme"
msgstr "Φωτεινό θέμα"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Γραμμή {0}, στήλη {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Ύψος γραμμής"
@@ -2898,10 +2947,6 @@ msgstr "Δεν υπάρχουν ακόμη αποθηκευμένες εκδόσ
msgid "No source data yet."
msgstr "Δεν υπάρχουν ακόμη δεδομένα πηγής."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Δεν υπάρχουν ακόμα κανόνες στυλ."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Δεν υπάρχει δοκιμασμένος πάροχος"
@@ -2918,6 +2963,10 @@ msgstr "Νορβηγικά"
msgid "Not connected"
msgstr "Δεν είναι συνδεδεμένο"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Δεν είστε σίγουροι τι να γράψετε;"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Ανοιχτός βοηθός τεχνητής νοημοσύνης"
msgid "Open Email Client"
msgstr "Άνοιγμα προγράμματος email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Άνοιγμα λειτουργίας εστίασης"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Άνοιγμα στο Builder"
@@ -2992,6 +3045,7 @@ msgstr "Συμβατό με OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Πατήστε <0>Enter</0> για να ανοίξετε"
msgid "Preview"
msgstr "Πρεμιέρα"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Η προεπισκόπηση και η εξαγωγή χρησιμοποιούν την τελευταία έγκυρη έκδοση."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Βασικό χρώμα"
@@ -3374,10 +3432,22 @@ msgstr "Αντιδραστικό βιογραφικό v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Αντιδραστικό βιογραφικό σημείωμα v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Διαβάστε τον οδηγό Εφαρμογή προσαρμοσμένων στυλ."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Ανάγνωση…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Έτοιμο για ενεργοποίηση"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Έτοιμο για ενεργοποίηση με προειδοποιήσεις"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Παραλήπτης"
@@ -3394,6 +3464,10 @@ msgstr "Ορθογώνιο (πλήρους πλάτους)"
msgid "Redo"
msgstr "Ξανακάνω"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Επανάληψη επεξεργασίας φύλλου στυλ"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Επαναφορά"
msgid "Reset Password"
msgstr "Επαναφορά κωδικού πρόσβασης"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Επαναφορά στυλ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Επαναφορά στο εφαρμοσμένο φύλλο στυλ"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Ρουμανικά"
msgid "Rotation"
msgstr "Περιστροφή"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "κανόνας"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "κανόνες"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Εκτελέστε την πρώτη σας ανάλυση για να λάβετε έναν πίνακα βαθμολογίας, τα δυνατά σημεία και τις προτάσεις με προτεραιότητες."
@@ -3791,6 +3857,10 @@ msgstr "επιλεγμένο"
msgid "Self-Host with Docker"
msgstr "Αυτο-φιλοξενία με Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Φύλλο στυλ σημασιολογικού CSS"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Αποστολή μηνύματος"
@@ -4152,6 +4222,14 @@ msgstr "Διακριτική διαγραφή"
msgid "Strong fit"
msgstr "Ισχυρή καταλληλότητα"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Επεξεργαστής φύλλου στυλ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Το φύλλο στυλ έχει σφάλματα"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Η σελίδα που αναζητάτε ενδέχεται να έχε
msgid "The password you entered is incorrect"
msgstr "Ο κωδικός πρόσβασης που εισάγατε είναι λανθασμένος"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Δεν ήταν δυνατή η ενημέρωση της προεπισκόπησης βιογραφικού σημειώματος. Η τελευταία έγκυρη προεπισκόπηση εξακολουθεί να εμφανίζεται."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Το βιογραφικό σημείωμα στο οποίο προσπαθείτε να αποκτήσετε πρόσβαση προστατεύεται με κωδικό πρόσβασης"
@@ -4639,6 +4721,10 @@ msgstr "Υπογράμμιση"
msgid "Undo"
msgstr "Ξεκάνω"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Αναίρεση επεξεργασίας φύλλου στυλ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Απεριόριστα βιογραφικά σημειώματα"
@@ -5013,6 +5099,10 @@ msgstr "Τα δεδομένα σας αποθηκεύονται με ασφάλ
msgid "Your latest changes could not be saved."
msgstr "Δεν ήταν δυνατή η αποθήκευση των τελευταίων αλλαγών σας."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Τα παλαιότερα στυλ σας παραμένουν ενεργά μέχρι να ενεργοποιήσετε ρητά αυτό το προσχέδιο Semantic CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ο κωδικός πρόσβασής σας επαναφέρθηκε με επιτυχία. Τώρα μπορείτε να συνδεθείτε με τον νέο σας κωδικό πρόσβασης."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: en_GB\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Account menu"
msgid "Actions"
msgstr "Actions"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activate Semantic CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Actual size (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Applications sent per week (last 8 weeks)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Applied"
@@ -489,9 +494,9 @@ msgstr "Applied"
msgid "Applied on"
msgstr "Applied on"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Applied Rules"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Applied with warnings"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Check your email for a link to reset your password."
msgid "Check your email for a link to verify your account."
msgstr "Check your email for a link to verify your account."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Checking"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Checking draft"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinese (Simplified)"
@@ -966,6 +979,10 @@ msgstr "Conversation copied."
msgid "Conversation JSON copied."
msgstr "Conversation JSON copied."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Converted stylesheet draft"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copied to clipboard."
@@ -989,6 +1006,15 @@ msgstr "Copy Backup Codes"
msgid "Copy JSON"
msgstr "Copy JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copy secret"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copy stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copy this secret key and use it in your applications to access your data."
@@ -1545,6 +1571,11 @@ msgstr "Edit {chip}"
msgid "Edit application"
msgstr "Edit application"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edit color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Enter your password to confirm setting up two-factor authentication. Whe
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
@@ -1682,6 +1717,10 @@ msgstr "Every contribution, big or small, makes a huge difference to the project
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Everything you need to create, customise, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Exit focus mode"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit fullscreen"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Free"
@@ -2584,6 +2627,12 @@ msgstr "Light"
msgid "Light theme"
msgstr "Light theme"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Line {0}, column {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Line Height"
@@ -2898,10 +2947,6 @@ msgstr "No saved versions yet."
msgid "No source data yet."
msgstr "No source data yet."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "No style rules yet."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "No tested provider"
@@ -2918,6 +2963,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "Not connected"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Not sure what to write?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Open AI assistant"
msgid "Open Email Client"
msgstr "Open Email Client"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Open focus mode"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Open in builder"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-compatible"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Press <0>Enter</0> to open"
msgid "Preview"
msgstr "Preview"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Preview and export use the last valid version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Colour"
@@ -3374,10 +3432,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Read the Applying Custom Styles guide."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Reading…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Ready to activate"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Ready to activate with warnings"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Recipient"
@@ -3394,6 +3464,10 @@ msgstr "Rectangle (Full Width)"
msgid "Redo"
msgstr "Redo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Redo stylesheet edit"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Reset"
msgid "Reset Password"
msgstr "Reset Password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Reset Style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Reset to applied stylesheet"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Romanian"
msgid "Rotation"
msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "rule"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "rules"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "selected"
msgid "Self-Host with Docker"
msgstr "Self-Host with Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantic CSS stylesheet"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send message"
@@ -4152,6 +4222,14 @@ msgstr "Strike"
msgid "Strong fit"
msgstr "Strong fit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet has errors"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "The page you're looking for may have been moved or no longer exists."
msgid "The password you entered is incorrect"
msgstr "The password you entered is incorrect"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "The resume preview could not be updated. The last valid preview is still shown."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "The resume you are trying to access is password protected"
@@ -4639,6 +4721,10 @@ msgstr "Underline"
msgid "Undo"
msgstr "Undo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Undo stylesheet edit"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Unlimited Resumes"
@@ -5013,6 +5099,10 @@ msgstr "Your data is stored securely and is never shared with third parties. You
msgid "Your latest changes could not be saved."
msgstr "Your latest changes could not be saved."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Your password has been reset successfully. You can now sign in with your new password."
+108 -18
View File
@@ -158,6 +158,10 @@ msgstr "Account menu"
msgid "Actions"
msgstr "Actions"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activate Semantic CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Actual size (100%)"
@@ -477,6 +481,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Applications sent per week (last 8 weeks)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Applied"
@@ -484,9 +489,9 @@ msgstr "Applied"
msgid "Applied on"
msgstr "Applied on"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Applied Rules"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Applied with warnings"
#: src/libs/locale.ts
msgid "Arabic"
@@ -795,6 +800,14 @@ msgstr "Check your email for a link to reset your password."
msgid "Check your email for a link to verify your account."
msgstr "Check your email for a link to verify your account."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Checking"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Checking draft"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinese (Simplified)"
@@ -961,6 +974,10 @@ msgstr "Conversation copied."
msgid "Conversation JSON copied."
msgstr "Conversation JSON copied."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Converted stylesheet draft"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copied to clipboard."
@@ -984,6 +1001,15 @@ msgstr "Copy Backup Codes"
msgid "Copy JSON"
msgstr "Copy JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copy secret"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copy stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copy this secret key and use it in your applications to access your data."
@@ -1540,6 +1566,11 @@ msgstr "Edit {chip}"
msgid "Edit application"
msgstr "Edit application"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edit color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1669,6 +1700,10 @@ msgstr "Enter your password to confirm setting up two-factor authentication. Whe
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
@@ -1677,6 +1712,10 @@ msgstr "Every contribution, big or small, makes a huge difference to the project
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Exit focus mode"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit Fullscreen"
@@ -1996,6 +2035,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Free"
@@ -2579,6 +2622,12 @@ msgstr "Light"
msgid "Light theme"
msgstr "Light theme"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Line {0}, column {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Line Height"
@@ -2893,10 +2942,6 @@ msgstr "No saved versions yet."
msgid "No source data yet."
msgstr "No source data yet."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "No style rules yet."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "No tested provider"
@@ -2913,6 +2958,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "Not connected"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Not sure what to write?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2963,6 +3012,10 @@ msgstr "Open AI assistant"
msgid "Open Email Client"
msgstr "Open Email Client"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Open focus mode"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Open in builder"
@@ -2987,6 +3040,7 @@ msgstr "OpenAI-compatible"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3262,6 +3316,10 @@ msgstr "Press <0>Enter</0> to open"
msgid "Preview"
msgstr "Preview"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Preview and export use the last valid version."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Color"
@@ -3369,10 +3427,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Read the Applying Custom Styles guide."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Reading…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Ready to activate"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Ready to activate with warnings"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Recipient"
@@ -3389,6 +3459,10 @@ msgstr "Rectangle (Full Width)"
msgid "Redo"
msgstr "Redo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Redo stylesheet edit"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3486,9 +3560,9 @@ msgstr "Reset"
msgid "Reset Password"
msgstr "Reset Password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Reset Style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Reset to applied stylesheet"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3601,14 +3675,6 @@ msgstr "Romanian"
msgid "Rotation"
msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "rule"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "rules"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3786,6 +3852,10 @@ msgstr "selected"
msgid "Self-Host with Docker"
msgstr "Self-Host with Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantic CSS stylesheet"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send message"
@@ -4147,6 +4217,14 @@ msgstr "Strike"
msgid "Strong fit"
msgstr "Strong fit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stylesheet editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet has errors"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4303,6 +4381,10 @@ msgstr "The page you're looking for may have been moved or no longer exists."
msgid "The password you entered is incorrect"
msgstr "The password you entered is incorrect"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "The resume preview could not be updated. The last valid preview is still shown."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "The resume you are trying to access is password protected"
@@ -4634,6 +4716,10 @@ msgstr "Underline"
msgid "Undo"
msgstr "Undo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Undo stylesheet edit"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Unlimited Resumes"
@@ -5008,6 +5094,10 @@ msgstr "Your data is stored securely and is never shared with third parties. You
msgid "Your latest changes could not be saved."
msgstr "Your latest changes could not be saved."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Your password has been reset successfully. You can now sign in with your new password."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menú de cuenta"
msgid "Actions"
msgstr "Acciones"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activar CSS semántico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tamaño real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturas enviadas por semana (últimas 8 semanas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Enviada"
@@ -489,9 +494,9 @@ msgstr "Enviada"
msgid "Applied on"
msgstr "Postulado el"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Reglas aplicadas"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicado con advertencias"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Revisa tu correo electrónico para encontrar un enlace para restablecer
msgid "Check your email for a link to verify your account."
msgstr "Revisa tu correo electrónico para encontrar un enlace para verificar tu cuenta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "De cheques"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Borrador de comprobación"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chino (simplificado)"
@@ -966,6 +979,10 @@ msgstr "Conversación copiada."
msgid "Conversation JSON copied."
msgstr "JSON de conversación copiada."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Borrador de hoja de estilo convertido"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiado al portapapeles."
@@ -989,6 +1006,15 @@ msgstr "Copiar códigos de respaldo"
msgid "Copy JSON"
msgstr "Copiar JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copia secreta"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar hoja de estilo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copia esta clave secreta y úsala en tus aplicaciones para acceder a tus datos."
@@ -1545,6 +1571,11 @@ msgstr "Edite {chip}"
msgid "Edit application"
msgstr "Editar candidatura"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editar color {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Introduce tu contraseña para confirmar la configuración de la autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduce tu contraseña para deshabilitar la autenticación de doble factor. Tu cuenta será menos segura sin 2FA habilitada."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Error"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribución, grande o pequeña, marca una gran diferencia para el proyecto.<0/>¡Gracias por tu apoyo!"
@@ -1682,6 +1717,10 @@ msgstr "Cada contribución, grande o pequeña, marca una gran diferencia para el
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Todo lo que necesitas para crear, personalizar y compartir currículums profesionales. Creado con la privacidad en mente, impulsado por el código abierto y completamente gratis para siempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Salir del modo de enfoque"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Salir de pantalla completa"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formato"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Hoja de estilo de formato"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Claro"
msgid "Light theme"
msgstr "Tema claro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Línea {0}, columna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altura de la línea"
@@ -2898,10 +2947,6 @@ msgstr "Aún no hay versiones guardadas."
msgid "No source data yet."
msgstr "Aún no hay datos de fuentes."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Aún no hay reglas de estilo."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "No hay ningún proveedor probado"
@@ -2918,6 +2963,10 @@ msgstr "Noruego"
msgid "Not connected"
msgstr "No conectado"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "¿No sabes qué escribir?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Asistente de IA abierta"
msgid "Open Email Client"
msgstr "Abrir cliente de correo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modo de enfoque abierto"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Abrir en constructor"
@@ -2992,6 +3045,7 @@ msgstr "Compatible con OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Pulse <0>Intro</0> para abrir"
msgid "Preview"
msgstr "Avance"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "La vista previa y la exportación utilizan la última versión válida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color primario"
@@ -3374,10 +3432,22 @@ msgstr "Reanudación reactiva v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Currículum reactivo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Lea la guía sobre cómo aplicar estilos personalizados."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Leyendo…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Listo para activar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Listo para activarse con advertencias"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatario"
@@ -3394,6 +3464,10 @@ msgstr "Rectángulo (ancho completo)"
msgid "Redo"
msgstr "Rehacer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Rehacer la edición de la hoja de estilos"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Restablecer"
msgid "Reset Password"
msgstr "Restablecer contraseña"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Restablecer estilo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Restablecer a la hoja de estilos aplicada"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumano"
msgid "Rotation"
msgstr "Rotación"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "normas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "seleccionado"
msgid "Self-Host with Docker"
msgstr "Auto alojamiento con Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Hoja de estilo CSS semántica"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar mensaje"
@@ -4152,6 +4222,14 @@ msgstr "Tachado"
msgid "Strong fit"
msgstr "Buen encaje"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de hojas de estilo"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "La hoja de estilos tiene errores."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Es posible que la página que buscas se haya movido o que ya no exista."
msgid "The password you entered is incorrect"
msgstr "La contraseña que introdujiste es incorrecta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "No se pudo actualizar la vista previa del currículum. Todavía se muestra la última vista previa válida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "El currículum al que intentas acceder está protegido con contraseña"
@@ -4639,6 +4721,10 @@ msgstr "Subrayado"
msgid "Undo"
msgstr "Deshacer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Deshacer la edición de la hoja de estilos"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículums ilimitados"
@@ -5013,6 +5099,10 @@ msgstr "Tus datos se almacenan de forma segura y nunca se comparten con terceros
msgid "Your latest changes could not be saved."
msgstr "No se pudieron guardar los últimos cambios."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Tus estilos heredados permanecerán activos hasta que actives explícitamente este borrador de CSS semántico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Tu contraseña se ha restablecido correctamente. Ahora puedes iniciar sesión con tu nueva contraseña."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "منوی حساب کاربری"
msgid "Actions"
msgstr "اقدامات"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "فعال کردن CSS معنایی"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "اندازه واقعی (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "درخواست‌های ارسال‌شده در هفته (۸ هفته گذشته)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ارسال‌شده"
@@ -489,9 +494,9 @@ msgstr "ارسال‌شده"
msgid "Applied on"
msgstr "تاریخ درخواست"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "قوانین کاربردی"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "با هشدارها اعمال می‌شود"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "ایمیل خود را برای لینکی جهت تنظیم مجدد گ
msgid "Check your email for a link to verify your account."
msgstr "ایمیل خود را برای لینکی جهت تأیید حسابتان بررسی کنید."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "بررسی"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "بررسی پیش‌نویس"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "چینی (ساده‌شده)"
@@ -966,6 +979,10 @@ msgstr "مکالمه کپی شد."
msgid "Conversation JSON copied."
msgstr "JSON مکالمه کپی شد."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "پیش‌نویس شیوه‌نامه تبدیل‌شده"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "در کلیپ‌بورد کپی شد."
@@ -989,6 +1006,15 @@ msgstr "کپی کردن کدهای پشتیبان"
msgid "Copy JSON"
msgstr "کپی کردن JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "کپی کردن راز"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "کپی کردن شیوه‌نامه"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "این کلید مخفی را کپی کنید و برای دسترسی به داده‌های خود در اپلیکیشن‌هایتان از آن استفاده کنید."
@@ -1545,6 +1571,11 @@ msgstr "ویرایش {chip}"
msgid "Edit application"
msgstr "ویرایش درخواست"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ویرایش رنگ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "برای تأیید راه‌اندازی احراز هویت دو مر
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "برای غیرفعال کردن احراز هویت دو مرحله‌ای گذرواژهٔ خود را وارد کنید. بدون فعال بودن 2FA حساب شما امنیت کمتری خواهد داشت."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "خطا"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "هر مشارکت، چه بزرگ چه کوچک، تفاوت بزرگی در این پروژه ایجاد می‌کند.<0/>از حمایت شما سپاسگزاریم!"
@@ -1682,6 +1717,10 @@ msgstr "هر مشارکت، چه بزرگ چه کوچک، تفاوت بزرگی
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "همه‌چیزی که برای ایجاد، شخصی‌سازی و اشتراک‌گذاری رزومه‌های حرفه‌ای نیاز دارید. با تمرکز بر حریم خصوصی ساخته شده، با متن‌باز قدرت گرفته و برای همیشه کاملاً رایگان است."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "خروج از حالت فوکوس"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "خروج از حالت تمام‌صفحه"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "فرمت"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "قالب‌بندی برگه سبک"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "رایگان"
@@ -2584,6 +2627,12 @@ msgstr "روشن"
msgid "Light theme"
msgstr "تم روشن"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "خط {0}، ستون {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "فاصلهٔ بین خطوط"
@@ -2898,10 +2947,6 @@ msgstr "هنوز نسخه‌های ذخیره‌شده‌ای وجود ندار
msgid "No source data yet."
msgstr "هنوز دادهٔ منبعی نیست."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "هنوز هیچ قانون سبکی وجود ندارد."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "هیچ ارائه دهنده آزمایش شده ای وجود ندارد"
@@ -2918,6 +2963,10 @@ msgstr "نروژی"
msgid "Not connected"
msgstr "متصل نیست"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "مطمئن نیستید چه بنویسید؟"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "دستیار هوش مصنوعی را باز کنید"
msgid "Open Email Client"
msgstr "باز کردن کلاینت ایمیل"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "حالت فوکوس را باز کنید"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "باز کردن در سازنده"
@@ -2992,6 +3045,7 @@ msgstr "سازگار با OpenAI"
msgid "OpenRouter"
msgstr "روتر آزاد"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "برای باز کردن <0>Enter را</0> فشار دهید"
msgid "Preview"
msgstr "پیش‌نمایش"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "پیش‌نمایش و خروجی گرفتن از آخرین نسخه معتبر."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "رنگ اصلی"
@@ -3374,10 +3432,22 @@ msgstr "رزومه واکنشی نسخه<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "رزومهٔ واکنشی نسخهٔ ۴ (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "راهنمای اعمال سبک‌های سفارشی را مطالعه کنید."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "در حال خواندن…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "آماده فعال سازی"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "آماده فعال شدن با هشدارها"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "گیرنده"
@@ -3394,6 +3464,10 @@ msgstr "مستطیل (تمام‌عرض)"
msgid "Redo"
msgstr "از نو انجام دادن"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ویرایش استایل‌شیت را دوباره انجام دهید"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "ریست"
msgid "Reset Password"
msgstr "تنظیم مجدد گذرواژه"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "تنظیم مجدد سبک"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "تنظیم مجدد به شیوه‌نامه اعمال شده"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "رومانیایی"
msgid "Rotation"
msgstr "چرخش"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "قاعده"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "قوانین"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "اولین تحلیل خود را اجرا کنید تا کارت امتیاز، نقاط قوت و پیشنهادهای اولویت‌بندی‌شده را دریافت کنید."
@@ -3791,6 +3857,10 @@ msgstr "انتخاب‌شده"
msgid "Self-Host with Docker"
msgstr "میزبانی خودکار با Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "شیوه‌نامه CSS معنایی"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ارسال پیام"
@@ -4152,6 +4222,14 @@ msgstr "خط‌خورده"
msgid "Strong fit"
msgstr "تناسب قوی"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ویرایشگر استایل‌شیت"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "استایل‌شیت خطا دارد"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ردیت"
@@ -4308,6 +4386,10 @@ msgstr "ممکن است صفحه‌ای که به دنبال آن هستید،
msgid "The password you entered is incorrect"
msgstr "گذرواژه‌ای که وارد کرده‌اید نادرست است"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "پیش‌نمایش رزومه قابل به‌روزرسانی نیست. آخرین پیش‌نمایش معتبر هنوز نمایش داده می‌شود."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "رزومه‌ای که می‌خواهید به آن دسترسی پیدا کنید با گذرواژه محافظت شده است"
@@ -4639,6 +4721,10 @@ msgstr "زیرخط"
msgid "Undo"
msgstr "لغو"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ویرایش برگه سبک را لغو کنید"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "رزومه‌های نامحدود"
@@ -5013,6 +5099,10 @@ msgstr "داده‌های شما به‌طور ایمن ذخیره شده و ه
msgid "Your latest changes could not be saved."
msgstr "آخرین تغییرات شما ذخیره نشد."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "سبک‌های قدیمی شما تا زمانی که صریحاً این پیش‌نویس CSS معنایی را فعال نکنید، فعال می‌مانند."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "گذرواژهٔ شما با موفقیت تنظیم مجدد شد. اکنون می‌توانید با گذرواژهٔ جدید خود وارد شوید."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Tilivalikko"
msgid "Actions"
msgstr "Toiminnot"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivoi semanttinen CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Todellinen koko (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Lähetetyt hakemukset viikoittain (viimeiset 8 viikkoa)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Haettu"
@@ -489,9 +494,9 @@ msgstr "Haettu"
msgid "Applied on"
msgstr "Haettu"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Sovelletut säännöt"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Käytetty varoituksilla"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Tarkista sähköpostisi linkin löytämiseksi salasanan palauttamiseksi.
msgid "Check your email for a link to verify your account."
msgstr "Tarkista sähköpostisi linkin löytämiseksi tilisi vahvistamiseksi."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Tarkistetaan"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Luonnoksen tarkistaminen"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "kiina (yksinkertaistettu)"
@@ -966,6 +979,10 @@ msgstr "Keskustelu kopioitu."
msgid "Conversation JSON copied."
msgstr "Keskustelun JSON-tiedosto kopioitu."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Muunnettu tyylitiedoston luonnos"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopioitu leikepöydälle."
@@ -989,6 +1006,15 @@ msgstr "Kopioi varmuuskoodit"
msgid "Copy JSON"
msgstr "Kopioi JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopioi salaisuus"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopioi tyylitiedosto"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopioi tämä salainen avain ja käytä sitä sovelluksissasi tietojesi käsittelyyn."
@@ -1545,6 +1571,11 @@ msgstr "Muokkaa {chip}"
msgid "Edit application"
msgstr "Muokkaa hakemusta"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Muokkaa väriä {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Syötä salasanasi vahvistaaksesi kaksivaiheisen todennuksen käyttöön
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Syötä salasanasi poistaaksesi kaksivaiheisen todennuksen käytöstä. Tilisi on vähemmän suojattu ilman 2FA:ta."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Virhe"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Jokainen panos, suuri tai pieni, vaikuttaa valtavasti projektiin.<0/>Kiitos tuestasi!"
@@ -1682,6 +1717,10 @@ msgstr "Jokainen panos, suuri tai pieni, vaikuttaa valtavasti projektiin.<0/>Kii
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Kaikki, mitä tarvitset ammattimaisen ansioluettelon luomiseen, mukauttamiseen ja jakamiseen. Rakennettu yksityisyys edellä, avoimen lähdekoodin voimin ja täysin ilmainen ikuisesti."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Poistu tarkennustilasta"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Poistu koko näytöstä"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Muoto"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Muotoile tyylitiedosto"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Ilmainen"
@@ -2584,6 +2627,12 @@ msgstr "Vaalea"
msgid "Light theme"
msgstr "Vaalea teema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rivi {0}, sarake {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Riviväli"
@@ -2898,10 +2947,6 @@ msgstr "Ei vielä tallennettuja versioita."
msgid "No source data yet."
msgstr "Lähdetietoja ei vielä ole."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Ei vielä tyylisääntöjä."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Ei testattua tarjoajaa"
@@ -2918,6 +2963,10 @@ msgstr "norja"
msgid "Not connected"
msgstr "Ei yhdistetty"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Etkö ole varma, mitä kirjoittaa?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Avoin tekoälyavustaja"
msgid "Open Email Client"
msgstr "Avaa sähköpostiohjelma"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Avoin tarkennustila"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Avaa rakentajassa"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-yhteensopiva"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Paina <0>Enter</0> avataksesi"
msgid "Preview"
msgstr "Esikatselu"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Esikatsele ja vie käyttämällä viimeisintä kelvollista versiota."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Pääväri"
@@ -3374,10 +3432,22 @@ msgstr "Reaktiivinen ansioluettelo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiivinen ansioluettelo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Lue opas Mukautettujen tyylien käyttäminen."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Luetaan…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Valmis aktivoitavaksi"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Valmis aktivoitavaksi varoituksilla"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Vastaanottaja"
@@ -3394,6 +3464,10 @@ msgstr "Suorakulmio (täysi leveys)"
msgid "Redo"
msgstr "Tee uudelleen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Tee tyylitiedoston muokkaus uudelleen"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Palauta"
msgid "Reset Password"
msgstr "Palauta salasana"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Palauta tyyli"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Palauta käytettyyn tyylitiedostoon"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "romania"
msgid "Rotation"
msgstr "Kierrätys"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "sääntö"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "säännöt"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "valittu"
msgid "Self-Host with Docker"
msgstr "Itse-isännöinti Dockerilla"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semanttinen CSS-tyylitiedosto"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Lähetä viesti"
@@ -4152,6 +4222,14 @@ msgstr "Yliviivaus"
msgid "Strong fit"
msgstr "Vahva sopivuus"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Tyylitiedostoeditori"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Tyylitiedostossa on virheitä"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Etsimäsi sivu on ehkä siirretty tai sitä ei enää ole."
msgid "The password you entered is incorrect"
msgstr "Syöttämäsi salasana on virheellinen"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Ansioluettelon esikatselua ei voitu päivittää. Viimeisin kelvollinen esikatselu näkyy edelleen."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Ansioluettelo, johon yrität päästä, on salasanalla suojattu"
@@ -4639,6 +4721,10 @@ msgstr "Alleviivaus"
msgid "Undo"
msgstr "Kumoa"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Kumoa tyylitiedoston muokkaus"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Rajoittamattomasti ansioluetteloita"
@@ -5013,6 +5099,10 @@ msgstr "Tietosi tallennetaan turvallisesti eikä niitä koskaan jaeta kolmansill
msgid "Your latest changes could not be saved."
msgstr "Viimeisimpiä muutoksiasi ei voitu tallentaa."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vanhat tyylisi pysyvät aktiivisina, kunnes aktivoit tämän semanttisen CSS-luonnoksen erikseen."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Salasanasi on palautettu onnistuneesti. Voit nyt kirjautua sisään uudella salasanallasi."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu du compte"
msgid "Actions"
msgstr "Actes"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activer le CSS sémantique"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Taille réelle (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidatures envoyées par semaine (8 dernières semaines)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidature envoyée"
@@ -489,9 +494,9 @@ msgstr "Candidature envoyée"
msgid "Applied on"
msgstr "Postulé le"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Règles appliquées"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Appliqué avec avertissements"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Consultez votre messagerie pour obtenir un lien pour réinitialiser votr
msgid "Check your email for a link to verify your account."
msgstr "Consultez votre messagerie pour obtenir un lien pour vérifier votre compte."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Vérification"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Vérification du brouillon"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinois (simplifié)"
@@ -966,6 +979,10 @@ msgstr "Conversation copiée."
msgid "Conversation JSON copied."
msgstr "Conversation JSON copiée."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Brouillon de feuille de style converti"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copié dans le presse-papiers."
@@ -989,6 +1006,15 @@ msgstr "Copier les codes de secours"
msgid "Copy JSON"
msgstr "Copier le JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copier le secret"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copier la feuille de style"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copiez cette clé secrète et utilisez-la dans vos applications pour accéder à vos données."
@@ -1545,6 +1571,11 @@ msgstr "Modifier {chip}"
msgid "Edit application"
msgstr "Modifier la candidature"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Modifier la couleur {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Saisissez votre mot de passe pour confirmer la configuration de l'authen
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Saisissez votre mot de passe pour désactiver l'authentification à deux facteurs. Votre compte sera moins sécurisé si l'authentification à deux facteurs n'est pas activée."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Erreur"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Chaque contribution, petite ou grande, fait une énorme différence pour le projet.<0/>Merci pour votre soutien !"
@@ -1682,6 +1717,10 @@ msgstr "Chaque contribution, petite ou grande, fait une énorme différence pour
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tout ce dont vous avez besoin pour créer, personnaliser et partager des CV professionnels. Construit dans le respect de la vie privée, propulsé par l'open source, et entièrement gratuit pour toujours."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Quitter le mode de mise au point"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Quitter le mode plein écran"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Feuille de style de format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuit"
@@ -2584,6 +2627,12 @@ msgstr "Clair"
msgid "Light theme"
msgstr "Thème clair"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Ligne {0}, colonne {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Hauteur de ligne"
@@ -2898,10 +2947,6 @@ msgstr "Aucune version enregistrée pour le moment."
msgid "No source data yet."
msgstr "Aucune donnée de source pour le moment."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Pas encore de règles de style."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Fournisseur non testé"
@@ -2918,6 +2963,10 @@ msgstr "Norvégien"
msgid "Not connected"
msgstr "Non connecté"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Vous ne savez pas quoi écrire ?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Assistant Open AI"
msgid "Open Email Client"
msgstr "Ouvrir le client de messagerie"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Mode de mise au point ouvert"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Ouvrir dans le constructeur"
@@ -2992,6 +3045,7 @@ msgstr "Compatible avec OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Appuyez sur <0>Entrée</0> pour ouvrir"
msgid "Preview"
msgstr "Aperçu"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "L'aperçu et l'exportation utilisent la dernière version valide."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Couleur principale"
@@ -3374,10 +3432,22 @@ msgstr "React Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Consultez le guide « Application des styles personnalisés »."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lecture…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Prêt à activer"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Prêt à être activé avec avertissements"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinataire"
@@ -3394,6 +3464,10 @@ msgstr "Rectangle (pleine largeur)"
msgid "Redo"
msgstr "Refaire"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Rétablir la modification de la feuille de style"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Réinitialiser"
msgid "Reset Password"
msgstr "Réinitialiser le mot de passe"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Réinitialiser le style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Réinitialiser la feuille de style appliquée"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Roumain"
msgid "Rotation"
msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "règle"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "règles"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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é."
@@ -3791,6 +3857,10 @@ msgstr "sélectionné"
msgid "Self-Host with Docker"
msgstr "Auto-hébergement avec Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Feuille de style CSS sémantique"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Envoyer un message"
@@ -4152,6 +4222,14 @@ msgstr "Barré"
msgid "Strong fit"
msgstr "Forte adéquation"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Éditeur de feuilles de style"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "La feuille de style contient des erreurs"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "La page que vous recherchez a peut-être été déplacée ou n'existe pl
msgid "The password you entered is incorrect"
msgstr "Le mot de passe saisi est incorrect"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "L'aperçu du CV n'a pas pu être mis à jour. Le dernier aperçu valide est toujours affiché."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Le CV auquel vous essayez d'accéder est protégé par un mot de passe"
@@ -4639,6 +4721,10 @@ msgstr "Souligner"
msgid "Undo"
msgstr "Défaire"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Annuler la modification de la feuille de style"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "CVs illimités"
@@ -5013,6 +5099,10 @@ msgstr "Vos données sont stockées en toute sécurité et ne sont jamais partag
msgid "Your latest changes could not be saved."
msgstr "Vos dernières modifications n'ont pas pu être enregistrées."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vos styles hérités restent actifs jusqu'à ce que vous activiez explicitement ce brouillon CSS sémantique."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Votre mot de passe a été réinitialisé avec succès. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "תפריט חשבון"
msgid "Actions"
msgstr "פעולות"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "הפעלת CSS סמנטי"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "גודל אמיתי (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "מועמדויות שנשלחו בשבוע (8 השבועות האחרונים)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "הוגש"
@@ -489,9 +494,9 @@ msgstr "הוגש"
msgid "Applied on"
msgstr "הוגש בתאריך"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "כללים יישומיים"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "יושם עם אזהרות"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "נא לבדוק את הדוא״ל שלך לקישור לאיפוס הס
msgid "Check your email for a link to verify your account."
msgstr "נא לבדוק את הדוא״ל שלך לקישור לאימות החשבון."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "בודק"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "בודק טיוטה"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "סינית (מופשטת)"
@@ -966,6 +979,10 @@ msgstr "השיחה הועתקה."
msgid "Conversation JSON copied."
msgstr "קובץ JSON של השיחה הועתק."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "טיוטת גיליון סגנונות שהומרה"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "הועתק ללוח."
@@ -989,6 +1006,15 @@ msgstr "העתקת קודי גיבוי"
msgid "Copy JSON"
msgstr "העתקת JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "העתק סוד"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "העתקת גיליון סגנונות"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "העתק את המפתח הסודי הזה והשתמש בו ביישומים שלך כדי לגשת לנתונים שלך."
@@ -1545,6 +1571,11 @@ msgstr "ערוך {chip}"
msgid "Edit application"
msgstr "ערוך מועמדות"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "עריכת צבע {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "הזן את הסיסמה שלך כדי לאשר הגדרת אימות ד
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "הזן את הסיסמה שלך כדי להשבית אימות דו־שלבי. החשבון שלך יהיה פחות מאובטח ללא אימות דו־שלבי."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "שְׁגִיאָה"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "כל תרומה, קטנה כגדולה, עושה הבדל גדול למיזם.<0/>תודה על התמיכה!"
@@ -1682,6 +1717,10 @@ msgstr "כל תרומה, קטנה כגדולה, עושה הבדל גדול למ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "כל מה שצריך כדי ליצור, להתאים אישית ולשתף קורות חיים מקצועיים. נבנה עם דגש על פרטיות, מונע בקוד פתוח וחינמי לחלוטין לנצח."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "יציאה ממצב מיקוד"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "יציאה ממסך מלא"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "תבנית"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "עיצוב גיליון סגנונות"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "חינמי"
@@ -2584,6 +2627,12 @@ msgstr "בהירה"
msgid "Light theme"
msgstr "ערכת עיצוב בהירה"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "שורה {0}, עמודה {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "גובה שורה"
@@ -2898,10 +2947,6 @@ msgstr "עדיין אין גרסאות שנשמרו."
msgid "No source data yet."
msgstr "אין עדיין נתוני מקור."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "עדיין אין חוקי סגנון."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "אין ספק שנבדק"
@@ -2918,6 +2963,10 @@ msgstr "נורווגית"
msgid "Not connected"
msgstr "לא מחובר"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "לא בטוחים מה לכתוב?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "פתח את עוזר הבינה המלאכותית"
msgid "Open Email Client"
msgstr "פתיחת תוכנת הדוא\"ל"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "פתיחת מצב מיקוד"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "פתח בבונה"
@@ -2992,6 +3045,7 @@ msgstr "תואם ל-OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "לחץ על <0>Enter</0> כדי לפתוח"
msgid "Preview"
msgstr "תצוגה מקדימה"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "תצוגה מקדימה וייצוא משתמשים בגרסה התקינה האחרונה."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "צבע עיקרי"
@@ -3374,10 +3432,22 @@ msgstr "קורות חיים ריאקטיביים v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "קורות חיים תגובתיים גרסה 4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "קרא את המדריך להחלת סגנונות מותאמים אישית."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "קורא…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "מוכן להפעלה"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "מוכן להפעלה עם אזהרות"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "נמען"
@@ -3394,6 +3464,10 @@ msgstr "מלבן (רוחב מלא)"
msgid "Redo"
msgstr "לַעֲשׂוֹת שׁוּב"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "בצע שוב עריכת גיליון סגנונות"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "איפוס"
msgid "Reset Password"
msgstr "איפוס סיסמה"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "איפוס סגנון"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "איפוס לגיליון הסגנונות שהוחל"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "רומנית"
msgid "Rotation"
msgstr "סיבוב"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "כְּלָל"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "כללים"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "בצע את הניתוח הראשון שלך כדי לקבל דוח ביצועים, נקודות חוזק והצעות מסודרות לפי סדר עדיפויות."
@@ -3791,6 +3857,10 @@ msgstr "נבחר"
msgid "Self-Host with Docker"
msgstr "אירוח עצמי עם Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "גיליון סגנונות CSS סמנטי"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "שלח הודעה"
@@ -4152,6 +4222,14 @@ msgstr "קו חוצה"
msgid "Strong fit"
msgstr "התאמה חזקה"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "עורך גיליון סגנונות"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "גיליון הסגנונות מכיל שגיאות"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "סברדיט"
@@ -4308,6 +4386,10 @@ msgstr "ייתכן שהדף שאתה מחפש הועבר או שכבר אינו
msgid "The password you entered is incorrect"
msgstr "הסיסמה שהזנת שגויה"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "לא ניתן היה לעדכן את התצוגה המקדימה של קורות החיים. התצוגה המקדימה האחרונה התקפה עדיין מוצגת."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "קורות החיים שאליהם ניסית לגשת מוגנים בסיסמה"
@@ -4639,6 +4721,10 @@ msgstr "קו תחתון"
msgid "Undo"
msgstr "לְבַטֵל"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "בטל עריכת גיליון סגנונות"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "מסמכי קורות חיים ללא הגבלה"
@@ -5013,6 +5099,10 @@ msgstr "הנתונים שלך מאוחסנים בצורה מאובטחת ולע
msgid "Your latest changes could not be saved."
msgstr "לא ניתן היה לשמור את השינויים האחרונים שלך."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "סגנונות ה-Derospace שלך יישארו פעילים עד שתפעיל במפורש טיוטת CSS סמנטית זו."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "הסיסמה שלך אופסה בהצלחה. כעת אפשר להתחבר עם הסיסמה החדשה שלך."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "खाता मेनू"
msgid "Actions"
msgstr "कार्रवाइयाँ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "सिमेंटिक सीएसएस को सक्रिय करें"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "वास्तविक आकार (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "प्रति सप्ताह भेजे गए आवेदन (पिछले 8 सप्ताह)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "आवेदन किया"
@@ -489,9 +494,9 @@ msgstr "आवेदन किया"
msgid "Applied on"
msgstr "आवेदन की तारीख"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "लागू नियम"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "चेतावनी सहित लागू"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "अपना पासवर्ड रीसेट करने के
msgid "Check your email for a link to verify your account."
msgstr "अपना खाता सत्यापित करने के लिए लिंक के लिए अपना ईमेल जाँचें।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "चेकिंग"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "मसौदे की जाँच"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "चीनी (सरलीकृत)"
@@ -966,6 +979,10 @@ msgstr "बातचीत कॉपी हो गई।"
msgid "Conversation JSON copied."
msgstr "वार्तालाप का JSON कॉपी हो गया।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "रूपांतरित स्टाइलशीट ड्राफ्ट"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "क्लिपबोर्ड पर कॉपी किया गया।"
@@ -989,6 +1006,15 @@ msgstr "बैकअप कोड कॉपी करें"
msgid "Copy JSON"
msgstr "JSON कॉपी करें"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "गुप्त प्रतिलिपि"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "स्टाइलशीट कॉपी करें"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "इस सीक्रेट कुंजी को कॉपी करें और अपने ऐप्लिकेशन्स में अपने डेटा तक पहुँचने के लिए इसका उपयोग करें।"
@@ -1545,6 +1571,11 @@ msgstr "संपादित करें {chip}"
msgid "Edit application"
msgstr "आवेदन संपादित करें"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "रंग संपादित करें {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "दो‑कारक प्रमाणीकरण सेटअप क
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "दो‑कारक प्रमाणीकरण अक्षम करने के लिए अपना पासवर्ड दर्ज करें। 2FA सक्षम न होने पर आपका खाता कम सुरक्षित रहेगा।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "गलती"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "हर योगदान, बड़ा या छोटा, प्रोजेक्ट के लिए बहुत बड़ा अंतर लाता है।<0/>आपके समर्थन के लिए धन्यवाद!"
@@ -1682,6 +1717,10 @@ msgstr "हर योगदान, बड़ा या छोटा, प्र
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "पेशेवर रेज़्यूमे बनाने, अनुकूलित करने और साझा करने के लिए आपको जो कुछ भी चाहिए। गोपनीयता को ध्यान में रखकर बनाया गया, ओपन‑सोर्स द्वारा संचालित और हमेशा के लिए पूरी तरह मुफ़्त।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "फोकस मोड से बाहर निकलें"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रीन से बाहर निकलें"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "फॉर्मेट"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "प्रारूप शैलीपत्र"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "मुफ़्त"
@@ -2584,6 +2627,12 @@ msgstr "हल्का रंग"
msgid "Light theme"
msgstr "लाइट थीम"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "पंक्ति {0}, स्तंभ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "पंक्ति ऊँचाई"
@@ -2898,10 +2947,6 @@ msgstr "अभी तक कोई सहेजे गए संस्करण
msgid "No source data yet."
msgstr "अभी कोई स्रोत डेटा नहीं।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "अभी तक कोई शैली संबंधी नियम नहीं हैं।"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "कोई परीक्षित प्रदाता नहीं"
@@ -2918,6 +2963,10 @@ msgstr "नॉर्वेजियन"
msgid "Not connected"
msgstr "जुड़े नहीं हैं"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "मैं आश्वस्त नहीं हूं कि क्या लिखना है?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "ओपन एआई सहायक"
msgid "Open Email Client"
msgstr "ईमेल क्लाइंट खोलें"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ओपन फोकस मोड"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "बिल्डर में खोलें"
@@ -2992,6 +3045,7 @@ msgstr "ओपनएआई-संगत"
msgid "OpenRouter"
msgstr "ओपनराउटर"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "खोलने के लिए <0>Enter</0> दबाएँ"
msgid "Preview"
msgstr "पूर्व दर्शन"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "पूर्वावलोकन और निर्यात के लिए अंतिम मान्य संस्करण का उपयोग करें।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "प्राथमिक रंग"
@@ -3374,10 +3432,22 @@ msgstr "रिएक्टिव रिज्यूम v<0>{__APP_VERSION__}</0>
msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील रिज़्यूमे v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "कस्टम स्टाइल लागू करने संबंधी गाइड पढ़ें।"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "पढ़ा जा रहा है…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "सक्रिय करने के लिए तैयार"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "चेतावनी सहित सक्रिय करने के लिए तैयार"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "प्राप्तकर्ता"
@@ -3394,6 +3464,10 @@ msgstr "आयत (पूर्ण चौड़ाई)"
msgid "Redo"
msgstr "फिर से करना"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "स्टाइलशीट संपादन को पुनः करें"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "रीसेट"
msgid "Reset Password"
msgstr "पासवर्ड रीसेट करें"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "शैली रीसेट करें"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "लागू स्टाइलशीट पर रीसेट करें"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "रोमानियाई"
msgid "Rotation"
msgstr "रोटेशन"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "नियम"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "नियम"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "अपना पहला विश्लेषण चलाएँ ताकि आपको एक स्कोरकार्ड, ताकतें और प्राथमिकता-आधारित सुझाव मिल सकें।"
@@ -3791,6 +3857,10 @@ msgstr "चुना गया"
msgid "Self-Host with Docker"
msgstr "डॉकर के साथ स्व‑मेज़बान"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "सिमेंटिक सीएसएस स्टाइलशीट"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "मेसेज भेजें"
@@ -4152,6 +4222,14 @@ msgstr "स्ट्राइक"
msgid "Strong fit"
msgstr "मजबूत उपयुक्तता"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "स्टाइलशीट संपादक"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "स्टाइलशीट में त्रुटियाँ हैं"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "सबरेडिट"
@@ -4308,6 +4386,10 @@ msgstr "आप जिस पेज को ढूंढ रहे हैं, व
msgid "The password you entered is incorrect"
msgstr "आपके द्वारा दर्ज किया गया पासवर्ड गलत है"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "रिज्यूमे का पूर्वावलोकन अपडेट नहीं हो सका। पिछला वैध पूर्वावलोकन अभी भी प्रदर्शित हो रहा है।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "जिस रेज़्यूमे तक आप पहुँचने की कोशिश कर रहे हैं वह पासवर्ड से सुरक्षित है"
@@ -4639,6 +4721,10 @@ msgstr "रेखांकित"
msgid "Undo"
msgstr "पूर्ववत"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "स्टाइलशीट संपादन को पूर्ववत करें"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "असीमित रेज़्यूमे"
@@ -5013,6 +5099,10 @@ msgstr "आपका डेटा सुरक्षित रूप से स
msgid "Your latest changes could not be saved."
msgstr "आपके नवीनतम परिवर्तन सहेजे नहीं जा सके।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "जब तक आप इस सिमेंटिक सीएसएस ड्राफ्ट को स्पष्ट रूप से सक्रिय नहीं करते, तब तक आपकी पुरानी शैलियाँ सक्रिय रहेंगी।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "आपका पासवर्ड सफलतापूर्वक रीसेट कर दिया गया है। अब आप अपने नए पासवर्ड से साइन इन कर सकते हैं।"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Fiók menü"
msgid "Actions"
msgstr "Műveletek"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Szemantikus CSS aktiválása"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Valós méret (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Hetente elküldött jelentkezések (az elmúlt 8 hét)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Jelentkezve"
@@ -489,9 +494,9 @@ msgstr "Jelentkezve"
msgid "Applied on"
msgstr "Jelentkezés dátuma"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Alkalmazott szabályok"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Figyelmeztetésekkel alkalmazva"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Ellenőrizd az e‑mailedet a jelszó visszaállításához szükséges
msgid "Check your email for a link to verify your account."
msgstr "Ellenőrizd az e‑mailedet a fiókod megerősítéséhez szükséges linkért."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Ellenőrzés"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Vázlat ellenőrzése"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "kínai (egyszerűsített)"
@@ -966,6 +979,10 @@ msgstr "Beszélgetés másolva."
msgid "Conversation JSON copied."
msgstr "A beszélgetés JSON-fájlja másolva."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Stíluslap-tervezet konvertálása"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "A vágólapra másolva."
@@ -989,6 +1006,15 @@ msgstr "Biztonsági kódok másolása"
msgid "Copy JSON"
msgstr "JSON másolása"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Titkos kód másolása"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stíluslap másolása"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Másold ki ezt a titkos kulcsot, és használd az alkalmazásaidban az adataid eléréséhez."
@@ -1545,6 +1571,11 @@ msgstr "Szerkesztés {chip}"
msgid "Edit application"
msgstr "Jelentkezés szerkesztése"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Szín szerkesztése {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Add meg a jelszavadat a kétlépcsős hitelesítés beállításának me
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Add meg a jelszavadat a kétlépcsős hitelesítés kikapcsolásához. A fiókod kevésbé lesz biztonságos 2FA nélkül."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Hiba"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Minden hozzájárulás – legyen kicsi vagy nagy – hatalmas különbséget jelent a projekt számára.<0/>Köszönjük a támogatásodat!"
@@ -1682,6 +1717,10 @@ msgstr "Minden hozzájárulás – legyen kicsi vagy nagy – hatalmas különbs
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Minden, amire szükséged van professzionális önéletrajzok létrehozásához, testreszabásához és megosztásához. Adatvédelemre tervezve, nyílt forráskóddal működve és teljesen ingyen, örökre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Kilépés a fókuszmódból"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Kilépés a teljes képernyőből"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formátum"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stíluslap formázása"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Ingyenes"
@@ -2584,6 +2627,12 @@ msgstr "Világos"
msgid "Light theme"
msgstr "Világos téma"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Sor {0}, oszlop {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Sorköz"
@@ -2898,10 +2947,6 @@ msgstr "Még nincsenek mentett verziók."
msgid "No source data yet."
msgstr "Még nincs forrásadat."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Stílusra még nincsenek szabályok."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Nincs tesztelt szolgáltató"
@@ -2918,6 +2963,10 @@ msgstr "norvég"
msgid "Not connected"
msgstr "Nincs csatlakoztatva"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nem tudod, mit írj?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Nyílt AI asszisztens"
msgid "Open Email Client"
msgstr "E‑mail kliens megnyitása"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Nyitott fókusz mód"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Megnyitás a szerkesztőben"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-kompatibilis"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Nyomja meg az <0>Entert</0> a megnyitáshoz"
msgid "Preview"
msgstr "Előnézet"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Az előnézet és az exportálás a legutóbbi érvényes verziót használja."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Elsődleges szín"
@@ -3374,10 +3432,22 @@ msgstr "Reaktív önéletrajz v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktív önéletrajz v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Olvasd el az Egyéni stílusok alkalmazása útmutatót."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Olvasás…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Aktiválásra kész"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Aktiválásra kész, figyelmeztetésekkel"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Címzett"
@@ -3394,6 +3464,10 @@ msgstr "Téglalap (teljes szélesség)"
msgid "Redo"
msgstr "Újra"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stíluslap szerkesztésének megismétlése"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Visszaállítás"
msgid "Reset Password"
msgstr "Jelszó visszaállítása"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Stílus visszaállítása"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Visszaállítás az alkalmazott stíluslapra"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Román"
msgid "Rotation"
msgstr "Forgatás"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "szabály"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "szabályok"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "kijelölve"
msgid "Self-Host with Docker"
msgstr "Önálló hosztolás Dockerrel"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Szemantikus CSS stíluslap"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Üzenet küldése"
@@ -4152,6 +4222,14 @@ msgstr "Áthúzás"
msgid "Strong fit"
msgstr "Erős illeszkedés"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stíluslap-szerkesztő"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "A stíluslap hibákat tartalmaz"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Lehetséges, hogy a keresett oldal áthelyeződött, vagy már nem léte
msgid "The password you entered is incorrect"
msgstr "A megadott jelszó helytelen"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Az önéletrajz előnézetét nem sikerült frissíteni. Az utolsó érvényes előnézet továbbra is látható."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "A megnyitni kívánt önéletrajz jelszóval védett"
@@ -4639,6 +4721,10 @@ msgstr "Aláhúzás"
msgid "Undo"
msgstr "Visszavonás"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stíluslap szerkesztésének visszavonása"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Korlátlan önéletrajz"
@@ -5013,6 +5099,10 @@ msgstr "Az adataid biztonságosan tároljuk, és soha nem osztjuk meg harmadik f
msgid "Your latest changes could not be saved."
msgstr "A legutóbbi módosításokat nem sikerült menteni."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "A korábbi stílusok aktívak maradnak, amíg explicit módon nem aktiválja ezt a szemantikus CSS-tervezetet."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "A jelszavadat sikeresen visszaállítottuk. Mostantól az új jelszóval jelentkezhetsz be."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "Menu Akun"
msgid "Actions"
msgstr "Tindakan"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktifkan CSS Semantik"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Ukuran sebenarnya (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Lamaran dikirim per minggu (8 minggu terakhir)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Dilamar"
@@ -489,9 +494,9 @@ msgstr "Dilamar"
msgid "Applied on"
msgstr "Dilamar pada"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Aturan yang Diterapkan"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Diterapkan dengan peringatan"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Periksa email Anda untuk tautan mengatur ulang kata sandi."
msgid "Check your email for a link to verify your account."
msgstr "Periksa email Anda untuk tautan memverifikasi akun Anda."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Memeriksa"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Memeriksa draf"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Cina (Sederhana)"
@@ -966,6 +979,10 @@ msgstr "Percakapan disalin."
msgid "Conversation JSON copied."
msgstr "JSON percakapan telah disalin."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Draf stylesheet yang telah dikonversi"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Disalin ke papan klip."
@@ -989,6 +1006,15 @@ msgstr "Salin Kode Cadangan"
msgid "Copy JSON"
msgstr "Salin JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Salin rahasia"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Salin stylesheet"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Salin kunci rahasia ini dan gunakan di aplikasi Anda untuk mengakses data Anda."
@@ -1545,6 +1571,11 @@ msgstr "Sunting {chip}"
msgid "Edit application"
msgstr "Edit lamaran"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edit warna {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Masukkan kata sandi Anda untuk mengonfirmasi penyiapan autentikasi dua f
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Masukkan kata sandi Anda untuk menonaktifkan autentikasi dua faktor. Akun Anda akan menjadi kurang aman tanpa 2FA diaktifkan."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Kesalahan"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Setiap kontribusi, besar atau kecil, membuat perbedaan besar bagi proyek ini.<0/>Terima kasih atas dukungan Anda!"
@@ -1682,6 +1717,10 @@ msgstr "Setiap kontribusi, besar atau kecil, membuat perbedaan besar bagi proyek
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Segala yang Anda butuhkan untuk membuat, menyesuaikan, dan membagikan resume profesional. Dibangun dengan mengutamakan privasi, didukung oleh sumber terbuka, dan sepenuhnya gratis selamanya."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Keluar dari mode fokus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Keluar dari Layar Penuh"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Format stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Terang"
msgid "Light theme"
msgstr "Tema terang"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Baris {0}, kolom {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Tinggi Baris"
@@ -2898,10 +2947,6 @@ msgstr "Belum ada versi yang tersimpan."
msgid "No source data yet."
msgstr "Belum ada data sumber."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Belum ada aturan gaya."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Tidak ada penyedia yang teruji"
@@ -2918,6 +2963,10 @@ msgstr "Norwegia"
msgid "Not connected"
msgstr "Tidak terhubung"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Tidak yakin harus menulis apa?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Asisten AI terbuka"
msgid "Open Email Client"
msgstr "Buka Klien Email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Mode fokus terbuka"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Buka di pembangun"
@@ -2992,6 +3045,7 @@ msgstr "Kompatibel dengan OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Tekan <0>Enter</0> untuk membuka"
msgid "Preview"
msgstr "Pratinjau"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Pratinjau dan ekspor menggunakan versi valid terakhir."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -3374,10 +3432,22 @@ msgstr "Reaktif Lanjutkan v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Lanjutkan Reaktif v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Bacalah panduan Menerapkan Gaya Kustom."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Membaca…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Siap diaktifkan"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Siap diaktifkan dengan peringatan"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Penerima"
@@ -3394,6 +3464,10 @@ msgstr "Persegi Panjang (Lebar Penuh)"
msgid "Redo"
msgstr "Mengulangi"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ulangi pengeditan stylesheet"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Atur Ulang"
msgid "Reset Password"
msgstr "Atur Ulang Kata Sandi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Atur Ulang Gaya"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Atur ulang ke stylesheet yang diterapkan"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumania"
msgid "Rotation"
msgstr "Rotasi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "aturan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "aturan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "dipilih"
msgid "Self-Host with Docker"
msgstr "Self-Host dengan Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Lembar gaya CSS semantik"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Kirim pesan"
@@ -4152,6 +4222,14 @@ msgstr "Coret"
msgid "Strong fit"
msgstr "Sangat cocok"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor lembar gaya"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stylesheet memiliki kesalahan"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Halaman yang Anda cari mungkin telah dipindahkan atau sudah tidak ada la
msgid "The password you entered is incorrect"
msgstr "Kata sandi yang Anda masukkan salah"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Pratinjau resume tidak dapat diperbarui. Pratinjau valid terakhir masih ditampilkan."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Resume yang Anda coba akses dilindungi kata sandi"
@@ -4639,6 +4721,10 @@ msgstr "Garis Bawah"
msgid "Undo"
msgstr "Membuka"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Batalkan pengeditan stylesheet"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Resume Tak Terbatas"
@@ -5013,6 +5099,10 @@ msgstr "Data Anda disimpan dengan aman dan tidak pernah dibagikan dengan pihak k
msgid "Your latest changes could not be saved."
msgstr "Perubahan terbaru Anda tidak dapat disimpan."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Gaya lama Anda tetap aktif hingga Anda secara eksplisit mengaktifkan draf CSS Semantik ini."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Kata sandi Anda telah berhasil diatur ulang. Anda sekarang dapat masuk dengan kata sandi baru Anda."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu dell'account"
msgid "Actions"
msgstr "Azioni"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Attiva il CSS semantico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Dimensioni reali (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidature inviate a settimana (ultime 8 settimane)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidatura inviata"
@@ -489,9 +494,9 @@ msgstr "Candidatura inviata"
msgid "Applied on"
msgstr "Candidatura inviata il"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Regole applicate"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Applicato con avvertenze"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Controlla la tua email per un link per reimpostare la password."
msgid "Check your email for a link to verify your account."
msgstr "Controlla la tua email per un link per verificare il tuo account."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Controllo"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Controllo della bozza"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Cinese (semplificato)"
@@ -966,6 +979,10 @@ msgstr "Conversazione copiata."
msgid "Conversation JSON copied."
msgstr "Copia del JSON della conversazione."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Bozza del foglio di stile convertito"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiato negli appunti."
@@ -989,6 +1006,15 @@ msgstr "Copia codici di backup"
msgid "Copy JSON"
msgstr "Copia JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copia il segreto"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copia foglio di stile"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copia questa chiave segreta e usala nelle tue applicazioni per accedere ai tuoi dati."
@@ -1545,6 +1571,11 @@ msgstr "Modifica {chip}"
msgid "Edit application"
msgstr "Modifica candidatura"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Modifica colore {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Inserisci la tua password per confermare la configurazione dell'autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Inserisci la tua password per disabilitare l'autenticazione a due fattori. Il tuo account sarà meno sicuro senza 2FA attiva."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Errore"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Ogni contributo, grande o piccolo, fa una grande differenza per il progetto.<0/>Grazie per il tuo supporto!"
@@ -1682,6 +1717,10 @@ msgstr "Ogni contributo, grande o piccolo, fa una grande differenza per il proge
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tutto ciò di cui hai bisogno per creare, personalizzare e condividere curriculum professionali. Creato pensando alla privacy, alimentato dall'open source e completamente gratuito per sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Esci dalla modalità di messa a fuoco"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Esci dalla modalità a schermo intero"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formato"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formato foglio di stile"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuito"
@@ -2584,6 +2627,12 @@ msgstr "Chiaro"
msgid "Light theme"
msgstr "Tema chiaro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Riga {0}, colonna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altezza linea"
@@ -2898,10 +2947,6 @@ msgstr "Nessuna versione salvata al momento."
msgid "No source data yet."
msgstr "Ancora nessun dato sorgente."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Non sono ancora state definite delle regole di stile."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Nessun fornitore segnalato"
@@ -2918,6 +2963,10 @@ msgstr "Norvegese"
msgid "Not connected"
msgstr "Non connesso"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Non sai cosa scrivere?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Assistente Open AI"
msgid "Open Email Client"
msgstr "Apri client email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modalità di messa a fuoco aperta"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Apri nel generatore"
@@ -2992,6 +3045,7 @@ msgstr "Compatibile con OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Premere <0>Invio</0> per aprire"
msgid "Preview"
msgstr "Anteprima"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "L'anteprima e l'esportazione utilizzano l'ultima versione valida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Colore primario"
@@ -3374,10 +3432,22 @@ msgstr "Ripresa reattiva v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Ripresa reattiva v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Leggi la guida \"Applicazione di stili personalizzati\"."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lettura…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pronto per l'attivazione"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pronto per l'attivazione con avvisi"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatario"
@@ -3394,6 +3464,10 @@ msgstr "Rettangolo (larghezza completa)"
msgid "Redo"
msgstr "Rifare"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Riesegui la modifica del foglio di stile"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Ripristina"
msgid "Reset Password"
msgstr "Reimposta password"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Ripristina stile"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Ripristina il foglio di stile applicato"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumeno"
msgid "Rotation"
msgstr "Rotazione"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regola"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regole"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "selezionati"
msgid "Self-Host with Docker"
msgstr "Self-host con Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Foglio di stile CSS semantico"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Invia messaggio"
@@ -4152,6 +4222,14 @@ msgstr "Barrato"
msgid "Strong fit"
msgstr "Ottima corrispondenza"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor di fogli di stile"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Il foglio di stile presenta degli errori"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "La pagina che stai cercando potrebbe essere stata spostata o non esister
msgid "The password you entered is incorrect"
msgstr "La password inserita non è corretta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Impossibile aggiornare l'anteprima del curriculum. Viene ancora visualizzata l'ultima anteprima valida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Il curriculum a cui stai cercando di accedere è protetto da password"
@@ -4639,6 +4721,10 @@ msgstr "Sottolinea"
msgid "Undo"
msgstr "Disfare"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Annulla la modifica del foglio di stile"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Curriculum illimitati"
@@ -5013,6 +5099,10 @@ msgstr "I tuoi dati sono archiviati in modo sicuro e non vengono mai condivisi c
msgid "Your latest changes could not be saved."
msgstr "Impossibile salvare le ultime modifiche."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "I tuoi stili legacy rimarranno attivi finché non attiverai esplicitamente questa bozza di CSS semantico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "La tua password è stata reimpostata correttamente. Ora puoi accedere con la tua nuova password."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "アカウントメニュー"
msgid "Actions"
msgstr "操作"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "セマンティックCSSを有効にする"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "実寸大(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "週ごとの応募送信数(直近8週間)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "応募済み"
@@ -489,9 +494,9 @@ msgstr "応募済み"
msgid "Applied on"
msgstr "応募日"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "適用中のルール"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "警告付きで適用"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "パスワードをリセットするリンクを記載したメールを
msgid "Check your email for a link to verify your account."
msgstr "アカウントを認証するリンクを記載したメールを確認してください。"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "チェック中"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "下書きの確認"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "中国語(簡体字)"
@@ -966,6 +979,10 @@ msgstr "会話内容をコピーしました。"
msgid "Conversation JSON copied."
msgstr "会話のJSONデータがコピーされました。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "変換されたスタイルシートのドラフト"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "クリップボードにコピーしました。"
@@ -989,6 +1006,15 @@ msgstr "バックアップコードをコピー"
msgid "Copy JSON"
msgstr "JSONをコピー"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "コピーシークレット"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "スタイルシートをコピー"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "このシークレットキーをコピーし、アプリケーションで使用してデータにアクセスしてください。"
@@ -1545,6 +1571,11 @@ msgstr "編集 {chip}"
msgid "Edit application"
msgstr "応募を編集"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "色を編集 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "二要素認証を設定することを確定するために、パスワ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "二要素認証を無効にするには、パスワードを入力してください。2FA を無効化すると、アカウントのセキュリティレベルは下がります。"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "エラー"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "すべてのご支援は、大きくても小さくても、このプロジェクトにとって大きな力になります。<0/>ご支援ありがとうございます。"
@@ -1682,6 +1717,10 @@ msgstr "すべてのご支援は、大きくても小さくても、このプロ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "プロフェッショナルな履歴書・職務経歴書を作成・カスタマイズ・共有するために必要な機能がすべて揃っています。プライバシーを重視して設計され、オープンソースによって支えられ、そして完全に無料で利用できます。"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "フォーカスモードを終了する"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "全画面表示を終了"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "フォーマット"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "書式スタイルシート"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "無料"
@@ -2584,6 +2627,12 @@ msgstr "ライト"
msgid "Light theme"
msgstr "ライトテーマ"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "行 {0}、列 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "行の高さ"
@@ -2898,10 +2947,6 @@ msgstr "まだ保存されたバージョンはありません。"
msgid "No source data yet."
msgstr "ソースデータはまだありません。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "まだスタイルに関するルールはありません。"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "テスト済みのプロバイダーはありません"
@@ -2918,6 +2963,10 @@ msgstr "ノルウェー語"
msgid "Not connected"
msgstr "接続されていません"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "何を書けばいいか分からない?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "OpenAIアシスタント"
msgid "Open Email Client"
msgstr "メールクライアントを開く"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "オープンフォーカスモード"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ビルダーで開く"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI互換"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "<0>Enter</0>キーを押して開く"
msgid "Preview"
msgstr "プレビュー"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "プレビューとエクスポートには、最新の有効なバージョンを使用してください。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "メインカラー"
@@ -3374,10 +3432,22 @@ msgstr "リアクティブレジューム v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "カスタムスタイルの適用ガイドをお読みください。"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "読み込み中…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "起動準備完了"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "警告付きで有効化準備完了"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "宛先"
@@ -3394,6 +3464,10 @@ msgstr "長方形(全幅)"
msgid "Redo"
msgstr "やり直し"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "スタイルシートの編集をやり直す"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "リセット"
msgid "Reset Password"
msgstr "パスワードをリセット"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "スタイルをリセット"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "適用済みのスタイルシートにリセットします"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "ルーマニア語"
msgid "Rotation"
msgstr "回転"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "ルール"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "ルール"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "分析を実行すると、スコアカード・強み・改善提案が表示されます。"
@@ -3791,6 +3857,10 @@ msgstr "選択済み"
msgid "Self-Host with Docker"
msgstr "Docker でセルフホスト"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "セマンティックCSSスタイルシート"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "メッセージを送信"
@@ -4152,6 +4222,14 @@ msgstr "取り消し線"
msgid "Strong fit"
msgstr "高い適合度"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "スタイルシートエディタ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "スタイルシートにエラーがあります"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "お探しのページは移動されたか、既に存在しない可能
msgid "The password you entered is incorrect"
msgstr "入力されたパスワードが正しくありません。"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "履歴書のプレビューを更新できませんでした。最後に有効だったプレビューが表示されたままです。"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "アクセスしようとしているレジュメはパスワードで保護されています"
@@ -4639,6 +4721,10 @@ msgstr "下線"
msgid "Undo"
msgstr "元に戻す"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "スタイルシートの編集を元に戻す"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "レジュメを無制限に作成"
@@ -5013,6 +5099,10 @@ msgstr "あなたのデータは安全に保存され、第三者と共有され
msgid "Your latest changes could not be saved."
msgstr "最新の変更内容を保存できませんでした。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "このセマンティックCSSドラフトを明示的に有効化するまで、既存のスタイルは有効なままです。"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "パスワードを正常にリセットしました。新しいパスワードでサインインできます。"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: km\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "ម៉ឺនុយគណនី"
msgid "Actions"
msgstr "សកម្មភាព"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "ធ្វើឱ្យ CSS ន័យវិទ្យាសកម្ម"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ទំហំពិត (១០០%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ពាក្យសុំបានផ្ញើក្នុងមួយសប្តាហ៍ (៨ សប្តាហ៍ចុងក្រោយ)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "បានដាក់ពាក្យ"
@@ -489,9 +494,9 @@ msgstr "បានដាក់ពាក្យ"
msgid "Applied on"
msgstr "បានដាក់ពាក្យនៅ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "ច្បាប់ដែលបានអនុវត្ត"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "អនុវត្តជាមួយការព្រមាន"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "ពិនិត្យ​អ៊ីមែល​របស់​អ្នក
msgid "Check your email for a link to verify your account."
msgstr "ពិនិត្យ​អ៊ីមែល​របស់​អ្នក​សម្រាប់​តំណ​មួយ ដើម្បី​ផ្ទៀងផ្ទាត់​គណនី​របស់​អ្នក។"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "កំពុងត្រួតពិនិត្យ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "កំពុងពិនិត្យមើលសេចក្តីព្រាង"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinese (Simplified)"
@@ -966,6 +979,10 @@ msgstr "បានចម្លងការសន្ទនា។"
msgid "Conversation JSON copied."
msgstr "បានចម្លង JSON នៃការសន្ទនា។"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "សេចក្តីព្រាងសន្លឹករចនាប័ទ្មដែលបានបម្លែង"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "បានចម្លងទៅក្ដារតម្បៀតខ្ទាស់។"
@@ -989,6 +1006,15 @@ msgstr "ចម្លង​កូដ​បម្រុងទុក"
msgid "Copy JSON"
msgstr "ចម្លង JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "ចម្លងសម្ងាត់"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "ចម្លងសន្លឹករចនាប័ទ្ម"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ចម្លង​កូនសោ​សម្ងាត់​នេះ ហើយ​ប្រើ​វា​ក្នុង​កម្មវិធី​របស់​អ្នក ដើម្បី​ចូលដំណើរការ​ទិន្នន័យ​របស់​អ្នក។"
@@ -1545,6 +1571,11 @@ msgstr "កែសម្រួល {chip}"
msgid "Edit application"
msgstr "កែសម្រួលពាក្យសុំ"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "កែសម្រួលពណ៌ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "បញ្ចូល​ពាក្យសម្ងាត់​របស់
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "បញ្ចូល​ពាក្យសម្ងាត់​របស់​អ្នក ដើម្បី​បិទ​ការ​ផ្ទៀងផ្ទាត់​ពីរ​ជាន់។ គណនី​របស់​អ្នក​នឹង​កាន់តែ​មាន​ហានិភ័យ​នៅពេល​មិន​បាន​បើក 2FA ទៀត។"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "កំហុស"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "រាល់​ការរួមចំណែក មួយ​ធំនោ ឬ​តូច ក៏​មាន​ឥទ្ធិពល​យ៉ាង​ច្រើន​លើ​គម្រោង​នេះ។<0/>សូម​អរគុណ​ចំពោះ​ការគាំទ្រ​របស់​អ្នក!"
@@ -1682,6 +1717,10 @@ msgstr "រាល់​ការរួមចំណែក មួយ​ធំន
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "អ្វីៗ​ដែល​អ្នក​ត្រូវការ ដើម្បី​បង្កើត ប្ដូរ​តាមបំណង និង​ចែករំលែក​ប្រវត្តិរូប​វិជ្ជាជីវៈ។ ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​គិត​ពី​ភាព​ឯកជន ប្រើ​បច្ចេកវិទ្យា​បើក​ប្រភព ហើយ​ឥត​គិតថ្លៃ​ទាំងស្រុង ជារៀងរហូត។"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ចេញពីរបៀបផ្តោតអារម្មណ៍"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ចេញពីអេក្រង់ពេញ"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ទ្រង់ទ្រាយ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "សន្លឹករចនាប័ទ្មទម្រង់"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ឥត​គិតថ្លៃ"
@@ -2584,6 +2627,12 @@ msgstr "ភ្លឺ"
msgid "Light theme"
msgstr "ស្បែកភ្លឺ"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ជួរ {0}, ជួរឈរ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "កម្ពស់​បន្ទាត់"
@@ -2898,10 +2947,6 @@ msgstr "មិនទាន់មានកំណែដែលបានរក្ស
msgid "No source data yet."
msgstr "មិនទាន់មានទិន្នន័យប្រភពទេ។"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "មិនទាន់មានច្បាប់រចនាប័ទ្មនៅឡើយទេ។"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "គ្មានអ្នកផ្តល់សេវាដែលបានធ្វើតេស្តទេ"
@@ -2918,6 +2963,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "មិនបានភ្ជាប់"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "មិនប្រាកដថាត្រូវសរសេរអ្វីទេ?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "បើកជំនួយការ AI"
msgid "Open Email Client"
msgstr "បើក​កម្មវិធី​អ៊ីមែល"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "របៀបផ្តោតអារម្មណ៍បើកចំហ"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "បើកនៅក្នុងកម្មវិធីបង្កើត"
@@ -2992,6 +3045,7 @@ msgstr "ឆបគ្នាជាមួយ OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "ចុច <0>Enter</0> ដើម្បីបើក"
msgid "Preview"
msgstr "មើលជាមុន"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ការមើលជាមុន និងការនាំចេញប្រើប្រាស់កំណែដែលមានសុពលភាពចុងក្រោយ។"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ពណ៌​មូលដ្ឋាន"
@@ -3374,10 +3432,22 @@ msgstr "ប្រវត្តិរូបសង្ខេបដែលមានប
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "សូមអានការណែនាំអំពីការអនុវត្តរចនាប័ទ្មផ្ទាល់ខ្លួន។"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "កំពុងអាន…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "រួចរាល់ដើម្បីធ្វើឱ្យសកម្ម"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "រួចរាល់ដើម្បីធ្វើឲ្យសកម្មជាមួយនឹងការព្រមាន"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "អ្នកទទួល"
@@ -3394,6 +3464,10 @@ msgstr "ចតុកោណ (ទទឹង​ពេញ)"
msgid "Redo"
msgstr "ធ្វើឡើងវិញ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ធ្វើការកែសម្រួលសន្លឹករចនាប័ទ្មឡើងវិញ"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "កំណត់​ឡើងវិញ"
msgid "Reset Password"
msgstr "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "កំណត់រចនាប័ទ្មឡើងវិញ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "កំណត់ឡើងវិញទៅសន្លឹករចនាប័ទ្មដែលបានអនុវត្ត"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Romanian"
msgid "Rotation"
msgstr "មុំ​បង្វែរ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "គ្រប់គ្រង"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "ច្បាប់"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ដំណើរការវិភាគលើកដំបូងរបស់អ្នកដើម្បីទទួលបានតារាងពិន្ទុ ចំណុចខ្លាំង និងសំណើដែលបានកំណត់អាទិភាព។"
@@ -3791,6 +3857,10 @@ msgstr "បានជ្រើស"
msgid "Self-Host with Docker"
msgstr "ដំឡើង​ផ្ទាល់​ខ្លួន​ដោយ​ប្រើ Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "សន្លឹករចនាប័ទ្ម CSS ន័យវិទ្យា"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ផ្ញើសារ"
@@ -4152,6 +4222,14 @@ msgstr "អក្សរ​ឆូត"
msgid "Strong fit"
msgstr "សមស្របខ្លាំង"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "កម្មវិធីនិពន្ធសន្លឹករចនាប័ទ្ម"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "សន្លឹករចនាប័ទ្មមានកំហុស"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "ទំព័រដែលអ្នកកំពុងស្វែងរក
msgid "The password you entered is incorrect"
msgstr "ពាក្យសម្ងាត់​ដែល​អ្នក​បាន​បញ្ចូល មិន​ត្រឹមត្រូវ​ទេ"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ការមើលជាមុននៃប្រវត្តិរូបសង្ខេបមិនអាចធ្វើបច្ចុប្បន្នភាពបានទេ។ ការមើលជាមុនដែលមានសុពលភាពចុងក្រោយនៅតែត្រូវបានបង្ហាញ។"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ប្រវត្តិរូប ដែល​អ្នក​កំពុង​ព្យាយាម​ចូល​ដំណើរការ ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យសម្ងាត់"
@@ -4639,6 +4721,10 @@ msgstr "គូស​បន្ទាត់​ក្រោម"
msgid "Undo"
msgstr "មិនធ្វើវិញ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "មិនធ្វើ​ការ​កែសម្រួល​សន្លឹក​រចនាប័ទ្ម​វិញ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ប្រវត្តិរូប​មិន​មាន​ដែនកំណត់"
@@ -5013,6 +5099,10 @@ msgstr "ទិន្នន័យ​របស់​អ្នក​ត្រូវ
msgid "Your latest changes could not be saved."
msgstr "មិនអាចរក្សាទុកការផ្លាស់ប្តូរចុងក្រោយបំផុតរបស់អ្នកបានទេ។"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "រចនាប័ទ្មចាស់របស់អ្នកនៅតែសកម្មរហូតដល់អ្នកធ្វើឱ្យសេចក្តីព្រាង CSS Semantic នេះសកម្មយ៉ាងច្បាស់លាស់។"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "ពាក្យសម្ងាត់​របស់​អ្នក​ត្រូវ​បាន​កំណត់​ឡើងវិញ​ដោយ​ជោគជ័យ។ ឥឡូវ​អ្នក​អាច​ចូល​ដោយ​ប្រើ​ពាក្យសម្ងាត់​ថ្មី​របស់​អ្នកបាន​ហើយ។"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: kn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "ಖಾತೆ ಮೆನು"
msgid "Actions"
msgstr "ಕ್ರಿಯೆಗಳು"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "ಲಾಕ್ಷಣಿಕ CSS ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ನಿಜವಾದ ಗಾತ್ರ (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ಪ್ರತಿ ವಾರ ಕಳುಹಿಸಿದ ಅರ್ಜಿಗಳು (ಕೊನೆಯ 8 ವಾರಗಳು)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ಅರ್ಜಿಸಲಾಗಿದೆ"
@@ -489,9 +494,9 @@ msgstr "ಅರ್ಜಿಸಲಾಗಿದೆ"
msgid "Applied on"
msgstr "ಅರ್ಜಿ ಸಲ್ಲಿಸಿದ ದಿನಾಂಕ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "ಅನ್ವಯವಾಗುವ ನಿಯಮಗಳು"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ಎಚ್ಚರಿಕೆಗಳೊಂದಿಗೆ ಅನ್ವಯಿಸಲಾಗಿದೆ"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ರೀಸೆಟ್ ಮಾ
msgid "Check your email for a link to verify your account."
msgstr "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಲಿಂಕ್‌ಗಾಗಿ ನಿಮ್ಮ ಇಮೇಲ್ ಪರಿಶೀಲಿಸಿ."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ಡ್ರಾಫ್ಟ್ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ಚೈನೀಸ್ (ಸರಳೀಕೃತ)"
@@ -966,6 +979,10 @@ msgstr "ಸಂಭಾಷಣೆಯನ್ನು ನಕಲಿಸಲಾಗಿದೆ."
msgid "Conversation JSON copied."
msgstr "ಸಂಭಾಷಣೆಯನ್ನು JSON ನಕಲಿಸಲಾಗಿದೆ."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "ಪರಿವರ್ತಿಸಲಾದ ಸ್ಟೈಲ್‌ಶೀಟ್ ಡ್ರಾಫ್ಟ್"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ."
@@ -989,6 +1006,15 @@ msgstr "ಬ್ಯಾಕಪ್ ಕೋಡ್‌ಗಳನ್ನು ನಕಲಿಸ
msgid "Copy JSON"
msgstr "JSON ನಕಲಿಸಿ"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "ರಹಸ್ಯವನ್ನು ನಕಲಿಸಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ನಕಲಿಸಿ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ಈ ಸೀಕ್ರೆಟ್ ಕೀ ಅನ್ನು ನಕಲಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಬಳಸಿ."
@@ -1545,6 +1571,11 @@ msgstr "{chip} ಸಂಪಾದಿಸಿ"
msgid "Edit application"
msgstr "ಅರ್ಜಿಯನ್ನು ಸಂಪಾದಿಸಿ"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ಬಣ್ಣವನ್ನು ಸಂಪಾದಿಸಿ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಹೊ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ. 2FA ಸಕ್ರಿಯಗೊಳಿಸದಿದ್ದರೆ ನಿಮ್ಮ ಖಾತೆ ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿರುತ್ತದೆ."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ದೋಷ"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ಪ್ರತಿ ಕೊಡುಗೆ, ದೊಡ್ಡದಾಗಲಿ ಸಣ್ಣದಾಗಲಿ, ಯೋಜನೆಗೆ ಮಹತ್ತರವಾದ ಬದಲಾವಣೆಯನ್ನು ತರುತ್ತದೆ.<0/>ನಿಮ್ಮ ಬೆಂಬಲಕ್ಕೆ ಧನ್ಯವಾದಗಳು!"
@@ -1682,6 +1717,10 @@ msgstr "ಪ್ರತಿ ಕೊಡುಗೆ, ದೊಡ್ಡದಾಗಲಿ ಸ
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ವೃತ್ತಿಪರ ರೆಸ್ಯೂಮ್‌ಗಳನ್ನು ರಚಿಸಲು, ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಲು ನಿಮಗೆ ಬೇಕಾದ ಎಲ್ಲವೂ ಇಲ್ಲಿ ಇದೆ. ಗೌಪ್ಯತೆಯನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು, ಮುಕ್ತ-ಮೂಲದೊಂದಿಗೆ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ಫೋಕಸ್ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ಪೂರ್ಣ ಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ಸ್ವರೂಪ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಅನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ಉಚಿತ"
@@ -2584,6 +2627,12 @@ msgstr "ತಿಳಿ ಬಣ್ಣ"
msgid "Light theme"
msgstr "ಲೈಟ್ ಥೀಮ್"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ಸಾಲು {0}, ಕಾಲಮ್ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ಗೆರೆಯ ಎತ್ತರ"
@@ -2898,10 +2947,6 @@ msgstr "ಇನ್ನೂ ಯಾವುದೇ ಉಳಿಸಿದ ಆವೃತ್ತ
msgid "No source data yet."
msgstr "ಇನ್ನೂ ಮೂಲ ಡೇಟಾ ಇಲ್ಲ."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "ಇನ್ನೂ ಯಾವುದೇ ಶೈಲಿಯ ನಿಯಮಗಳಿಲ್ಲ."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "ಪರೀಕ್ಷಿಸದ ಪೂರೈಕೆದಾರರು ಇಲ್ಲ."
@@ -2918,6 +2963,10 @@ msgstr "ನಾರ್ವೇಜಿಯನ್"
msgid "Not connected"
msgstr "ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "ಏನು ಬರೆಯಬೇಕೆಂದು ಖಚಿತವಿಲ್ಲವೇ?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "AI ಸಹಾಯಕವನ್ನು ತೆರೆಯಿರಿ"
msgid "Open Email Client"
msgstr "ಇಮೇಲ್ ಕ್ಲೈಂಟ್ ತೆರೆಯಿರಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ಫೋಕಸ್ ಮೋಡ್ ತೆರೆಯಿರಿ"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ಬಿಲ್ಡರ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI- ಹೊಂದಾಣಿಕೆ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "ತೆರೆಯಲು <0>Enter</0> ಒತ್ತಿರಿ"
msgid "Preview"
msgstr "ಪೂರ್ವವೀಕ್ಷಣೆ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ಕೊನೆಯ ಮಾನ್ಯ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಪೂರ್ವವೀಕ್ಷಣೆ ಮತ್ತು ರಫ್ತು ಮಾಡಿ."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ಪ್ರಾಥಮಿಕ ಬಣ್ಣ"
@@ -3374,10 +3432,22 @@ msgstr "ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕ ಪುನರಾರಂಭ v
msgid "Reactive Resume v4 (JSON)"
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮೇ v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "ಕಸ್ಟಮ್ ಶೈಲಿಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ಓದಿ."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "ಓದುತ್ತಿದೆ…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಿದ್ಧವಾಗಿದೆ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "ಎಚ್ಚರಿಕೆಗಳೊಂದಿಗೆ ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಿದ್ಧವಾಗಿದೆ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ಸ್ವೀಕೃತದಾರ"
@@ -3394,6 +3464,10 @@ msgstr "ಆಯತ (ಪೂರ್ಣ ಅಗಲ)"
msgid "Redo"
msgstr "ಮತ್ತೆಮಾಡು"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಸಂಪಾದನೆಯನ್ನು ಮತ್ತೆ ಮಾಡಿ"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "ಮರುಹೊಂದಿಸಿ"
msgid "Reset Password"
msgstr "ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "ಶೈಲಿಯನ್ನು ಮರುಹೊಂದಿಸಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "ಅನ್ವಯಿಸಲಾದ ಸ್ಟೈಲ್‌ಶೀಟ್‌ಗೆ ಮರುಹೊಂದಿಸಿ"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "ರೊಮೇನಿಯನ್"
msgid "Rotation"
msgstr "ಭ್ರಮನ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "ನಿಯಮ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "ನಿಯಮಗಳು"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ಸ್ಕೋರ್‌ಕಾರ್ಡ್, ಬಲಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು ನಿಮ್ಮ ಮೊದಲ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಚಲಾಯಿಸಿ."
@@ -3791,6 +3857,10 @@ msgstr "ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"
msgid "Self-Host with Docker"
msgstr "ಡಾಕರ್ ಜೊತೆಗೆ ಸ್ವಯಂ ಹೋಸ್ಟ್"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "ಲಾಕ್ಷಣಿಕ CSS ಶೈಲಿ ಹಾಳೆ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ಸಂದೇಶ ಕಳುಹಿಸಿ"
@@ -4152,6 +4222,14 @@ msgstr "ಸ್ಟ್ರೈಕ್"
msgid "Strong fit"
msgstr "ಬಲವಾದ ಹೊಂದಾಣಿಕೆ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಸಂಪಾದಕ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ದೋಷಗಳನ್ನು ಹೊಂದಿದೆ."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ಸಬ್‌ರೆಡಿಟ್"
@@ -4308,6 +4386,10 @@ msgstr "ನೀವು ಹುಡುಕುತ್ತಿರುವ ಪುಟವು ಸ
msgid "The password you entered is incorrect"
msgstr "ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್‌ವರ್ಡ್ ಸರಿಯಲ್ಲ"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ರೆಸ್ಯೂಮ್ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಕೊನೆಯ ಮಾನ್ಯ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ಇನ್ನೂ ತೋರಿಸಲಾಗಿದೆ."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ನೀವು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ರೆಸ್ಯೂಮ್ ಪಾಸ್‌ವರ್ಡ್‌ರಿಂದ ರಕ್ಷಿಸಲಾಗಿದೆ"
@@ -4639,6 +4721,10 @@ msgstr "ಅಂಡರ್‌ಲೈನ್"
msgid "Undo"
msgstr "ರದ್ದುಗೊಳಿಸಿ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ಸ್ಟೈಲ್‌ಶೀಟ್ ಸಂಪಾದನೆಯನ್ನು ರದ್ದುಗೊಳಿಸಿ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ಅನಿಯಮಿತ ರೆಸ್ಯೂಮ್‌ಗಳು"
@@ -5013,6 +5099,10 @@ msgstr "ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವ
msgid "Your latest changes could not be saved."
msgstr "ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ಈ ಸೆಮ್ಯಾಂಟಿಕ್ CSS ಡ್ರಾಫ್ಟ್ ಅನ್ನು ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸುವವರೆಗೆ ನಿಮ್ಮ ಲೆಗಸಿ ಶೈಲಿಗಳು ಸಕ್ರಿಯವಾಗಿರುತ್ತವೆ."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈಗ ನೀವು ನಿಮ್ಮ ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಬಳಸಿಕೊಂಡು ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "계정 메뉴"
msgid "Actions"
msgstr "작업"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "시맨틱 CSS 활성화"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "실제 크기(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "주당 보낸 지원서 (최근 8주)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "지원함"
@@ -489,9 +494,9 @@ msgstr "지원함"
msgid "Applied on"
msgstr "지원일"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "적용된 규칙"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "경고와 함께 적용됨"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "비밀번호를 재설정할 수 있는 링크가 이메일로 전송되
msgid "Check your email for a link to verify your account."
msgstr "계정을 인증할 수 있는 링크가 이메일로 전송되었습니다."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "확인 중"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "초안 검토"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "중국어(간체)"
@@ -966,6 +979,10 @@ msgstr "대화 내용이 복사되었습니다."
msgid "Conversation JSON copied."
msgstr "대화 JSON이 복사되었습니다."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "변환된 스타일시트 초안"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "클립보드에 복사되었습니다."
@@ -989,6 +1006,15 @@ msgstr "백업 코드 복사"
msgid "Copy JSON"
msgstr "JSON 복사"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "비밀을 복사하세요"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "스타일시트 복사"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "이 비밀 키를 복사해 애플리케이션에 붙여넣어 데이터에 액세스하세요."
@@ -1545,6 +1571,11 @@ msgstr "{chip} 수정"
msgid "Edit application"
msgstr "지원 편집"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "색상 편집 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "2단계 인증을 설정하려면 비밀번호를 입력해 확인하세
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "2단계 인증을 비활성화하려면 비밀번호를 입력하세요. 2단계 인증을 사용하지 않으면 계정 보안이 낮아집니다."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "오류"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "크든 작든 모든 기여는 프로젝트에 큰 변화를 가져옵니다.<0/>후원해 주셔서 감사합니다!"
@@ -1682,6 +1717,10 @@ msgstr "크든 작든 모든 기여는 프로젝트에 큰 변화를 가져옵
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "전문적인 이력서를 만들고, 사용자 지정하고, 공유하는 데 필요한 모든 것을 제공합니다. 개인정보 보호를 최우선으로 설계되었으며, 오픈 소스로 구동되고, 완전히 무료입니다."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "포커스 모드 종료"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "전체 화면 종료"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "용지 형식"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "서식 스타일시트"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "무료"
@@ -2584,6 +2627,12 @@ msgstr "라이트"
msgid "Light theme"
msgstr "라이트 테마"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "행 {0}, 열 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "줄 간격"
@@ -2898,10 +2947,6 @@ msgstr "아직 저장된 버전이 없습니다."
msgid "No source data yet."
msgstr "아직 소스 데이터가 없습니다."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "아직 스타일 규칙은 없습니다."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "검증되지 않은 제공업체"
@@ -2918,6 +2963,10 @@ msgstr "노르웨이어"
msgid "Not connected"
msgstr "연결되지 않음"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "무엇을 써야 할지 모르겠나요?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "오픈 AI 어시스턴트"
msgid "Open Email Client"
msgstr "이메일 클라이언트 열기"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "초점 모드 열기"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "빌더에서 열기"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI 호환"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "<0>Enter</0> 키를 눌러 열기"
msgid "Preview"
msgstr "시사"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "미리보기 및 내보내기 시에는 마지막으로 유효한 버전을 사용합니다."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "기본 색상"
@@ -3374,10 +3432,22 @@ msgstr "반응형 재개 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "리액티브 이력서 v4(JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "사용자 지정 스타일 적용 가이드를 읽어보세요."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "읽는 중…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "활성화 준비 완료"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "경고 메시지와 함께 활성화할 준비가 되었습니다."
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "수신인"
@@ -3394,6 +3464,10 @@ msgstr "사각형(전체 너비)"
msgid "Redo"
msgstr "다시 하다"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "스타일시트 편집 다시 실행"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "초기화"
msgid "Reset Password"
msgstr "비밀번호 재설정"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "스타일 재설정"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "적용된 스타일시트로 재설정"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "루마니아어"
msgid "Rotation"
msgstr "회전"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "규칙"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "규칙"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "첫 번째 분석을 실행하여 스코어카드, 강점, 우선순위가 지정된 제안을 확인하세요."
@@ -3791,6 +3857,10 @@ msgstr "선택됨"
msgid "Self-Host with Docker"
msgstr "Docker로 자체 호스팅"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "시맨틱 CSS 스타일시트"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "메시지 보내기"
@@ -4152,6 +4222,14 @@ msgstr "취소선"
msgid "Strong fit"
msgstr "높은 적합도"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "스타일시트 편집기"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "스타일시트에 오류가 있습니다"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "서브레딧"
@@ -4308,6 +4386,10 @@ msgstr "찾으시는 페이지가 이동되었거나 더 이상 존재하지 않
msgid "The password you entered is incorrect"
msgstr "입력하신 비밀번호가 올바르지 않습니다"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "이력서 미리보기를 업데이트할 수 없습니다. 마지막으로 유효했던 미리보기가 여전히 표시됩니다."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "접근하려는 이력서는 비밀번호로 보호되어 있습니다"
@@ -4639,6 +4721,10 @@ msgstr "밑줄"
msgid "Undo"
msgstr "끄르다"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "스타일시트 편집 취소"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "무제한 이력서"
@@ -5013,6 +5099,10 @@ msgstr "데이터는 안전하게 저장되며 제3자와 공유되지 않습니
msgid "Your latest changes could not be saved."
msgstr "최근 변경 내용을 저장할 수 없습니다."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "이 시맨틱 CSS 초안을 명시적으로 활성화하기 전까지는 기존 스타일이 계속 유지됩니다."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "비밀번호가 성공적으로 재설정되었습니다. 이제 새 비밀번호로 로그인할 수 있습니다."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
@@ -163,6 +163,10 @@ msgstr "Paskyros meniu"
msgid "Actions"
msgstr "Veiksmai"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantinio CSS aktyvavimas"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tikrasis dydis (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Per savaitę išsiųstos paraiškos (paskutinės 8 savaitės)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Pateikta"
@@ -489,9 +494,9 @@ msgstr "Pateikta"
msgid "Applied on"
msgstr "Pateikta"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Taikomos taisyklės"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Taikoma su įspėjimais"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Patikrinkite el. paštą – ten rasite nuorodą slaptažodžiui atkurti
msgid "Check your email for a link to verify your account."
msgstr "Patikrinkite el. paštą – ten rasite nuorodą paskyrai patvirtinti."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Tikrinama"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Tikrinamas juodraštis"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinų (supaprastinta)"
@@ -966,6 +979,10 @@ msgstr "Pokalbis nukopijuotas."
msgid "Conversation JSON copied."
msgstr "Pokalbio JSON nukopijuotas."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertuotas stilių lapo juodraštis"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Nukopijuota į iškarpinę."
@@ -989,6 +1006,15 @@ msgstr "Kopijuoti atsarginius kodus"
msgid "Copy JSON"
msgstr "Kopijuoti JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopijuoti slaptą kodą"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopijuoti stiliaus lapą"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Nukopijuokite šį slaptą raktą ir naudokite jį savo programose duomenims pasiekti."
@@ -1545,6 +1571,11 @@ msgstr "Redaguoti {chip}"
msgid "Edit application"
msgstr "Redaguoti paraišką"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Redaguoti spalvą {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Įveskite slaptažodį, kad patvirtintumėte dviejų veiksnių tapatumo
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Įveskite slaptažodį, kad išjungtumėte dviejų veiksnių tapatumo patvirtinimą. Be įjungto 2FA jūsų paskyra bus mažiau saugi."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Klaida"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Kiekvienas įnašas, didelis ar mažas, daro milžinišką įtaką projektui.<0/>Ačiū už jūsų palaikymą!"
@@ -1682,6 +1717,10 @@ msgstr "Kiekvienas įnašas, didelis ar mažas, daro milžinišką įtaką proje
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Viskas, ko reikia sukurti, pritaikyti ir bendrinti profesionalius gyvenimo aprašymus. Sukurta atsižvelgiant į privatumą, paremta atviruoju kodu ir visiškai nemokama visam laikui."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Išeiti iš fokusavimo režimo"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Išeiti iš viso ekrano"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formatas"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatuoti stiliaus lapą"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Nemokama"
@@ -2584,6 +2627,12 @@ msgstr "Šviesi"
msgid "Light theme"
msgstr "Šviesi tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Eilutė {0}, stulpelis {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Tarpueilio aukštis"
@@ -2898,10 +2947,6 @@ msgstr "Kol kas nėra išsaugotų versijų."
msgid "No source data yet."
msgstr "Šaltinio duomenų dar nėra."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Stiliaus taisyklių dar nėra."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Nėra patikrinto tiekėjo"
@@ -2918,6 +2963,10 @@ msgstr "Norvegų"
msgid "Not connected"
msgstr "Nesusijungta"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nežinote, ką rašyti?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Atidaryti dirbtinio intelekto asistentą"
msgid "Open Email Client"
msgstr "Atidaryti el. pašto programą"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Atidaryti fokusavimo režimą"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Atidaryti kūrimo priemonėje"
@@ -2992,6 +3045,7 @@ msgstr "Suderinamas su OpenAI"
msgid "OpenRouter"
msgstr "\"OpenRouter\""
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Paspauskite <0>Enter</0>, kad atidarytumėte"
msgid "Preview"
msgstr "Peržiūra"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Peržiūrai ir eksportui naudokite paskutinę galiojančią versiją."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Pagrindinė spalva"
@@ -3374,10 +3432,22 @@ msgstr "Reaktyvus gyvenimo aprašymas v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktyvusis CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Perskaitykite vadovą „Pasirinktinių stilių taikymas“."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Skaitoma…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Paruošta aktyvuoti"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Paruošta aktyvuoti su įspėjimais"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Gavėjas"
@@ -3394,6 +3464,10 @@ msgstr "Stačiakampis (visas plotis)"
msgid "Redo"
msgstr "Pakartoti"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Grąžinti stiliaus lapo redagavimą"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Nustatyti iš naujo"
msgid "Reset Password"
msgstr "Atkurti slaptažodį"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Atstatyti stilių"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Atkurti pritaikytą stiliaus lapą"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumunų"
msgid "Rotation"
msgstr "Sukimas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "taisyklė"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "taisyklės"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "pasirinkta"
msgid "Self-Host with Docker"
msgstr "Savarankiškas talpinimas naudojant Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantinis CSS stiliaus lapas"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Siųsti žinutę"
@@ -4152,6 +4222,14 @@ msgstr "Perbraukti"
msgid "Strong fit"
msgstr "Stiprus atitikimas"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilių lapų redaktorius"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stiliaus lape yra klaidų"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreditas"
@@ -4308,6 +4386,10 @@ msgstr "Puslapis, kurio ieškote, galėjo būti perkeltas arba jo nebėra."
msgid "The password you entered is incorrect"
msgstr "Neteisingas slaptažodis"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Nepavyko atnaujinti gyvenimo aprašymo peržiūros. Vis dar rodoma paskutinė galiojanti peržiūra."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Gyvenimo aprašymas, kurį bandote atidaryti, yra apsaugotas slaptažodžiu"
@@ -4639,6 +4721,10 @@ msgstr "Pabraukti"
msgid "Undo"
msgstr "Atšaukti"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Atšaukti stiliaus lapo redagavimą"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neriboti gyvenimo aprašymai"
@@ -5013,6 +5099,10 @@ msgstr "Jūsų duomenys saugiai laikomi ir niekada nebendrinami su trečiosiomis
msgid "Your latest changes could not be saved."
msgstr "Nepavyko išsaugoti naujausių pakeitimų."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Jūsų seni stiliai liks aktyvūs, kol aiškiai neaktyvuosite šio semantinio CSS juodraščio."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Jūsų slaptažodis sėkmingai atstatytas. Dabar galite prisijungti naudodami naują slaptažodį."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
@@ -163,6 +163,10 @@ msgstr "Konta izvēlne"
msgid "Actions"
msgstr "Darbības"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivizēt semantisko CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Faktiskais izmērs (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Nedēļā nosūtītie pieteikumi (pēdējās 8 nedēļas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Pieteikts"
@@ -489,9 +494,9 @@ msgstr "Pieteikts"
msgid "Applied on"
msgstr "Pieteikts"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Piemērotie noteikumi"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Pielietots ar brīdinājumiem"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Pārbaudiet savu e-pastu, lai atrastu saiti paroles atiestatīšanai."
msgid "Check your email for a link to verify your account."
msgstr "Pārbaudiet savu e-pastu, lai atrastu saiti konta verifikācijai."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Pārbaude"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Melnraksta pārbaude"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Ķīniešu (vienkāršotā)"
@@ -966,6 +979,10 @@ msgstr "Saruna nokopēta."
msgid "Conversation JSON copied."
msgstr "Sarunas JSON fails ir nokopēts."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertēts stila lapas melnraksts"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Nokopēts starpliktuvē."
@@ -989,6 +1006,15 @@ msgstr "Kopēt rezerves kodus"
msgid "Copy JSON"
msgstr "Kopēt JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopēt slepeno informāciju"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopēt stila lapu"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Nokopējiet šo slepeno atslēgu un izmantojiet to savās lietotnēs, lai piekļūtu saviem datiem."
@@ -1545,6 +1571,11 @@ msgstr "Rediģēt {chip}"
msgid "Edit application"
msgstr "Rediģēt pieteikumu"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rediģēt krāsu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Ievadiet savu paroli, lai apstiprinātu divu faktoru autentifikācijas i
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Ievadiet savu paroli, lai deaktivētu divu faktoru autentifikāciju. Bez ieslēgtas 2FA jūsu konts būs mazāk drošs."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Kļūda"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Katrs ieguldījums, liels vai mazs, projektam ir milzīgi nozīmīgs.<0/>Paldies par jūsu atbalstu!"
@@ -1682,6 +1717,10 @@ msgstr "Katrs ieguldījums, liels vai mazs, projektam ir milzīgi nozīmīgs.<0/
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Viss, kas jums nepieciešams, lai izveidotu, pielāgotu un kopīgotu profesionālus CV. Veidots, domājot par privātumu, darbināms ar atvērtā pirmkoda risinājumiem un pilnīgi bez maksas uz visiem laikiem."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Iziet no fokusa režīma"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Iziet no pilnekrāna"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formāts"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stilu lapas formatēšana"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Bezmaksas"
@@ -2584,6 +2627,12 @@ msgstr "Gaišs"
msgid "Light theme"
msgstr "Gaišā tēma"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rinda {0}, kolonna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Rindu augstums"
@@ -2898,10 +2947,6 @@ msgstr "Vēl nav saglabātu versiju."
msgid "No source data yet."
msgstr "Avota datu vēl nav."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Vēl nav stila noteikumu."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Nav pārbaudīta pakalpojumu sniedzēja"
@@ -2918,6 +2963,10 @@ msgstr "Norvēģu"
msgid "Not connected"
msgstr "Nav izveidots savienojums"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Neesat pārliecināts, ko rakstīt?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Atvērt AI palīgu"
msgid "Open Email Client"
msgstr "Atvērt e-pasta klientu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Atvērtā fokusa režīms"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Atvērt veidotājā"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI saderīgs"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Nospiediet <0>Enter</0>, lai atvērtu"
msgid "Preview"
msgstr "Priekšskatījums"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Priekšskatījumā un eksportā tiek izmantota pēdējā derīgā versija."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primārā krāsa"
@@ -3374,10 +3432,22 @@ msgstr "Reaktīvs CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Izlasiet rokasgrāmatu Pielāgotu stilu lietošana."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lasa…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gatavs aktivizēšanai"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gatavs aktivizēšanai ar brīdinājumiem"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Saņēmējs"
@@ -3394,6 +3464,10 @@ msgstr "Taisnstūris (pilns platums)"
msgid "Redo"
msgstr "Atkārtot"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Atkārtoti veikt stila lapas rediģēšanu"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Atiestatīt"
msgid "Reset Password"
msgstr "Atiestatīt paroli"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Atiestatīt stilu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Atiestatīt uz lietoto stila lapu"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumāņu"
msgid "Rotation"
msgstr "Rotācija"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "noteikums"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "noteikumi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "atlasīts"
msgid "Self-Host with Docker"
msgstr "Pašhostēšana ar Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantiskā CSS stila lapa"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Sūtīt ziņojumu"
@@ -4152,6 +4222,14 @@ msgstr "Pārsvītrot"
msgid "Strong fit"
msgstr "Spēcīga atbilstība"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilu lapu redaktors"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stilu lapā ir kļūdas"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddits"
@@ -4308,6 +4386,10 @@ msgstr "Iespējams, ka meklētā lapa ir pārvietota vai vairs nepastāv."
msgid "The password you entered is incorrect"
msgstr "Ievadītā parole ir nepareiza"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "CV priekšskatījumu nevarēja atjaunināt. Joprojām tiek rādīts pēdējais derīgais priekšskatījums."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV, kam mēģināt piekļūt, ir aizsargāts ar paroli"
@@ -4639,6 +4721,10 @@ msgstr "Pasvītrot"
msgid "Undo"
msgstr "Atsaukt"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Atsaukt stila lapas rediģēšanu"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neierobežoti CV"
@@ -5013,6 +5099,10 @@ msgstr "Jūsu dati tiek glabāti droši un nekad netiek kopīgoti ar trešajām
msgid "Your latest changes could not be saved."
msgstr "Jūsu jaunākās izmaiņas nevarēja saglabāt."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Jūsu mantotie stili paliek aktīvi, līdz jūs skaidri aktivizējat šo semantiskās CSS melnrakstu."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Jūsu parole ir veiksmīgi atiestatīta. Tagad varat pieteikties ar jauno paroli."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ml\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Malayalam\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "അക്കൗണ്ട് മെനു"
msgid "Actions"
msgstr "പ്രവർത്തനങ്ങൾ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "സെമാന്റിക് CSS സജീവമാക്കുക"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "യഥാർത്ഥ വലുപ്പം (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ആഴ്ചയിൽ അയച്ച അപേക്ഷകൾ (കഴിഞ്ഞ 8 ആഴ്ച)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "അപേക്ഷിച്ചു"
@@ -489,9 +494,9 @@ msgstr "അപേക്ഷിച്ചു"
msgid "Applied on"
msgstr "പ്രയോഗിച്ചു"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "ബാധകമായ നിയമങ്ങൾ"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "മുന്നറിയിപ്പുകൾ ഉപയോഗിച്ച് പ്രയോഗിച്ചു"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ
msgid "Check your email for a link to verify your account."
msgstr "നിങ്ങളുടെ അക്കൗണ്ട് സ്ഥിരീകരിക്കുന്നതിന് ഒരു ലിങ്കിനായി നിങ്ങളുടെ ഇമെയിൽ പരിശോധിക്കുക."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "പരിശോധിക്കുന്നു"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ഡ്രാഫ്റ്റ് പരിശോധിക്കുന്നു"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ചൈനീസ് (സിംപ്ലിഫൈഡ്)"
@@ -966,6 +979,10 @@ msgstr "സംഭാഷണം പകർത്തി."
msgid "Conversation JSON copied."
msgstr "സംഭാഷണം JSON പകർത്തി."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "പരിവർത്തനം ചെയ്ത സ്റ്റൈൽഷീറ്റ് ഡ്രാഫ്റ്റ്"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി."
@@ -989,6 +1006,15 @@ msgstr "ബാക്കപ്പ് കോഡുകൾ പകർത്തുക"
msgid "Copy JSON"
msgstr "JSON പകർത്തുക"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "രഹസ്യ കോപ്പി ചെയ്യുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "സ്റ്റൈൽഷീറ്റ് പകർത്തുക"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ഈ സീക്രട്ട് കീ പകർത്തി, നിങ്ങളുടെ ആപ്പ്ലിക്കേഷനുകളിൽ നിങ്ങൾക്കുള്ള ഡാറ്റ ആക്സ്സ് ചെയ്യുന്നതിനായി ഉപയോഗിക്കുക."
@@ -1545,6 +1571,11 @@ msgstr "തിരുത്തുക {chip}"
msgid "Edit application"
msgstr "ആപ്ലിക്കേഷൻ എഡിറ്റ് ചെയ്യുക"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "നിറം എഡിറ്റ് ചെയ്യുക {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "ടു‑ഫാക്ടർ ഓത്‌ന്റിക്കേഷൻ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ടു‑ഫാക്ടർ ഓത്‌ന്റിക്കേഷൻ അപ്രാപ്തമാക്കാൻ നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക. 2FA പ്രാപ്തമാക്കിയിട്ടില്ലാത്തതിനാൽ നിങ്ങളുടെ അക്കൗണ്ട് കുറച്ച് കുറവായി സുരക്ഷിതമായിവരും."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "പിശക്"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "വലുതോ ചെറുതോ ആയ ഓരോ സംഭാവനയും പ്രോജക്റ്റിന് വലിയൊരു മാറ്റം സൃഷ്‌ടിക്കുന്നു.<0/>നിങ്ങളുടെ പിന്തുണയ്ക്ക് നന്ദി!"
@@ -1682,6 +1717,10 @@ msgstr "വലുതോ ചെറുതോ ആയ ഓരോ സംഭാവന
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "പ്രൊഫഷണൽ റിസ്യൂങ്ങൾ സൃഷ്‌ടിക്കാനും ഇഷ്ടാനുസൃതമാക്കാനും പങ്കിടാനും നിങ്ങൾക്ക് വേണ്ടതെല്ലാം ഇവിടെ ലഭ്യമാണ്. സ്വകാര്യത മുൻനിർത്തി നിർമ്മിച്ചതും, ഓപ്പൺ സോഴ്‌സിനാൽ കരുത്തു ലഭിച്ചതും, പൂർണ്ണമായും സൗജന്യവുമാണ്."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ഫോക്കസ് മോഡിൽ നിന്ന് പുറത്തുകടക്കുക"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "മുഴുവൻ സ്ക്രീനിൽ നിന്ന് പുറത്തുകടക്കുക"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ഫോർമാറ്റ്"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "സ്റ്റൈൽഷീറ്റ് ഫോർമാറ്റ് ചെയ്യുക"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "സൗജന്യം"
@@ -2584,6 +2627,12 @@ msgstr "ലൈറ്റ്"
msgid "Light theme"
msgstr "ലൈറ്റ് തീം"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "വരി {0}, നിര {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ലൈൻ ഹൈറ്റ്"
@@ -2898,10 +2947,6 @@ msgstr "ഇതുവരെ സംരക്ഷിച്ച പതിപ്പു
msgid "No source data yet."
msgstr "ഇതുവരെ ഉറവിട ഡാറ്റകളൊന്നുമില്ല."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "ഇതുവരെ സ്റ്റൈൽ നിയമങ്ങളൊന്നുമില്ല."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "പരിശോധിച്ച ദാതാവില്ല."
@@ -2918,6 +2963,10 @@ msgstr "നോർവീജിയൻ"
msgid "Not connected"
msgstr "കണക്റ്റ് ചെയ്തിട്ടില്ല"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "എന്ത് എഴുതണമെന്ന് ഉറപ്പില്ലേ?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "AI അസിസ്റ്റന്റ് തുറക്കുക"
msgid "Open Email Client"
msgstr "ഇമെയിൽ ക്ലയന്റ് ഓപ്പൺ ചെയ്യുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ഫോക്കസ് മോഡ് തുറക്കുക"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ബിൽഡറിൽ തുറക്കുക"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-ക്ക് അനുയോജ്യം"
msgid "OpenRouter"
msgstr "ഓപ്പൺ റൂട്ടർ"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "തുറക്കാൻ <0>എന്റർ</0> അമർത്തുക
msgid "Preview"
msgstr "പ്രിവ്യൂ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "അവസാനത്തെ സാധുവായ പതിപ്പ് ഉപയോഗിച്ച് പ്രിവ്യൂ ചെയ്ത് എക്സ്പോർട്ട് ചെയ്യുക."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "പ്രൈമറി നിറം"
@@ -3374,10 +3432,22 @@ msgstr "റിയാക്ടീവ് റെസ്യൂമെ v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "റിയാക്ടീവ് റെസ്യൂമെ v4 (ജെസൺ)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "ഇഷ്ടാനുസൃത ശൈലികൾ പ്രയോഗിക്കുന്നതിനുള്ള ഗൈഡ് വായിക്കുക."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "വായിക്കുന്നു..."
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "സജീവമാക്കാൻ തയ്യാറാണ്"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "മുന്നറിയിപ്പുകൾ നൽകി സജീവമാക്കാൻ തയ്യാറാണ്"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "സ്വീകർത്താവ്"
@@ -3394,6 +3464,10 @@ msgstr "ചതുരാകൃതി (പൂർണ്ണ വീതി)"
msgid "Redo"
msgstr "വീണ്ടും ചെയ്യുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "സ്റ്റൈൽഷീറ്റ് എഡിറ്റ് വീണ്ടും ചെയ്യുക"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "റീസെറ്റ് ചെയ്യുക"
msgid "Reset Password"
msgstr "പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "സ്റ്റൈൽ പുനഃസജ്ജമാക്കുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "പ്രയോഗിച്ച സ്റ്റൈൽഷീറ്റിലേക്ക് പുനഃസജ്ജമാക്കുക"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "റൊമാനിയൻ"
msgid "Rotation"
msgstr "ററോട്ടേഷൻ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "ഭരണം"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "നിയമങ്ങൾ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "നിങ്ങളുടെ ആദ്യ വിശകലനം നടത്തി ഒരു സ്കോർകാർഡ്, ശക്തികൾ, മുൻഗണനാ നിർദ്ദേശങ്ങൾ എന്നിവ നേടുക."
@@ -3791,6 +3857,10 @@ msgstr "തിരഞ്ഞെടുത്തു"
msgid "Self-Host with Docker"
msgstr "Docker ഉപയോഗിച്ച് സ്വയം ഹോസ്റ്റ് ചെയ്യുക"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "സെമാന്റിക് CSS സ്റ്റൈൽഷീറ്റ്"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "സന്ദേശം അയയ്ക്കുക"
@@ -4152,6 +4222,14 @@ msgstr "സ്ട്രൈക്ക്"
msgid "Strong fit"
msgstr "ശക്തമായ ഫിറ്റ്"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "സ്റ്റൈൽഷീറ്റ് എഡിറ്റർ"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "സ്റ്റൈൽഷീറ്റിൽ പിശകുകൾ ഉണ്ട്"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "സബ്‌റെഡിറ്റ്"
@@ -4308,6 +4386,10 @@ msgstr "നിങ്ങൾ തിരയുന്ന പേജ് നീക്ക
msgid "The password you entered is incorrect"
msgstr "നിങ്ങൾ നൽകിയ പാസ്‌വേഡ് തെറ്റാണ്"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "റെസ്യൂമെ പ്രിവ്യൂ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല. അവസാനത്തെ സാധുവായ പ്രിവ്യൂ ഇപ്പോഴും കാണിച്ചിരിക്കുന്നു."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "നിങ്ങൾ ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുന്ന റിസ്യൂം പാസ്‌വേഡ് സംരക്ഷിതമാണ്"
@@ -4639,6 +4721,10 @@ msgstr "അണ്ടർലൈൻ"
msgid "Undo"
msgstr "പഴയപടിയാക്കുക"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "സ്റ്റൈൽഷീറ്റ് എഡിറ്റ് പഴയപടിയാക്കുക"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "പരിമിതിയില്ലാത്ത റിസ്യൂങ്ങൾ"
@@ -5013,6 +5099,10 @@ msgstr "നിങ്ങളുടെ ഡാറ്റ സുരക്ഷിതമ
msgid "Your latest changes could not be saved."
msgstr "നിങ്ങളുടെ ഏറ്റവും പുതിയ മാറ്റങ്ങൾ സംരക്ഷിക്കാൻ കഴിഞ്ഞില്ല."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ഈ സെമാന്റിക് CSS ഡ്രാഫ്റ്റ് വ്യക്തമായി സജീവമാക്കുന്നതുവരെ നിങ്ങളുടെ ലെഗസി സ്റ്റൈലുകൾ സജീവമായി തുടരും."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് വിജയകരമായി റീസെറ്റ് ചെയ്തിട്ടുണ്ട്. ഇനി നിങ്ങൾക്ക് പുതിയ പാസ്‌വേഡ് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യാം."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: mr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Marathi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "खाते मेनू"
msgid "Actions"
msgstr "कृती"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "सिमँटिक CSS सक्रिय करा"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "वास्तविक आकार (१००%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "दर आठवड्याला पाठवलेले अर्ज (मागील 8 आठवडे)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "अर्ज केला"
@@ -489,9 +494,9 @@ msgstr "अर्ज केला"
msgid "Applied on"
msgstr "वर अर्ज केला"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "लागू केलेले नियम"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "इशाऱ्यांसह लागू केले"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "तुमचा पासवर्ड रिसेट करण्या
msgid "Check your email for a link to verify your account."
msgstr "तुमचे खाते पडताळण्यासाठीच्या लिंकसाठी तुमचे ईमेल तपासा."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "तपासणी"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "मसुदा तपासणे"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "चीनी (सुलभ)"
@@ -966,6 +979,10 @@ msgstr "संभाषण कॉपी केले."
msgid "Conversation JSON copied."
msgstr "संभाषणाचा JSON कॉपी केला."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "रूपांतरित स्टाईलशीटचा मसुदा"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "क्लिपबोर्डवर कॉपी केले."
@@ -989,6 +1006,15 @@ msgstr "बॅकअप कोड्स कॉपी करा"
msgid "Copy JSON"
msgstr "JSON कॉपी करा"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "गुप्त कॉपी करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "स्टाईलशीट कॉपी करा"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ही गुप्त key कॉपी करा आणि तुमच्या अ‍ॅप्लिकेशन्समध्ये तुमचा डेटा अ‍ॅक्सेस करण्यासाठी वापरा."
@@ -1545,6 +1571,11 @@ msgstr "संपादन {chip}"
msgid "Edit application"
msgstr "अर्ज संपादित करा"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "रंग संपादित करा {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "दुहेरी घटक ओथेंटिकेशन सेटअ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "दुहेरी घटक ओथेंटिकेशन अक्षम करण्यासाठी तुमचा पासवर्ड टाका. 2FA शिवाय तुमचे खाते कमी सुरक्षित राहील."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "त्रुटी"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "प्रत्येक योगदान, मोठे असो वा छोटे, प्रोजेक्टसाठी खूप मोठा फरक घडवते.<0/>तुमच्या पाठिंब्याबद्दल धन्यवाद!"
@@ -1682,6 +1717,10 @@ msgstr "प्रत्येक योगदान, मोठे असो व
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "व्यावसायिक रेझ्युमे तयार, सानुकूलित आणि शेअर करण्यासाठी लागणारे सर्व काही येथेच आहे. गोपनीयतेचा विचार करून तयार केलेले, मुक्त स्रोतावर चालणारे आणि कायमस्वरूपी पूर्णपणे मोफत."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "फोकस मोडमधून बाहेर पडा"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रीनमधून बाहेर पडा"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "स्वरूप"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "फॉरमॅट स्टाईलशीट"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "मोफत"
@@ -2584,6 +2627,12 @@ msgstr "हलकी"
msgid "Light theme"
msgstr "हलकी थीम"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ओळ {0}, स्तंभ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "रेषेची उंची"
@@ -2898,10 +2947,6 @@ msgstr "अद्याप कोणतीही आवृत्ती जतन
msgid "No source data yet."
msgstr "अद्याप कोणताही स्त्रोत डेटा नाही."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "अद्याप शैलीचे नियम नाहीत."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "कोणताही तपासलेला प्रदाता नाही"
@@ -2918,6 +2963,10 @@ msgstr "नॉर्वेजियन"
msgid "Not connected"
msgstr "जोडलेले नाही"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "काय लिहावे हे सुचत नाहीये?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "ओपन एआय असिस्टंट"
msgid "Open Email Client"
msgstr "ईमेल क्लायंट उघडा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "फोकस मोड उघडा"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "बिल्डरमध्ये उघडा"
@@ -2992,6 +3045,7 @@ msgstr "ओपनएआय-सुसंगत"
msgid "OpenRouter"
msgstr "ओपनराऊटर"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "उघडण्यासाठी <0>Enter</0> दाबा"
msgid "Preview"
msgstr "पूर्वावलोकन"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "पूर्वावलोकन आणि निर्यातीसाठी शेवटची वैध आवृत्ती वापरली जाते."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "प्राथमिक रंग"
@@ -3374,10 +3432,22 @@ msgstr "रिॲक्टिव्ह रिझ्युमे v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "कस्टम स्टाईल लागू करण्याविषयीची मार्गदर्शिका वाचा."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "वाचत आहे…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "सक्रिय करण्यासाठी तयार"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "इशाऱ्यांसह सक्रिय करण्यास तयार"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "प्राप्तकर्ता"
@@ -3394,6 +3464,10 @@ msgstr "आयत (पूर्ण रुंदी)"
msgid "Redo"
msgstr "पुन्हा करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "स्टाईलशीट संपादन पुन्हा करा"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "रीसेट करा"
msgid "Reset Password"
msgstr "पासवर्ड रीसेट करा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "शैली रीसेट करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "लागू केलेल्या स्टाईलशीटवर रीसेट करा"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "रोमानियन"
msgid "Rotation"
msgstr "रोटेशन"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "नियम"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "नियम"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "तुमचे पहिले विश्लेषण चालवा आणि स्कोरकार्ड, सामर्थ्ये आणि प्राधान्यक्रमाने सुचवलेल्या सूचना मिळवा."
@@ -3791,6 +3857,10 @@ msgstr "निवडले"
msgid "Self-Host with Docker"
msgstr "Docker ने स्वतः होस्ट करा"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "सिमँटिक CSS स्टाईलशीट"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "संदेश पाठवा"
@@ -4152,6 +4222,14 @@ msgstr "स्ट्राइक"
msgid "Strong fit"
msgstr "मजबूत फिट"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "स्टाईलशीट संपादक"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "स्टाईलशीटमध्ये त्रुटी आहेत"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "सबरेडिट"
@@ -4308,6 +4386,10 @@ msgstr "तुम्ही शोधत असलेले पान कदा
msgid "The password you entered is incorrect"
msgstr "तुम्ही टाकलेला पासवर्ड चुकीचा आहे"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "रेझ्युमेचा प्रिव्ह्यू अद्ययावत करता आला नाही. शेवटचा वैध प्रिव्ह्यूच अजूनही दाखवला जात आहे."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ज्या रेझ्युमेला तुम्ही अ‍ॅक्सेस करण्याचा प्रयत्न करत आहात तो पासवर्डने संरक्षित आहे"
@@ -4639,6 +4721,10 @@ msgstr "अधोरेखा"
msgid "Undo"
msgstr "पूर्ववत करा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "स्टाईलशीटमधील बदल पूर्ववत करा"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "अमर्यादित रेझ्युमे"
@@ -5013,6 +5099,10 @@ msgstr "तुमचा डेटा सुरक्षितपणे साठ
msgid "Your latest changes could not be saved."
msgstr "तुमचे नवीनतम बदल जतन केले जाऊ शकले नाहीत."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "जोपर्यंत तुम्ही हा सिमेंटिक CSS ड्राफ्ट स्पष्टपणे सक्रिय करत नाही, तोपर्यंत तुमच्या जुन्या स्टाईल्स सक्रिय राहतील."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "तुमचा पासवर्ड यशस्वीरित्या रिसेट केला गेला आहे. तुम्ही आता नवीन पासवर्डने साइन इन करू शकता."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ms\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Malay\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "Menu akaun"
msgid "Actions"
msgstr "Tindakan"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktifkan CSS Semantik"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Saiz sebenar (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Permohonan dihantar setiap minggu (8 minggu lepas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Dimohon"
@@ -489,9 +494,9 @@ msgstr "Dimohon"
msgid "Applied on"
msgstr "Digunakan pada"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Peraturan yang Digunakan"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Digunakan dengan amaran"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Semak e-mel anda untuk pautan bagi menetapkan semula kata laluan anda."
msgid "Check your email for a link to verify your account."
msgstr "Semak e-mel anda untuk pautan bagi mengesahkan akaun anda."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Memeriksa"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Memeriksa draf"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Cina (Ringkas)"
@@ -966,6 +979,10 @@ msgstr "Perbualan disalin."
msgid "Conversation JSON copied."
msgstr "JSON perbualan disalin."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Draf helaian gaya yang ditukar"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Disalin ke papan keratan."
@@ -989,6 +1006,15 @@ msgstr "Salin Kod Sandaran"
msgid "Copy JSON"
msgstr "Salin JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Salin rahsia"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Salin helaian gaya"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Salin kunci rahsia ini dan gunakan dalam aplikasi anda untuk mengakses data anda."
@@ -1545,6 +1571,11 @@ msgstr "Sunting {chip}"
msgid "Edit application"
msgstr "Edit aplikasi"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Sunting warna {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Masukkan kata laluan anda untuk mengesahkan penyediaan pengesahan dua fa
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Masukkan kata laluan anda untuk melumpuhkan pengesahan dua faktor. Akaun anda akan menjadi kurang selamat tanpa 2FA diaktifkan."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Ralat"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Setiap sumbangan, besar atau kecil, memberi perbezaan besar kepada projek ini.<0/>Terima kasih atas sokongan anda!"
@@ -1682,6 +1717,10 @@ msgstr "Setiap sumbangan, besar atau kecil, memberi perbezaan besar kepada proje
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Segala yang anda perlukan untuk mencipta, menyesuaikan dan berkongsi resume profesional. Dibina dengan mengambil kira privasi, dikuasakan oleh sumber terbuka dan benar-benar percuma selama-lamanya."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Keluar dari mod fokus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Keluar dari Skrin Penuh"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Helaian gaya format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Percuma"
@@ -2584,6 +2627,12 @@ msgstr "Cerah"
msgid "Light theme"
msgstr "Tema cerah"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Baris {0}, lajur {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Tinggi Baris"
@@ -2898,10 +2947,6 @@ msgstr "Tiada versi yang disimpan lagi."
msgid "No source data yet."
msgstr "Tiada data sumber lagi."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Tiada peraturan gaya lagi."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Tiada pembekal yang diuji"
@@ -2918,6 +2963,10 @@ msgstr "Norwegian"
msgid "Not connected"
msgstr "Tidak bersambung"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Tidak pasti apa yang perlu ditulis?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Pembantu AI terbuka"
msgid "Open Email Client"
msgstr "Buka Klien E-mel"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Mod fokus terbuka"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Buka dalam pembina"
@@ -2992,6 +3045,7 @@ msgstr "Serasi dengan OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Tekan <0>Enter</0> untuk membuka"
msgid "Preview"
msgstr "Pratonton"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Pratonton dan eksport gunakan versi terakhir yang sah."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -3374,10 +3432,22 @@ msgstr "Resume Reaktif v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktif Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Baca panduan Menggunakan Gaya Tersuai."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Membaca…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Bersedia untuk diaktifkan"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Bersedia untuk diaktifkan dengan amaran"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Penerima"
@@ -3394,6 +3464,10 @@ msgstr "Segi empat tepat (Lebar Penuh)"
msgid "Redo"
msgstr "Buat semula"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Buat semula suntingan helaian gaya"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Tetapkan Semula"
msgid "Reset Password"
msgstr "Tetapkan Semula Kata Laluan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Tetapkan Semula Gaya"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Tetapkan semula kepada helaian gaya yang digunakan"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rom"
msgid "Rotation"
msgstr "Putaran"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "peraturan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "peraturan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "dipilih"
msgid "Self-Host with Docker"
msgstr "Hos Sendiri dengan Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Helaian gaya CSS semantik"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Hantar mesej"
@@ -4152,6 +4222,14 @@ msgstr "Coret"
msgid "Strong fit"
msgstr "Kuat sesuai"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor helaian gaya"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Helaian gaya mempunyai ralat"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Halaman yang anda cari mungkin telah dipindahkan atau tidak lagi wujud."
msgid "The password you entered is incorrect"
msgstr "Kata laluan yang anda masukkan adalah tidak betul"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Pratonton resume tidak dapat dikemas kini. Pratonton sah terakhir masih dipaparkan."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Resume yang anda cuba akses dilindungi kata laluan"
@@ -4639,6 +4721,10 @@ msgstr "Garis Bawah"
msgid "Undo"
msgstr "Buat asal"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Buat asal suntingan helaian gaya"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Resume Tanpa Had"
@@ -5013,6 +5099,10 @@ msgstr "Data anda disimpan dengan selamat dan tidak pernah dikongsi dengan pihak
msgid "Your latest changes could not be saved."
msgstr "Perubahan terkini anda tidak dapat disimpan."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Gaya legasi anda kekal aktif sehingga anda mengaktifkan draf CSS Semantik ini secara eksplisit."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Kata laluan anda telah berjaya ditetapkan semula. Anda kini boleh log masuk dengan kata laluan baharu anda."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ne\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Nepali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "खाता मेनु"
msgid "Actions"
msgstr "कार्यहरू"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "सिमेन्टिक CSS सक्रिय गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "वास्तविक आकार (१००%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "प्रति हप्ता पठाइएका आवेदनहरू (पछिल्ला 8 हप्ता)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "आवेदन गरियो"
@@ -489,9 +494,9 @@ msgstr "आवेदन गरियो"
msgid "Applied on"
msgstr "मा लागू गरियो"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "लागू नियमहरू"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "चेतावनीहरू सहित लागू गरियो"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "पासवर्ड रिसेट गर्न लिङ्कको
msgid "Check your email for a link to verify your account."
msgstr "खाताको यकिन गर्न लिङ्कको लागि आफ्नो इमेल जाँच गर्नुहोस्।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "जाँच गर्दै"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "मस्यौदा जाँच गर्दै"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "चिनियाँ (सरल)"
@@ -966,6 +979,10 @@ msgstr "कुराकानीको प्रतिलिपि बनाइ
msgid "Conversation JSON copied."
msgstr "कुराकानी JSON प्रतिलिपि गरियो।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "रूपान्तरित स्टाइलसिट ड्राफ्ट"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "क्लिपबोर्डमा प्रतिलिपि गरियो।"
@@ -989,6 +1006,15 @@ msgstr "ब्याकअप कोडहरू प्रतिलिपि ग
msgid "Copy JSON"
msgstr "JSON प्रतिलिपि गर्नुहोस्"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "गोप्य कुरा प्रतिलिपि गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "स्टाइलसिट प्रतिलिपि गर्नुहोस्"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "यो गोप्य key प्रतिलिपि गरेर आफ्ना अनुप्रयोगहरूमा प्रयोग गर्नुहोस् ताकि तपाईंको डाटामा पहुँच गर्न सकियोस्।"
@@ -1545,6 +1571,11 @@ msgstr "सम्पादन {chip}"
msgid "Edit application"
msgstr "आवेदन सम्पादन गर्नुहोस्"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "रङ सम्पादन गर्नुहोस् {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "दुई-कारक प्रमाणीकरण सेटअप
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "दुई-कारक प्रमाणीकरण अक्षम गर्न आफ्नो पासवर्ड प्रविष्ट गर्नुहोस्। २FA सक्रिय नभएको अवस्थामा तपाईंको खाता कम सुरक्षित हुनेछ।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "त्रुटि"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ठुलो होस् वा सानो, प्रत्येक योगदानले परियोजनामा ठूलो फरक पार्छ।<0/>तपाईंको सहयोगका लागि धन्यवाद!"
@@ -1682,6 +1717,10 @@ msgstr "ठुलो होस् वा सानो, प्रत्येक
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "व्यावसायिक बायोडाटा बनाउन, अनुकूल बनाउन र सेयर गर्न आवश्यक सबै कुरा एकै ठाउँमा। गोपनीयतालाई प्राथमिकता दिँदै, खुला-स्रोतको सहायतामा निर्माण गरिएको, र पूर्ण रूपमा निःशुल्क, सधैंका लागि।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "फोकस मोडबाट बाहिर निस्कनुहोस्"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रिनबाट बाहिर निस्कनुहोस्"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ढाँचा"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "शैलीपाना ढाँचाबद्ध गर्नुहोस्"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "निःशुल्क"
@@ -2584,6 +2627,12 @@ msgstr "ल्याइट"
msgid "Light theme"
msgstr "ल्याइट थिम"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "रेखा {0}, स्तम्भ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "लाइन उचाइ (Line Height)"
@@ -2898,10 +2947,6 @@ msgstr "अहिलेसम्म कुनै पनि सुरक्षि
msgid "No source data yet."
msgstr "अहिलेसम्म कुनै स्रोत डाटा छैन।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "अहिलेसम्म कुनै शैली नियमहरू छैनन्।"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "परीक्षण गरिएको कुनै प्रदायक छैन"
@@ -2918,6 +2963,10 @@ msgstr "नर्वेजियन"
msgid "Not connected"
msgstr "जडान गरिएको छैन"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "के लेख्ने भनेर निश्चित हुनुहुन्न?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "एआई सहायक खोल्नुहोस्"
msgid "Open Email Client"
msgstr "इमेल क्लाइन्ट खोल्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "फोकस मोड खोल्नुहोस्"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "बिल्डरमा खोल्नुहोस्"
@@ -2992,6 +3045,7 @@ msgstr "ओपनएआई-कम्प्याटिबल"
msgid "OpenRouter"
msgstr "ओपनराउटर"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "खोल्न <0>Enter</0> थिच्नुहोस्"
msgid "Preview"
msgstr "पूर्वावलोकन"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "पूर्वावलोकन र निर्यात अन्तिम मान्य संस्करण प्रयोग गर्नुहोस्।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "मुख्य रङ"
@@ -3374,10 +3432,22 @@ msgstr "प्रतिक्रियाशील रिजुमे v<0>{__APP
msgid "Reactive Resume v4 (JSON)"
msgstr "प्रतिक्रियाशील बायोडाटा v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "अनुकूलन शैलीहरू लागू गर्ने गाइड पढ्नुहोस्।"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "पढ्दै…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "सक्रिय गर्न तयार छ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "चेतावनी सहित सक्रिय गर्न तयार"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "प्राप्तकर्ता"
@@ -3394,6 +3464,10 @@ msgstr "आयत (पूर्ण चौडाइ)"
msgid "Redo"
msgstr "पुन: गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "शैलीपत्र सम्पादन पुन: गर्नुहोस्"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "रिसेट गर्नुहोस्"
msgid "Reset Password"
msgstr "पासवर्ड रिसेट गर्नुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "शैली रिसेट गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "लागू गरिएको शैली पानामा रिसेट गर्नुहोस्"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "रुमानियन"
msgid "Rotation"
msgstr "घुमाउने कोण (Rotation)"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "नियम"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "नियमहरू"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "स्कोरकार्ड, शक्तिहरू, र प्राथमिकता दिइएका सुझावहरू प्राप्त गर्न आफ्नो पहिलो विश्लेषण चलाउनुहोस्।"
@@ -3791,6 +3857,10 @@ msgstr "चयन गरियो"
msgid "Self-Host with Docker"
msgstr "Docker प्रयोग गरेर आफैं होस्ट गर्नुहोस्"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "अर्थपूर्ण CSS शैली पाना"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "सन्देश पठाउनुहोस्"
@@ -4152,6 +4222,14 @@ msgstr "स्ट्राइक (Strikethrough)"
msgid "Strong fit"
msgstr "बलियो फिट"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "स्टाइलसिट सम्पादक"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "स्टाइलसिटमा त्रुटिहरू छन्"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "सबरेडिट"
@@ -4308,6 +4386,10 @@ msgstr "तपाईंले खोजिरहनुभएको पृष्
msgid "The password you entered is incorrect"
msgstr "तपाईंले प्रविष्ट गर्नुभएको पासवर्ड सही छैन"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "रिजुमे पूर्वावलोकन अद्यावधिक गर्न सकिएन। अन्तिम मान्य पूर्वावलोकन अझै देखाइएको छ।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "तपाईं पहुँच गर्न खोजिरहनुभएको बायोडाटा पासवर्डद्वारा सुरक्षित गरिएको छ"
@@ -4639,6 +4721,10 @@ msgstr "अन्डरलाइन"
msgid "Undo"
msgstr "पूर्ववत गर्नुहोस्"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "शैलीपत्र सम्पादन पूर्ववत गर्नुहोस्"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "असीमित बायोडाटाहरू"
@@ -5013,6 +5099,10 @@ msgstr "तपाईंको डाटा सुरक्षित रूपम
msgid "Your latest changes could not be saved."
msgstr "तपाईंका पछिल्ला परिवर्तनहरू सुरक्षित गर्न सकिएन।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "तपाईंले यो सिमेन्टिक CSS ड्राफ्ट स्पष्ट रूपमा सक्रिय नगरेसम्म तपाईंको लिगेसी शैलीहरू सक्रिय रहन्छन्।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "तपाईंको पासवर्ड सफलतापूर्वक रिसेट भयो। अब नयाँ पासवर्ड प्रयोग गरेर साइन इन गर्न सक्नुहुन्छ।"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Accountmenu"
msgid "Actions"
msgstr "Acties"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activeer semantische CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Werkelijke grootte (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Sollicitaties per week verstuurd (laatste 8 weken)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Gesolliciteerd"
@@ -489,9 +494,9 @@ msgstr "Gesolliciteerd"
msgid "Applied on"
msgstr "Toegepast op"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Toegepaste regels"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Toegepast met waarschuwingen"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Controleer uw e-mail voor een link om uw wachtwoord te resetten."
msgid "Check your email for a link to verify your account."
msgstr "Controleer uw e-mail voor een link om uw account te verifiëren."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Controleren"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Concept controleren"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinees (vereenvoudigd)"
@@ -966,6 +979,10 @@ msgstr "Gesprek gekopieerd."
msgid "Conversation JSON copied."
msgstr "Het JSON-bestand van het gesprek is gekopieerd."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Omgezette stylesheet-concept"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Gekopieerd naar klembord."
@@ -989,6 +1006,15 @@ msgstr "Back-upcodes kopiëren"
msgid "Copy JSON"
msgstr "JSON kopiëren"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopieer geheim"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stijlpagina kopiëren"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopieer deze geheime sleutel en gebruik deze in uw applicaties om toegang te krijgen tot uw gegevens."
@@ -1545,6 +1571,11 @@ msgstr "Bewerk {chip}"
msgid "Edit application"
msgstr "Applicatie bewerken"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Kleur bewerken {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Voer uw wachtwoord in om het instellen van tweestapsverificatie te beves
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Voer uw wachtwoord in om tweestapsverificatie uit te schakelen. Uw account is minder goed beveiligd zonder 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fout"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Elke bijdrage, groot of klein, maakt een enorm verschil voor het project.<0/>Bedankt voor uw steun!"
@@ -1682,6 +1717,10 @@ msgstr "Elke bijdrage, groot of klein, maakt een enorm verschil voor het project
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alles wat u nodig heeft om professionele cv's te maken, aan te passen en te delen. Gebouwd met privacy in gedachten, aangedreven door open source en volledig gratis, voor altijd."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Focusmodus verlaten"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Volledig scherm afsluiten"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formaat"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Stijlpagina opmaken"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Licht"
msgid "Light theme"
msgstr "Licht thema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Regel {0}, kolom {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Regelafstand"
@@ -2898,10 +2947,6 @@ msgstr "Er zijn nog geen opgeslagen versies."
msgid "No source data yet."
msgstr "Nog geen brongegevens."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Er zijn nog geen stijlregels."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Geen geteste provider"
@@ -2918,6 +2963,10 @@ msgstr "Noors"
msgid "Not connected"
msgstr "Niet verbonden"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Weet je niet wat je moet schrijven?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Open AI-assistent"
msgid "Open Email Client"
msgstr "E-mailclient openen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Focusmodus openen"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Openen in builder"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-compatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Druk op <0>Enter</0> om te openen"
msgid "Preview"
msgstr "Voorbeeld"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Voor het bekijken en exporteren wordt de laatst geldige versie gebruikt."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primaire kleur"
@@ -3374,10 +3432,22 @@ msgstr "Reactief hervatten v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactieve cv v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Lees de handleiding 'Aangepaste stijlen toepassen'."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lezen…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klaar om te activeren"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klaar voor activering met waarschuwingen"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Ontvanger"
@@ -3394,6 +3464,10 @@ msgstr "Rechthoek (volledige breedte)"
msgid "Redo"
msgstr "Opnieuw doen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stijlpagina bewerken opnieuw uitvoeren"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Resetten"
msgid "Reset Password"
msgstr "Wachtwoord resetten"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Stijl opnieuw instellen"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Terugzetten naar toegepaste stijlblad"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Roemeens"
msgid "Rotation"
msgstr "Rotatie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regel"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regels"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "geselecteerd"
msgid "Self-Host with Docker"
msgstr "Zelf hosten met Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantische CSS-stijlpagina"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Bericht verzenden"
@@ -4152,6 +4222,14 @@ msgstr "Doorhalen"
msgid "Strong fit"
msgstr "Sterke pasvorm"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stijlpagina-editor"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Het stylesheet bevat fouten."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "De pagina die u zoekt is mogelijk verplaatst of bestaat niet meer."
msgid "The password you entered is incorrect"
msgstr "Het ingevoerde wachtwoord is onjuist"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "De cv-preview kon niet worden bijgewerkt. De laatst geldige preview wordt nog steeds weergegeven."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Het cv dat u probeert te openen, is met een wachtwoord beveiligd"
@@ -4639,6 +4721,10 @@ msgstr "Onderstrepen"
msgid "Undo"
msgstr "Ongedaan maken"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stijlbewerking ongedaan maken"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Onbeperkte cv's"
@@ -5013,6 +5099,10 @@ msgstr "Uw gegevens worden veilig opgeslagen en nooit met derden gedeeld. U kunt
msgid "Your latest changes could not be saved."
msgstr "Je laatste wijzigingen konden niet worden opgeslagen."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Uw oude stijlen blijven actief totdat u dit concept van Semantische CSS expliciet activeert."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Uw wachtwoord is succesvol gereset. U kunt nu met uw nieuwe wachtwoord inloggen."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Konto-meny"
msgid "Actions"
msgstr "Handlinger"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktiver semantisk CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Faktisk størrelse (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Søknader sendt per uke (siste 8 uker)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Søkt"
@@ -489,9 +494,9 @@ msgstr "Søkt"
msgid "Applied on"
msgstr "Påført på"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Anvendte regler"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Brukes med advarsler"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Sjekk e-posten din for en lenke for å tilbakestille passordet."
msgid "Check your email for a link to verify your account."
msgstr "Sjekk e-posten din for en lenke for å bekrefte kontoen din."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Sjekker"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Sjekker utkast"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinesisk (forenklet)"
@@ -966,6 +979,10 @@ msgstr "Samtalen er kopiert."
msgid "Conversation JSON copied."
msgstr "Samtalens JSON-fil er kopiert."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertert stilarkutkast"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopiert til utklippstavlen."
@@ -989,6 +1006,15 @@ msgstr "Kopier sikkerhetskopieringskoder"
msgid "Copy JSON"
msgstr "Kopier JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopier hemmelighet"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopier stilark"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopier denne hemmelige nøkkelen og bruk den i applikasjonene dine for å få tilgang til dataene dine."
@@ -1545,6 +1571,11 @@ msgstr "Rediger {chip}"
msgid "Edit application"
msgstr "Rediger søknad"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Rediger farge {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Skriv inn passordet ditt for å bekrefte at du vil sette opp tofaktoraut
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Skriv inn passordet ditt for å deaktivere tofaktorautentisering. Kontoen din vil være mindre sikker uten aktivert 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Feil"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hvert bidrag, stort eller lite, gjør en enorm forskjell for prosjektet.<0/>Takk for støtten!"
@@ -1682,6 +1717,10 @@ msgstr "Hvert bidrag, stort eller lite, gjør en enorm forskjell for prosjektet.
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Alt du trenger for å opprette, tilpasse og dele profesjonelle CV-er. Bygget med personvern i fokus, drevet av åpen kildekode og helt gratis for alltid."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Gå ut av fokusmodus"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avslutt fullskjerm"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formater stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Lyst"
msgid "Light theme"
msgstr "Lyst tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linje {0}, kolonne {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Linjehøyde"
@@ -2898,10 +2947,6 @@ msgstr "Ingen lagrede versjoner ennå."
msgid "No source data yet."
msgstr "Ingen kildedata ennå."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Ingen stilregler ennå."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Ingen testet leverandør"
@@ -2918,6 +2963,10 @@ msgstr "Norsk"
msgid "Not connected"
msgstr "Ikke tilkoblet"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Usikker på hva du skal skrive?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Åpne AI-assistenten"
msgid "Open Email Client"
msgstr "Åpne e-postklient"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Åpne fokusmodus"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Åpne i byggeren"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Trykk <0>Enter</0> for å åpne"
msgid "Preview"
msgstr "Forhåndsvisning"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Forhåndsvisning og eksport med den siste gyldige versjonen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hovedfarge"
@@ -3374,10 +3432,22 @@ msgstr "Reaktiv CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Les veiledningen for bruk av tilpassede stiler."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Leser …"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klar til å aktiveres"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klar til aktivering med advarsler"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Mottaker"
@@ -3394,6 +3464,10 @@ msgstr "Rektangel (full bredde)"
msgid "Redo"
msgstr "Gjør om"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Gjør om redigeringen av stilark"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Tilbakestill"
msgid "Reset Password"
msgstr "Tilbakestill passord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Tilbakestill stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Tilbakestill til brukt stilark"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumensk"
msgid "Rotation"
msgstr "Rotasjon"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regel"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regler"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "valgt"
msgid "Self-Host with Docker"
msgstr "Selvhosting med Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisk CSS-stilark"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Send melding"
@@ -4152,6 +4222,14 @@ msgstr "Gjennomstreking"
msgid "Strong fit"
msgstr "Sterk passform"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilarkredigeringsprogram"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stilarket inneholder feil"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Siden du leter etter kan ha blitt flyttet eller finnes ikke lenger."
msgid "The password you entered is incorrect"
msgstr "Passordet du skrev inn er feil"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Forhåndsvisningen av CV-en kunne ikke oppdateres. Den siste gyldige forhåndsvisningen vises fortsatt."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV-en du prøver å få tilgang til er passordbeskyttet"
@@ -4639,6 +4721,10 @@ msgstr "Understrek"
msgid "Undo"
msgstr "Angre"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Angre redigering av stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Ubegrenset antall CV-er"
@@ -5013,6 +5099,10 @@ msgstr "Dataene dine lagres sikkert og deles aldri med tredjeparter. Du kan ogs
msgid "Your latest changes could not be saved."
msgstr "De siste endringene dine kunne ikke lagres."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Dine eldre stiler forblir aktive inntil du eksplisitt aktiverer dette semantiske CSS-utkastet."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Passordet ditt er tilbakestilt. Du kan nå logge inn med det nye passordet ditt."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: or\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "ଆକାଉଣ୍ଟ ମେନୁ"
msgid "Actions"
msgstr "କାର୍ଯ୍ୟଗୁଡ଼ିକ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "ସିମାଣ୍ଟିକ୍ CSS ସକ୍ରିୟ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ପ୍ରକୃତ ଆକାର (୧୦୦%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ପ୍ରତି ସପ୍ତାହରେ ପଠାଯାଇଥିବା ଆବେଦନ (ଗତ 8 ସପ୍ତାହ)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "ଆବେଦନ କରାଯାଇଛି"
@@ -489,9 +494,9 @@ msgstr "ଆବେଦନ କରାଯାଇଛି"
msgid "Applied on"
msgstr "ପ୍ରୟୋଗ ହୋଇଛି |"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "ଲାଗୁ ହୋଇଥିବା ନିୟମଗୁଡ଼ିକ"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ଚେତାବନୀ ସହିତ ଲାଗୁ କରାଯାଇଛି"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ପୁନଃସେଟ୍ କ
msgid "Check your email for a link to verify your account."
msgstr "ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ସତ୍ୟାପନ କରିବା ପାଇଁ ଲିଙ୍କ ପାଇଁ ଆପଣଙ୍କ ଇମେଲ୍ ଯାଞ୍ଚ କରନ୍ତୁ।"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "ଯାଞ୍ଚ କରାଯାଉଛି"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ଡ୍ରାଫ୍ଟ ଯାଞ୍ଚ କରାଯାଉଛି"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "ଚାଇନିଜ୍ (ସରଳୀକୃତ)"
@@ -966,6 +979,10 @@ msgstr "ବାର୍ତ୍ତାଳାପ କପି କରାଯାଇଛି।"
msgid "Conversation JSON copied."
msgstr "ବାର୍ତ୍ତାଳାପ JSON କପି କରାଯାଇଛି।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "ରୂପାନ୍ତରିତ ଷ୍ଟାଇଲସିଟ୍ ଡ୍ରାଫ୍ଟ"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "କ୍ଲିପବୋର୍ଡରେ କପି କରାଯାଇଛି |"
@@ -989,6 +1006,15 @@ msgstr "ବ୍ୟାକଅପ୍ କୋଡଗୁଡିକ କପି କରନ୍
msgid "Copy JSON"
msgstr "JSON କପି କରନ୍ତୁ"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "ଗୁପ୍ତ ଟୋକନ୍ କପି କରନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "ଷ୍ଟାଇଲସିଟ୍ କପି କରନ୍ତୁ"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ଏହି ଗୁପ୍ତ କିକୁ କପି କରନ୍ତୁ ଏବଂ ଆପଣଙ୍କ ଆପ୍ଲିକେସନ୍‌ରେ ଆପଣଙ୍କ ତଥ୍ୟ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ।"
@@ -1545,6 +1571,11 @@ msgstr "{chip} ସମ୍ପାଦନ କରନ୍ତୁ"
msgid "Edit application"
msgstr "ପ୍ରୟୋଗ ସଂପାଦନ କରନ୍ତୁ |"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "ରଙ୍ଗ ସମ୍ପାଦନ କରନ୍ତୁ {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ ଅସକ୍ରିୟ କରିବା ପାଇଁ ଆପଣଙ୍କ ପାସୱାର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ। 2FA ସକ୍ରିୟ ନ ଥିଲେ ଆପଣଙ୍କ ଆକାଉଣ୍ଟ କମ୍ ସୁରକ୍ଷିତ ହେବ।"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ତ୍ରୁଟି"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ପ୍ରତ୍ୟେକ ଅବଦାନ, ବଡ଼ କିମ୍ବା ଛୋଟ, ପ୍ରକଳ୍ପ ପାଇଁ ବିଶେଷ ପରିବର୍ତ୍ତନ ଆଣେ।<0/>ଆପଣଙ୍କ ସମର୍ଥନ ପାଇଁ ଧନ୍ୟବାଦ!"
@@ -1682,6 +1717,10 @@ msgstr "ପ୍ରତ୍ୟେକ ଅବଦାନ, ବଡ଼ କିମ୍ବା
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ପେଶାଦାର ରେଜ୍ୟୁମେ ତିଆରି, କଷ୍ଟମାଇଜ୍ ଏବଂ ସେୟାର କରିବାକୁ ଆପଣଙ୍କୁ ଯାହା କିଛି ଆବଶ୍ୟକ ସମସ୍ତ ଏଥିରେ ଅଛି। ଗୋପନୀୟତା ଧ୍ୟାନରେ ରଖି ନିର୍ମିତ, ଖୋଲା‑ମୂଳ ଦ୍ୱାରା ଶକ୍ତିଶାଳୀ ହୋଇଛି, ଏବଂ ସଂପୂର୍ଣ୍ଣ ଭାବରେ ସଦା ପାଇଁ ନିଶୁଳ୍କ।"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ଫୋକସ୍ ମୋଡ୍‌ରୁ ବାହାରି ଯାଆନ୍ତୁ"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରୁ ବାହାରକୁ ଆସନ୍ତୁ"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ରୂପରେଖା (Format)"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ଫର୍ମାଟ୍ କରନ୍ତୁ"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ନିଶୁଳ୍କ"
@@ -2584,6 +2627,12 @@ msgstr "ଲାଇଟ୍"
msgid "Light theme"
msgstr "ଲାଇଟ୍ ଥିମ୍"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "ଧାଡି {0}, ସ୍ତମ୍ଭ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ଲାଇନ୍ ଉଚ୍ଚତା"
@@ -2898,10 +2947,6 @@ msgstr "ଏପର୍ଯ୍ୟନ୍ତ କୌଣସି ସେଭ୍ କରାଯ
msgid "No source data yet."
msgstr "ଏପର୍ଯ୍ୟନ୍ତ କ source ଣସି ଉତ୍ସ ତଥ୍ୟ ନାହିଁ |"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "ଏପର୍ଯ୍ୟନ୍ତ କୌଣସି ଷ୍ଟାଇଲ୍ ନିୟମ ନାହିଁ।"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "କୌଣସି ପରୀକ୍ଷିତ ପ୍ରଦାନକାରୀ ନାହାଁନ୍ତି"
@@ -2918,6 +2963,10 @@ msgstr "ନରୱେଜିଆନ୍"
msgid "Not connected"
msgstr "ସଂଯୁକ୍ତ ହୋଇନାହିଁ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "କଣ ଲେଖିବେ ନିଶ୍ଚିତ ନୁହଁନ୍ତି?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "AI ଆସିଷ୍ଟାଣ୍ଟ ଖୋଲନ୍ତୁ"
msgid "Open Email Client"
msgstr "ଇମେଲ୍ କ୍ଲାୟେଣ୍ଟ ଖୋଲନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ଫୋକସ୍ ମୋଡ୍ ଖୋଲନ୍ତୁ"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "ବିଲ୍ଡରରେ ଖୋଲନ୍ତୁ"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-ସୁସଙ୍ଗତ"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "ଖୋଲିବା ପାଇଁ <0>Enter</0> ଦବାନ୍ତୁ"
msgid "Preview"
msgstr "ପୂର୍ବାବଲୋକନ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ପୂର୍ବାବଲୋକନ ଏବଂ ରପ୍ତାନି ଶେଷ ବୈଧ ସଂସ୍କରଣ ବ୍ୟବହାର କରନ୍ତୁ।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ମୁଖ୍ୟ ରଙ୍ଗ"
@@ -3374,10 +3432,22 @@ msgstr "ପ୍ରତିକ୍ରିୟାଶୀଳ ରିଜ୍ୟୁମ୍ v<0>
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "କଷ୍ଟମ୍ ଷ୍ଟାଇଲ୍ସ ପ୍ରୟୋଗ କରିବା ଗାଇଡ୍ ପଢ଼ନ୍ତୁ।"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "ପ Reading ିବା…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "ସକ୍ରିୟ କରିବାକୁ ପ୍ରସ୍ତୁତ"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "ଚେତାବନୀ ସହିତ ସକ୍ରିୟ କରିବାକୁ ପ୍ରସ୍ତୁତ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ପ୍ରାପ୍ତକର୍ତ୍ତା"
@@ -3394,6 +3464,10 @@ msgstr "ଆୟାତାକାର (ପୁରା ପ୍ରସ୍ଥ)"
msgid "Redo"
msgstr "ପୁନଃକରିଦିଅନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ସମ୍ପାଦନ ପୁନଃକରିବା"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "ରିସେଟ୍ କରନ୍ତୁ"
msgid "Reset Password"
msgstr "ପାସୱାର୍ଡ ରିସେଟ୍ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "ଷ୍ଟାଇଲ୍ ରିସେଟ୍ କରନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "ଲାଗୁ ହୋଇଥିବା ଷ୍ଟାଇଲସିଟକୁ ରିସେଟ୍ କରନ୍ତୁ"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "ରୋମାନିଆନ୍"
msgid "Rotation"
msgstr "ଘୁର୍ଣ୍ଣନ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "ନିୟମ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "ନିୟମ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ସ୍କୋରକାର୍ଡ, ଶକ୍ତି ଏବଂ ପ୍ରାଥମିକତାଭିତ୍ତିକ ପରାମର୍ଶ ପାଇବା ପାଇଁ ଆପଣଙ୍କ ପ୍ରଥମ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।"
@@ -3791,6 +3857,10 @@ msgstr "ମନୋନୀତ |"
msgid "Self-Host with Docker"
msgstr "Docker ସହ ସ୍ୱୟଂ‑ହୋଷ୍ଟ କରନ୍ତୁ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "ଅର୍ଥଗତ CSS ଷ୍ଟାଇଲସିଟ୍"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ମେସେଜ୍ ପଠାନ୍ତୁ"
@@ -4152,6 +4222,14 @@ msgstr "ଷ୍ଟ୍ରାଇକ୍"
msgid "Strong fit"
msgstr "ଶକ୍ତିଶାଳୀ ଫିଟ୍ |"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ଏଡିଟର୍"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ଷ୍ଟାଇଲସିଟରେ ତ୍ରୁଟି ଅଛି"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ସବ୍ରେଡିଟ୍ (Subreddit)"
@@ -4308,6 +4386,10 @@ msgstr "ଆପଣ ଖୋଜୁଥିବା ପୃଷ୍ଠାଟି ହୁଏତ
msgid "The password you entered is incorrect"
msgstr "ଆପଣ ଯେ ପାସୱାର୍ଡ ପ୍ରବେଶ କରିଛନ୍ତି ସେଥା ଭୁଲ୍"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ରିଜ୍ୟୁମ୍ ପ୍ରିଭ୍ୟୁ ଅପଡେଟ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଶେଷ ବୈଧ ପ୍ରିଭ୍ୟୁ ଏବେ ବି ଦେଖାଯାଉଛି।"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "ଯେ ରେଜ୍ୟୁମେକୁ ଆପଣ ଆକ୍ସେସ୍ କରିବାକୁ ଚେଷ୍ଟା କରୁଛନ୍ତି ଏହା ପାସୱାର୍ଡ ସୁରକ୍ଷିତ"
@@ -4639,6 +4721,10 @@ msgstr "ଅଣ୍ଡର୍ଲାଇନ୍"
msgid "Undo"
msgstr "ପୂର୍ବବତ୍ କରନ୍ତୁ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ଷ୍ଟାଇଲସିଟ୍ ସମ୍ପାଦନକୁ ପୂର୍ବବତ୍ କରନ୍ତୁ"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "ଅସୀମିତ ରେଜ୍ୟୁମେଗୁଡିକ"
@@ -5013,6 +5099,10 @@ msgstr "ଆପଣଙ୍କ ତଥ୍ୟ ସୁରକ୍ଷିତ ଭାବରେ
msgid "Your latest changes could not be saved."
msgstr "ଆପଣଙ୍କର ନବୀନତମ ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ସେଭ୍ କରାଯାଇପାରିଲା ନାହିଁ।"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "ଆପଣ ଏହି ସେମାଣ୍ଟିକ୍ CSS ଡ୍ରାଫ୍ଟକୁ ସ୍ପଷ୍ଟ ଭାବରେ ସକ୍ରିୟ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କର ଲିଗାସୀ ଷ୍ଟାଇଲ୍ ସକ୍ରିୟ ରହିବ।"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ସଫଳତାର ସହ ପୁନଃ ସେଟ୍ କରାଯାଇଛି। ଆପଣ ଏବେ ନୂତନ ପାସୱାର୍ଡ ସହ ସାଇନ୍ ଇନ୍ କରିପାରିବେ।"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -163,6 +163,10 @@ msgstr "Menu konta"
msgid "Actions"
msgstr "Działania"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktywuj semantyczny CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Rzeczywisty rozmiar (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Aplikacje wysłane tygodniowo (ostatnie 8 tygodni)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Złożono aplikację"
@@ -489,9 +494,9 @@ msgstr "Złożono aplikację"
msgid "Applied on"
msgstr "Zastosowano"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Zastosowane zasady"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Zastosowano z ostrzeżeniami"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Sprawdź swoją skrzynkę e-mail, aby znaleźć link do zresetowania has
msgid "Check your email for a link to verify your account."
msgstr "Sprawdź swoją skrzynkę e-mail, aby znaleźć link do weryfikacji konta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrola"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Sprawdzanie wersji roboczej"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chiński (uproszczony)"
@@ -966,6 +979,10 @@ msgstr "Skopiowano konwersację."
msgid "Conversation JSON copied."
msgstr "Skopiowano plik JSON rozmowy."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Przekonwertowany projekt arkusza stylów"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Skopiowano do schowka."
@@ -989,6 +1006,15 @@ msgstr "Skopiuj kody zapasowe"
msgid "Copy JSON"
msgstr "Kopiuj JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopiuj sekret"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiuj arkusz stylów"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Skopiuj ten tajny klucz i użyj go w swoich aplikacjach, aby uzyskać dostęp do swoich danych."
@@ -1545,6 +1571,11 @@ msgstr "Proszę edytować {chip}"
msgid "Edit application"
msgstr "Edytuj aplikację"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Edytuj kolor {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Wprowadź hasło, aby potwierdzić konfigurację uwierzytelniania dwusk
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Wprowadź hasło, aby wyłączyć uwierzytelnianie dwuskładnikowe. Twoje konto będzie mniej bezpieczne bez włączonego 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Błąd"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Każdy wkład, mały czy duży, ma ogromne znaczenie dla projektu.<0/>Dziękujemy za wsparcie!"
@@ -1682,6 +1717,10 @@ msgstr "Każdy wkład, mały czy duży, ma ogromne znaczenie dla projektu.<0/>Dz
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Wszystko, czego potrzebujesz, aby tworzyć, dostosowywać i udostępniać profesjonalne CV. Zbudowane z myślą o prywatności, oparte na open source i całkowicie darmowe na zawsze."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Wyjdź z trybu ostrości"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Wyjdź z trybu pełnoekranowego"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatuj arkusz stylów"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Darmowe"
@@ -2584,6 +2627,12 @@ msgstr "Jasny"
msgid "Light theme"
msgstr "Jasny motyw"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linia {0}, kolumna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Wysokość wiersza"
@@ -2898,10 +2947,6 @@ msgstr "Brak zapisanych wersji."
msgid "No source data yet."
msgstr "Brak jeszcze danych źródłowych."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Nie ma jeszcze reguł dotyczących stylu."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Brak sprawdzonego dostawcy"
@@ -2918,6 +2963,10 @@ msgstr "Norweski"
msgid "Not connected"
msgstr "Nie połączony"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nie wiesz co napisać?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Otwarty asystent AI"
msgid "Open Email Client"
msgstr "Otwórz klienta poczty e-mail"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Otwórz tryb ostrości"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Otwórz w kreatorze"
@@ -2992,6 +3045,7 @@ msgstr "Zgodny z OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Proszę wcisnąć <0>Enter</0>, aby otworzyć"
msgid "Preview"
msgstr "Zapowiedź"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Podczas podglądu i eksportu użyj ostatniej ważnej wersji."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Kolor główny"
@@ -3374,10 +3432,22 @@ msgstr "Reaktywne CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Przeczytaj przewodnik Stosowanie niestandardowych stylów."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Czytanie…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gotowy do aktywacji"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gotowy do aktywacji z ostrzeżeniami"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Odbiorca"
@@ -3394,6 +3464,10 @@ msgstr "Prostokąt (pełna szerokość)"
msgid "Redo"
msgstr "Przerobić"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ponów edycję arkusza stylów"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Zresetuj"
msgid "Reset Password"
msgstr "Zresetuj hasło"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Resetuj styl"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Resetuj do zastosowanego arkusza stylów"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumuński"
msgid "Rotation"
msgstr "Obrót"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "reguła"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "zasady"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "wybrane"
msgid "Self-Host with Docker"
msgstr "Samodzielny hosting z Dockerem"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Arkusz stylów CSS semantyczny"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Wyślij wiadomość"
@@ -4152,6 +4222,14 @@ msgstr "Przekreślenie"
msgid "Strong fit"
msgstr "Mocne dopasowanie"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Edytor arkuszy stylów"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Arkusz stylów zawiera błędy"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Strona, której szukasz, mogła zostać przeniesiona lub już nie istnie
msgid "The password you entered is incorrect"
msgstr "Wprowadzone hasło jest nieprawidłowe"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Nie udało się zaktualizować podglądu CV. Nadal wyświetlany jest ostatni prawidłowy podgląd."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV, do którego próbujesz uzyskać dostęp, jest chronione hasłem"
@@ -4639,6 +4721,10 @@ msgstr "Podkreślenie"
msgid "Undo"
msgstr "Anulować"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Cofnij edycję arkusza stylów"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Nielimitowana liczba CV"
@@ -5013,6 +5099,10 @@ msgstr "Twoje dane są przechowywane w bezpieczny sposób i nigdy nie są udost
msgid "Your latest changes could not be saved."
msgstr "Nie udało się zapisać ostatnich zmian."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Twoje starsze style pozostaną aktywne, dopóki wyraźnie nie aktywujesz tego projektu semantycznego CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Twoje hasło zostało pomyślnie zresetowane. Możesz teraz zalogować się przy użyciu nowego hasła."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu da conta"
msgid "Actions"
msgstr "Ações"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Ativar CSS Semântico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tamanho real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturas enviadas por semana (últimas 8 semanas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Aplicado"
@@ -489,9 +494,9 @@ msgstr "Aplicado"
msgid "Applied on"
msgstr "Aplicado em"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Regras Aplicadas"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicado com ressalvas."
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Verifique seu email em busca de um link para redefinir sua senha."
msgid "Check your email for a link to verify your account."
msgstr "Verifique seu email em busca de um link para verificar sua conta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Verificando"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Verificando rascunho"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinês (Simplificado)"
@@ -966,6 +979,10 @@ msgstr "Conversa copiada."
msgid "Conversation JSON copied."
msgstr "JSON da conversa copiado."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Rascunho da folha de estilo convertida"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiado para a área de transferência."
@@ -989,6 +1006,15 @@ msgstr "Copiar códigos de backup"
msgid "Copy JSON"
msgstr "Copiar JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copiar segredo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar folha de estilo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copie esta chave secreta e use-a em seus aplicativos para acessar seus dados."
@@ -1545,6 +1571,11 @@ msgstr "Editar {chip}"
msgid "Edit application"
msgstr "Editar aplicativo"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editar cor {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Digite sua senha para confirmar a configuração da autenticação de do
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Digite sua senha para desativar a autenticação de dois fatores. Sua conta ficará menos segura sem o 2FA ativado."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Erro"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o projeto.<0/>Obrigado pelo seu apoio!"
@@ -1682,6 +1717,10 @@ msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tudo o que você precisa para criar, personalizar e compartilhar currículos profissionais. Construído com foco na privacidade, impulsionado por código aberto e completamente gratuito para sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Sair do modo de foco"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Sair da tela cheia"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formatar"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatar folha de estilo"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuito"
@@ -2584,6 +2627,12 @@ msgstr "Claro"
msgid "Light theme"
msgstr "Tema claro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linha {0}, coluna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altura da linha"
@@ -2898,10 +2947,6 @@ msgstr "Ainda não há versões salvas."
msgid "No source data yet."
msgstr "Ainda não há dados de origem."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Ainda não há regras de estilo."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Nenhum fornecedor testado"
@@ -2918,6 +2963,10 @@ msgstr "Norueguês"
msgid "Not connected"
msgstr "Não conectado"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Não sabe o que escrever?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Assistente de IA aberta"
msgid "Open Email Client"
msgstr "Abrir cliente de email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modo de foco aberto"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Abrir no construtor"
@@ -2992,6 +3045,7 @@ msgstr "Compatível com OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Pressione <0>Enter</0> para abrir"
msgid "Preview"
msgstr "Pré-visualização"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "A pré-visualização e a exportação utilizam a última versão válida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Cor primária"
@@ -3374,10 +3432,22 @@ msgstr "Retomar reativo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Leia o guia Aplicando Estilos Personalizados."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lendo…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pronto para ativar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pronto para ativar com avisos"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatário"
@@ -3394,6 +3464,10 @@ msgstr "Retângulo (largura total)"
msgid "Redo"
msgstr "Refazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refazer edição da folha de estilo"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Redefinir"
msgid "Reset Password"
msgstr "Redefinir senha"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Redefinir estilo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Redefinir para a folha de estilo aplicada"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Romeno"
msgid "Rotation"
msgstr "Rotação"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regra"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regras"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "selecionado"
msgid "Self-Host with Docker"
msgstr "Auto-hospedagem com Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Folha de estilo CSS semântica"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar mensagem"
@@ -4152,6 +4222,14 @@ msgstr "Tachar"
msgid "Strong fit"
msgstr "Ajuste forte"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de folhas de estilo"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "A folha de estilo contém erros."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "A página que você está procurando pode ter sido movida ou não existi
msgid "The password you entered is incorrect"
msgstr "A senha que você digitou está incorreta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Não foi possível atualizar a pré-visualização do currículo. A última pré-visualização válida ainda está sendo exibida."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "O currículo que você está tentando acessar está protegido por senha"
@@ -4639,6 +4721,10 @@ msgstr "Sublinhar"
msgid "Undo"
msgstr "Desfazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Desfazer edição da folha de estilo"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículos ilimitados"
@@ -5013,6 +5099,10 @@ msgstr "Seus dados são armazenados com segurança e nunca são compartilhados c
msgid "Your latest changes could not be saved."
msgstr "Não foi possível salvar suas últimas alterações."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Seus estilos legados permanecerão ativos até que você ative explicitamente este rascunho de CSS Semântico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Sua senha foi redefinida com sucesso. Agora você pode entrar com sua nova senha."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menu da conta"
msgid "Actions"
msgstr "Ações"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Ativar CSS Semântico"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Tamanho real (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturas enviadas por semana (últimas 8 semanas)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidatura enviada"
@@ -489,9 +494,9 @@ msgstr "Candidatura enviada"
msgid "Applied on"
msgstr "Aplicado em"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Regras Aplicadas"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicado com reservas."
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Verifique o seu email para obter um link para repor a sua senha."
msgid "Check your email for a link to verify your account."
msgstr "Verifique o seu email para obter um link para verificar a sua conta."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Verificando"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Verificando rascunho"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chinês (simplificado)"
@@ -966,6 +979,10 @@ msgstr "Conversa copiada."
msgid "Conversation JSON copied."
msgstr "JSON da conversa copiado."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Rascunho da folha de estilo convertida"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiado para a área de transferência."
@@ -989,6 +1006,15 @@ msgstr "Copiar códigos de backup"
msgid "Copy JSON"
msgstr "Copiar JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copiar segredo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiar folha de estilo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copie esta chave secreta e utilize-a nas suas aplicações para aceder aos seus dados."
@@ -1545,6 +1571,11 @@ msgstr "Edite {chip}"
msgid "Edit application"
msgstr "Editar aplicação"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editar cor {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Introduza a sua senha para confirmar a configuração da autenticação
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduza a sua senha para desativar a autenticação de dois fatores. A sua conta ficará menos segura sem a 2FA ativada."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Erro"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o projeto.<0/>Obrigado pelo seu apoio!"
@@ -1682,6 +1717,10 @@ msgstr "Cada contribuição, grande ou pequena, faz uma enorme diferença para o
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tudo o que precisa para criar, personalizar e partilhar currículos profissionais. Criado com a privacidade em mente, alimentado por código aberto e completamente gratuito para sempre."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Sair do modo de focagem"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Sair do ecrã inteiro"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formato"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatar folha de estilos"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Grátis"
@@ -2584,6 +2627,12 @@ msgstr "Modo claro"
msgid "Light theme"
msgstr "Tema claro"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linha {0}, coluna {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Altura da linha"
@@ -2898,10 +2947,6 @@ msgstr "Ainda não há versões guardadas."
msgid "No source data yet."
msgstr "Ainda não há dados de origem."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Ainda não existem regras de estilo."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Nenhum fornecedor testado"
@@ -2918,6 +2963,10 @@ msgstr "Norueguês"
msgid "Not connected"
msgstr "Não conectado"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Não sabe o que escrever?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Assistente de IA aberta"
msgid "Open Email Client"
msgstr "Abrir cliente de email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Modo de focagem aberta"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Abrir no construtor"
@@ -2992,6 +3045,7 @@ msgstr "Compatível com OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Prima <0>Enter</0> para abrir"
msgid "Preview"
msgstr "Pré-visualização"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "A pré-visualização e a exportação utilizam a última versão válida."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Cor principal"
@@ -3374,10 +3432,22 @@ msgstr "Reativo reativo v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Leia o guia Aplicando Estilos Personalizados."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Leitura…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pronto para ativar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pronto para ativar com avisos"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatário"
@@ -3394,6 +3464,10 @@ msgstr "Retângulo (largura total)"
msgid "Redo"
msgstr "Refazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refazer edição da folha de estilos"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Repor"
msgid "Reset Password"
msgstr "Repor senha"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Redefinir estilo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Repor para a folha de estilo aplicada"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Romeno"
msgid "Rotation"
msgstr "Rotação"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regra"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regras"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "selecionado"
msgid "Self-Host with Docker"
msgstr "Faça auto-hospedagem com o Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Folha de estilo CSS semântica"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Enviar mensagem"
@@ -4152,6 +4222,14 @@ msgstr "Rasurar"
msgid "Strong fit"
msgstr "Ajuste forte"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de folhas de estilo"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "A folha de estilos contém erros."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "A página que procura pode ter sido movida ou já não existir."
msgid "The password you entered is incorrect"
msgstr "A senha que introduziu está incorreta"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Não foi possível atualizar a pré-visualização do currículo. A última pré-visualização válida ainda está a ser apresentada."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "O currículo a que está a tentar aceder está protegido por senha"
@@ -4639,6 +4721,10 @@ msgstr "Sublinhar"
msgid "Undo"
msgstr "Desfazer"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Desfazer edição da folha de estilos"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Currículos ilimitados"
@@ -5013,6 +5099,10 @@ msgstr "Os seus dados são armazenados em segurança e nunca são partilhados co
msgid "Your latest changes could not be saved."
msgstr "Não foi possível guardar as suas últimas alterações."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Os seus estilos legados permanecerão ativos até que ative explicitamente este rascunho de CSS Semântico."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "A sua senha foi reposta com sucesso. Já pode iniciar sessão com a sua nova senha."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
@@ -163,6 +163,10 @@ msgstr "Meniul Cont"
msgid "Actions"
msgstr "Acțiuni"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Activează CSS-ul semantic"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Dimensiune reală (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Candidaturi trimise pe săptămână (ultimele 8 săptămâni)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Candidatură trimisă"
@@ -489,9 +494,9 @@ msgstr "Candidatură trimisă"
msgid "Applied on"
msgstr "Aplicat pe"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Reguli aplicate"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Aplicat cu avertismente"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Verificați-vă e-mailul pentru un link de resetare a parolei."
msgid "Check your email for a link to verify your account."
msgstr "Verificați-vă e-mailul pentru un link de verificare a contului."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Control"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Verificare schiță"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Chineză (simplificată)"
@@ -966,6 +979,10 @@ msgstr "Conversație copiată."
msgid "Conversation JSON copied."
msgstr "JSON-ul conversației a fost copiat."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Schiță de foaie de stil convertită"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Copiat în clipboard."
@@ -989,6 +1006,15 @@ msgstr "Copiază codurile de rezervă"
msgid "Copy JSON"
msgstr "Copiază JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Copiază secretul"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Copiați foaia de stil"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Copiați această cheie secretă și folosiți-o în aplicațiile dvs. pentru a vă accesa datele."
@@ -1545,6 +1571,11 @@ msgstr "Editează {chip}"
msgid "Edit application"
msgstr "Editați aplicația"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Editează culoarea {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Introduceți parola pentru a confirma configurarea autentificării cu do
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduceți parola pentru a dezactiva autentificarea cu doi factori. Contul va fi mai puțin sigur fără 2FA activat."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Eroare"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Fiecare contribuție, mare sau mică, face o diferență uriașă pentru proiect.<0/>Vă mulțumim pentru sprijin!"
@@ -1682,6 +1717,10 @@ msgstr "Fiecare contribuție, mare sau mică, face o diferență uriașă pentru
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Tot ce aveți nevoie pentru a crea, personaliza și partaja CV-uri profesionale. Construit având confidențialitatea în minte, bazat pe open source și complet gratuit pentru totdeauna."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Ieșiți din modul de focalizare"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ieșire din ecran complet"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Foaie de stil de format"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratuit"
@@ -2584,6 +2627,12 @@ msgstr "Deschisă"
msgid "Light theme"
msgstr "Temă deschisă"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Linia {0}, coloana {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Înălțimea liniei"
@@ -2898,10 +2947,6 @@ msgstr "Încă nu există versiuni salvate."
msgid "No source data yet."
msgstr "Nu există date sursă încă."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Încă nu există reguli de stil."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Niciun furnizor testat"
@@ -2918,6 +2963,10 @@ msgstr "Norvegiană"
msgid "Not connected"
msgstr "Neconectat"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nu ești sigur ce să scrii?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Asistent AI deschis"
msgid "Open Email Client"
msgstr "Deschide clientul de e-mail"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Deschide modul de focalizare"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Deschide în constructor"
@@ -2992,6 +3045,7 @@ msgstr "Compatibil cu OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Apăsați <0>Enter</0> pentru a deschide"
msgid "Preview"
msgstr "Previzualizare"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Previzualizarea și exportarea utilizează ultima versiune validă."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Culoare primară"
@@ -3374,10 +3432,22 @@ msgstr "CV reactiv v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "CV reactiv v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Citiți ghidul Aplicarea stilurilor personalizate."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Lectură…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gata de activare"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gata de activare cu avertismente"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Destinatar"
@@ -3394,6 +3464,10 @@ msgstr "Dreptunghi (lățime completă)"
msgid "Redo"
msgstr "Refaceți"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Refaceți editarea foii de stil"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Resetează"
msgid "Reset Password"
msgstr "Resetați parola"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Resetare stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Resetare la foaia de stil aplicată"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Română"
msgid "Rotation"
msgstr "Rotire"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regulă"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "reguli"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "selectat"
msgid "Self-Host with Docker"
msgstr "Self-host cu Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Foaie de stil CSS semantică"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Trimite mesaj"
@@ -4152,6 +4222,14 @@ msgstr "Tăiat"
msgid "Strong fit"
msgstr "Potrivire puternică"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor de foi de stil"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Foaia de stil conține erori"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Pagina pe care o căutați s-ar putea să fi fost mutată sau să nu mai
msgid "The password you entered is incorrect"
msgstr "Parola introdusă este incorectă"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Previzualizarea CV-ului nu a putut fi actualizată. Ultima previzualizare validă este încă afișată."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV-ul la care încercați să accesați este protejat prin parolă"
@@ -4639,6 +4721,10 @@ msgstr "Subliniat"
msgid "Undo"
msgstr "Anula"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Anulează editarea foii de stil"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "CV-uri nelimitate"
@@ -5013,6 +5099,10 @@ msgstr "Datele dvs. sunt stocate în siguranță și nu sunt niciodată partajat
msgid "Your latest changes could not be saved."
msgstr "Ultimele modificări ale dvs. nu au putut fi salvate."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Stilurile tale vechi rămân active până când activezi explicit această schiță CSS semantică."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Parola a fost resetată cu succes. Vă puteți autentifica acum cu noua parolă."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -163,6 +163,10 @@ msgstr "Меню учетной записи"
msgid "Actions"
msgstr "Действия"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активировать семантический CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Фактический размер (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Заявки, отправленные за неделю (последние 8 недель)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Отклик отправлен"
@@ -489,9 +494,9 @@ msgstr "Отклик отправлен"
msgid "Applied on"
msgstr "Применяется на"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Применяемые правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Применяется с предупреждениями."
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Проверьте свою электронную почту: в пис
msgid "Check your email for a link to verify your account."
msgstr "Проверьте свою электронную почту: в письме есть ссылка для подтверждения учетной записи."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Проверка"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Проверка черновика"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Китайский (упрощенный)"
@@ -966,6 +979,10 @@ msgstr "Переписка скопирована."
msgid "Conversation JSON copied."
msgstr "JSON-данные диалога скопированы."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Преобразованный черновик таблицы стилей"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Скопировано в буфер обмена."
@@ -989,6 +1006,15 @@ msgstr "Скопировать резервные коды"
msgid "Copy JSON"
msgstr "Скопировать JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Скопировать секрет"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Скопировать таблицу стилей"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Скопируйте этот секретный ключ и используйте его в своих приложениях для доступа к данным."
@@ -1545,6 +1571,11 @@ msgstr "Редактировать {chip}"
msgid "Edit application"
msgstr "Редактировать заявку"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Изменить цвет {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Введите пароль, чтобы подтвердить наст
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Введите пароль, чтобы отключить двухфакторную аутентификацию. Без 2FA ваша учетная запись будет менее защищена."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Ошибка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Каждый вклад, большой или маленький, имеет огромное значение для проекта.<0/>Спасибо за вашу поддержку!"
@@ -1682,6 +1717,10 @@ msgstr "Каждый вклад, большой или маленький, им
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Все, что нужно для создания, настройки и обмена профессиональными резюме. Создано с заботой о конфиденциальности, работает на базе открытого исходного кода и навсегда останется полностью бесплатным."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Выйти из режима фокусировки"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Выйти из полноэкранного режима"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Формат таблицы стилей"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Бесплатно"
@@ -2584,6 +2627,12 @@ msgstr "Светлая"
msgid "Light theme"
msgstr "Светлая тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Строка {0}, столбец {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Высота строки"
@@ -2898,10 +2947,6 @@ msgstr "Сохранённых версий пока нет."
msgid "No source data yet."
msgstr "Исходных данных пока нет."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Пока нет никаких правил стиля."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Нет проверенного поставщика"
@@ -2918,6 +2963,10 @@ msgstr "Норвежский"
msgid "Not connected"
msgstr "Не подключено"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Не знаете, что написать?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Открытый ИИ-помощник"
msgid "Open Email Client"
msgstr "Открыть почтовый клиент"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Открытый режим фокусировки"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Открыть в конструкторе"
@@ -2992,6 +3045,7 @@ msgstr "Совместимость с OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Нажмите <0>Enter</0>, чтобы открыть"
msgid "Preview"
msgstr "Предварительный просмотр"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Для предварительного просмотра и экспорта используется последняя действующая версия."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основной цвет"
@@ -3374,10 +3432,22 @@ msgstr "Реактивное возобновление v<0>{__APP_VERSION__}</0
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Ознакомьтесь с руководством по применению пользовательских стилей."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Чтение…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Готово к активации"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Готов к активации с предупреждениями."
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Получатель"
@@ -3394,6 +3464,10 @@ msgstr "Прямоугольник (на всю ширину)"
msgid "Redo"
msgstr "Переделать"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Повторить редактирование таблицы стилей"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Сброс"
msgid "Reset Password"
msgstr "Сбросить пароль"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Сбросить стиль"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Сбросить до примененной таблицы стилей"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Румынский"
msgid "Rotation"
msgstr "Поворот"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "правило"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "правила"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Проведите свой первый анализ, чтобы получить оценочный лист, сильные стороны и приоритетные предложения."
@@ -3791,6 +3857,10 @@ msgstr "выбрано"
msgid "Self-Host with Docker"
msgstr "Хостинг на Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантическая таблица стилей CSS"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Отправить сообщение"
@@ -4152,6 +4222,14 @@ msgstr "Зачеркнутый"
msgid "Strong fit"
msgstr "Сильная посадка"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Редактор таблиц стилей"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "В таблице стилей обнаружены ошибки."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Сабреддит"
@@ -4308,6 +4386,10 @@ msgstr "Возможно, искомая вами страница была пе
msgid "The password you entered is incorrect"
msgstr "Введенный пароль неверен"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Не удалось обновить предварительный просмотр резюме. По-прежнему отображается последний корректный предварительный просмотр."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Резюме, к которому вы пытаетесь получить доступ, защищено паролем"
@@ -4639,6 +4721,10 @@ msgstr "Подчеркивание"
msgid "Undo"
msgstr "Отменить"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Отменить редактирование таблицы стилей"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Неограниченное количество резюме"
@@ -5013,6 +5099,10 @@ msgstr "Ваши данные надежно хранятся и никогда
msgid "Your latest changes could not be saved."
msgstr "Ваши последние изменения не удалось сохранить."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ваши устаревшие стили останутся активными до тех пор, пока вы явно не активируете этот черновой вариант семантического CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ваш пароль был успешно сброшен. Теперь вы можете войти с новым паролем."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "Ponuka účtu"
msgid "Actions"
msgstr "Akcie"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivovať sémantický CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Skutočná veľkosť (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Žiadosti odoslané za týždeň (posledných 8 týždňov)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Odoslané"
@@ -489,9 +494,9 @@ msgstr "Odoslané"
msgid "Applied on"
msgstr "Aplikované dňa"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Použité pravidlá"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Použité s upozorneniami"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Skontroluj svoj e‑mail, nájdeš tam odkaz na obnovenie hesla."
msgid "Check your email for a link to verify your account."
msgstr "Skontroluj svoj e‑mail, nájdeš tam odkaz na overenie účtu."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrola"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontrola konceptu"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Čínština (zjednodušená)"
@@ -966,6 +979,10 @@ msgstr "Konverzácia bola skopírovaná."
msgid "Conversation JSON copied."
msgstr "JSON konverzácie bol skopírovaný."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konvertovaný koncept štýlového hárka"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Skopírované do schránky."
@@ -989,6 +1006,15 @@ msgstr "Skopírovať záložné kódy"
msgid "Copy JSON"
msgstr "Kopírovať JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopírovať tajný kód"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopírovať šablónu so štýlmi"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Skopíruj tento tajný kľúč a použi ho vo svojich aplikáciách na prístup k svojim dátam."
@@ -1545,6 +1571,11 @@ msgstr "Upraviť {chip}"
msgid "Edit application"
msgstr "Upraviť aplikáciu"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Upraviť farbu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Zadaj svoje heslo na potvrdenie nastavenia dvojfaktorového overenia. Po
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Zadaj svoje heslo na vypnutie dvojfaktorového overenia. Bez zapnutého 2FA bude tvoj účet menej zabezpečený."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Chyba"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Každý príspevok, veľký či malý, má pre projekt obrovský význam.<0/>Ďakujeme za tvoju podporu!"
@@ -1682,6 +1717,10 @@ msgstr "Každý príspevok, veľký či malý, má pre projekt obrovský význam
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Všetko, čo potrebuješ na vytvorenie, prispôsobenie a zdieľanie profesionálnych životopisov. Vytvorené s dôrazom na súkromie, poháňané open source a úplne zadarmo – navždy."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Ukončiť režim zaostrenia"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ukončiť celú obrazovku"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formát"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formátovať štýlový hárok"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Zadarmo"
@@ -2584,6 +2627,12 @@ msgstr "Svetlá"
msgid "Light theme"
msgstr "Svetlá téma"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Riadok {0}, stĺpec {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Riadkovanie"
@@ -2898,10 +2947,6 @@ msgstr "Zatiaľ nie sú uložené žiadne verzie."
msgid "No source data yet."
msgstr "Zatiaľ žiadne zdrojové údaje."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Zatiaľ žiadne pravidlá štýlu."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Žiadny testovaný poskytovateľ"
@@ -2918,6 +2963,10 @@ msgstr "Nórčina"
msgid "Not connected"
msgstr "Nepripojené"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nie ste si istí, čo napísať?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Otvorený asistent s umelou inteligenciou"
msgid "Open Email Client"
msgstr "Otvoriť e‑mailového klienta"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Otvoriť režim zaostrenia"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Otvoriť v editore"
@@ -2992,6 +3045,7 @@ msgstr "Kompatibilné s OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Stlačením tlačidla <0>Enter</0> otvoríte"
msgid "Preview"
msgstr "Náhľad"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Pri ukážke a exporte sa použije posledná platná verzia."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hlavná farba"
@@ -3374,10 +3432,22 @@ msgstr "Reaktívny životopis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktívny životopis v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Prečítajte si príručku Používanie vlastných štýlov."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Číta sa…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pripravené na aktiváciu"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pripravené na aktiváciu s upozorneniami"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Príjemca"
@@ -3394,6 +3464,10 @@ msgstr "Obdĺžnik (plná šírka)"
msgid "Redo"
msgstr "Znovu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Znovu upraviť štýlový hárok"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Resetovať"
msgid "Reset Password"
msgstr "Obnoviť heslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Obnoviť štýl"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Obnoviť na použitý štýlový hárok"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumunčina"
msgid "Rotation"
msgstr "Otočenie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "pravidlo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "pravidlá"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "vybrané"
msgid "Self-Host with Docker"
msgstr "Vlastný hosting cez Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Sémantický CSS štýlový hárok"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Odoslať správu"
@@ -4152,6 +4222,14 @@ msgstr "Prečiarknuté"
msgid "Strong fit"
msgstr "Silný strih"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Editor štýlov"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Štýlový hárok obsahuje chyby"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Stránka, ktorú hľadáte, mohla byť presunutá alebo už neexistuje."
msgid "The password you entered is incorrect"
msgstr "Zadané heslo je nesprávne"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Ukážku životopisu sa nepodarilo aktualizovať. Stále sa zobrazuje posledná platná ukážka."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Životopis, ku ktorému sa snažíš pristúpiť, je chránený heslom"
@@ -4639,6 +4721,10 @@ msgstr "Podčiarknuté"
msgid "Undo"
msgstr "Späť"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Vrátiť späť úpravu štýlového hárka"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neobmedzený počet životopisov"
@@ -5013,6 +5099,10 @@ msgstr "Tvoje dáta sú bezpečne uložené a nikdy sa nezdieľajú s tretími s
msgid "Your latest changes could not be saved."
msgstr "Vaše posledné zmeny sa nepodarilo uložiť."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vaše staršie štýly zostanú aktívne, kým explicitne neaktivujete tento koncept sémantického CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Tvoje heslo bolo úspešne obnovené. Teraz sa môžeš prihlásiť s novým heslom."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -163,6 +163,10 @@ msgstr "Meni računa"
msgid "Actions"
msgstr "Dejanja"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktiviraj semantični CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Dejanska velikost (100 %)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Prijave, poslane na teden (zadnjih 8 tednov)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Prijavljeno"
@@ -489,9 +494,9 @@ msgstr "Prijavljeno"
msgid "Applied on"
msgstr "Uporabljeno na"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Uporabljena pravila"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Uporabljeno z opozorili"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Preverite svoj e-poštni naslov za povezavo za ponastavitev gesla."
msgid "Check your email for a link to verify your account."
msgstr "Preverite svoj e-poštni naslov za povezavo za potrditev računa."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Preverjanje"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Preverjanje osnutka"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kitajščina (poenostavljena)"
@@ -966,6 +979,10 @@ msgstr "Pogovor je kopiran."
msgid "Conversation JSON copied."
msgstr "JSON pogovora je bil kopiran."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Pretvorjen osnutek slogovne predloge"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopirano v odložišče."
@@ -989,6 +1006,15 @@ msgstr "Kopiraj rezervne kode"
msgid "Copy JSON"
msgstr "Kopiraj JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopiraj skrivnost"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiraj slogovno predlogo"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopirajte to skrivno kodo in jo uporabite v svojih aplikacijah za dostop do svojih podatkov."
@@ -1545,6 +1571,11 @@ msgstr "Uredi {chip}"
msgid "Edit application"
msgstr "Uredi aplikacijo"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Uredi barvo {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Vnesite svoje geslo, da potrdite nastavitev dvostopenjskega preverjanja
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Vnesite svoje geslo za onemogočanje dvostopenjskega preverjanja pristnosti. Vaš račun bo brez omogočenega 2FA manj varen."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Napaka"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Vsak prispevek, velik ali majhen, veliko pomeni projektu.<0/>Hvala za vašo podporo!"
@@ -1682,6 +1717,10 @@ msgstr "Vsak prispevek, velik ali majhen, veliko pomeni projektu.<0/>Hvala za va
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Vse, kar potrebujete za ustvarjanje, prilagajanje in deljenje strokovnih življenjepisov. Zgrajeno z mislijo na zasebnost, temelji na odprti kodi in je popolnoma brezplačno za vedno."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Izhod iz načina ostrenja"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Izhod iz celozaslonskega načina"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Oblikovanje slogovne predloge"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Brezplačno"
@@ -2584,6 +2627,12 @@ msgstr "Svetlo"
msgid "Light theme"
msgstr "Svetla tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Vrstica {0}, stolpec {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Višina vrstice"
@@ -2898,10 +2947,6 @@ msgstr "Še ni shranjenih različic."
msgid "No source data yet."
msgstr "Izvornih podatkov še ni."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Še ni slogovnih pravil."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Ni preizkušenega ponudnika"
@@ -2918,6 +2963,10 @@ msgstr "norveščina"
msgid "Not connected"
msgstr "Ni povezano"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Niste prepričani, kaj naj napišete?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Odprti pomočnik umetne inteligence"
msgid "Open Email Client"
msgstr "Odpri e-poštni odjemalec"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Odpri način ostrenja"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Odpri v graditelju"
@@ -2992,6 +3045,7 @@ msgstr "Združljivo z OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Pritisnite <0>Enter</0>, da odprete"
msgid "Preview"
msgstr "Predogled"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Predogled in izvoz uporabljata zadnjo veljavno različico."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primarna barva"
@@ -3374,10 +3432,22 @@ msgstr "Reaktivni življenjepis v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivni življenjepis v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Preberite vodnik Uporaba slogov po meri."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Branje ..."
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Pripravljeno za aktivacijo"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Pripravljeno za aktivacijo z opozorili"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Prejemnik"
@@ -3394,6 +3464,10 @@ msgstr "Pravokotnik (polna širina)"
msgid "Redo"
msgstr "Ponovi"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ponovi urejanje slogovne predloge"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Ponastavi"
msgid "Reset Password"
msgstr "Ponastavi geslo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Ponastavi slog"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Ponastavi na uporabljeno slogovno predlogo"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "romunščina"
msgid "Rotation"
msgstr "Rotacija"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "pravilo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "pravila"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Izvedite prvo analizo in pridobite preglednico, prednosti in prednostne predloge."
@@ -3791,6 +3857,10 @@ msgstr "izbrano"
msgid "Self-Host with Docker"
msgstr "Lastno gostovanje z Dockerjem"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantični CSS slogovni predlog"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Pošlji sporočilo"
@@ -4152,6 +4222,14 @@ msgstr "Prečrtano"
msgid "Strong fit"
msgstr "Močno prileganje"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Urejevalnik slogovnih predlog"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Slogovna predloga vsebuje napake"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Podreddit"
@@ -4308,6 +4386,10 @@ msgstr "Stran, ki jo iščete, je bila morda premaknjena ali pa ne obstaja več.
msgid "The password you entered is incorrect"
msgstr "Vnesli ste napačno geslo"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Predogleda življenjepisa ni bilo mogoče posodobiti. Še vedno je prikazan zadnji veljaven predogled."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Življenjepis, do katerega želite dostopati, je zaščiten z geslom"
@@ -4639,6 +4721,10 @@ msgstr "Podčrtano"
msgid "Undo"
msgstr "Razveljavi"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Razveljavi urejanje slogovne predloge"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Neomejeni življenjepisi"
@@ -5013,6 +5099,10 @@ msgstr "Vaši podatki so varno shranjeni in se nikoli ne delijo s tretjimi oseba
msgid "Your latest changes could not be saved."
msgstr "Vaših zadnjih sprememb ni bilo mogoče shraniti."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Vaši podedovani slogi ostanejo aktivni, dokler izrecno ne aktivirate tega osnutka semantičnega CSS-ja."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Vaše geslo je bilo uspešno ponastavljeno. Zdaj se lahko prijavite z novim geslom."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sq\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Albanian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Menuja e llogarisë"
msgid "Actions"
msgstr "Veprime"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivizo CSS-në Semantike"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Madhësia reale (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Aplikimet e dërguara për javë (8 javët e fundit)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Aplikuar"
@@ -489,9 +494,9 @@ msgstr "Aplikuar"
msgid "Applied on"
msgstr "Aplikuar në"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Rregullat e zbatuara"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Zbatuar me paralajmërime"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Kontrolloni emailin tuaj për një link për të rivendosur fjalëkalimi
msgid "Check your email for a link to verify your account."
msgstr "Kontrolloni emailin tuaj për një link për të verifikuar llogarinë tuaj."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Duke kontrolluar"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Duke kontrolluar draftin"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinezçe (E thjeshtuar)"
@@ -966,6 +979,10 @@ msgstr "Biseda u kopjua."
msgid "Conversation JSON copied."
msgstr "JSON i bisedës u kopjua."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Drafti i konvertuar i fletës së stilit"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopjuar në kujtesën e fragmenteve."
@@ -989,6 +1006,15 @@ msgstr "Kopjo kodet rezervë"
msgid "Copy JSON"
msgstr "Kopjo JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Sekreti i kopjimit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopjo fletën e stilit"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopjoni këtë çelës sekret dhe përdoreni në aplikacionet tuaja për të aksesuar të dhënat tuaja."
@@ -1545,6 +1571,11 @@ msgstr "Redakto {chip}"
msgid "Edit application"
msgstr "Redakto aplikacionin"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Modifiko ngjyrën {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Shkruani fjalëkalimin tuaj për të konfirmuar konfigurimin e vërtetim
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Shkruani fjalëkalimin tuaj për të çaktivizuar vërtetimin me dy faktorë. Llogaria juaj do të jetë më pak e sigurt pa 2FA të aktivizuar."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Gabim"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Çdo kontribut, i madh apo i vogël, bën një ndryshim të madh për projektin.<0/>Faleminderit për mbështetjen tuaj!"
@@ -1682,6 +1717,10 @@ msgstr "Çdo kontribut, i madh apo i vogël, bën një ndryshim të madh për pr
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Gjithçka që ju nevojitet për të krijuar, personalizuar dhe shpërndarë CV profesionale. Ndërtuar me fokus privatësinë, i fuqizuar nga burimi i hapur dhe krejtësisht falas përgjithmonë."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Dil nga modaliteti i fokusit"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Dil nga ekrani i plotë"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Formati"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formato fletën e stilit"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Falas"
@@ -2584,6 +2627,12 @@ msgstr "E çelët"
msgid "Light theme"
msgstr "Temë e çelët"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rreshti {0}, kolona {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Lartësia e rreshtit"
@@ -2898,10 +2947,6 @@ msgstr "Nuk ka ende versione të ruajtura."
msgid "No source data yet."
msgstr "Nuk ka ende të dhëna burimore."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Ende nuk ka rregulla stili."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Asnjë ofrues i testuar"
@@ -2918,6 +2963,10 @@ msgstr "Norvegjisht"
msgid "Not connected"
msgstr "I palidhur"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nuk jeni i sigurt se çfarë të shkruani?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Asistent i hapur i inteligjencës artificiale"
msgid "Open Email Client"
msgstr "Hap klientin e emailit"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Hap modalitetin e fokusit"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Hap në ndërtues"
@@ -2992,6 +3045,7 @@ msgstr "I pajtueshëm me OpenAI"
msgid "OpenRouter"
msgstr "Ruter i hapur"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Shtypni <0>Enter</0> për të hapur"
msgid "Preview"
msgstr "Pamje paraprake"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Parapamja dhe eksportimi përdorin versionin e fundit të vlefshëm."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Ngjyra kryesore"
@@ -3374,10 +3432,22 @@ msgstr "Rezyme Reaktive v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Lexoni udhëzuesin Zbatimi i Stileve të Personalizuara."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Duke lexuar…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Gati për t'u aktivizuar"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Gati për t'u aktivizuar me paralajmërime"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Marrësi"
@@ -3394,6 +3464,10 @@ msgstr "Drejtkëndësh (gjerësi e plotë)"
msgid "Redo"
msgstr "Ribëj"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Ribëj ndryshimin e fletës së stilit"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Rivendos"
msgid "Reset Password"
msgstr "Rivendos fjalëkalimin"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Rivendos stilin"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Rivendos në fletën e stilit të aplikuar"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumanisht"
msgid "Rotation"
msgstr "Rrotullimi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "sundoj"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "rregulla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "të zgjedhura"
msgid "Self-Host with Docker"
msgstr "Self-host me Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Fletë stili semantike CSS"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Dërgo mesazh"
@@ -4152,6 +4222,14 @@ msgstr "Heqje"
msgid "Strong fit"
msgstr "Përshtatje e fortë"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Redaktuesi i fletës së stilit"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Fleta e stilit ka gabime"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Faqja që po kërkoni mund të jetë zhvendosur ose nuk ekziston më."
msgid "The password you entered is incorrect"
msgstr "Fjalëkalimi që keni futur është i pasaktë"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Pamja paraprake e CV-së nuk mund të përditësohej. Pamja paraprake e fundit e vlefshme shfaqet ende."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV-ja që po përpiqeni të aksesoni është e mbrojtur me fjalëkalim"
@@ -4639,6 +4721,10 @@ msgstr "Nënvizo"
msgid "Undo"
msgstr "Anulo"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Anulo ndryshimin e fletës së stilit"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "CV të pakufizuara"
@@ -5013,6 +5099,10 @@ msgstr "Të dhënat tuaja ruhen në mënyrë të sigurt dhe nuk ndahen kurrë me
msgid "Your latest changes could not be saved."
msgstr "Ndryshimet tuaja të fundit nuk mund të ruheshin."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Stilet tuaja të trashëguara mbeten aktive derisa ta aktivizoni në mënyrë të qartë këtë draft Semantic CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Fjalëkalimi juaj u rivendos me sukses. Tani mund të hyni me fjalëkalimin tuaj të ri."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Serbian (Cyrillic)\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
@@ -163,6 +163,10 @@ msgstr "Мени налога"
msgid "Actions"
msgstr "Радње"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активирајте семантички CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Стварна величина (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Пријаве послате недељно (последњих 8 недеља)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Пријављено"
@@ -489,9 +494,9 @@ msgstr "Пријављено"
msgid "Applied on"
msgstr "Примењено на"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Примењена правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Примењено са упозорењима"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Проверите е-пошту за везу за ресетовање
msgid "Check your email for a link to verify your account."
msgstr "Проверите е-пошту за везу да верификујете налог."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Провера"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Текућа верзија"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Кинески (поједностављени)"
@@ -966,6 +979,10 @@ msgstr "Разговор је копиран."
msgid "Conversation JSON copied."
msgstr "JSON датотека разговора је копирана."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Конвертована нацртна верзија стилског листа"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Копирано у међуспремник."
@@ -989,6 +1006,15 @@ msgstr "Копирај резервне кодове"
msgid "Copy JSON"
msgstr "Копирај JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Копирај тајни"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Копирај стилски лист"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Копирајте овај тајни кључ и користите га у својим апликацијама за приступ вашим подацима."
@@ -1545,6 +1571,11 @@ msgstr "Уреди {chip}"
msgid "Edit application"
msgstr "Уреди апликацију"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Измени боју {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Унесите своју лозинку да потврдите под
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Унесите своју лозинку да бисте онемогућили двофакторску аутентификацију. Ваш налог ће бити мање безбедан без омогућеног 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Грешка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Сваки допринос, велики или мали, прави велику разлику за пројекат.<0/>Хвала вам на подршци!"
@@ -1682,6 +1717,10 @@ msgstr "Сваки допринос, велики или мали, прави в
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Све што вам је потребно да креирате, прилагодите и делите професионалне резимее. Направљено имајући у виду приватност, базирано на отвореном коду и потпуно бесплатно заувек."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Изађи из режима фокусирања"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Изађи из целог екрана"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Форматирање стилског листа"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Бесплатно"
@@ -2584,6 +2627,12 @@ msgstr "Светла"
msgid "Light theme"
msgstr "Светла тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Ред {0}, колона {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Висина реда"
@@ -2898,10 +2947,6 @@ msgstr "Још нема сачуваних верзија."
msgid "No source data yet."
msgstr "Још нема изворних података."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Још нема стилских правила."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Нема тестираног добављача"
@@ -2918,6 +2963,10 @@ msgstr "Норвешки"
msgid "Not connected"
msgstr "Није повезано"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Нисте сигурни шта да напишете?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Отворите AI асистент"
msgid "Open Email Client"
msgstr "Отвори клијент за е-пошту"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Отвори режим фокуса"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Отвори у креатору"
@@ -2992,6 +3045,7 @@ msgstr "Компатибилно са OpenAI-ом"
msgid "OpenRouter"
msgstr "Отворени рутер"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Притисните <0>Enter</0> да бисте отворили"
msgid "Preview"
msgstr "Преглед"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Преглед и извоз користе последњу важећу верзију."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Примарна боја"
@@ -3374,10 +3432,22 @@ msgstr "Реактивни резиме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Реактивни резиме v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Прочитајте водич за примену прилагођених стилова."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Читање…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Спремно за активирање"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Спремно за активирање са упозорењима"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Прималац"
@@ -3394,6 +3464,10 @@ msgstr "Правоугаоник (пуна ширина)"
msgid "Redo"
msgstr "Понови"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Понови измену стилског листа"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Ресетуј"
msgid "Reset Password"
msgstr "Ресетуј лозинку"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Ресетуј стил"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Врати на примењени стилски лист"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Румунски"
msgid "Rotation"
msgstr "Ротација"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "правило"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "правила"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Покрените прву анализу да бисте добили контролну таблу, снаге и приоритезоване предлоге."
@@ -3791,6 +3857,10 @@ msgstr "изабрани"
msgid "Self-Host with Docker"
msgstr "Самохостовање помоћу Docker-а"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантички CSS стилски лист"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Пошаљи поруку"
@@ -4152,6 +4222,14 @@ msgstr "Прецртано"
msgid "Strong fit"
msgstr "Снажно уклапање"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Уређивач стилских листова"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Стилски лист садржи грешке"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Субредит"
@@ -4308,6 +4386,10 @@ msgstr "Страница коју тражите је можда премешт
msgid "The password you entered is incorrect"
msgstr "Лозинка коју сте унели је нетачна"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Преглед резимеа није могао бити ажуриран. Последњи важећи преглед је и даље приказан."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Резиме коме покушавате да приступите је заштићен лозинком"
@@ -4639,6 +4721,10 @@ msgstr "Подвучено"
msgid "Undo"
msgstr "Поништи"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Поништи измену стилског листа"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Неограничени резимеи"
@@ -5013,6 +5099,10 @@ msgstr "Ваши подаци се чувају безбедно и никада
msgid "Your latest changes could not be saved."
msgstr "Ваше последње измене нису могле бити сачуване."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ваши старији стилови остају активни док експлицитно не активирате ову семантичку CSS верзију."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ваша лозинка је успешно ресетована. Сада можете да се пријавите новом лозинком."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Konto-meny"
msgid "Actions"
msgstr "Åtgärder"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Aktivera semantisk CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Verklig storlek (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Ansökningar skickade per vecka (senaste 8 veckorna)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Ansökt"
@@ -489,9 +494,9 @@ msgstr "Ansökt"
msgid "Applied on"
msgstr "Tillämpas på"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Tillämpade regler"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Tillämpas med varningar"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Kontrollera din e-post för en länk för att återställa ditt lösenor
msgid "Check your email for a link to verify your account."
msgstr "Kontrollera din e-post för en länk för att verifiera ditt konto."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontroll"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kontrollerar utkast"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Kinesiska (förenklad)"
@@ -966,6 +979,10 @@ msgstr "Konversationen kopierades."
msgid "Conversation JSON copied."
msgstr "Konversationens JSON kopierades."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Konverterat utkast till stilark"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Kopierade till urklipp."
@@ -989,6 +1006,15 @@ msgstr "Kopiera säkerhetskoder"
msgid "Copy JSON"
msgstr "Kopiera JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopiera hemlighet"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Kopiera stilark"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Kopiera denna hemliga nyckel och använd den i dina applikationer för att komma åt din data."
@@ -1545,6 +1571,11 @@ msgstr "Redigera {chip}"
msgid "Edit application"
msgstr "Redigera ansökan"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Redigera färg {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Ange ditt lösenord för att bekräfta att du vill ställa in tvåfaktor
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Ange ditt lösenord för att inaktivera tvåfaktorsautentisering. Ditt konto blir mindre säkert utan aktiverad 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Fel"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Varje bidrag, stort som litet, gör en enorm skillnad för projektet.<0/>Tack för ditt stöd!"
@@ -1682,6 +1717,10 @@ msgstr "Varje bidrag, stort som litet, gör en enorm skillnad för projektet.<0/
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Allt du behöver för att skapa, anpassa och dela professionella CV:n. Byggt med fokus på integritet, drivet av öppen källkod och helt gratis för alltid."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Avsluta fokusläge"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avsluta helskärm"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Formatera stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Gratis"
@@ -2584,6 +2627,12 @@ msgstr "Ljus"
msgid "Light theme"
msgstr "Ljust tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Rad {0}, kolumn {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Radavstånd"
@@ -2898,10 +2947,6 @@ msgstr "Inga sparade versioner ännu."
msgid "No source data yet."
msgstr "Inga källdata ännu."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Inga stilregler än."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Ingen testad leverantör"
@@ -2918,6 +2963,10 @@ msgstr "Norska"
msgid "Not connected"
msgstr "Inte ansluten"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Osäker på vad du ska skriva?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Öppna AI-assistenten"
msgid "Open Email Client"
msgstr "Öppna e-postklient"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Öppna fokusläge"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Öppna i verktyget"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-kompatibel"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Tryck på <0>Enter</0> för att öppna"
msgid "Preview"
msgstr "Förhandsvisning"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Förhandsgranska och exportera med den senast giltiga versionen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfärg"
@@ -3374,10 +3432,22 @@ msgstr "Reaktivt CV v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktivt CV v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Läs guiden för att tillämpa anpassade stilar."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Läsning…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Klar att aktiveras"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Klar att aktiveras med varningar"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Mottagare"
@@ -3394,6 +3464,10 @@ msgstr "Rektangel (full bredd)"
msgid "Redo"
msgstr "Göra om"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Gör om redigeringen av stilmall"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Återställ"
msgid "Reset Password"
msgstr "Återställ lösenord"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Återställ stil"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Återställ till tillämpat formatmall"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumänska"
msgid "Rotation"
msgstr "Rotation"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "regel"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "regler"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "vald"
msgid "Self-Host with Docker"
msgstr "Självhosting med Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantisk CSS-stilmall"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Skicka meddelande"
@@ -4152,6 +4222,14 @@ msgstr "Genomstrykning"
msgid "Strong fit"
msgstr "Stark passform"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stilarksredigerare"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stilarket innehåller fel"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Sidan du letar efter kan ha flyttats eller inte längre existera."
msgid "The password you entered is incorrect"
msgstr "Lösenordet du angav är felaktigt"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Förhandsgranskningen av CV:t kunde inte uppdateras. Den senast giltiga förhandsgranskningen visas fortfarande."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "CV:t du försöker komma åt är lösenordsskyddat"
@@ -4639,6 +4721,10 @@ msgstr "Understrykning"
msgid "Undo"
msgstr "Ångra"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Ångra redigering av stilark"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Obegränsat antal CV:n"
@@ -5013,6 +5099,10 @@ msgstr "Dina data lagras säkert och delas aldrig med tredje part. Du kan också
msgid "Your latest changes could not be saved."
msgstr "Dina senaste ändringar kunde inte sparas."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Dina äldre stilar förblir aktiva tills du uttryckligen aktiverar detta semantiska CSS-utkast."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ditt lösenord har återställts. Du kan nu logga in med ditt nya lösenord."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ta\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Tamil\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "கணக்கு மெனு"
msgid "Actions"
msgstr "செயல்கள்"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "செமாண்டிக் CSS-ஐ செயல்படுத்துக"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "உண்மையான அளவு (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "வாரத்திற்கு அனுப்பப்பட்ட விண்ணப்பங்கள் (கடைசி 8 வாரங்கள்)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "விண்ணப்பிக்கப்பட்டது"
@@ -489,9 +494,9 @@ msgstr "விண்ணப்பிக்கப்பட்டது"
msgid "Applied on"
msgstr "அன்று விண்ணப்பித்தது"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "பயன்படுத்தப்பட்ட விதிகள்"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "எச்சரிக்கைகளுடன் கூடிய அறிவு"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "உங்கள் கடவுச்சொல்லை மீட்ட
msgid "Check your email for a link to verify your account."
msgstr "உங்கள் கணக்கை சரிபார்க்க ஒரு இணைப்புக்காக உங்கள் மின்னஞ்சலைச் சரிபார்க்கவும்."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "சரிபார்த்தல்"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "வரைவைச் சரிபார்த்தல்"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "சீனம் (எளிய)"
@@ -966,6 +979,10 @@ msgstr "உரையாடல் நகலெடுக்கப்பட்ட
msgid "Conversation JSON copied."
msgstr "உரையாடல் JSON நகலெடுக்கப்பட்டது."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "மாற்றப்பட்ட ஸ்டைல்ஷீட் வரைவு"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது."
@@ -989,6 +1006,15 @@ msgstr "காப்பு குறியீடுகளை நகலெடு"
msgid "Copy JSON"
msgstr "JSON-ஐ நகலெடுக்கவும்"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "ரகசியத்தை நகலெடுக்கவும்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "பாணித்தாளை நகலெடுக்கவும்"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "இந்த ரகசிய விசையை நகலெடுத்து, உங்கள் பயன்பாடுகளில் உங்கள் தரவினை அணுக பயன்படுத்தவும்."
@@ -1545,6 +1571,11 @@ msgstr "திருத்து {chip}"
msgid "Edit application"
msgstr "பயன்பாட்டைத் திருத்தவும்"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "வண்ணத்தைத் திருத்து {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "இரண்டு நிலை அங்கீகாரத்தை அ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "இரண்டு நிலை அங்கீகாரத்தை முடக்க உங்கள் கடவுச்சொல்லை உள்ளிடவும். 2FA இயங்காவிட்டால் உங்கள் கணக்கு குறைந்த பாதுகாப்புடன் இருக்கும்."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "பிழை"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ஒவ்வொரு பங்களிப்பும், பெரியதோ சிறியதோ, இந்த திட்டத்திற்கு மிகப் பெரிய மாற்றத்தை கொண்டுவந்து விடுகிறது.<0/>உங்கள் ஆதரவுக்கு நன்றி!"
@@ -1682,6 +1717,10 @@ msgstr "ஒவ்வொரு பங்களிப்பும், பெரி
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "தொழில்முறை ரெஸ்யூமிகளை உருவாக்க, விருப்பத்துக்கு உருப்பெற்றி, பகிர்வதற்குத் தேவையான அனைத்தும் இங்கே. தனியுரிமையை கருத்தில் கொண்டு உருவாக்கப்பட்டதால், திறந்த மூலத்தால் இயக்கப்படுகிறது மற்றும் எப்போதும் முழுவதுமாக இலவசம்."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "கவனப் பயன்முறையிலிருந்து வெளியேறு"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "முழுத்திரையிலிருந்து வெளியேறு"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "வடிவம்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "வடிவமைப்பு பாணித்தாள்"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "இலவசம்"
@@ -2584,6 +2627,12 @@ msgstr "லைட்"
msgid "Light theme"
msgstr "லைட் தீம்"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "வரி {0}, நெடுவரிசை {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "வரி உயரம்"
@@ -2898,10 +2947,6 @@ msgstr "இன்னும் சேமிக்கப்பட்ட பதி
msgid "No source data yet."
msgstr "இதுவரை ஆதார தரவு இல்லை."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "இன்னும் பாணி விதிகள் எதுவும் இல்லை."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "சோதிக்கப்பட்ட வழங்குநர் இல்லை"
@@ -2918,6 +2963,10 @@ msgstr "நார்வேஜியன்"
msgid "Not connected"
msgstr "இணைப்பு இல்லை"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "என்ன எழுதுவது என்று தெரியவில்லையா?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "திறந்த AI உதவியாளர்"
msgid "Open Email Client"
msgstr "மின்னஞ்சல் பயன்பாட்டை திறக்கவும்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "திறந்த குவிய முறை"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "பில்டரில் திறக்கவும்"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-இணக்கமானது"
msgid "OpenRouter"
msgstr "ஓப்பன்ரவுட்டர்"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "திறக்க <0>Enter ஐ</0> அழுத்தவும்"
msgid "Preview"
msgstr "முன்னோட்டம்"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "முன்னோட்டம் மற்றும் ஏற்றுமதிக்கு, கடைசியாகச் செல்லுபடியாகும் பதிப்பைப் பயன்படுத்தவும்."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "முதன்மை நிறம்"
@@ -3374,10 +3432,22 @@ msgstr "ரியாக்டிவ் ரெஸ்யூம் v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "எதிர்வினை ரெஸ்யூம் v4 (ஜேசன்)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "தனிப்பயன் பாணிகளைப் பயன்படுத்துதல் வழிகாட்டியைப் படிக்கவும்."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "படிக்கிறது…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "செயல்படுத்தத் தயார்"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "எச்சரிக்கைகளுடன் செயல்படுத்தத் தயார்"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "பெறுநர்"
@@ -3394,6 +3464,10 @@ msgstr "சதுரம் (முழு அகலம்)"
msgid "Redo"
msgstr "மீண்டும் செய்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "ஸ்டைல்ஷீட் திருத்தத்தை மீண்டும் செய்"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "மீட்டமை"
msgid "Reset Password"
msgstr "கடவுச்சொல்லை மீட்டமைக்கவும்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "பாணியை மீட்டமைக்கவும்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "பயன்படுத்தப்பட்ட பாணித் தாளுக்கு மீட்டமைக்கவும்"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "ரோமேனியன்"
msgid "Rotation"
msgstr "சுழற்சி"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "விதி"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "விதிகள்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "மதிப்பெண் அட்டை, பலங்கள் மற்றும் முன்னுரிமைப்படுத்தப்பட்ட பரிந்துரைகளைப் பெற உங்கள் முதல் பகுப்பாய்வை இயக்கவும்."
@@ -3791,6 +3857,10 @@ msgstr "தேர்ந்தெடுக்கப்பட்டது"
msgid "Self-Host with Docker"
msgstr "Docker-இன் உதவியுடன் தானே ஹோஸ்ட் செய்யவும்"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "செமாண்டிக் CSS ஸ்டைல்ஷீட்"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "செய்திகளை அனுப்பு"
@@ -4152,6 +4222,14 @@ msgstr "கோடு கிழித்தல்"
msgid "Strong fit"
msgstr "வலுவான பொருத்தம்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ஸ்டைல்ஷீட் எடிட்டர்"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ஸ்டைல்ஷீட்டில் பிழைகள் உள்ளன"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "சப்ரெட்டிட்"
@@ -4308,6 +4386,10 @@ msgstr "நீங்கள் தேடும் பக்கம் வேறு
msgid "The password you entered is incorrect"
msgstr "நீங்கள் உள்ளிட்ட கடவுச்சொல் தவறானது"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "சுயவிவர முன்னோட்டத்தைப் புதுப்பிக்க முடியவில்லை. கடைசியாகச் செல்லுபடியான முன்னோட்டம் இன்னும் காட்டப்படுகிறது."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "நீங்கள் அணுக முயற்சிக்கும் ரெஸ்யூமி கடவுச்சொல் பாதுகாப்புடன் உள்ளது"
@@ -4639,6 +4721,10 @@ msgstr "அடைமுறை கோடு"
msgid "Undo"
msgstr "செயல்தவிர்"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ஸ்டைல்ஷீட் திருத்தத்தை செயல்தவிர்க்கவும்"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "வரம்பற்ற ரெஸ்யூமிகள்"
@@ -5013,6 +5099,10 @@ msgstr "உங்கள் தரவு பாதுகாப்பாக சே
msgid "Your latest changes could not be saved."
msgstr "உங்கள் சமீபத்திய மாற்றங்களைச் சேமிக்க முடியவில்லை."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "நீங்கள் இந்த செமாண்டிக் CSS வரைவை வெளிப்படையாகச் செயல்படுத்தும் வரை, உங்கள் மரபுப் பாணிகள் செயலில் இருக்கும்."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "உங்கள் கடவுச்சொல் வெற்றிகரமாக மீட்டமைக்கப்பட்டுள்ளது. இப்போது உங்கள் புதிய கடவுச்சொல்லைப் பயன்படுத்தி உள்நுழையலாம்."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: te\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Telugu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "ఖాతా మెనూ"
msgid "Actions"
msgstr "చర్యలు"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "సెమాంటిక్ CSSని యాక్టివేట్ చేయండి"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "వాస్తవ పరిమాణం (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "వారానికి పంపిన దరఖాస్తులు (చివరి 8 వారాలు)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "దరఖాస్తు చేశారు"
@@ -489,9 +494,9 @@ msgstr "దరఖాస్తు చేశారు"
msgid "Applied on"
msgstr "దరఖాస్తు చేసిన తేదీ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "వర్తింపజేసిన నియమాలు"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "హెచ్చరికలతో వర్తింపజేయబడింది"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చే
msgid "Check your email for a link to verify your account."
msgstr "మీ అకౌంట్‌ను ధృవీకరించడానికి లింక్ కోసం మీ ఇమెయిల్‌ను తనిఖీ చేయండి."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "తనిఖీ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "డ్రాఫ్ట్‌ను తనిఖీ చేయడం"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "చైనీస్ (సరళీకృత)"
@@ -966,6 +979,10 @@ msgstr "సంభాషణ నకలు చేయబడింది."
msgid "Conversation JSON copied."
msgstr "సంభాషణ JSON కాపీ చేయబడింది."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "మార్చబడిన స్టైల్‌షీట్ డ్రాఫ్ట్"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "క్లిప్‌బోర్డ్‌కు కాపీ చేయబడింది."
@@ -989,6 +1006,15 @@ msgstr "బ్యాకప్ కోడ్‌లను కాపీ చేయం
msgid "Copy JSON"
msgstr "JSONని కాపీ చేయండి"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "రహస్యాన్ని కాపీ చేయండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "స్టైల్‌షీట్‌ను కాపీ చేయండి"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "ఈ సీక్రెట్ కీని కాపీ చేసి మీ యాప్‌లలో మీరు మీ డేటాను యాక్సెస్ చేయడానికి ఉపయోగించండి."
@@ -1545,6 +1571,11 @@ msgstr "సవరించు {chip}"
msgid "Edit application"
msgstr "దరఖాస్తును సవరించు"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "రంగును సవరించండి {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "రెండు దశల ధృవీకరణ ఏర్పాటున
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "రెండు దశల ధృవీకరణను నిలిపివేయడానికి మీ పాస్‌వర్డ్‌ని నమోదు చేయండి. 2FA ప్రారంభించబడకుండా ఉంటే మీ ఖాతా తక్కువ భద్రతగా ఉంటుంది."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "లోపం"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ప్రతి సహకారం, చిన్నదైనా పెద్దదైనా, ప్రాజెక్టులో గొప్ప మార్పును తీసుకురాగలదు.<0/>మీ మద్దతుకు ధన్యవాదాలు!"
@@ -1682,6 +1717,10 @@ msgstr "ప్రతి సహకారం, చిన్నదైనా పె
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ప్రొఫెషనల్ రిజ్యూమ్‌లు సృష్టించడానికి, అనుకూలీకరించడానికి, మరియు పంచుకోవడానికి మీకు కావాల్సిన ప్రతిదీ. ప్రైవసీని దృష్టిలో పెట్టుకొని, ఓపెన్ సోర్స్‌తో నిర్మించబడింది, ఎప్పటికీ ఉచితం."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ఫోకస్ మోడ్ నుండి నిష్క్రమించండి"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "పూర్తి స్క్రీన్ నుండి నిష్క్రమించు"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "ఫార్మాట్"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "ఫార్మాట్ స్టైల్‌షీట్"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ఉచితం"
@@ -2584,6 +2627,12 @@ msgstr "లైట్"
msgid "Light theme"
msgstr "లైట్ థీమ్"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "లైన్ {0}, కాలమ్ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "లైన్ హైట్"
@@ -2898,10 +2947,6 @@ msgstr "ఇంకా సేవ్ చేసిన వెర్షన్లు
msgid "No source data yet."
msgstr "ఇంకా మూల డేటా లేదు."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "ఇంకా శైలి నియమాలు ఏవీ లేవు."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "పరీక్షించిన ప్రొవైడర్ లేదు"
@@ -2918,6 +2963,10 @@ msgstr "నార్వేజియన్"
msgid "Not connected"
msgstr "కనెక్ట్ కాలేదు"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "ఏం రాయాలో తెలియడం లేదా?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "ఓపెన్ AI అసిస్టెంట్"
msgid "Open Email Client"
msgstr "ఈమెయిల్ క్లైంట్ తెరవండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "ఫోకస్ మోడ్‌ను తెరవండి"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "బిల్డర్‌లో తెరవండి"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI-అనుకూలమైనది"
msgid "OpenRouter"
msgstr "ఓపెన్‌రౌటర్"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "తెరవడానికి <0>ఎంటర్</0> నొక్కం
msgid "Preview"
msgstr "ప్రివ్యూ"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ప్రివ్యూ మరియు ఎక్స్‌పోర్ట్ చివరి చెల్లుబాటు అయ్యే వెర్షన్‌ను ఉపయోగిస్తాయి."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ప్రాథమిక రంగు"
@@ -3374,10 +3432,22 @@ msgstr "రియాక్టివ్ రెజ్యూమ్ v<0>{__APP_VERSI
msgid "Reactive Resume v4 (JSON)"
msgstr "రియాక్టివ్ రెజ్యూమ్ v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "కస్టమ్ స్టైల్స్ వర్తింపజేయడం గైడ్‌ను చదవండి."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "చదువుతోంది…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "యాక్టివేట్ చేయడానికి సిద్ధంగా ఉంది"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "హెచ్చరికలతో యాక్టివేట్ చేయడానికి సిద్ధంగా ఉంది"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "గ్రహీత"
@@ -3394,6 +3464,10 @@ msgstr "ఆయతం (పూర్తి వెడల్పు)"
msgid "Redo"
msgstr "మళ్ళీ చేయండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "స్టైల్‌షీట్ సవరణను మళ్లీ చేయండి"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "రీసెట్ చేయండి"
msgid "Reset Password"
msgstr "పాస్‌వర్డ్ రీసెట్ చేయండి"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "శైలిని రీసెట్ చేయండి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "వర్తింపజేసిన స్టైల్‌షీట్‌కు రీసెట్ చేయండి"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "రోమేనియన్"
msgid "Rotation"
msgstr "రోటేషన్"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "నియమం"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "నియమాలు"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "స్కోర్‌కార్డ్, బలాలు మరియు ప్రాధాన్యతా సూచనలను పొందడానికి మీ మొదటి విశ్లేషణను అమలు చేయండి."
@@ -3791,6 +3857,10 @@ msgstr "ఎంచుకోబడ్డాయి"
msgid "Self-Host with Docker"
msgstr "డాకర్‌తో స్వయంగా హోస్ట్ చేయండి"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "సెమాంటిక్ CSS స్టైల్‌షీట్"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "సందేశం పంపండి"
@@ -4152,6 +4222,14 @@ msgstr "స్ట్రైక్"
msgid "Strong fit"
msgstr "బలమైన సరిపోలిక"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "స్టైల్‌షీట్ ఎడిటర్"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "స్టైల్‌షీట్‌లో లోపాలు ఉన్నాయి"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "సబ్రెడిట్"
@@ -4308,6 +4386,10 @@ msgstr "మీరు వెతుకుతున్న పేజీ తరలి
msgid "The password you entered is incorrect"
msgstr "మీరు నమోదు చేసిన పాస్‌వర్డ్ సరియైనది కాదు"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "రెస్యూమ్ ప్రివ్యూను అప్‌డేట్ చేయలేకపోయింది. చివరి చెల్లుబాటు అయ్యే ప్రివ్యూ ఇప్పటికీ చూపబడుతోంది."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "మీరు యాక్సెస్ చేయడానికి ప్రయత్నిస్తున్న రెజ్యూమే పాస్‌వర్డ్ ద్వారా రక్షించబడింది"
@@ -4639,6 +4721,10 @@ msgstr "అండర్‌లైన్"
msgid "Undo"
msgstr "రద్దు చేయి"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "స్టైల్‌షీట్ సవరణను రద్దు చేయండి"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "అనంత రెజ్యూమ్లు"
@@ -5013,6 +5099,10 @@ msgstr "మీ డేటా భద్రంగా నిల్వ చేయబ
msgid "Your latest changes could not be saved."
msgstr "మీ తాజా మార్పులు సేవ్ చేయబడలేదు."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "మీరు ఈ సెమాంటిక్ CSS డ్రాఫ్ట్‌ను స్పష్టంగా యాక్టివేట్ చేసే వరకు మీ పాత స్టైల్స్ చురుకుగా ఉంటాయి."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "మీ పాస్‌వర్డ్ విజయవంతంగా రీసెట్ చేయబడింది. ఇప్పుడు మీ కొత్త పాస్‌వర్డ్‌తో సైన్ ఇన్ చేయవచ్చు."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "เมนูบัญชี"
msgid "Actions"
msgstr "การดำเนินการ"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "เปิดใช้งาน Semantic CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "ขนาดจริง (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "ใบสมัครที่ส่งต่อสัปดาห์ (8 สัปดาห์ล่าสุด)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "สมัครแล้ว"
@@ -489,9 +494,9 @@ msgstr "สมัครแล้ว"
msgid "Applied on"
msgstr "สมัครเมื่อ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "กฎที่ใช้"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "ใช้งานโดยมีคำเตือน"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "ตรวจสอบอีเมลของคุณสำหรับ
msgid "Check your email for a link to verify your account."
msgstr "ตรวจสอบอีเมลของคุณสำหรับลิงก์ยืนยันบัญชีของคุณ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "กำลังตรวจสอบ"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "ตรวจสอบร่าง"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "จีน (ตัวย่อ)"
@@ -966,6 +979,10 @@ msgstr "บทสนทนานี้ถูกคัดลอกแล้ว"
msgid "Conversation JSON copied."
msgstr "คัดลอกข้อมูล JSON ของบทสนทนาแล้ว"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "แปลงร่างสไตล์ชีตแล้ว"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "คัดลอกไปยังคลิปบอร์ดแล้ว"
@@ -989,6 +1006,15 @@ msgstr "คัดลอกรหัสสำรอง"
msgid "Copy JSON"
msgstr "คัดลอก JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "คัดลอกความลับ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "คัดลอกสไตล์ชีต"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "คัดลอกคีย์ลับนี้และใช้ในแอปพลิเคชันของคุณเพื่อเข้าถึงข้อมูลของคุณ"
@@ -1545,6 +1571,11 @@ msgstr "แก้ไข {chip}"
msgid "Edit application"
msgstr "แก้ไขใบสมัคร"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "แก้ไขสี {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "กรอกรหัสผ่านของคุณเพื่อย
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "กรอกรหัสผ่านของคุณเพื่อปิดการใช้งานการยืนยันตัวตนสองขั้นตอน บัญชีของคุณจะไม่ปลอดภัยเท่าเดิมหากไม่ได้เปิดใช้งาน 2FA"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "ข้อผิดพลาด"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ทุกการสนับสนุน ไม่ว่ามากหรือน้อย มีความสำคัญอย่างยิ่งต่อโปรเจกต์นี้<0/>ขอขอบคุณที่สนับสนุน!"
@@ -1682,6 +1717,10 @@ msgstr "ทุกการสนับสนุน ไม่ว่ามาก
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "ทุกสิ่งที่คุณต้องการในการสร้าง ปรับแต่ง และแบ่งปันเรซูเม่มืออาชีพ สร้างขึ้นโดยคำนึงถึงความเป็นส่วนตัว เปิดบริการด้วยโอเพ่นซอร์ส และฟรีตลอดไป"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "ออกจากโหมดโฟกัส"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ออกจากเต็มหน้าจอ"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "รูปแบบ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "จัดรูปแบบสไตล์ชีต"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "ฟรี"
@@ -2584,6 +2627,12 @@ msgstr "สว่าง"
msgid "Light theme"
msgstr "ธีมสว่าง"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "แถว {0}, คอลัมน์ {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "ความสูงของเส้น"
@@ -2898,10 +2947,6 @@ msgstr "ยังไม่มีเวอร์ชันที่บันทึ
msgid "No source data yet."
msgstr "ยังไม่มีข้อมูลแหล่งที่มา"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "ยังไม่มีกฎเกณฑ์ด้านสไตล์ใดๆ"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "ไม่มีผู้ให้บริการที่ผ่านการทดสอบ"
@@ -2918,6 +2963,10 @@ msgstr "นอร์เวย์"
msgid "Not connected"
msgstr "ไม่ได้เชื่อมต่อ"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "ไม่แน่ใจว่าจะเขียนอะไรดี?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "เปิดผู้ช่วย AI"
msgid "Open Email Client"
msgstr "เปิดโปรแกรมอีเมล"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "โหมดเปิดโฟกัส"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "เปิดในโปรแกรมสร้าง"
@@ -2992,6 +3045,7 @@ msgstr "เข้ากันได้กับ OpenAI"
msgid "OpenRouter"
msgstr "โอเพ่นรูเตอร์"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "กด<0>Enter</0>เพื่อเปิด"
msgid "Preview"
msgstr "ตัวอย่าง"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "ให้ใช้เวอร์ชันล่าสุดที่ถูกต้องในการแสดงตัวอย่างและการส่งออก"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "สีหลัก"
@@ -3374,10 +3432,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "เรแอคทีฟ เรซูเม่ v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "โปรดอ่านคู่มือการใช้สไตล์ที่กำหนดเอง"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "กำลังอ่าน…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "พร้อมใช้งานแล้ว"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "พร้อมใช้งานพร้อมคำเตือน"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "ผู้รับ"
@@ -3394,6 +3464,10 @@ msgstr "สี่เหลี่ยมผืนผ้า (เต็มควา
msgid "Redo"
msgstr "ทำซ้ำ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "แก้ไขสไตล์ชีตใหม่"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "รีเซ็ต"
msgid "Reset Password"
msgstr "รีเซ็ตรหัสผ่าน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "รีเซ็ตสไตล์"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "รีเซ็ตเป็นสไตล์ชีตที่ใช้งานอยู่"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "โรมาเนีย"
msgid "Rotation"
msgstr "การหมุน"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "กฎ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "กฎ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "ดำเนินการวิเคราะห์ครั้งแรกของคุณเพื่อรับสกอร์การ์ด จุดแข็ง และข้อเสนอแนะที่จัดลำดับความสำคัญ"
@@ -3791,6 +3857,10 @@ msgstr "เลือกแล้ว"
msgid "Self-Host with Docker"
msgstr "โฮสต์ด้วยตนเองบน Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "สไตล์ชีต CSS เชิงความหมาย"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "ส่งข้อความ"
@@ -4152,6 +4222,14 @@ msgstr "ขีดฆ่า"
msgid "Strong fit"
msgstr "เหมาะสมมาก"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "ตัวแก้ไขสไตล์ชีต"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "ไฟล์สไตล์ชีตมีข้อผิดพลาด"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "ซับเรดดิต"
@@ -4308,6 +4386,10 @@ msgstr "หน้าที่คุณกำลังมองหาอาจถ
msgid "The password you entered is incorrect"
msgstr "รหัสผ่านที่คุณกรอกไม่ถูกต้อง"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "ไม่สามารถอัปเดตตัวอย่างประวัติย่อได้ ตัวอย่างที่ถูกต้องล่าสุดยังคงแสดงอยู่"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "เรซูเม่ที่คุณพยายามเข้าถึงถูกป้องกันด้วยรหัสผ่าน"
@@ -4639,6 +4721,10 @@ msgstr "ขีดเส้นใต้"
msgid "Undo"
msgstr "เลิกทำ"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "ยกเลิกการแก้ไขสไตล์ชีต"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "เรซูเม่ไม่จำกัดจำนวน"
@@ -5013,6 +5099,10 @@ msgstr "ข้อมูลของคุณถูกจัดเก็บไว
msgid "Your latest changes could not be saved."
msgstr "ไม่สามารถบันทึกการเปลี่ยนแปลงล่าสุดของคุณได้"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "สไตล์เดิมของคุณจะยังคงใช้งานได้จนกว่าคุณจะเปิดใช้งานร่าง CSS เชิงความหมายนี้อย่างชัดเจน"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "รหัสผ่านของคุณถูกรีเซ็ตเรียบร้อยแล้ว ตอนนี้คุณสามารถเข้าสู่ระบบด้วยรหัสผ่านใหม่ของคุณได้."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -163,6 +163,10 @@ msgstr "Hesap menüsü"
msgid "Actions"
msgstr "Eylemler"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantik CSS'i Etkinleştir"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Gerçek boyut (%100)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Haftalık gönderilen başvurular (son 8 hafta)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Başvuruldu"
@@ -489,9 +494,9 @@ msgstr "Başvuruldu"
msgid "Applied on"
msgstr "Başvuru tarihi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Uygulanan Kurallar"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Uyarılarla birlikte uygulandı."
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Şifrenizi sıfırlamak için bağlantı içeren e-postanızı kontrol e
msgid "Check your email for a link to verify your account."
msgstr "Hesabınızı doğrulamak için bağlantı içeren e-postanızı kontrol edin."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kontrol Etme"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Taslağı kontrol etme"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Çince (Basitleştirilmiş)"
@@ -966,6 +979,10 @@ msgstr "Konuşma kopyalandı."
msgid "Conversation JSON copied."
msgstr "Konuşma JSON'u kopyalandı."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Dönüştürülmüş stil sayfası taslağı"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Panoya kopyalandı."
@@ -989,6 +1006,15 @@ msgstr "Yedekleme Kodlarını Kopyala"
msgid "Copy JSON"
msgstr "JSON'u kopyala"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Kopyala gizli"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Stil sayfasını kopyala"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Bu gizli anahtarı kopyalayıp uygulamalarınızda verilerinize erişmek için kullanın."
@@ -1545,6 +1571,11 @@ msgstr "Düzenle {chip}"
msgid "Edit application"
msgstr "Başvuruyu düzenle"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Renk düzenleme {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "İki faktörlü kimlik doğrulamayı kurmayı onaylamak için şifrenizi
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "İki faktörlü kimlik doğrulamayı devre dışı bırakmak için şifrenizi girin. 2FA etkin olmadığında hesabınız daha az güvenli olur."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Hata"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Her katkı, büyük ya da küçük, projeye önemli bir katkı sağlar.<0/>Desteğiniz için teşekkürler!"
@@ -1682,6 +1717,10 @@ msgstr "Her katkı, büyük ya da küçük, projeye önemli bir katkı sağlar.<
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Profesyonel özgeçmişler oluşturmak, özelleştirmek ve paylaşmak için ihtiyacınız olan her şey. Gizlilik odaklı, açık kaynaklı ve sonsuza dek tamamen ücretsiz."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Odak modundan çık"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Tam Ekrandan Çık"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Biçimlendirme stili sayfası"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Ücretsiz"
@@ -2584,6 +2627,12 @@ msgstr "Açık"
msgid "Light theme"
msgstr "Açık tema"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Satır {0}, sütun {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Satır Yüksekliği"
@@ -2898,10 +2947,6 @@ msgstr "Henüz kaydedilmiş sürüm yok."
msgid "No source data yet."
msgstr "Henüz kaynak verisi yok."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Henüz stil kuralları yok."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Test edilmiş sağlayıcı yok."
@@ -2918,6 +2963,10 @@ msgstr "Norveççe"
msgid "Not connected"
msgstr "Bağlı değil"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Ne yazacağınızdan emin değil misiniz?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Açık yapay zeka asistanı"
msgid "Open Email Client"
msgstr "E-posta İstemcisini Aç"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Açık odak modu"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Yapıcıda aç"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI uyumlu"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Açmak için <0>Enter</0> tuşuna basın"
msgid "Preview"
msgstr "Önizleme"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Önizleme ve dışa aktarma işlemleri için en son geçerli sürüm kullanılır."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Birincil Renk"
@@ -3374,10 +3432,22 @@ msgstr "Reaktif Özgeçmiş v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktif Özgeçmiş v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Özel Stilleri Uygulama kılavuzunu okuyun."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Okunuyor…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Etkinleştirmeye hazır"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Uyarılarla birlikte etkinleştirmeye hazır."
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Alıcı"
@@ -3394,6 +3464,10 @@ msgstr "Dikdörtgen (Tam Genişlik)"
msgid "Redo"
msgstr "Tekrarla"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Stil sayfası düzenlemesini yeniden yap"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Sıfırla"
msgid "Reset Password"
msgstr "Şifreyi Sıfırla"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Stili Sıfırla"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Uygulanan stil sayfasına sıfırla"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumence"
msgid "Rotation"
msgstr "Döndürme"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "kural"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "tüzük"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "seçildi"
msgid "Self-Host with Docker"
msgstr "Docker ile kendi kendine barındırma"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Anlamsal CSS stil sayfası"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Mesaj gönder"
@@ -4152,6 +4222,14 @@ msgstr "Üstü Çizili"
msgid "Strong fit"
msgstr "Güçlü uyum"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Stil sayfası düzenleyici"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Stil dosyasında hatalar var."
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Alt Reddit"
@@ -4308,6 +4386,10 @@ msgstr "Aradığınız sayfa taşınmış olabilir veya artık mevcut olmayabili
msgid "The password you entered is incorrect"
msgstr "Girdiğiniz şifre yanlış"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Özgeçmiş önizlemesi güncellenemedi. Son geçerli önizleme hala gösteriliyor."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Erişmeye çalıştığınız özgeçmiş şifre korumalıdır"
@@ -4639,6 +4721,10 @@ msgstr "Altı Çizili"
msgid "Undo"
msgstr "Geri al"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Stil sayfası düzenlemesini geri al"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Sınırsız Özgeçmiş"
@@ -5013,6 +5099,10 @@ msgstr "Verileriniz güvenli bir şekilde saklanır ve asla üçüncü partilerl
msgid "Your latest changes could not be saved."
msgstr "Son değişiklikleriniz kaydedilemedi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Eski stilleriniz, bu Semantik CSS taslağını açıkça etkinleştirene kadar aktif kalacaktır."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Şifreniz başarıyla sıfırlandı. Artık yeni şifrenizle giriş yapabilirsiniz."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -163,6 +163,10 @@ msgstr "Меню облікового запису"
msgid "Actions"
msgstr "Дії"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Активуйте семантичний CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Фактичний розмір (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Заявки, надіслані за тиждень (останні 8 тижнів)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Подано"
@@ -489,9 +494,9 @@ msgstr "Подано"
msgid "Applied on"
msgstr "Подано"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Застосовані правила"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Застосовується з попередженнями"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Перевірте свою електронну пошту для по
msgid "Check your email for a link to verify your account."
msgstr "Перевірте свою електронну пошту для підтвердження облікового запису."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Перевірка"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Перевірка чернетки"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Китайська (спрощена)"
@@ -966,6 +979,10 @@ msgstr "Розмову скопійовано."
msgid "Conversation JSON copied."
msgstr "JSON розмови скопійовано."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Конвертований чернетка таблиці стилів"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Скопійовано до буфера обміну."
@@ -989,6 +1006,15 @@ msgstr "Скопіювати резервні коди"
msgid "Copy JSON"
msgstr "Копіювати JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Скопіювати секретний код"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Копіювати таблицю стилів"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Скопіюйте цей секретний ключ та використовуйте його у своїх додатках для доступу до своїх даних."
@@ -1545,6 +1571,11 @@ msgstr "Редагувати {chip}"
msgid "Edit application"
msgstr "Редагувати заявку"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Редагувати колір {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Введіть пароль для підтвердження налаш
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Введіть свій пароль для вимикання двофакторної автентифікації. Ваш профіль буде менш захищений без увімкненого 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Помилка"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Кожен внесок, великий чи малий, має величезне значення для проєкту.<0/>Дякуємо за вашу підтримку!"
@@ -1682,6 +1717,10 @@ msgstr "Кожен внесок, великий чи малий, має вели
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Все необхідне для створення, налаштування та поширення професійних резюме. Створено з урахуванням приватності, на основі відкритих вихідних кодів і назавжди безкоштовно."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Вийти з режиму фокусування"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Вийти з повноекранного режиму"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Формат"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Формат таблиці стилів"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Безкоштовно"
@@ -2584,6 +2627,12 @@ msgstr "Світлий"
msgid "Light theme"
msgstr "Світла тема"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Рядок {0}, стовпець {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Інтервал між рядками"
@@ -2898,10 +2947,6 @@ msgstr "Збережених версій поки що немає."
msgid "No source data yet."
msgstr "Даних джерел ще немає."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Поки що немає правил стилю."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Немає перевіреного постачальника"
@@ -2918,6 +2963,10 @@ msgstr "Норвезька"
msgid "Not connected"
msgstr "Не підключено"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Не знаєте, що написати?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Відкритий помічник зі штучним інтелект
msgid "Open Email Client"
msgstr "Відкрити поштовий клієнт"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Відкрити режим фокусування"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Відкрити в конструкторі"
@@ -2992,6 +3045,7 @@ msgstr "Сумісний з OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Натисніть <0>Enter</0>, щоб відкрити"
msgid "Preview"
msgstr "Попередній перегляд"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Для попереднього перегляду та експорту використовується остання дійсна версія."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основний колір"
@@ -3374,10 +3432,22 @@ msgstr "Реактивне резюме v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Реактивне резюме v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Ознайомтеся з посібником із застосування власних стилів."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Читання…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Готовий до активації"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Готовий до активації з попередженнями"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Одержувач"
@@ -3394,6 +3464,10 @@ msgstr "Прямокутник (на всю ширину)"
msgid "Redo"
msgstr "Повторити"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Повторити редагування таблиці стилів"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Скинути"
msgid "Reset Password"
msgstr "Скинути пароль"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Скинути стиль"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Скинути до застосованого таблиці стилів"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Румунська"
msgid "Rotation"
msgstr "Обертання"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "правило"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "правила"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "Проведіть перший аналіз, щоб отримати оціночну таблицю, сильні сторони та пріоритетні пропозиції."
@@ -3791,6 +3857,10 @@ msgstr "вибрано"
msgid "Self-Host with Docker"
msgstr "Самостійний хостинг з Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Семантична таблиця стилів CSS"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Надіслати повідомлення"
@@ -4152,6 +4222,14 @@ msgstr "Закреслення"
msgid "Strong fit"
msgstr "Висока відповідність"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Редактор таблиць стилів"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Таблиця стилів містить помилки"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Сабреддіт"
@@ -4308,6 +4386,10 @@ msgstr "Можливо, сторінку, яку ви шукаєте, було
msgid "The password you entered is incorrect"
msgstr "Введений вами пароль невірний"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Не вдалося оновити попередній перегляд резюме. Останній дійсний попередній перегляд все ще відображається."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Резюме, до якого ви намагаєтеся отримати доступ, захищене паролем"
@@ -4639,6 +4721,10 @@ msgstr "Підкреслення"
msgid "Undo"
msgstr "Скасувати"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Скасувати редагування таблиці стилів"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Необмежена кількість резюме"
@@ -5013,6 +5099,10 @@ msgstr "Ваші дані зберігаються безпечно і ніко
msgid "Your latest changes could not be saved."
msgstr "Не вдалося зберегти ваші останні зміни."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Ваші застарілі стилі залишаються активними, доки ви явно не активуєте цей черновик семантичного CSS."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Ваш пароль було успішно скинуто. Тепер ви можете увійти з новим паролем."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uz\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Uzbek\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -163,6 +163,10 @@ msgstr "Hisob menyusi"
msgid "Actions"
msgstr "Amallar"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Semantik CSS-ni faollashtirish"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Haqiqiy o'lcham (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Haftasiga yuborilgan arizalar (so‘nggi 8 hafta)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Topshirildi"
@@ -489,9 +494,9 @@ msgstr "Topshirildi"
msgid "Applied on"
msgstr "Ariza sanasi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Amaliy qoidalar"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Ogohlantirishlar bilan qo'llanildi"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Parolingizni tiklash uchun havola yuborilganligini emailingizni tekshiri
msgid "Check your email for a link to verify your account."
msgstr "Hisobingizni tasdiqlash uchun havola yuborilganligini emailingizni tekshiring."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Tekshirish"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Qoralama tekshirilmoqda"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Xitoy (Soddalashtirilgan)"
@@ -966,6 +979,10 @@ msgstr "Suhbat nusxalandi."
msgid "Conversation JSON copied."
msgstr "JSON suhbatidan nusxa ko'chirildi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "O'zgartirilgan uslublar jadvali qoralamasi"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Buferga nusxalandi."
@@ -989,6 +1006,15 @@ msgstr "Zaxira kodlarini nusxalash"
msgid "Copy JSON"
msgstr "JSON nusxasini olish"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Maxfiy nusxa ko'chirish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Uslublar jadvalini nusxalash"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Ushbu maxfiy kalitni nusxalab, maʼlumotlaringizga kirish uchun ilovalaringizda foydalaning."
@@ -1545,6 +1571,11 @@ msgstr "Tahrir qilish {chip}"
msgid "Edit application"
msgstr "Arizani tahrirlash"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "{0} rangini tahrirlash"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Ikki bosqichli autentifikatsiyani yoqishni tasdiqlash uchun parolingizni
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Ikki bosqichli autentifikatsiyani o‘chirishni tasdiqlash uchun parolingizni kiriting. 2BShT yoqilmagan holda hisobingiz kamroq xavfsiz boʻladi."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Xato"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Har bir hissa, kichik yoki katta bo‘lishidan qat’i nazar, loyiha uchun katta ahamiyatga ega.<0/>Qo‘llab-quvvatlaganingiz uchun rahmat!"
@@ -1682,6 +1717,10 @@ msgstr "Har bir hissa, kichik yoki katta bo‘lishidan qat’i nazar, loyiha uch
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Professional rezyumelar yaratish, sozlash va ulashish uchun kerakli barcha narsa. Maxfiylik tamoyiliga asoslangan, ochiq manba asosida qurilgan va doimiy ravishda butunlay bepul."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Fokus rejimidan chiqish"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Toʻliq ekrandan chiqish"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Format"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Uslublar jadvalini formatlash"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Bepul"
@@ -2584,6 +2627,12 @@ msgstr "Yorugʻ"
msgid "Light theme"
msgstr "Yorugʻ mavzu"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "{0}qatori, {1} ustuni"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Satr balandligi"
@@ -2898,10 +2947,6 @@ msgstr "Hali saqlanmagan versiyalar mavjud."
msgid "No source data yet."
msgstr "Hali manba ma'lumotlari yo'q."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Hali uslub qoidalari yo'q."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Sinovdan o'tgan provayder yo'q"
@@ -2918,6 +2963,10 @@ msgstr "Norveg tili"
msgid "Not connected"
msgstr "Ulanmagan"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Nima yozishni bilmayapsizmi?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Ochiq AI yordamchisi"
msgid "Open Email Client"
msgstr "Pochta dasturini ochish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Fokus rejimini ochish"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Quruvchida ochish"
@@ -2992,6 +3045,7 @@ msgstr "OpenAI bilan mos keladi"
msgid "OpenRouter"
msgstr "Ochiq marshrutizator"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Ochish uchun <0>Enter tugmasini</0> bosing"
msgid "Preview"
msgstr "Oldindan ko'rish"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Oldindan ko'rish va eksport qilish uchun oxirgi amaldagi versiyadan foydalaning."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Asosiy rang"
@@ -3374,10 +3432,22 @@ msgstr "Reaktiv rezyume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Reaktiv Rezume v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Maxsus uslublarni qo'llash qo'llanmasini o'qing."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "O'qilmoqda…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Faollashtirishga tayyor"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Ogohlantirishlar bilan faollashtirishga tayyor"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Qabul qiluvchi"
@@ -3394,6 +3464,10 @@ msgstr "Toʻgʻri burchakli (toʻliq kenglik)"
msgid "Redo"
msgstr "Qayta bajarish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Uslublar jadvalini tahrirlashni qayta bajarish"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Tiklash"
msgid "Reset Password"
msgstr "Parolni tiklash"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Uslubni tiklash"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Qo'llanilgan uslublar jadvaliga qayta o'rnatish"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumin tili"
msgid "Rotation"
msgstr "Aylantirish"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "qoida"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "qoidalar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "tanlandi"
msgid "Self-Host with Docker"
msgstr "Docker bilan mustaqil joylashtirish"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Semantik CSS uslublar jadvali"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Xabar yuborish"
@@ -4152,6 +4222,14 @@ msgstr "Ustiga chizish"
msgid "Strong fit"
msgstr "Kuchli moslik"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Uslublar jadvali muharriri"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Uslublar jadvalida xatolar mavjud"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Siz izlayotgan sahifa boshqa joyga ko'chirilgan yoki endi mavjud emas bo
msgid "The password you entered is incorrect"
msgstr "Kiritilgan parol noto'g'ri"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Rezyume oldindan ko'rish versiyasini yangilab bo'lmadi. Oxirgi haqiqiy oldindan ko'rish versiyasi hali ham ko'rsatilmoqda."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Siz kirishga harakat qilayotgan rezyume parol bilan himoyalangan"
@@ -4639,6 +4721,10 @@ msgstr "Tagiga chizilgan"
msgid "Undo"
msgstr "Bekor qilish"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Uslublar jadvali tahririni bekor qilish"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Cheksiz rezyumelar"
@@ -5013,6 +5099,10 @@ msgstr "Maʼlumotlaringiz xavfsiz saqlanadi va uchinchi tomonlarga hech qachon u
msgid "Your latest changes could not be saved."
msgstr "So'nggi o'zgarishlaringizni saqlab bo'lmadi."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Sizning eski uslublaringiz ushbu Semantik CSS qoralamasini aniq faollashtirmaguningizcha faol bo'lib qoladi."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Parolingiz muvaffaqiyatli tiklandi. Endi yangi parolingiz bilan tizimga kirishingiz mumkin."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "Menu tài khoản"
msgid "Actions"
msgstr "Hành động"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "Kích hoạt CSS ngữ nghĩa"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "Kích thước thật (100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "Đơn ứng tuyển đã gửi mỗi tuần (8 tuần gần nhất)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "Đã ứng tuyển"
@@ -489,9 +494,9 @@ msgstr "Đã ứng tuyển"
msgid "Applied on"
msgstr "Đã ứng tuyển vào"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "Quy tắc áp dụng"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "Được áp dụng kèm theo cảnh báo"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "Hãy kiểm tra email của bạn để lấy đường link đặt lạ
msgid "Check your email for a link to verify your account."
msgstr "Hãy kiểm tra email của bạn để lấy liên kết xác minh tài khoản."
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "Kiểm tra"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "Kiểm tra bản nháp"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "Tiếng Trung (Giản thể)"
@@ -966,6 +979,10 @@ msgstr "Cuộc hội thoại đã được sao chép."
msgid "Conversation JSON copied."
msgstr "Đã sao chép JSON hội thoại."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "Bản nháp bảng định kiểu đã chuyển đổi"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "Đã sao chép vào bảng nhớ tạm."
@@ -989,6 +1006,15 @@ msgstr "Sao chép mã Backup"
msgid "Copy JSON"
msgstr "Sao chép JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "Sao chép bí mật"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "Sao chép bảng định kiểu"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "Sao chép khóa bí mật này và sử dụng trong ứng dụng của bạn để truy cập dữ liệu."
@@ -1545,6 +1571,11 @@ msgstr "Chỉnh sửa {chip}"
msgid "Edit application"
msgstr "Chỉnh sửa hồ sơ ứng tuyển"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "Chỉnh sửa màu {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "Nhập mật khẩu của bạn để xác nhận thiết lập xác th
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Nhập mật khẩu của bạn để tắt xác thực hai yếu tố. Tài khoản của bạn sẽ kém an toàn hơn nếu không bật 2FA."
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "Lỗi"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Mỗi đóng góp, dù lớn hay nhỏ, đều tạo nên sự khác biệt lớn cho dự án.<0/>Cảm ơn sự ủng hộ của bạn!"
@@ -1682,6 +1717,10 @@ msgstr "Mỗi đóng góp, dù lớn hay nhỏ, đều tạo nên sự khác bi
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "Mọi thứ bạn cần để tạo, tùy chỉnh và chia sẻ bản lý lịch chuyên nghiệp. Được xây dựng với tính riêng tư, mã nguồn mở và hoàn toàn miễn phí mãi mãi."
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "Thoát chế độ lấy nét"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Thoát toàn màn hình"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "Định dạng"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "Định dạng bảng định kiểu"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "Miễn phí"
@@ -2584,6 +2627,12 @@ msgstr "Sáng"
msgid "Light theme"
msgstr "Chủ đề sáng"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "Dòng {0}, cột {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "Chiều cao giữa các dòng"
@@ -2898,10 +2947,6 @@ msgstr "Chưa có phiên bản nào được lưu."
msgid "No source data yet."
msgstr "Chưa có dữ liệu nguồn."
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "Chưa có quy tắc về phong cách nào cả."
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "Không có nhà cung cấp nào được kiểm thử"
@@ -2918,6 +2963,10 @@ msgstr "Na Uy"
msgid "Not connected"
msgstr "Không kết nối"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "Không biết nên viết gì?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "Trợ lý AI mở"
msgid "Open Email Client"
msgstr "Mở ứng dụng Email"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "Chế độ lấy nét mở"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "Mở trong trình soạn thảo"
@@ -2992,6 +3045,7 @@ msgstr "Tương thích với OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "Nhấn <0>phím Enter</0> để mở"
msgid "Preview"
msgstr "Xem trước"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "Chức năng xem trước và xuất khẩu sử dụng phiên bản hợp lệ mới nhất."
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Màu chủ đạo"
@@ -3374,10 +3432,22 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "Sơ yếu lý lịch phản hồi phiên bản 4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "Hãy đọc hướng dẫn Áp dụng kiểu tùy chỉnh."
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "Đang đọc…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "Sẵn sàng kích hoạt"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "Sẵn sàng kích hoạt kèm cảnh báo"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "Người nhận"
@@ -3394,6 +3464,10 @@ msgstr "Hình chữ nhật (Toàn bộ chiều rộng)"
msgid "Redo"
msgstr "Làm lại"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "Chỉnh sửa lại bảng định kiểu"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "Thiết lập lại"
msgid "Reset Password"
msgstr "Đặt mật khẩu mới"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "Đặt lại kiểu"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "Đặt lại về kiểu định dạng đã áp dụng"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "Rumani"
msgid "Rotation"
msgstr "Xoay"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "luật lệ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "quy tắc"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
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."
@@ -3791,6 +3857,10 @@ msgstr "đã chọn"
msgid "Self-Host with Docker"
msgstr "Tự dựng với Docker"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "Bảng định kiểu CSS ngữ nghĩa"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "Gửi tin nhắn"
@@ -4152,6 +4222,14 @@ msgstr "Gạch ngang"
msgid "Strong fit"
msgstr "Rất phù hợp"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "Trình chỉnh sửa bảng định kiểu"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "Tệp định kiểu có lỗi"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "Trang bạn đang tìm có thể đã được di chuyển hoặc không
msgid "The password you entered is incorrect"
msgstr "Mật khẩu bạn đã nhập không đúng"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "Không thể cập nhật bản xem trước sơ yếu lý lịch. Bản xem trước hợp lệ cuối cùng vẫn được hiển thị."
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "Hồ sơ bạn đang cố truy cập đã được bảo vệ bằng mật khẩu"
@@ -4639,6 +4721,10 @@ msgstr "Gạch chân"
msgid "Undo"
msgstr "Hoàn tác"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "Hoàn tác chỉnh sửa bảng định kiểu"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "Không giới hạn hồ sơ"
@@ -5013,6 +5099,10 @@ msgstr "Dữ liệu của bạn được lưu trữ an toàn và không bao gi
msgid "Your latest changes could not be saved."
msgstr "Những thay đổi gần đây của bạn không thể được lưu lại."
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "Các kiểu định dạng cũ của bạn vẫn hoạt động cho đến khi bạn kích hoạt bản nháp CSS ngữ nghĩa này một cách rõ ràng."
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "Mật khẩu của bạn đã được đặt lại thành công. Bây giờ bạn có thể đăng nhập bằng mật khẩu mới."
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "帐户菜单"
msgid "Actions"
msgstr "操作"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "启用语义化 CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "实际尺寸(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "每周发送的申请(最近 8 周)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "已申请"
@@ -489,9 +494,9 @@ msgstr "已申请"
msgid "Applied on"
msgstr "申请日期"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "应用规则"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "附带警告"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "请检查你的电子邮件,点击邮件中的链接重置密码。"
msgid "Check your email for a link to verify your account."
msgstr "请检查你的电子邮件,点击邮件中的链接验证账号。"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "检查"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "检查草稿"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "中文(简体)"
@@ -966,6 +979,10 @@ msgstr "对话已复制。"
msgid "Conversation JSON copied."
msgstr "对话JSON已复制。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "已转换的样式表草稿"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "已复制到剪贴板。"
@@ -989,6 +1006,15 @@ msgstr "复制备份码"
msgid "Copy JSON"
msgstr "复制 JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "复制秘密"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "复制样式表"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "复制此密钥,并在你的应用程序中使用它来访问你的数据。"
@@ -1545,6 +1571,11 @@ msgstr "编辑 {chip}"
msgid "Edit application"
msgstr "编辑申请"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "编辑颜色 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "请输入你的密码以确认设置双重身份验证。启用后,你
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "请输入你的密码以禁用双重身份验证。关闭 2FA 后,你的账号将不再那么安全。"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "错误"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "每一笔捐助,无论多少,都会对项目产生巨大的积极影响。<0/>感谢你的支持!"
@@ -1682,6 +1717,10 @@ msgstr "每一笔捐助,无论多少,都会对项目产生巨大的积极影
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "你创建、定制和分享专业简历所需的一切。以隐私为核心设计,由开源驱动,并且永久免费。"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "退出对焦模式"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "退出全屏"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "格式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "格式样式表"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "免费"
@@ -2584,6 +2627,12 @@ msgstr "浅色"
msgid "Light theme"
msgstr "浅色主题"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "行 {0},列 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "行高"
@@ -2898,10 +2947,6 @@ msgstr "暂无已保存版本。"
msgid "No source data yet."
msgstr "还没有来源数据。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "目前还没有风格规则。"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "没有经过测试的提供商"
@@ -2918,6 +2963,10 @@ msgstr "挪威语"
msgid "Not connected"
msgstr "未连接"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "不知道该写些什么?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "OpenAI助手"
msgid "Open Email Client"
msgstr "打开邮件客户端"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "打开对焦模式"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "在构建器中打开"
@@ -2992,6 +3045,7 @@ msgstr "兼容 OpenAI"
msgid "OpenRouter"
msgstr "开放路由器"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "按<0>Enter 键</0>打开"
msgid "Preview"
msgstr "预览"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "预览和导出时请使用最新有效版本。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "主颜色"
@@ -3374,10 +3432,22 @@ msgstr "响应式恢复 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "反应式简历 v4(JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "请阅读“应用自定义样式”指南。"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "正在读取…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "准备激活"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "准备激活并发出警告"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "收件人"
@@ -3394,6 +3464,10 @@ msgstr "矩形(全宽)"
msgid "Redo"
msgstr "重做"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "重新编辑样式表"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "重置"
msgid "Reset Password"
msgstr "重置密码"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "重置样式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "重置为已应用的样式表"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "罗马尼亚语"
msgid "Rotation"
msgstr "旋转"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "规则"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "规则"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "进行首次分析,以获得记分卡、优势和优先建议。"
@@ -3791,6 +3857,10 @@ msgstr "已选择"
msgid "Self-Host with Docker"
msgstr "使用 Docker 自托管"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "语义化 CSS 样式表"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "发送消息"
@@ -4152,6 +4222,14 @@ msgstr "删除线"
msgid "Strong fit"
msgstr "高度匹配"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "样式表编辑器"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "样式表存在错误"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit 论坛"
@@ -4308,6 +4386,10 @@ msgstr "您要查找的页面可能已被移动或已不存在。"
msgid "The password you entered is incorrect"
msgstr "你输入的密码不正确"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "简历预览无法更新,仍显示上次有效的预览版本。"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "你尝试访问的这份简历已启用密码保护"
@@ -4639,6 +4721,10 @@ msgstr "下划线"
msgid "Undo"
msgstr "撤销"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "撤销样式表编辑"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "无限简历"
@@ -5013,6 +5099,10 @@ msgstr "你的数据会被安全存储,且绝不会与第三方共享。你也
msgid "Your latest changes could not be saved."
msgstr "您所做的最新更改未能保存。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "在您明确激活此语义化 CSS 草案之前,您的旧版样式仍将保持有效。"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "你的密码已成功重置。你现在可以使用新密码登录。"
+109 -19
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-07-27 18:56\n"
"PO-Revision-Date: 2026-08-09 13:09\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -163,6 +163,10 @@ msgstr "帳戶選單"
msgid "Actions"
msgstr "動作"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr "啟用語意化 CSS"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr "實際尺寸(100%)"
@@ -482,6 +486,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr "每週送出的申請(最近 8 週)"
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr "已申請"
@@ -489,9 +494,9 @@ msgstr "已申請"
msgid "Applied on"
msgstr "應徵日期"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
msgstr "應用規則"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr "附帶警告"
#: src/libs/locale.ts
msgid "Arabic"
@@ -800,6 +805,14 @@ msgstr "請到電子郵件收件匣查看重設密碼的連結。"
msgid "Check your email for a link to verify your account."
msgstr "請到電子郵件收件匣查看用於驗證帳戶的連結。"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr "檢查"
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr "檢查草稿"
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr "中文(簡體)"
@@ -966,6 +979,10 @@ msgstr "對話已複製。"
msgid "Conversation JSON copied."
msgstr "對話JSON已複製。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr "已轉換的樣式表草稿"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr "已複製到剪貼簿。"
@@ -989,6 +1006,15 @@ msgstr "複製備份代碼"
msgid "Copy JSON"
msgstr "複製 JSON"
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr "複製秘密"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr "複製樣式表"
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr "複製這組私密金鑰,並在您的應用程式中使用它來存取您的資料。"
@@ -1545,6 +1571,11 @@ msgstr "編輯 {chip}"
msgid "Edit application"
msgstr "編輯應徵紀錄"
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr "編輯顏色 {0}"
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1674,6 +1705,10 @@ msgstr "請輸入您的密碼以確認設定雙因子驗證。啟用後,每次
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "請輸入您的密碼以停用雙因子驗證。停用後,您的帳戶將會比較不安全。"
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr "錯誤"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "每一筆捐款,不論大小,都能為此專案帶來巨大的幫助。<0/>感謝您的支持!"
@@ -1682,6 +1717,10 @@ msgstr "每一筆捐款,不論大小,都能為此專案帶來巨大的幫助
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr "建立、客製化與分享專業履歷所需的一切功能一應俱全。以隱私為出發點,由開放原始碼驅動,而且永遠完全免費。"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr "退出對焦模式"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "退出全螢幕"
@@ -2001,6 +2040,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr "格式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr "格式樣式表"
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr "免費"
@@ -2584,6 +2627,12 @@ msgstr "亮色"
msgid "Light theme"
msgstr "淺色主題"
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr "行 {0},列 {1}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr "行高"
@@ -2898,10 +2947,6 @@ msgstr "暫無已儲存版本。"
msgid "No source data yet."
msgstr "尚無來源資料。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr "目前還沒有風格規則。"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr "沒有經過測試的提供者"
@@ -2918,6 +2963,10 @@ msgstr "挪威語"
msgid "Not connected"
msgstr "未連接"
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr "不知道該寫些什麼?"
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2968,6 +3017,10 @@ msgstr "OpenAI助手"
msgid "Open Email Client"
msgstr "開啟電子郵件用戶端"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr "開啟對焦模式"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr "在建構器中開啟"
@@ -2992,6 +3045,7 @@ msgstr "相容 OpenAI"
msgid "OpenRouter"
msgstr "OpenRouter"
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3267,6 +3321,10 @@ msgstr "按<0>Enter</0>開啟"
msgid "Preview"
msgstr "預覽"
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr "預覽和匯出時請使用最新有效版本。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "主要顏色"
@@ -3374,10 +3432,22 @@ msgstr "響應式恢復 v<0>{__APP_VERSION__}</0>"
msgid "Reactive Resume v4 (JSON)"
msgstr "反應式履歷 v4 (JSON)"
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr "請閱讀“套用自訂樣式”指南。"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr "正在讀取…"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr "準備啟用"
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr "準備啟動並發出警告"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr "收件人"
@@ -3394,6 +3464,10 @@ msgstr "長方形(全幅寬)"
msgid "Redo"
msgstr "重做"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr "重新編輯樣式表"
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3491,9 +3565,9 @@ msgstr "重置"
msgid "Reset Password"
msgstr "重設密碼"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
msgstr "重設樣式"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr "重設為已套用的樣式表"
#: src/features/auth/pages/reset-password.tsx
msgid "Reset your password"
@@ -3606,14 +3680,6 @@ msgstr "羅馬尼亞語"
msgid "Rotation"
msgstr "旋轉"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr "規則"
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr "規則"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr "執行您的第一次分析,以獲得計分卡、優勢和優先建議。"
@@ -3791,6 +3857,10 @@ msgstr "已選取"
msgid "Self-Host with Docker"
msgstr "使用 Docker 自行託管"
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr "語意化 CSS 樣式表"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr "發送訊息"
@@ -4152,6 +4222,14 @@ msgstr "刪除線"
msgid "Strong fit"
msgstr "高度適配"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr "樣式表編輯器"
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr "樣式表存在錯誤"
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr "Subreddit"
@@ -4308,6 +4386,10 @@ msgstr "您要尋找的頁面可能已被移動或已不存在。"
msgid "The password you entered is incorrect"
msgstr "您輸入的密碼不正確"
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr "履歷預覽無法更新,仍顯示上次有效的預覽版本。"
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr "您嘗試存取的履歷已啟用密碼保護"
@@ -4639,6 +4721,10 @@ msgstr "底線"
msgid "Undo"
msgstr "撤銷"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr "撤銷樣式表編輯"
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr "無限履歷"
@@ -5013,6 +5099,10 @@ msgstr "您的資料會被安全保存,且絕不會分享給第三方。您也
msgid "Your latest changes could not be saved."
msgstr "您所做的最新變更未能儲存。"
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr "在您明確啟動此語意化 CSS 草稿之前,您的舊版樣式仍將保持有效。"
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr "您的密碼已成功重設。您現在可以使用新密碼登入。"
+106 -16
View File
@@ -158,6 +158,10 @@ msgstr ""
msgid "Actions"
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Activate Semantic CSS"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Actual size (100%)"
msgstr ""
@@ -477,6 +481,7 @@ msgid "Applications sent per week (last 8 weeks)"
msgstr ""
#: src/features/applications/components/table-view.tsx
#: src/features/resume/stylesheet/status.tsx
msgid "Applied"
msgstr ""
@@ -484,8 +489,8 @@ msgstr ""
msgid "Applied on"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Applied Rules"
#: src/features/resume/stylesheet/status.tsx
msgid "Applied with warnings"
msgstr ""
#: src/libs/locale.ts
@@ -795,6 +800,14 @@ msgstr ""
msgid "Check your email for a link to verify your account."
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Checking"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Checking draft"
msgstr ""
#: src/libs/locale.ts
msgid "Chinese (Simplified)"
msgstr ""
@@ -961,6 +974,10 @@ msgstr ""
msgid "Conversation JSON copied."
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Converted stylesheet draft"
msgstr ""
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Copied to clipboard."
msgstr ""
@@ -984,6 +1001,15 @@ msgstr ""
msgid "Copy JSON"
msgstr ""
#. Accessible label for the button that copies the two-factor secret key
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Copy secret"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Copy stylesheet"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "Copy this secret key and use it in your applications to access your data."
msgstr ""
@@ -1540,6 +1566,11 @@ msgstr ""
msgid "Edit application"
msgstr ""
#. placeholder {0}: selectedColor.token.value
#: src/features/resume/stylesheet/editor.tsx
msgid "Edit color {0}"
msgstr ""
#. Screen reader description for the fullscreen rich-text editor dialog
#: src/components/input/rich-input.tsx
msgid "Edit content in fullscreen mode"
@@ -1669,6 +1700,10 @@ msgstr ""
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Error"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr ""
@@ -1677,6 +1712,10 @@ msgstr ""
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Exit focus mode"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
@@ -1996,6 +2035,10 @@ msgctxt "Page Format (A4, Letter, Free-form)"
msgid "Format"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Format stylesheet"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Free"
msgstr ""
@@ -2579,6 +2622,12 @@ msgstr ""
msgid "Light theme"
msgstr ""
#. placeholder {0}: diagnostic.range.start.line
#. placeholder {1}: diagnostic.range.start.column
#: src/features/resume/stylesheet/status.tsx
msgid "Line {0}, column {1}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Line Height"
msgstr ""
@@ -2893,10 +2942,6 @@ msgstr ""
msgid "No source data yet."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "No style rules yet."
msgstr ""
#: src/features/settings/integrations/components/ai-section.tsx
msgid "No tested provider"
msgstr ""
@@ -2913,6 +2958,10 @@ msgstr ""
msgid "Not connected"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
msgid "Not sure what to write?"
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
#: src/libs/resume/section.tsx
msgid "Notes"
@@ -2963,6 +3012,10 @@ msgstr ""
msgid "Open Email Client"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Open focus mode"
msgstr ""
#: src/routes/agent/-components/resume-pane.tsx
msgid "Open in builder"
msgstr ""
@@ -2987,6 +3040,7 @@ msgstr ""
msgid "OpenRouter"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
#: src/routes/_home/-sections/donate.tsx
#: src/routes/_home/-sections/footer.tsx
msgid "opens in new tab"
@@ -3262,6 +3316,10 @@ msgstr ""
msgid "Preview"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Preview and export use the last valid version."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr ""
@@ -3369,10 +3427,22 @@ msgstr ""
msgid "Reactive Resume v4 (JSON)"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
msgid "Read the Applying Custom Styles guide."
msgstr ""
#: src/features/applications/components/application-form-sheet.tsx
msgid "Reading…"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Ready to activate with warnings"
msgstr ""
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
@@ -3389,6 +3459,10 @@ msgstr ""
msgid "Redo"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Redo stylesheet edit"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/libs/resume/section-title.ts
#: src/libs/resume/section.tsx
@@ -3486,8 +3560,8 @@ msgstr ""
msgid "Reset Password"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "Reset Style"
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Reset to applied stylesheet"
msgstr ""
#: src/features/auth/pages/reset-password.tsx
@@ -3601,14 +3675,6 @@ msgstr ""
msgid "Rotation"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rule"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/custom-styles.tsx
msgid "rules"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Run your first analysis to get a scorecard, strengths, and prioritized suggestions."
msgstr ""
@@ -3786,6 +3852,10 @@ msgstr ""
msgid "Self-Host with Docker"
msgstr ""
#: src/features/resume/stylesheet/editor.tsx
msgid "Semantic CSS stylesheet"
msgstr ""
#: src/routes/agent/-components/agent-chat.tsx
msgid "Send message"
msgstr ""
@@ -4147,6 +4217,14 @@ msgstr ""
msgid "Strong fit"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Stylesheet editor"
msgstr ""
#: src/features/resume/stylesheet/status.tsx
msgid "Stylesheet has errors"
msgstr ""
#: src/routes/_home/-sections/footer.tsx
msgid "Subreddit"
msgstr ""
@@ -4303,6 +4381,10 @@ msgstr ""
msgid "The password you entered is incorrect"
msgstr ""
#: src/features/resume/preview/preview.browser.tsx
msgid "The resume preview could not be updated. The last valid preview is still shown."
msgstr ""
#: src/features/auth/pages/resume-password.tsx
msgid "The resume you are trying to access is password protected"
msgstr ""
@@ -4634,6 +4716,10 @@ msgstr ""
msgid "Undo"
msgstr ""
#: src/features/resume/stylesheet/toolbar.tsx
msgid "Undo stylesheet edit"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Unlimited Resumes"
msgstr ""
@@ -5008,6 +5094,10 @@ msgstr ""
msgid "Your latest changes could not be saved."
msgstr ""
#: src/features/resume/stylesheet/legacy-banner.tsx
msgid "Your legacy styles remain active until you explicitly activate this Semantic CSS draft."
msgstr ""
#: src/features/auth/pages/reset-password.tsx
msgid "Your password has been reset successfully. You can now sign in with your new password."
msgstr ""
+43 -33
View File
@@ -16,22 +16,30 @@
"lingui:extract": "lingui extract --clean --overwrite"
},
"dependencies": {
"@ai-sdk/react": "^4.0.40",
"@base-ui/react": "^1.6.0",
"@better-auth/api-key": "^1.6.25",
"@ai-sdk/react": "^4.0.61",
"@base-ui/react": "^1.7.0",
"@better-auth/api-key": "^1.6.26",
"@better-auth/infra": "^0.3.7",
"@better-auth/oauth-provider": "^1.6.25",
"@better-auth/passkey": "^1.6.25",
"@better-auth/oauth-provider": "^1.6.26",
"@better-auth/passkey": "^1.6.26",
"@codemirror/autocomplete": "^6.20.3",
"@codemirror/commands": "^6.10.4",
"@codemirror/lang-css": "^6.3.1",
"@codemirror/language": "^6.12.4",
"@codemirror/lint": "^6.9.7",
"@codemirror/search": "^6.7.1",
"@codemirror/state": "^6.7.1",
"@codemirror/view": "^6.43.8",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@lingui/core": "^6.6.0",
"@lingui/react": "^6.6.0",
"@orpc/client": "^1.14.12",
"@orpc/server": "^1.14.12",
"@orpc/tanstack-query": "^1.14.12",
"@orpc/client": "^1.15.0",
"@orpc/server": "^1.15.0",
"@orpc/tanstack-query": "^1.15.0",
"@phosphor-icons/react": "^2.1.10",
"@react-pdf/renderer": "^4.5.1",
"@react-pdf/renderer": "^4.6.0",
"@reactive-resume/ai": "workspace:*",
"@reactive-resume/api": "workspace:*",
"@reactive-resume/auth": "workspace:*",
@@ -44,31 +52,33 @@
"@reactive-resume/ui": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"@tailwindcss/vite": "^4.3.3",
"@tanstack/react-form": "^1.33.2",
"@tanstack/react-form": "^1.33.4",
"@tanstack/react-hotkeys": "^0.10.0",
"@tanstack/react-query": "^5.101.4",
"@tanstack/react-router": "^1.170.18",
"@tiptap/extension-color": "^3.29.1",
"@tiptap/extension-highlight": "^3.29.1",
"@tiptap/extension-text-align": "^3.29.1",
"@tiptap/extension-text-style": "^3.29.1",
"@tiptap/pm": "^3.29.1",
"@tiptap/react": "^3.29.1",
"@tiptap/starter-kit": "^3.29.1",
"@tanstack/react-router": "^1.170.25",
"@tiptap/extension-color": "^3.29.2",
"@tiptap/extension-highlight": "^3.29.2",
"@tiptap/extension-text-align": "^3.29.2",
"@tiptap/extension-text-style": "^3.29.2",
"@tiptap/pm": "^3.29.2",
"@tiptap/react": "^3.29.2",
"@tiptap/starter-kit": "^3.29.2",
"@types/js-cookie": "^3.0.6",
"@uiw/color-convert": "^2.10.3",
"@uiw/react-color-colorful": "^2.10.3",
"ai": "^7.0.37",
"better-auth": "1.6.25",
"ai": "^7.0.58",
"better-auth": "1.6.26",
"buffer": "^6.0.3",
"cmdk": "^1.1.1",
"drizzle-orm": "1.0.0-rc.4",
"es-toolkit": "^1.50.0",
"fuse.js": "^7.5.0",
"immer": "^11.1.15",
"immer": "^11.1.16",
"js-cookie": "^3.0.8",
"motion": "^12.42.2",
"pdfjs-dist": "6.1.200",
"pg": "^8.22.0",
"motion": "^13.0.0",
"pdfjs-dist": "6.2.108",
"pg": "^8.23.0",
"prettier": "^3.9.6",
"qrcode.react": "^4.2.0",
"react": "^19.2.8",
"react-dom": "^19.2.8",
@@ -76,9 +86,9 @@
"react-markdown": "^10.1.0",
"react-resizable-panels": "^4.12.2",
"react-window": "^2.3.0",
"react-zoom-pan-pinch": "^4.0.3",
"react-zoom-pan-pinch": "^4.0.4",
"remark-gfm": "^4.0.1",
"sonner": "^2.0.7",
"sonner": "^2.0.8",
"ts-pattern": "^5.9.0",
"usehooks-ts": "^3.1.1",
"zod": "^4.4.3",
@@ -95,18 +105,18 @@
"@tanstack/devtools-vite": "^0.8.3",
"@tanstack/react-devtools": "^0.10.9",
"@tanstack/react-query-devtools": "^5.101.4",
"@tanstack/react-router-devtools": "^1.167.0",
"@tanstack/router-plugin": "^1.168.23",
"@tanstack/react-router-devtools": "^1.167.1",
"@tanstack/router-plugin": "^1.168.29",
"@types/babel__core": "^7.20.5",
"@types/pg": "^8.20.0",
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"@types/pg": "^8.21.0",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.4",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"@vitejs/plugin-react": "^6.0.4",
"@vitejs/plugin-react": "^6.0.5",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-react-compiler": "^1.0.0",
"rimraf": "^6.1.3",
"typescript": "^7.0.2",
"vite": "^8.1.5"
"vite": "^8.2.1"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@@ -1,6 +1,6 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
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";
@@ -68,4 +68,17 @@ describe("IconPicker", () => {
const { container } = renderPicker();
expect(container.querySelectorAll("button").length).toBeGreaterThanOrEqual(1);
});
it("calls onChange with an empty string when the no-icon cell is clicked", () => {
const onChange = vi.fn();
render(
<I18nProvider i18n={i18n}>
<IconPicker value="globe" onChange={onChange} popoverProps={{ defaultOpen: true }} />
</I18nProvider>,
);
const firstCell = screen.getByTestId("grid").querySelector("button");
if (firstCell) fireEvent.click(firstCell);
expect(onChange).toHaveBeenCalledWith("");
});
});
@@ -58,7 +58,7 @@ function IconCellComponent({ columnIndex, rowIndex, style, icons, onChange }: Ic
style={style}
tabIndex={-1}
onClick={() => {
if (icon) onChange(icon);
if (typeof icon === "string") onChange(icon);
}}
className="flex size-full items-center justify-center hover:bg-accent"
>
@@ -1,6 +1,33 @@
// @vitest-environment happy-dom
import { describe, expect, it } from "vitest";
import { Editor } from "@tiptap/react";
import StarterKit from "@tiptap/starter-kit";
import { resolveHighlightToolbarState } from "./rich-input.utils";
describe("Tiptap editing", () => {
it("creates a new paragraph when Enter is pressed", () => {
const editor = new Editor({ extensions: [StarterKit], content: "<p>First</p>" });
editor.commands.setTextSelection(editor.state.doc.content.size - 1);
editor.commands.enter();
expect(editor.getHTML()).toBe("<p>First</p><p></p>");
editor.destroy();
});
it("creates and splits list items", () => {
const editor = new Editor({ extensions: [StarterKit], content: "<p>First</p>" });
editor.commands.setTextSelection(editor.state.doc.content.size - 1);
editor.commands.toggleBulletList();
editor.commands.enter();
expect(editor.getHTML()).toBe("<ul><li><p>First</p></li><li><p></p></li></ul><p></p>");
editor.destroy();
});
});
describe("resolveHighlightToolbarState", () => {
it("shows legacy colorless highlights as default yellow and clearable", () => {
expect(resolveHighlightToolbarState(true, null)).toEqual({
+4 -1
View File
@@ -2,6 +2,7 @@ import type { DialogProps } from "../store";
import { t } from "@lingui/core/macro";
import { Trans } from "@lingui/react/macro";
import { CopyIcon, PlusIcon } from "@phosphor-icons/react";
import { useStore } from "@tanstack/react-form";
import { useQueryClient } from "@tanstack/react-query";
import { useState } from "react";
import { toast } from "sonner";
@@ -83,6 +84,8 @@ const CreateApiKeyForm = ({ setApiKey }: CreateApiKeyFormProps) => {
useFormBlocker(form);
const isSubmitting = useStore(form.store, (state) => state.isSubmitting);
return (
<DialogContent>
<DialogHeader>
@@ -176,7 +179,7 @@ const CreateApiKeyForm = ({ setApiKey }: CreateApiKeyFormProps) => {
</form.Field>
<DialogFooter>
<Button type="submit">
<Button type="submit" disabled={isSubmitting}>
<Trans comment="Create API key dialog submit action">Create</Trans>
</Button>
</DialogFooter>
@@ -254,6 +254,12 @@ export function EnableTwoFactorDialog(_: DialogProps<"auth.two-factor.enable">)
<div className="flex items-center gap-x-2">
<Input readOnly value={secret} className="font-mono text-sm" />
<Button size="icon" variant="ghost" type="button" onClick={handleCopySecret}>
<span className="sr-only">
{t({
comment: "Accessible label for the button that copies the two-factor secret key",
message: "Copy secret",
})}
</span>
<CopyIcon />
</Button>
</div>
@@ -0,0 +1,176 @@
// @vitest-environment happy-dom
import type { AnchorHTMLAttributes, ReactNode } from "react";
import { fireEvent, render, screen, waitFor } from "@testing-library/react";
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Dialog } from "@reactive-resume/ui/components/dialog";
import { useDialogStore } from "@/dialogs/store";
import { ConfirmDialogProvider } from "@/hooks/use-confirm";
const navigate = vi.hoisted(() => vi.fn());
// Stands in for the navigation TanStack Router performs from inside <Link>. Keeping it separate
// from `navigate` lets a test tell "the router took us away" apart from "the dialog took us away".
const routerNavigate = vi.hoisted(() => vi.fn());
type MockLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
to: string;
children: ReactNode;
};
vi.mock("@tanstack/react-router", () => ({
useNavigate: () => navigate,
// Mirrors the part of <Link> this fix depends on: the router handles the click and navigates
// unless something already prevented the default. Without that, a missing preventDefault() in
// the dialog would go unnoticed here.
Link: ({ to, children, onClick, ...props }: MockLinkProps) => (
<a
href={to}
onClick={(event) => {
onClick?.(event);
if (event.defaultPrevented) return;
if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
routerNavigate({ to });
}}
{...props}
>
{children}
</a>
),
}));
vi.mock("@/features/settings/integrations/hooks/use-has-usable-ai-provider", () => ({
useHasUsableAiProvider: () => ({ hasUsableProvider: false, isLoading: false }),
}));
vi.mock("@/libs/orpc/client", () => ({
client: {},
orpc: { resume: { import: { mutationOptions: () => ({ mutationFn: vi.fn() }) } } },
}));
const { ImportResumeDialog } = await import("./import");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
afterEach(() => {
navigate.mockReset();
routerNavigate.mockReset();
});
// Drive `open` from the store the way DialogManager does, so closing the dialog actually unmounts it.
function DialogHarness() {
const open = useDialogStore((state) => state.open);
return (
<Dialog open={open}>
<ImportResumeDialog />
</Dialog>
);
}
const renderDialog = () => {
useDialogStore.setState({ open: true, activeDialog: null, onBeforeClose: null });
return render(
<I18nProvider i18n={i18n}>
<QueryClientProvider client={new QueryClient()}>
<ConfirmDialogProvider>
<DialogHarness />
</ConfirmDialogProvider>
</QueryClientProvider>
</I18nProvider>,
);
};
// A real "%PDF" header so the dialog auto-detects the type and shows the provider notice.
const createPdfFile = () =>
new File([new Uint8Array([0x25, 0x50, 0x44, 0x46])], "resume.pdf", { type: "application/pdf" });
// The dialog renders through a portal, so query the document rather than the render container.
async function selectPdfFile() {
const input = document.querySelector<HTMLInputElement>('input[type="file"]');
if (!input) throw new Error("File input not found");
fireEvent.change(input, { target: { files: [createPdfFile()] } });
return await screen.findByText("Set up a provider");
}
describe("ImportResumeDialog — Set up a provider", () => {
// https://github.com/amruthpillai/reactive-resume/issues/3307
it("confirms before leaving instead of navigating behind the dialog", async () => {
renderDialog();
const link = await selectPdfFile();
fireEvent.click(link);
expect(await screen.findByText("Leave to set up an AI provider?")).toBeInTheDocument();
expect(routerNavigate).not.toHaveBeenCalled();
expect(navigate).not.toHaveBeenCalled();
expect(screen.getByText("Import an existing resume")).toBeInTheDocument();
});
it("stays put and keeps the selected file when the user cancels", async () => {
renderDialog();
const link = await selectPdfFile();
fireEvent.click(link);
fireEvent.click(await screen.findByText("Stay"));
await waitFor(() => {
expect(screen.queryByText("Leave to set up an AI provider?")).not.toBeInTheDocument();
});
expect(routerNavigate).not.toHaveBeenCalled();
expect(navigate).not.toHaveBeenCalled();
expect(useDialogStore.getState().open).toBe(true);
expect(screen.getByText("resume.pdf")).toBeInTheDocument();
});
it("closes the dialog and navigates once the user confirms", async () => {
renderDialog();
const link = await selectPdfFile();
fireEvent.click(link);
fireEvent.click(await screen.findByText("Leave"));
await waitFor(() => {
expect(navigate).toHaveBeenCalledWith({ to: "/dashboard/settings/integrations" });
});
expect(useDialogStore.getState().open).toBe(false);
await waitFor(() => {
expect(screen.queryByText("Set up a provider")).not.toBeInTheDocument();
});
});
it("leaves modifier clicks to the browser so the link can open in a new tab", async () => {
renderDialog();
const link = await selectPdfFile();
const event = new MouseEvent("click", { bubbles: true, cancelable: true, metaKey: true });
fireEvent(link, event);
expect(event.defaultPrevented).toBe(false);
expect(screen.queryByText("Leave to set up an AI provider?")).not.toBeInTheDocument();
expect(navigate).not.toHaveBeenCalled();
});
it("leaves middle clicks to the browser too", async () => {
renderDialog();
const link = await selectPdfFile();
const event = new MouseEvent("click", { bubbles: true, cancelable: true, button: 1 });
fireEvent(link, event);
expect(event.defaultPrevented).toBe(false);
expect(screen.queryByText("Leave to set up an AI provider?")).not.toBeInTheDocument();
expect(navigate).not.toHaveBeenCalled();
});
});
@@ -19,6 +19,7 @@ describe("detectJsonImportType", () => {
});
it("returns an empty string for unrecognized shapes", () => {
expect(detectJsonImportType({})).toBe("");
expect(detectJsonImportType({ foo: "bar" })).toBe("");
expect(detectJsonImportType(null)).toBe("");
expect(detectJsonImportType("nope")).toBe("");
+40 -14
View File
@@ -1,6 +1,7 @@
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { DialogProps } from "../store";
import type { ImportType } from "./import.utils";
import type { ResumeJsonFormat } from "./parse-json";
import { t } from "@lingui/core/macro";
import { Trans } from "@lingui/react/macro";
import { DownloadSimpleIcon, FileIcon, UploadSimpleIcon } from "@phosphor-icons/react";
@@ -10,9 +11,6 @@ import { Link, useNavigate } from "@tanstack/react-router";
import { useRef, useState } from "react";
import { toast } from "sonner";
import z from "zod";
import { parseJSONResume } from "@reactive-resume/import/json-resume";
import { parseReactiveResumeJSON } from "@reactive-resume/import/reactive-resume-json";
import { parseReactiveResumeV4JSON } from "@reactive-resume/import/reactive-resume-v4-json";
import { Badge } from "@reactive-resume/ui/components/badge";
import { Button } from "@reactive-resume/ui/components/button";
import {
@@ -27,12 +25,14 @@ import { Input } from "@reactive-resume/ui/components/input";
import { Spinner } from "@reactive-resume/ui/components/spinner";
import { Combobox } from "@/components/ui/combobox";
import { useHasUsableAiProvider } from "@/features/settings/integrations/hooks/use-has-usable-ai-provider";
import { useConfirm } from "@/hooks/use-confirm";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { getOrpcErrorMessage } from "@/libs/error-message";
import { client, orpc } from "@/libs/orpc/client";
import { useAppForm } from "@/libs/tanstack-form";
import { useDialogStore } from "../store";
import { detectJsonImportType } from "./import.utils";
import { parseResumeJson } from "./parse-json";
const formSchema = z.discriminatedUnion("type", [
z.object({
@@ -120,6 +120,7 @@ async function detectImportType(file: File): Promise<ImportType> {
}
export function ImportResumeDialog(_: DialogProps<"resume.import">) {
const confirm = useConfirm();
const navigate = useNavigate();
const closeDialog = useDialogStore((state) => state.closeDialog);
@@ -147,16 +148,12 @@ export function ImportResumeDialog(_: DialogProps<"resume.import">) {
try {
let data: ResumeData | undefined;
if (value.type === "json-resume-json") {
data = parseJSONResume(await value.file.text());
}
if (value.type === "reactive-resume-json") {
data = parseReactiveResumeJSON(await value.file.text());
}
if (value.type === "reactive-resume-v4-json") {
data = parseReactiveResumeV4JSON(await value.file.text());
if (
value.type === "json-resume-json" ||
value.type === "reactive-resume-json" ||
value.type === "reactive-resume-v4-json"
) {
data = parseResumeJson(await value.file.text(), value.type as ResumeJsonFormat);
}
if (value.type === "pdf") {
@@ -248,6 +245,31 @@ export function ImportResumeDialog(_: DialogProps<"resume.import">) {
// #6: only warn about unsaved changes once a file has actually been chosen — not on a bare type selection.
useFormBlocker(form, { shouldBlock: () => Boolean(file) });
// The provider link navigates away while this dialog stays mounted over the new page, so the
// unsaved-changes guard (which only runs on a close attempt) fires far too late. Confirm first,
// then close and navigate ourselves.
const onSetUpProvider = async (event: React.MouseEvent<HTMLAnchorElement>) => {
// Modifier and middle clicks open a new tab: the user is not leaving this page, so let the
// browser handle the link and keep the dialog exactly as it is.
if (event.defaultPrevented || event.button !== 0) return;
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
event.preventDefault();
if (file) {
const confirmed = await confirm(t`Leave to set up an AI provider?`, {
description: t`You'll be taken to the Integrations page. The file you selected won't be imported.`,
confirmText: t`Leave`,
cancelText: t`Stay`,
});
if (!confirmed) return;
}
closeDialog();
await navigate({ to: "/dashboard/settings/integrations" });
};
return (
<DialogContent>
<DialogHeader>
@@ -388,7 +410,11 @@ export function ImportResumeDialog(_: DialogProps<"resume.import">) {
size="sm"
variant="secondary"
nativeButton={false}
render={<Link to="/dashboard/settings/integrations">{t`Set up a provider`}</Link>}
render={
<Link to="/dashboard/settings/integrations" onClick={onSetUpProvider}>
{t`Set up a provider`}
</Link>
}
/>
</div>
)}
@@ -0,0 +1,8 @@
import { describe, expect, it } from "vitest";
import { parseResumeJson } from "./parse-json";
describe("parseResumeJson", () => {
it("keeps a selected v4 import from falling back to JSON Resume", () => {
expect(() => parseResumeJson("{}", "reactive-resume-v4-json")).toThrow(/v4/i);
});
});

Some files were not shown because too many files have changed in this diff Show More