Compare commits

...
50 Commits
Author SHA1 Message Date
Amruth Pillai aa7af040fb chore(release): v5.1.3 2026-05-13 09:29:59 +02:00
Amruth Pillai 5f63dc876b feat: new template (scizor) 2026-05-13 09:26:38 +02:00
Kaloian Kozlev 014ceee31f Add DOCX to export formats in README (#3054) 2026-05-13 09:10:30 +02:00
github-actions[bot]andCrowdin Bot 70dff5bf49 [skip ci] chore(i18n): sync translations from crowdin (#3053)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-13 09:10:00 +02:00
Amruth Pillai c5787fe155 chore: translations for a new template 2026-05-13 08:06:31 +02:00
Amruth Pillai 286e165a60 [codex] Hide empty sections from page settings (#3052)
* feat(web): hide empty layout sections

* test: add "scizor" to templates metadata test cases
2026-05-13 01:11:19 +02:00
Amruth Pillai 00dafd0c68 feat: add new resume template "Scizor" 2026-05-13 01:07:35 +02:00
brone1323 d251d602fb fix(pdf): increase headerNameLineHeight to 1.3 to prevent descender clipping (#3050)
All Heading elements apply overflow:hidden via safeTextStyle in primitives.tsx.
At 1.5× heading font size with lineHeight 1.2, the line box is too tight to
fully render descenders (g, p, y, etc.) in the resume header name field,
causing them to appear visually cut off.

Raising headerNameLineHeight from 1.2 to 1.3 adds enough vertical room for
descenders across all 13 templates that share this constant.

Fixes #3042
2026-05-13 01:02:16 +02:00
Amruth Pillai e35ff83911 chore: update dependencies 2026-05-13 00:44:51 +02:00
Amruth Pillai 62b0a1d533 fix(cjk): resolve hyphenation callback with cjk content in resume 2026-05-11 22:04:45 +02:00
Amruth PillaiandCursor Agent 0a8fe05653 Fix split row right content promotion (#3039)
* Fix split row right content promotion

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>

* refactor: remove MetaLine component and update sections to use Text instead

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-11 15:59:26 +02:00
Amruth Pillai de7baa5faf test: add ~500 tests across web, utils, api, import, ai, db, email, auth (#3038)
* test(web): add tests for zustand stores and pure helpers

Cover stores and pure helpers across the builder/dashboard/command-palette
surfaces that previously had 0% coverage:

- command-palette store (open/close, page stack, search clearing, goBack)
- builder assistant-store
- builder sidebar store + parseBuilderLayoutCookie / mapPanelLayoutToBuilderLayout
- builder section store (collapse, toggle, toggleAll)
- builder preview page-layout toggle
- dashboard resume-thumbnail render-size math + cache key
- MCP tool name + annotations invariants

* test(web): cover MCP helpers and template metadata

Add tests for previously 0%-coverage MCP and dialog helpers:

- buildMcpServerCard: server-info, tool catalog vs MCP_TOOL_NAME, prompts,
  resource templates, configuration schema, auth schemes
- registerPrompts (build/improve/review): registration, args schema, resource
  context with interpolated resume id, read-only / no-fabrication directives
- registerResources (resume://{id}, resume://_meta/schema): handler reads via
  oRPC client, error on missing id, schema returns valid JSON
- templates metadata: ids match display names, valid sidebar positions,
  unique image URLs, every entry has tags + description

* test(web): cover sidebar section helpers and layout screens

Add tests for previously near-0%-coverage modules:

- libs/resume/section: getSectionTitle / getSectionIcon return distinct,
  exhaustive results for every sidebar section + cover-letter; icon props
  forwarding; left/right sidebar collections do not overlap.
- layout/loading-screen: spinner + text render.
- layout/error-screen: error message surfaces, Refresh button triggers reset.
- layout/breakpoint-indicator: default + each corner positioning, all
  breakpoint labels rendered, print-hidden class applied.

* test(web): cover preview canvas math and font-weight defaults

Add tests for pure helpers that previously had no direct coverage:

- typography/getNextWeights: prefers 400 + 600 when both are available,
  returns null for unknown families, never produces duplicates, bounded
  to two weights from the 100..900 set.
- preview.shared/normalizeResumePreviewProps: documented defaults +
  pass-through.
- preview.shared/getScaledPreviewPageSize: scaling identity at 1, and
  fractional scaling.
- preview.shared/getPreviewCanvasScale: respects 4x desired scale for
  small pages, honors high devicePixelRatio, clamps to the 16M-pixel
  canvas budget for large pages.

* test(utils): cover DOCX section renderers and html-to-paragraphs

@reactive-resume/utils/resume/docx was previously at ~2.84% statement
coverage despite being load-bearing for the resume DOCX export.

- section-renderers: empty-string / hidden-section / hidden-item branches
  for renderSummary, renderBuiltInSection, and renderCustomSection;
  cover-letter and summary custom-section dispatch; unknown-type fallback;
  setRenderConfig idempotency.
- html-to-docx: whitespace-only short-circuit, multiple top-level blocks,
  h1..h6 paragraph mapping, inline style and link rendering, custom
  font/size/color/linkColor config, ignored script/comment nodes.

* test: cover DOCX builder smoke paths and reactive-resume JSON importer

- utils/resume/docx/builder: buildDocument runs end-to-end against the
  default and sample resume data, both page formats, full-width and
  sidebar layouts, and gracefully degrades with unparseable color or
  empty font family inputs.
- import/reactive-resume-json: ReactiveResumeJSONImporter validates
  malformed JSON, recovers missing built-in sections by appending them
  to page 1 without reordering, and preserves layouts that already
  contain every built-in section.

* test(import): cover JSONResumeImporter parse/convert

JSONResumeImporter (450 lines) was previously at 0% coverage. Add tests
for the public surface:

- Invalid JSON / invalid-shape errors are surfaced.
- basics, summary, picture, education, projects, skills, profiles all
  map to the corresponding ResumeData sections.
- Empty work/education entries (missing key field) are filtered out.
- Highlights become HTML list items in the description field.
- Skill level parsing flows through utils/level.parseLevel.
- formatLocation joins city, region, countryCode with commas.

* test(web): cover query client serializer and home-page animations

- libs/query/client: getQueryClient returns a fresh QueryClient,
  queryKeyHashFn produces stable JSON envelopes for matching keys
  (and distinct strings for different keys), dehydrate/hydrate
  round-trip Date values via the oRPC serializer.
- components/animation/spotlight: overlay container is
  pointer-events-none, both beam groups render, custom
  width/height/translateY/gradient props flow into inline styles.
- components/animation/comet-card: children mount inside the
  perspective wrapper, custom className is merged with the 3D
  baseline classes, glare overlay renders, mouse move/leave
  handlers do not throw.

* test(web): cover Copyright footer

Verify the footer's MIT license link, Amruth Pillai attribution,
external-tab targets, embedded app version (via __APP_VERSION__ stub),
and custom className merging — previously at 0% coverage.

* test(api): cover flags, auth providers, and resume-access cookies

Unlock @reactive-resume/api by mocking @reactive-resume/env/server and
@tanstack/react-start/server. Previously the only services tested were
the standalone AI test and resume-access-policy.

- services/flags: flagsService.getFlags reads disableSignups/disableEmailAuth
  from env (no stale cache).
- services/auth: providers.list always exposes credential + passkey, and
  only adds Google/GitHub/LinkedIn/custom when both id and secret are set;
  custom provider uses OAUTH_PROVIDER_NAME with a 'Custom OAuth' fallback.
- helpers/resume-access: hasResumeAccess validates against signed cookies
  with constant-time comparison; grantResumeAccess writes a 10-minute
  httpOnly cookie with the secure flag matching APP_URL's https-ness.

* test: cover statistics service and email transport via env mocks

- api/services/statistics: github star count succeeds, retries on
  non-OK, falls back to last-known on fetch error / non-positive /
  non-numeric responses; user and resume counts roll up DB count.
- email/src/transport: returns silently with no text/html, logs when
  SMTP is not configured, dispatches via nodemailer with the env
  config when fully wired, renders react elements to html + text
  bodies, swallows transport errors instead of crashing.

* test(api): cover resume-events publish + subscribe

- publishResumeUpdated issues pg_notify with channel and serialized
  event payload.
- subscribeResumeUpdated yields events whose resumeId+userId match
  the subscription, filters out other resumes/users, ignores
  malformed JSON and notifications on other channels, calls
  LISTEN/UNLISTEN and releases the client, and terminates
  immediately if the abort signal fires before iteration starts.

* test(api): cover oRPC auth resolution

resolveUserFromRequestHeaders is the single point where every oRPC
procedure picks up the authenticated user. Test the priority chain:

- x-api-key wins when present and valid
- on invalid api key, falls back to session via auth.api.getSession
- Bearer JWT in Authorization header is verified via verifyOAuthToken
- invalid Bearer falls back to session
- Authorization scheme other than Bearer is ignored entirely
- thrown errors from token verification are logged and swallowed
  (caller still tries session)
- returns null when no auth method succeeds

* test(api): cover storage helpers

inferContentType, isImageFile, processImageForUpload were 0%
coverage despite being on the picture upload path.

- inferContentType maps known image and pdf extensions, is
  case-insensitive, ignores path depth, and falls back to
  application/octet-stream for unknown.
- isImageFile allows only the upload allowlist (gif/png/jpeg/webp)
  and rejects image/svg+xml, application/pdf, and empty strings.
- processImageForUpload short-circuits to the original bytes when
  FLAG_DISABLE_IMAGE_PROCESSING is true, otherwise pipes through
  sharp and returns image/jpeg.

* test(import): broaden v4 importer section-mapping coverage

The existing v4 importer test focused on a single bug (description-only
custom items) and the skill/language level scaling. This new test
exercises the bulk of the v4 → v5 transformation path:

- basics, picture (with border), summary, customFields
- every section's filter-by-required-field invariant (awards needs
  title, certifications needs name, education needs institution,
  experience needs company, volunteer needs organization, etc.)
- experience / education / awards / certifications / references field
  renames between schemas
- language and skill level scaling (v4 0..10 → v5 0..5)

Brings reactive-resume-v4-json from ~66% statement coverage to a
materially higher figure (the bulk of the 410-line transformer body).

* test: cover buildDocx entry and AI configuration store

- utils/resume/docx/index: buildDocx returns a non-empty Blob for both
  default and populated resumes (previously 0% coverage despite being
  the public DOCX entry point).
- ai/store: useAIStore preserves verification status across no-op
  updates, but resets testStatus + enabled whenever provider, model,
  apiKey, or baseURL changes; canEnable is gated to testStatus=success;
  setEnabled(true) is refused unless verified; reset clears every
  field. Brings @reactive-resume/ai from ~72% to materially higher
  coverage.

* test(db): cover resume schema definitions

packages/db was previously at 0% coverage. Smoke-test the public
resume / resume_statistics / resume_analysis tables:

- getTableName matches the SQL identifier used by migrations
- expected columns are present on each table
- defaultResumeData wiring on the data column resolves to a valid
  shape

These are structural assertions that catch accidental renames /
removals without needing a live database connection.

* test(db): cover auth schema tables and relations export

- src/schema/auth: table-driven test for each of the 12 auth tables
  asserting SQL name and presence of the key columns (user/session/
  account/verification/two_factor/passkey/apikey/jwks/oauth_*).
- src/relations: smoke test confirming the relations export is defined.

Brings @reactive-resume/db from 0% to materially higher coverage.

* test(auth): cover getSession isomorphic helper

@reactive-resume/auth was previously at 0% coverage. functions.ts
is the server entry point that other packages call. Mock the auth
config + tanstack/react-start to verify:

- getSession forwards getRequestHeaders() to auth.api.getSession
- returns null when better-auth returns null

* test(web): cover BuilderSidebarEdge

Small presentational component on the builder layout — assert children
mount, left/right positioning class branches, and the sm:flex
mobile-hide behavior.

* test(web): cover section-title-locale resolver cache and hook

The section-title-locale module wraps createSectionTitleResolver with
a per-locale async cache and a React hook for consumers in the
builder. Cover:

- createSectionTitleResolverForLocale returns a usable resolver
- repeated calls for the same locale share a cached promise
- unknown locales fall back through resolveLocale
- useSectionTitleResolver returns null while loading and when no
  locale is passed
- the hook resolves to a function once the async loader settles

* test(web): cover BaseCommandGroup page-stack gating

BaseCommandGroup conditionally renders based on the top of the
command-palette page stack. Tests cover:

- root group renders when no sub-page is active
- root group hides when a sub-page is on top
- sub-page group renders only when its page matches
- mismatched sub-page leaves the group hidden

* test(web): cover ThemeProvider context

- useTheme outside ThemeProvider throws the documented error
- useTheme inside ThemeProvider returns the theme + setTheme +
  toggleTheme helpers

* test(web): cover ConfirmDialogProvider + useConfirm hook

- useConfirm outside provider throws the documented error
- confirm returns a pending promise
- promise resolves false when the Cancel button is clicked
- promise resolves true when the Confirm button is clicked
- works with custom confirmText label

apps/web has its own copy of this hook distinct from
packages/ui (mirrors the existing UI-package tests).

* test(web): cover PromptDialogProvider + usePrompt hook

- usePrompt outside provider throws the documented error
- returns a function when wrapped
- Cancel click resolves the promise to null
- Confirm click resolves to the current input value
- defaultValue option seeds the initial input value

* test(web): cover DashboardHeader

Small presentational header used across dashboard routes — title h1,
icon rendering, className merge, mobile sidebar trigger present and
hidden on md+.

* test(web): cover Create/Import resume cards

Both cards on the resumes dashboard wire a click handler to open
the appropriate dialog via the dialog store:

- CreateResumeCard opens resume.create
- ImportResumeCard opens resume.import

Also asserts the i18n copy strings (icons aside, the cards are
otherwise structural).

* test(web): cover command-palette language sub-page

LanguageCommandPage is a BaseCommandGroup gated on page='language'.
Tests assert:

- it is hidden when 'language' is not the top of the page stack
- when active, it renders a CommandItem per localeMap entry
- documented locale codes (en-US, de-DE, ja-JP) appear

* test(web): cover command-palette theme + preferences sub-pages

- ThemeCommandPage: hidden when 'theme' is not on top, renders Light
  and Dark options when active
- PreferencesCommandGroup: root group renders both Change theme to...
  and Change language to... items; clicking each pushes the
  corresponding page onto the command-palette stack

* test(ai): cover executePatchResume tool

- patchResumeInputSchema rejects empty operations and unknown op
  values; accepts valid replace/add/remove
- executePatchResume returns the applied operations on success
- executePatchResume throws when an operation targets an invalid path
  (passes through the underlying applyResumePatches validation)
- multi-op patches against top-level fields succeed end-to-end

* test(ai): cover sanitize edge branches

Hit the previously-uncovered branches in sanitize.ts:

- numeric 1 coerces to true
- '1' / '0' string shorthand coerces to true/false
- missing item.hidden gets salvaged to false
- empty input causes a non-Zod throw (caught + rethrown with generic message)

* test(ai): cover patch-proposal preview + normalize edge cases

- remove operations surface before-value with after=undefined
- buildResumePatchProposalPreview labels metadata/page paths sanely
- normalizeResumePatchProposals stamps every proposal with baseUpdatedAt
- normalizeResumePatchProposals preserves input order

* test(web): cover getLocaleOptions helper

Locale combobox surface — verify the option list mirrors localeMap
shape, uses locale codes as values, populates label + keywords with
the translated display name, and produces unique values.

* test(web): cover LevelTypeCombobox option mapping

LevelTypeCombobox maps levelDesignSchema.shape.type.options through
the internal getLevelTypeName labeler. Assert all 7 level types are
exposed and that each produces a non-empty label.

* test(web): cover ThemeToggleButton fallback paths

- aria-label flips between 'Switch to light theme' and 'Switch to
  dark theme' based on current theme
- clicking when document.startViewTransition is unavailable
  short-circuits to toggleTheme directly
- prefers-reduced-motion forces the direct toggle path even when
  the view-transition API is available

* test(web): cover NotFoundScreen

Mock the TanStack Router Link so the screen renders standalone, then
assert: documented error heading, routeId is surfaced verbatim, and
the Go Back link points to '..' (parent route).

* test(web): cover InformationSectionBuilder

Stub SectionBase so the donation/info section renders standalone.
Assert: donation prompt copy, OpenCollective CTA link, all 5
external resource links present, and external links target _blank
with rel=noopener.

* test(web): cover NotesSectionBuilder

Mock SectionBase, RichInput, and the resume-draft hooks so the
notes section renders in isolation. Assert: privacy hint copy
renders, RichInput is seeded with metadata.notes, and onChange
proxies through updateResumeData with a draft recipe that mutates
metadata.notes.

* test(web): cover TemplateSectionBuilder

Stub SectionBase and useCurrentResume so the right-sidebar template
section renders standalone. Asserts: current template name in the
heading, template tags rendered as badges, preview image points to
the catalog asset, and clicking the preview opens the
resume.template.gallery dialog.

* test(web): cover ColorPicker preset selection and trigger override

Mock the heavy @uiw/react-color-colorful dependency. Test:

- the trigger swatch reflects the controlled value
- clicking a preset color invokes onChange with an rgba() string
- a custom trigger replaces the default swatch when provided

* test(web): cover ExportSectionBuilder

Mock the heavy export pipelines (buildDocx, createResumePdfBlob,
downloadWithAnchor) and the resume-draft hook to test:

- JSON button packages resume.data as application/json and triggers
  download with the {name}.json filename
- DOCX button awaits buildDocx and downloads .docx
- PDF button awaits createResumePdfBlob and downloads .pdf

* test(web): cover ProfilesSectionBuilder

Stub the resume-draft hooks, SectionBase, SectionItem, and
SectionAddItemButton so the profiles section renders standalone:

- one SectionItem per profile with network as title and username as
  subtitle
- 'Add a new profile' affordance present
- when items.length > 0, the wrapper uses a solid border (not dashed)

* test(web): cover SkillsSectionBuilder

Mirror the profiles test for the skills section — verifies one
SectionItem per skill (name → title, proficiency → subtitle) and
the Add a new skill affordance.

* test(web): bulk-cover 7 left-sidebar section builders

Single test file covers awards, certifications, interests, languages,
publications, references, and volunteer builders. For each:

- one SectionItem rendered with the documented field → title/subtitle
  mapping
  - awards: title → awarder
  - certifications: title → 'issuer • date'
  - interests: name → (no subtitle)
  - languages: language → fluency
  - publications: title → publisher
  - references: name → (no subtitle)
  - volunteer: organization → location
- the 'Add a new {kind}' affordance with the matching copy

Mocks SectionBase, SectionItem, SectionAddItemButton, and the
resume-draft hooks so each builder renders standalone.

* test(web): cover ProjectsSectionBuilder buildSubtitle

The projects section is the only left-sidebar builder with a
composite subtitle. Tests three branches of its inline
buildSubtitle helper:

- period + website.label → joined with ' • '
- period only → just the period
- empty period + whitespace-only website.label → returns undefined

* test(web): cover Education + Experience section builders

- Education: school → title, degree → subtitle, add-new affordance
- Experience: position → subtitle when set; falls back to '1 role' /
  'N roles' (lingui plural) when position empty and roles[] present;
  add-new affordance

* test(web): cover CountUp animated number renderer

- default aria attributes (aria-live=polite, aria-atomic=true)
- initial textContent seeds to 'from' (up) or 'to' (down) value
- separator option formats with grouping
- decimal places are preserved when from/to are fractional
- aria-hidden=true strips aria-live + aria-atomic
- custom className is applied to the rendered span

* test(web): cover TextMaskEffect SVG renderer

- supplied text renders in every visible <text> layer
- aria-hidden + aria-label forwarded onto the root svg
- mouse enter/move/leave handlers don't throw
- custom className merges into the svg's class attribute

* test(web): cover URLInput prefix handling

- displayed input strips the https:// prefix so users only edit the
  meaningful portion
- editing re-adds the prefix on the way back through onChange
- pre-prefixed input is preserved
- cleared input emits an empty url (no prefix forced)
- hideLabelButton=true removes the popover trigger; default keeps it

* test(web): cover GithubStarsButton

Mocks useQuery + the CountUp animation so the button renders
standalone. Asserts:

- anchor points at the project repo with rel=noopener + target=_blank
- aria-label is the no-count copy when star count is undefined
- CountUp renders only once the count loads
- aria-label includes the localized count once data arrives

* test(web): cover ui/Combobox trigger label rendering

The shared Combobox wraps base-ui's combobox primitives. Smoke-test
the trigger label resolution:

- placeholder shows when nothing is selected
- selected option's label renders in the trigger
- multi-select default values render all labels
- empty options array renders the placeholder without crashing

* test(web): cover IconPicker trigger rendering

Stub react-window's Grid so happy-dom can render the picker without
layout-measurement deps. Verify:

- trigger renders an <i class='ph-{value}'> for the current value
- changing value updates the trigger icon class
- the picker emits a trigger button

* test(web): cover ChipInput add/dedupe/description behaviors

- existing chips render as Badges
- Enter adds the typed value to the chip list
- comma also commits the typed value
- duplicate input is dropped (onChange not called with a longer list)
- empty / whitespace-only input is dropped
- hideDescription removes the keyboard hint <kbd>; default keeps it

* test(web): cover StatisticsSectionBuilder

Mock useQuery + useParams + section-base so the right-sidebar
statistics section renders standalone:

- returns null content while the query is loading
- shows the private-resume hint when isPublic=false
- shows views/downloads counters and labels when isPublic=true
- includes 'Last viewed' timestamp copy when lastViewedAt is set

* test(web): cover TemplateGalleryDialog selection flow

- title + intro copy render
- one tile per template (>= 14)
- currently-selected template tile carries the ring-highlight
- clicking a different tile triggers updateResumeData with a recipe
  that sets metadata.template to the chosen template id

* test(web): cover Prefooter home-page section

- community tagline heading renders
- community-thanks paragraph renders
- the decorative TextMaskEffect renders an svg

* test(web): cover home-page Footer

- Resources and Community headings render
- documented resource links (Documentation, Sponsorships, Source
  Code, Changelog) all appear in the rendered output
- documented community links (Report an issue, Translations,
  Subreddit, Discord) all appear
- social anchors point at GitHub, LinkedIn, and X (Twitter)
- Copyright sub-component surfaces the app version via __APP_VERSION__

* test(web): cover home-page Header navigation

Mock TanStack Router Link + child components so the header renders
standalone. Verify:

- homepage anchor (/ link) carries the documented aria-label
- dashboard anchor points to /dashboard
- ThemeToggleButton and GithubStarsButton both mount
- the <nav> landmark is labeled 'Main navigation'

* chore: fix linter warnings
2026-05-11 14:25:10 +02:00
Amruth Pillai 48555f58e5 Merge branch 'main' of github.com:amruthpillai/reactive-resume 2026-05-11 13:56:01 +02:00
Amruth Pillai 0daf868cd4 fix(knip): remove duplicate export 2026-05-11 13:55:56 +02:00
github-actions[bot]andCrowdin Bot e574d4005f [skip ci] chore(i18n): sync translations from crowdin (#3037)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-11 13:54:49 +02:00
Amruth Pillai fda4e500b3 feat(toast): add non-invasive, dismissible donation banner 2026-05-11 13:50:32 +02:00
Amruth Pillai adfc9b527b docs: map existing codebase
Adds .planning/codebase/ with parallel-mapper outputs covering stack,
integrations, architecture, structure, conventions, testing, and concerns.
2026-05-11 11:16:33 +02:00
Amruth Pillai 71aadbd73d docs: update AGENTS.md with detailed codebase structure, environment setup, and common commands 2026-05-11 09:42:58 +02:00
Amruth Pillai 0713cf20d4 fix: filter invalid/empty section items and experience roles 2026-05-11 09:27:14 +02:00
Amruth Pillai 334ea48bc7 fix: enhance rich text handling in PDF generation
- Bump @tanstack/react-form version to 1.32.0 in package.json.
- Refactor rich-input component to simplify highlight configuration.
- Improve rich text HTML normalization to handle <mark> elements and apply styles correctly in PDF output.
- Update global CSS for WYSIWYG to adjust paragraph and list margins.
2026-05-11 09:04:42 +02:00
Amruth PillaiandCursor Agent 69c23211a0 Fix award title and date layout (#3029)
* Fix award title date layout

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>

* Keep award date inline across templates

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-11 05:54:51 +02:00
Amruth Pillai 143aaa741b fix(lapras): adjust lapras border color to fixed gray 2026-05-11 01:11:17 +02:00
Amruth Pillai e4cc6a8e57 docs: add react-pdf-html prose spacing design 2026-05-11 01:00:46 +02:00
Amruth Pillai 92a0e3ddb8 feat: implement resume preview loading enhancements and add tests for preview components 2026-05-11 00:59:16 +02:00
Amruth Pillai 4ebe9e5a67 fix: enhance resume schema validation and improve slugify function for CJK input 2026-05-11 00:27:47 +02:00
Amruth Pillai 0abee1048c fix(docs): update healthcheck test script on docs, resolves #3027 2026-05-11 00:09:07 +02:00
Amruth Pillai 83a407bc10 fix: add special hyphenation callback for Chinese script in PDF font registration 2026-05-10 23:54:37 +02:00
Amruth Pillai 02973a1eb1 fix: correct path for app source files in globals.css 2026-05-10 23:35:46 +02:00
Amruth Pillai 2e04e71f4a fix: update build process to ensure clean output for web app 2026-05-10 23:27:06 +02:00
Amruth Pillai 978cbaf1f3 fix: run knip --fix to add unlisted dependencies 2026-05-10 22:12:35 +02:00
Amruth Pillai 3cd228bd84 chore: update postcss to version 8.5.14 and sort font weights in typography components 2026-05-10 22:09:37 +02:00
Amruth Pillai 64ac3ff328 fix: revert to default hyphenation method 2026-05-10 21:50:27 +02:00
Amruth Pillai 846b7856a7 Merge branch 'main' of github.com:amruthpillai/reactive-resume 2026-05-10 20:46:31 +02:00
Amruth Pillai 7a60a42a04 chore: migrate from jsdom to happy-dom for testing environment 2026-05-10 20:46:28 +02:00
github-actions[bot]andCrowdin Bot b0de64ad13 [skip ci] chore(i18n): sync translations from crowdin (#3026)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-10 20:20:08 +02:00
Amruth Pillai b321e01658 Merge branch 'main' into feat/increase-test-coverage
# Conflicts:
#	packages/ui/src/components/input-group.test.tsx
2026-05-10 20:05:00 +02:00
Amruth Pillai 6a01207b6b test: add unit and component tests across the monorepo
Adds ~1000 tests to bring the previously-untested packages and apps
under coverage:

- packages/utils — string, color, date, file, level, locale, sanitize,
  field, html, network-icons, rate-limit, url, url-security, monorepo,
  resume/patch, resume/docx/link-utils, style helpers (~97% on the
  testable utility files)
- packages/ui — 28 component test files plus the use-controlled-state,
  use-mobile, use-confirm, use-prompt hooks (95% statements)
- packages/pdf — shared template helpers (filtering, columns, picture,
  metrics, section-links, page-size, rich-text-html, section-title)
- packages/schema — resumeDataSchema, page, templates, default
- packages/fonts — expanded coverage on font helpers
- packages/ai — resume sanitize and extraction template
- packages/api — resume-access-policy
- apps/web — error-message, locale, theme, pwa, dialogs/store, and
  the resume/move-item / section-actions / make-section-item helpers

Adds jsdom polyfills (ResizeObserver, IntersectionObserver,
scrollIntoView, matchMedia) and an explicit React Testing Library
cleanup hook to vitest.setup.ts so portal- and overlay-based components
work without per-test setup.
2026-05-10 20:00:07 +02:00
Amruth Pillai 2f6a8904e4 fix: enforce hasPassword to be a boolean 2026-05-10 19:56:50 +02:00
Amruth Pillai 56c9eb2ff4 fix(contact-list): resolves an issue where website label was uneditable 2026-05-10 19:30:09 +02:00
Amruth Pillai 33103536ae fix: fallback for cjk fonts when italic font style not available 2026-05-10 17:35:32 +02:00
Amruth PillaiandCursor Agent a93e7bd190 docs: add AGENTS.md with Cursor Cloud development instructions (#3024)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-05-10 13:34:19 +02:00
github-actions[bot]andCrowdin Bot 4cd4b8c193 [skip ci] chore(i18n): sync translations from crowdin (#3023)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-10 13:27:59 +02:00
Amruth Pillai be9285aa33 chore(release): v5.1.2 2026-05-10 13:27:06 +02:00
Amruth Pillai 6787175a8a feat(ai): implement an AI chat window for agentic resume building (#3022) 2026-05-10 13:23:32 +02:00
Amruth Pillai 42e83cc676 fix: improper rendering of text blocks in PDFs 2026-05-10 13:22:21 +02:00
JamesGoslings 62f4532157 fix(pdf): register CJK fallback font so Chinese/Japanese/Korean text renders correctly (#3016)
Closes #2986.

Since v5.1.0 the renderer was migrated from Puppeteer to
@react-pdf/renderer. The new pipeline only registers the user-selected
typography family (e.g. Roboto, IBM Plex Serif), which contains no CJK
glyphs, so any Chinese / Japanese / Korean characters in the resume
fall back to .notdef and render as garbled boxes in both the in-app
preview and the exported PDF.

@react-pdf/renderer's textkit layer already supports per-codepoint
font substitution when a Text node is styled with `fontFamily` as a
string array — but only if every family in the stack has been
registered via Font.register. This change wires that up:

- packages/fonts: new `getPdfCjkFallbackFontFamily(family)` returns
  Noto Sans SC / Noto Serif SC depending on whether the primary font
  is sans-serif or serif, and `null` when no fallback is needed
  (standard PDF font, or primary already is the fallback). Source Han
  Sans/Serif SC covers all CJK-Unified ideographs, so a single font
  transparently handles Simplified/Traditional Chinese, Japanese
  kanji and Korean hanja.

- packages/pdf/hooks/use-register-fonts: after registering the
  primary body/heading fonts as before, additionally register the
  resolved CJK fallback (regular weight only — substitution is
  per-codepoint, not per-weight, so one face is enough). The
  function's return type is widened to a new `PdfTypography` whose
  `body.fontFamily` and `heading.fontFamily` become
  `[primary, cjkFallback]` two-element stacks.

- packages/pdf/document: cast the widened typography back through the
  schema-typed `ResumeData` so the wider runtime value reaches
  templates without changing the public `Typography` schema. All 15
  templates already consume `metadata.typography.body.fontFamily`
  directly, and `StyleSheet.fontFamily` accepts both string and
  string[], so no template edits are required.

Latin-only resumes are unaffected:
- `getPdfCjkFallbackFontFamily` returns `null` for standard PDF fonts
  and existing CJK selections, so the extra Font.register call is
  skipped.
- When no fallback applies, `registerFonts` returns the original
  typography reference unchanged (zero allocation).
- Even when the fallback is registered, textkit only consults it for
  codepoints the primary font cannot render, so Latin glyphs still
  come from the user-selected font with identical metrics.
2026-05-09 18:49:59 +02:00
Donovan WattsandAmruth Pillai fabe22089d fix(api): allow empty name in public resume output schema (#3012)
The redactResumeForViewer helper intentionally blanks the dashboard
title for non-owner viewers (the title can leak owner-only context like
"Senior Eng @ Foo - final draft"), but the getBySlug output schema
inherits name.min(1) from resumeSchema. Zod rejects the redacted
payload, oRPC throws Output validation failed, and every public resume
URL returns HTTP 500.

Relax the constraint to z.string() on the getBySlug output only -
ownership-gated procedures (getById, update, patch, list, ...) keep
min(1).

Fixes #3011

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-05-09 18:49:43 +02:00
Nicolas Oddo fa38f3e84a fix: correct v4 to v5 import for custom sections, skill levels, and hidden items (#3013) 2026-05-09 18:48:21 +02:00
github-actions[bot]andCrowdin Bot 0606e0072b [skip ci] chore(i18n): sync translations from crowdin (#3005)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-05-08 16:19:27 +02:00
Amruth PillaiandClaude bdfb854602 fix: resolve storage healthcheck path via LOCAL_STORAGE_PATH env var (#3004)
* fix: resolve local data directory to /app/data in production Docker

In the official Docker image, cwd is /app/apps/web (set via WORKDIR), but
the data volume is mounted at /app/data. Without pnpm-workspace.yaml present
in the runtime image, findWorkspaceRoot() returns null, so getLocalDataDirectory()
fell back to <cwd>/data = /app/apps/web/data, which the node user has no
permission to create. This caused the storage healthcheck to fail with
EACCES.

Add a production fallback: when cwd ends in apps/web, resolve the data
directory to two levels up (matching /app/data in the official image).

Re-resolves #2990.

https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf

* fix: replace apps/web heuristic with LOCAL_STORAGE_PATH env var

The previous fix special-cased a cwd ending in apps/web to land on /app/data,
but the heuristic could false-positive on any path with that suffix and was
fragile to Dockerfile changes. pnpm-workspace.yaml is never copied into the
runtime image, so the workspace-root walk was also dead code in production.

Replace the heuristic with an explicit LOCAL_STORAGE_PATH env var:
- Set LOCAL_STORAGE_PATH=/app/data in the Dockerfile (single source of truth).
- Add LOCAL_STORAGE_PATH to the env schema; storage and statistics services
  pass it through to getLocalDataDirectory.
- getLocalDataDirectory now uses the override when set, else workspace root
  (dev), else cwd/data.
- New Nitro plugin validates the resolved local data directory at startup
  and refuses to boot with a clear error if it isn't writable, surfacing
  permission issues immediately instead of at first upload/healthcheck.
- Document the new variable in .env.example and the Docker self-hosting docs.

https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf

* fix: address review feedback on storage path handling

- apps/web/plugins/2.storage.ts: use the default-import style for
  node:fs/promises (matches the rest of the repo, sidesteps any
  named-export concerns for fs.constants).
- packages/env/src/server.ts: reject relative LOCAL_STORAGE_PATH values
  via a zod refinement. Relative paths would be resolved against cwd,
  which differs between dev and Docker — exactly the same surprise the
  original bug had. Failing fast at config validation time gives a
  clear error before the server boots.

https://claude.ai/code/session_015pSTtukxf7mFTty2Y6PHZf

* fix: update data volume configuration in Docker Compose and enhance Nitro plugin

* fix: remove "Can I customize the templates?" FAQ entry from multiple language files

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-08 16:05:47 +02:00
388 changed files with 34872 additions and 3233 deletions
+4 -1
View File
@@ -65,6 +65,9 @@ SMTP_SECURE="false"
# --- Storage (optional) ---
# If all S3 keys are disabled, the app uses local filesystem storage instead.
# Make sure to mount this directory to a volume or the host filesystem to ensure data integrity.
# LOCAL_STORAGE_PATH overrides where local uploads/cache are written.
# Defaults to /app/data in the official Docker image; in dev, defaults to <workspace>/data.
# LOCAL_STORAGE_PATH="/app/data"
# Seaweedfs
S3_ACCESS_KEY_ID="seaweedfs"
@@ -95,4 +98,4 @@ GOOGLE_CLOUD_API_KEY=""
# Crowdin (optional)
# For translation tooling.
CROWDIN_PROJECT_ID=""
CROWDIN_API_TOKEN=""
CROWDIN_PERSONAL_TOKEN=""
+1 -1
View File
@@ -61,7 +61,7 @@
"guid": "open-collective",
"type": "payment-provider",
"description": "Open Collective",
"address": "https://opencollective.com/reactive-resume"
"address": "https://opencollective.com/reactive-resume/donate"
}
]
}
+1
View File
@@ -53,6 +53,7 @@ body:
- Onyx
- Pikachu
- Rhyhorn
- Scizor
validations:
required: false
+1
View File
@@ -46,6 +46,7 @@ temp
.codex
.claude
.cursor
.superpowers
docs/superpowers
# Local Storage Data
+332
View File
@@ -0,0 +1,332 @@
<!-- refreshed: 2026-05-11 -->
# Architecture
**Analysis Date:** 2026-05-11
## System Overview
Reactive Resume is a single full-stack web application running as one Node.js process on port 3000. The web app is a TanStack Start application (Vite + React 19 + Nitro server) packaged in a pnpm/Turborepo monorepo. All API surface area, server-side rendering, file uploads, OAuth, OpenAPI, MCP, and PWA assets are served from the same process. Internal packages are consumed as TypeScript source through `package.json` `exports` maps that point directly at `src` files; there is no per-package `dist` output to depend on.
```text
┌────────────────────────────────────────────────────────────────────────────┐
│ Browser (React 19) │
│ TanStack Router · TanStack Query · Zustand stores · React PDF view │
│ `apps/web/src/router.tsx` · `apps/web/src/routes/__root.tsx` │
└──────────┬─────────────────────────────────────────────────────┬───────────┘
│ HTTP / SSR hydration │ /api/rpc (RPCLink)
▼ ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Nitro server entry (TanStack Start) │
│ `apps/web/src/server.ts` · Nitro plugins (`apps/web/plugins/`) │
├──────────────────────────┬─────────────────────────────────────────────────┤
│ File-based routes │ Route `server.handlers` blocks │
│ `apps/web/src/routes/*` │ `api/rpc.$.ts` · `api/auth.$.ts` · `api/health.ts`│
│ │ `api/openapi.$.ts` · `api/uploads/$userId.$.ts`│
│ │ `mcp/index.ts` · `[.]well-known/*` · `schema.json.ts`│
└──────────┬───────────────┴──────────────────────────────┬─────────────────┘
│ in-process router client │ HTTP handler
▼ ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ oRPC routers │
│ `packages/api/src/routers/{ai,auth,flags,resume,statistics,storage}.ts` │
│ Procedures: `publicProcedure` / `protectedProcedure` │
│ Middleware: `packages/api/src/middleware/rate-limit/index.ts` │
└──────────┬─────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Services & helpers │
│ `packages/api/src/services/{resume,ai,auth,storage,flags,statistics}.ts` │
│ `packages/api/src/helpers/{resume-access,resume-access-policy}.ts` │
│ `packages/api/src/services/resume-events.ts` (Postgres LISTEN/NOTIFY) │
│ `packages/auth/src/config.ts` (Better Auth) │
└──────────┬──────────────────────────────────────┬──────────────────────────┘
│ Drizzle ORM │ S3 / local FS
▼ ▼
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
│ PostgreSQL (via `pg`) │ │ Storage (S3 or `<workspace>/data`)│
│ `packages/db/src/client.ts` │ │ `packages/api/src/services/storage.ts`│
│ schema: `packages/db/src/schema/*`│ │ served by `routes/uploads/$userId.$.tsx`│
│ migrations: `migrations/` │ └──────────────────────────────────┘
└──────────────────────────────────┘
```
## Component Responsibilities
| Component | Responsibility | File |
|-----------|----------------|------|
| Web app shell | TanStack Start app, route tree, SSR/CSR boundary, PWA, builder UI | `apps/web/src/router.tsx`, `apps/web/src/routes/__root.tsx` |
| Server entry | Nitro fetch handler wrapping `react-start/server-entry` | `apps/web/src/server.ts` |
| Migration plugin | Walks up to repo root, runs Drizzle migrations on boot | `apps/web/plugins/1.migrate.ts` |
| Storage plugin | Validates `<workspace>/data` writability when S3 is unused | `apps/web/plugins/2.storage.ts` |
| oRPC router root | Aggregates all sub-routers exposed at `/api/rpc` and OpenAPI | `packages/api/src/routers/index.ts` |
| oRPC context | Header-based auth resolution, `publicProcedure`/`protectedProcedure` | `packages/api/src/context.ts` |
| Resume service | CRUD, patch (RFC 6902), password, lock, statistics, analysis, events | `packages/api/src/services/resume.ts` |
| Storage service | S3 + local FS abstraction, image processing via `sharp` | `packages/api/src/services/storage.ts` |
| Resume access policy | Owner/viewer/redaction rules for `getBySlug` and statistics | `packages/api/src/helpers/resume-access-policy.ts` |
| Resume events | Postgres `LISTEN/NOTIFY` channel for live updates | `packages/api/src/services/resume-events.ts` |
| Auth | Better Auth config, OAuth provider, passkey, 2FA, API keys, JWKS | `packages/auth/src/config.ts` |
| Database | Drizzle client singleton, schema, generated migrations | `packages/db/src/client.ts`, `packages/db/src/schema/*.ts`, `migrations/` |
| Schema | Zod resume/page/template models shared across web + API + PDF + MCP | `packages/schema/src/resume/data.ts`, `packages/schema/src/templates.ts` |
| PDF rendering | React PDF `Document`, font registration, 14 template implementations | `packages/pdf/src/document.tsx`, `packages/pdf/src/templates/index.ts`, `packages/pdf/src/hooks/use-register-fonts.ts` |
| Shared UI | Base UI / shadcn-style component library and hooks | `packages/ui/src/components/*.tsx`, `packages/ui/src/hooks/*.tsx` |
| MCP server | Model Context Protocol server backed by oRPC routers | `apps/web/src/routes/mcp/index.ts`, `apps/web/src/routes/mcp/-helpers/*` |
## Pattern Overview
**Overall:** Modular monolith. One deployable web app + a constellation of source-only TypeScript packages communicating through typed `package.json` `exports`. Browser ↔ server communication uses **oRPC** (typed RPC with REST/OpenAPI generation) instead of REST/tRPC. SSR and client share the same router/queryClient via TanStack Start.
**Key Characteristics:**
- Source-consumed workspace packages (no per-package `dist` build) keep types end-to-end.
- The oRPC router is mounted twice: as a Fetch handler at `/api/rpc` and as an in-process `createRouterClient` for SSR/server functions, with identical types on both paths.
- Browser-only code (React PDF preview, PDF.js, canvas) is isolated behind explicit `.browser.tsx` files and `ssr: false` / `ssr: "data-only"` route opts to keep SSR bundles small and safe.
- Postgres is both the data store and the event bus (`pg_notify` channel `resume_updated` for live builder sync).
- Shared concerns (auth, theme, locale, feature flags, oRPC client, query client) are loaded once and passed through TanStack Router `context` rather than fetched per-route.
## Layers
**Routes (`apps/web/src/routes/`):**
- Purpose: File-based TanStack Router routes; some are pure UI, others embed `server.handlers` blocks that act as HTTP endpoints.
- Location: `apps/web/src/routes/`
- Contains: Page components, route loaders, server-only API handlers, layout wrappers.
- Depends on: `packages/api/routers` (mounted at `/api/rpc`), `packages/auth/config` (mounted at `/api/auth`), `packages/db/client`, `packages/api/services/*`.
- Used by: TanStack Router (route tree is regenerated into `apps/web/src/routeTree.gen.ts`).
**oRPC API layer (`packages/api/src/routers/`):**
- Purpose: Public typed contract for the browser, in-process callers, and OpenAPI/MCP consumers.
- Location: `packages/api/src/routers/{ai,auth,flags,resume,statistics,storage}.ts`, aggregated in `packages/api/src/routers/index.ts`.
- Contains: Procedure definitions, Zod input/output schemas, REST metadata, rate-limit middleware bindings.
- Depends on: `packages/api/src/context.ts`, `packages/api/src/dto/*`, `packages/api/src/services/*`.
- Used by: `apps/web/src/routes/api/rpc.$.ts` (RPCHandler), `apps/web/src/routes/api/openapi.$.ts` (OpenAPIHandler), `apps/web/src/libs/orpc/client.ts` (isomorphic client), MCP tools in `apps/web/src/routes/mcp/-helpers/tools.ts`.
**Services / business logic (`packages/api/src/services/`):**
- Purpose: All cross-cutting business rules — resume CRUD, statistics, AI orchestration, storage, feature flags, auth helpers, event publishing.
- Location: `packages/api/src/services/*.ts`
- Contains: Side-effecting functions with explicit `userId`-style inputs. No request/response coupling.
- Depends on: `packages/db/client`, `packages/db/schema`, `packages/auth/config`, `packages/schema/resume/*`, `packages/utils/*`, `packages/email/transport`, AI SDKs.
- Used by: Routers, MCP helpers, the `/api/health` route.
**Persistence (`packages/db/`):**
- Purpose: Drizzle ORM client + schema definitions; the only place SQL is written.
- Location: `packages/db/src/client.ts`, `packages/db/src/schema/{auth,resume,index}.ts`, `packages/db/src/relations.ts`.
- Contains: Postgres `Pool` singleton (stored on `globalThis.__pool` to survive HMR), `drizzle()` client, table definitions, relations.
- Depends on: `pg`, `drizzle-orm`, `packages/env/server`.
- Migrations: Generated by `drizzle-kit` into the repo-root `migrations/` directory (see `packages/db/drizzle.config.ts`) and applied at startup by `apps/web/plugins/1.migrate.ts`.
**Auth (`packages/auth/`):**
- Purpose: Better Auth instance with email/password, OAuth (Google/GitHub/LinkedIn + generic), passkey, 2FA, API keys, JWKS, and a JWT-issuing OAuth provider for MCP clients.
- Location: `packages/auth/src/config.ts`, `packages/auth/src/functions.ts`, `packages/auth/src/types.ts`.
- Mounted at: `apps/web/src/routes/api/auth.$.ts` (delegates `request → auth.handler(request)` after sanitizing OAuth params).
- Verifies tokens for MCP at `apps/web/src/routes/mcp/index.ts` via `verifyOAuthToken`.
**PDF rendering (`packages/pdf/`):**
- Purpose: React PDF document and 14 visual templates (named after Pokémon).
- Location: `packages/pdf/src/document.tsx` mounts `getTemplatePage(template)`; templates live under `packages/pdf/src/templates/<name>/`.
- Shared template primitives: `packages/pdf/src/templates/shared/{filtering,rich-text,sections,primitives,picture,page-size,columns}.ts(x)`.
- Fonts: `packages/pdf/src/hooks/use-register-fonts.ts` owns React PDF font registration, standard PDF font handling, CJK fallback stacks, and global hyphenation.
- Consumed by: Web builder preview (`apps/web/src/components/resume/preview*.tsx`, `pdf-canvas.tsx`), public resume page (`apps/web/src/routes/$username/$slug.tsx`), and the OpenAPI `/resumes/{id}/download` procedure (`apps/web/src/routes/api/-helpers/resume-pdf.ts`).
**Shared schemas (`packages/schema/`):**
- Purpose: Zod source of truth for resume data, templates, page settings, and AI analysis.
- Location: `packages/schema/src/resume/{data,default,sample,analysis}.ts`, `packages/schema/src/templates.ts`, `packages/schema/src/page.ts`, `packages/schema/src/icons.ts`.
- Used by: API DTOs (`packages/api/src/dto/resume.ts`), DB column typing (`packages/db/src/schema/resume.ts`), import package, PDF rendering, web forms, MCP tool descriptions, and the public JSON schema at `/schema.json`.
**Shared UI (`packages/ui/`):**
- Purpose: Headless/styled component library (Base UI + shadcn-style) used by `apps/web`.
- Location: `packages/ui/src/components/*.tsx`, `packages/ui/src/hooks/*.tsx`.
- Examples: `dialog`, `dropdown-menu`, `command`, `resizable`, `sonner`, `tooltip`, `form`, `direction`.
- Styles: `packages/ui/src/styles/globals.css` (Tailwind v4 entry).
**Support packages:**
- `packages/utils` — small focused helpers (`color`, `date`, `field`, `file`, `html`, `level`, `locale`, `network-icons`, `rate-limit`, `sanitize`, `string`, `style`, `url`, plus Node-only `monorepo.node`, `url-security.node`, and `resume/{docx,patch}`).
- `packages/env` — `@t3-oss/env-core` server schema; `dotenv` loads the repo-root `.env` (`packages/env/src/server.ts`).
- `packages/email` — `nodemailer` transport + `react-email` templates (`packages/email/src/transport.ts`, `packages/email/src/templates/*.tsx`).
- `packages/import` — converters for JSON Resume, Reactive Resume v3/v4 JSON (`packages/import/src/*.tsx`).
- `packages/ai` — Zustand store, AI prompts (`packages/ai/src/prompts/*.md`), patch-resume tool, sanitize/extraction helpers consumed by the AI router.
- `packages/fonts` — generated Google Fonts metadata (`packages/fonts/src/webfontlist.json`, `packages/fonts/src/index.ts`).
- `packages/scripts` — repo-level scripts (`packages/scripts/database/reset.ts`, `packages/scripts/fonts/generate.ts`).
- `packages/config` — shared TypeScript/Vitest base configs (`packages/config/tsconfig.base.json`, `packages/config/vitest.config.ts`).
- `packages/runtime-externals` — declares `bcrypt`, `sharp`, `@aws-sdk/client-s3` so they remain runtime-only (externalized in `apps/web/vite.config.ts`).
## Data Flow
### Primary Request Path (browser RPC call)
1. Browser route uses `orpc.resume.getById.queryOptions(...)` from `apps/web/src/libs/orpc/client.ts:84` to fetch data.
2. The isomorphic oRPC client (`apps/web/src/libs/orpc/client.ts:28-47`) creates an `RPCLink` pointing at `${window.location.origin}/api/rpc` with `credentials: "include"` and a `BatchLinkPlugin`.
3. Request hits the file route `apps/web/src/routes/api/rpc.$.ts`, where `RPCHandler` (line 9) dispatches with `BatchHandlerPlugin`, `RequestHeadersPlugin`, and `StrictGetMethodPlugin`.
4. `publicProcedure` (`packages/api/src/context.ts:79`) resolves the user from headers (`x-api-key` → bearer JWT via JWKS → Better Auth session cookie).
5. `protectedProcedure` (`packages/api/src/context.ts:90`) rejects unauthenticated callers with `ORPCError("UNAUTHORIZED")`.
6. Router handler in `packages/api/src/routers/resume.ts` calls into `packages/api/src/services/resume.ts`, which queries Drizzle (`packages/db/src/client.ts:32`).
7. Response is serialized back through oRPC and consumed by TanStack Query / the route component.
### SSR / Server-Side Path
1. During SSR, `apps/web/src/libs/orpc/client.ts:13-27` short-circuits the HTTP path via `createRouterClient(router, { context: async () => ({ locale, reqHeaders }) })`.
2. The same `publicProcedure`/`protectedProcedure` middleware runs in-process — no socket hop — but still resolves auth from the original request headers via `getRequestHeaders()` from `@tanstack/react-start/server`.
3. Route loaders (e.g. `apps/web/src/routes/builder/$resumeId/route.tsx:39-44`) populate the query cache via `context.queryClient.ensureQueryData(orpc.resume.getById.queryOptions(...))`.
### Resume Live-Update Flow
1. `subscribe` procedure in `packages/api/src/routers/resume.ts:76` returns an async generator.
2. On any mutation, `packages/api/src/services/resume-events.ts:37` calls `pg_notify('resume_updated', JSON.stringify(event))`.
3. Subscribing clients receive `resume.updated` SSE-style events via oRPC streaming (`apps/web/src/libs/orpc/client.ts:51-82`, `streamClient`).
4. The builder route consumes them through `useResumeUpdateSubscription` (`apps/web/src/components/resume/builder-resume-draft.ts`).
### PDF Download Path
1. Web client requests `GET /api/openapi/resumes/{id}/download` (oRPC OpenAPI handler at `apps/web/src/routes/api/openapi.$.ts`).
2. `downloadResumePdfProcedure` in `apps/web/src/routes/api/-helpers/resume-pdf.ts` loads the resume, renders `ResumeDocument` from `packages/pdf/src/document.tsx`, persists to storage via `getStorageService()`, and returns/streams the PDF.
### Public Resume Path
1. `apps/web/src/routes/$username/$slug.tsx` uses `ssr: "data-only"` — server fetches `resume.getBySlug` but renders the React PDF preview only on the client.
2. `packages/api/src/helpers/resume-access-policy.ts` enforces visibility, redacts non-public fields, and throws `NEED_PASSWORD` for password-protected resumes (the route then redirects to `/auth/resume-password`).
**State Management:**
- Server cache: TanStack Query (`apps/web/src/libs/query/client.ts`) wrapped by oRPC's `createTanstackQueryUtils`.
- Local UI state: Zustand stores under `apps/web/src/routes/builder/$resumeId/-store/{section,sidebar}.ts`, `apps/web/src/dialogs/store.ts`, `apps/web/src/components/command-palette/store.ts`, `apps/web/src/components/resume/builder-resume-draft.ts`.
- Router context: `theme`, `locale`, `session`, `flags`, `queryClient`, `orpc` are computed once in `apps/web/src/router.tsx` (and again in the root route `beforeLoad`) and reused by descendants.
- Cookies: builder layout (`BUILDER_LAYOUT_COOKIE_NAME`), theme, and locale are persisted via `getCookie`/`setCookie` server functions.
## Key Abstractions
**oRPC procedures (`os.$context<ORPCContext>()`):**
- Purpose: Typed RPC procedures that double as REST endpoints and MCP tool surfaces.
- Examples: `publicProcedure` and `protectedProcedure` in `packages/api/src/context.ts:79`/`:90`.
- Pattern: `procedure.route({...openapi metadata}).input(zodSchema).use(rateLimitMiddleware).output(zodSchema).handler(async ({ context, input }) => ...)`.
**Drizzle tables:**
- Purpose: Strongly-typed Postgres schema; `.jsonb()` columns are typed against Zod-derived TypeScript (`ResumeData`, `StoredResumeAnalysis`).
- Examples: `packages/db/src/schema/resume.ts` (resume, resumeStatistics, resumeAnalysis), `packages/db/src/schema/auth.ts` (Better Auth tables).
- Pattern: `pg.pgTable("name", { ... }, (t) => [pg.index().on(...), pg.unique().on(...)])`.
**Template pages (React PDF):**
- Purpose: One `TemplatePage` component per visual template, mapped by name in `packages/pdf/src/templates/index.ts`.
- Examples: `packages/pdf/src/templates/azurill/AzurillPage.tsx`, `packages/pdf/src/templates/onyx/OnyxPage.tsx`.
- Pattern: `(props: { page: LayoutPage; pageIndex: number }) => JSX`, consuming `RenderProvider` from `packages/pdf/src/context.tsx`.
**Base UI components:**
- Purpose: Headless primitives styled with Tailwind v4 and exported as composable parts.
- Examples: `packages/ui/src/components/dialog.tsx`, `packages/ui/src/components/command.tsx`, `packages/ui/src/components/resizable.tsx`.
- Imported via deep paths: `import { Dialog } from "@reactive-resume/ui/components/dialog";`.
**TanStack Router file routes:**
- Purpose: Page components, loaders, and optional `server.handlers` blocks per file.
- Examples: `apps/web/src/routes/builder/$resumeId/route.tsx`, `apps/web/src/routes/api/rpc.$.ts`.
- Pattern: `export const Route = createFileRoute("/path")({ component, loader, beforeLoad, server: { handlers: { GET, POST } }, ssr });`.
## Entry Points
**Vite + Nitro build entry:**
- Location: `apps/web/vite.config.ts`
- Triggers: `pnpm dev`, `pnpm build`. Wires TanStack Start, Tailwind v4, Lingui (i18n), Nitro plugins, and the Vite PWA plugin.
- Externals: `bcrypt`, `sharp`, `@aws-sdk/client-s3` (declared in `packages/runtime-externals`).
**Server fetch entry:**
- Location: `apps/web/src/server.ts`
- Responsibilities: Wraps `@tanstack/react-start/server-entry` and substitutes `srvx`'s `FastResponse` as the global `Response`.
**Nitro startup plugins:**
- `apps/web/plugins/1.migrate.ts` — resolves the repo-root `migrations/` folder, opens its own `pg.Pool`, runs Drizzle migrations on boot, then closes the pool.
- `apps/web/plugins/2.storage.ts` — when S3 env vars are absent, ensures the local storage directory is writable before serving requests.
**Router entry:**
- Location: `apps/web/src/router.tsx`
- Responsibilities: Builds `queryClient`, loads `theme`/`locale`/`session`/`flags` in parallel, creates the TanStack Router with router context, registers SSR query integration.
**Root route:**
- Location: `apps/web/src/routes/__root.tsx`
- Responsibilities: HTML shell, providers (`I18nProvider`, `ThemeProvider`, `HotkeysProvider`, `DirectionProvider`, `TooltipProvider`, `ConfirmDialogProvider`, `PromptDialogProvider`), PWA head/scripts, `DialogManager`, `CommandPalette`, `Toaster`.
**HTTP endpoints (route `server.handlers`):**
- `apps/web/src/routes/api/rpc.$.ts` — `/api/rpc/*` oRPC handler (browser RPC).
- `apps/web/src/routes/api/auth.$.ts` — `/api/auth/*` Better Auth handler (with OAuth payload sanitization).
- `apps/web/src/routes/api/health.ts` — `/api/health` JSON probe (db + storage with timeouts).
- `apps/web/src/routes/api/openapi.$.ts` — `/api/openapi/*` OpenAPI handler + spec.
- `apps/web/src/routes/api/uploads/$userId.$.ts` and `apps/web/src/routes/uploads/$userId.$.tsx` — signed/etagged static file serving from storage.
- `apps/web/src/routes/mcp/index.ts` — `/mcp` Model Context Protocol server (OAuth-protected).
- `apps/web/src/routes/[.]well-known/*` — `/.well-known/oauth-authorization-server`, `/.well-known/oauth-protected-resource`, `/.well-known/openid-configuration`, `/.well-known/mcp` discovery documents.
- `apps/web/src/routes/schema[.]json.ts` — `/schema.json` public JSON Schema for `ResumeData`.
**Builder + public resume entry points:**
- `apps/web/src/routes/builder/$resumeId/route.tsx` — authenticated builder shell (header + resizable left/right sidebars + artboard outlet + assistant).
- `apps/web/src/routes/builder/$resumeId/index.tsx` — `ssr: false`; lazy-loaded `PreviewPage` running React PDF/canvas only in the browser.
- `apps/web/src/routes/$username/$slug.tsx` — `ssr: "data-only"`; public/shared resume view (with password gating via `NEED_PASSWORD` ORPCError).
## Architectural Constraints
- **Single Node process:** Everything (web, oRPC, auth, MCP, OpenAPI, file serving) runs in one Node 24 process on port 3000. No separate API service.
- **Source-only workspace packages:** `package.json` `exports` point at `src/*.ts(x)`; do not assume `dist` output exists. The Vite build externalizes `bcrypt`, `sharp`, `@aws-sdk/client-s3` (`apps/web/vite.config.ts:55`).
- **Globals on `globalThis` for DB pool:** `packages/db/src/client.ts:8-11` caches the `pg.Pool` and Drizzle client on `globalThis.__pool` / `globalThis.__drizzle` to survive HMR reloads.
- **Browser-only PDF rendering:** PDF.js, `@react-pdf/renderer` canvas, and the builder preview must stay off the SSR path. Use `.browser.tsx` suffix files and `ssr: false` (builder preview) or `ssr: "data-only"` (public resume).
- **Generated route tree:** `apps/web/src/routeTree.gen.ts` is regenerated by TanStack Router tooling; never edit by hand.
- **Migrations folder location:** `drizzle-kit` writes to `../../migrations` from `packages/db/drizzle.config.ts`, so all migration directories live at the repo root, not inside the package.
- **DATABASE_URL not auto-loaded for drizzle-kit:** `pnpm db:migrate` / `pnpm db:generate` require `DATABASE_URL` exported in the shell; only the runtime Node code loads `.env` via `packages/env/src/server.ts`.
- **Rate limiting is production-only:** `packages/api/src/middleware/rate-limit/index.ts:5` and the Better Auth config gate rate limits on `process.env.NODE_ENV === "production"`.
- **OAuth audience binding:** `verifyOAuthToken` (`packages/auth/src/config.ts:40`) only accepts JWTs whose `aud` matches `${APP_URL}` (with/without trailing slash) or `${APP_URL}/mcp`.
- **Postgres LISTEN/NOTIFY coupling:** Live resume updates depend on a single shared `pg.Pool` (`packages/db/src/client.ts:13`); scaling beyond one process requires replacing `pg_notify` with a broker.
## Anti-Patterns
### Ad-hoc fetching of router context
**What happens:** Components separately calling `getSession()`, `getTheme()`, or `getLocale()` instead of reading them from TanStack Router context.
**Why it's wrong:** The root route's `beforeLoad` already loads these in parallel (`apps/web/src/routes/__root.tsx:82-93`) and exposes them via `Route.useRouteContext()`; duplicating the calls causes extra round-trips during SSR and triggers locale reloads.
**Do this instead:** Use `Route.useRouteContext()` or read from a parent route loader, as `apps/web/src/routes/__root.tsx:101` does for theme/locale.
### Direct DB or storage imports in client code
**What happens:** Importing `@reactive-resume/db/client` or `@reactive-resume/api/services/storage` from a non-route component.
**Why it's wrong:** Pulls `pg`, `sharp`, `bcrypt`, `@aws-sdk/client-s3` into the client bundle (which Vite externalizes — the build will fail or break at runtime).
**Do this instead:** Call the corresponding oRPC procedure from `packages/api/src/routers/*`. Server-only imports belong inside route `server.handlers` blocks or `.server.tsx` files like `apps/web/src/libs/resume/pdf-document.server.tsx`.
### PDF/canvas code in shared modules
**What happens:** Importing `@react-pdf/renderer` or PDF.js from a file that participates in SSR.
**Why it's wrong:** These libraries crash under Node SSR (canvas/DOM dependencies).
**Do this instead:** Keep browser code in `*.browser.tsx` / `pdf-canvas.tsx` and gate with `ssr: false` (e.g. `apps/web/src/routes/builder/$resumeId/index.tsx:6`) or `ssr: "data-only"` (e.g. `apps/web/src/routes/$username/$slug.tsx:40`).
### Bypassing the resume access policy
**What happens:** Reading resume rows directly from Drizzle in a public procedure without applying redaction.
**Why it's wrong:** Leaks owner-only fields (password hash, private flags, statistics) and breaks the password-gate flow that depends on `NEED_PASSWORD` errors.
**Do this instead:** Route through `packages/api/src/helpers/resume-access-policy.ts` (`assertCanView`, `redactResumeForViewer`, `shouldCountForStatistics`) as `packages/api/src/services/resume.ts` does.
### Hand-editing generated files
**What happens:** Modifying `apps/web/src/routeTree.gen.ts` or migration SQL after Drizzle writes it.
**Why it's wrong:** Edits are overwritten on the next `tanstack-router` regen or migration; data drift between snapshots and SQL breaks future migrations.
**Do this instead:** Add a route file under `apps/web/src/routes/`, or change the Drizzle schema in `packages/db/src/schema/*.ts` and run `pnpm db:generate`.
## Error Handling
**Strategy:** Typed errors via `ORPCError` codes; HTTP responses for low-level handlers; route-level `defaultErrorComponent` and `onError` for UI fallbacks.
**Patterns:**
- Procedures throw `ORPCError("UNAUTHORIZED"|"NOT_FOUND"|"NEED_PASSWORD"|...)` or use `.errors({ ... })` to declare typed application errors (e.g. `RESUME_SLUG_ALREADY_EXISTS`, `RESUME_VERSION_CONFLICT` in `packages/api/src/routers/resume.ts`).
- The OAuth bearer / API key / session resolvers in `packages/api/src/context.ts:14-55` swallow verification errors and log via `console.warn` so unauthenticated requests fall through to the next strategy.
- `apps/web/src/routes/api/rpc.$.ts` and `apps/web/src/routes/api/openapi.$.ts` install `onError` interceptors that log every server error with a tag (`[oRPC Server]`, `[OpenAPI]`).
- Route-level `onError` (e.g. `apps/web/src/routes/$username/$slug.tsx:24`) translates `NEED_PASSWORD` into a redirect.
- Top-level UI fallbacks: `apps/web/src/components/layout/error-screen.tsx`, `loading-screen.tsx`, `not-found-screen.tsx` (wired in `apps/web/src/router.tsx:30-32`).
- Healthcheck uses a 1.5s timeout helper (`apps/web/src/routes/api/health.ts:22-34`) so a stuck dependency cannot stall the probe.
## Cross-Cutting Concerns
**Logging:** `console.info`/`console.warn`/`console.error` with bracketed prefixes (e.g. `[oRPC Server]`, `[Healthcheck]`, `[oRPC client]`). No external log shipping is wired.
**Validation:** Zod 4 everywhere — Drizzle column types (`packages/db/src/schema/resume.ts`), oRPC input/output schemas, AI tool inputs, environment variables (`packages/env/src/server.ts`), and the public `/schema.json` route.
**Authentication:** Better Auth in `packages/auth/src/config.ts` (Drizzle adapter, email/password + OAuth + passkey + 2FA + admin + API keys + JWT + generic OAuth + dynamic client registration + custom `oauthProvider` for MCP). The unified resolver in `packages/api/src/context.ts:64` is the only place that decides which credential wins.
**Internationalization:** Lingui — `apps/web/lingui.config.ts`, `apps/web/locales/*.po`, `apps/web/src/libs/locale.ts`, RTL toggling in `__root.tsx`.
**Theming:** `apps/web/src/libs/theme.ts` (cookie-backed), `apps/web/src/components/theme/provider.tsx` (`next-themes`).
**Rate limiting:** `@orpc/experimental-ratelimit` with an in-memory ratelimiter from `packages/api/src/middleware/rate-limit/index.ts`. Trusted IP headers come from `packages/utils/src/rate-limit.ts`.
**Feature flags:** Server-resolved at boot (`packages/api/src/routers/flags.ts` and `packages/api/src/services/flags.ts`), then carried in router context via `apps/web/src/router.tsx:20`.
---
*Architecture analysis: 2026-05-11*
+393
View File
@@ -0,0 +1,393 @@
# Codebase Concerns
**Analysis Date:** 2026-05-11
## TODO / FIXME / HACK / XXX Comments
A repo-wide grep for `TODO`, `FIXME`, `HACK`, and `XXX` markers across `apps/web/src/**` and `packages/**` returned **zero hits** in source code. The team appears to track follow-ups in PRs/issues rather than inline. Two referenced issues remain anchored in inline comments:
- `packages/pdf/src/hooks/use-register-fonts.ts:22` — references issue `#2986` (CJK glyph-level font fallback).
- `packages/pdf/src/hooks/use-register-fonts.ts:103` — references issue `#2986` again for CJK textkit substitution.
These are stable design references, not unresolved debt — included for traceability only.
The remaining inline-comment "concerns" found during exploration sit in the **Anti-debt narrative** below, derived from code shape rather than comment markers.
---
## High Severity
### Security: SMTP-disabled fallback logs full email bodies (incl. verification/reset links)
When `SMTP_HOST` / `SMTP_USER` / `SMTP_PASS` / `SMTP_FROM` are not all set, the email transport logs the entire payload — including `text` and `html` bodies — to `stdout`.
- File: `packages/email/src/transport.ts:59-66`
```ts
console.info("SMTP not configured; skipping email send.", {
to: payload.to,
subject: payload.subject,
text: payload.text,
html: payload.html,
});
```
**Impact:**
- Password reset, email verification, and email-change confirmation URLs (which are credential-equivalent bearer tokens) are written to server logs whenever SMTP is not fully configured.
- In any shared-log / log-shipping environment (Docker, Kubernetes, journald, cloud logging) this is a credential leak.
- The README and `AGENTS.md:101` describe this as a dev convenience; nothing prevents an operator from running production with partial SMTP config.
**Fix approach:**
1. Add a server-startup assertion that, if `NODE_ENV === "production"`, `isSmtpEnabled()` must be true.
2. Redact `text` / `html` from the `console.info` call — log only `to` and `subject`.
3. Document the production SMTP requirement in `.env.example` alongside `AUTH_SECRET`.
### Security: rate limiting is silently disabled in non-production
Both the oRPC rate-limit middleware and Better Auth's rate-limit config gate on `process.env.NODE_ENV === "production"`. Anything that does not set `NODE_ENV=production` at runtime (default `node` invocation, custom Docker entrypoints that forget to set it, self-hosters running `pnpm start` without `NODE_ENV`) runs with **all rate limiting disabled**, including:
- `/sign-in/email`, `/sign-up/email`, password-reset, OAuth `register`/`authorize`/`token` (`packages/auth/src/config.ts:30, :69-78, :249-251, :388-390`)
- Resume password verification, AI calls, PDF export, storage uploads/deletes, resume mutations (`packages/api/src/middleware/rate-limit/index.ts:5, :75`)
**Impact:** brute-force-friendly. A self-hosted deployment that omits `NODE_ENV=production` is wide open on auth and resume-password endpoints.
**Fix approach:**
- Either default `isRateLimitEnabled = true` and provide a `RATE_LIMIT_DISABLED` opt-out env var, or assert `NODE_ENV === "production"` at boot when not running tests.
### Security: rate limiter is in-process memory only — broken under horizontal scaling
`MemoryRatelimiter` is used for every oRPC rate limit (`packages/api/src/middleware/rate-limit/index.ts:59-66`). Better Auth's `rateLimit` and `apiKey.rateLimit` blocks (`packages/auth/src/config.ts:248-251, :387-391`) similarly do not configure a distributed store.
**Impact:** Running >1 Node instance behind a load balancer multiplies the effective rate limit by the instance count. Brute-force attacks bypass the limit by retrying until they hit a different replica.
**Fix approach:** Swap `MemoryRatelimiter` for a Redis-backed ratelimiter (the package supports it via `@orpc/experimental-ratelimit`) once a redis dependency is acceptable. Until then, document the single-instance constraint in the deployment docs.
### Security: file upload accepts arbitrary MIME with image processing disabled
`uploadFile` (`packages/api/src/routers/storage.ts:42-71`) only runs the sharp image-processing pipeline for files where `isImageFile(file.type)` returns true based on the **client-supplied `file.type`**, and even that pipeline is skipped if `FLAG_DISABLE_IMAGE_PROCESSING=true` (`packages/api/src/services/storage.ts:96-101`).
**Impact:**
- A client can claim `content-type: text/html` (or any non-image MIME) on a 10 MB upload, and the file is stored verbatim into `uploads/{userId}/pictures/...` with the user-claimed content type.
- Served back from `apps/web/src/routes/uploads/$userId.$.tsx`. `X-Content-Type-Options: nosniff` is set (`:159`) and the storage route forces `application/octet-stream` only for `.pdf` (`:39, :148-153`), so a stored HTML body could be served as HTML if the inferred extension matches. The picture key always ends in `.jpeg` (`storage.ts:60`), which mitigates this in the picture path, but there is no MIME allow-list enforced at upload time.
- With `FLAG_DISABLE_IMAGE_PROCESSING` on, the same applies to genuine images (no resize/strip-metadata path), so EXIF data is preserved unredacted.
**Fix approach:**
1. Add a strict allow-list at the router boundary (`packages/api/src/routers/storage.ts:9`) — `z.file().mime(["image/png", "image/jpeg", "image/webp", "image/gif"])` plus magic-byte validation.
2. Reject upload if claimed MIME does not match the sharp-detected MIME; do not fall back to client claim.
3. Surface a startup warning when `FLAG_DISABLE_IMAGE_PROCESSING=true` so it is not enabled in production unknowingly.
### Tech Debt: web app has near-zero test coverage
- `apps/web/src` has **11 test files** across **~224 source files** (~5%) — `find apps/web/src -name "*.test.*"`.
- `apps/web/src/routes` has **1 test file** across **125 route files** (`apps/web/src/routes/builder/$resumeId/-components/donation-toast.test.tsx`).
- Total repo: ~93 test files / ~385 source files (~24%). Most coverage lives in `packages/ui`, `packages/utils`, `packages/pdf/src/templates/shared`, and `packages/api` (5 tests).
**Impact:**
- Refactors to routes, builder shell, sidebar forms, resume preview wiring, MCP tools, and uploads handler land without a regression net.
- Particularly thin: `apps/web/src/routes/api/**` (rpc, auth, openapi, mcp, uploads) and `apps/web/src/routes/builder/$resumeId/**`.
**Fix approach:** Phase-by-phase, add server-handler integration tests for `api/health.ts`, `api/auth.$.ts` (registration-validation path), `uploads/$userId.$.tsx` (path traversal), and at least smoke tests around the builder store in `apps/web/src/components/resume/builder-resume-draft.ts`.
---
## Medium Severity
### Fragile: PDF.js / canvas SSR boundary is enforced by convention only
The SSR/CSR split for the resume preview is hand-maintained:
- `apps/web/src/components/resume/preview.tsx:14` returns `null` until `useIsClient()` resolves and then lazy-loads the browser bundle.
- `apps/web/src/components/resume/preview.browser.tsx:2` imports `@react-pdf/renderer` (`pdf`).
- `apps/web/src/components/resume/pdf-canvas.tsx:1, :4, :9` imports PDF.js types/runtime and sets a module-level `GlobalWorkerOptions.workerSrc`.
- `apps/web/src/routes/templates/$.tsx:1` imports `PDFViewer` at the **top level** but the route component itself bails on `!isClient`. Top-level import means the bundle reaches the SSR chunk; correctness relies on the import being tree-shaken away when SSR runs.
- `apps/web/src/routes/dashboard/resumes/-components/cards/resume-thumbnail.tsx` uses dynamic `await import("pdfjs-dist")` — a different convention from `pdf-canvas.tsx`'s static import.
- SSR mode hints: `apps/web/src/routes/builder/$resumeId/index.tsx:4` (`ssr: false`), `apps/web/src/routes/$username/$slug.tsx` (`ssr: "data-only"`).
**Impact:** A future contributor adding a static PDF.js import inside a SSR-rendered route component will break SSR with a `window is not defined` error at build/run time. There is no lint rule or build-time guard enforcing this.
**Fix approach:**
1. Document the boundary explicitly at the top of `apps/web/src/components/resume/preview.tsx` and `pdf-canvas.tsx` (currently only described in `AGENTS.md:35`).
2. Consider a Vite SSR-externals config that aborts the build if `pdfjs-dist` / `@react-pdf/renderer` is reachable from an SSR-eligible route.
3. Switch `apps/web/src/routes/templates/$.tsx:1` to a dynamic `import("@react-pdf/renderer")` inside the `useIsClient()` branch for consistency with the rest of the preview pipeline.
### Fragile: `getStorageService()` is captured at module load in router
`packages/api/src/routers/storage.ts:7` calls `getStorageService()` at module top level. Because `apps/web/src/routes/api/rpc.$.ts` constructs a new `RPCHandler` on every request, the router's storage reference is fixed for the lifetime of the Node process.
**Impact:** Switching backends (e.g. flipping S3 vars on at runtime) requires a process restart, which is normally fine — but the singleton is also held inside Nitro's HMR boundary in dev, so config changes during `pnpm dev` need a full restart (not just a save).
**Fix approach:** Call `getStorageService()` inside each handler instead, or invalidate the cached service when env values change.
### Fragile: `RPCHandler` instantiated per-request
`apps/web/src/routes/api/rpc.$.ts:8-16` creates a new `RPCHandler` (with plugins) for every incoming request. Each instance re-walks the router tree and re-constructs plugin pipelines.
**Impact:** Measurable per-request cost on high-RPS dashboards; not catastrophic but unnecessary.
**Fix approach:** Move `new RPCHandler(...)` out of the handler and reuse a module-level instance; only `getLocale()` should run per-request.
### Performance: PDF preview regenerates entire PDF on every change
`apps/web/src/components/resume/preview.browser.tsx:103-131` debounces PDF generation by 100ms and calls `pdf(resumeDocument).toBlob()` on every resume change. For multi-page resumes with images, this re-renders the full document and re-loads it into PDF.js.
**Impact:** Builder feels sluggish on slower hardware when typing into fields; CPU spikes on each keystroke after debounce.
**Mitigation in place:** `UPDATE_DEBOUNCE_MS = 100`, crossfade between staged/active layers (`:20-80`).
**Fix approach:** Long-term, switch to incremental rendering or page-level memoization keyed by section hash. Short-term, raise debounce to 200–300 ms while typing.
### Performance: font registration cost
`packages/pdf/src/hooks/use-register-fonts.ts:18, :86` keeps a module-level `registeredFontVariants` Set keyed by `family:weight:style`. Per-resume registration calls `Font.register` once per (family × weight × italic × CJK-fallback) combination, with web-font fetches resolved through `getWebFontSource`. This Set never expires — if many resumes with different typography are previewed in one session, the registered-font count grows for the page lifetime.
**Impact:** Memory grows in the builder for sessions that switch typography frequently. Not a leak in the GC sense, but bounded only by the size of the registered-font universe.
**Fix approach:** Acceptable for current usage. Document the cap and reconsider if typography switching becomes more common.
### Performance: large source files hint at oversized modules
Top offenders by line count (excluding generated/test fixtures):
| Lines | File |
|------:|------|
| 1535 | `packages/schema/src/icons.ts` (static data) |
| 1088 | `apps/web/src/routes/builder/$resumeId/-components/assistant.tsx` |
| 900 | `packages/pdf/src/templates/shared/sections.tsx` |
| 789 | `apps/web/src/components/input/rich-input.tsx` |
| 785 | `packages/import/src/reactive-resume-v4-json.tsx` |
| 685 | `packages/ui/src/components/sidebar.tsx` |
| 556 | `apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx` |
| 543 | `packages/api/src/services/resume.ts` |
`assistant.tsx` (1088 lines) and `sections.tsx` (900 lines) are particularly likely to accumulate further complexity without splitting. `rich-input.tsx` (789 lines) is the rich-text editor — likely justifies its size but has zero direct tests.
**Fix approach:** Split `assistant.tsx` along tool boundaries; extract per-section renderers from `sections.tsx` if any individual section grows further.
### Security: `verifyPassword` rate limit keyed by `username:slug:ip`
`packages/api/src/middleware/rate-limit/index.ts:77-83` keys the resume-password limiter on `resume-password:{username}:{slug}:{clientKey}` where `clientKey` is the client IP. The window/max is 5 attempts per 10 minutes (`packages/utils/src/rate-limit.ts:43`). This is reasonable, but the global Better Auth global rule for `/two-factor/verify-otp` is also 5 per 600s. An attacker on a botnet (different IPs) is not blocked at the resource level — each IP gets its own 5/10min budget against the same resume.
**Impact:** Limited but present brute-force surface on password-protected public resumes.
**Fix approach:** Add a per-resume global cap on top of the per-IP limit (e.g. 50/hour per `username:slug` regardless of IP).
### Security: `as string` cast on password hash
`packages/api/src/services/resume.ts:487` casts `resume.password` to `string` after a `isNotNull(schema.resume.password)` WHERE clause. The cast is correct in context, but if a future refactor drops the `isNotNull` guard the cast silently allows `null` through `bcrypt.compare`.
**Fix approach:** Replace `as string` with a runtime `if (!resume.password) throw new ORPCError(...)` check.
### Security: trust of `TRUSTED_IP_HEADERS` is unconditional
`packages/utils/src/rate-limit.ts:1-7` defines a list of trusted IP headers (`CF-Connecting-IP`, `True-Client-IP`, `X-Forwarded-For`, etc.) that the rate limiter and Better Auth (`packages/auth/src/config.ts:276`) honour from any caller.
**Impact:** If the app is deployed without a proxy that strips client-supplied versions of these headers, any client can spoof their rate-limit identity by setting `X-Forwarded-For: 1.2.3.4`.
**Fix approach:** Document that operators **must** terminate at a trusted proxy (Cloudflare, nginx, Caddy) that strips inbound `X-Forwarded-For` / `X-Real-IP`. Optionally, add a `TRUST_PROXY` env flag and only honour those headers when set.
### Fragile: `cachedTransport` in `email/transport.ts` ignores env mutation
`packages/email/src/transport.ts:21-37` caches the nodemailer transport on first use. If SMTP creds change at runtime (e.g. credential rotation in a deployed instance), the cached transport keeps using the stale credentials until the process restarts.
**Fix approach:** Detect cred changes and rebuild, or document the restart-on-rotation behaviour.
### Storage gotcha: statistics cache is filesystem-bound even with S3 configured
`packages/api/src/services/statistics.ts:21-52` caches user/resume/star counts as files in `getLocalDataDirectory(env.LOCAL_STORAGE_PATH)` regardless of whether S3 is enabled.
**Impact:** When S3 is configured and `LOCAL_STORAGE_PATH` is on ephemeral storage (e.g. container scratch), the cache is recreated on every redeploy — meaning a cold start always queries the DB / GitHub API rather than re-using the cache. Also breaks horizontal scaling — each replica has its own cache file.
**Fix approach:** Cache via the configured storage service (`getStorageService`) instead of raw `fs`, or move to an in-memory + TTL cache.
---
## Low Severity
### Tech Debt: generated file you must not edit
`apps/web/src/routeTree.gen.ts` (983 lines, `eslint-disable`, `@ts-nocheck` at top) is auto-generated by TanStack Router. It is correctly excluded from Biome (`biome.json:14`) and noted in `AGENTS.md:31`.
**Action required of contributors:** Never hand-edit. Regenerate by running `pnpm dev` (TanStack tooling watches `apps/web/src/routes/**`).
### Tech Debt: dev workflow — `pnpm check` is write-capable
`package.json:20` defines `"check": "biome check --write --unsafe ."`. Running `pnpm check` will modify files. The lefthook pre-commit (`lefthook.yml:7-9`) runs the same command on staged files only, and `stage_fixed: true` re-stages them.
**Impact:** Surprise file modifications when a contributor runs `pnpm check` expecting a non-mutating audit.
**Fix approach:** Add a parallel `pnpm check:ci` (no `--write`) for inspection, and document the distinction (already covered in `AGENTS.md:103`).
### Tech Debt: dev gotcha — `drizzle-kit` does not auto-load `.env`
`packages/db/drizzle.config.ts:8` reads `process.env.DATABASE_URL || ""`. The `@reactive-resume/env` package auto-loads `.env` via dotenv (`packages/env/src/server.ts:9-11`), but `drizzle-kit` runs as a separate process that does not import `@reactive-resume/env`.
**Impact:** Fresh `pnpm db:migrate` silently fails with an empty connection string unless `DATABASE_URL` is exported in the shell. Documented in `AGENTS.md:58, :79-80`.
**Fix approach:** Either import the env package from `drizzle.config.ts` to inherit the `.env` load, or wrap the script with a one-liner that exports `DATABASE_URL`.
### Tech Debt: Nitro plugin auto-runs migrations on dev/prod boot
`apps/web/plugins/1.migrate.ts:23-40` runs migrations on every Nitro startup. This is convenient but couples app-boot health to migration health.
**Impact:**
- A bad migration takes down the whole web service on boot, not just future migration runs.
- Two app instances starting concurrently both call `migrate()`; Drizzle's `migrations` table uses transactions to avoid duplicate apply, but the race adds startup latency.
- For prod self-hosters, there is no "boot-without-migrate" knob.
**Fix approach:** Gate on an env flag (e.g. `RUN_MIGRATIONS_ON_BOOT=true`, default true) and document running `pnpm db:migrate` separately in zero-downtime deploys.
### Tech Debt: S3 toggle is all-or-nothing
`packages/api/src/services/storage.ts:336` and `apps/web/plugins/2.storage.ts:7`: storage backend selection requires all three of `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET` to be set. Setting two of three silently falls back to local storage.
**Impact:** Operator misconfigures S3 (e.g. forgets `S3_BUCKET`), app silently writes to local FS — uploads disappear on next container restart on ephemeral disks.
**Fix approach:** Treat "any S3 var set" as "S3 intended" — throw on partial config rather than silently downgrading.
### Security: no global CSP / X-Frame-Options on HTML responses
A repo-wide grep for `Content-Security-Policy`, `X-Frame-Options`, `Strict-Transport-Security` finds them only in the uploads route (`apps/web/src/routes/uploads/$userId.$.tsx:159-165`) and the schema JSON route (`apps/web/src/routes/schema[.]json.ts`). The HTML shell (`apps/web/src/routes/__root.tsx`) sets no CSP, no HSTS, no `Permissions-Policy`, no `Referrer-Policy`.
**Impact:**
- No clickjacking protection on the resume builder or public resume pages — they can be framed by any origin.
- No CSP means an XSS through rich-text rendering (`packages/utils/src/sanitize.*`, `packages/pdf/src/templates/shared/rich-text-html.ts`) has no defence-in-depth.
**Fix approach:** Add a Nitro response hook that sets `Content-Security-Policy`, `Strict-Transport-Security`, `Referrer-Policy: strict-origin-when-cross-origin`, `X-Content-Type-Options: nosniff`, and `X-Frame-Options: SAMEORIGIN` on all HTML responses. Validate that the CSP allows `pdf.worker.min.mjs`, `@react-pdf/renderer` font fetches, and the configured S3/SeaweedFS origin.
### Security: OAuth dynamic-client registration allows unauthenticated callers
`packages/auth/src/config.ts:395-401` enables `allowDynamicClientRegistration: true` and `allowUnauthenticatedClientRegistration: true` on the oauthProvider plugin. The comment (`:397-399`) explicitly states this is required for MCP onboarding (RFC 7591) and that the phishing vector is closed by the redirect-URI allowlist in `hooks.before` (`:253-271`) and `apps/web/src/routes/api/auth.$.ts:97-111`.
**Impact:** Anyone can register an OAuth client. The protection depends entirely on the redirect-URI allowlist correctness in `parseAllowedHostList(env.OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS)` and `isAllowedOAuthRedirectUri`.
**Fix approach:** Already mitigated in code; the residual risk is operator misconfiguration of `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS`. Add a startup warning when `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS` is empty (i.e. allowlist is APP_URL-only).
### Tech Debt: log noise on auth fallthrough
`packages/api/src/context.ts:25, :37, :53` calls `console.warn` for every failed Bearer / session / API-key validation. In an unauthenticated user flow that hits the same route via Bearer-not-present → session-cookie path, no warning fires, but in an actual token-mismatch path the warning fires on every request.
**Impact:** Log volume in production when API keys expire or rotate. Logs may leak token shape information indirectly via repeated warnings.
**Fix approach:** Drop to `console.debug` (which is no-op in default Node), or rate-limit the warning per token-hash.
### Tech Debt: `getStorageService()` cached service singleton in module-load order
`packages/api/src/services/storage.ts:343-350` caches the service at first call. Combined with the `packages/api/src/routers/storage.ts:7` top-level call, if storage env vars are not present at module-load time (e.g. `.env` not loaded yet) the local backend is wired in permanently for the process.
**Fix approach:** Lazy-validate env on first use, not at module load.
### Anti-pattern: empty catch swallows preview generation errors
`apps/web/src/components/resume/preview.browser.tsx:120`:
```ts
} catch {}
```
A failed PDF generation in the builder preview is silently swallowed. The crossfade machinery keeps showing the previous preview, masking template bugs or runtime errors from contributors during development.
**Fix approach:** At minimum, `console.error` the failure (matching the pattern used in `pdf-canvas.tsx:68`). Better: surface a toast or banner so failed-preview state is visible.
### Anti-pattern: `console.warn`/`error` lacks structure
Every error log in `packages/api/src` uses `console.warn`/`console.error` with positional args (e.g. `services/resume.ts:158, :293, :363`, `context.ts:25, :37, :53`). There is no centralised logger, no structured fields, no request correlation ID.
**Fix approach:** Introduce a minimal logger (pino-light or a thin wrapper) with `level`, `event`, `userId`, `requestId` fields. Already partly done in the healthcheck (`apps/web/src/routes/api/health.ts:65, "[Healthcheck]"`).
### Fragile: in-process pub/sub for resume update events
`packages/api/src/services/resume-events.ts` (the subscribe path consumed by `packages/api/src/routers/resume.ts:99-103`'s `subscribeResumeUpdates`) is in-process. Two web replicas will not see each other's resume update events.
**Impact:** Multi-tab / multi-device builder sync across replicas does not work behind a load balancer.
**Fix approach:** Redis pub/sub or Postgres `LISTEN/NOTIFY` once distributed deployment becomes a target.
---
## Migration & Schema Concerns
### Migration count is small but each is unversioned in app
- 13 migration files in `migrations/` (`migrations/20260114102228_*` through `migrations/20260507144406_*`).
- The Nitro plugin runs every pending migration on every boot (`apps/web/plugins/1.migrate.ts:23-40`).
- There is no "down" / rollback story. Drizzle-kit generates forward-only migrations.
**Action:** Standard for drizzle workflows. Document that downgrade requires manual SQL.
### Schema notes
- `packages/db/src/schema/resume.ts:24` stores `password` as plaintext column type `text`, but content is always bcrypt-hashed at write (`packages/api/src/services/resume.ts:453`). Column name is misleading — should be `password_hash`. Renaming requires a non-trivial migration.
---
## Dependency Risk
### Pre-1.0 / preview dependencies in production critical path
| Package | Version | Risk |
|---|---|---|
| `drizzle-orm` | `1.0.0-beta.22` | Beta. Breaking changes possible until 1.0.0 stable. (`packages/api/package.json`, `packages/auth/package.json`, `packages/db/package.json`, `apps/web/package.json`) |
| `drizzle-kit` | `1.0.0-beta.22` | Beta migrator. Snapshot format may change. (`packages/db/package.json`) |
| `drizzle-zod` | `1.0.0-beta.14-a36c63d` | Beta + specific commit hash — version drift risk. (`packages/api/package.json`) |
| `nitro` | `3.0.260429-beta` | Beta server runtime in the critical path. (`apps/web/package.json`) |
| `@typescript/native-preview` | `7.0.0-dev.20260510.1` | Dev build of `tsgo`. All packages use it for `typecheck`. |
| `typescript` | `^6.0.3` | TS 6 — recent major. |
| `vite` | `^8.0.11` | Vite 8 — recent major. |
| `react` / `react-dom` | `^19.2.6` | React 19. |
| `@orpc/experimental-ratelimit` | `^1.14.2` | Explicitly experimental in the package name. (`packages/api/package.json`) |
| `@tanstack/react-start` | `^1.167.65` | TanStack Start is pre-1.x semver but not labelled beta. |
| `better-auth` | `1.6.10` (exact) | Pinned exact, not `^`. Manual upgrade required for security patches. |
**Impact:** Library upgrades in this stack are high-risk; the team must follow each upstream's release notes closely. The `BETA` / `DEV` versions also affect lockfile churn.
**Fix approach:**
- Set up Renovate / Dependabot for the beta packages specifically, so security patches are caught.
- Run `pnpm knip` and `pnpm dlx npm-check-updates` regularly (both are devDependencies, `package.json:34, :40`).
### Several heavy native dependencies are externalised at build time
`apps/web/vite.config.ts:55-57` externals `bcrypt`, `sharp`, `@aws-sdk/client-s3`. `packages/runtime-externals` is the workspace package that wraps these. Knip is configured to ignore them (`knip.json:14`).
**Risk:** Operators must ensure these are installed at runtime (covered in `Dockerfile`). Self-hosters using a Node base image without build-essentials may hit `bcrypt` build failures.
**Fix approach:** Mostly documented; consider switching `bcrypt` → `bcryptjs` (pure JS) to remove a build dependency.
---
## Cross-Cutting Hard-to-Find Logic
These are non-obvious surfaces that consumers of this map should know about before changing related code:
1. **PDF section filtering** — `packages/pdf/src/templates/shared/filtering.ts:25-60` decides which resume sections render in PDFs based on hidden flags and required title fields. Per-template visual exceptions live in each template directory; cross-template visual changes go here. Noted in `AGENTS.md:44`.
2. **React-PDF font registration & CJK fallback stack** — `packages/pdf/src/hooks/use-register-fonts.ts:68-133`. Owns standard-PDF-font handling (`isStandardPdfFontFamily`), CJK glyph-level fallback (#2986), and global hyphenation callback. Module-level registration cache (`:18`). Noted in `AGENTS.md:45`.
3. **Resume access policy** — `packages/api/src/helpers/resume-access-policy.ts`. Single source of truth for owner-vs-viewer redaction (`name` and `metadata.notes` stripped for non-owners), `NOT_FOUND`-vs-`FORBIDDEN` choice (not-found used to avoid existence disclosure), and self-view statistics exclusion. Owner-only mutations rely on SQL `WHERE userId =` clauses, not this policy — drift between SQL guards and policy is silent.
4. **Resume password cookie** — `packages/api/src/helpers/resume-access.ts`. Cookie name `resume_access_{resumeId}`, signed value is `sha256(resumeId:passwordHash)`, TTL 10 minutes, `httpOnly`, `sameSite: lax`, `secure` only when `APP_URL` starts with `https`. Forgetting to set `APP_URL=https://...` in production drops the secure flag.
5. **OAuth `authorize` request sanitization** — `apps/web/src/routes/api/auth.$.ts:6-51` strips control chars from OAuth parameters and decodes broken-but-decodable redirect URIs before passing to Better Auth. Easy to bypass if a new OAuth flow is added that does not route through this handler.
6. **Dynamic client registration coercion to public client** — `apps/web/src/routes/api/auth.$.ts:53-80` forces `token_endpoint_auth_method = "none"` for unauthenticated registrations (specifically for Claude.ai's MCP onboarding quirk). This is non-standard behaviour buried in a request preprocessor.
7. **Builder draft sync** — `apps/web/src/components/resume/builder-resume-draft.ts:46-100` manages per-resume zustand stores keyed by resume id, with debounced patch-and-resync. Failure to clean up `runtimes` Map on resume close = subscription/timer leaks.
---
## Test Coverage Gaps (Priority Map)
| Area | Source files | Test files | Priority |
|------|-------------:|-----------:|----------|
| `apps/web/src/routes/**` | 125 | 1 | **High** — covers all server handlers and the builder shell |
| `apps/web/src/routes/api/**` (rpc/auth/uploads/openapi/mcp) | ~10 | 0 | **High** — security-sensitive route handlers |
| `apps/web/src/components/resume/**` | 5 | 2 | Medium |
| `apps/web/src/dialogs/**` | ~30 | 1 (`store.test.ts`) | Medium |
| `packages/api/src/routers/**` | 7 | 0 (DTO test only) | **High** — auth-protected procedures |
| `packages/api/src/services/**` | 8 | 1 (`ai.test.ts`) | High |
| `packages/auth/src/**` | 3 | 0 | **High** — central auth config never directly tested |
| `packages/email/src/**` | ~5 | 0 | Medium |
| `packages/import/src/**` | several importers | 1 (v4) | Medium |
| `packages/pdf/src/templates/shared/**` | ~20 | 11 | Low (well covered) |
---
*Concerns audit: 2026-05-11*
+238
View File
@@ -0,0 +1,238 @@
# Coding Conventions
**Analysis Date:** 2026-05-11
This document is the canonical short-form reference for code style, structure, and feature-boundary rules in the Reactive Resume monorepo. The authoritative long-form reference lives in `AGENTS.md` at the repo root — when in doubt, defer to it.
## Tooling Stack
- **Formatter + linter:** Biome 2.x (`biome.json`). Pre-commit hook (`lefthook.yml`) runs `biome check --write --unsafe` on staged JS/TS/JSON files.
- **Type checker:** `tsgo --noEmit` (the `@typescript/native-preview` TS implementation) in every workspace package and `apps/web`. Use `pnpm typecheck` at the root or `pnpm --filter <pkg> typecheck` per package.
- **TypeScript base config:** `packages/config/tsconfig.base.json`, consumed by `tsconfig.json` at root and per-package `tsconfig.json` files.
- **Commit hook:** commitlint with `@commitlint/config-conventional` (`commitlint.config.cjs`). `body-max-line-length` is disabled.
- **Internal CLI:** `pnpm check` is **write-capable** (`biome check --write --unsafe .`). Use `biome check .` (no `--write`) for read-only inspection.
## Biome Configuration (`biome.json`)
**Formatter:**
- `lineWidth: 120`
- `indentStyle: "tab"`
- `javascript.formatter.quoteStyle: "double"`
- CSS parser has `tailwindDirectives: true`
**Linter rules (notable):**
- `recommended: true`
- `suspicious.noExplicitAny: "error"` — `any` is forbidden
- `suspicious.noArrayIndexKey: "off"`
- `correctness.useExhaustiveDependencies: "info"` (not an error)
- `style.useImportType: { level: "on", options: { style: "separatedType" } }` — `import type` is required when an import is type-only and must be on its own line (not inlined per-specifier)
- `style.noInferrableTypes: "error"` — drop redundant annotations like `const x: number = 1`
- `style.noUselessElse: "error"`
- `style.useSelfClosingElements: "error"`
- `style.useSingleVarDeclarator: "error"`
- `style.noParameterAssign: "error"`
- `style.useDefaultParameterLast: "error"`
- `nursery.useSortedClasses: { level: "warn", fix: "safe", functions: ["clsx", "cva", "cn"] }` — Tailwind class strings inside these wrappers are sorted automatically
**Import organization:** Biome's `assist.actions.source.organizeImports` is `on`, grouped in this order (`biome.json` lines 32-39):
1. Type-only imports (`{ "type": true }`)
2. Node built-ins (`":NODE:"`, excluding Bun)
3. Vitest + Testing Library (`vitest`, `vitest/**`, `@testing-library/**`)
4. External npm packages (`:PACKAGE:`, excluding `@reactive-resume/**`)
5. Internal workspace packages (`@reactive-resume/**`)
6. App-local aliases / relative paths (`:ALIAS:`, `:PATH:`)
A representative file that demonstrates the order: `packages/api/src/services/resume.ts` (type imports → node-free externals → `@reactive-resume/*` → relatives).
**Biome ignores:** `**/.turbo`, `**/.output`, `**/.vercel`, `**/.wrangler`, `**/coverage`, `**/reports`, `**/routeTree.gen.ts`.
## TypeScript Conventions
**Strictness flags** in `packages/config/tsconfig.base.json` are intentionally aggressive:
- `strict: true`
- `verbatimModuleSyntax: true` (pairs with Biome's `useImportType` enforcement)
- `exactOptionalPropertyTypes: true`
- `noUncheckedIndexedAccess: true`
- `noUncheckedSideEffectImports: true`
- `noUnusedLocals: true`, `noUnusedParameters: true`
- `noFallthroughCasesInSwitch: true`
- `isolatedModules: true`, `moduleResolution: "bundler"`
- `target: "ESNext"`, `module: "ESNext"`
**Type-only imports:** Always use `import type { … }` on its own line when an import is only used in type positions. See `packages/api/src/services/resume.ts:1-5` and `packages/api/src/context.ts:1-2`.
**`any`:** Banned by Biome (`noExplicitAny: "error"`). Use `unknown` and narrow, or use a discriminated union.
**Path aliases (web app only):** `apps/web/tsconfig.json` declares:
- `@/*` → `./src/*`
- `@reactive-resume/ui/*` → `../../packages/ui/src/*` (build-time alias for direct source resolution)
Internal packages do NOT use `@/*` aliases — they import siblings via relative paths and cross-package code via the `@reactive-resume/*` export maps.
## Package Export Conventions (source-consumed packages)
**Internal packages export `src` files directly via `package.json` `exports`.** There is no per-package build step; consumers pick up the TS source through bundler/vitest resolution. Do not assume any `dist/` output.
Sample (`packages/utils/package.json`):
```json
{
"name": "@reactive-resume/utils",
"type": "module",
"exports": {
"./color": "./src/color.ts",
"./date": "./src/date.ts",
"./resume/docx": "./src/resume/docx/index.ts",
"./resume/patch": "./src/resume/patch.ts",
"./url-security.node": "./src/url-security.node.ts"
}
}
```
**Conventions when adding cross-package exports:**
- Use **explicit subpath exports**, not wildcards in `@reactive-resume/utils`/`@reactive-resume/db`. Some packages (`@reactive-resume/api`) do use wildcards like `"./services/*"` — match the style of the package you're editing.
- Filenames ending in `.node.ts` (e.g. `packages/utils/src/url-security.node.ts`, `packages/utils/src/monorepo.node.ts`) are reserved for Node-only code that must not be imported from the browser bundle.
- Filename suffixes `.browser.tsx` (e.g. `apps/web/src/components/resume/preview.browser.tsx`) mark code that must stay out of SSR paths.
## React & Web App Conventions
**Routing:** TanStack Router with file-based routes under `apps/web/src/routes`.
- Each route file calls `createFileRoute("/path")({ … })` and exports `Route`. Example: `apps/web/src/routes/auth/login.tsx:18`.
- `apps/web/src/routeTree.gen.ts` is generated — never hand-edit it (also Biome-ignored).
- Server-only handlers live in `server.handlers` blocks on routes like `apps/web/src/routes/api/rpc.$.ts`, `apps/web/src/routes/api/auth.$.ts`, `apps/web/src/routes/api/health.ts`.
- Public resume route `apps/web/src/routes/$username/$slug.tsx` is `ssr: "data-only"`; nested builder preview is `ssr: false`.
**Router context** (`apps/web/src/router.tsx`) provides `queryClient`, `orpc`, `theme`, `locale`, `session`, and `flags`. Read them via `Route.useRouteContext()` rather than refetching.
**Components:**
- Functional components only. React 19.
- File naming: **kebab-case** for files and directories (e.g. `apps/web/src/components/command-palette/`, `packages/ui/src/components/alert-dialog.tsx`, `apps/web/src/dialogs/api-key/create.tsx`).
- Test file: `<name>.test.ts(x)` colocated with the implementation (e.g. `packages/ui/src/components/button.tsx` + `packages/ui/src/components/button.test.tsx`).
- shadcn/Base UI primitive components in `packages/ui/src/components/*.tsx` are exported via the `./components/*` subpath. Hooks via `./hooks/*`.
**Tailwind class strings:** Always wrap in `clsx`, `cva`, or `cn` so Biome's `useSortedClasses` rule can sort them safely.
## oRPC Conventions (`packages/api`)
- **Procedures:** Build new procedures with `publicProcedure` or `protectedProcedure` from `packages/api/src/context.ts:79-99`. `protectedProcedure` adds the authenticated `User` to context and throws `ORPCError("UNAUTHORIZED")` otherwise; prefer it for anything authenticated.
- **Routers** live in `packages/api/src/routers/*.ts` and are composed in `packages/api/src/routers/index.ts` (`ai`, `auth`, `flags`, `resume`, `statistics`, `storage`). Each router file may export sub-routers internally (see `tagsRouter`, `statisticsRouter`, `analysisRouter`, `updatesRouter` in `packages/api/src/routers/resume.ts`).
- **Business logic** belongs in `packages/api/src/services/*.ts`. Handlers must stay thin: validate input, call a service, return its output. Example pattern: `packages/api/src/routers/resume.ts:24-26` calls `resumeService.tags.list(...)`.
- **DTOs / IO schemas** live in `packages/api/src/dto/*.ts` and are imported as `resumeDto.<op>.input` / `resumeDto.<op>.output`.
- **Errors:** Declare typed errors with `.errors({ CODE: { message, status } })` on the procedure (see `packages/api/src/routers/resume.ts:282-291`). Throw `new ORPCError("CODE")` inside services. The web side translates codes to user-facing strings in `apps/web/src/libs/error-message.ts`.
- **Route metadata:** Every procedure declares `.route({ method, path, tags, operationId, summary, description, successDescription })` so the OpenAPI/MCP endpoints stay accurate.
- **Rate limiting:** Apply via `.use(resumeMutationRateLimit)` / `.use(resumePasswordRateLimit)` from `packages/api/src/middleware/rate-limit`.
- **Web exposure:** Routers are mounted at `/api/rpc` by `apps/web/src/routes/api/rpc.$.ts`. The isomorphic client lives at `apps/web/src/libs/orpc/client.ts` — server-side calls use the in-process router client and browser calls hit `/api/rpc` with credentials.
## Drizzle Conventions (`packages/db`)
- **Schema location:** `packages/db/src/schema/*.ts`. Tables exported from `packages/db/src/schema/index.ts`.
- **Client:** `packages/db/src/client.ts`, exported as `@reactive-resume/db/client`.
- **Migrations:** Generated to **`migrations/` at the repo root** by `drizzle-kit generate`. Use `pnpm db:generate` after schema changes.
- **`DATABASE_URL` handling:** `drizzle-kit` does **not** auto-load `.env`. Always export `DATABASE_URL` in the shell (or prefix the command) before running `pnpm db:generate` / `pnpm db:migrate`.
- **Runtime migration:** `apps/web/plugins/1.migrate.ts` runs migrations on Nitro startup, so `pnpm db:migrate` is mostly used for first-time setup or debugging.
- **Patterns observed in `packages/db/src/schema/resume.ts`:**
- Primary keys use `pg.text("id").$defaultFn(() => generateId())` (UUIDv7 from `@reactive-resume/utils/string`).
- `createdAt` / `updatedAt` use `withTimezone: true`, `.defaultNow()`, and `$onUpdate(() => new Date())`.
- JSONB columns get `.$type<T>()` for end-to-end typing.
- Composite uniques/indexes are declared in the table's tuple callback.
- Foreign keys use `onDelete: "cascade"`.
## Schema-First Change Workflow
When changing resume data shape, propagate in this order (per `AGENTS.md`):
1. **`packages/schema/src/resume/*.ts`** — Zod schemas and types (entry point).
2. **`packages/api/src/dto/*.ts`** — API DTOs that re-use those schemas.
3. **`packages/import/src/*.tsx`** — importers (`json-resume`, `reactive-resume-json`, `reactive-resume-v4-json`).
4. **`packages/pdf/src/templates/**`** — PDF rendering for every template (`azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`). Shared filtering: `packages/pdf/src/templates/shared/filtering.ts`.
5. **`apps/web/src/`** — builder forms and any consumer hooks.
Adding/renaming a template requires changes in `packages/schema/src/templates.ts`, `packages/pdf/src/templates/index.ts`, the template directory `packages/pdf/src/templates/<name>/`, and static previews under `apps/web/public/templates/{jpg,pdf}/`.
## Error Handling Patterns
- **Services:** Throw `new ORPCError("CODE")` (e.g. `NOT_FOUND`, `UNAUTHORIZED`, custom `RESUME_LOCKED`). Example: `packages/api/src/services/resume.ts:54`.
- **Routers:** Declare expected codes via `.errors({ … })` so callers get typed error narrowing.
- **Auth helpers** in `packages/api/src/context.ts:14-55` catch verification errors and `console.warn(...)` rather than throwing, returning `null` so the caller can fall through to the next auth method.
- **Web side:** `apps/web/src/libs/error-message.ts` exposes `getReadableErrorMessage`, `getOrpcErrorMessage`, and `getResumeErrorMessage` for translating raw errors into UI-safe strings. Pair with `sonner` toasts (see `apps/web/src/routes/auth/login.tsx:45-64`).
## Logging
- No dedicated logging framework. Use `console.warn` / `console.error` for diagnostic output, scoped tightly (see `packages/api/src/context.ts:25`).
- Server logs are also where dev-mode email verification links surface when SMTP is unconfigured.
## i18n & Translations (Lingui)
- **Library:** `@lingui/core`, `@lingui/react` with the babel macro plugin enabled in `apps/web/vitest.config.ts` and Vite config.
- **Config:** `apps/web/lingui.config.ts` — source locale `en-US`, pseudo locale `zu-ZA`, 50+ supported locales. Catalogs live in `apps/web/locales/{locale}.po`.
- **Usage:**
- Import macros: `import { t } from "@lingui/core/macro"` and `import { Trans } from "@lingui/react/macro"` (`apps/web/src/routes/auth/login.tsx:1-2`).
- Wrap displayed text in `<Trans>...</Trans>` for JSX or `` t`...` `` / `t({ message, comment })` for strings.
- Provide `comment:` for ambiguous fallback strings (see `login.tsx:57-60`).
- **Extraction:** `pnpm lingui:extract` (turbo task in `apps/web`). Crowdin sync runs via `.github/workflows/crowdin-sync.yml`.
## Comments Policy
Comments stay short and explain **why**, not what. Patterns observed:
- One-line `//` comments before a non-obvious decision (`vitest.setup.ts:5-7` explains why `cleanup()` is registered manually; `packages/utils/src/monorepo.node.test.ts:11` explains the `realpathSync` call).
- JSDoc/TSDoc only on cross-package public functions where intent matters (e.g. `packages/api/src/context.ts:57-63` documents `resolveUserFromRequestHeaders`).
- Inline `/* @__PURE__ */` annotations on `$onUpdate(() => new Date())` in Drizzle schemas (`packages/db/src/schema/resume.ts:36`).
- No commented-out code in commits.
## Git Hooks & Commit Style
**Lefthook (`lefthook.yml`):**
```yaml
pre-commit:
parallel: true
jobs:
- name: lint and format
glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}"
run: pnpm biome check --write --unsafe --no-errors-on-unmatched --files-ignore-unknown=true {staged_files}
stage_fixed: true
commit-msg:
jobs:
- name: commitlint
run: pnpm commitlint --edit {1}
```
The pre-commit hook **rewrites staged files** with Biome fixes (`stage_fixed: true`). Run `pnpm check` before staging to avoid surprises.
**Commit messages:** Conventional Commits (`commitlint.config.cjs` extends `@commitlint/config-conventional`). Examples from `git log`:
- `feat: implement an AI chat window for agentic resume building`
- `fix(pdf): register CJK fallback font so Chinese/Japanese/Korean text renders correctly`
- `fix(lapras): adjust lapras border color to fixed gray`
- `chore: migrate from jsdom to happy-dom for testing environment`
- `docs: update AGENTS.md with detailed codebase structure`
- `test: add unit and component tests across the monorepo`
- `chore(release): v5.1.2`
Allowed types: `feat`, `fix`, `chore`, `docs`, `test`, `refactor`, `style`, `perf`, `build`, `ci`, `revert`. Scope is optional and lowercase. `body-max-line-length` is disabled, so long PR bodies are fine.
## CI Workflows
- **`.github/workflows/autofix.yml`** runs on every PR and push to `main`: `pnpm install --frozen-lockfile` → `pnpm knip --fix` (prune unused deps) → `pnpm check` (Biome) → `autofix-ci/action` opens fix commits.
- **`.github/workflows/docker-build.yml`** is `workflow_dispatch` only, builds multi-arch Docker images.
- **`.github/workflows/crowdin-sync.yml`** syncs translation catalogs.
- There is no CI workflow that runs `pnpm test` today. Tests run locally via `pnpm test` / `pnpm test:ci` and through turbo's `test:agent` reporter for agent-driven runs.
## Function & Module Design
- **Function size:** Most service functions stay under ~40 lines. Bigger flows (e.g. `resumeService.patch`) are decomposed into helpers in `packages/api/src/helpers/*` and `packages/api/src/services/resume-events.ts`.
- **Parameters:** Service helpers consistently take a single object argument (`async ({ id, userId })`) rather than positional args. See `packages/api/src/services/resume.ts:27,41,65`.
- **Return values:** Services return plain typed objects; routers shape the response via `.output(schema)` so Zod validates at the boundary.
- **Module boundaries:**
- Cross-package imports must go through declared `exports` subpaths. Reaching into `packages/<x>/src/internal-file` directly is not allowed.
- `packages/utils` exports are narrowly scoped — if you need a new helper for another package, add a new explicit subpath in `packages/utils/package.json`.
- `packages/runtime-externals` and `packages/scripts` are support packages; avoid importing them into runtime code.
---
*Convention analysis: 2026-05-11*
+239
View File
@@ -0,0 +1,239 @@
# External Integrations
**Analysis Date:** 2026-05-11
## APIs & External Services
**AI Providers (user-supplied API keys, called per-request from `packages/api/src/services/ai.ts`):**
- OpenAI — Default base URL `https://api.openai.com/v1` (`packages/ai/src/types.ts`)
- SDK: `@ai-sdk/openai ^3.0.63` via `createOpenAI(...).chat(model)`
- API key supplied per-call from the resume's `ai` config; not read from server env
- Anthropic — Default base URL `https://api.anthropic.com/v1`
- SDK: `@ai-sdk/anthropic ^3.0.76` via `createAnthropic(...).languageModel(model)`
- Google Gemini — Default base URL `https://generativelanguage.googleapis.com/v1beta`
- SDK: `@ai-sdk/google ^3.0.71` via `createGoogleGenerativeAI(...).languageModel(model)`
- Vercel AI Gateway — Default base URL `https://ai-gateway.vercel.sh/v3/ai`
- SDK: `ai ^6.0.177` via `createGateway(...).languageModel(model)`
- OpenRouter — Default base URL `https://openrouter.ai/api/v1`
- SDK: `@ai-sdk/openai-compatible ^2.0.47` via `createOpenAICompatible({ name: "openrouter", ... })`
- Ollama — Default base URL `https://ollama.com/api`
- SDK: `ollama-ai-provider-v2 ^3.5.0` via `createOllama(...)`
- Security: `packages/api/src/services/ai.ts` `resolveBaseUrl` rejects non-HTTPS URLs, credentialed URLs, and private/loopback hosts (via `packages/utils/src/url-security.node.ts`).
- File-input AI calls are capped at 10MB (`MAX_AI_FILE_BYTES`).
**OAuth Identity Providers (server-side env-configured, optional):**
- Google — `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` (config in `packages/auth/src/config.ts`).
- GitHub — `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET`.
- LinkedIn — `LINKEDIN_CLIENT_ID` / `LINKEDIN_CLIENT_SECRET`.
- Custom Generic OAuth — `OAUTH_PROVIDER_NAME`, `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, plus either `OAUTH_DISCOVERY_URL` or all three of `OAUTH_AUTHORIZATION_URL`/`OAUTH_TOKEN_URL`/`OAUTH_USER_INFO_URL`. Scopes from `OAUTH_SCOPES` (defaults `openid profile email`). Wired via Better Auth's `genericOAuth` plugin.
- Trusted providers for account linking (`packages/auth/src/config.ts`): `google`, `github`, `linkedin`.
**Translation / Localization:**
- Crowdin — `CROWDIN_PROJECT_ID`, `CROWDIN_PERSONAL_TOKEN`. Config in `crowdin.yml`; pull request automation labelled `l10n`. Source catalog `apps/web/locales/en-US.po`.
**Font Catalog Tooling:**
- Google Fonts Developer API — `GOOGLE_CLOUD_API_KEY` consumed by `packages/scripts/fonts/generate.ts` hitting `https://www.googleapis.com/webfonts/v1/webfonts`. Output committed at `packages/fonts/src/webfontlist.json`.
## Data Storage
**Databases:**
- PostgreSQL — Required relational database.
- Connection env: `DATABASE_URL` (validated as `postgres(ql)://...` in `packages/env/src/server.ts`)
- Client: `drizzle-orm 1.0.0-beta.22` with `pg ^8.20.0` Pool, instantiated in `packages/db/src/client.ts` (singleton via `globalThis.__pool` / `globalThis.__drizzle`).
- Schema location: `packages/db/src/schema/index.ts` (auth + resume tables) with `packages/db/src/relations.ts`.
- Migrations: generated by `drizzle-kit` into repo-root `migrations/` (e.g. `20260507144406_fast_nova/`). Generator config at `packages/db/drizzle.config.ts`.
- Auto-migration on app start: `apps/web/plugins/1.migrate.ts` runs `drizzle-orm/node-postgres/migrator` against the resolved migrations folder.
- `drizzle-kit` does NOT auto-load `.env` — `DATABASE_URL` must be exported before running `pnpm db:generate` / `pnpm db:migrate` (see `AGENTS.md` "Important" callout).
- Health probe: `packages/api/src/services/storage.ts` healthcheck + `apps/web/src/routes/api/health.ts` runs `SELECT 1` through Drizzle (1.5s timeout).
**File Storage (selected at runtime in `packages/api/src/services/storage.ts`):**
- S3-compatible object storage when all three of `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET` are set.
- Client: `@aws-sdk/client-s3 ^3.1045.0` (`S3Client` constructed in `S3StorageService`).
- Options: `S3_REGION` (default `us-east-1`), `S3_ENDPOINT` (for non-AWS), `S3_FORCE_PATH_STYLE`.
- Tested compatible backends: AWS S3 and SeaweedFS (see `compose.dev.yml` / `compose.yml`).
- All writes use `ACL: "public-read"` (consumed publicly from `/uploads/$userId/$` route, with path validation).
- Local filesystem fallback (`LocalStorageService`) used when any of the three S3 vars is missing.
- Path: `LOCAL_STORAGE_PATH` if set (must be absolute); otherwise `<workspace>/data` in dev or `/app/data` in the Docker image.
- Validated at boot by `apps/web/plugins/2.storage.ts` (mkdir + access check).
- Key layout (built in `packages/api/src/services/storage.ts`):
- `uploads/{userId}/pictures/{timestamp}.jpeg`
- `uploads/{userId}/screenshots/{resumeId}/{timestamp}.jpeg`
- `uploads/{userId}/pdfs/{resumeId}/{timestamp}.pdf`
- Public read route: `apps/web/src/routes/uploads/$userId.$.tsx` (ETag, content-type sniffing, path traversal protection).
- Image preprocessing: `sharp ^0.34.5` resizes to 800x800 and re-encodes JPEG at quality 80, unless `FLAG_DISABLE_IMAGE_PROCESSING=true`.
**Caching:**
- No external cache (Redis/Memcached) configured.
- In-process rate limiter: `@orpc/experimental-ratelimit` `MemoryRatelimiter` (`packages/api/src/middleware/rate-limit/index.ts`).
- Workbox precache in the service worker (PWA) — `apps/web/vite.config.ts` `VitePWA` setup (skipWaiting, clientsClaim, cleanupOutdatedCaches).
## Authentication & Identity
**Auth Provider:** Better Auth `1.6.10`, configured in `packages/auth/src/config.ts`.
- Mounted as a TanStack Start server handler at `/api/auth/*` via `apps/web/src/routes/api/auth.$.ts`.
- Drizzle adapter: `@better-auth/drizzle-adapter` bound to `db` + schema (provider `pg`).
- Trusted origins: `http://localhost:3000`, `http://127.0.0.1:3000`, and the normalized origin of `APP_URL`.
- Secure cookies enabled automatically when `APP_URL` is `https://`.
- Trusted IP headers (used by both Better Auth `advanced.ipAddress.ipAddressHeaders` and the oRPC rate limiter): `CF-Connecting-IP`, `CF-Connecting-IPv6`, `True-Client-IP`, `X-Forwarded-For`, `X-Real-IP` (`packages/utils/src/rate-limit.ts`).
- Telemetry: explicitly disabled.
**Email/Password:**
- Enabled unless `FLAG_DISABLE_EMAIL_AUTH=true`.
- Password hash: `bcrypt` (cost 10) via `hash` / `compare` from `bcrypt ^6.0.0`.
- Min 8, max 64 char passwords.
- Email verification: sent on signup using `VerifyEmail` template from `@reactive-resume/email/templates/auth`.
- Reset password: `sendResetPassword` -> `ResetPasswordEmail` template.
- Email change: `sendChangeEmailConfirmation` -> `VerifyEmailChange` template.
**Better Auth Plugins (in `packages/auth/src/config.ts`):**
- `jwt()` — JWKS published at `/api/auth/jwks` (also referenced by `verifyOAuthToken`).
- `admin()` — Admin operations.
- `passkey()` (`@better-auth/passkey ^1.6.10`) — WebAuthn passkeys.
- `genericOAuth({ config })` — Driven by `OAUTH_*` env vars when configured.
- `twoFactor({ issuer: "Reactive Resume" })` — TOTP + backup codes; UI routes `/auth/verify-2fa` and `/auth/verify-2fa-backup`.
- `apiKey()` (`@better-auth/api-key ^1.6.10`) — Header `x-api-key`; `enableSessionForAPIKeys: true`; per-key rate limit 1000 req/hour.
- `oauthProvider()` (`@better-auth/oauth-provider ^1.6.10`) — Makes this app act as an OAuth 2.1 authorization server for MCP clients. Allows dynamic and unauthenticated client registration (RFC 7591) but redirect URIs are gated by an allowlist in the auth `hooks.before` middleware and `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS`. Audiences whitelist: `${APP_URL}`, `${APP_URL}/`, `${APP_URL}/mcp`, `${APP_URL}/mcp/`.
- `username()` — Normalized lowercase usernames (`^[a-z0-9._-]+$`, length 3–64).
- `dash({ apiKey: BETTER_AUTH_API_KEY })` — Better Auth Dashboard (only when `BETTER_AUTH_API_KEY` is set).
**Social Providers:**
- Google, GitHub, LinkedIn — Each activates only when both `*_CLIENT_ID` and `*_CLIENT_SECRET` env vars are set (`packages/auth/src/config.ts`). `disableImplicitSignUp: true`; account linking enabled.
**Session / Access in API context:**
- `packages/api/src/context.ts` exposes `protectedProcedure` (referenced in `AGENTS.md`) for authenticated procedures.
- oRPC middleware reads request headers via `RequestHeadersPlugin` (`apps/web/src/routes/api/rpc.$.ts`, `apps/web/src/routes/api/openapi.$.ts`).
**API Key Auth for HTTP / MCP:**
- `x-api-key` header recognised by Better Auth API Key plugin.
- OpenAPI spec at `/api/openapi/spec.json` declares `apiKey` security scheme (`apps/web/src/routes/api/openapi.$.ts`).
- MCP server first tries OAuth Bearer (`Authorization: Bearer ...`), then falls back to `x-api-key` (`apps/web/src/routes/mcp/index.ts`).
## Monitoring & Observability
**Error Tracking:**
- None — no Sentry/Datadog/Rollbar SDK present.
- Errors are logged via `console.error` (oRPC interceptors `onError` in `apps/web/src/routes/api/rpc.$.ts` and `apps/web/src/routes/api/openapi.$.ts`).
**Health Checks:**
- `GET /api/health` — `apps/web/src/routes/api/health.ts` returns JSON with DB and storage status; 503 if unhealthy. Used by Docker `HEALTHCHECK`.
**Logs:**
- `console.info`/`console.warn`/`console.error` only. SMTP failures, missing config, sanitization diagnostics, and migration progress are all written to stdout/stderr.
## CI/CD & Deployment
**Hosting / Distribution:**
- Self-hosted Docker image — `Dockerfile` builds final image around `node:24-slim`, expose port 3000, default `LOCAL_STORAGE_PATH=/app/data`. Multi-stage uses `turbo prune` for both the web app and the `runtime-externals` package (which carries `bcrypt`, `sharp`, `@aws-sdk/client-s3` as native deps).
- Container labels point to `https://rxresu.me` and `https://docs.rxresu.me`.
**CI Pipeline:**
- Not present in this worktree (no `.github/workflows/` enumerated here). Scripts produce CI-friendly Vitest reports (`reports/vitest-junit.xml`, `reports/vitest-results.json`) via the `test:ci` task.
**Local Orchestration:**
- `compose.dev.yml` — `postgres:latest`, `seaweedfs:latest`, `seaweedfs_create_bucket` (uses `quay.io/minio/mc:latest`).
- `compose.yml` — Same services plus `reactive_resume` app container, networks `data_network` / `storage_network`.
**Git Hooks:**
- Lefthook (`lefthook.yml`) — `pre-commit` runs `biome check --write --unsafe` on staged JS/TS/JSON files; `commit-msg` runs `commitlint --edit`.
## Environment Configuration
**Required env vars (validated by Zod in `packages/env/src/server.ts`):**
- `APP_URL` — http(s) URL, used for auth base URL, OAuth audiences, OG metadata, and public upload URLs.
- `DATABASE_URL` — `postgres(ql)://...`.
- `AUTH_SECRET` — Better Auth signing secret (`openssl rand -hex 32`).
**Optional auth env vars:**
- `BETTER_AUTH_API_KEY` — Enables Better Auth Dashboard plugin.
- `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`.
- `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET`.
- `LINKEDIN_CLIENT_ID`, `LINKEDIN_CLIENT_SECRET`.
- `OAUTH_PROVIDER_NAME`, `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, `OAUTH_DISCOVERY_URL`, `OAUTH_AUTHORIZATION_URL`, `OAUTH_TOKEN_URL`, `OAUTH_USER_INFO_URL`, `OAUTH_SCOPES`, `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS`.
**Optional SMTP env vars (all required together to enable real sends):**
- `SMTP_HOST`, `SMTP_PORT` (default 587), `SMTP_USER`, `SMTP_PASS`, `SMTP_FROM`, `SMTP_SECURE` (default false). Fallback in `packages/email/src/transport.ts`: log to console with subject/body when SMTP is not fully configured.
**Optional storage env vars:**
- `LOCAL_STORAGE_PATH` — Must be absolute when set.
- `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_REGION` (default `us-east-1`), `S3_ENDPOINT`, `S3_BUCKET`, `S3_FORCE_PATH_STYLE` (default false).
**Optional feature flags:**
- `FLAG_DISABLE_SIGNUPS` — Disables signups across all providers.
- `FLAG_DISABLE_EMAIL_AUTH` — Disables email/password auth and verification flows.
- `FLAG_DISABLE_IMAGE_PROCESSING` — Skips Sharp resize/encode (useful on resource-constrained hardware).
**Optional tooling env vars:**
- `CROWDIN_PROJECT_ID` and `CROWDIN_PERSONAL_TOKEN` for Crowdin translation sync.
- `GOOGLE_CLOUD_API_KEY` — For `packages/scripts/fonts/generate.ts`.
**Secrets location:**
- `.env` at the repo root (gitignored). `.env.example` provides documented defaults. Existence noted: `.env.local`, `.env.production` files present locally (contents not read; may contain secrets).
- Turbo cache invalidation tied to env vars via `turbo.json` `globalEnv` whitelist.
## Webhooks & Callbacks
**Incoming:**
- OAuth provider callbacks served by Better Auth: `/api/auth/oauth2/callback/{providerId}` (e.g. `/api/auth/oauth2/callback/custom` configured in `packages/auth/src/config.ts`).
- OAuth Authorization Server endpoints (when this app acts as an OAuth provider for MCP clients): handled by Better Auth `oauthProvider` plugin under `/api/auth/oauth2/*`. Login/consent pages at `/auth/oauth` (`apps/web/src/routes/auth/oauth.ts`).
- `.well-known` discovery routes:
- `apps/web/src/routes/[.]well-known/oauth-authorization-server.ts` and `.../oauth-authorization-server.$.ts`
- `apps/web/src/routes/[.]well-known/oauth-protected-resource.ts` and `.../oauth-protected-resource.$.ts`
- `apps/web/src/routes/[.]well-known/openid-configuration.ts`
- `apps/web/src/routes/[.]well-known/mcp/server-card[.]json.ts`
- Generic catch-all: `apps/web/src/routes/[.]well-known/$.ts`
- MCP Streamable HTTP transport: `apps/web/src/routes/mcp/index.ts` (uses `WebStandardStreamableHTTPServerTransport`). Authenticates via OAuth Bearer or `x-api-key`.
**Outgoing:**
- AI provider HTTPS requests (see "AI Providers" above) — initiated per user request from `packages/api/src/services/ai.ts`.
- SMTP outbound (`packages/email/src/transport.ts`) for verification, password reset, and email-change confirmations.
- S3 PUT/GET/DELETE/LIST through `@aws-sdk/client-s3` when S3 storage is configured.
- Crowdin and Google Fonts requests only from CI / scripts, not from the runtime web app.
## API Endpoints Exposed by the App
| Endpoint | Handler | Purpose |
|----------|---------|---------|
| `/api/health` | `apps/web/src/routes/api/health.ts` | Liveness/readiness JSON (DB + storage). |
| `/api/auth/*` | `apps/web/src/routes/api/auth.$.ts` | Better Auth handler (sessions, OAuth, passkey, JWKS, etc.). |
| `/api/rpc/*` | `apps/web/src/routes/api/rpc.$.ts` | oRPC server (`packages/api/src/routers/index.ts`: `ai`, `auth`, `flags`, `resume`, `statistics`, `storage`). |
| `/api/openapi/*` | `apps/web/src/routes/api/openapi.$.ts` | OpenAPI-style REST wrapper of the oRPC router; spec at `/api/openapi/spec.json`. Auth via `x-api-key`. |
| `/mcp` | `apps/web/src/routes/mcp/index.ts` | MCP Streamable HTTP server (`@modelcontextprotocol/sdk`). |
| `/uploads/{userId}/...` | `apps/web/src/routes/uploads/$userId.$.tsx` | Public read of stored images/PDFs with ETag + path validation. |
| `/schema.json` | `apps/web/src/routes/schema[.]json.ts` | Resume JSON schema. |
| `/.well-known/...` | `apps/web/src/routes/[.]well-known/*` | OAuth/OIDC/MCP discovery documents. |
## Rate Limiting
**Better Auth (production only, see `packages/auth/src/config.ts` `isRateLimitEnabled`):**
- Global default: 60 req / 60s.
- `/sign-in/email`: 5/60s; `/sign-up/email`: 3/60s.
- `/request-password-reset`, `/send-verification-email`: 3/600s.
- `/two-factor/verify-otp`, `/verify-totp`, `/verify-backup-code`: 5/600s.
- `/is-username-available`: 20/60s.
- OAuth provider endpoints: `register` 5/60s, `authorize` 30/60s, `token` 20/60s, `introspect` 60/60s, `revoke` 30/60s, `userinfo` 60/60s.
- API keys: 1000 req / hour per key.
- Source: `packages/utils/src/rate-limit.ts`.
**oRPC procedure-level (in-memory, production only, see `packages/api/src/middleware/rate-limit/index.ts`):**
- `resumePassword`: 5 / 10min.
- `pdfExport`: 5 / 60s.
- `aiRequest`: 20 / 60s.
- `jobsSearch`: 30 / 60s.
- `jobsTestConnection`: 10 / 60s.
- `storageUpload`: 20 / 60s.
- `storageDelete`: 30 / 60s.
- `resumeMutations`: 60 / 60s.
- Keys are derived from authenticated user id when present, otherwise from the first trusted-IP header or a UA+language fingerprint.
## Optional Services Declared in Compose Files
| Service | Image | Purpose | File |
|---------|-------|---------|------|
| `postgres` | `postgres:latest` | Required PostgreSQL DB | `compose.dev.yml`, `compose.yml` |
| `seaweedfs` | `chrislusf/seaweedfs:latest` | Optional S3-compatible storage for dev/prod | `compose.dev.yml`, `compose.yml` |
| `seaweedfs_create_bucket` | `quay.io/minio/mc:latest` | One-shot init that creates `reactive-resume` bucket | `compose.dev.yml`, `compose.yml` |
| `reactive_resume` | Built from `Dockerfile` | The app itself in prod compose | `compose.yml` |
---
*Integration audit: 2026-05-11*
+210
View File
@@ -0,0 +1,210 @@
# Technology Stack
**Analysis Date:** 2026-05-11
## Languages
**Primary:**
- TypeScript `^6.0.3` — All workspace code under `apps/web/src` and `packages/*/src`. Typechecked with the experimental TS native compiler `@typescript/native-preview` (`7.0.0-dev.20260510.1`) via `tsgo --noEmit`.
- TSX (React 19) — UI components in `apps/web/src`, `packages/ui/src/components`, `packages/pdf/src/templates`, and email templates in `packages/email/src/templates`.
**Secondary:**
- JavaScript (ESM, `"type": "module"`) — A handful of config files such as `commitlint.config.cjs` and `apps/web/postcss.config` style snippets.
- JSON / JSONC — `package.json`, `tsconfig.json`, `biome.json`, `turbo.json`, `knip.json`, `apps/web/components.json`, `packages/schema/schema.json`, locale and webfont metadata.
- SQL — Drizzle-generated migrations under `migrations/` (e.g. `migrations/20260507144406_fast_nova/`).
- YAML — `compose.yml`, `compose.dev.yml`, `lefthook.yml`, `crowdin.yml`, `pnpm-workspace.yaml`.
- Markdown — `AGENTS.md`, `README.md`, `SECURITY.md`, `LICENSE`, docs under `docs/`.
## Runtime
**Environment:**
- Node.js `24` — Pinned in `Dockerfile` via `ARG NODE_VERSION=24`. Single Node process exposes the web app on port `3000`.
- Browser runtime — React 19 SSR + hydration via TanStack Start. PWA service worker registered from `apps/web/vite.config.ts`.
**Package Manager:**
- pnpm `11.0.9` — Pinned in `package.json` `packageManager` field (with integrity hash). Managed via Corepack (`corepack enable`) per `AGENTS.md`.
- Workspace topology: `pnpm-workspace.yaml` includes `apps/*` and `packages/*`.
- Lockfile: `pnpm-lock.yaml` is present and committed at repo root.
- `allowBuilds` in `pnpm-workspace.yaml`: `bcrypt`, `esbuild`, `lefthook`, `msw`, `sharp`.
- `postcss` is pinned by an override to `^8.5.14` in `pnpm-workspace.yaml`.
**Build Orchestrator:**
- Turborepo `^2.9.12` — `turbo.json` defines tasks (`build`, `dev`, `typecheck`, `test`, `db:generate`, `db:migrate`, `db:studio`, `lingui:extract`) and the `globalEnv` whitelist for cache invalidation.
- The Docker build also pins `turbo@2.9.9` via `pnpm dlx` for the pruner stages.
## Frameworks
**Core (apps/web):**
- React `^19.2.6` with `react-dom ^19.2.6` (from `apps/web/package.json`).
- TanStack Start `^1.167.65` — Full-stack framework wiring Vite, Nitro, and React Router. Server handlers live in route files under `apps/web/src/routes`.
- TanStack Router `^1.169.2` — File-based router. `apps/web/src/routeTree.gen.ts` is generated.
- TanStack React Query `^5.100.9` with SSR bridge `@tanstack/react-router-ssr-query ^1.166.12`.
- TanStack React Form `^1.32.0` and React Hotkeys `^0.10.0`.
- Vite `^8.0.11` (rolldown-based) — `apps/web/vite.config.ts` orchestrates plugins.
- Nitro `3.0.260429-beta` — Server framework used through `nitro/vite`. Plugins at `apps/web/plugins/1.migrate.ts` and `apps/web/plugins/2.storage.ts` run on Nitro startup.
- `srvx ^0.11.15` — HTTP server runtime used by Nitro/TanStack Start.
**RPC / API:**
- oRPC `^1.14.2` family — `@orpc/server`, `@orpc/client`, `@orpc/openapi`, `@orpc/json-schema`, `@orpc/zod`, `@orpc/tanstack-query`, `@orpc/experimental-ratelimit`.
- `@modelcontextprotocol/sdk ^1.29.0` — MCP server exposed at `/mcp` via `apps/web/src/routes/mcp/index.ts`.
**Auth:**
- Better Auth `1.6.10` — Core auth framework configured in `packages/auth/src/config.ts`.
- Better Auth plugins: `@better-auth/api-key ^1.6.10`, `@better-auth/drizzle-adapter ^1.6.10`, `@better-auth/infra ^0.2.6` (dashboard), `@better-auth/oauth-provider ^1.6.10`, `@better-auth/passkey ^1.6.10`, plus built-ins (`admin`, `jwt`, `twoFactor`, `username`, `genericOAuth`).
- `jose ^6.2.3` — JWT verification for OAuth tokens (MCP authentication).
- `bcrypt ^6.0.0` — Password hashing (10 rounds in `packages/auth/src/config.ts`).
**Database & ORM:**
- Drizzle ORM `1.0.0-beta.22` with PostgreSQL driver `pg ^8.20.0` (node-postgres).
- `drizzle-kit 1.0.0-beta.22` — Migration tooling. Config at `packages/db/drizzle.config.ts` (dialect `postgresql`, schema `./src/schema/index.ts`, out `../../migrations`).
- `drizzle-zod 1.0.0-beta.14-a36c63d` — Schema-derived Zod validators in `packages/api`.
**PDF / Rendering:**
- `@react-pdf/renderer ^4.5.1` with types `@react-pdf/types ^2.11.1` — Used by `packages/pdf/src/document.tsx` and all templates under `packages/pdf/src/templates/<name>/`.
- `pdfjs-dist 5.7.284` — Client-side PDF rendering and parsing (browser-only paths).
- `react-pdf-html ^2.1.5`, `node-html-parser ^7.1.0`, `phosphor-icons-react-pdf ^0.1.3`, `cjk-regex ^3.4.0` — PDF helpers and CJK fallback.
- Font registration owned by `packages/pdf/src/hooks/use-register-fonts.ts`; webfont catalog at `packages/fonts/src/webfontlist.json`.
**UI / Styling:**
- Base UI / shadcn-style components — `@base-ui/react ^1.4.1`, `shadcn ^4.7.0` (CLI), components live in `packages/ui/src/components/*.tsx`. Config at `apps/web/components.json` (style `base-nova`, base color `zinc`, icon library `phosphor`).
- Tailwind CSS `^4.3.0` via `@tailwindcss/vite ^4.3.0` and `@tailwindcss/postcss ^4.3.0`. Plugin `@tailwindcss/typography ^0.5.19`. Global stylesheet at `packages/ui/src/styles/globals.css`.
- PostCSS `^8.5.14` and `tw-animate-css ^1.4.0`.
- `class-variance-authority ^0.7.1`, `clsx ^2.1.1`, `tailwind-merge ^3.6.0`.
- Icons: `@phosphor-icons/react ^2.1.10`, `@phosphor-icons/web ^2.1.2`.
- Fonts: `@fontsource-variable/ibm-plex-sans ^5.2.8` (shipped with `packages/ui`).
- Theming: `next-themes ^0.4.6`.
- Animation: `motion ^12.38.0`.
- Toasts: `sonner ^2.0.7`.
- Command palette: `cmdk ^1.1.1`.
- Misc UI: `react-resizable-panels ^4.11.0`, `react-window ^2.2.7`, `react-zoom-pan-pinch ^4.0.3`, `qrcode.react ^4.2.0`, `@uiw/color-convert ^2.10.1`, `@uiw/react-color-colorful ^2.10.1`.
**Drag & Drop and Editing:**
- `@dnd-kit/core ^6.3.1`, `@dnd-kit/sortable ^10.0.0`, `@dnd-kit/utilities ^3.2.2`.
- TipTap `^3.23.1` editor with `starter-kit`, `pm`, `react`, plus extensions `color`, `highlight`, `table`, `text-align`, `text-style`.
**State / Validation / Patterns:**
- Zustand `^5.0.13` — Client and AI state stores (`packages/ai/src/store.ts`).
- Immer `^11.1.8`.
- Zod `^4.4.3` — Validators across schema, api, env, ai, import, utils packages.
- `ts-pattern ^5.9.0` — Pattern matching in API services.
- `es-toolkit ^1.46.1` and `fuse.js ^7.3.0`.
**Internationalization (i18n):**
- Lingui `^6.0.1` family — `@lingui/core`, `@lingui/react`, `@lingui/cli`, `@lingui/format-po`, `@lingui/vite-plugin`, `@lingui/babel-plugin-lingui-macro`.
- Babel transformer chain via `@rolldown/plugin-babel ^0.2.3` and `babel-plugin-macros ^3.1.0`.
- Locale config at `apps/web/lingui.config.ts` (source locale `en-US`, ~55 target locales, pseudo-locale `zu-ZA`).
- Translation catalogs at `apps/web/locales/{locale}.po`. Crowdin sync configured in `crowdin.yml`.
**Email:**
- React Email `^6.1.1` with `@react-email/ui ^6.1.1` — Templates in `packages/email/src/templates/auth.tsx`.
- Nodemailer `^8.0.7` SMTP transport — `packages/email/src/transport.ts`.
**AI:**
- Vercel AI SDK `ai ^6.0.177` and `@ai-sdk/react ^3.0.179`.
- Provider SDKs: `@ai-sdk/openai ^3.0.63`, `@ai-sdk/anthropic ^3.0.76`, `@ai-sdk/google ^3.0.71`, `@ai-sdk/openai-compatible ^2.0.47`, `ollama-ai-provider-v2 ^3.5.0`.
- Supported providers enumerated at `packages/ai/src/types.ts`: `openai`, `anthropic`, `gemini`, `vercel-ai-gateway`, `openrouter`, `ollama`.
- JSON patch / repair: `fast-json-patch ^3.1.1`, `jsonrepair ^3.14.0`, `deepmerge-ts ^7.1.5`.
**Storage:**
- AWS SDK v3 — `@aws-sdk/client-s3 ^3.1045.0` used in `packages/api/src/services/storage.ts`. Marked external in the rolldown build (see `apps/web/vite.config.ts`) and isolated into `packages/runtime-externals` for Docker.
**Image Processing:**
- Sharp `^0.34.5` — Used in `packages/api/src/services/storage.ts` `processImageForUpload`. Disabled when `FLAG_DISABLE_IMAGE_PROCESSING` is true.
**Document Generation / Import:**
- `docx ^9.6.1` — DOCX export utilities in `packages/utils/src/resume/docx/`.
- JSON Resume importers in `packages/import` (`json-resume`, `reactive-resume-json`, `reactive-resume-v4-json`).
**HTML Sanitization:**
- `dompurify ^3.4.2` — Used in `packages/utils/src/sanitize.ts`.
- `@sindresorhus/slugify ^3.0.0`, `unique-names-generator ^4.7.1`, `uuid ^14.0.0`.
**PWA:**
- `vite-plugin-pwa ^1.3.0` — Workbox-based service worker, manifest defined in `apps/web/src/libs/pwa`.
**Testing:**
- Vitest `^4.1.5` with `@vitest/coverage-v8 ^4.1.5` (provider `v8`).
- Shared config in `vitest.shared.ts`; per-package configs at `<pkg>/vitest.config.ts`.
- DOM: `happy-dom ^20.9.0` (`disableJavaScriptFileLoading`, `disableCSSFileLoading`, navigation disabled in `vitest.shared.ts`).
- Testing Library: `@testing-library/react ^16.3.2`, `@testing-library/dom ^10.4.1`, `@testing-library/jest-dom ^6.9.1`, `@testing-library/user-event ^14.6.1`.
- Tests are co-located in each package's `src/**/*.{test,spec}.{ts,tsx}` and discovered automatically.
**Lint / Format / Tooling:**
- Biome `^2.4.15` — Sole linter + formatter (`biome.json`: tabs, double quotes, line width 120, organized import groups, `useSortedClasses` for `clsx`/`cva`/`cn`). Pre-commit runs through Lefthook.
- Lefthook `^2.1.6` — Git hooks defined in `lefthook.yml` (`biome check --write --unsafe` on staged JS/TS/JSON files; `commitlint --edit` on commit messages).
- Commitlint `^21.0.0` with `@commitlint/config-conventional` (see `commitlint.config.cjs`).
- Knip `^6.12.2` — Dead-code/unused-deps detection (`knip.json`).
- `npm-check-updates ^22.1.1`.
- `tsx ^4.21.0` — Used by `packages/scripts` for ad hoc TS scripts.
## Key Dependencies
**Critical:**
- `@tanstack/react-start ^1.167.65` — App framework boundary; route server handlers depend on it.
- `@orpc/server ^1.14.2` — Type-safe RPC; backbone of `/api/rpc` and `/api/openapi`.
- `better-auth 1.6.10` — Identity, sessions, OAuth provider, MCP auth.
- `drizzle-orm 1.0.0-beta.22` + `pg ^8.20.0` — All DB access.
- `@react-pdf/renderer ^4.5.1` — Resume PDF generation.
- `@aws-sdk/client-s3 ^3.1045.0` — S3-compatible object storage.
- `@modelcontextprotocol/sdk ^1.29.0` — MCP server endpoint.
- `ai ^6.0.177` + `@ai-sdk/*` — Resume AI features (analysis, parsing, chat).
**Infrastructure:**
- `vite ^8.0.11` + `nitro 3.0.260429-beta` — Build and server runtime.
- `turbo ^2.9.12` — Workspace task graph and caching.
- `dotenv ^17.4.2` — Loaded by `packages/env/src/server.ts` for app/server code (drizzle-kit does NOT auto-load).
- `@t3-oss/env-core ^0.13.11` — Server env validation in `packages/env/src/server.ts`.
## Configuration
**TypeScript:**
- Root `tsconfig.json` extends `@reactive-resume/config/tsconfig.base.json` (`packages/config/tsconfig.base.json`).
- Each package has its own `tsconfig.json` and runs `tsgo --noEmit`.
- Apps/packages export source from `src/*.ts` via package.json `exports` — no `dist/` artifacts unless explicitly built (e.g. `apps/web/.output`).
**Build:**
- `apps/web/vite.config.ts` orchestrates `tailwindcss`, `tanstackStart`, `viteReact`, `lingui`, `babel` (Lingui macro preset), `nitro` (with `1.migrate.ts` and `2.storage.ts` plugins), and `VitePWA`.
- Rolldown externals: `bcrypt`, `sharp`, `@aws-sdk/client-s3` (kept out of the client/server bundle and provided by `packages/runtime-externals` in Docker).
- Output: `apps/web/.output/server/index.mjs` (Nitro), public assets in `apps/web/.output/public`.
**Database:**
- Drizzle config: `packages/db/drizzle.config.ts` — `dialect: "postgresql"`, schema in `packages/db/src/schema/index.ts`, migrations written to repo-root `migrations/`.
- Client: `packages/db/src/client.ts` exposes singleton `db` plus `Pool` via `pg`, using `env.DATABASE_URL`.
- Startup auto-migration: `apps/web/plugins/1.migrate.ts` runs `drizzle-orm/node-postgres/migrator` against the resolved `migrations/` folder.
**Environment:**
- Server env contract validated by Zod in `packages/env/src/server.ts` (via `@t3-oss/env-core`).
- `dotenv` auto-loads root `.env` from `packages/env/src/server.ts` using `findWorkspaceRoot()`.
- Required: `APP_URL`, `DATABASE_URL`, `AUTH_SECRET`.
- Cache invalidation env vars listed in `turbo.json` `globalEnv`.
- `.env.example` present at repo root; `.env.local` and `.env.production` exist locally (contents not read — may contain secrets).
**Linting / Formatting:**
- `biome.json` — Tabs, 120-col, double quotes, sorted Tailwind classes for `clsx|cva|cn`, organized import groups (`type` imports first, then Node built-ins, test packages, third-party, `@reactive-resume/**`, then aliases/relative).
- `lefthook.yml` — Pre-commit Biome on staged files; commit-msg Commitlint.
- `commitlint.config.cjs` — Conventional commits.
- `knip.json` — Workspace-level ignores for `runtime-externals` external deps.
**Container / Compose:**
- `Dockerfile` (multi-stage): `base` (Node 24 slim + corepack), `pruner` (turbo prune), `builder` (frozen lockfile install + `pnpm turbo run build --filter=web --force`), `runtime-pruner` + `runtime-deps` (deploy `@reactive-resume/runtime-externals` with native deps), final `runtime` image running `node .output/server/index.mjs`, HEALTHCHECK on `/api/health`.
- `compose.dev.yml` — Dev `postgres:latest` + `seaweedfs:latest` (S3 emulator) + `seaweedfs_create_bucket` init container using `quay.io/minio/mc:latest`.
- `compose.yml` — Same services plus the app container `reactive_resume` built from `Dockerfile`, with `data_network`/`storage_network` and S3 env defaults pointing at SeaweedFS.
## Platform Requirements
**Development:**
- Node.js 24, pnpm 11.0.9 (via Corepack), Docker (for Postgres / SeaweedFS).
- Repo-local `data/` directory for local-storage mode (auto-created by `apps/web/plugins/2.storage.ts`).
- `LOCAL_STORAGE_PATH` must be absolute when set.
- SMTP optional; without it `packages/email/src/transport.ts` logs the email to console.
**Production:**
- Single Node 24 process on port 3000 (`apps/web/.output/server/index.mjs`).
- Official Docker image listed in `Dockerfile` labels (`org.opencontainers.image.url=https://rxresu.me`).
- Production uses S3-compatible storage when all three of `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET` are set; otherwise falls back to local filesystem under `/app/data` (per Dockerfile `ENV LOCAL_STORAGE_PATH=/app/data`).
- HEALTHCHECK polls `GET /api/health` (handler at `apps/web/src/routes/api/health.ts` checks DB and storage with a 1.5s timeout).
- Rate limiting only active when `NODE_ENV=production` (see `packages/auth/src/config.ts` and `packages/api/src/middleware/rate-limit/index.ts`).
---
*Stack analysis: 2026-05-11*
+394
View File
@@ -0,0 +1,394 @@
# Codebase Structure
**Analysis Date:** 2026-05-11
## Directory Layout
```text
reactive-resume/
├── apps/
│ └── web/ # Sole deployable application (TanStack Start / Vite / Nitro)
│ ├── plugins/ # Nitro startup plugins (run on `pnpm dev` / `pnpm start`)
│ ├── public/ # Static assets (PWA, opengraph, templates, screenshots)
│ ├── locales/ # Lingui `.po` translation catalogs (~40 locales)
│ ├── src/
│ │ ├── components/ # Reusable web components grouped by feature
│ │ ├── dialogs/ # Global dialog system + dialog implementations
│ │ ├── hooks/ # App-level React hooks
│ │ ├── libs/ # Browser/server glue (auth, orpc, query, resume, theme, locale, pwa)
│ │ ├── routes/ # File-based TanStack Router routes (UI + `server.handlers`)
│ │ ├── router.tsx # Router factory (builds query client, context, SSR query integration)
│ │ ├── routeTree.gen.ts # GENERATED — do not hand-edit
│ │ ├── server.ts # Nitro fetch entry (wraps `react-start/server-entry`)
│ │ └── index.css # Tailwind v4 entry
│ ├── components.json # shadcn config
│ ├── lingui.config.ts # i18n extract config
│ ├── vite.config.ts # Vite + TanStack Start + Nitro + PWA + Lingui
│ └── vitest.config.ts
├── packages/
│ ├── ai/ # AI prompts, Zustand store, patch-resume tool
│ ├── api/ # oRPC routers, services, helpers, DTOs, rate-limit middleware
│ ├── auth/ # Better Auth config and helpers
│ ├── config/ # Shared tsconfig + vitest base configs
│ ├── db/ # Drizzle client + schema (Postgres)
│ ├── email/ # Nodemailer transport + react-email templates
│ ├── env/ # `@t3-oss/env-core` server env (auto-loads root `.env`)
│ ├── fonts/ # Google Fonts metadata
│ ├── import/ # JSON Resume / Reactive Resume v3/v4 importers
│ ├── pdf/ # React PDF document, fonts, 14 templates, shared primitives
│ ├── runtime-externals/ # Declares bcrypt, sharp, @aws-sdk/client-s3 as runtime-only
│ ├── schema/ # Zod schemas (resume data, templates, page, analysis, icons)
│ ├── scripts/ # Standalone tsx scripts (db reset, font generation)
│ ├── ui/ # Shared Base UI + shadcn-style components
│ └── utils/ # Small focused helpers (color, date, html, sanitize, etc.)
├── migrations/ # Drizzle-generated SQL + snapshots (one folder per migration)
├── docs/ # Project documentation
├── skills/ # Internal agent skill definitions
├── data/ # Local-FS storage root (when S3 is unset) — gitignored runtime data
├── .vite-hooks/ # Lefthook-managed git hooks (commit-msg, pre-commit)
├── .github/ # GitHub Actions / issue templates
├── .claude/ # Project-local Claude/Codex agent assets
├── .codex/
├── .planning/ # GSD planning + codebase maps (this directory)
├── .vscode/
├── compose.dev.yml # Postgres + SeaweedFS for local dev
├── compose.yml # Production-shaped compose
├── Dockerfile # Node 24 multi-stage build
├── AGENTS.md # Canonical agent guide (symlinked from CLAUDE.md)
├── README.md
├── SECURITY.md
├── LICENSE
├── package.json # Root scripts (turbo run …) + workspace devDeps
├── pnpm-workspace.yaml # `apps/*` + `packages/*`
├── pnpm-lock.yaml
├── turbo.json # Pipeline + globalEnv allowlist
├── biome.json # Biome (lint + format) config
├── knip.json # Dead-code/dep analysis config
├── lefthook.yml # Git hooks
├── commitlint.config.cjs
├── crowdin.yml # Translation sync config
├── tsconfig.json # Root TS solution config
├── vitest.shared.ts / vitest.setup.ts # Shared vitest config and global setup
├── .ncurc.cjs # npm-check-updates ignore list
├── .env.example # Documented env vars
└── .gitignore / .dockerignore
```
## Directory Purposes
**`apps/web/`:**
- Purpose: The only deployed app — TanStack Start / React 19 / Vite / Nitro.
- Contains: Routes, components, dialogs, hooks, libs, server entry, build config.
- Key files: `apps/web/vite.config.ts`, `apps/web/src/router.tsx`, `apps/web/src/server.ts`, `apps/web/src/routes/__root.tsx`, `apps/web/plugins/1.migrate.ts`, `apps/web/plugins/2.storage.ts`.
**`apps/web/src/routes/`:**
- Purpose: TanStack Router file-based route tree. Each file is either a UI route, a server-only endpoint (`server.handlers`), or both.
- Notable subtrees:
- `__root.tsx` — global HTML shell, providers, head/meta, PWA scripts.
- `_home/` — public marketing layout (`route.tsx`, `index.tsx`, `-sections/{hero,features,faq,testimonials,...}.tsx`).
- `auth/` — login/register/2FA/password flows and OAuth callback (`oauth.ts`).
- `dashboard/` — authenticated dashboard (`route.tsx`, `index.tsx`, `resumes/`, `settings/{profile,preferences,api-keys,authentication,integrations,job-search,danger-zone}.tsx`, `-components/{header,sidebar,functions}.{ts,tsx}`).
- `builder/$resumeId/` — resume builder (`route.tsx` shell, `index.tsx` browser-only preview, `-components/`, `-sidebar/{left,right}/`, `-store/{section,sidebar}.ts`).
- `$username/$slug.tsx` — public/shared resume route (`ssr: "data-only"`).
- `api/` — server-only endpoints (`rpc.$.ts`, `auth.$.ts`, `health.ts`, `openapi.$.ts`, `uploads/$userId.$.ts`, `-helpers/resume-pdf.ts`).
- `mcp/` — Model Context Protocol server (`index.ts`, `-helpers/{tools,resources,prompts,mcp-server-card,mcp-tool-names,tool-annotations}.ts`).
- `[.]well-known/` — OAuth/OIDC/MCP discovery documents.
- `uploads/$userId.$.tsx` — etag/security-validated file serving.
- `templates/$.tsx` — template preview/download.
- `schema[.]json.ts` — `/schema.json` endpoint.
**`apps/web/src/components/`:**
- Purpose: Reusable, app-scoped components organized by domain.
- Subdirectories:
- `animation/` — Motion-driven UI (`comet-card`, `count-up`, `spotlight`, `text-mask`).
- `command-palette/` — Cmd-K UI (`index.tsx`, `store.ts`, `pages/`).
- `input/` — Custom inputs (`chip-input`, `color-picker`, `github-stars-button`, `icon-picker`, `rich-input`, `url-input`).
- `layout/` — Error/loading/not-found screens, breakpoint indicator.
- `level/`, `locale/`, `theme/`, `typography/` — combobox/toggle utilities for those concerns.
- `resume/` — Builder preview surface (`preview.tsx`, `preview.browser.tsx`, `preview.shared.tsx`, `pdf-canvas.tsx`, `builder-resume-draft.ts`).
- `ui/` — App-level UI extensions (`combobox.tsx`, `copyright.tsx`).
- `user/` — User dropdown menu.
**`apps/web/src/libs/`:**
- Purpose: Glue between UI and external systems.
- Contents:
- `auth/{client.ts,session.ts}` — Better Auth browser client + SSR session getter.
- `orpc/client.ts` — Isomorphic oRPC client (in-process server + RPCLink browser).
- `query/client.ts` — TanStack Query client factory.
- `resume/` — Section, PDF, and ordering helpers (`make-section-item.ts`, `move-item.ts`, `section-actions.ts`, `section-title.ts`, `section-title-locale.ts`, `pdf-document.tsx`, `pdf-document.server.tsx`, `section.tsx`).
- `theme.ts`, `locale.ts`, `pwa.ts`, `error-message.ts`, `tanstack-form.tsx` — direct app utilities.
**`apps/web/src/dialogs/`:**
- Purpose: Global imperative dialog system.
- Contents: `manager.tsx` (renders open dialogs), `store.ts` (Zustand store), then domain dialogs under `auth/`, `resume/{sections,template,index.tsx,import.tsx}`, `api-key/`.
**`apps/web/src/hooks/`:**
- Purpose: Web-app hooks. (Shared cross-package hooks live in `packages/ui/src/hooks/`.)
- Contents: `use-confirm.tsx`, `use-controlled-state.tsx`, `use-form-blocker.tsx`, `use-mobile.tsx`, `use-prompt.tsx`, `use-sync-form-values.ts`.
**`apps/web/plugins/`:**
- Purpose: Nitro startup plugins.
- Contents: `1.migrate.ts` (runs Drizzle migrations on boot), `2.storage.ts` (validates the local data dir when S3 isn't configured).
**`apps/web/public/`:**
- Purpose: Static assets served at the site root.
- Notable subdirs: `templates/{jpg,pdf}/` (per-template previews), `screenshots/` (PWA + marketing), `opengraph/`, `icon/`, `logo/`, `fonts/`, `photos/`, `sounds/`, `videos/`. Top-level files include `favicon.{ico,svg}`, `apple-touch-icon-180x180.png`, `manifest.webmanifest`, `pwa-{64,192,512}x.png`, `maskable-icon-512x512.png`, `robots.txt`, `sitemap.xml`, `funding.json`.
**`apps/web/locales/`:**
- Purpose: Lingui `.po` translation catalogs (~40 languages, `en-US` is source).
- Synced via `crowdin.yml` and `pnpm lingui:extract`.
**`packages/ai/`:**
- Purpose: AI prompt assets, patch-resume tool, sanitize/extraction helpers.
- Key paths: `packages/ai/src/prompts/{chat,analyze-resume,docx-parser,pdf-parser}-*.md`, `packages/ai/src/store.ts`, `packages/ai/src/tools/{patch-resume,patch-proposal}.ts`, `packages/ai/src/resume/{extraction-template,sanitize}.ts`.
**`packages/api/`:**
- Purpose: Server-side business logic exposed over oRPC. The only place oRPC procedures live.
- Key paths: `packages/api/src/context.ts` (auth context + `publicProcedure`/`protectedProcedure`), `packages/api/src/routers/{ai,auth,flags,resume,statistics,storage,index}.ts`, `packages/api/src/services/{resume,resume-events,storage,ai,auth,flags,statistics}.ts`, `packages/api/src/dto/resume.ts`, `packages/api/src/helpers/{resume-access,resume-access-policy}.ts`, `packages/api/src/middleware/rate-limit/index.ts`.
**`packages/auth/`:**
- Purpose: Better Auth instance and types reused by web routes and API context.
- Key paths: `packages/auth/src/config.ts` (Drizzle adapter, OAuth/passkey/2FA/api-key/JWT/MCP OAuth provider), `packages/auth/src/functions.ts`, `packages/auth/src/types.ts`.
**`packages/config/`:**
- Purpose: Shared tsconfig and vitest base configs consumed via workspace devDep.
- Key paths: `packages/config/tsconfig.base.json`, `packages/config/vitest.config.ts`.
**`packages/db/`:**
- Purpose: Drizzle client and schema. Migration tooling but **migrations live in repo-root `migrations/`** (`packages/db/drizzle.config.ts` → `out: "../../migrations"`).
- Key paths: `packages/db/src/client.ts` (singleton `pg.Pool` + `drizzle()` on `globalThis`), `packages/db/src/schema/{auth,resume,index}.ts`, `packages/db/src/relations.ts`.
**`packages/email/`:**
- Purpose: SMTP transport + react-email templates.
- Key paths: `packages/email/src/transport.ts`, `packages/email/src/templates/{auth,reset-password,verify-email,verify-email-change}.tsx`.
**`packages/env/`:**
- Purpose: Type-safe server environment variables. Auto-loads the repo-root `.env` for app/server callers (drizzle-kit must export `DATABASE_URL` manually).
- Key paths: `packages/env/src/server.ts`.
**`packages/fonts/`:**
- Purpose: Generated Google Fonts metadata used by the typography combobox and React PDF font registration.
- Key paths: `packages/fonts/src/index.ts`, `packages/fonts/src/webfontlist.json` (regenerated by `packages/scripts/fonts/generate.ts`).
**`packages/import/`:**
- Purpose: Importers that convert external resume formats into the shared `ResumeData` schema.
- Key paths: `packages/import/src/{json-resume,reactive-resume-json,reactive-resume-v4-json}.tsx`.
**`packages/pdf/`:**
- Purpose: React PDF rendering — the same code paths used by the browser preview and the server-side PDF download.
- Key paths: `packages/pdf/src/document.tsx`, `packages/pdf/src/context.tsx`, `packages/pdf/src/section-title.ts`, `packages/pdf/src/hooks/use-register-fonts.ts`, `packages/pdf/src/templates/index.ts`, `packages/pdf/src/templates/<name>/<Name>Page.tsx` (14 templates: `azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`), shared primitives under `packages/pdf/src/templates/shared/` (`filtering.ts`, `rich-text.tsx`, `sections.tsx`, `primitives.tsx`, `picture.ts`, `page-size.ts`, `columns.ts`, `metrics.ts`, `meta-line.tsx`, `contact.ts`, `contact-item.tsx`, `level-display.tsx`, `section-links.ts`, `rich-text-html.ts`, `rich-text-spacing.ts`, `styles.ts`, `types.ts`, `context.tsx`).
**`packages/runtime-externals/`:**
- Purpose: Vendors `bcrypt`, `sharp`, `@aws-sdk/client-s3` so they stay runtime-only (Vite externalizes them in `apps/web/vite.config.ts:55`).
- No `src/` — `package.json` is the entire surface.
**`packages/schema/`:**
- Purpose: Source-of-truth Zod schemas for resume data, templates, page settings, AI analysis, and icon catalog.
- Key paths: `packages/schema/src/resume/{data,default,sample,analysis}.ts`, `packages/schema/src/templates.ts`, `packages/schema/src/page.ts`, `packages/schema/src/icons.ts`.
**`packages/scripts/`:**
- Purpose: Standalone tsx scripts; no exports.
- Key paths: `packages/scripts/database/reset.ts` (`pnpm --filter @reactive-resume/scripts db:reset`), `packages/scripts/fonts/generate.ts` (`pnpm --filter @reactive-resume/scripts fonts:generate`).
**`packages/ui/`:**
- Purpose: Shared component library (Base UI primitives + shadcn-style wrappers, Tailwind v4 styles).
- Key paths: `packages/ui/src/components/{dialog,dropdown-menu,command,resizable,form,tooltip,sonner,…}.tsx`, `packages/ui/src/hooks/{use-confirm,use-controlled-state,use-mobile,use-prompt}.tsx`, `packages/ui/src/styles/globals.css`.
**`packages/utils/`:**
- Purpose: Pure utility functions used everywhere. Each helper has its own export path; do not import internal files.
- Key paths: `packages/utils/src/{color,date,field,file,html,level,locale,network-icons,rate-limit,sanitize,string,style,url}.ts`, Node-only `packages/utils/src/{monorepo.node,url-security.node}.ts`, and `packages/utils/src/resume/{docx/index.ts,patch.ts}`.
**`migrations/`:**
- Purpose: Drizzle-generated migration directories (one per migration), kept at the repo root.
- Layout: each `YYYYMMDDhhmmss_<adjective>_<noun>/` contains `migration.sql` (the SQL Drizzle will apply) and `snapshot.json` (Drizzle's internal state).
- Applied by `apps/web/plugins/1.migrate.ts` on every server boot, and manually by `pnpm db:migrate`. Generated by `pnpm db:generate` (which writes here because of `out: "../../migrations"` in `packages/db/drizzle.config.ts`). Do not hand-edit `migration.sql`/`snapshot.json`.
**`data/` (and `apps/web/data/`):**
- Purpose: Default local-filesystem storage root when S3 vars are unset. `<workspace>/data` is validated/created at boot by `apps/web/plugins/2.storage.ts`. Override with `LOCAL_STORAGE_PATH` (must be absolute).
- `data/statistics/` and `apps/web/data/statistics/` exist as runtime byproducts; treat as gitignored runtime state.
**`.vite-hooks/`:**
- Purpose: Lefthook-managed git hooks (`pre-commit` runs `biome check`, `commit-msg` runs commitlint). Configured by `lefthook.yml` and `commitlint.config.cjs`.
**`.planning/`:**
- Purpose: GSD planning artifacts.
- Subdirectories: `.planning/codebase/` (this directory — analysis docs).
## Key File Locations
**Entry Points:**
- `apps/web/src/server.ts` — Nitro fetch entry.
- `apps/web/src/router.tsx` — Router factory.
- `apps/web/src/routes/__root.tsx` — Root route + global providers.
- `apps/web/plugins/1.migrate.ts` — Migration on boot.
- `apps/web/plugins/2.storage.ts` — Local storage validation on boot.
**Configuration:**
- `apps/web/vite.config.ts` — Vite + TanStack Start + Nitro + PWA + Lingui.
- `turbo.json` — Pipeline + `globalEnv` allowlist.
- `pnpm-workspace.yaml` — Workspaces (`apps/*` + `packages/*`).
- `biome.json` — Lint + format rules.
- `knip.json` — Dead-code analysis config.
- `lefthook.yml` — Git hooks.
- `packages/db/drizzle.config.ts` — Drizzle migration config (writes to `../../migrations`).
- `packages/env/src/server.ts` — Server env schema + `.env` loader.
- `apps/web/lingui.config.ts` — i18n extract config.
- `compose.dev.yml` / `compose.yml` — Postgres + SeaweedFS (dev) and prod-shaped compose.
**Core API:**
- `packages/api/src/routers/index.ts` — Router root.
- `packages/api/src/context.ts` — Auth resolver + procedure factories.
- `packages/api/src/services/resume.ts` — Resume CRUD/patch/lock/password/duplication.
- `packages/api/src/services/storage.ts` — S3 + local FS storage abstraction.
- `packages/api/src/helpers/resume-access-policy.ts` — Visibility/redaction policy.
**Core data:**
- `packages/db/src/schema/resume.ts` — Resume, statistics, analysis tables.
- `packages/db/src/schema/auth.ts` — Better Auth tables.
- `packages/db/src/client.ts` — Singleton `pg.Pool` + `drizzle()` client.
- `packages/schema/src/resume/data.ts` — Canonical Zod schema for `ResumeData`.
- `packages/schema/src/templates.ts` — Enum of template names.
**Core PDF:**
- `packages/pdf/src/document.tsx` — `ResumeDocument` root component.
- `packages/pdf/src/templates/index.ts` — Template registry.
- `packages/pdf/src/hooks/use-register-fonts.ts` — Font registration + CJK fallbacks.
- `packages/pdf/src/templates/shared/filtering.ts` — Shared section filtering.
**Auth:**
- `packages/auth/src/config.ts` — Better Auth instance.
- `apps/web/src/routes/api/auth.$.ts` — `/api/auth/*` handler with OAuth sanitization.
- `apps/web/src/libs/auth/{client.ts,session.ts}` — Browser client + SSR session helper.
**Testing:**
- `vitest.shared.ts`, `vitest.setup.ts` — Repo-wide setup (Testing Library, jest-dom, happy-dom env).
- `packages/config/vitest.config.ts` — Reusable Vitest base.
- `apps/web/vitest.config.ts` — Web app Vitest config.
## Naming Conventions
**Files:**
- Source files: `kebab-case.ts` / `kebab-case.tsx` (e.g. `resume-access-policy.ts`, `command-palette.tsx`).
- Component PascalCase is reserved for component names *inside* files; filenames stay kebab-case (e.g. `Button` exported from `packages/ui/src/components/button.tsx`).
- PDF template components are the one PascalCase exception: `packages/pdf/src/templates/azurill/AzurillPage.tsx` (kept that way because the directory name doubles as the template enum value).
- Tests sit next to their subject: `foo.ts` ↔ `foo.test.ts`, `foo.tsx` ↔ `foo.test.tsx`.
- Browser-only modules use a `.browser.tsx` suffix (e.g. `apps/web/src/components/resume/preview.browser.tsx`).
- Server-only modules use a `.server.tsx` suffix when they live next to browser counterparts (e.g. `apps/web/src/libs/resume/pdf-document.server.tsx`).
- Generated files use `.gen.ts` (e.g. `apps/web/src/routeTree.gen.ts`).
- Node-only utilities use a `.node.ts` suffix (e.g. `packages/utils/src/monorepo.node.ts`, `packages/utils/src/url-security.node.ts`).
**Routes (TanStack Router file conventions):**
- `$param.tsx` — dynamic path segment (e.g. `apps/web/src/routes/$username/$slug.tsx`).
- `$.tsx` — splat (matches the rest of the path; used for `api/rpc/$`, `api/auth/$`, `[.]well-known/$`).
- `_layout/` (underscore prefix) — pathless layout group (e.g. `apps/web/src/routes/_home/`).
- `-folder/` (dash prefix) — colocated, non-route helpers (`-components/`, `-sidebar/`, `-store/`, `-sections/`, `-helpers/`). The router ignores these.
- `[.]well-known` — escaped folder name for paths starting with a dot.
- `name[.]json.ts` — escaped dot in a route filename (used for `/schema.json`).
- `route.tsx` — layout/wrapper route at a directory level; `index.tsx` — index route inside it.
**Directories:**
- `apps/<app>` and `packages/<name>` — kebab-case workspace members.
- `packages/<name>/src/<subdomain>/<file>.ts` — every public path in `package.json` exports points into `src/`.
**Package names:** All workspace packages are scoped under `@reactive-resume/*` (`api`, `auth`, `db`, `ui`, etc.). The web app is just `web`.
## Where to Add New Code
**New oRPC procedure:**
- Define in `packages/api/src/routers/<domain>.ts`, register it on the exported router map, and add corresponding business logic to `packages/api/src/services/<domain>.ts`.
- If authenticated, prefer `protectedProcedure` from `packages/api/src/context.ts`.
- If it mutates resumes, attach `resumeMutationRateLimit` from `packages/api/src/middleware/rate-limit/index.ts`.
- Define input/output Zod schemas in `packages/api/src/dto/<domain>.ts` when reused.
**New database table or column:**
- Add the table/column to `packages/db/src/schema/<file>.ts`, update `packages/db/src/relations.ts` if needed, re-export from `packages/db/src/schema/index.ts`.
- Run `DATABASE_URL=... pnpm db:generate` to write a migration directory under `migrations/`.
- Apply with `DATABASE_URL=... pnpm db:migrate` (or just start the app — `apps/web/plugins/1.migrate.ts` runs them on boot).
**New resume field or section:**
- Update Zod first in `packages/schema/src/resume/data.ts` (and `default.ts` / `sample.ts` if applicable).
- Adjust API DTOs (`packages/api/src/dto/resume.ts`), importers (`packages/import/src/*.tsx`), PDF templates and shared primitives (`packages/pdf/src/templates/...`), and the builder forms under `apps/web/src/routes/builder/$resumeId/-sidebar/`.
**New resume template:**
- Add to the template enum in `packages/schema/src/templates.ts`.
- Implement the page component at `packages/pdf/src/templates/<name>/<Name>Page.tsx` and register it in `packages/pdf/src/templates/index.ts`.
- Drop static previews into `apps/web/public/templates/jpg/<name>.jpg` and `apps/web/public/templates/pdf/<name>.pdf`.
**New web route:**
- Add the file under `apps/web/src/routes/...`. Use `$param.tsx` for dynamic segments, `_layout/` for pathless groups, and `-folder/` for colocated helpers.
- The route tree regenerates into `apps/web/src/routeTree.gen.ts` — do not hand-edit.
- For browser-only sub-routes, set `ssr: false` (see `apps/web/src/routes/builder/$resumeId/index.tsx`) or `ssr: "data-only"` (see `apps/web/src/routes/$username/$slug.tsx`).
**New server-only HTTP endpoint:**
- Add a route file (typically under `apps/web/src/routes/api/`) and export `Route = createFileRoute(...)({ server: { handlers: { GET/POST/ANY: handler } } })`.
- Import server-only deps (`@reactive-resume/db/client`, `@reactive-resume/api/services/*`) only inside the handler module so they stay out of the client bundle.
**New shared component:**
- App-only: `apps/web/src/components/<group>/<name>.tsx` (with colocated test if behaviour is non-trivial).
- Reused across packages: `packages/ui/src/components/<name>.tsx` (export via deep path `@reactive-resume/ui/components/<name>`).
**New shared utility:**
- Add to `packages/utils/src/<topic>.ts` and an explicit `"./<topic>": "./src/<topic>.ts"` entry in `packages/utils/package.json` `exports`. Never import private files across packages.
**New dialog:**
- Implement under `apps/web/src/dialogs/<group>/<name>.tsx`.
- Register with the dialog store and ensure `apps/web/src/dialogs/manager.tsx` renders it.
**New AI prompt or tool:**
- Prompts go in `packages/ai/src/prompts/<name>.md` (re-exported via `packages/ai/src/prompts.ts`).
- Tools go in `packages/ai/src/tools/<name>.ts` and are exposed through the AI router in `packages/api/src/routers/ai.ts`.
**New MCP tool/resource/prompt:**
- Register in `apps/web/src/routes/mcp/-helpers/{tools,resources,prompts}.ts`; reuse existing oRPC services for actual logic.
## Special Directories
**`apps/web/src/routes/`:**
- Purpose: Source for the file-based route tree.
- Generated artifact: `apps/web/src/routeTree.gen.ts`.
- Committed: Yes (the tree file is committed; regenerated by TanStack Router tooling on dev/build).
**`migrations/`:**
- Purpose: Drizzle-generated SQL + snapshots.
- Generated: Yes (by `pnpm db:generate`).
- Committed: Yes — do not hand-edit, but always commit new migration folders.
**`apps/web/.output/`:**
- Purpose: Nitro/Vite production build output (server + client + PWA assets).
- Generated: Yes (by `pnpm build`).
- Committed: No (gitignored).
**`apps/web/locales/`:**
- Purpose: Lingui `.po` catalogs.
- Generated: `en-US.po` is the source; other locales are synced via Crowdin (`crowdin.yml`).
- Committed: Yes.
**`data/` and `apps/web/data/`:**
- Purpose: Default local storage root when S3 is unset (`<workspace>/data`).
- Generated: Yes (at runtime by `apps/web/plugins/2.storage.ts` or service calls).
- Committed: No (gitignored runtime state).
**`.turbo/`, `.pnpm-store/`, `node_modules/`:**
- Purpose: Tool caches and dependency stores.
- Committed: No.
**`.vite-hooks/`:**
- Purpose: Lefthook-installed git hooks (`commit-msg`, `pre-commit`).
- Committed: Yes (so contributors get hooks automatically), but the underlying behavior is defined by `lefthook.yml`.
**`packages/runtime-externals/`:**
- Purpose: Marks `bcrypt`, `sharp`, `@aws-sdk/client-s3` as runtime dependencies that Vite externalizes.
- No source files — package.json is the entire contract.
## Files / Locations to Avoid Hand-Editing
- `apps/web/src/routeTree.gen.ts` — regenerated by TanStack Router tooling.
- `migrations/<timestamp>_<name>/migration.sql` and `snapshot.json` — generated by `drizzle-kit`. Add a new migration via `pnpm db:generate` instead of editing past ones.
- `pnpm-lock.yaml` — managed by pnpm. Update via `pnpm install`.
- `apps/web/.output/`, `apps/web/coverage/`, `packages/*/coverage/`, `packages/*/reports/` — build/test artifacts.
- `apps/web/locales/*.po` (except `en-US.po`) — synced from Crowdin per `crowdin.yml`.
- `apps/web/public/screenshots/`, `apps/web/public/opengraph/`, `apps/web/public/templates/{jpg,pdf}/` — regenerated assets; replace files wholesale rather than diff-editing.
---
*Structure analysis: 2026-05-11*
+253
View File
@@ -0,0 +1,253 @@
# Testing Patterns
**Analysis Date:** 2026-05-11
## Test Framework
**Runner:** Vitest 4.x.
- Root devDependency in `package.json`: `"vitest": "^4.1.5"`, `"@vitest/coverage-v8": "^4.1.5"`.
- Every workspace package and `apps/web` has its own `vitest.config.ts` that delegates to the shared factory at `vitest.shared.ts`.
**DOM environment:** `happy-dom` 20.x (migrated from jsdom in commit `7a60a42a0`). Default test environment per `vitest.shared.ts:19` is `"node"`; per-package configs opt into browser-like envs.
**Assertion / testing libraries** (root `package.json` devDependencies):
- `@testing-library/react` ^16.3.2
- `@testing-library/dom` ^10.4.1
- `@testing-library/jest-dom` ^6.9.1 — registered globally in `vitest.setup.ts:1`
- `@testing-library/user-event` ^14.6.1
**Run commands** (root `package.json`):
```bash
pnpm test # turbo run test → vitest run --passWithNoTests in every package
pnpm test:coverage # turbo run test:coverage → adds --coverage flag
pnpm test:ci # adds GitHub Actions, JSON, and JUnit reporters
pnpm test:agent # agent-friendly reporter + JSON output for agentic runs
```
Per-package commands (uniform across all packages, see `packages/api/package.json:13-19`):
```bash
pnpm --filter @reactive-resume/utils test
pnpm --filter @reactive-resume/api test
pnpm --filter web test
```
Vitest test paths are package-relative when filtering: `pnpm --filter @reactive-resume/utils test -- src/string.test.ts`.
## Shared Vitest Configuration
`vitest.shared.ts` exports `createVitestProjectConfig({ name, dirname, environment, plugins })`. Highlights:
- `root: dirname` — each package runs in isolation.
- `envDir: workspaceRoot` — `.env` at repo root is loaded for every package.
- `resolve: { tsconfigPaths: true }` — TS path aliases resolve from the package's own `tsconfig.json`.
- `setupFiles: [./vitest.setup.ts]` — global hooks applied to all projects.
- `include: ["src/**/*.{test,spec}.?(c|m)[jt]s?(x)"]` — both `.test.*` and `.spec.*` are picked up.
- `exclude: ["node_modules", "dist", ".output", "coverage", "reports"]`.
- `pool: "threads"`, `isolate: false` — fast threaded execution with shared module state inside a worker.
- `passWithNoTests: true` — packages without tests don't fail CI.
- `environmentOptions.happyDOM` disables JS/CSS file loading and navigation for safety.
Coverage is configured directly in `vitest.shared.ts:49-56`:
- Provider: `v8`
- Output: `./coverage` per package
- Reporters: `text`, `text-summary`, `json-summary`, `json`, `lcov`, `html`
- Include: `src/**/*.{ts,tsx}`
- Exclude: `src/**/*.{test,spec}.*`, `src/**/*.d.ts`, `src/routeTree.gen.ts`
- `reportOnFailure: true`
No global coverage thresholds are enforced (no `thresholds: {...}` block). Per-package coverage HTML lives under each package's `coverage/` directory after `pnpm test:coverage`.
## Global Setup (`vitest.setup.ts`)
Applied to every project:
1. `import "@testing-library/jest-dom/vitest"` — registers `toBeInTheDocument`, `toHaveAttribute`, etc.
2. `afterEach(() => cleanup())` — explicit RTL cleanup (Vitest doesn't expose `afterEach` globally without `test.globals: true`).
3. Polyfills for jsdom/happy-dom gaps: `ResizeObserver`, `IntersectionObserver`, `Element.prototype.scrollIntoView`, `window.matchMedia` (used by `cmdk`, Base UI, `next-themes`).
## Per-Package Vitest Configs
All `vitest.config.ts` files reuse the shared factory. Notable variants:
- **Node default** (`packages/utils/vitest.config.ts`, `packages/api/vitest.config.ts`, `packages/db/vitest.config.ts`, `packages/schema/vitest.config.ts`, `packages/ai/vitest.config.ts`, `packages/email/vitest.config.ts`, `packages/fonts/vitest.config.ts`, `packages/env/vitest.config.ts`, `packages/auth/vitest.config.ts`, `packages/import/vitest.config.ts`, `packages/pdf/vitest.config.ts`, `packages/config/vitest.config.ts`) — `environment: "node"`.
- **DOM** (`packages/ui/vitest.config.ts:7`) — `environment: "happy-dom"` for component tests.
- **Web app** (`apps/web/vitest.config.ts`) — `environment: "node"` plus Vite plugins to mirror dev: `@tailwindcss/vite`, `@lingui/vite-plugin` (with `linguiTransformerBabelPreset`), and `@rolldown/plugin-babel`. Individual web tests opt into the DOM via the `@vitest-environment happy-dom` file-level comment.
Per-test environment overrides (declared at the top of the file as `// @vitest-environment happy-dom` or in a `/** @vitest-environment happy-dom */` block):
- `packages/utils/src/sanitize.test.ts`
- `packages/utils/src/file.test.ts`
- `apps/web/src/components/resume/preview.browser.test.tsx`
- `apps/web/src/components/resume/preview.shared.test.tsx`
- `apps/web/src/components/typography/combobox.test.tsx`
## Test File Organization
**Location:** Co-located with implementation. `foo.ts` lives next to `foo.test.ts` (or `foo.test.tsx` for React).
**Naming:**
- `<name>.test.ts` — Node/pure logic (e.g. `packages/utils/src/string.test.ts`).
- `<name>.test.tsx` — JSX/component tests (e.g. `packages/ui/src/components/button.test.tsx`).
- `<name>.node.test.ts` — Node-only modules whose implementation is also `.node.ts` (e.g. `packages/utils/src/url-security.node.test.ts`, `packages/utils/src/monorepo.node.test.ts`).
- No `.spec.*` files in the repo today, but the include pattern supports them.
**Test counts (current):** 127 `*.test.ts` files + 98 `*.test.tsx` files across `packages/` and `apps/web/src/`.
**Hot spots (where coverage is densest):**
- `packages/utils/src/*.test.ts` — string, color, html, date, level, locale, sanitize, rate-limit, field, file, network-icons, style, url, url-security.node, monorepo.node, plus `resume/patch.test.ts`.
- `packages/ui/src/components/*.test.tsx` — ~30+ component tests (button, dialog, alert, badge, card, combobox, command, popover, scroll-area, sidebar, switch, tabs, textarea, toggle, tooltip, etc.).
- `packages/pdf/src/templates/shared/*.test.ts` — columns, section-links, rich-text, metrics, picture, filtering.
- `packages/pdf/src/section-title.test.ts` and `packages/pdf/src/hooks/use-register-fonts.test.ts`.
- `packages/api/src/{dto,helpers,services}/*.test.ts` — `dto/resume`, `helpers/resume-access-policy`, `services/ai`.
- `packages/schema/src/{templates,page}.test.ts` and `packages/schema/src/resume/{data,default}.test.ts`.
- `packages/ai/src/{tools,resume}/*.test.ts` — patch-proposal, sanitize, extraction-template.
- `packages/import/src/reactive-resume-v4-json.test.ts`, `packages/fonts/src/index.test.ts`.
- `apps/web/src/libs/{pwa,locale,theme,error-message}.test.ts`, `apps/web/src/dialogs/store.test.ts`, `apps/web/src/components/resume/preview.{browser,shared}.test.tsx`, `apps/web/src/components/typography/combobox.test.tsx`.
## Test Structure Patterns
**Idiomatic skeleton** (from `packages/utils/src/string.test.ts:1-21` and `packages/api/src/helpers/resume-access-policy.test.ts:1-17`):
```typescript
import { describe, expect, it } from "vitest";
import { thingUnderTest } from "./thing";
describe("thingUnderTest", () => {
it("returns X for Y", () => {
expect(thingUnderTest(input)).toBe(expected);
});
it("returns Z for empty input", () => {
expect(thingUnderTest("")).toBe("");
});
});
```
**Patterns observed:**
- Top-level `describe` per exported function; nested `describe` blocks group behaviors.
- One assertion focus per `it` — short, declarative names ("returns X", "throws Y when Z", "does not mutate the input").
- Negative cases are first-class — every helper has tests for `null`, empty string, unknown shapes, etc.
- `it.each([...] as const)("variant=%s renders without throwing", (variant) => {...})` for matrix tests over discriminated union variants (see `packages/ui/src/components/button.test.tsx:55-79`).
- Setup with `beforeEach` / `afterEach` is used only when needed (timers, temp dirs, store reset). Example: `apps/web/src/dialogs/store.test.ts:4-13` resets a Zustand store between tests with `useDialogStore.setState(...)`.
- Temp directories use `fs.mkdtempSync` + `realpathSync` and are torn down in `afterEach` (`packages/utils/src/monorepo.node.test.ts:7-17`).
- Fake timers via `vi.useFakeTimers()` / `vi.advanceTimersByTime(300)` for animation/transition assertions (`apps/web/src/dialogs/store.test.ts:54-65`).
## Mocking
**Library:** Vitest's built-in `vi` (no Jest). Used sparingly — most tests cover pure functions.
**Patterns:**
- `vi.fn()` for callback assertions: `expect(onClick).toHaveBeenCalledOnce()` (`packages/ui/src/components/button.test.tsx:32-37`).
- `vi.fn().mockResolvedValue(true)` for async handlers (`apps/web/src/dialogs/store.test.ts:86-93`).
- `vi.mock("module-path", () => ({ ... }))` for replacing modules. Heaviest example: `apps/web/src/components/resume/preview.browser.test.tsx:25-81` mocks `@react-pdf/renderer`, `@/libs/resume/pdf-document`, `./builder-resume-draft`, and `./pdf-canvas` so the preview component can be exercised without React PDF.
- `vi.hoisted(() => ({ ... }))` to share mutable state with hoisted `vi.mock` factories (`apps/web/src/components/resume/preview.browser.test.tsx:8-12`). This is required because `vi.mock` calls are hoisted above imports.
- Spies via `vi.spyOn` are rare; mock modules are preferred so the real implementation stays out of scope.
**Test data / fixtures:**
- No central `fixtures/` directory. Tests build minimal objects inline or extend canonical defaults from the schema package:
- `import { defaultResumeData } from "@reactive-resume/schema/resume/default"` (used by `packages/api/src/helpers/resume-access-policy.test.ts:2`).
- `import { sampleResumeData } from "@reactive-resume/schema/resume/sample"` (used by `apps/web/src/components/resume/preview.browser.test.tsx:5`).
- Local helper builders are inlined per test file (e.g. the `resumeDataWithPageCount` helper at `apps/web/src/components/resume/preview.browser.test.tsx:14-23`).
## React Component Testing
**Render + query** via Testing Library (`packages/ui/src/components/button.test.tsx`):
```typescript
import { render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
render(<Button onClick={onClick}>Click</Button>);
await userEvent.click(screen.getByRole("button"));
```
**Accessibility-first queries:** `getByRole("button", { name: "..." })` is the default; `aria-label` is asserted explicitly (`packages/ui/src/components/button.test.tsx:81-84`).
**Slot / data-attr conventions:** Components expose `data-slot` for shadcn/Base UI slotting and tests assert it (`button.test.tsx:22-25`).
**Async UI:** Use `waitFor` from `@testing-library/react` and `await userEvent.*`. The `cleanup()` afterEach in `vitest.setup.ts` ensures DOM doesn't leak between tests despite `isolate: false`.
## Reporters
Per-package `package.json` scripts (uniform pattern, e.g. `packages/api/package.json:15-18`):
- `test` → `vitest run --passWithNoTests`
- `test:coverage` → `vitest run --coverage --passWithNoTests`
- `test:ci` → `vitest run --coverage --reporter=default --reporter=github-actions --reporter=json --reporter=junit --outputFile.json=reports/vitest-results.json --outputFile.junit=reports/vitest-junit.xml --passWithNoTests`
- `test:agent` → `vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests`
The `agent` reporter is a Vitest 4 feature optimized for LLM-driven runs; `pnpm test:agent` is the canonical script to use when an agent needs structured pass/fail data.
JUnit + JSON outputs land in `reports/` inside each package (Biome-ignored).
## CI
- **`.github/workflows/autofix.yml`** — runs on every PR and push to `main`. It runs `pnpm knip --fix` and `pnpm check`. **It does NOT run `pnpm test`.** Tests are not currently gating CI.
- **`.github/workflows/docker-build.yml`** — `workflow_dispatch` only; builds multi-arch images. No test step.
- **`.github/workflows/crowdin-sync.yml`** — translation sync only.
Tests are run locally (`pnpm test`) or by agents via `pnpm test:agent` / `pnpm test:ci`. No PR is currently blocked by a failing test on GitHub Actions.
## Test Types
- **Unit tests** — Dominant. Pure functions in `packages/utils`, `packages/schema`, `packages/pdf/src/templates/shared`, `packages/api/src/{helpers,dto}` are exercised in isolation.
- **Component tests** — `packages/ui/src/components/*.test.tsx` and a handful in `apps/web/src/components/`. Driven by `@testing-library/react` + `happy-dom` (file-level override) or `packages/ui`'s package-level `environment: "happy-dom"`.
- **Integration tests** — None against the live Drizzle client or the running TanStack Start server. `apps/web/src/components/resume/preview.browser.test.tsx` is the closest, mocking React PDF and exercising the preview pipeline end-to-end in happy-dom.
- **E2E / browser tests** — Not present. No Playwright, Cypress, or `vitest --browser` config.
## Common Patterns
**Async error testing:**
```typescript
expect(() => assertCanView({ userId: "u1", isPublic: false }, null)).toThrow();
try {
assertCanView({ userId: "u1", isPublic: false }, null);
expect.unreachable();
} catch (error: unknown) {
expect((error as { code?: string }).code).toBe("NOT_FOUND");
}
```
(See `packages/api/src/helpers/resume-access-policy.test.ts:29-44`.)
**Immutability assertions:**
```typescript
const before = JSON.stringify(resume);
redactResumeForViewer(resume, false);
expect(JSON.stringify(resume)).toBe(before);
```
(See `packages/api/src/helpers/resume-access-policy.test.ts:86-93`.)
**Time-sensitive logic:** UUIDv7 ordering is verified with a `setTimeout` and a string compare instead of mocking time (`packages/utils/src/string.test.ts:15-20`).
## Coverage Gaps Worth Flagging
These areas have implementation but no `*.test.*` files alongside them today — agents adding features here should consider adding tests.
- **`packages/email/src/transport.ts` and templates** — no tests. SMTP transport is untested.
- **`packages/env/src/server.ts`** — no tests for env-var schema validation.
- **`packages/auth/`** — no tests; Better Auth config and helpers are uncovered.
- **`packages/api/src/services/{resume,storage,statistics,auth,flags,resume-events}.ts`** — only `ai.ts` has a service-level test (`ai.test.ts`). Most resume mutation flow logic is exercised only indirectly through `helpers/resume-access-policy.test.ts` and `dto/resume.test.ts`.
- **`packages/api/src/routers/*`** — no router-level tests. End-to-end oRPC procedure behavior (auth + rate limit + service composition) is not asserted.
- **`packages/api/src/middleware/rate-limit/*`** — no tests.
- **`packages/db/src/schema/*`** — no tests (schema correctness is implicit, but no migration roundtrip tests).
- **`packages/scripts/`** — no tests.
- **`packages/runtime-externals/`** — no tests.
- **`apps/web/src/routes/**`** — route handlers (`api/rpc.$.ts`, `api/auth.$.ts`, `api/health.ts`, `uploads/...`, `mcp/...`, `auth/oauth.ts`) and most builder UI under `routes/builder/$resumeId` are uncovered.
- **`apps/web/src/dialogs/**`** — only `store.test.ts` covers the dialog store. Individual dialog components (resume create/update/import, two-factor, api-key) are uncovered.
- **`packages/pdf/src/templates/{azurill,bronzor,...}`** — individual template renderers have no tests; only the shared primitives in `templates/shared/` are covered.
When adding tests in any of these areas, follow the colocation rule (`foo.ts` ↔ `foo.test.ts`) and reuse `defaultResumeData` / `sampleResumeData` from `@reactive-resume/schema/resume/*` instead of inventing new fixtures.
---
*Testing analysis: 2026-05-11*
+106
View File
@@ -0,0 +1,106 @@
# AGENTS.md
## Cursor Cloud specific instructions
### Overview
Reactive Resume is a pnpm monorepo (Turborepo) with a single full-stack web app at `apps/web` (TanStack Start / React 19 / Vite) and ~15 internal packages under `packages/`. It runs as a single Node.js process on port 3000.
Internal packages are source-consumed through `package.json` export maps that point at `src` files. Do not assume package-local `dist` output exists unless a package explicitly adds it.
### Prerequisites
- **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.0.9** is managed via corepack (`corepack enable`).
### Codebase map
- `apps/web` is the only app. It owns TanStack Start routes, Vite/Nitro config, PWA setup, oRPC client wiring, route-level server handlers, and the resume builder UI.
- `packages/api` contains oRPC routers, services, DTOs, storage, resume access policy, statistics, AI services, and rate limiting. The web route `apps/web/src/routes/api/rpc.$.ts` exposes these routers at `/api/rpc`.
- `packages/auth` contains Better Auth config, auth helper functions, and exported auth types. The web route `apps/web/src/routes/api/auth.$.ts` delegates to `auth.handler`.
- `packages/db` contains the Drizzle client and schema. Migration files live at the repo root in `migrations/`.
- `packages/env` defines server environment validation and auto-loads the root `.env` for app/server code.
- `packages/schema` contains Zod schemas and typed resume/page/template models.
- `packages/pdf` contains the React PDF document, font registration, shared template primitives, and template implementations.
- `packages/ui` contains shared Base UI/shadcn-style components and hooks.
- `packages/fonts`, `packages/email`, `packages/import`, `packages/ai`, `packages/utils`, `packages/scripts`, `packages/config`, and `packages/runtime-externals` provide focused support surfaces. Prefer their existing exports over adding cross-package shortcuts.
### Web app conventions
- Routes are file-based under `apps/web/src/routes`. Do not hand-edit `apps/web/src/routeTree.gen.ts`; it is generated by TanStack Router tooling.
- Server-only route handlers use route `server.handlers` blocks, for example `api/rpc.$.ts`, `api/auth.$.ts`, `api/health.ts`, uploads, schema, OpenAPI, MCP, and `.well-known` routes.
- `apps/web/src/router.tsx` initializes router context with `queryClient`, `orpc`, `theme`, `locale`, `session`, and `flags`. Reuse route context where possible instead of refetching these concerns ad hoc.
- The builder shell lives under `apps/web/src/routes/builder/$resumeId`. The nested preview route is client-only (`ssr: false`), while the public resume route `apps/web/src/routes/$username/$slug.tsx` uses `ssr: "data-only"`.
- Browser-only resume preview code is split across `apps/web/src/components/resume/preview.tsx`, `preview.browser.tsx`, `pdf-canvas.tsx`, and shared helpers. Keep PDF.js/canvas/browser APIs out of SSR paths.
- The isomorphic oRPC client is in `apps/web/src/libs/orpc/client.ts`; server calls use an in-process router client and browser calls use `/api/rpc` with credentials included.
### Package and feature boundaries
- Add new API procedures in `packages/api/src/routers/*` and keep business logic in `packages/api/src/services/*` or helpers. Prefer `protectedProcedure` from `packages/api/src/context.ts` for authenticated procedures.
- Add database columns/tables in `packages/db/src/schema/*`, then generate root-level migrations with `pnpm db:generate`.
- Add or change resume data shape in `packages/schema/src/resume/*` first, then update API DTOs, importers, PDF rendering, and web forms that consume that shape.
- Add or rename templates in all relevant places: `packages/schema/src/templates.ts`, `packages/pdf/src/templates/index.ts`, template source under `packages/pdf/src/templates/<name>/`, and static previews under `apps/web/public/templates/{jpg,pdf}`.
- Shared PDF section filtering lives in `packages/pdf/src/templates/shared/filtering.ts`. Keep template-specific visual exceptions in the owning template directory unless multiple templates need the same behavior.
- `packages/pdf/src/hooks/use-register-fonts.ts` owns React PDF font registration, standard PDF font handling, CJK fallback stacks, and global hyphenation behavior.
- `packages/utils` has narrowly exported helpers. If another package needs a utility, add an explicit export path instead of importing private files.
### Database
PostgreSQL runs via Docker Compose:
```
sudo docker compose -f compose.dev.yml up -d postgres
```
The dev default connection string is `postgresql://postgres:postgres@localhost:5432/postgres`.
**Important**: `drizzle-kit` (used by `pnpm db:migrate`) reads `DATABASE_URL` from `process.env` directly — it does **not** auto-load the `.env` file. You must `export DATABASE_URL=...` before running migration commands, or set it in your shell profile.
The web app also runs migrations during Nitro startup via `apps/web/plugins/1.migrate.ts`. Manual `pnpm db:migrate` is mainly for first setup, migration debugging, or applying migrations without starting the app.
### Environment
Copy `.env.example` to `.env`. The three required variables are:
- `APP_URL` (default `http://localhost:3000`)
- `DATABASE_URL` (default `postgresql://postgres:postgres@localhost:5432/postgres`)
- `AUTH_SECRET` (any non-empty string)
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.
### Common commands
| Task | Command |
|------|---------|
| 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` |
| Generate migrations | `DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" pnpm db:generate` |
| Run migrations | `DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" pnpm db:migrate` |
| Dev server | `pnpm dev` (starts on port 3000) |
| Web dev server only | `pnpm dev:web` |
| Lint/format | `pnpm check` (Biome) |
| Tests | `pnpm test` (Vitest) |
| Build | `pnpm build` |
| Typecheck | `pnpm typecheck` |
For focused validation, prefer package filters before repo-wide commands, for example:
```
pnpm --filter web typecheck
pnpm --filter @reactive-resume/pdf test
pnpm --filter @reactive-resume/api test
```
Vitest test paths are package-relative when running through `pnpm --filter <package> test -- <path>`.
### Gotchas
- The dev server (`pnpm dev`) auto-runs migrations on startup via Nitro, so `pnpm db:migrate` is only strictly needed for first-time setup or after pulling new migration files.
- Email sending requires SMTP config; without it, emails are logged to console. This is fine for dev — the app still functions, but email verification links appear in server logs.
- The `lefthook.yml` pre-commit hook runs `biome check` on staged files. Run `pnpm check` before committing to avoid hook failures.
- `pnpm check` is write-capable (`biome check --write --unsafe .`). Call that out when using it, and use narrower Biome commands if you need a non-mutating inspection.
- Biome uses tabs, double quotes, line width 120, organized import groups, and sorted Tailwind classes for `clsx`, `cva`, and `cn`.
- Most packages use `tsgo --noEmit` for typechecking and `vitest run --passWithNoTests` for tests.
- There may be unrelated local edits in the worktree. Inspect `git status --short` first and avoid reverting files you did not touch.
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md
+3 -2
View File
@@ -25,7 +25,7 @@ RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store,sharing=locked \
pnpm install --frozen-lockfile
COPY --from=pruner /app/out/full/ ./
RUN pnpm turbo run build --filter=web
RUN rm -rf apps/web/.output && pnpm turbo run build --filter=web --force
FROM base AS runtime-pruner
COPY . .
@@ -50,7 +50,8 @@ LABEL org.opencontainers.image.documentation="https://docs.rxresu.me"
LABEL org.opencontainers.image.source="https://github.com/amruthpillai/reactive-resume"
ENV NODE_ENV="production" \
PORT=3000
PORT=3000 \
LOCAL_STORAGE_PATH=/app/data
WORKDIR /app
+7 -3
View File
@@ -21,7 +21,7 @@
<a href="https://discord.gg/aSyA5ZSxpb"><img src="https://img.shields.io/discord/1173518977851473940?style=flat-square&label=discord" alt="Discord" /></a>
<a href="https://crowdin.com/project/reactive-resume"><img src="https://badges.crowdin.net/reactive-resume/localized.svg?style=flat-square" alt="Crowdin" /></a>
<a href="https://github.com/sponsors/AmruthPillai"><img src="https://img.shields.io/github/sponsors/AmruthPillai?style=flat-square&label=sponsors" alt="Sponsors" /></a>
<a href="https://opencollective.com/reactive-resume"><img src="https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square&label=donations" alt="Donations" /></a>
<a href="https://opencollective.com/reactive-resume/donate"><img src="https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square&label=donations" alt="Donations" /></a>
</p>
</div>
@@ -36,7 +36,7 @@ Built with privacy as a core principle, Reactive Resume gives you complete owner
**Resume Building**
- Real-time preview as you type
- Multiple export formats (PDF, JSON)
- Multiple export formats (PDF, JSON, DOCX)
- Drag-and-drop section ordering
- Custom sections for any content type
- Rich text editor with formatting support
@@ -130,6 +130,10 @@ Built with privacy as a core principle, Reactive Resume gives you complete owner
<img src="apps/web/public/templates/jpg/meowth.jpg" alt="Meowth" width="150" />
<br /><sub><b>Meowth</b></sub>
</td>
<td align="center">
<img src="apps/web/public/templates/jpg/scizor.jpg" alt="Scizor" width="150" />
<br /><sub><b>Scizor</b></sub>
</td>
</tr>
</table>
@@ -208,7 +212,7 @@ Reactive Resume is and always will be free and open-source. If it has helped you
<a href="https://github.com/sponsors/AmruthPillai">
<img src="https://img.shields.io/badge/GitHub%20Sponsors-Support-ea4aaa?style=flat-square&logo=github-sponsors" alt="GitHub Sponsors" />
</a>
<a href="https://opencollective.com/reactive-resume">
<a href="https://opencollective.com/reactive-resume/donate">
<img src="https://img.shields.io/badge/Open%20Collective-Contribute-7FADF2?style=flat-square&logo=open-collective" alt="Open Collective" />
</a>
</p>
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rol} other {# rolle}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} voorstelle hersien"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Beslis! Jy kan jou CV met 'n enkele klik na PDF uitvoer. Die uitgevoerde PDF behou al jou uitleg en styl perfek."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Aanvaar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Aanvaar alles"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Aanvaarde voorstel"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Verkry programmatiese toegang tot jou CV's en data deur die API."
@@ -229,10 +246,38 @@ msgstr "Voeg ry voor by"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Na"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "KI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "KI-integrasie gedeaktiveer"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "KI-voorstel toegepas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "KI-voorstel verwerp."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "KI-voorstelle toegepas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "KI-voorstelle verwerp."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "KI CV-assistent"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanees"
@@ -367,10 +412,22 @@ msgstr "Studierigting"
msgid "Artificial Intelligence"
msgstr "Kunsmatige Intelligensie"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Vra vir 'n gerigte CV-verandering..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Vra vir 'n inkrementele verandering"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Aspekverhouding"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistent-versoek het misluk"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Basies"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Pragtige sjablone om van te kies, met meer op pad."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Voorheen"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengaals"
@@ -462,10 +523,6 @@ msgstr "Kolpuntlys"
msgid "By the community, for the community."
msgstr "Deur die gemeenskap, vir die gemeenskap."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Kan ek die sjablone pasmaak?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Kan ek my CV na PDF uitvoer?"
@@ -576,6 +633,14 @@ msgstr "Klaar"
msgid "Click here to select a file to import"
msgstr "Klik hier om 'n lêer te kies om in te voer"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Maak toe"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Maak KI-assistent toe"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kodeblok"
@@ -622,6 +687,10 @@ msgstr "Bevestig"
msgid "Connect"
msgstr "Koppel"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Koppel en verifieer 'n KI-verskaffer voordat u CV-redigeringsvoorstelle gebruik."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopieer hierdie geheime sleutel en gebruik dit in jou toepassings om toe
msgid "Copy URL"
msgstr "Kopieer URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Kon nie die KI-voorstel toepas nie."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Ontkoppel"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Maak toe"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentasie"
msgid "Don't have an account? <0/>"
msgstr "Het jy nie 'n rekening nie? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Skenk"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Skenk aan Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktiveer 2FA"
msgid "Enable AI Features"
msgstr "Aktiveer KI-funksies"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Aktiveer KI-integrasie"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktiveer twee-faktor-magtiging"
@@ -1162,6 +1247,10 @@ msgstr "Alles wat hier ingevoer word, word plaaslik in jou blaaier gestoor. Jou
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Voorbeelde: herskryf die opsomming, verskerp een ervaringskoeël, voeg statistieke by, of pas die CV aan vir 'n posbeskrywing."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Verlaat volskerm"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Meer voorstelaksies"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Skuif na"
@@ -1982,6 +2075,10 @@ msgstr "Moet begin met https://"
msgid "Name"
msgstr "Naam"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Benodig hersiening"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalees"
@@ -2012,6 +2109,10 @@ msgstr "Nuwe wagwoord"
msgid "New Section"
msgstr "Nuwe afdeling"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Volgende"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Geen advertensies, geen dop nie"
@@ -2061,11 +2162,19 @@ msgstr "Deurlopende instandhouding"
msgid "Open"
msgstr "Maak oop"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Maak KI-assistent oop"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Maak e-posklient oop"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Oop Integrasies"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Maak integrasiesinstellings oop"
@@ -2219,6 +2328,10 @@ msgstr "Voer asseblief die wagwoord in wat deur die eienaar van die CV met jou g
msgid "Please enter the URL you want to link to:"
msgstr "Voer asseblief die URL in waarheen jy wil skakel:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Ondersteun asseblief die projek"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Posisie"
msgid "Preferences"
msgstr "Voorkeure"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Voorbereiding van veranderinge"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Voorgestelde instellings"
@@ -2267,6 +2384,10 @@ msgstr "Druk <0>{RETURN_KEY}</0> of <1>{COMMA_KEY}</1> om die huidige sleutelwoo
msgid "Press <0>Enter</0> to open"
msgstr "Druk <0>Enter</0> om oop te maak"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Vorige"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primêre kleur"
@@ -2297,6 +2418,11 @@ msgstr "Vorderingsbalk"
msgid "Projects"
msgstr "Projektte"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Voorstel {0} van {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Beskerm jou CV teen ongemagtigde toegang met 'n wagwoord"
@@ -2319,6 +2445,10 @@ msgstr "Publikasies"
msgid "Publisher"
msgstr "Uitgewer"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Rou JSON-pleister"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Gaan na tuisblad"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume is 'n gratis en oopbronprojek, met liefde gebou en deur
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume is 'n gratis en oopbron-hervatbouer wat die proses om jou CV te skep, by te werk en te deel, vereenvoudig."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reaktiewe CV is gratis en oopbron. As dit jou gehelp het, oorweeg dit asseblief om te skenk."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume is oopbron, privaatheid-gefokus en heeltemal gratis. Anders as ander hervatbouers, wys dit nie advertensies nie, spoor nie jou data na nie en sluit nie funksies agter 'n betaalmuur nie."
@@ -2380,6 +2514,18 @@ msgstr "Verfris"
msgid "Register New Device"
msgstr "Registreer nuwe toestel"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Verwerp"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Verwerp alles"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Verwerpte voorstel"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Onthou jy jou wagwoord? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Stuur tans verifikasie-e-pos weer..."
msgid "Reset"
msgstr "Herstel"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Stel klets terug"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Herstel jou wagwoord"
msgid "Resetting your password..."
msgstr "Besig om jou wagwoord te herstel..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Verander grootte van KI-assistent"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Hulpbronne"
@@ -2463,6 +2617,14 @@ msgstr "CV-analise voltooi."
msgid "Resumes"
msgstr "CV's"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Hersiening vereis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Hersiene voorstelle"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Regs belyn"
@@ -2561,6 +2723,10 @@ msgstr "Kies..."
msgid "Self-Host with Docker"
msgstr "Self-aanbieding met Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Stuur"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Stuur e-pos om wagwoord te herstel"
msgid "Sending password reset email..."
msgstr "Stuur tans e-pos om wagwoord te herstel..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Stuur versoek"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Skeier"
@@ -2708,6 +2878,10 @@ msgstr "Enkelkolom met 'n sybalk en skoon roostruitleg; veelsydig vir enige pro
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Enkelkolom met 'n inlyn drie-kolom-inskrywingsopskrif (posisie · organisasie · tydperk); kompak en ATS-vriendelik, goed geskik vir Asiatiese CV-konvensies (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Enkelkolom met hoofletter-afdelingopskrifte en 'n primêre kleur boonste reël op elke bladsy; gepoleer vir uitvoerende, konsulterende of opstart-CV's."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Enkelkolom; gepoleer en ernstig vir senior- of ondernemingsvlakposte."
@@ -2808,6 +2982,10 @@ msgstr "Statistiek"
msgid "Stay"
msgstr "Bly"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Sterktes"
@@ -2902,6 +3080,14 @@ msgstr "Tekskleur"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Die KI het 'n verandering voorgestel wat nie meer op hierdie CV van toepassing is nie."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Die KI het 'n voorstel terugbesorg wat nie voorbeskou kon word nie."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Die API-sleutel is suksesvol uitgevee."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Die API-sleutel sal nie meer jou data kan toegang nadat dit uitgevee is nie. Hierdie aksie kan nie ongedaan gemaak word nie."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Die assistent het gestop voordat hy 'n voorstel teruggegee het."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Dit is 'n URL-vriendelike naam vir jou CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Dit kan 'n paar minute neem, afhangend van die reaksie van die KI-verskaffer. Moet asseblief nie die venster sluit of die bladsy herlaai nie."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Hierdie voorstel is verouderd. Vra die assistent om dit vanaf die nuutste CV te hergenereer."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Hierdie CV is gesluit en kan nie bygewerk word nie."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ja, Reactive Resume is in verskeie tale beskikbaar. Jy kan jou voorkeurtaal kies op die instellingsbladsy, of deur die taalwisselaar regs bo te gebruik. As jy jou taal nie sien nie, of as jy die bestaande vertalings wil verbeter, kan jy <0>bydra tot die vertalings op Crowdin<1> (maak in nuwe oortjie oop)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ja! Elke sjabloon is heeltemal aanpasbaar. Jy kan kleure, lettertipes, spasiëring verander en selfs pasgemaakte CSS skryf vir volledige beheer oor jou CV se voorkoms."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ja! Reactive Resume is heeltemal gratis om te gebruik, sonder versteekte koste, premiemvlakke of intekengelde. Dit is oopbron en sal altyd gratis bly."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ንጥል} other {# ንጥሎች}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ሚና} other {# ሚናዎች}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} የተገመገሙ ሀሳቦች"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "ፍጹም! የየታሪክዎን ወደ PDF በአንድ ጠቅታ መላክ ትችላላችሁ። የተላከው የ PDF ፋይል ሁሉንም ቅርጸትና ዲዛይን በትክክል ይጠብቃል።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "ተቀበል"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "ሁሉንም ተቀበል"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "ተቀባይነት ያገኘ ሀሳብ"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "በ API በመጠቀም የየታሪኮችዎን እና መረጃዎን ፕሮግራማዊ መዳረስ።"
@@ -229,10 +246,38 @@ msgstr "ከዚህ በፊት ረድፍ ያክሉ"
msgid "Afrikaans"
msgstr "አፍሪካንስ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "በኋላ"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "የ AI ውህደት ተሰናክሏል"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "የAI ፕሮፖዛል ተተግብሯል።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "የ AI ፕሮፖዛል ውድቅ ተደርጓል።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "የአዕምሮ ህክምና ፕሮፖዛሎች ተግባራዊ ሆነዋል።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "የ AI ፕሮፖዛሎች ውድቅ ተደርገዋል።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "የ AI ሪቪው ረዳት"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "አልባኒኛ"
@@ -367,10 +412,22 @@ msgstr "የስልጠና መስክ"
msgid "Artificial Intelligence"
msgstr "አርቲፊሻል ኢንተለጀንስ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "የታለመ የስራ ልምድ ለውጥ ጠይቅ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ቀስ በቀስ ለውጥ ይጠይቁ"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "የመገናኛ መጠን"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "የረዳት ጥያቄ አልተሳካም"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "መሰረታዊ"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ውብ ቴምፕሌቶችን ይመርጡ፣ ተጨማሪዎችም በመንገድ ላይ ናቸው።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "ከዚህ በፊት"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "ቤንጋሊኛ"
@@ -462,10 +523,6 @@ msgstr "የነጥብ ዝርዝር"
msgid "By the community, for the community."
msgstr "በማህበረሰቡ፣ ለማህበረሰቡ።"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "ቴምፕሌቶቹን ልገምግሙ እችላለሁ?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "የየታሪክዬን ወደ PDF ልላክ እችላለሁ?"
@@ -576,6 +633,14 @@ msgstr "አጽዳ"
msgid "Click here to select a file to import"
msgstr "ፋይል ለማምጣት ለመምረጥ እዚህ ጠቅ ያድርጉ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "ዝጋ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "የ AI ረዳትን ዝጋ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "የኮድ ብሎክ"
@@ -622,6 +687,10 @@ msgstr "አረጋግጥ"
msgid "Connect"
msgstr "አገናኝ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "የሪዚሜ አርትዖት ፕሮፖዛሎችን ከመጠቀምዎ በፊት የAI አቅራቢን ያገናኙ እና ያረጋግጡ።"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ይህንን ሚስጥራዊ ቁልፍ ቅጂ አድርጉ እና ውስ
msgid "Copy URL"
msgstr "URL ቅጂ አድርግ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "የAI ፕሮፖዛሉን መተግበር አልተቻለም።"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ግንኙነትን ቁርጥ"
msgid "Discord"
msgstr "ዲስኮርድ"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "አሰናብት"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ሰነዶች"
msgid "Don't have an account? <0/>"
msgstr "መለያ የለዎትም? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "ይለግሱ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "ለ Reactive Resume መዋጮ አድርግ"
@@ -1094,6 +1175,10 @@ msgstr "2FAን አንቃ"
msgid "Enable AI Features"
msgstr "የ AI ባህሪዎችን አንቃ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "የAI ውህደትን አንቃ"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "ሁለት-ደረጃ ማረጋገጫን አንቃ"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ምሳሌዎች፡ ማጠቃለያውን እንደገና ይፃፉ፣ የአንድ ልምድ ነጥብ ያጥብቁ፣ መለኪያዎችን ያክሉ ወይም የስራ መግለጫውን (ሲቪ) ያስተካክሉ።"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ሙሉ ስክሪን ውጣ"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "ሞዴል"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "ተጨማሪ የፕሮፖዛል እርምጃዎች"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "አንቀሳቅስ ወደ"
@@ -1982,6 +2075,10 @@ msgstr "በhttps:// መጀመር አለበት"
msgid "Name"
msgstr "ስም"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "ግምገማ ያስፈልገዋል"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "ኔፓሊኛ"
@@ -2012,6 +2109,10 @@ msgstr "አዲስ የይለፍ ቃል"
msgid "New Section"
msgstr "አዲስ ክፍል"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "ቀጣይ"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ምንም ማስታወቂያ የለም፣ ምንም መከታተያ የለም"
@@ -2061,11 +2162,19 @@ msgstr "የቀጣይ ጥገና"
msgid "Open"
msgstr "ክፈት"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "ክፍት የ AI ረዳት"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "የኢሜል ደንበኛን ክፈት"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ክፍት ውህደቶች"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "የውህደቶች ቅንብሮችን ክፈት"
@@ -2219,6 +2328,10 @@ msgstr "ወደ የየታሪክው ባለቤት በተካፈለዎት የይለ
msgid "Please enter the URL you want to link to:"
msgstr "ሊያገናኙት የሚፈልጉትን URL እባክዎን ያስገቡ፡"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "እባክዎን ፕሮጀክቱን ይደግፉ"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "አቀማመጥ"
msgid "Preferences"
msgstr "ምርጫዎች"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "ለውጦችን በማዘጋጀት ላይ"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "ቀድሞ የተዘጋጁ"
@@ -2267,6 +2384,10 @@ msgstr "የአሁኑን ቁልፍ ቃል ለማከል ወይም ለማስቀመ
msgid "Press <0>Enter</0> to open"
msgstr "ለመክፈት <0>Enter</0>ን ይጫኑ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "ቀዳሚ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ዋና ቀለም"
@@ -2297,6 +2418,11 @@ msgstr "የሂደት አሰሳ ማስመሪያ"
msgid "Projects"
msgstr "ፕሮጀክቶች"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "ሀሳብ {0} የ {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "የየታሪክዎን ከፍተኛ ያልተፈቀደ መዳረስ በይለፍ ቃል ይከላከሉት"
@@ -2319,6 +2445,10 @@ msgstr "ህትመቶች"
msgid "Publisher"
msgstr "አታሚ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "ጥሬ JSON ፓች"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ወደ መነሻ ገጽ ሂድ"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ነፃ እና ክፍት ምንጭ ፕሮጀክት ሲሆ
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume የየታሪክ መፍጠር፣ ማዘመን እና መካፈል ሂደትን የሚቀላቅል ነፃ እና ክፍት ምንጭ የየታሪክ ማቅረቢያ መገንቢያ ነው።"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "ምላሽ ሰጪ የስራ ልምድ (Reactive) ነፃ እና ክፍት ምንጭ ነው። ከረዳዎት፣ እባክዎን መለገስን ያስቡበት።"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ክፍት ምንጭ፣ ግላዊነትን የሚመርጥ እና ፍጹም ነፃ ነው። ከሌሎች የየታሪክ ማቅረቢያዎች የተለየ ምክንያቱ ማስታወቂያ አያሳይም፣ መረጃዎን አይከታተልም፣ ባህሪዎችንም በክፍያ ግድግዳ አያስገባም።"
@@ -2380,6 +2514,18 @@ msgstr "ዳስ አድርግ"
msgid "Register New Device"
msgstr "አዲስ መሣሪያ መመዝገብ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "ውድቅ አድርግ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "ሁሉንም ውድቅ አድርግ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "ውድቅ የተደረገ ሀሳብ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "የይለፍ ቃልዎን ያስታውሳሉ? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "የማረጋገጫ ኢሜልን እንደገና በመላክ ላይ…"
msgid "Reset"
msgstr "ዳግም ለመጀመር"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "ውይይትን ዳግም አስጀምር"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "የይለፍ ቃልዎን ዳግም ያስጀምሩ"
msgid "Resetting your password..."
msgstr "የይለፍ ቃልዎን በመዳግም ላይ…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "የAI ረዳት መጠን ቀይር"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "ሀብቶች"
@@ -2463,6 +2617,14 @@ msgstr "የሥራ ማመልከቻ ሰነድ ትንተና ተጠናቋል።"
msgid "Resumes"
msgstr "የየታሪክ ማቅረቢያዎች"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "ግምገማ ያስፈልጋል"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "የተገመገሙ ፕሮፖዛሎችን"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "በቀኝ ማሰለፊያ"
@@ -2561,6 +2723,10 @@ msgstr "ምረጥ..."
msgid "Self-Host with Docker"
msgstr "በ Docker ራስህን አስተናግድ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "ላክ"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "የይለፍ ቃል ዳግም እንዲታወቅ ኢሜል ላክ"
msgid "Sending password reset email..."
msgstr "የይለፍ ቃል ዳግም እንዲታወቅ ኢሜል በመላክ ላይ…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "ጥያቄ በመላክ ላይ"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "መለያ መለያ"
@@ -2708,6 +2878,10 @@ msgstr "አንድ-አምድ የሆነ ከጎን አሞሌ እና ንፁህ የ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ነጠላ አምድ ከውስጠ-መስመር ሶስት-አምድ የመግቢያ ራስጌ ጋር (ቦታ · ድርጅት · ጊዜ)፤ የታመቀ እና ለATS ተስማሚ ሲሆን ለእስያ የሥራ ማመልከቻ ሰነድ ልማዶች (CN/JP/KR) በጣም የሚስማማ ነው።"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "በእያንዳንዱ ገጽ ላይ አቢይ ሆሄ ያለው የክፍል ርዕሶች እና ዋና ቀለም ያለው የላይኛው ደንብ ያለው ነጠላ-አምድ፤ ለአስፈፃሚ፣ ለምክር ወይም ለጀማሪ የስራ ልምድ የተወለወለ።"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "አንድ-አምድ የሆነ፣ የታማኝ እና ኃላፊነት ያለው ለከፍተኛ ወይም ለድርጅታዊ ደረጃ ሚናዎች የሚስማማ።"
@@ -2808,6 +2982,10 @@ msgstr "ስታቲስቲክስ"
msgid "Stay"
msgstr "ቆይ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "ተወ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "ጥንካሬዎች"
@@ -2902,6 +3080,14 @@ msgstr "የጽሁፍ ቀለም"
msgid "Thai"
msgstr "ታይኛ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "የአይአይ (AI) ከዚህ የስራ ልምድ መግለጫ ጋር የማይተገበር ለውጥ አቅርቧል።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "የአይአርአይ ቅድመ እይታ ሊደረግበት የማይችል ሀሳብ መልሷል።"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API ቁልፉ በተሳካ ሁኔታ ተሰርዟል።"
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API ቁልፉ ከተሰረዘ በኋላ ለመረጃዎ መዳረስ አይችልም። ይህ ሥራ መቀለብ አይቻልም።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "ረዳቱ አንድ ሀሳብ ከመመለሱ በፊት ቆመ።"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "ይህ ለየታሪክዎ ተመቻቹ የ URL ስም ነው።"
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "ይህ በ AI አቅራቢው ምላሽ ላይ በመመርኮዝ ጥቂት ደቂቃዎች ሊወስድ ይችላል። እባክዎ መስኮቱን አትዘጉ ወይም ገጹን አታሻሽሉ።"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "ይህ ሀሳብ ጊዜው ያለፈበት ነው። ረዳቱን ከአዲሱ የስራ ልምድ (ሲቪ) እንደገና እንዲያድስለት ይጠይቁት።"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "ይህ የየታሪክ ማቅረቢያ ተቆልፏል እና ማዘመን አይቻልም።"
@@ -3385,10 +3580,6 @@ msgstr "ኤክስ (ትዊተር)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "አዎ፣ Reactive Resume በብዙ ቋንቋዎች ላይ ይገኛል። የምትመርጡትን ቋንቋ በቅንብሮች ገጽ ውስጥ ወይም በላይኛው ቀኝ ጠርዝ ያለውን የቋንቋ መቀየሪያ በመጠቀም መምረጥ ትችላላችሁ። ቋንቋዎን ካላያችሁ፣ ወይም ቀረውን ትርጉም ለማሻሻል ከፈለጉ፣ በ<0> Crowdin ላይ ትርጉሞችን በማሻሻል መዋኛ ለመያዝ ትችላላችሁ<1> (በአዲስ ታብ ይከፈታል)</1></0>።"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "አዎ! ሁሉም ቴምፕሌቶች ሙሉ በሙሉ የሚቀየሩ ናቸው። ቀለሞችን፣ ፊደሎችን፣ ክፍተቶችን መቀየር ትችላላችሁ፣ ደግሞም ለየታሪክዎ መልክ ፍጹም መቆጣጠር ለማግኘት ብጁ CSS መጻፍ ትችላላችሁ።"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "አዎ! Reactive Resume ፍጹም ነፃ ለመጠቀም ይችላሉ፣ የተደበቁ ወጪዎች፣ የፕሪሚየም ደረጃዎች ወይም ክፍያ መመዝገብ የለም። ክፍት ምንጭ ነው እና ሁልጊዜም ነፃ ይቆያል።"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, zero {# عنصر} one {# عنصر} two {# عنصران} few
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, zero {# أدوار} one {# دور} two {# دوران} few {# أدوار} many {# دورًا} other {# أدوار}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "تمت مراجعة المقترحات {0}"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "حجم الورق A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "بكل تأكيد! يمكنك تصدير سيرتك الذاتية إلى PDF بنقرة واحدة فقط. يحافظ ملف PDF المُصدَّر على جميع التنسيقات والأنماط الخاصة بك بشكل مثالي."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "يقبل"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "قبول الكل"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "الاقتراح المقبول"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "يمكنك الوصول إلى سيرك الذاتية وبياناتك برمجيًا باستخدام واجهة برمجة التطبيقات (API)."
@@ -229,10 +246,38 @@ msgstr "إضافة صف قبل"
msgid "Afrikaans"
msgstr "الأفريقانس"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "بعد"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "الذكاء الاصطناعي"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "تم تعطيل تكامل الذكاء الاصطناعي"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "تم تقديم اقتراح الذكاء الاصطناعي."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "تم رفض اقتراح الذكاء الاصطناعي."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "تم تطبيق مقترحات الذكاء الاصطناعي."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "تم رفض مقترحات الذكاء الاصطناعي."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "مساعد كتابة السيرة الذاتية المدعوم بالذكاء الاصطناعي"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "الألبانية"
@@ -367,10 +412,22 @@ msgstr "مجال الدراسة"
msgid "Artificial Intelligence"
msgstr "الذكاء الاصطناعي"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "اطلب تعديلاً مُحدداً لسيرتك الذاتية..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "اطلب تغييرًا تدريجيًا"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "نسبة الأبعاد"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "فشل طلب المساعد"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "الأساسيات"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "قوالب جميلة للاختيار من بينها، مع المزيد في الطريق."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "قبل"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "البنغالية"
@@ -462,10 +523,6 @@ msgstr "قائمة نقطية"
msgid "By the community, for the community."
msgstr "من قبل المجتمع، من أجل المجتمع."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "هل يمكنني تخصيص القوالب؟"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "هل يمكنني تصدير سيرتي الذاتية إلى PDF؟"
@@ -576,6 +633,14 @@ msgstr "واضح"
msgid "Click here to select a file to import"
msgstr "انقر هنا لتحديد ملف لاستيراده"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "إغلاق"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "مساعد الذكاء الاصطناعي للإغلاق"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "كتلة برمجية"
@@ -622,6 +687,10 @@ msgstr "تأكيد"
msgid "Connect"
msgstr "اتصال"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "قم بالتواصل مع مزود خدمة الذكاء الاصطناعي والتحقق منه قبل استخدام مقترحات تحرير السيرة الذاتية."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "انسخ مفتاحك السري هذا واستخدمه في تطبيق
msgid "Copy URL"
msgstr "نسخ عنوان URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "تعذر تطبيق اقتراح الذكاء الاصطناعي."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "قطع الاتصال"
msgid "Discord"
msgstr "ديسكورد"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "رفض"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "إرشادات الاستخدام"
msgid "Don't have an account? <0/>"
msgstr "ليس لديك حساب؟ <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "يتبرع"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "تبرع لـReactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "تمكين المصادقة الثنائية (2FA)"
msgid "Enable AI Features"
msgstr "تمكين ميزات الذكاء الاصطناعي"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "تفعيل تكامل الذكاء الاصطناعي"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "تمكين المصادقة الثنائية"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "أمثلة: إعادة كتابة الملخص، أو تحسين إحدى نقاط الخبرة، أو إضافة مقاييس، أو تعديل السيرة الذاتية لتناسب وصف الوظيفة."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "الخروج من وضع ملء الشاشة"
@@ -1956,6 +2045,10 @@ msgstr "مايكروسوفت وورد"
msgid "Model"
msgstr "النموذج"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "المزيد من إجراءات الاقتراح"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "نقل إلى"
@@ -1982,6 +2075,10 @@ msgstr "يجب أن تبدأ بـ https://"
msgid "Name"
msgstr "الاسم"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "يحتاج إلى مراجعة"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "النيبالية"
@@ -2012,6 +2109,10 @@ msgstr "كلمة مرور جديدة"
msgid "New Section"
msgstr "قسم جديد"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "التالي"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "بدون إعلانات، بدون تتبّع"
@@ -2061,11 +2162,19 @@ msgstr "صيانة مستمرة"
msgid "Open"
msgstr "افتح"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "مساعد الذكاء الاصطناعي المفتوح"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "فتح عميل البريد الإلكتروني"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "التكاملات المفتوحة"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "فتح إعدادات التكامل"
@@ -2219,6 +2328,10 @@ msgstr "يُرجى إدخال كلمة المرور التي تمت مشاركت
msgid "Please enter the URL you want to link to:"
msgstr "يُرجى إدخال عنوان URL الذي تريد الربط به:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "يرجى دعم المشروع"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "المنصب"
msgid "Preferences"
msgstr "التفضيلات"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "إعداد التغييرات"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "الإعدادات المسبقة"
@@ -2267,6 +2384,10 @@ msgstr "اضغط على <0>{RETURN_KEY}</0> أو <1>{COMMA_KEY}</1> لإضافة
msgid "Press <0>Enter</0> to open"
msgstr "اضغط على <0>Enter</0> لفتح"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "السابق"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "اللون الأساسي"
@@ -2297,6 +2418,11 @@ msgstr "شريط التقدّم"
msgid "Projects"
msgstr "المشاريع"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "الاقتراح {0} من {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "احمِ سيرتك الذاتية من الوصول غير المصرّح به باستخدام كلمة مرور"
@@ -2319,6 +2445,10 @@ msgstr "المنشورات"
msgid "Publisher"
msgstr "الناشر"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "رقعة JSON الخام"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - الانتقال إلى الصفحة الرئيسية"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume هو مشروع مجاني ومفتوح المصدر،
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume هي أداة إنشاء سيرة ذاتية مجانية ومفتوحة المصدر تعمل على تبسيط عملية إنشاء سيرتك الذاتية وتحديثها ومشاركتها."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "برنامج Reactive Resume مجاني ومفتوح المصدر. إذا أفادك، يُرجى التفكير في التبرع."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume مفتوح المصدر ويركز على الخصوصية ومجاني تمامًا. وعلى عكس أدوات إنشاء السير الذاتية الأخرى، لا يعرض إعلانات، ولا يتتبع بياناتك، ولا يقيّد ميزاتك خلف جدار دفع."
@@ -2380,6 +2514,18 @@ msgstr "تحديث"
msgid "Register New Device"
msgstr "تسجيل جهاز جديد"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "يرفض"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "رفض الكل"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "اقتراح مرفوض"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "تتذكر كلمة المرور؟ <0/>"
@@ -2430,6 +2576,10 @@ msgstr "جاري إعادة إرسال رسالة التحقق..."
msgid "Reset"
msgstr "إعادة تعيين"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "إعادة ضبط المحادثة"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "إعادة تعيين كلمة المرور"
msgid "Resetting your password..."
msgstr "جاري إعادة تعيين كلمة المرور..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "مساعد الذكاء الاصطناعي لتغيير الحجم"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "الموارد"
@@ -2463,6 +2617,14 @@ msgstr "اكتمل تحليل السيرة الذاتية."
msgid "Resumes"
msgstr "السير الذاتية"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "مراجعة مطلوبة"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "المقترحات التي تمت مراجعتها"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "محاذاة لليمين"
@@ -2561,6 +2723,10 @@ msgstr "تحديد..."
msgid "Self-Host with Docker"
msgstr "الاستضافة الذاتية مع Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "يرسل"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "إرسال رسالة إعادة تعيين كلمة المرور"
msgid "Sending password reset email..."
msgstr "جاري إرسال رسالة إعادة تعيين كلمة المرور..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "إرسال الطلب"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "فاصل"
@@ -2708,6 +2878,10 @@ msgstr "عمود واحد مع شريط جانبي وتخطيط شبكي نظي
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "عمود واحد مع رأس إدخال مضمن من ثلاثة أعمدة (الموضع - المؤسسة - الفترة)؛ مدمج وملائم لـ ATS، ومناسب تمامًا للسيرة الذاتية الآسيوية (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "تصميم ذو عمود واحد مع عناوين أقسام بأحرف كبيرة وخطوط علوية بلون أساسي في كل صفحة؛ مصمم خصيصًا للسير الذاتية التنفيذية أو الاستشارية أو للشركات الناشئة."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "عمود واحد؛ مصقول ورسمي للوظائف العليا أو مناصب الشركات الكبرى."
@@ -2808,6 +2982,10 @@ msgstr "الإحصاءات"
msgid "Stay"
msgstr "البقاء"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "قف"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "نقاط القوة"
@@ -2902,6 +3080,14 @@ msgstr "لون النص"
msgid "Thai"
msgstr "التايلاندية"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "اقترح الذكاء الاصطناعي تغييرًا لم يعد ينطبق على هذه السيرة الذاتية."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "أعاد الذكاء الاصطناعي اقتراحًا لا يمكن معاينته."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "تم حذف مفتاح واجهة برمجة التطبيقات (API) ب
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "لن يتمكن مفتاح واجهة برمجة التطبيقات هذا من الوصول إلى بياناتك بعد حذفه. لا يمكن التراجع عن هذا الإجراء."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "توقف المساعد قبل أن يعيد الاقتراح."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "هذا اسم مناسب لعناوين URL لسيرتك الذاتية.
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "قد يستغرق هذا بضع دقائق اعتمادًا على استجابة مزوّد الذكاء الاصطناعي. يُرجى عدم إغلاق النافذة أو تحديث الصفحة."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "هذا الاقتراح قديم. اطلب من المساعد إعادة إنشائه من أحدث سيرة ذاتية."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "هذه السيرة الذاتية مقفلة ولا يمكن تحديثها."
@@ -3385,10 +3580,6 @@ msgstr "X (تويتر)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "نعم، يتوفر Reactive Resume بعدة لغات. يمكنك اختيار لغتك المفضلة في صفحة الإعدادات، أو باستخدام مبدّل اللغة في الزاوية العلوية اليمنى. إذا لم ترَ لغتك، أو كنت ترغب في تحسين الترجمات الموجودة، يمكنك <0>المساهمة في الترجمات على Crowdin<1> (يفتح في علامة تبويب جديدة)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "نعم! كل قالب قابل للتخصيص بالكامل. يمكنك تغيير الألوان والخطوط والتباعد، وحتى كتابة CSS مخصص للتحكم الكامل في مظهر سيرتك الذاتية."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "نعم! Reactive Resume مجاني تمامًا للاستخدام، بدون تكاليف خفية أو مستويات مدفوعة أو رسوم اشتراك. إنه مفتوح المصدر وسيظل مجانيًا دائمًا."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Azerbaijani\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# element}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rol} other {# rol}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} təkliflər nəzərdən keçirildi"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Əlbəttə! Özgeçmişinizi cəmi bir kliklə PDF formatına ixrac edə bilərsiniz. İxrac olunmuş PDF bütün formatlaşdırmanı və tərtibatı mükəmməl şəkildə saxlayır."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Qəbul et"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Hamısını qəbul edin"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Qəbul edilmiş təklif"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API vasitəsilə özgeçmişlərinizi və məlumatlarınızı proqramlı şəkildə idarə edin."
@@ -229,10 +246,38 @@ msgstr "Əvvəl Sətir əlavə et"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Sonra"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "Süni İntellekt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Süni intellekt inteqrasiyası deaktiv edildi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Süni intellekt təklifi tətbiq edildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Süni intellekt təklifi rədd edildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Süni intellekt təklifləri tətbiq olundu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Süni intellekt təklifləri rədd edildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Süni intellekt CV köməkçisi"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanca"
@@ -367,10 +412,22 @@ msgstr "Təhsil sahəsi"
msgid "Artificial Intelligence"
msgstr "Süni İntellekt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Hədəfli CV dəyişikliyi istəyin..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Artan dəyişiklik tələb edin"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Propor­siya"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Köməkçi sorğusu uğursuz oldu"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Əsas məlumatlar"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Seçmək üçün gözəl şablonlar, yolda olan yeniləri ilə."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Əvvəl"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Benqal"
@@ -462,10 +523,6 @@ msgstr "Markerlə Siyahı"
msgid "By the community, for the community."
msgstr "İcma tərəfindən, icma üçün."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Şablonları fərdiləşdirə bilərəm?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Özgeçmişimi PDF‑ə ixrac edə bilərəm?"
@@ -576,6 +633,14 @@ msgstr "Açıq"
msgid "Click here to select a file to import"
msgstr "İdxal üçün fayl seçmək üçün bura klikləyin"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Bağla"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Süni intellekt köməkçisini bağlayın"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kod Bloku"
@@ -622,6 +687,10 @@ msgstr "Təsdiqlə"
msgid "Connect"
msgstr "Qoşul"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "CV redaktə təkliflərindən istifadə etməzdən əvvəl süni intellekt provayderinə qoşulun və təsdiqləyin."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Bu gizli açarı kopyalayın və verilənlərinizə daxil olmaq üçün
msgid "Copy URL"
msgstr "URL‑i kopyala"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Süni intellekt təklifini tətbiq etmək mümkün olmadı."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Ayır"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Ləğv et"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Sənədləşmə"
msgid "Don't have an account? <0/>"
msgstr "Hesabınız yoxdur? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Bağışlayın"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume‑yə ianə et"
@@ -1094,6 +1175,10 @@ msgstr "2FA‑nı Aktiv et"
msgid "Enable AI Features"
msgstr "Süni İntellekt Xüsusiyyətlərini Aktiv et"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Süni intellekt inteqrasiyasını aktivləşdirin"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "İki Mərhələli Autentifikasiyanı Aktiv et"
@@ -1162,6 +1247,10 @@ msgstr "Buraya daxil etdiyiniz hər şey brauzerinizdə lokal olaraq saxlanı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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Nümunələr: xülasənin yenidən yazılması, təcrübə siyahısından birinin qısaldılması, metriklər əlavə edilməsi və ya CV-ni iş təsviri üçün uyğunlaşdırmaq."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Tam ekrandan çıx"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Daha çox təklif hərəkəti"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Keçir"
@@ -1982,6 +2075,10 @@ msgstr "https:// ilə başlamalıdır"
msgid "Name"
msgstr "Ad"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Baxışa ehtiyac var"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepal"
@@ -2012,6 +2109,10 @@ msgstr "Yeni Parol"
msgid "New Section"
msgstr "Yeni Bölmə"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Sonrakı"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Reklam yoxdur, İzləmə yoxdur"
@@ -2061,11 +2162,19 @@ msgstr "Davamlı Baxım"
msgid "Open"
msgstr "Aç"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Açıq süni intellekt köməkçisi"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "E‑poçt müştərisini aç"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Açıq İnteqrasiyalar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "İnteqrasiyalar parametrlərini açın"
@@ -2219,6 +2328,10 @@ msgstr "Davam etmək üçün, özgeçmiş sahibi tərəfindən sizinlə paylaş
msgid "Please enter the URL you want to link to:"
msgstr "Link vermək istədiyiniz URL‑i daxil edin:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Layihəni dəstəkləyin"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Vəzifə"
msgid "Preferences"
msgstr "Parametrlər"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Dəyişikliklərin hazırlanması"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Qabaqcadan təyin olunmuş parametrlər"
@@ -2267,6 +2384,10 @@ msgstr "Hazırkı açar sözü əlavə etmək və ya saxlamaq üçün <0>{RETURN
msgid "Press <0>Enter</0> to open"
msgstr "Açmaq üçün <0>Enter düyməsini</0> basın"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Əvvəlki"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Əsas Rəng"
@@ -2297,6 +2418,11 @@ msgstr "Proqres Zolağı"
msgid "Projects"
msgstr "Layihələr"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Təklif {total} / {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Özgeçmişinizi parol ilə icazəsiz girişdən qoruyun"
@@ -2319,6 +2445,10 @@ msgstr "Nəşrlər"
msgid "Publisher"
msgstr "Nəşriyyatçı"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Xam JSON Yamağı"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ana səhifəyə keç"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume pulsuz və açıq mənbə layihəsidir; sevgi ilə yarad
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume özgeçmişinizi yaratma, yeniləmə və paylaşma prosesini sadələşdirən pulsuz və açıq mənbə özgeçmiş qurucusudur."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume pulsuz və açıq mənbəlidir. Əgər sizə kömək edibsə, zəhmət olmasa, ianə etməyi düşünün."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume açıq mənbəlidir, məxfilik yönümlüdür və tamamilə pulsuzdur. Digər özgeçmiş qurucularından fərqli olaraq, o reklamlara yer vermir, məlumatınızı izləmir və funksiyaları ödəniş divarının arxasında məhdudlaşdırmır."
@@ -2380,6 +2514,18 @@ msgstr "Yenilə"
msgid "Register New Device"
msgstr "Yeni cihazı qeydiyyatdan keçirin"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rədd et"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Hamısını rədd et"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Rədd edilmiş təklif"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Şifrənizi xatırlayırsınız? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Təsdiq e‑poçtu yenidən göndərilir..."
msgid "Reset"
msgstr "Sıfırla"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Söhbəti sıfırlayın"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Parolunuzu sıfırlayın"
msgid "Resetting your password..."
msgstr "Parolunuz sıfırlanır..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Süni intellekt köməkçisinin ölçüsünü dəyişin"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resurslar"
@@ -2463,6 +2617,14 @@ msgstr "Təcrübə təhlili tamamlandı."
msgid "Resumes"
msgstr "Özgeçmişlər"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Baxış tələb olunur"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Təkliflər nəzərdən keçirildi"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Sağdan Sətirlə"
@@ -2561,6 +2723,10 @@ msgstr "Seçin..."
msgid "Self-Host with Docker"
msgstr "Docker ilə Özün‑host et"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Göndər"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Parol Sıfırlama E‑poçtu Göndər"
msgid "Sending password reset email..."
msgstr "Parol sıfırlama e‑poçtu göndərilir..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Sorğu göndərilir"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Ayırıcı"
@@ -2708,6 +2878,10 @@ msgstr "Tək sütunlu, yan panel və təmiz şəbəkə maketi ilə; istənilən
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Tək sütunlu, xətti üçsütunlu giriş başlığı (vəzifə · təşkilat · dövr); yığcam və ATS-ə uyğun, Asiya tərcümeyi-hal konvensiyalarına (Çin/Yaponiya/Koreya) uyğundur."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Hər səhifədə böyük hərflərlə bölmə başlıqları və əsas rəng üst qaydası olan tək sütunlu; rəhbər, konsaltinq və ya startap tərcümeyi-halları üçün cilalanmış."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Tək sütunlu; yüksək vəzifəli və ya müəssisə səviyyəli vəzifələr üçün cilalanmış və ciddi üslub."
@@ -2808,6 +2982,10 @@ msgstr "Statistika"
msgid "Stay"
msgstr "Qal"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Dayan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Güclü tərəflər"
@@ -2902,6 +3080,14 @@ msgstr "Mətn Rəngi"
msgid "Thai"
msgstr "Tay"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Süni intellekt artıq bu CV-yə aid olmayan bir dəyişiklik təklif etdi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Süni intellekt, önizləməsi mümkün olmayan bir təklifi geri qaytardı."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API açarı uğurla silindi."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Silindikdən sonra bu API açarı məlumatlarınıza daha çıxış əldə edə bilməyəcək. Bu əməliyyat geri qaytarıla bilməz."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Köməkçi təklifi cavablandırmadan əvvəl dayandı."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Bu, özgeçmişiniz üçün URL‑ə uyğun bir addır."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Bu, Süni İntellekt provayderinin cavabından asılı olaraq bir neçə dəqiqə çəkə bilər. Zəhmət olmasa, pəncərəni bağlamayın və ya səhifəni yeniləməyin."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Bu təklif köhnəlib. Köməkçidən onu ən son CV-dən yenidən yaratmasını xahiş edin."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Bu özgeçmiş kilidlənib və yenilənə bilməz."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Bəli, Reactive Resume bir neçə dildə mövcuddur. Seçim etdiyiniz dili parametrlər səhifəsindən və ya sağ yuxarı küncdəki dil dəyişdiricisindən seçə bilərsiniz. Əgər dilinizi görmürsünüzsə və ya mövcud tərcümələri yaxşılaşdırmaq istəyirsinizsə, <0>Crowdin‑də tərcümələrə töhfə verə bilərsiniz<1> (yeni vərəqdə açılır)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Bəli! Hər bir şablon tam fərdiləşdirilə bilər. Rəngləri, şriftləri, aralıqları dəyişə və hətta özgeçmişinizin görünüşünə tam nəzarət üçün xüsusi CSS yaza bilərsiniz."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Bəli! Reactive Resume heç bir gizli xərc, premium səviyyə və ya abunə haqqı olmadan tamamilə pulsuzdur. O, açıq mənbəlidir və həmişə pulsuz qalacaq."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# елемент} other {# елемента}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# роля} other {# роли}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} прегледани предложения"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Абсолютно! Можете да експортирате автобиографията си в PDF само с едно кликване. Експортираният PDF файл запазва перфектно всички ваши форматирания и стилове."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Приемам"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Приемане на всички"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Прието предложение"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Получете програмен достъп до автобиографиите и данните си чрез API."
@@ -229,10 +246,38 @@ msgstr "Добавяне на ред преди"
msgid "Afrikaans"
msgstr "Африканс"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "След"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Интеграцията с изкуствен интелект е деактивирана"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Предложението за изкуствен интелект е приложено."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Предложението за изкуствен интелект е отхвърлено."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Приложени са предложения за ИИ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Предложенията за изкуствен интелект са отхвърлени."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Асистент за автобиография с изкуствен интелект"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Албански"
@@ -367,10 +412,22 @@ msgstr "Област на обучение"
msgid "Artificial Intelligence"
msgstr "Изкуствен интелект"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Поискайте целенасочена промяна в автобиографията си..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Поискайте постепенна промяна"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Съотношение на страните"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Заявката за Асистент не беше успешна"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Основна информация"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Красиви шаблони, от които да избирате, с още по пътя."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Преди"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Бенгалски"
@@ -462,10 +523,6 @@ msgstr "Точков списък"
msgid "By the community, for the community."
msgstr "От общността, за общността."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Мога ли да персонализирам шаблоните?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Мога ли да експортирам автобиографията си в PDF?"
@@ -576,6 +633,14 @@ msgstr "Clear"
msgid "Click here to select a file to import"
msgstr "Кликнете тук, за да изберете файл за импортиране"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Затвори"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Затвори асистента с изкуствен интелект"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Блок с код"
@@ -622,6 +687,10 @@ msgstr "Потвърждаване"
msgid "Connect"
msgstr "Свързване"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Свържете се и проверете доставчик на изкуствен интелект, преди да използвате предложения за редактиране на автобиографии."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Копирайте този таен ключ и го използвай
msgid "Copy URL"
msgstr "Копиране на URL адрес"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Не можа да се приложи предложението за изкуствен интелект."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Прекъсване на връзката"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Отхвърляне"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Документация"
msgid "Don't have an account? <0/>"
msgstr "Нямате акаунт? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Дарете"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Дарете на Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Активиране на 2FA"
msgid "Enable AI Features"
msgstr "Активиране на AI функциите"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Активиране на интеграция с изкуствен интелект"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Активиране на двуфакторно удостоверяване"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Примери: пренаписване на резюмето, стесняване на един от елементите за опит, добавяне на показатели или адаптиране на автобиографията към описанието на длъжността."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Излизане от цял екран"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Модел"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Още действия за предложението"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Преместване в"
@@ -1982,6 +2075,10 @@ msgstr "Трябва да започне с https://"
msgid "Name"
msgstr "Име"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Необходим е преглед"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Непалски"
@@ -2012,6 +2109,10 @@ msgstr "Нова парола"
msgid "New Section"
msgstr "Нов раздел"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Следваща"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Без реклами, без проследяване"
@@ -2061,11 +2162,19 @@ msgstr "Текуща поддръжка"
msgid "Open"
msgstr "Отвори"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Отворете AI асистент"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Отваряне на имейл клиент"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Отворени интеграции"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Отворете Настройки на интеграциите"
@@ -2219,6 +2328,10 @@ msgstr "Моля, въведете паролата, която ви е спод
msgid "Please enter the URL you want to link to:"
msgstr "Моля, въведете URL адреса, към който искате да създадете връзка:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Моля, подкрепете проекта"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Позиция"
msgid "Preferences"
msgstr "Предпочитания"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Подготовка на промени"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Предварителни настройки"
@@ -2267,6 +2384,10 @@ msgstr "Натиснете <0>{RETURN_KEY}</0> или <1>{COMMA_KEY}</1>, за
msgid "Press <0>Enter</0> to open"
msgstr "Натиснете <0>Enter</0>, за да отворите"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Предишна"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основен цвят"
@@ -2297,6 +2418,11 @@ msgstr "Лента за напредък"
msgid "Projects"
msgstr "Проекти"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Предложение {0} от {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Защитете автобиографията си от неоторизиран достъп с парола"
@@ -2319,6 +2445,10 @@ msgstr "Публикации"
msgid "Publisher"
msgstr "Издател"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Кръпка за суров JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Отиване към началната страница"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume е безплатен проект с отворен к
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume е безплатен конструктор на автобиографии с отворен код, който опростява процеса на създаване, актуализиране и споделяне на автобиографията ви."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume е безплатен и с отворен код. Ако ви е помогнал, моля, помислете за дарение."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume е с отворен код, фокусиран върху поверителността и напълно безплатен. За разлика от други конструктори на автобиографии, той не показва реклами, не проследява данните ви и не ограничава функциите зад платена стена."
@@ -2380,6 +2514,18 @@ msgstr "Опресняване"
msgid "Register New Device"
msgstr "Регистрация на ново устройство"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Отхвърляне"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Отхвърляне на всички"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Отхвърлено предложение"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Спомняте ли си паролата? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Повторно изпращане на имейл за потвърж
msgid "Reset"
msgstr "Нулиране"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Нулиране на чата"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Нулирайте паролата си"
msgid "Resetting your password..."
msgstr "Нулиране на паролата ви..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Преоразмеряване на асистента с изкуствен интелект"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ресурси"
@@ -2463,6 +2617,14 @@ msgstr "Анализът на автобиографията е завършен
msgid "Resumes"
msgstr "Автобиографии"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Изисква се преглед"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Прегледани предложения"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Подравняване вдясно"
@@ -2561,6 +2723,10 @@ msgstr "Изберете..."
msgid "Self-Host with Docker"
msgstr "Самостоятелно хостване с Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Изпрати"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Изпращане на имейл за нулиране на парол
msgid "Sending password reset email..."
msgstr "Изпращане на имейл за нулиране на парола..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Изпращане на заявка"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Разделител"
@@ -2708,6 +2878,10 @@ msgstr "Една колона със странична лента и изчис
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Единична колона с вградено заглавие в три колони (длъжност - организация - точка); компактен и удобен за ATS, подходящ за азиатските конвенции за автобиографии (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Едноколона с главни букви в заглавията на секциите и линия с основен цвят на горната част на всяка страница; изпипано за автобиографии на ръководители, консултанти или стартиращи компании."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Една колона; изпипан и сериозен за старши или корпоративни позиции."
@@ -2808,6 +2982,10 @@ msgstr "Статистика"
msgid "Stay"
msgstr "Остани"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Спри"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Силни страни"
@@ -2902,6 +3080,14 @@ msgstr "Цвят на текста"
msgid "Thai"
msgstr "Тайландски"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Изкуственият интелект предложи промяна, която вече не се отнася за това резюме."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Изкуственият интелект върна предложение, което не можеше да бъде прегледано предварително."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API ключът беше изтрит успешно."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "След изтриване този API ключ вече няма да може да получава достъп до данните ви. Това действие е необратимо."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Асистентът спря, преди да върне предложението."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Това е име, подходящо за URL, за вашата ав
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Това може да отнеме няколко минути в зависимост от отговора на AI доставчика. Моля, не затваряйте прозореца и не опреснявайте страницата."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Това предложение е остаряло. Помолете асистента да го генерира отново от най-новата автобиография."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Тази автобиография е заключена и не може да бъде актуализирана."
@@ -3385,10 +3580,6 @@ msgstr "X (Туитър)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Да, Reactive Resume е наличен на множество езици. Можете да изберете предпочитания от вас език от страницата с настройки или чрез превключвателя за език в горния десен ъгъл. Ако не виждате вашия език или искате да подобрите съществуващите преводи, можете да <0>допринесете към преводите в Crowdin<1> (отваря се в нов раздел)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Да! Всеки шаблон е напълно персонализируем. Можете да променяте цветове, шрифтове, разстояния и дори да пишете потребителски CSS за пълен контрол върху външния вид на автобиографията."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Да! Reactive Resume е напълно безплатен за ползване, без скрити разходи, премиум нива или абонаментни такси. Той е с отворен код и винаги ще остане безплатен."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Bengali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {#টি আইটেম} other {#টি আইটেম
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ভূমিকা} other {# ভূমিকা}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} প্রস্তাবনা পর্যালোচনা করা হয়েছে"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "অবশ্যই! আপনি এক ক্লিকেই আপনার জীবনবৃত্তান্তকে PDF আকারে এক্সপোর্ট করতে পারবেন। এক্সপোর্ট করা PDF-এ আপনার সব ফরম্যাটিং ও স্টাইলিং ঠিক যেমন আছে তেমনই থাকবে।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "গ্রহণ করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "সব গ্রহণ করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "গৃহীত প্রস্তাব"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API ব্যবহার করে প্রোগ্রামেটিক ভাবে আপনার জীবনবৃত্তান্ত ও ডেটায় প্রবেশ করুন।"
@@ -229,10 +246,38 @@ msgstr "আগের দিকে সারি যোগ করুন"
msgid "Afrikaans"
msgstr "আফ্রিকান্স"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "পরে"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "এআই"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "এআই ইন্টিগ্রেশন নিষ্ক্রিয় করা হয়েছে"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "এআই প্রস্তাব প্রয়োগ করা হয়েছে।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "এআই প্রস্তাব প্রত্যাখ্যাত হয়েছে।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "এআই প্রস্তাবনাগুলো প্রয়োগ করা হয়েছে।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "এআই প্রস্তাবগুলো প্রত্যাখ্যাত হয়েছে।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "এআই রেজ্যুমে অ্যাসিস্ট্যান্ট"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "আলবেনিয়ান"
@@ -367,10 +412,22 @@ msgstr "অধ্যয়নের এলাকা"
msgid "Artificial Intelligence"
msgstr "কৃত্রিম বুদ্ধিমত্তা"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "নির্দিষ্ট জীবনবৃত্তান্ত পরিবর্তনের জন্য অনুরোধ করুন..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ধাপে ধাপে পরিবর্তনের জন্য অনুরোধ করুন।"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "আকারের অনুপাত"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "সহকারীর অনুরোধ ব্যর্থ হয়েছে"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "বেসিক"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "পছন্দ করার জন্য সুন্দর সুন্দর টেমপ্লেট, আরও অনেক টেমপ্লেট শিগগিরই আসছে।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "আগে"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "বাংলা"
@@ -462,10 +523,6 @@ msgstr "বুলেট লিস্ট"
msgid "By the community, for the community."
msgstr "সম্প্রদায়ের দ্বারা, সম্প্রদায়ের জন্য।"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "আমি কি টেমপ্লেটগুলো কাস্টমাইজ করতে পারি?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "আমি কি আমার জীবনবৃত্তান্তকে PDF-এ এক্সপোর্ট করতে পারি?"
@@ -576,6 +633,14 @@ msgstr "স্বচ্ছ"
msgid "Click here to select a file to import"
msgstr "ইমপোর্ট করার জন্য এখান ক্লিক করে একটি ফাইল নির্বাচন করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "বন্ধ করুন"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "এআই সহকারী বন্ধ করুন"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "কোড ব্লক"
@@ -622,6 +687,10 @@ msgstr "নিশ্চিত করুন"
msgid "Connect"
msgstr "কনেক্ট করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "রেজ্যুমে সম্পাদনার প্রস্তাবগুলো ব্যবহার করার আগে একজন এআই প্রদানকারীর সাথে সংযোগ স্থাপন করুন এবং তাকে যাচাই করে নিন।"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "এই সিক্রেট কী কপি করে আপনার
msgid "Copy URL"
msgstr "URL কপি করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "এআই প্রস্তাবটি প্রয়োগ করা যায়নি।"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ডিসকনেক্ট করুন"
msgid "Discord"
msgstr "ডিসকর্ড"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "খারিজ করুন"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ডকুমেন্টেশন"
msgid "Don't have an account? <0/>"
msgstr "অ্যাকাউন্ট নেই? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "দান করুন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume-এ অনুদান দিন"
@@ -1094,6 +1175,10 @@ msgstr "2FA চালু করুন"
msgid "Enable AI Features"
msgstr "এআই ফিচারগুলো চালু করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "এআই ইন্টিগ্রেশন সক্ষম করুন"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "টু‑ফ্যাক্টর প্রমাণীকরণ চালু করুন"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "উদাহরণস্বরূপ: সারাংশটি নতুন করে লিখুন, অভিজ্ঞতার একটি বুলেট পয়েন্ট সংক্ষিপ্ত করুন, পরিমাপক যোগ করুন, অথবা চাকরির বিবরণের জন্য জীবনবৃত্তান্তটি সাজিয়ে নিন।"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "পূর্ণ স্ক্রীন থেকে বের হন"
@@ -1956,6 +2045,10 @@ msgstr "মাইক্রোসফট ওয়ার্ড"
msgid "Model"
msgstr "মডেল"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "আরও প্রস্তাবনা কার্যক্রম"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "এখানে সরান"
@@ -1982,6 +2075,10 @@ msgstr "https:// দিয়ে শুরু করতে হবে।"
msgid "Name"
msgstr "নাম"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "পর্যালোচনা প্রয়োজন"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "নেপালি"
@@ -2012,6 +2109,10 @@ msgstr "নতুন পাসওয়ার্ড"
msgid "New Section"
msgstr "নতুন বিভাগ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "পরবর্তী"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "কোনো বিজ্ঞাপন নয়, কোনো ট্র্যাকিং নয়"
@@ -2061,11 +2162,19 @@ msgstr "চলমান রক্ষণাবেক্ষণ"
msgid "Open"
msgstr "খুলুন"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "ওপেন এআই অ্যাসিস্ট্যান্ট"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ইমেইল ক্লায়েন্ট খুলুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ওপেন ইন্টিগ্রেশন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "ইন্টিগ্রেশন সেটিংস খুলুন"
@@ -2219,6 +2328,10 @@ msgstr "অবিরত থাকতে জীবনবৃত্তান্ত
msgid "Please enter the URL you want to link to:"
msgstr "যে URL‑এ লিংক করতে চান অনুগ্রহ করে সেটি লিখুন:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "প্রকল্পটি সমর্থন করুন।"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "পদবি"
msgid "Preferences"
msgstr "পছন্দসমূহ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "পরিবর্তন প্রস্তুত করা"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "প্রিসেটসমূহ"
@@ -2267,6 +2384,10 @@ msgstr "বর্তমান কীওয়ার্ড যোগ বা স
msgid "Press <0>Enter</0> to open"
msgstr "খুলতে <0>এন্টার</0> চাপুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "পূর্ববর্তী"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "প্রাথমিক রঙ"
@@ -2297,6 +2418,11 @@ msgstr "প্রগতি নির্দেশক বার"
msgid "Projects"
msgstr "প্রোজেক্টসমূহ"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{0} এর {total} প্রস্তাব"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "একটি পাসওয়ার্ড দিয়ে আপনার জীবনবৃত্তান্তকে অননুমোদিত প্রবেশ থেকে সুরক্ষিত রাখুন"
@@ -2319,6 +2445,10 @@ msgstr "প্রকাশনাসমূহ"
msgid "Publisher"
msgstr "প্রকাশক"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "কাঁচা JSON প্যাচ"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - হোমপেইজে যান"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume একটি বিনামূল্যের ও ম
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume একটি বিনামূল্যের এবং মুক্ত উৎস জীবনবৃত্তান্ত নির্মাতা, যা আপনার জীবনবৃত্তান্ত তৈরি, আপডেট ও শেয়ার করার প্রক্রিয়াকে সহজ করে।"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "রিঅ্যাক্টিভ রেজ্যুমে বিনামূল্যে এবং ওপেন সোর্স। যদি এটি আপনাকে সাহায্য করে থাকে, তবে অনুগ্রহ করে অনুদান দেওয়ার কথা বিবেচনা করুন।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume মুক্ত উৎস, গোপনীয়তা-কেন্দ্রিক এবং সম্পূর্ণ বিনামূল্যে। অন্য জীবনবৃত্তান্ত নির্মাতাদের মতো এটি কোনো বিজ্ঞাপন দেখায় না, আপনার ডেটা ট্র্যাক করে না, বা ফিচারগুলো পেওয়ালের আড়ালে আটকে রাখে না।"
@@ -2380,6 +2514,18 @@ msgstr "রিফ্রেশ"
msgid "Register New Device"
msgstr "নতুন ডিভাইস নিবন্ধন করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "প্রত্যাখ্যান করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "সব প্রত্যাখ্যান করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "প্রত্যাখ্যাত প্রস্তাব"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "আপনার পাসওয়ার্ড মনে আছে? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "যাচাইকরণের ইমেইল পুনরায় প
msgid "Reset"
msgstr "রিসেট"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "চ্যাট রিসেট করুন"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "আপনার পাসওয়ার্ড রিসেট করু
msgid "Resetting your password..."
msgstr "আপনার পাসওয়ার্ড রিসেট করা হচ্ছে..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "আকার পরিবর্তন করুন এআই সহকারী"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "রিসোর্সসমূহ"
@@ -2463,6 +2617,14 @@ msgstr "রিজিউমে বিশ্লেষণ সম্পন্ন।"
msgid "Resumes"
msgstr "জীবনবৃত্তান্তসমূহ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "পর্যালোচনা প্রয়োজন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "পর্যালোচিত প্রস্তাবনা"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "ডান দিকে অ্যালাইন"
@@ -2561,6 +2723,10 @@ msgstr "নির্বাচন করুন..."
msgid "Self-Host with Docker"
msgstr "ডকার দিয়ে নিজে হোস্ট করুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "পাঠান"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "পাসওয়ার্ড রিসেটের ইমেইল প
msgid "Sending password reset email..."
msgstr "পাসওয়ার্ড রিসেটের ইমেইল পাঠানো হচ্ছে..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "অনুরোধ পাঠানো হচ্ছে"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "সেপারেটর"
@@ -2708,6 +2878,10 @@ msgstr "এক কলামের লেআউট, সাইডবার এব
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "একক-কলাম, ইনলাইন তিন-কলাম এন্ট্রি হেডার (পদ · প্রতিষ্ঠান · সময়কাল); সংক্ষিপ্ত এবং ATS-বান্ধব, এশীয় রিজিউমে রীতি (CN/JP/KR)-এর জন্য উপযুক্ত।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "প্রতিটি পৃষ্ঠায় বড় হাতের অক্ষরে বিভাগীয় শিরোনাম এবং প্রাথমিক রঙের একটি শীর্ষরেখা সহ এক-কলাম বিন্যাস; নির্বাহী, পরামর্শক বা স্টার্টআপ জীবনবৃত্তান্তের জন্য পরিমার্জিত।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "এক কলামের লেআউট; প্রাজ্ঞ ও গম্ভীর ধরন, সিনিয়র বা এন্টারপ্রাইজ‑লেভেলের পদের জন্য উপযোগী।"
@@ -2808,6 +2982,10 @@ msgstr "পরিসংখ্যান"
msgid "Stay"
msgstr "থাকুন"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "থামুন"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "শক্তি"
@@ -2902,6 +3080,14 @@ msgstr "টেক্সটের রঙ"
msgid "Thai"
msgstr "থাই"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "এআই এমন একটি পরিবর্তনের প্রস্তাব করেছিল যা এখন এই জীবনবৃত্তান্তের ক্ষেত্রে আর প্রযোজ্য নয়।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "এআই এমন একটি প্রস্তাবনা ফেরত দিয়েছে যা প্রিভিউ করা সম্ভব ছিল না।"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API কী সফলভাবে মুছে ফেলা হয়ে
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API কী মুছে ফেলার পর আর আপনার ডেটায় প্রবেশ করতে পারবে না। এই কাজটি ফিরিয়ে নেওয়া যাবে না।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "সহকারী প্রস্তাবটি ফেরত দেওয়ার আগে থেমে গেল।"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "এটি আপনার জীবনবৃত্তান্তের
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI প্রদানকারীর রেসপন্সের ওপর নির্ভর করে এতে কয়েক মিনিট সময় লাগতে পারে। অনুগ্রহ করে উইন্ডো বন্ধ বা পৃষ্ঠা রিফ্রেশ করবেন না।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "এই প্রস্তাবনাটি পুরনো হয়ে গেছে। সহকারীকে সর্বশেষ জীবনবৃত্তান্ত থেকে এটি পুনরায় তৈরি করতে বলুন।"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "এই জীবনবৃত্তান্তটি লক করা আছে এবং হালনাগাদ করা যাবে না।"
@@ -3385,10 +3580,6 @@ msgstr "এক্স (টুইটার)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "হ্যাঁ, Reactive Resume একাধিক ভাষায় উপলভ্য। আপনি সেটিংস পেজ থেকে বা ডান দিকের উপরের কোণের ভাষা পরিবর্তনকারী ব্যবহার করে নিজের পছন্দের ভাষা বেছে নিতে পারেন। যদি আপনার ভাষা তালিকায় না থাকে, বা আপনি বিদ্যমান অনুবাদ উন্নত করতে চান, তাহলে আপনি <0>Crowdin‑এ অনুবাদে অবদান রাখতে পারেন<1> (নতুন ট্যাবে খুলবে)</1></0>।"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "হ্যাঁ! প্রতিটি টেমপ্লেটই পুরোপুরি কাস্টমাইজযোগ্য। আপনি রঙ, ফন্ট, স্পেসিং পরিবর্তন করতে পারবেন, এমনকি আপনার জীবনবৃত্তান্তের চেহারার পূর্ণ নিয়ন্ত্রণের জন্য কাস্টম CSS-ও লিখতে পারবেন।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "হ্যাঁ! Reactive Resume সম্পূর্ণ বিনামূল্যে ব্যবহারের জন্য, কোনো গোপন খরচ, প্রিমিয়াম স্তর বা সাবস্ক্রিপশন ফি নেই। এটি মুক্ত উৎস এবং সবসময়ই বিনামূল্যে থাকবে।"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elements}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# càrrec} other {# càrrecs}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propostes revisades"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "I tant! Pots exportar el teu currículum a PDF amb un sol clic. El PDF exportat manté perfectament tot el format i l’estil."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accepta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Accepta-ho tot"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Proposta acceptada"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Accedeix als teus currículums i dades de manera programàtica mitjançant l’API."
@@ -229,10 +246,38 @@ msgstr "Afegeix una fila abans"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Després"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integració d'IA desactivada"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Proposta d'IA aplicada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Proposta d'IA rebutjada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Propostes d'IA aplicades."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propostes d'IA rebutjades."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Assistent de currículum amb IA"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanès"
@@ -367,10 +412,22 @@ msgstr "Àrea d’estudi"
msgid "Artificial Intelligence"
msgstr "Intel·ligència artificial"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Demana un canvi de currículum específic..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Demanar un canvi incremental"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Relació d’aspecte"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "La sol·licitud de l'assistent ha fallat"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Bàsic"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Plantilles boniques per triar, amb més en camí."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Abans"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalí"
@@ -462,10 +523,6 @@ msgstr "Llista amb pics"
msgid "By the community, for the community."
msgstr "De la comunitat i per a la comunitat."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Puc personalitzar les plantilles?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Puc exportar el meu currículum a PDF?"
@@ -576,6 +633,14 @@ msgstr "Clar"
msgid "Click here to select a file to import"
msgstr "Fes clic aquí per seleccionar un fitxer per importar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Tanca"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Tanca l'assistent d'IA"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bloc de codi"
@@ -622,6 +687,10 @@ msgstr "Confirma"
msgid "Connect"
msgstr "Connecta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Connecta't i verifica un proveïdor d'IA abans d'utilitzar propostes d'edició de currículums."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copia aquesta clau secreta i utilitza-la a les aplicacions per accedir a
msgid "Copy URL"
msgstr "Copia l’URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "No s'ha pogut aplicar la proposta d'IA."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Desconnecta"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Ignora"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentació"
msgid "Don't have an account? <0/>"
msgstr "No teniu compte? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Fes una donació a Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Activa l’A2F"
msgid "Enable AI Features"
msgstr "Activa les funcions d’IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Habilita la integració de la IA"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Activa l’autenticació en dos passos"
@@ -1162,6 +1247,10 @@ msgstr "Tot el que introdueixis aquí es desa localment al navegador. Les dades
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Exemples: reescriure el resum, ajustar un punt d'experiència, afegir mètriques o adaptar el currículum a una descripció del lloc de treball."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Surt de la pantalla completa"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Més accions de proposta"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Mou a"
@@ -1982,6 +2075,10 @@ msgstr "Ha de començar amb https://"
msgid "Name"
msgstr "Nom"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Cal revisió"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalès"
@@ -2012,6 +2109,10 @@ msgstr "Contrasenya nova"
msgid "New Section"
msgstr "Secció nova"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Següent"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Sense publicitat, sense seguiment"
@@ -2061,11 +2162,19 @@ msgstr "Manteniment continu"
msgid "Open"
msgstr "Obre"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Assistent d'IA oberta"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Obre el client de correu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integracions obertes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Obre la configuració d'integracions"
@@ -2219,6 +2328,10 @@ msgstr "Introdueix la contrasenya que t’ha compartit el propietari del curríc
msgid "Please enter the URL you want to link to:"
msgstr "Introdueix l’URL al qual vols enllaçar:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Si us plau, doneu suport al projecte"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Càrrec"
msgid "Preferences"
msgstr "Preferències"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparació de canvis"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Preajustaments"
@@ -2267,6 +2384,10 @@ msgstr "Prem <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> per afegir o desar la para
msgid "Press <0>Enter</0> to open"
msgstr "Premeu <0>Intro</0> per obrir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Anterior"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color principal"
@@ -2297,6 +2418,11 @@ msgstr "Barra de progrés"
msgid "Projects"
msgstr "Projectes"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposta {0} de {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Protegeix el currículum contra accessos no autoritzats amb una contrasenya"
@@ -2319,6 +2445,10 @@ msgstr "Publicacions"
msgid "Publisher"
msgstr "Editor"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Pegat JSON en brut"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ves a la pàgina inicial"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume és un projecte gratuït i de codi obert, creat amb amor
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume és un creador de currículums gratuït i de codi obert que simplifica el procés de crear, actualitzar i compartir el teu currículum."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume és gratuït i de codi obert. Si t'ha ajudat, considera fer una donació."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume és de codi obert, centrat en la privadesa i completament gratuït. A diferència d’altres creadors de currículums, no mostra anuncis, no rastreja les dades ni limita les funcions darrere d’un mur de pagament."
@@ -2380,6 +2514,18 @@ msgstr "Actualitza"
msgid "Register New Device"
msgstr "Registra un dispositiu nou"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rebutja"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Rebutja-ho tot"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Proposta rebutjada"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Recordeu la contrasenya? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "S’està tornant a enviar el correu de verificació..."
msgid "Reset"
msgstr "Restableix"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Restableix el xat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Restableix la contrasenya"
msgid "Resetting your password..."
msgstr "S’està restablint la contrasenya..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Assistent d'IA per canviar la mida"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Recursos"
@@ -2463,6 +2617,14 @@ msgstr "Anàlisi del currículum completada."
msgid "Resumes"
msgstr "Currículums"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Revisió obligatòria"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propostes revisades"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alinea a la dreta"
@@ -2561,6 +2723,10 @@ msgstr "Selecciona..."
msgid "Self-Host with Docker"
msgstr "Allotjament propi amb Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Enviar"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Envia el correu per restablir la contrasenya"
msgid "Sending password reset email..."
msgstr "S’està enviant el correu per restablir la contrasenya..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Enviant la sol·licitud"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separador"
@@ -2708,6 +2878,10 @@ msgstr "Una sola columna amb barra lateral i disposició en quadrícula neta; ve
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "D'una sola columna amb un encapçalament d'entrada de tres columnes en línia (posició · organització · període); compacte i adaptat a ATS, molt adequat per a les convencions de currículum asiàtiques (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Una sola columna amb encapçalaments de secció en majúscules i un fil superior de color primari a cada pàgina; polit per a currículums executius, de consultoria o d'empreses emergents."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Una sola columna; polit i seriós per a posicions sènior o d’àmbit corporatiu."
@@ -2808,6 +2982,10 @@ msgstr "Estadístiques"
msgid "Stay"
msgstr "Queda't"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Atura"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Fortaleses"
@@ -2902,6 +3080,14 @@ msgstr "Color del text"
msgid "Thai"
msgstr "Tai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "La IA va proposar un canvi que ja no s'aplica a aquest currículum."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "La IA ha retornat una proposta que no es va poder previsualitzar."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "La clau API s’ha suprimit correctament."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Després de la supressió, la clau API ja no podrà accedir a les dades. Aquesta acció no es pot desfer."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "L'assistent es va aturar abans de retornar una proposta."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Aquest és un nom d’URL fàcil d’utilitzar per al currículum."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Això pot trigar uns minuts, segons la resposta del proveïdor d’IA. No tanquis la finestra ni actualitzis la pàgina."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Aquesta proposta està obsoleta. Demana a l'assistent que la generi a partir del currículum més recent."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Aquest currículum està bloquejat i no es pot actualitzar."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Sí, Reactive Resume està disponible en múltiples idiomes. Pots triar l’idioma preferit a la pàgina de configuració o utilitzant el selector d’idioma a l’angle superior dret. Si no hi veus el teu idioma o vols millorar les traduccions existents, pots <0>contribuir a les traduccions a Crowdin<1> (s’obre en una pestanya nova)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Sí. Cada plantilla és completament personalitzable. Pots canviar colors, lletres, espaiat i fins i tot escriure CSS personalitzat per tenir un control total sobre l’aparença del currículum."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Sí. Reactive Resume és completament gratuït d’utilitzar, sense costos ocults, nivells premium ni subscripcions. És de codi obert i sempre serà gratuït."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# položka} few {# položky} many {# položek} other {#
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# role} few {# role} many {# rolí} other {# rolí}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} návrhů zkontrolováno"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Ano! Svůj životopis můžete exportovat do PDF jedním kliknutím. Exportované PDF dokonale zachová veškeré vaše formátování a styl."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Přijmout"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Přijmout vše"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Přijatý návrh"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Přistupujte ke svým životopisům a datům programově pomocí API."
@@ -229,10 +246,38 @@ msgstr "Přidat řádek před"
msgid "Afrikaans"
msgstr "Afrikánština"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Po"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrace umělé inteligence zakázána"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Návrh umělé inteligence byl použit."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Návrh na umělou inteligenci byl zamítnut."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Použité návrhy umělé inteligence."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Návrhy na umělou inteligenci byly zamítnuty."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asistent životopisů s umělou inteligencí"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albánština"
@@ -367,10 +412,22 @@ msgstr "Studijní obor"
msgid "Artificial Intelligence"
msgstr "Umělá inteligence"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Požádejte o cílenou změnu životopisu..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Požádejte o postupnou změnu"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Poměr stran"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Žádost o pomoc selhala"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Základy"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Krásné šablony, ze kterých můžete vybírat, a další jsou na cestě."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Před"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengálština"
@@ -462,10 +523,6 @@ msgstr "Odrážkový seznam"
msgid "By the community, for the community."
msgstr "Vytvořeno komunitou pro komunitu."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Mohu si šablony přizpůsobit?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Mohu svůj životopis exportovat do PDF?"
@@ -576,6 +633,14 @@ msgstr "Přehledně"
msgid "Click here to select a file to import"
msgstr "Kliknutím zde vyberte soubor k importu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Zavřít"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Zavřít asistenta s umělou inteligencí"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blok kódu"
@@ -622,6 +687,10 @@ msgstr "Potvrdit"
msgid "Connect"
msgstr "Připojit"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Před použitím návrhů na úpravu životopisů se připojte a ověřte poskytovatele umělé inteligence."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Zkopírujte tento tajný klíč a použijte ho ve svých aplikacích pro
msgid "Copy URL"
msgstr "Kopírovat URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nelze použít návrh umělé inteligence."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Odpojit"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Propustit"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentace"
msgid "Don't have an account? <0/>"
msgstr "Nemáte účet? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Darovat"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Přispět na Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktivovat 2FA"
msgid "Enable AI Features"
msgstr "Povolit funkce AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Povolit integraci umělé inteligence"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktivovat dvoufázové ověření"
@@ -1162,6 +1247,10 @@ msgstr "Vše, co zde zadáte, je ukládáno lokálně ve vašem prohlížeči. V
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Příklady: přepsat shrnutí, zúžit jednu odrážku zkušeností, přidat metriky nebo upravit životopis pro popis práce."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ukončit celou obrazovku"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Další akce s návrhem"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Přesunout do"
@@ -1982,6 +2075,10 @@ msgstr "Musí začít na https://"
msgid "Name"
msgstr "Název"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Vyžaduje kontrolu"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepálština"
@@ -2012,6 +2109,10 @@ msgstr "Nové heslo"
msgid "New Section"
msgstr "Nová sekce"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Další"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Bez reklam, bez sledování"
@@ -2061,11 +2162,19 @@ msgstr "Průběžná údržba"
msgid "Open"
msgstr "Otevřít"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Otevřený asistent s umělou inteligencí"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Otevřít e-mailového klienta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Otevřené integrace"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Otevřít Nastavení integrace"
@@ -2219,6 +2328,10 @@ msgstr "Zadejte prosím heslo, které vám sdílel vlastník životopisu, abyste
msgid "Please enter the URL you want to link to:"
msgstr "Zadejte prosím URL, na kterou chcete odkazovat:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Prosím, podpořte projekt"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Pozice"
msgid "Preferences"
msgstr "Předvolby"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Příprava změn"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Předvolby"
@@ -2267,6 +2384,10 @@ msgstr "Stiskněte <0>{RETURN_KEY}</0> nebo <1>{COMMA_KEY}</1> pro přidání ne
msgid "Press <0>Enter</0> to open"
msgstr "Stisknutím klávesy <0>Enter</0> otevřete"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Předchozí"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hlavní barva"
@@ -2297,6 +2418,11 @@ msgstr "Ukazatel průběhu"
msgid "Projects"
msgstr "Projekty"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Návrh {0} z {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Chraňte svůj životopis heslem před neoprávněným přístupem"
@@ -2319,6 +2445,10 @@ msgstr "Publikace"
msgid "Publisher"
msgstr "Vydavatel"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch pro surový JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – přejít na domovskou stránku"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume je bezplatný open source projekt, vytvořený z lásky
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume je bezplatný nástroj pro tvorbu životopisů s otevřeným zdrojovým kódem, který zjednodušuje proces vytváření, aktualizace a sdílení životopisů."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume je zdarma a má otevřený zdrojový kód. Pokud vám pomohl, zvažte prosím dar."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume je open source, zaměřené na soukromí a zcela zdarma. Na rozdíl od jiných nástrojů pro tvorbu životopisů nezobrazuje reklamy, nesleduje vaše data a neomezuje funkce za paywallem."
@@ -2380,6 +2514,18 @@ msgstr "Obnovit"
msgid "Register New Device"
msgstr "Registrace nového zařízení"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Odmítnout"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Odmítnout vše"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Zamítnutý návrh"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Vzpomínáte si na heslo? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Opětovné odesílání ověřovacího e-mailu…"
msgid "Reset"
msgstr "Resetovat"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Obnovit chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Obnovte své heslo"
msgid "Resetting your password..."
msgstr "Obnovování hesla…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Změna velikosti asistenta s umělou inteligencí"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Zdroje"
@@ -2463,6 +2617,14 @@ msgstr "Analýza životopisu dokončena."
msgid "Resumes"
msgstr "Životopisy"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Vyžaduje se kontrola"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Zkontrolované návrhy"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Zarovnat vpravo"
@@ -2561,6 +2723,10 @@ msgstr "Vybrat..."
msgid "Self-Host with Docker"
msgstr "Vlastní hosting pomocí Dockeru"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Poslat"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Odeslat e-mail pro obnovení hesla"
msgid "Sending password reset email..."
msgstr "Odesílání e-mailu pro obnovení hesla…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Odesílání požadavku"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Oddělovač"
@@ -2708,6 +2878,10 @@ msgstr "Jednosloupcové s postranním panelem a čistým mřížkovým rozložen
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Jednosloupcový s inline třísloupcovým záhlavím (pozice - organizace - tečka); kompaktní a vhodný pro ATS, vhodný pro asijské konvence životopisů (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Jednosloupcový s velkými písmeny nadpisů sekcí a horní linií v základní barvě na každé stránce; vybroušené pro životopisy vedoucích pracovníků, konzultantů nebo startupů."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Jednosloupcové; uhlazené a seriózní pro seniorské nebo enterprise pozice."
@@ -2808,6 +2982,10 @@ msgstr "Statistiky"
msgid "Stay"
msgstr "Zůstat"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Zastávka"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Silné stránky"
@@ -2902,6 +3080,14 @@ msgstr "Barva textu"
msgid "Thai"
msgstr "Thajština"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Umělá inteligence navrhla změnu, která se na tento životopis již nevztahuje."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Umělá inteligence vrátila návrh, jehož náhled nebylo možné zobrazit."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API klíč byl úspěšně smazán."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API klíč po smazání již nebude mít přístup k vašim datům. Tuto akci nelze vrátit zpět."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistent se zastavil, než vrátil návrh."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Toto je název vašeho životopisu vhodný pro URL adresu."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Může to trvat několik minut v závislosti na odezvě poskytovatele AI. Nezavírejte prosím okno ani neobnovujte stránku."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Tento návrh je zastaralý. Požádejte asistenta, aby jej znovu vytvořil z nejnovějšího životopisu."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Tento životopis je uzamčen a nelze ho aktualizovat."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ano, Reactive Resume je dostupné ve více jazycích. Svůj preferovaný jazyk si můžete vybrat na stránce nastavení nebo pomocí přepínače jazyka v pravém horním rohu. Pokud svůj jazyk nevidíte nebo chcete vylepšit existující překlady, můžete <0>přispět k překladům na Crowdin<1> (otevře se na nové kartě)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ano! Každá šablona je plně přizpůsobitelná. Můžete měnit barvy, písma, rozestupy a dokonce psát vlastní CSS pro úplnou kontrolu nad vzhledem svého životopisu."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ano! Reactive Resume je zcela zdarma k použití, bez skrytých poplatků, prémiových úrovní nebo předplatného. Je open source a vždy zdarma zůstane."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elementer}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rolle} other {# roller}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} forslag gennemgået"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Ja, selvfølgelig! Du kan eksportere dit CV til PDF med ét klik. Den eksporterede PDF bevarer al din formatering og styling perfekt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Acceptere"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Accepter alle"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Accepteret forslag"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Få programmatisk adgang til dine CV'er og data ved hjælp af API'et."
@@ -229,10 +246,38 @@ msgstr "Tilføj række før"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Efter"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI-integration deaktiveret"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI-forslag anvendt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI-forslag afvist."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI-forslag anvendt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI-forslag afvist."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI CV-assistent"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albansk"
@@ -367,10 +412,22 @@ msgstr "Studieområde"
msgid "Artificial Intelligence"
msgstr "Kunstig intelligens"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Bed om en målrettet CV-ændring..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Bed om en trinvis ændring"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Billedformat"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistent-anmodning mislykkedes"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Grundlæggende"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Smukke skabeloner at vælge imellem, med flere på vej."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Før"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Punktliste"
msgid "By the community, for the community."
msgstr "Af fællesskabet, for fællesskabet."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Kan jeg tilpasse skabelonerne?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Kan jeg eksportere mit CV til PDF?"
@@ -576,6 +633,14 @@ msgstr "Klar"
msgid "Click here to select a file to import"
msgstr "Klik her for at vælge en fil, der skal importeres"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Luk"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Luk AI-assistent"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kodeblok"
@@ -622,6 +687,10 @@ msgstr "Bekræft"
msgid "Connect"
msgstr "Forbind"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Opret forbindelse til og bekræft en AI-udbyder, før du bruger forslag til redigering af CV'er."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopiér denne hemmelige nøgle og brug den i dine applikationer for at f
msgid "Copy URL"
msgstr "Kopiér URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Kunne ikke anvende AI-forslaget."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Afbryd forbindelse"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Afskedige"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentation"
msgid "Don't have an account? <0/>"
msgstr "Har du ikke en konto? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donér"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donér til Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktivér 2FA"
msgid "Enable AI Features"
msgstr "Aktivér AI-funktioner"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Aktivér AI-integration"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktivér to-faktor-godkendelse"
@@ -1162,6 +1247,10 @@ msgstr "Alt hvad du indtaster her, gemmes lokalt i din browser. Dine data sendes
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Eksempler: omskriv resuméet, stram ét erfaringspunkt, tilføj målinger eller tilpas CV'et til en jobbeskrivelse."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Afslut fuldskærm"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Flere forslagshandlinger"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Flyt til"
@@ -1982,6 +2075,10 @@ msgstr "Skal starte med https://"
msgid "Name"
msgstr "Navn"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Skal gennemgås"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalesisk"
@@ -2012,6 +2109,10 @@ msgstr "Ny adgangskode"
msgid "New Section"
msgstr "Nyt afsnit"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Næste"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Ingen reklamer, ingen sporing"
@@ -2061,11 +2162,19 @@ msgstr "Løbende vedligeholdelse"
msgid "Open"
msgstr "Åbn"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Åbn AI-assistent"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Åbn e-mailklient"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Åbne integrationer"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Åbn indstillinger for integrationer"
@@ -2219,6 +2328,10 @@ msgstr "Indtast adgangskoden, som ejeren af CV'et har delt med dig, for at forts
msgid "Please enter the URL you want to link to:"
msgstr "Angiv den URL, du vil oprette et link til:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Støt venligst projektet"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Stilling"
msgid "Preferences"
msgstr "Præferencer"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Forbereder ændringer"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Forudindstillinger"
@@ -2267,6 +2384,10 @@ msgstr "Tryk på <0>{RETURN_KEY}</0> eller <1>{COMMA_KEY}</1> for at tilføje el
msgid "Press <0>Enter</0> to open"
msgstr "Tryk på <0>Enter</0> for at åbne"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Forrige"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primær farve"
@@ -2297,6 +2418,11 @@ msgstr "Statuslinje"
msgid "Projects"
msgstr "Projekter"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Forslag {0} af {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Beskyt dit CV mod uautoriseret adgang med en adgangskode"
@@ -2319,6 +2445,10 @@ msgstr "Publikationer"
msgid "Publisher"
msgstr "Udgiver"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Rå JSON-patch"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Gå til startside"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume er et gratis og open-source projekt, bygget med kærligh
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume er en gratis og open-source CV-bygger, der forenkler processen med at oprette, opdatere og dele dit CV."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume er gratis og open source. Hvis det har hjulpet dig, så overvej venligst at donere."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume er open-source, fokuserer på privatliv og er helt gratis. I modsætning til andre CV-byggere viser det ingen reklamer, sporer ikke dine data og begrænser ikke funktioner bag en betalingsmur."
@@ -2380,6 +2514,18 @@ msgstr "Opdater"
msgid "Register New Device"
msgstr "Registrer ny enhed"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Afvise"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Afvis alle"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Afvist forslag"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Husker du din adgangskode? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Gensender bekræftelsesmail..."
msgid "Reset"
msgstr "Nulstil"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Nulstil chatten"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Nulstil din adgangskode"
msgid "Resetting your password..."
msgstr "Nulstiller din adgangskode..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Ændre størrelse på AI-assistenten"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ressourcer"
@@ -2463,6 +2617,14 @@ msgstr "CV-analysen er færdig."
msgid "Resumes"
msgstr "CV'er"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Gennemgang påkrævet"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Gennemgåede forslag"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Højrejustér"
@@ -2561,6 +2723,10 @@ msgstr "Vælg..."
msgid "Self-Host with Docker"
msgstr "Selvhostning med Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Sende"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Send e-mail til nulstilling af adgangskode"
msgid "Sending password reset email..."
msgstr "Sender e-mail til nulstilling af adgangskode..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Sender anmodning"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Skillelinje"
@@ -2708,6 +2878,10 @@ msgstr "Enkeltkolonne med sidebjælke og rent gitterlayout; alsidig til enhver p
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Enspaltet med en inline-overskrift på tre spalter (position - organisation - periode); kompakt og ATS-venlig, velegnet til asiatiske CV-konventioner (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Enkelt kolonne med sektionsoverskrifter med store bogstaver og en primærfarvet toplinje på hver side; poleret til CV'er for ledere, konsulenter eller startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Enkeltkolonne; poleret og seriøs til senior- eller enterprise-stillinger."
@@ -2808,6 +2982,10 @@ msgstr "Statistik"
msgid "Stay"
msgstr "Bliv"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Styrker"
@@ -2902,6 +3080,14 @@ msgstr "Tekstfarve"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI'en har foreslået en ændring, der ikke længere gælder for dette CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI'en returnerede et forslag, der ikke kunne forhåndsvises."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API-nøglen er blevet slettet."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API-nøglen vil ikke længere kunne få adgang til dine data efter sletning. Denne handling kan ikke fortrydes."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Assistenten stoppede, før han gentog et forslag."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Dette er et URL-venligt navn til dit CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Dette kan tage et par minutter afhængigt af svaret fra AI-udbyderen. Luk venligst ikke vinduet og genindlæs ikke siden."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Dette forslag er forældet. Bed assistenten om at generere det fra det seneste CV."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Dette CV er låst og kan ikke opdateres."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ja, Reactive Resume er tilgængelig på flere sprog. Du kan vælge dit foretrukne sprog på indstillingssiden eller ved hjælp af sprogvælgeren i øverste højre hjørne. Hvis du ikke kan se dit sprog, eller hvis du gerne vil forbedre de eksisterende oversættelser, kan du <0>bidrage til oversættelserne på Crowdin<1> (åbner i ny fane)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ja! Hver skabelon er fuldt ud til at tilpasse. Du kan ændre farver, skrifttyper, mellemrum og endda skrive brugerdefineret CSS for fuld kontrol over dit CV's udseende."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ja! Reactive Resume er helt gratis at bruge, uden skjulte omkostninger, premium-niveauer eller abonnementsgebyrer. Det er open-source og vil altid forblive gratis."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# Element} other {# Elemente}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# Rolle} other {# Rollen}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} geprüfte Vorschläge"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Auf jeden Fall! Du kannst deinen Lebenslauf mit einem einzigen Klick als PDF exportieren. Das exportierte PDF übernimmt all deine Formatierungen und dein Styling perfekt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Akzeptieren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Alle akzeptieren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Angenommener Vorschlag"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Greife mit der API programmgesteuert auf deine Lebensläufe und Daten zu."
@@ -229,10 +246,38 @@ msgstr "Zeile davor einfügen"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Nach"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "KI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "KI-Integration deaktiviert"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "KI-Vorschlag eingereicht."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "KI-Vorschlag abgelehnt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "KI-Vorschläge wurden eingereicht."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "KI-Vorschläge abgelehnt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "KI-Lebenslaufassistent"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanisch"
@@ -367,10 +412,22 @@ msgstr "Studienfach"
msgid "Artificial Intelligence"
msgstr "Künstliche Intelligenz"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Bitten Sie um eine gezielte Lebenslaufänderung..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Bitten Sie um eine schrittweise Änderung"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Seitenverhältnis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistentenanfrage fehlgeschlagen"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Grundlagen"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Schöne Vorlagen zur Auswahl – und es kommen laufend weitere hinzu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Vor"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalisch"
@@ -462,10 +523,6 @@ msgstr "Aufzählungsliste"
msgid "By the community, for the community."
msgstr "Von der Gemeinschaft, für die Gemeinschaft."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Kann ich die Vorlagen anpassen?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Kann ich meinen Lebenslauf als PDF exportieren?"
@@ -576,6 +633,14 @@ msgstr "Klar"
msgid "Click here to select a file to import"
msgstr "Hier klicken, um eine Datei zum Importieren auszuwählen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Schließen"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Schließen Sie den KI-Assistenten"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Code-Block"
@@ -622,6 +687,10 @@ msgstr "Bestätigen"
msgid "Connect"
msgstr "Verbinden"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Bevor Sie Vorschläge zur Lebenslaufbearbeitung nutzen, sollten Sie einen KI-Anbieter kontaktieren und dessen Eignung überprüfen."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopiere diesen geheimen Schlüssel und verwende ihn in deinen Anwendunge
msgid "Copy URL"
msgstr "URL kopieren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Der KI-Vorschlag konnte nicht angewendet werden."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Trennen"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Zurückweisen"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentation"
msgid "Don't have an account? <0/>"
msgstr "Sie haben noch kein Konto? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Spenden"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "An Reactive Resume spenden"
@@ -1094,6 +1175,10 @@ msgstr "2FA aktivieren"
msgid "Enable AI Features"
msgstr "KI-Funktionen aktivieren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "KI-Integration aktivieren"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Zwei-Faktor-Authentifizierung aktivieren"
@@ -1162,6 +1247,10 @@ msgstr "Alles, was du hier eingibst, wird lokal in deinem Browser gespeichert. D
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Beispiele: die Zusammenfassung überarbeiten, einen Erfahrungspunkt präzisieren, Kennzahlen hinzufügen oder den Lebenslauf an eine Stellenbeschreibung anpassen."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Vollbild schließen"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modell"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Weitere Aktionsvorschläge"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Verschieben nach"
@@ -1982,6 +2075,10 @@ msgstr "Muss mit https:// beginnen."
msgid "Name"
msgstr "Name"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Überprüfung erforderlich"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalesisch"
@@ -2012,6 +2109,10 @@ msgstr "Neues Passwort"
msgid "New Section"
msgstr "Neuer Abschnitt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Nächste"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Keine Werbung, kein Tracking"
@@ -2061,11 +2162,19 @@ msgstr "Laufende Wartung"
msgid "Open"
msgstr "Öffnen"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Offener KI-Assistent"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "E-Mail-Programm öffnen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Offene Integrationen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Integrationseinstellungen öffnen"
@@ -2219,6 +2328,10 @@ msgstr "Bitte geben Sie das Passwort ein, das Ihnen vom Besitzer des Lebenslaufs
msgid "Please enter the URL you want to link to:"
msgstr "Bitte geben Sie die URL ein, zu der Sie verlinken möchten:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Bitte unterstützen Sie das Projekt."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Position"
msgid "Preferences"
msgstr "Einstellungen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Änderungen vorbereiten"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Voreinstellungen"
@@ -2267,6 +2384,10 @@ msgstr "Drücken Sie <0>{RETURN_KEY}</0> oder <1>{COMMA_KEY}</1>, um das aktuell
msgid "Press <0>Enter</0> to open"
msgstr "Drücken Sie <0>Enter</0> zum Öffnen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Zurück"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfarbe"
@@ -2297,6 +2418,11 @@ msgstr "Fortschrittsbalken"
msgid "Projects"
msgstr "Projekte"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Vorschlag {0} von {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Schützen Sie Ihren Lebenslauf mit einem Passwort vor unbefugtem Zugriff"
@@ -2319,6 +2445,10 @@ msgstr "Veröffentlichungen"
msgid "Publisher"
msgstr "Verlag"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Raw JSON Patch"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – Zur Startseite gehen"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ist ein kostenloses Open-Source-Projekt, mit viel Liebe
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume ist ein kostenloser und quelloffener Lebenslauf-Builder, der das Erstellen, Aktualisieren und Teilen Ihres Lebenslaufs vereinfacht."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume ist kostenlos und Open Source. Wenn es Ihnen geholfen hat, würden wir uns über eine Spende freuen."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ist Open Source, datenschutzorientiert und vollständig kostenlos. Anders als andere Lebenslauf-Builder zeigt es keine Werbung an, trackt deine Daten nicht und versteckt keine Funktionen hinter einer Bezahlschranke."
@@ -2380,6 +2514,18 @@ msgstr "Aktualisieren"
msgid "Register New Device"
msgstr "Neues Gerät registrieren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Ablehnen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Alle ablehnen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Abgelehnter Vorschlag"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Passwort noch parat? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Verifizierungs-E-Mail wird erneut gesendet..."
msgid "Reset"
msgstr "Zurücksetzen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Chat zurücksetzen"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Setzen Sie Ihr Passwort zurück"
msgid "Resetting your password..."
msgstr "Ihr Passwort wird zurückgesetzt..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "KI-Assistenten zur Größenänderung"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ressourcen"
@@ -2463,6 +2617,14 @@ msgstr "Analyse des Lebenslaufs abgeschlossen."
msgid "Resumes"
msgstr "Lebensläufe"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Überprüfung erforderlich"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Geprüfte Vorschläge"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rechtsbündig"
@@ -2561,6 +2723,10 @@ msgstr "Auswählen..."
msgid "Self-Host with Docker"
msgstr "Selbst hosten mit Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Schicken"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "E-Mail zum Zurücksetzen des Passworts senden"
msgid "Sending password reset email..."
msgstr "E-Mail zum Zurücksetzen des Passworts wird gesendet..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Anfrage senden"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Trennzeichen"
@@ -2708,6 +2878,10 @@ msgstr "Einspaltig mit Seitenleiste und sauberem Rasterlayout; vielseitig für j
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Einspaltig mit einer dreispaltigen Kopfzeile (Position - Organisation - Punkt); kompakt und ATS-freundlich, gut geeignet für asiatische Lebenslaufkonventionen (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Einspaltig mit in Großbuchstaben geschriebenen Abschnittsüberschriften und einer farbigen Trennlinie am oberen Rand jeder Seite; optimiert für Lebensläufe von Führungskräften, Beratern oder Startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Einspaltig; seriös und ausgefeilt für Senior- oder Enterprise-Positionen."
@@ -2808,6 +2982,10 @@ msgstr "Statistiken"
msgid "Stay"
msgstr "Hier bleiben"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stoppen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Stärken"
@@ -2902,6 +3080,14 @@ msgstr "Textfarbe"
msgid "Thai"
msgstr "Thailändisch"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Die KI hat eine Änderung vorgeschlagen, die auf diesen Lebenslauf nicht mehr zutrifft."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Die KI hat einen Vorschlag zurückgegeben, der nicht in der Vorschau angezeigt werden konnte."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Der API-Schlüssel wurde erfolgreich gelöscht."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Der API-Schlüssel kann nach dem Löschen nicht mehr auf deine Daten zugreifen. Diese Aktion kann nicht rückgängig gemacht werden."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Der Assistent hielt inne, bevor er einen Vorschlag zurückgeben konnte."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Dies ist ein URL-freundlicher Name für Ihren Lebenslauf."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Dies kann einige Minuten dauern, abhängig von der Antwort des KI-Anbieters. Bitte schließe das Fenster nicht und lade die Seite nicht neu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Dieser Vorschlag ist veraltet. Bitten Sie Ihren Assistenten, ihn anhand des aktuellen Lebenslaufs neu zu erstellen."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Dieser Lebenslauf ist gesperrt und kann nicht aktualisiert werden."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ja, Reactive Resume ist in mehreren Sprachen verfügbar. Du kannst deine bevorzugte Sprache auf der Einstellungsseite oder über den Sprachumschalter in der oberen rechten Ecke auswählen. Wenn du deine Sprache nicht findest oder die bestehenden Übersetzungen verbessern möchtest, kannst du <0>auf Crowdin zu den Übersetzungen beitragen<1> (öffnet in neuem Tab)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ja! Jede Vorlage ist vollständig anpassbar. Du kannst Farben, Schriften und Abstände ändern und sogar eigenes CSS schreiben, um die Darstellung deines Lebenslaufs vollständig zu kontrollieren."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ja! Reactive Resume ist völlig kostenlos nutzbar, ohne versteckte Kosten, Premium-Stufen oder Abonnementgebühren. Es ist Open Source und wird immer kostenlos bleiben."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# στοιχείο} other {# στοιχεία}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ρόλος} other {# ρόλοι}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} προτάσεις που εξετάστηκαν"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "Α4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Φυσικά! Μπορείτε να εξαγάγετε το βιογραφικό σας σημείωμα σε PDF με ένα μόνο κλικ. Το εξαγόμενο PDF διατηρεί άψογα όλη τη μορφοποίηση και το στυλ σας."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Αποδέχομαι"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Αποδοχή όλων"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Αποδεκτή πρόταση"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Αποκτήστε πρόσβαση στα βιογραφικά σημειώματά σας και στα δεδομένα σας προγραμματιστικά χρησιμοποιώντας το API."
@@ -229,10 +246,38 @@ msgstr "Προσθήκη γραμμής πριν"
msgid "Afrikaans"
msgstr "Αφρικάανς"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Μετά"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "ΤΝ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Η ενσωμάτωση τεχνητής νοημοσύνης απενεργοποιήθηκε"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Η πρόταση τεχνητής νοημοσύνης εφαρμόστηκε."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Η πρόταση για την Τεχνητή Νοημοσύνη απορρίφθηκε."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Εφαρμόστηκαν προτάσεις για την Τεχνητή Νοημοσύνη."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Οι προτάσεις για τεχνητή νοημοσύνη απορρίφθηκαν."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Βοηθός βιογραφικού AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Αλβανικά"
@@ -367,10 +412,22 @@ msgstr "Τομέας σπουδών"
msgid "Artificial Intelligence"
msgstr "Τεχνητή Νοημοσύνη"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Ζητήστε μια στοχευμένη αλλαγή βιογραφικού..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Ζητήστε μια σταδιακή αλλαγή"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Αναλογία διαστάσεων"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Το αίτημα του Βοηθού απέτυχε"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Βασικά στοιχεία"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Όμορφα πρότυπα για να επιλέξετε, με ακόμα περισσότερα καθ’ οδόν."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Προτού"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Μπενγκάλι"
@@ -462,10 +523,6 @@ msgstr "Λίστα κουκκίδων"
msgid "By the community, for the community."
msgstr "Από την κοινότητα, για την κοινότητα."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Μπορώ να προσαρμόσω τα πρότυπα;"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Μπορώ να εξαγάγω το βιογραφικό μου σημείωμα σε PDF;"
@@ -576,6 +633,14 @@ msgstr "Σαφής"
msgid "Click here to select a file to import"
msgstr "Κάντε κλικ εδώ για να επιλέξετε ένα αρχείο προς εισαγωγή"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Κλείσιμο"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Κλείσιμο βοηθού τεχνητής νοημοσύνης"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Μπλοκ κώδικα"
@@ -622,6 +687,10 @@ msgstr "Επιβεβαίωση"
msgid "Connect"
msgstr "Σύνδεση"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Συνδεθείτε και επαληθεύστε έναν πάροχο τεχνητής νοημοσύνης πριν χρησιμοποιήσετε προτάσεις επεξεργασίας βιογραφικού."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Αντιγράψτε αυτό το μυστικό κλειδί και χ
msgid "Copy URL"
msgstr "Αντιγραφή URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Δεν ήταν δυνατή η εφαρμογή της πρότασης τεχνητής νοημοσύνης."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Αποσύνδεση"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Απολύω"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Τεκμηρίωση"
msgid "Don't have an account? <0/>"
msgstr "Δεν έχετε λογαριασμό; <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Προσφέρω"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Κάντε μία δωρεά στο Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Ενεργοποίηση 2FA"
msgid "Enable AI Features"
msgstr "Ενεργοποίηση λειτουργιών ΤΝ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Ενεργοποίηση ενσωμάτωσης τεχνητής νοημοσύνης"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Ενεργοποίηση ελέγχου ταυτότητας δυο σταδίων"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Παραδείγματα: ξαναγράψτε την περίληψη, περιορίστε ένα σημείο εμπειρίας, προσθέστε μετρήσεις ή προσαρμόστε το βιογραφικό σημείωμα για μια περιγραφή θέσης εργασίας."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Έξοδος από πλήρη οθόνη"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Μοντέλο"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Περισσότερες ενέργειες πρότασης"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Μετακίνηση σε"
@@ -1982,6 +2075,10 @@ msgstr "Πρέπει να αρχίζει με https://"
msgid "Name"
msgstr "Όνομα"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Χρειάζεται αναθεώρηση"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Νεπάλι"
@@ -2012,6 +2109,10 @@ msgstr "Νέος κωδικός πρόσβασης"
msgid "New Section"
msgstr "Νέα ενότητα"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Επόμενο"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Χωρίς διαφημίσεις, χωρίς παρακολούθηση"
@@ -2061,11 +2162,19 @@ msgstr "Συνεχής συντήρηση"
msgid "Open"
msgstr "Άνοιγμα"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Ανοιχτός βοηθός τεχνητής νοημοσύνης"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Άνοιγμα προγράμματος email"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Ανοιχτές Ενοποιήσεις"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Ανοίξτε τις Ρυθμίσεις Ολοκληρώσεων"
@@ -2219,6 +2328,10 @@ msgstr "Εισαγάγετε τον κωδικό πρόσβασης που μο
msgid "Please enter the URL you want to link to:"
msgstr "Εισαγάγετε το URL στο οποίο θέλετε να γίνεται ο σύνδεσμος:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Παρακαλώ υποστηρίξτε το έργο"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Θέση"
msgid "Preferences"
msgstr "Προτιμήσεις"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Προετοιμασία αλλαγών"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Προεπιλογές"
@@ -2267,6 +2384,10 @@ msgstr "Πατήστε <0>{RETURN_KEY}</0> ή <1>{COMMA_KEY}</1> για να π
msgid "Press <0>Enter</0> to open"
msgstr "Πατήστε <0>Enter</0> για να ανοίξετε"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Προηγούμενο"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Βασικό χρώμα"
@@ -2297,6 +2418,11 @@ msgstr "Γραμμή προόδου"
msgid "Projects"
msgstr "Έργα"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Πρόταση {0} από {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Προστατέψτε το βιογραφικό σας σημείωμα από μη εξουσιοδοτημένη πρόσβαση με έναν κωδικό πρόσβασης"
@@ -2319,6 +2445,10 @@ msgstr "Δημοσιεύσεις"
msgid "Publisher"
msgstr "Εκδότης"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Ακατέργαστη ενημέρωση κώδικα JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Μετάβαση στην αρχική σελίδα"
@@ -2340,6 +2470,10 @@ msgstr "Το Reactive Resume είναι ένα δωρεάν έργο ανοικ
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Το Reactive Resume είναι ένας δωρεάν κατασκευαστής βιογραφικών σημειωμάτων ανοικτού κώδικα που απλοποιεί τη διαδικασία δημιουργίας, ενημέρωσης και κοινοποίησης του βιογραφικού σας σημειώματος."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Το Reactive Resume είναι δωρεάν και ανοιχτού κώδικα. Αν σας έχει βοηθήσει, σκεφτείτε να κάνετε μια δωρεά."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Το Reactive Resume είναι ανοικτού κώδικα, με έμφαση στο απόρρητο και εντελώς δωρεάν. Σε αντίθεση με άλλους κατασκευαστές βιογραφικών σημειωμάτων, δεν εμφανίζει διαφημίσεις, δεν παρακολουθεί τα δεδομένα σας και δεν περιορίζει τις λειτουργίες του πίσω από paywall."
@@ -2380,6 +2514,18 @@ msgstr "Ανανέωση"
msgid "Register New Device"
msgstr "Εγγραφή νέας συσκευής"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Απορρίπτω"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Απόρριψη όλων"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Απορρίφθηκε η πρόταση"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Θυμάστε τον κωδικό σας; <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Επαναποστολή email επαλήθευσης..."
msgid "Reset"
msgstr "Επαναφορά"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Επαναφορά συνομιλίας"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Επαναφορά κωδικού πρόσβασης"
msgid "Resetting your password..."
msgstr "Επαναφορά κωδικού πρόσβασης..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Αλλαγή μεγέθους βοηθού τεχνητής νοημοσύνης"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Πόροι"
@@ -2463,6 +2617,14 @@ msgstr "Η ανάλυση του βιογραφικού ολοκληρώθηκε
msgid "Resumes"
msgstr "Βιογραφικά σημειώματα"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Απαιτείται έλεγχος"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Εξετασμένες προτάσεις"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Στοίχιση δεξιά"
@@ -2561,6 +2723,10 @@ msgstr "Επιλογή..."
msgid "Self-Host with Docker"
msgstr "Αυτο-φιλοξενία με Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Στέλνω"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Αποστολή email επαναφοράς κωδικού πρόσβα
msgid "Sending password reset email..."
msgstr "Αποστολή email επαναφοράς κωδικού πρόσβασης..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Αποστολή αιτήματος"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Διαχωριστικό"
@@ -2708,6 +2878,10 @@ msgstr "Μονή στήλη με πλαϊνή μπάρα και καθαρή δ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Μονόστηλο με γραμμική κεφαλίδα εισόδου τριών στηλών (θέση - οργάνωση - περίοδος)- συμπαγές και φιλικό προς την ATS, κατάλληλο για τις ασιατικές συμβάσεις βιογραφικού σημειώματος (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Μονόστηλο με κεφαλαία γράμματα στις επικεφαλίδες και κύριο χρώμα στο πάνω μέρος σε κάθε σελίδα. Βελτιωμένο για βιογραφικά στελεχών, συμβούλων ή νεοσύστατων επιχειρήσεων."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Μονή στήλη· προσεγμένο και σοβαρό για ανώτερες ή θέσεις εταιρικού επιπέδου."
@@ -2808,6 +2982,10 @@ msgstr "Στατιστικά"
msgid "Stay"
msgstr "Παραμονή"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Στάση"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Δυνατά σημεία"
@@ -2902,6 +3080,14 @@ msgstr "Χρώμα κειμένου"
msgid "Thai"
msgstr "Ταϊλανδικά"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Η Τεχνητή Νοημοσύνη πρότεινε μια αλλαγή που δεν ισχύει πλέον για αυτό το βιογραφικό."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Η Τεχνητή Νοημοσύνη επέστρεψε μια πρόταση της οποίας η προεπισκόπηση δεν ήταν δυνατή."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Το κλειδί API διαγράφηκε με επιτυχία."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Μετά τη διαγραφή, το κλειδί API δεν θα μπορεί πλέον να αποκτά πρόσβαση στα δεδομένα σας. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Ο βοηθός σταμάτησε πριν επιστρέψει μια πρόταση."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Αυτό είναι ένα φιλικό προς το URL όνομα γ
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Αυτό μπορεί να πάρει μερικά λεπτά, ανάλογα με την απόκριση του παρόχου ΤΝ. Μην κλείσετε το παράθυρο ή ανανεώσετε τη σελίδα."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Αυτή η πρόταση είναι παλιά. Ζητήστε από τον βοηθό να την αναδημιουργήσει από το πιο πρόσφατο βιογραφικό."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Αυτό το βιογραφικό σημείωμα είναι κλειδωμένο και δεν μπορεί να ενημερωθεί."
@@ -3385,10 +3580,6 @@ msgstr "Χ (Τwitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ναι, το Reactive Resume είναι διαθέσιμο σε πολλές γλώσσες. Μπορείτε να επιλέξετε την προτιμώμενη γλώσσα σας στη σελίδα ρυθμίσεων ή χρησιμοποιώντας τον επιλογέα γλώσσας στην επάνω δεξιά γωνία. Αν δεν βλέπετε τη γλώσσα σας ή θα θέλατε να βελτιώσετε τις υπάρχουσες μεταφράσεις, μπορείτε να <0>συμβάλετε στις μεταφράσεις στο Crowdin<1> (ανοίγει σε νέα καρτέλα)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ναι! Κάθε πρότυπο είναι πλήρως προσαρμόσιμο. Μπορείτε να αλλάξετε χρώματα, γραμματοσειρές, αποστάσεις και ακόμη και να γράψετε προσαρμοσμένο CSS για πλήρη έλεγχο της εμφάνισης του βιογραφικού σας σημειώματος."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ναι! Το Reactive Resume είναι εντελώς δωρεάν στη χρήση, χωρίς κρυφές χρεώσεις, επίπεδα premium ή συνδρομές. Είναι ανοικτού κώδικα και θα παραμείνει πάντα δωρεάν."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# role} other {# roles}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} proposals reviewed"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accept"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Accept all"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Accepted proposal"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Access your resumes and data programmatically using the API."
@@ -229,10 +246,38 @@ msgstr "Add Row Before"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "After"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI integration disabled"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI proposal applied."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI proposal rejected."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI proposals applied."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI proposals rejected."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI Resume Assistant"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -367,10 +412,22 @@ msgstr "Area of Study"
msgid "Artificial Intelligence"
msgstr "Artificial Intelligence"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Ask for a targeted resume change..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Ask for an incremental change"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistant request failed"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Basics"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Beautiful templates to choose from, with more on the way."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Before"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Bullet List"
msgid "By the community, for the community."
msgstr "By the community, for the community."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Can I customise the templates?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Can I export my resume to PDF?"
@@ -576,6 +633,14 @@ msgstr "Clear"
msgid "Click here to select a file to import"
msgstr "Click here to select a file to import"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Close"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Close AI assistant"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Code Block"
@@ -622,6 +687,10 @@ msgstr "Confirm"
msgid "Connect"
msgstr "Connect"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Connect and verify an AI provider before using resume editing proposals."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copy this secret key and use it in your applications to access your data
msgid "Copy URL"
msgstr "Copy URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Could not apply the AI proposal."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Disconnect"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Dismiss"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentation"
msgid "Don't have an account? <0/>"
msgstr "Don't have an account? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donate"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donate to Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Enable 2FA"
msgid "Enable AI Features"
msgstr "Enable AI Features"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Enable AI integration"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Enable Two-Factor Authentication"
@@ -1162,6 +1247,10 @@ msgstr "Everything entered here is stored locally on your browser. Your data is
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit fullscreen"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "More proposal actions"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Move to"
@@ -1982,6 +2075,10 @@ msgstr "Must start with https://"
msgid "Name"
msgstr "Name"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Needs review"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepali"
@@ -2012,6 +2109,10 @@ msgstr "New Password"
msgid "New Section"
msgstr "New Section"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Next"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "No Advertising, No Tracking"
@@ -2061,11 +2162,19 @@ msgstr "Ongoing Maintenance"
msgid "Open"
msgstr "Open"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Open AI assistant"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Open Email Client"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Open Integrations"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Open Integrations Settings"
@@ -2219,6 +2328,10 @@ msgstr "Please enter the password shared with you by the owner of the resume to
msgid "Please enter the URL you want to link to:"
msgstr "Please enter the URL you want to link to:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Please support the project"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Position"
msgid "Preferences"
msgstr "Preferences"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparing changes"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Presets"
@@ -2267,6 +2384,10 @@ msgstr "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the curre
msgid "Press <0>Enter</0> to open"
msgstr "Press <0>Enter</0> to open"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Prev"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Colour"
@@ -2297,6 +2418,11 @@ msgstr "Progress Bar"
msgid "Projects"
msgstr "Projects"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposal {0} of {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Protect your resume from unauthorised access with a password"
@@ -2319,6 +2445,10 @@ msgstr "Publications"
msgid "Publisher"
msgstr "Publisher"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Raw JSON Patch"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Go to homepage"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume is a free and open-source project, built with love and m
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume is free and open source. If it has helped you, please consider donating."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "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."
@@ -2380,6 +2514,18 @@ msgstr "Refresh"
msgid "Register New Device"
msgstr "Register New Device"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Reject"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Reject all"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Rejected proposal"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Remember your password? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Resending verification email..."
msgid "Reset"
msgstr "Reset"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Reset chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Reset your password"
msgid "Resetting your password..."
msgstr "Resetting your password..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Resize AI assistant"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resources"
@@ -2463,6 +2617,14 @@ msgstr "Resume analysis complete."
msgid "Resumes"
msgstr "Resumes"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Review required"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Reviewed proposals"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Right Align"
@@ -2561,6 +2723,10 @@ msgstr "Select..."
msgid "Self-Host with Docker"
msgstr "Self-Host with Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Send"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Send Password Reset Email"
msgid "Sending password reset email..."
msgstr "Sending password reset email..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Sending request"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separator"
@@ -2708,6 +2878,10 @@ msgstr "Single-column with a sidebar and clean grid layout; versatile for any pr
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Single-column; polished and serious for senior or enterprise-level positions."
@@ -2808,6 +2982,10 @@ msgstr "Statistics"
msgid "Stay"
msgstr "Stay"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Strengths"
@@ -2902,6 +3080,14 @@ msgstr "Text Colour"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "The AI proposed a change that no longer applies to this resume."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "The AI returned a proposal that could not be previewed."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "The API key has been deleted successfully."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "The API key will no longer be able to access your data after deletion. This action cannot be undone."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "The assistant stopped before returning a proposal."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "This is a URL-friendly name for your resume."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "This resume is locked and cannot be updated."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Yes! Every template is fully customisable. You can change colours, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "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."
+199 -8
View File
@@ -43,6 +43,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# role} other {# roles}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} proposals reviewed"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -114,6 +119,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accept"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Accept all"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Accepted proposal"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Access your resumes and data programmatically using the API."
@@ -224,10 +241,38 @@ msgstr "Add Row Before"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "After"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI integration disabled"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI proposal applied."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI proposal rejected."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI proposals applied."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI proposals rejected."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI Resume Assistant"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -362,10 +407,22 @@ msgstr "Area of Study"
msgid "Artificial Intelligence"
msgstr "Artificial Intelligence"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Ask for a targeted resume change..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Ask for an incremental change"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistant request failed"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -416,6 +473,10 @@ msgstr "Basics"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Beautiful templates to choose from, with more on the way."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Before"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -457,10 +518,6 @@ msgstr "Bullet List"
msgid "By the community, for the community."
msgstr "By the community, for the community."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Can I customize the templates?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Can I export my resume to PDF?"
@@ -571,6 +628,14 @@ msgstr "Clear"
msgid "Click here to select a file to import"
msgstr "Click here to select a file to import"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Close"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Close AI assistant"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Code Block"
@@ -617,6 +682,10 @@ msgstr "Confirm"
msgid "Connect"
msgstr "Connect"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Connect and verify an AI provider before using resume editing proposals."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -664,6 +733,10 @@ msgstr "Copy this secret key and use it in your applications to access your data
msgid "Copy URL"
msgstr "Copy URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Could not apply the AI proposal."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -956,6 +1029,10 @@ msgstr "Disconnect"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Dismiss"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -965,6 +1042,10 @@ msgstr "Documentation"
msgid "Don't have an account? <0/>"
msgstr "Don't have an account? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donate"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donate to Reactive Resume"
@@ -1089,6 +1170,10 @@ msgstr "Enable 2FA"
msgid "Enable AI Features"
msgstr "Enable AI Features"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Enable AI integration"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Enable Two-Factor Authentication"
@@ -1157,6 +1242,10 @@ msgstr "Everything entered here is stored locally on your browser. Your data is
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit Fullscreen"
@@ -1951,6 +2040,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "More proposal actions"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Move to"
@@ -1977,6 +2070,10 @@ msgstr "Must start with https://"
msgid "Name"
msgstr "Name"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Needs review"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepali"
@@ -2007,6 +2104,10 @@ msgstr "New Password"
msgid "New Section"
msgstr "New Section"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Next"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "No Advertising, No Tracking"
@@ -2056,11 +2157,19 @@ msgstr "Ongoing Maintenance"
msgid "Open"
msgstr "Open"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Open AI assistant"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Open Email Client"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Open Integrations"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Open Integrations Settings"
@@ -2214,6 +2323,10 @@ msgstr "Please enter the password shared with you by the owner of the resume to
msgid "Please enter the URL you want to link to:"
msgstr "Please enter the URL you want to link to:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Please support the project"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2249,6 +2362,10 @@ msgstr "Position"
msgid "Preferences"
msgstr "Preferences"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparing changes"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Presets"
@@ -2262,6 +2379,10 @@ msgstr "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the curre
msgid "Press <0>Enter</0> to open"
msgstr "Press <0>Enter</0> to open"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Prev"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Color"
@@ -2292,6 +2413,11 @@ msgstr "Progress Bar"
msgid "Projects"
msgstr "Projects"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposal {0} of {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Protect your resume from unauthorized access with a password"
@@ -2314,6 +2440,10 @@ msgstr "Publications"
msgid "Publisher"
msgstr "Publisher"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Raw JSON Patch"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Go to homepage"
@@ -2335,6 +2465,10 @@ msgstr "Reactive Resume is a free and open-source project, built with love and m
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume is free and open source. If it has helped you, please consider donating."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "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."
@@ -2375,6 +2509,18 @@ msgstr "Refresh"
msgid "Register New Device"
msgstr "Register New Device"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Reject"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Reject all"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Rejected proposal"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Remember your password? <0/>"
@@ -2425,6 +2571,10 @@ msgstr "Resending verification email..."
msgid "Reset"
msgstr "Reset"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Reset chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2438,6 +2588,10 @@ msgstr "Reset your password"
msgid "Resetting your password..."
msgstr "Resetting your password..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Resize AI assistant"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resources"
@@ -2458,6 +2612,14 @@ msgstr "Resume analysis complete."
msgid "Resumes"
msgstr "Resumes"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Review required"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Reviewed proposals"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Right Align"
@@ -2556,6 +2718,10 @@ msgstr "Select..."
msgid "Self-Host with Docker"
msgstr "Self-Host with Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Send"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2565,6 +2731,10 @@ msgstr "Send Password Reset Email"
msgid "Sending password reset email..."
msgstr "Sending password reset email..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Sending request"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separator"
@@ -2703,6 +2873,10 @@ msgstr "Single-column with a sidebar and clean grid layout; versatile for any pr
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Single-column; polished and serious for senior or enterprise-level positions."
@@ -2803,6 +2977,10 @@ msgstr "Statistics"
msgid "Stay"
msgstr "Stay"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Strengths"
@@ -2897,6 +3075,14 @@ msgstr "Text Color"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "The AI proposed a change that no longer applies to this resume."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "The AI returned a proposal that could not be previewed."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2910,6 +3096,10 @@ msgstr "The API key has been deleted successfully."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "The API key will no longer be able to access your data after deletion. This action cannot be undone."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "The assistant stopped before returning a proposal."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2976,7 +3166,12 @@ msgstr "This is a URL-friendly name for your resume."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "This resume is locked and cannot be updated."
@@ -3380,10 +3575,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "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."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elemento} other {# elementos}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# puesto} other {# puestos}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propuestas revisadas"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Por supuesto. Puedes exportar tu currículum a PDF con un solo clic. El PDF exportado mantiene perfectamente todo tu formato y estilo."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Aceptar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Aceptar todo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Propuesta aceptada"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Accede a tus currículums y datos de forma programática usando la API."
@@ -229,10 +246,38 @@ msgstr "Añadir fila antes"
msgid "Afrikaans"
msgstr "Afrikáans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Después"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integración de IA desactivada"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Se ha aplicado la propuesta de IA."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Propuesta de IA rechazada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Se han presentado propuestas de IA."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propuestas de IA rechazadas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asistente de IA para la elaboración de currículums"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanés"
@@ -367,10 +412,22 @@ msgstr "Área de estudio"
msgid "Artificial Intelligence"
msgstr "Inteligencia artificial"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Solicita un cambio específico en tu currículum..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Solicitar un cambio gradual"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Relación de aspecto"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "La solicitud de asistencia falló."
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Lo esencial"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Hermosas plantillas entre las que puedes elegir, y pronto habrá más."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Antes"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalí"
@@ -462,10 +523,6 @@ msgstr "Lista con viñetas"
msgid "By the community, for the community."
msgstr "Por la comunidad, para la comunidad."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "¿Puedo personalizar las plantillas?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "¿Puedo exportar mi currículum a PDF?"
@@ -576,6 +633,14 @@ msgstr "Claro"
msgid "Click here to select a file to import"
msgstr "Haz clic aquí para seleccionar un archivo para importar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Cerrar"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Asistente de IA de cierre"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bloque de código"
@@ -622,6 +687,10 @@ msgstr "Confirmar"
msgid "Connect"
msgstr "Conectar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Antes de utilizar las propuestas de edición de currículums, contacte con un proveedor de IA y verifíquelo."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copia esta clave secreta y úsala en tus aplicaciones para acceder a tus
msgid "Copy URL"
msgstr "Copiar URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "No se pudo aplicar la propuesta de IA."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Desconectar"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Despedir"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentación"
msgid "Don't have an account? <0/>"
msgstr "¿No tienes una cuenta? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donar a Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Habilitar 2FA"
msgid "Enable AI Features"
msgstr "Habilitar funciones de IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Habilitar la integración de la IA"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Habilitar la autenticación de doble factor"
@@ -1162,6 +1247,10 @@ msgstr "Todo lo que introduzcas aquí se almacena localmente en tu navegador. Tu
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Ejemplos: reescribir el resumen, concretar un punto de la experiencia, añadir métricas o adaptar el currículum a la descripción del puesto."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Salir de pantalla completa"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modelo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Más propuestas de acción"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Mover a"
@@ -1982,6 +2075,10 @@ msgstr "Debe empezar por https://"
msgid "Name"
msgstr "Nombre"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Necesita revisión"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalí"
@@ -2012,6 +2109,10 @@ msgstr "Nueva contraseña"
msgid "New Section"
msgstr "Nueva sección"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Siguiente"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Sin publicidad, sin rastreo"
@@ -2061,11 +2162,19 @@ msgstr "Mantenimiento continuo"
msgid "Open"
msgstr "Abrir"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Asistente de IA abierta"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Abrir cliente de correo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integraciones abiertas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Abrir Configuración de integraciones"
@@ -2219,6 +2328,10 @@ msgstr "Introduce la contraseña que el propietario del currículum compartió c
msgid "Please enter the URL you want to link to:"
msgstr "Introduce la URL a la que quieres enlazar:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Por favor, apoyen el proyecto."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Puesto"
msgid "Preferences"
msgstr "Preferencias"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparando cambios"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Preajustes"
@@ -2267,6 +2384,10 @@ msgstr "Presiona <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> para agregar o guardar
msgid "Press <0>Enter</0> to open"
msgstr "Pulse <0>Intro</0> para abrir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Anterior"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color primario"
@@ -2297,6 +2418,11 @@ msgstr "Barra de progreso"
msgid "Projects"
msgstr "Proyectos"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Propuesta {0} de {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Protege tu currículum del acceso no autorizado con una contraseña"
@@ -2319,6 +2445,10 @@ msgstr "Publicaciones"
msgid "Publisher"
msgstr "Editor"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Parche JSON sin procesar"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ir a la página de inicio"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume es un proyecto gratuito y de código abierto, creado con
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume es un creador de currículums gratuito y de código abierto que simplifica el proceso de crear, actualizar y compartir tu currículum."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume es gratuito y de código abierto. Si te ha sido útil, considera hacer una donación."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume es de código abierto, centrado en la privacidad y completamente gratuito. A diferencia de otros creadores de currículums, no muestra anuncios, no rastrea tus datos ni limita tus funciones tras un muro de pago."
@@ -2380,6 +2514,18 @@ msgstr "Actualizar"
msgid "Register New Device"
msgstr "Registrar nuevo dispositivo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rechazar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Rechazar todo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Propuesta rechazada"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "¿Recuerdas tu contraseña? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Reenviando correo de verificación..."
msgid "Reset"
msgstr "Restablecer"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Reiniciar chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Restablecer tu contraseña"
msgid "Resetting your password..."
msgstr "Restableciendo tu contraseña..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Asistente de IA para redimensionar"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Recursos"
@@ -2463,6 +2617,14 @@ msgstr "Análisis del currículum finalizado."
msgid "Resumes"
msgstr "Currículums"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Se requiere revisión"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propuestas revisadas"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alinear a la derecha"
@@ -2561,6 +2723,10 @@ msgstr "Seleccionar..."
msgid "Self-Host with Docker"
msgstr "Auto alojamiento con Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Enviar"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Enviar correo para restablecer contraseña"
msgid "Sending password reset email..."
msgstr "Enviando correo para restablecer contraseña..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Enviando solicitud"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separador"
@@ -2708,6 +2878,10 @@ msgstr "Una sola columna con una barra lateral y un diseño de cuadrícula limpi
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Una sola columna con un encabezado de entrada en línea de tres columnas (cargo - organización - punto); compacto y apto para ATS, muy adecuado para las convenciones asiáticas de currículum (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Currículum de una sola columna con encabezados de sección en mayúsculas y una línea superior de color primario en cada página; ideal para currículums de ejecutivos, consultores o empresas emergentes."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Una sola columna; pulido y serio para puestos sénior o de nivel empresarial."
@@ -2808,6 +2982,10 @@ msgstr "Estadísticas"
msgid "Stay"
msgstr "Continuar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Detener"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Puntos fuertes"
@@ -2902,6 +3080,14 @@ msgstr "Color del texto"
msgid "Thai"
msgstr "Tailandés"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "La IA propuso un cambio que ya no se aplica a este currículum."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "La IA devolvió una propuesta que no se pudo previsualizar."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "La clave API se ha eliminado correctamente."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Después de eliminarla, la clave API ya no podrá acceder a tus datos. Esta acción no se puede deshacer."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "El asistente se detuvo antes de devolver la propuesta."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Este es un nombre compatible con URL para tu currículum."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Esto puede tardar unos minutos, dependiendo de la respuesta del proveedor de IA. No cierres la ventana ni recargues la página."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Esta propuesta está desactualizada. Pídele al asistente que la actualice a partir del currículum más reciente."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Este currículum está bloqueado y no se puede actualizar."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Sí, Reactive Resume está disponible en varios idiomas. Puedes elegir tu idioma preferido en la página de configuración o usando el selector de idioma en la esquina superior derecha. Si no ves tu idioma o quieres mejorar las traducciones existentes, puedes <0>contribuir a las traducciones en Crowdin<1> (abrir en una nueva pestaña)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Sí. Todas las plantillas son totalmente personalizables. Puedes cambiar colores, fuentes, espaciado e incluso escribir CSS personalizado para tener un control total sobre la apariencia de tu currículum."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Sí. Reactive Resume es completamente gratuito, sin costes ocultos, niveles premium ni cuotas de suscripción. Es de código abierto y siempre será gratuito."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# مورد} other {# مورد}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# نقش} other {# نقش}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} پیشنهادات بررسی شد"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "قطعاً! می‌توانید رزومه خود را تنها با یک کلیک به PDF خروجی بگیرید. فایل PDF خروجی تمام قالب‌بندی و سبک‌دهی شما را به‌طور کامل حفظ می‌کند."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "پذیرفتن"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "همه را بپذیرید"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "پیشنهاد پذیرفته شده"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "به رزومه‌ها و داده‌های خود از طریق API و به‌صورت برنامه‌نویسی دسترسی داشته باشید."
@@ -229,10 +246,38 @@ msgstr "افزودن ردیف قبل از این"
msgid "Afrikaans"
msgstr "آفریکانس"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "بعد از"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "ادغام هوش مصنوعی غیرفعال است"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "پیشنهاد هوش مصنوعی اعمال شد."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "پیشنهاد هوش مصنوعی رد شد."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "پیشنهادهای هوش مصنوعی اعمال شد."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "پیشنهادهای هوش مصنوعی رد شدند."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "دستیار رزومه هوش مصنوعی"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "آلبانیایی"
@@ -367,10 +412,22 @@ msgstr "حوزهٔ تحصیل"
msgid "Artificial Intelligence"
msgstr "هوش مصنوعی"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "درخواست تغییر هدفمند رزومه را بدهید..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "درخواست تغییر تدریجی"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "نسبت تصویر"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "درخواست دستیار ناموفق بود"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "مبانی"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "قالب‌های زیبایی برای انتخاب، با موارد بیشتری که در راه هستند."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "قبل از"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "بنگالی"
@@ -462,10 +523,6 @@ msgstr "فهرست نشانه‌دار"
msgid "By the community, for the community."
msgstr "توسط جامعه، برای جامعه."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "آیا می‌توانم قالب‌ها را شخصی‌سازی کنم؟"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "آیا می‌توانم رزومه‌ام را به PDF خروجی بگیرم؟"
@@ -576,6 +633,14 @@ msgstr "شفاف"
msgid "Click here to select a file to import"
msgstr "برای انتخاب فایل برای وارد کردن، اینجا کلیک کنید"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "بستن"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "دستیار هوش مصنوعی را ببندید"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "بلوک کد"
@@ -622,6 +687,10 @@ msgstr "تأیید"
msgid "Connect"
msgstr "اتصال"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "قبل از استفاده از پیشنهادهای ویرایش رزومه، به یک ارائه‌دهنده هوش مصنوعی متصل شوید و آن را تأیید کنید."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "این کلید مخفی را کپی کنید و برای دسترسی
msgid "Copy URL"
msgstr "کپی URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "نتوانستم پیشنهاد هوش مصنوعی را اعمال کنم."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "قطع اتصال"
msgid "Discord"
msgstr "دیسکورد"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "رد کردن"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "مستندات"
msgid "Don't have an account? <0/>"
msgstr "حساب ندارید؟ <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "اهدا کنید"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "به Reactive Resume دونیت کنید"
@@ -1094,6 +1175,10 @@ msgstr "فعالسازی ورود دو مرحله‌ای"
msgid "Enable AI Features"
msgstr "فعال‌سازی قابلیت‌های هوش مصنوعی"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "ادغام هوش مصنوعی را فعال کنید"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "فعالسازی احراز هویت دو مرحله‌ای"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "مثال‌ها: خلاصه را بازنویسی کنید، یک بخش مربوط به تجربیات را محدودتر کنید، معیارها را اضافه کنید، یا رزومه را با شرح شغل تطبیق دهید."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "خروج از حالت تمام‌صفحه"
@@ -1956,6 +2045,10 @@ msgstr "مایکروسافت ورد"
msgid "Model"
msgstr "مدل"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "اقدامات پیشنهادی بیشتر"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "انتقال به"
@@ -1982,6 +2075,10 @@ msgstr "باید با https:// شروع شود."
msgid "Name"
msgstr "نام"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "نیاز به بررسی دارد"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "نپالی"
@@ -2012,6 +2109,10 @@ msgstr "گذرواژهٔ جدید"
msgid "New Section"
msgstr "بخش جدید"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "بعدی"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "بدون تبلیغات، بدون رهگیری"
@@ -2061,11 +2162,19 @@ msgstr "نگه‌داری مداوم"
msgid "Open"
msgstr "باز کردن"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "دستیار هوش مصنوعی را باز کنید"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "باز کردن کلاینت ایمیل"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ادغام‌های باز"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "تنظیمات یکپارچه‌سازی را باز کنید"
@@ -2219,6 +2328,10 @@ msgstr "لطفاً گذرواژه‌ای را که صاحب رزومه با شم
msgid "Please enter the URL you want to link to:"
msgstr "لطفاً URL مورد نظر برای لینک دادن را وارد کنید:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "لطفا از پروژه حمایت کنید"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "موقعیت شغلی"
msgid "Preferences"
msgstr "ترجیحات"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "آماده‌سازی تغییرات"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "پیش‌تنظیم‌ها"
@@ -2267,6 +2384,10 @@ msgstr "برای افزودن یا ذخیره کلمه کلیدی فعلی <0>{R
msgid "Press <0>Enter</0> to open"
msgstr "برای باز کردن <0>Enter را</0> فشار دهید"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "قبلی"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "رنگ اصلی"
@@ -2297,6 +2418,11 @@ msgstr "نوار پیشرفت"
msgid "Projects"
msgstr "پروژه‌ها"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "پیشنهاد {0} از {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "از رزومه خود در برابر دسترسی غیرمجاز با گذرواژه محافظت کنید"
@@ -2319,6 +2445,10 @@ msgstr "انتشارها"
msgid "Publisher"
msgstr "منتشرکننده"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "وصله خام JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - رفتن به صفحهٔ اصلی"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume یک پروژهٔ رایگان و متن‌باز است
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume یک رزومه‌ساز رایگان و متن‌باز است که فرایند ایجاد، به‌روزرسانی و اشتراک‌گذاری رزومه شما را ساده می‌کند."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "رزومه واکنشی رایگان و متن‌باز است. اگر به شما کمک کرده است، لطفاً کمک مالی را در نظر بگیرید."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume متن‌باز، حریم‌خصوصی‌محور و کاملاً رایگان است. برخلاف سایر رزومه‌سازها، هیچ تبلیغی نشان نمی‌دهد، داده‌های شما را رهگیری نمی‌کند و قابلیت‌هایتان را پشت دیوار پرداخت محدود نمی‌کند."
@@ -2380,6 +2514,18 @@ msgstr "تازه‌سازی"
msgid "Register New Device"
msgstr "ثبت دستگاه جدید"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "رد کردن"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "همه را رد کنید"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "پیشنهاد رد شده"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "رمز عبور را به خاطر دارید؟ <0/>"
@@ -2430,6 +2576,10 @@ msgstr "در حال ارسال دوباره ایمیل تأیید..."
msgid "Reset"
msgstr "ریست"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "تنظیم مجدد چت"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "تنظیم مجدد گذرواژهٔ شما"
msgid "Resetting your password..."
msgstr "در حال تنظیم مجدد گذرواژه شما..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "تغییر اندازه دستیار هوش مصنوعی"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "منابع"
@@ -2463,6 +2617,14 @@ msgstr "تحلیل رزومه کامل شد."
msgid "Resumes"
msgstr "رزومه‌ها"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "بررسی مورد نیاز"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "پیشنهادهای بررسی شده"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "تراز راست"
@@ -2561,6 +2723,10 @@ msgstr "انتخاب..."
msgid "Self-Host with Docker"
msgstr "میزبانی خودکار با Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "ارسال"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "ارسال ایمیل تنظیم مجدد گذرواژه"
msgid "Sending password reset email..."
msgstr "در حال ارسال ایمیل تنظیم مجدد گذرواژه..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "ارسال درخواست"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "جداکننده"
@@ -2708,6 +2878,10 @@ msgstr "تک‌ستونه با نوار کناری و چیدمان شبکه‌ا
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "یک‌ستونی با سربرگ ورودی سه‌ستونی در یک خط (موقعیت · سازمان · دوره)؛ فشرده و سازگار با ATS، مناسب برای هنجارهای رزومه آسیایی (چین/ژاپن/کره)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "تک ستونی با سرتیترهای بخش‌ها با حروف بزرگ و یک خط با رنگ اصلی در بالای هر صفحه؛ مناسب برای رزومه‌های مدیریتی، مشاوره‌ای یا استارتاپی."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "تک‌ستونه؛ صیقل‌خورده و جدی برای موقعیت‌های ارشد یا سطح سازمانی."
@@ -2808,6 +2982,10 @@ msgstr "آمارها"
msgid "Stay"
msgstr "ماندن"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "توقف"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "نقاط قوت"
@@ -2902,6 +3080,14 @@ msgstr "رنگ متن"
msgid "Thai"
msgstr "تایلندی"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "هوش مصنوعی تغییری را پیشنهاد داد که دیگر در مورد این رزومه اعمال نمی‌شود."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "هوش مصنوعی پیشنهادی را برگرداند که قابل پیش‌نمایش نبود."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "کلید API با موفقیت حذف شد."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "پس از حذف، این کلید API دیگر قادر به دسترسی به داده‌های شما نخواهد بود. این عمل قابل بازگشت نیست."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "دستیار قبل از اینکه پیشنهادی را برگرداند، مکث کرد."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "این یک نام مناسب برای URLِ رزومه شما است."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "این کار ممکن است چند دقیقه طول بکشد، بسته به پاسخ ارائه‌دهندهٔ هوش مصنوعی. لطفاً پنجره را نبندید یا صفحه را تازه‌سازی نکنید."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "این پیشنهاد قدیمی است. از دستیار بخواهید آن را از آخرین رزومه بازسازی کند."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "این رزومه قفل شده و قابل به‌روزرسانی نیست."
@@ -3385,10 +3580,6 @@ msgstr "ایکس (توییتر)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "بله، Reactive Resume در چندین زبان در دسترس است. می‌توانید زبان دلخواه خود را در صفحهٔ تنظیمات یا با استفاده از تعویض‌کنندهٔ زبان در گوشهٔ بالا سمت راست انتخاب کنید. اگر زبان خود را نمی‌بینید یا می‌خواهید ترجمه‌های موجود را بهبود دهید، می‌توانید <0>در ترجمه‌ها روی Crowdin مشارکت کنید<1> (در زبانهٔ جدید باز می‌شود)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "بله! هر قالب کاملاً قابل‌سفارشی‌سازی است. می‌توانید رنگ‌ها، فونت‌ها، فواصل و حتی CSS سفارشی برای کنترل کامل ظاهر رزومه خود بنویسید."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "بله! Reactive Resume کاملاً رایگان است، بدون هزینهٔ پنهان، پلن پریمیوم یا حق اشتراک. این پروژه متن‌باز است و برای همیشه رایگان می‌ماند."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# kohde} other {# kohdetta}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rooli} other {# roolia}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} ehdotuksia tarkistettu"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Ehdottomasti! Voit viedä ansioluettelosi PDF-muotoon yhdellä klikkauksella. Viety PDF säilyttää kaiken muotoilun ja tyylin täydellisesti."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Hyväksyä"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Hyväksy kaikki"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Hyväksytty ehdotus"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Käytä ansioluetteloitasi ja tietojasi ohjelmallisesti rajapinnan (API:n) kautta."
@@ -229,10 +246,38 @@ msgstr "Lisää rivi ennen"
msgid "Afrikaans"
msgstr "afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Jälkeen"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Tekoälyintegraatio poistettu käytöstä"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Tekoälyehdotus sovellettu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Tekoälyehdotus hylättiin."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Tekoälyehdotuksia sovellettu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Tekoälyehdotukset hylättiin."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Tekoälyinen ansioluetteloavustaja"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "albania"
@@ -367,10 +412,22 @@ msgstr "Opintoala"
msgid "Artificial Intelligence"
msgstr "Tekoäly"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Pyydä kohdennettua ansioluettelon muutosta..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Pyydä asteittaista muutosta"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Kuvasuhde"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistant-pyyntö epäonnistui"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Perustiedot"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Kauniita mallipohjia, joista valita – ja lisää tulossa."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Ennen"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "bengali"
@@ -462,10 +523,6 @@ msgstr "Luettelomerkkilista"
msgid "By the community, for the community."
msgstr "Yhteisöltä yhteisölle."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Voinko mukauttaa mallipohjia?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Voinko viedä ansioluetteloni PDF-muotoon?"
@@ -576,6 +633,14 @@ msgstr "Kirkas"
msgid "Click here to select a file to import"
msgstr "Napsauta tästä valitaksesi tuotavan tiedoston"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Sulje"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Sulje tekoälyavustaja"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Koodilohko"
@@ -622,6 +687,10 @@ msgstr "Vahvista"
msgid "Connect"
msgstr "Yhdistä"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Yhdistä ja tarkista tekoälypalveluntarjoaja ennen ansioluettelon muokkausehdotusten käyttöä."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopioi tämä salainen avain ja käytä sitä sovelluksissasi tietojesi
msgid "Copy URL"
msgstr "Kopioi URL-osoite"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Tekoälyehdotusta ei voitu soveltaa."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Katkaise yhteys"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Hylkää"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentaatio"
msgid "Don't have an account? <0/>"
msgstr "Eikö sinulla ole tiliä? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Lahjoittaa"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Lahjoita Reactive Resumelle"
@@ -1094,6 +1175,10 @@ msgstr "Ota 2FA käyttöön"
msgid "Enable AI Features"
msgstr "Ota tekoälyominaisuudet käyttöön"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Ota tekoälyintegraatio käyttöön"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Ota kaksivaiheinen todennus käyttöön"
@@ -1162,6 +1247,10 @@ msgstr "Kaikki tähän syötetty tallennetaan paikallisesti selaimeesi. Tietosi
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Esimerkkejä: kirjoita yhteenveto uudelleen, tiivistä yhtä kokemusta koskevaa luettelokohtaa, lisää mittareita tai mukauta ansioluettelo työpaikkailmoitukseen."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Poistu koko näytöstä"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Malli"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Lisää ehdotustoimintoja"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Siirrä"
@@ -1982,6 +2075,10 @@ msgstr "Aloitettava osoitteesta https://"
msgid "Name"
msgstr "Nimi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Tarvitsee tarkistuksen"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "nepali"
@@ -2012,6 +2109,10 @@ msgstr "Uusi salasana"
msgid "New Section"
msgstr "Uusi osio"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Seuraava"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Ei mainoksia, ei seurantaa"
@@ -2061,11 +2162,19 @@ msgstr "Jatkuva ylläpito"
msgid "Open"
msgstr "Avaa"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Avoin tekoälyavustaja"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Avaa sähköpostiohjelma"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Avoimet integraatiot"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Avaa Integraatioiden asetukset"
@@ -2219,6 +2328,10 @@ msgstr "Syötä ansioluettelon omistajan jakama salasana jatkaaksesi."
msgid "Please enter the URL you want to link to:"
msgstr "Syötä linkitettävä URL-osoite:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Tue projektia"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Tehtävänimike"
msgid "Preferences"
msgstr "Asetukset"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Muutosten valmistelu"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Esiasetukset"
@@ -2267,6 +2384,10 @@ msgstr "Paina <0>{RETURN_KEY}</0> tai <1>{COMMA_KEY}</1> lisätäksesi tai talle
msgid "Press <0>Enter</0> to open"
msgstr "Paina <0>Enter</0> avataksesi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Edellinen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Pääväri"
@@ -2297,6 +2418,11 @@ msgstr "Edistymispalkki"
msgid "Projects"
msgstr "Projektit"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Ehdotus {0} / {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Suojaa ansioluettelosi luvattomalta käytöltä salasanalla"
@@ -2319,6 +2445,10 @@ msgstr "Julkaisut"
msgid "Publisher"
msgstr "Julkaisija"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Raaka JSON-korjaus"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – Siirry etusivulle"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin projekti, joka on te
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin ansioluettelon laatija, joka helpottaa ansioluettelon luomista, päivittämistä ja jakamista."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin työkalu. Jos siitä on ollut sinulle apua, harkitse lahjoittamista."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume on avoimen lähdekoodin, yksityisyyteen keskittyvä ja täysin ilmainen. Toisin kuin monet muut ansioluettelon laatijat, se ei näytä mainoksia, seuraa tietojasi tai piilota ominaisuuksia maksumuurin taakse."
@@ -2380,6 +2514,18 @@ msgstr "Päivitä"
msgid "Register New Device"
msgstr "Rekisteröi uusi laite"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Hylätä"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Hylkää kaikki"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Hylätty ehdotus"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Muistatko salasanasi? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Lähetetään vahvistussähköpostia uudelleen..."
msgid "Reset"
msgstr "Palauta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Palauta keskustelu"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Palauta salasanasi"
msgid "Resetting your password..."
msgstr "Palautetaan salasanaasi..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Muuta tekoälyavustajaa"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resurssit"
@@ -2463,6 +2617,14 @@ msgstr "Ansioluettelon analyysi valmis."
msgid "Resumes"
msgstr "Ansioluettelot"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Tarkistus vaaditaan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Tarkistetut ehdotukset"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Tasaa oikealle"
@@ -2561,6 +2723,10 @@ msgstr "Valitse..."
msgid "Self-Host with Docker"
msgstr "Itse-isännöinti Dockerilla"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Lähetä"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Lähetä salasanan palautussähköposti"
msgid "Sending password reset email..."
msgstr "Lähetetään salasanan palautussähköpostia..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Lähetetään pyyntö"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Erotin"
@@ -2708,6 +2878,10 @@ msgstr "Yksipalstainen, sivupalkilla ja selkeällä ruudukkoasettelulla; monipuo
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Yksisarakkeinen, riviin sijoitettu kolmisarakkeinen otsikko (asema - organisaatio - piste); kompakti ja ATS-ystävällinen, sopii hyvin aasialaisiin ansioluettelokäytäntöihin (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Yksipalstainen ansioluettelo, jossa isoilla kirjaimilla kirjoitetut osioiden otsikot ja päävärinen yläviiva jokaisella sivulla; viimeistelty johtajien, konsulttien tai startup-yritysten ansioluetteloihin."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Yksipalstainen; viimeistelty ja asiallinen kokeneille tai yritystason tehtäviin hakeville."
@@ -2808,6 +2982,10 @@ msgstr "Tilastot"
msgid "Stay"
msgstr "Pysy"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Vahvuudet"
@@ -2902,6 +3080,14 @@ msgstr "Tekstiväri"
msgid "Thai"
msgstr "thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Tekoäly ehdotti muutosta, joka ei enää koske tätä ansioluetteloa."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Tekoäly palautti ehdotuksen, jota ei voitu esikatsella."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API-avain on poistettu onnistuneesti."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API-avain ei voi enää käyttää tietojasi poistamisen jälkeen. Tätä toimintoa ei voi perua."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Avustaja pysähtyi ennen kuin palasi ehdotukseen."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Tämä on URL-ystävällinen nimi ansioluettelollesi."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Tämä voi kestää muutaman minuutin riippuen tekoälypalveluntarjoajan vasteesta. Älä sulje ikkunaa tai päivitä sivua."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Tämä ehdotus on vanhentunut. Pyydä avustajaa luomaan se uudelleen uusimmasta ansioluettelosta."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Tämä ansioluettelo on lukittu eikä sitä voi päivittää."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Kyllä, Reactive Resume on saatavilla useilla kielillä. Voit valita haluamasi kielen asetussivulla tai oikean yläkulman kielivalitsimesta. Jos et näe omaa kieltäsi tai haluat parantaa olemassa olevia käännöksiä, voit <0>osallistua käännöksiin Crowdinessa<1> (avautuu uuteen välilehteen)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Kyllä! Jokainen mallipohja on täysin muokattavissa. Voit vaihtaa värejä, fontteja, välistystä ja jopa kirjoittaa oman CSS:n täydellistä hallintaa varten ansioluettelosi ulkoasuun."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Kyllä! Reactive Resume on täysin ilmainen käyttää – ei piilokuluja, premium-tasoja tai tilausmaksuja. Se on avoimen lähdekoodin ja pysyy aina ilmaisena."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# élément} other {# éléments}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# poste} other {# postes}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propositions examinées"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Absolument ! Vous pouvez exporter votre CV au format PDF en un seul clic. Le PDF exporté conserve parfaitement toutes vos mises en forme et votre style."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accepter"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Accepter tout"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Proposition acceptée"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Accédez à vos CVs et données par programme en utilisant l'API."
@@ -229,10 +246,38 @@ msgstr "Ajouter une ligne avant"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Après"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Intégration de l'IA désactivée"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Proposition d'IA appliquée."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Proposition d'IA rejetée."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Propositions d'IA appliquées."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Les propositions concernant l'IA ont été rejetées."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Assistant CV IA"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanais"
@@ -367,10 +412,22 @@ msgstr "Domaine d'étude"
msgid "Artificial Intelligence"
msgstr "Intelligence artificielle"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Demandez une modification ciblée de votre CV..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Demandez un changement progressif"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Format d'image"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "La requête d'assistance a échoué"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Infos de base"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Vous avez le choix parmi de magnifiques modèles, et d'autres sont en cours d'élaboration."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Avant"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Liste à puces"
msgid "By the community, for the community."
msgstr "Par la communauté, pour la communauté."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Puis-je personnaliser les modèles ?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Puis-je exporter mon CV au format PDF ?"
@@ -576,6 +633,14 @@ msgstr "Clair"
msgid "Click here to select a file to import"
msgstr "Cliquez ici pour sélectionner un fichier à importer"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Fermer"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Assistant IA proche"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bloc de code"
@@ -622,6 +687,10 @@ msgstr "Confirmer"
msgid "Connect"
msgstr "Se connecter"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Connectez-vous avec un fournisseur d'IA et vérifiez-le avant d'utiliser ses propositions de modification de CV."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copiez cette clé secrète et utilisez-la dans vos applications pour acc
msgid "Copy URL"
msgstr "Copier l'URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Impossible d'appliquer la proposition relative à l'IA."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Déconnecter"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Rejeter"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentation"
msgid "Don't have an account? <0/>"
msgstr "Vous n'avez pas de compte ? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Faire un don"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Faire un don à Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Activer 2FA"
msgid "Enable AI Features"
msgstr "Activer les fonctionnalités IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Activer l'intégration de l'IA"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Activer l'authentification à deux facteurs"
@@ -1162,6 +1247,10 @@ msgstr "Tout ce qui est entré ici est stocké localement dans votre navigateur.
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Exemples : réécrire le résumé, raccourcir un point concernant une expérience, ajouter des indicateurs ou adapter le CV à une description de poste."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Quitter le mode plein écran"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modèle"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Autres propositions"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Déplacer vers"
@@ -1982,6 +2075,10 @@ msgstr "Doit commencer par https://"
msgid "Name"
msgstr "Nom"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Nécessite une révision"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Népalais"
@@ -2012,6 +2109,10 @@ msgstr "Nouveau mot de passe"
msgid "New Section"
msgstr "Nouvelle section"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Suivant"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Pas de publicité, pas de suivi"
@@ -2061,11 +2162,19 @@ msgstr "Maintenance en cours"
msgid "Open"
msgstr "Ouvrir"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Assistant Open AI"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Ouvrir le client de messagerie"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Intégrations ouvertes"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Ouvrez Integrations Settings"
@@ -2219,6 +2328,10 @@ msgstr "Veuillez saisir le mot de passe qui vous a été communiqué par le prop
msgid "Please enter the URL you want to link to:"
msgstr "Veuillez saisir l'URL vers laquelle vous souhaitez rediriger :"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Veuillez soutenir le projet"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Poste"
msgid "Preferences"
msgstr "Préférences"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Préparation des changements"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Préréglages"
@@ -2267,6 +2384,10 @@ msgstr "Appuyez sur <0>{RETURN_KEY}</0> ou sur <1>{COMMA_KEY}</1> pour ajouter o
msgid "Press <0>Enter</0> to open"
msgstr "Appuyez sur <0>Entrée</0> pour ouvrir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Précédent"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Couleur principale"
@@ -2297,6 +2418,11 @@ msgstr "Barre de progression"
msgid "Projects"
msgstr "Projets"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposition {0} de {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Protégez votre CV contre tout accès non autorisé à l'aide d'un mot de passe"
@@ -2319,6 +2445,10 @@ msgstr "Publications"
msgid "Publisher"
msgstr "Éditeur"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch JSON brut"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Aller à la page d'accueil"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume est un projet libre et gratuit, construit avec amour et
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume est un outil de création de CV gratuit et open-source qui simplifie le processus de création, de mise à jour et de partage de votre CV."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume est un logiciel libre et gratuit. S'il vous a été utile, n'hésitez pas à faire un don."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume est un logiciel libre, respectueux de la vie privée et entièrement gratuit. Contrairement à d'autres outils de création de CV, il n'affiche pas de publicité, ne suit pas vos données et ne limite pas vos fonctionnalités derrière un mur payant."
@@ -2380,6 +2514,18 @@ msgstr "Actualiser"
msgid "Register New Device"
msgstr "Enregistrer un nouveau dispositif"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rejeter"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Tout refuser"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Proposition rejetée"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Vous vous souvenez de votre mot de passe ? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Renvoi de l'e-mail de vérification..."
msgid "Reset"
msgstr "Réinitialiser"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Réinitialiser le chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Réinitialisez votre mot de passe"
msgid "Resetting your password..."
msgstr "Réinitialisation de votre mot de passe..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Assistant IA de redimensionnement"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ressources"
@@ -2463,6 +2617,14 @@ msgstr "L'analyse du curriculum vitae est terminée."
msgid "Resumes"
msgstr "CVs"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Examen requis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propositions examinées"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alignement à droite"
@@ -2561,6 +2723,10 @@ msgstr "Sélectionner..."
msgid "Self-Host with Docker"
msgstr "Auto-hébergement avec Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Envoyer"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Envoyer un e-mail de réinitialisation du mot de passe"
msgid "Sending password reset email..."
msgstr "Envoi de l'e-mail de réinitialisation du mot de passe..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Envoi de la requête"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Séparateur"
@@ -2708,6 +2878,10 @@ msgstr "Une seule colonne avec un encart et une disposition en grille propre ; p
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Colonne unique avec un en-tête d'entrée en ligne sur trois colonnes (poste - organisation - point) ; compact et adapté aux ATS, bien adapté aux conventions asiatiques en matière de curriculum vitae (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Une seule colonne avec des titres de section en majuscules et une ligne supérieure de couleur primaire sur chaque page ; une présentation soignée pour les CV de cadres, de consultants ou de startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Colonne unique ; soigné et sérieux pour les postes de seniors ou de direction."
@@ -2808,6 +2982,10 @@ msgstr "Statistiques"
msgid "Stay"
msgstr "Rester"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Arrêt"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Points forts"
@@ -2902,6 +3080,14 @@ msgstr "Couleur du texte"
msgid "Thai"
msgstr "Thaïlandais"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "L'IA a proposé une modification qui ne s'applique plus à ce CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "L'IA a renvoyé une proposition qui n'a pas pu être prévisualisée."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "La clé API a été supprimée avec succès."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "La clé API ne pourra plus accéder à vos données après la suppression. Cette action ne peut pas être annulée."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "L'assistant s'est arrêté avant de renvoyer une proposition."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Il s'agit d'un nom convivial pour l'URL de votre CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Cela peut prendre quelques minutes, en fonction de la réponse du fournisseur d'IA. Ne fermez pas la fenêtre et n'actualisez pas la page."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Cette proposition est obsolète. Demandez à l'assistant de la régénérer à partir du CV le plus récent."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Ce CV est verrouillé et ne peut pas être modifié."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Oui, Reactive Resume est disponible en plusieurs langues. Vous pouvez choisir votre langue préférée dans la page des paramètres, ou en utilisant le sélecteur de langue dans le coin supérieur droit. Si vous ne voyez pas votre langue, ou si vous souhaitez améliorer les traductions existantes, vous pouvez <0>contribuer aux traductions sur Crowdin<1> (s'ouvre dans un nouvel onglet)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Oui ! Chaque modèle est entièrement personnalisable. Vous pouvez modifier les couleurs, les polices, l'espacement et même écrire des feuilles de style CSS personnalisées pour un contrôle total de l'apparence de votre CV."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Oui ! Reactive Resume est entièrement gratuit, sans frais cachés, ni droits d'entrée, ni frais d'abonnement. Il est open-source et restera toujours gratuit."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# פריט} two {# פריטים} many {# פריטים}
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# תפקיד} other {# תפקידים}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} הצעות שנבדקו"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "בהחלט! אפשר לייצא את קורות החיים שלך ל־PDF בלחיצה אחת. קובץ ה־PDF המיוצא שומר בצורה מושלמת על כל העיצוב והסגנון שלך."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "לְקַבֵּל"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "קבלו את הכל"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "הצעה שהתקבלה"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "גש לקורות החיים ולנתונים שלך באופן תכנותי באמצעות ה־API."
@@ -229,10 +246,38 @@ msgstr "הוספת שורה לפני"
msgid "Afrikaans"
msgstr "אפריקאנס"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "לְאַחַר"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "בינה מלאכותית"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "שילוב בינה מלאכותית מושבת"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "הצעת בינה מלאכותית יושמה."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "הצעת בינה מלאכותית נדחתה."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "הצעות בינה מלאכותית יושמו."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "הצעות בתחום הבינה המלאכותית נדחו."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "עוזר קורות חיים של בינה מלאכותית"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "אלבנית"
@@ -367,10 +412,22 @@ msgstr "תחום לימודים"
msgid "Artificial Intelligence"
msgstr "בינה מלאכותית"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "בקשו שינוי ממוקד בקורות חיים..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "בקשו שינוי הדרגתי"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "יחס גובה־רוחב"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "בקשת העוזר נכשלה"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "פרטים בסיסיים"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "תבניות יפות לבחירה, ועוד תבניות בדרך."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "לִפנֵי"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "בנגלית"
@@ -462,10 +523,6 @@ msgstr "רשימת תבליטים"
msgid "By the community, for the community."
msgstr "על ידי הקהילה ועבורה."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "האם אפשר להתאים אישית את התבניות?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "האם אפשר לייצא את קורות החיים שלי ל־PDF?"
@@ -576,6 +633,14 @@ msgstr "נקה"
msgid "Click here to select a file to import"
msgstr "לחץ כאן כדי לבחור קובץ לייבוא"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "סגור"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "סגור את עוזר הבינה המלאכותית"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "בלוק קוד"
@@ -622,6 +687,10 @@ msgstr "אישור"
msgid "Connect"
msgstr "חיבור"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "התחברו ואמתו ספק בינה מלאכותית לפני השימוש בהצעות עריכת קורות חיים."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "העתק את המפתח הסודי הזה והשתמש בו ביישו
msgid "Copy URL"
msgstr "העתקת כתובת"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "לא ניתן היה ליישם את הצעת הבינה המלאכותית."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ניתוק"
msgid "Discord"
msgstr "דיסקורד"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "לְפַטֵר"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "תיעוד"
msgid "Don't have an account? <0/>"
msgstr "אין לך חשבון? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "לִתְרוֹם"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "תרומה ל־Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "הפעלת אימות דו־שלבי"
msgid "Enable AI Features"
msgstr "הפעלת יכולות בינה מלאכותית"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "הפעלת שילוב בינה מלאכותית"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "הפעלת אימות דו־שלבי"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "דוגמאות: כתיבה מחדש של הסיכום, צמצום תבליט ניסיון אחד, הוספת מדדים או התאמת קורות החיים לתיאור תפקיד."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "יציאה ממסך מלא"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "מודל"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "פעולות נוספות של ההצעה"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "העברה אל"
@@ -1982,6 +2075,10 @@ msgstr "יש להתחיל ב-https://"
msgid "Name"
msgstr "שם"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "צריך בדיקה"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "נפאלית"
@@ -2012,6 +2109,10 @@ msgstr "סיסמה חדשה"
msgid "New Section"
msgstr "סעיף חדש"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "הבא"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "בלי פרסום, בלי מעקב"
@@ -2061,11 +2162,19 @@ msgstr "תחזוקה מתמשכת"
msgid "Open"
msgstr "פתיחה"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "פתח את עוזר הבינה המלאכותית"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "פתיחת תוכנת הדוא\"ל"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "אינטגרציות פתוחות"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "פתח את הגדרות האינטגרציות"
@@ -2219,6 +2328,10 @@ msgstr "נא להזין את הסיסמה ששיתף איתך בעל קורות
msgid "Please enter the URL you want to link to:"
msgstr "נא להזין את כתובת ה־URL שאליה ברצונך לקשר:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "אנא תמכו בפרויקט"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "תפקיד"
msgid "Preferences"
msgstr "העדפות"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "הכנת שינויים"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "הגדרות קבועות מראש"
@@ -2267,6 +2384,10 @@ msgstr "לחץ על <0>{RETURN_KEY}</0> או <1>{COMMA_KEY}</1> כדי להוס
msgid "Press <0>Enter</0> to open"
msgstr "לחץ על <0>Enter</0> כדי לפתוח"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "קודם"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "צבע עיקרי"
@@ -2297,6 +2418,11 @@ msgstr "פס התקדמות"
msgid "Projects"
msgstr "פרויקטים"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "הצעה {0} של {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "הגן על קורות החיים שלך מגישה לא מורשית באמצעות סיסמה"
@@ -2319,6 +2445,10 @@ msgstr "פרסומים"
msgid "Publisher"
msgstr "מוציא לאור"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "תיקון JSON גולמי"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - מעבר לדף הבית"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume הוא מיזם חינמי בקוד פתוח, שנבנה
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume הוא בונה קורות חיים חינמי בקוד פתוח שמפשט את תהליך יצירת, עדכון ושיתוף קורות החיים שלך."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "ריאקטיבי קורות חיים הם חינמיים ובקוד פתוח. אם זה עזר לך, אנא שקול לתרום."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume הוא בקוד פתוח, ממוקד פרטיות וחינמי לחלוטין. בניגוד לבוני קורות חיים אחרים, הוא לא מציג פרסומות, לא עוקב אחרי הנתונים שלך ולא נועל יכולות מאחורי חומת תשלום."
@@ -2380,6 +2514,18 @@ msgstr "רענון"
msgid "Register New Device"
msgstr "הרשמת מכשיר חדש"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "לִדחוֹת"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "דחה את הכל"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "הצעה שנדחתה"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "זוכר את הסיסמה? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "שולח מחדש דוא\"ל אימות..."
msgid "Reset"
msgstr "איפוס"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "איפוס צ'אט"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "איפוס הסיסמה שלך"
msgid "Resetting your password..."
msgstr "איפוס הסיסמה שלך..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "שינוי גודל של עוזר בינה מלאכותית"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "משאבים"
@@ -2463,6 +2617,14 @@ msgstr "ניתוח קורות החיים הושלם."
msgid "Resumes"
msgstr "מסמכי קורות חיים"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "נדרשת בדיקה"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "הצעות שנבדקו"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "יישור לימין"
@@ -2561,6 +2723,10 @@ msgstr "בחר..."
msgid "Self-Host with Docker"
msgstr "אירוח עצמי עם Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "לִשְׁלוֹחַ"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "שליחת דוא\"ל לאיפוס סיסמה"
msgid "Sending password reset email..."
msgstr "שולח דוא\"ל לאיפוס סיסמה..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "שולח בקשה"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "מפריד"
@@ -2708,6 +2878,10 @@ msgstr "עמודה אחת עם סרגל צד וגריד נקי; רב־שימוש
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "עמודה אחת עם כותרת כניסה משולבת בת שלוש עמודות (תפקיד · ארגון · תקופה); קומפקטי ומתאים לשיטת ATS, מתאים היטב למנהגי כתיבת קורות חיים באסיה (סין/יפן/קוריאה)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "עמודה אחת עם כותרות באותיות גדולות וקו עליון בצבע ראשי בכל עמוד; מלוטש לקורות חיים של מנהלים, ייעוץ או סטארט-אפים."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "עמודה אחת; מלוטש ורציני לתפקידים בכירים או ברמת ארגון."
@@ -2808,6 +2982,10 @@ msgstr "סטטיסטיקה"
msgid "Stay"
msgstr "הישאר"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "לְהַפְסִיק"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "נקודות חוזק"
@@ -2902,6 +3080,14 @@ msgstr "צבע כתב"
msgid "Thai"
msgstr "תאית"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "הבינה המלאכותית הציעה שינוי שכבר אינו חל על קורות חיים אלה."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "הבינה המלאכותית החזירה הצעה שלא ניתן היה לצפות בה בתצוגה מקדימה."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "מפתח ה־API נמחק בהצלחה."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "לאחר המחיקה מפתח ה־API לא יוכל יותר לגשת לנתונים שלך. לא ניתן לבטל פעולה זו."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "העוזר עצר לפני שהחזיר הצעה."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "זהו שם ידידותי לכתובת URL עבור קורות החיי
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "זה עלול לקחת כמה דקות, בהתאם לזמן התגובה של ספק הבינה המלאכותית. נא לא לסגור את החלון או לרענן את העמוד."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "הצעה זו מיושנת. בקש מהעוזר ליצור אותה מחדש מהקורות חיים האחרונים."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "קורות חיים אלה נעולים ולא ניתן לעדכן אותם."
@@ -3385,10 +3580,6 @@ msgstr "איקס (טוויטר)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "כן, Reactive Resume זמין במספר שפות. אפשר לבחור את השפה המועדפת עליך בעמוד ההגדרות או באמצעות מחליף השפה בפינה העליונה הימנית. אם אינך רואה את השפה שלך, או אם ברצונך לשפר את התרגומים הקיימים, אפשר <0>לתמוך בתרגומים ב־Crowdin<1> (נפתח בלשונית חדשה)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "כן! כל תבנית ניתנת להתאמה מלאה. אפשר לשנות צבעים, גופנים, ריווח, ואפילו לכתוב CSS מותאם אישית לשליטה מלאה במראה של קורות החיים שלך."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "כן! Reactive Resume חינמי לחלוטין לשימוש, בלי עלויות נסתרות, מדרגות פרימיום או דמי מנוי. הוא בקוד פתוח ותמיד יישאר חינמי."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# आइटम} other {# आइटम}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# भूमिका} other {# भूमिकाएं}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} प्रस्तावों की समीक्षा की गई"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "ए4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "बिल्कुल! आप एक ही क्लिक में अपने रेज़्यूमे को PDF में एक्सपोर्ट कर सकते हैं। एक्सपोर्ट किया गया PDF आपके सभी फ़ॉर्मेटिंग और स्टाइलिंग को बिल्कुल सही बनाए रखता है।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "स्वीकार करना"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "सभी स्वीकृत"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "प्रस्ताव स्वीकृत"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API का उपयोग करके अपने रेज़्यूमे और डेटा तक प्रोग्रामेटिक रूप से पहुँच प्राप्त करें।"
@@ -229,10 +246,38 @@ msgstr "इसके पहले पंक्ति जोड़ें"
msgid "Afrikaans"
msgstr "अफ्रीकान्स"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "बाद"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "एआई एकीकरण अक्षम"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "एआई प्रस्ताव लागू किया गया।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "एआई का प्रस्ताव खारिज कर दिया गया।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "एआई संबंधी प्रस्ताव लागू किए गए।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "एआई से संबंधित प्रस्ताव खारिज कर दिए गए।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "एआई रिज्यूमे असिस्टेंट"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "अल्बानियाई"
@@ -367,10 +412,22 @@ msgstr "अध्ययन का क्षेत्र"
msgid "Artificial Intelligence"
msgstr "कृत्रिम बुद्धिमत्ता"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "अपने रिज्यूमे में लक्षित बदलाव करने का अनुरोध करें..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "क्रमिक परिवर्तन की मांग करें"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "आकार अनुपात"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "सहायक का अनुरोध विफल रहा"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "बुनियादी"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "सुंदर खाके जिनमें से चुन सकते हैं, और भी रास्ते में हैं।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "पहले"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "बंगाली"
@@ -462,10 +523,6 @@ msgstr "बुलेट सूची"
msgid "By the community, for the community."
msgstr "समुदाय द्वारा, समुदाय के लिए।"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "क्या मैं खाकों को अनुकूलित कर सकता/सकती हूँ?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "क्या मैं अपना रेज़्यूमे PDF में एक्सपोर्ट कर सकता/सकती हूँ?"
@@ -576,6 +633,14 @@ msgstr "स्पष्ट"
msgid "Click here to select a file to import"
msgstr "इम्पोर्ट करने के लिए फ़ाइल चुनने हेतु यहाँ क्लिक करें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "बंद करें"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "एआई सहायक को बंद करें"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "कोड ब्लॉक"
@@ -622,6 +687,10 @@ msgstr "पुष्टि करें"
msgid "Connect"
msgstr "कनेक्ट करें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "रिज्यूम एडिटिंग के प्रस्तावों का उपयोग करने से पहले किसी एआई प्रदाता से संपर्क करें और उसकी पुष्टि करें।"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "इस सीक्रेट कुंजी को कॉपी कर
msgid "Copy URL"
msgstr "URL कॉपी करें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "एआई प्रस्ताव लागू नहीं हो सका।"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "डिसकनेक्ट करें"
msgid "Discord"
msgstr "डिस्कॉर्ड"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "नकार देना"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "आलेख"
msgid "Don't have an account? <0/>"
msgstr "खाता नहीं है? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "दान करें"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "रिएक्टिव रेज़्यूमे के लिए दान करें"
@@ -1094,6 +1175,10 @@ msgstr "2FA चालू करें"
msgid "Enable AI Features"
msgstr "AI सुविधाएँ सक्षम करें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "एआई एकीकरण को सक्षम करें"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "दो कारक प्रमाणीकरण सक्रिय करें"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "उदाहरण: सारांश को दोबारा लिखें, अनुभव से संबंधित किसी एक बिंदु को संक्षिप्त करें, मापदंड जोड़ें, या नौकरी के विवरण के अनुसार रिज्यूमे को अनुकूलित करें।"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रीन से बाहर निकलें"
@@ -1956,6 +2045,10 @@ msgstr "माइक्रोसॉफ्ट वर्ड"
msgid "Model"
msgstr "मॉडल"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "अधिक प्रस्ताव कार्रवाइयां"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "स्थानांतरित करें"
@@ -1982,6 +2075,10 @@ msgstr "https:// से शुरू करना अनिवार्य ह
msgid "Name"
msgstr "नाम"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "समीक्षा की आवश्यकता है"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "नेपाली"
@@ -2012,6 +2109,10 @@ msgstr "नया पासवर्ड"
msgid "New Section"
msgstr "नया अनुभाग"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "अगला"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "कोई विज्ञापन नहीं, कोई ट्रैकिंग नहीं"
@@ -2061,11 +2162,19 @@ msgstr "निरंतर रखरखाव"
msgid "Open"
msgstr "खोलें"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "ओपन एआई सहायक"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ईमेल क्लाइंट खोलें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ओपन इंटीग्रेशन"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "एकीकरण सेटिंग्स खोलें"
@@ -2219,6 +2328,10 @@ msgstr "आगे बढ़ने के लिए कृपया रेज़
msgid "Please enter the URL you want to link to:"
msgstr "कृपया वह URL दर्ज करें जिससे आप लिंक करना चाहते हैं:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "कृपया इस परियोजना का समर्थन करें।"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "पद"
msgid "Preferences"
msgstr "प्राथमिकताएँ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "बदलाव की तैयारी"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "पूर्वनिर्धारित सेटिंग्स"
@@ -2267,6 +2384,10 @@ msgstr "वर्तमान कीवर्ड जोड़ने या स
msgid "Press <0>Enter</0> to open"
msgstr "खोलने के लिए <0>Enter</0> दबाएँ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "पिछला"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "प्राथमिक रंग"
@@ -2297,6 +2418,11 @@ msgstr "प्रगति पट्टी"
msgid "Projects"
msgstr "प्रोजेक्ट्स"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "प्रस्ताव {0} का {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "अपने रेज़्यूमे को पासवर्ड से अनधिकृत एक्सेस से सुरक्षित रखें"
@@ -2319,6 +2445,10 @@ msgstr "प्रकाशन"
msgid "Publisher"
msgstr "प्रकाशक"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "रॉ JSON पैच"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - होमपेज पर जाएँ"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume एक मुफ़्त और ओपन‑सोर
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume एक मुफ़्त और ओपन‑सोर्स रेज़्यूमे बिल्डर है जो आपके रेज़्यूमे को बनाने, अपडेट करने और साझा करने की प्रक्रिया को सरल बनाता है।"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "रिएक्टिव रिज्यूम मुफ़्त और ओपन सोर्स है। अगर इससे आपको मदद मिली है, तो कृपया दान करने पर विचार करें।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ओपन‑सोर्स, गोपनीयता‑केंद्रित और पूरी तरह मुफ़्त है। अन्य रेज़्यूमे बिल्डर के विपरीत, यह विज्ञापन नहीं दिखाता, आपका डेटा ट्रैक नहीं करता और न ही आपकी सुविधाओं को पेवॉल के पीछे सीमित करता है।"
@@ -2380,6 +2514,18 @@ msgstr "रिफ़्रेश"
msgid "Register New Device"
msgstr "नया डिवाइस पंजीकृत करें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "अस्वीकार करना"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "सभी को अस्वीकार करें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "प्रस्ताव अस्वीकृत कर दिया गया"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "अपना पासवर्ड याद है? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "सत्यापन ईमेल दोबारा भेजा ज
msgid "Reset"
msgstr "रीसेट"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "चैट रीसेट करें"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "अपना पासवर्ड रीसेट करें"
msgid "Resetting your password..."
msgstr "आपका पासवर्ड रीसेट किया जा रहा है..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "आकार बदलने वाला एआई सहायक"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "संसाधन"
@@ -2463,6 +2617,14 @@ msgstr "रिज़्यूमे विश्लेषण पूरा हो
msgid "Resumes"
msgstr "रेज़्यूमे"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "समीक्षा आवश्यक है"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "समीक्षित प्रस्ताव"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "दाएँ संरेखित करें"
@@ -2561,6 +2723,10 @@ msgstr "चुनें..."
msgid "Self-Host with Docker"
msgstr "डॉकर के साथ स्व‑मेज़बान"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "भेजना"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "पासवर्ड रीसेट ईमेल भेजें"
msgid "Sending password reset email..."
msgstr "पासवर्ड रीसेट ईमेल भेजा जा रहा है..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "भेजने का अनुरोध"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "सेपरेटर"
@@ -2708,6 +2878,10 @@ msgstr "साइडबार और साफ़ ग्रिड लेआउ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "एकल-स्तंभ, जिसमें इनलाइन तीन-स्तंभ प्रविष्टि शीर्षक (स्थिति · संगठन · अवधि) शामिल है; संक्षिप्त और ATS-अनुकूल, एशियाई रिज्यूमे परंपराओं (CN/JP/KR) के लिए उपयुक्त।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "प्रत्येक पृष्ठ पर प्राथमिक रंग की शीर्ष रेखा के साथ बड़े अक्षरों में लिखे गए अनुभाग शीर्षकों वाला एकल-स्तंभ; कार्यकारी, परामर्शदाता या स्टार्टअप के रिज्यूमे के लिए उपयुक्त।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "सिंगल‑कॉलम; वरिष्ठ या एंटरप्राइज़‑स्तरीय पदों के लिए परिष्कृत और गंभीर।"
@@ -2808,6 +2982,10 @@ msgstr "आंकड़े"
msgid "Stay"
msgstr "रहें"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "रुकना"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "ताकतें"
@@ -2902,6 +3080,14 @@ msgstr "अक्षरों का रंग"
msgid "Thai"
msgstr "थाई"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "एआई ने एक बदलाव का प्रस्ताव दिया था जो अब इस रिज्यूमे पर लागू नहीं होता है।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "एआई ने एक ऐसा प्रस्ताव प्रस्तुत किया जिसका पूर्वावलोकन नहीं किया जा सका।"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API कुंजी सफलतापूर्वक हटा दी
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "हटाए जाने के बाद यह API कुंजी अब आपके डेटा तक पहुँच नहीं कर पाएगी। इस कार्रवाई को पूर्ववत नहीं किया जा सकता।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "प्रस्ताव लौटाने से पहले सहायक रुक गया।"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "यह आपके रेज़्यूमे के लिए एक
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "इसमें कुछ मिनट लग सकते हैं, यह AI प्रोवाइडर की प्रतिक्रिया पर निर्भर करता है। कृपया विंडो को बंद न करें या पेज रिफ़्रेश न करें।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "यह प्रस्ताव पुराना हो चुका है। कृपया सहायक से नवीनतम रिज्यूमे से इसे पुनः तैयार करने का अनुरोध करें।"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "यह रेज़्यूमे लॉक है और इसे अपडेट नहीं किया जा सकता।"
@@ -3385,10 +3580,6 @@ msgstr "एक्स (ट्विटर)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "हाँ, Reactive Resume कई भाषाओं में उपलब्ध है। आप सेटिंग्स पेज में, या ऊपर दाएँ कोने में भाषा स्विचर का उपयोग करके अपनी पसंदीदा भाषा चुन सकते हैं। यदि आपको अपनी भाषा नहीं दिखती, या आप मौजूदा अनुवादों में सुधार करना चाहते हैं, तो आप <0>Crowdin पर अनुवादों में योगदान दे सकते हैं<1> (नए टैब में खुलता है)</1></0>।"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "हाँ! हर खाका पूरी तरह से कस्टमाइज़ेबल है। आप रंग, फ़ॉन्ट, स्पेसिंग बदल सकते हैं और यहाँ तक कि अपने रेज़्यूमे के लुक पर पूरा नियंत्रण पाने के लिए कस्टम CSS भी लिख सकते हैं।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "हाँ! Reactive Resume का उपयोग पूरी तरह मुफ़्त है, बिना किसी छिपी हुई लागत, प्रीमियम टियर या सब्सक्रिप्शन फ़ीस के। यह ओपन‑सोर्स है और हमेशा मुफ़्त रहेगा।"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elem} other {# elem}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# szerepkör} other {# szerepkör}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} javaslatok áttekintése"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Természetesen! Egy kattintással PDF‑be exportálhatod az önéletrajzodat. Az exportált PDF tökéletesen megőrzi az összes formázást és stílust."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Elfogadás"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Összes elfogadása"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Elfogadott javaslat"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Férj hozzá az önéletrajzaidhoz és adataidhoz programozottan az API segítségével."
@@ -229,10 +246,38 @@ msgstr "Sor hozzáadása fölé"
msgid "Afrikaans"
msgstr "afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Után"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI-integráció letiltva"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI-javaslat alkalmazva."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "A mesterséges intelligencia javaslatát elutasították."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Alkalmazott mesterséges intelligencia javaslatok."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "A mesterséges intelligencia javaslatait elutasították."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI önéletrajz asszisztens"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "albán"
@@ -367,10 +412,22 @@ msgstr "Tanulmányok területe"
msgid "Artificial Intelligence"
msgstr "Mesterséges intelligencia"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Kérj célzott önéletrajz-módosítást..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Kérjen fokozatos változtatást"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Méretarány"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Asszisztensi kérelem sikertelen"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Alapadatok"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Választható, gyönyörű sablonok, és még több érkezik."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Előtt"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "bangla"
@@ -462,10 +523,6 @@ msgstr "Felsorolásjelezett lista"
msgid "By the community, for the community."
msgstr "A közösség által, a közösségért."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Testreszabhatom a sablonokat?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Exportálhatom az önéletrajzomat PDF‑be?"
@@ -576,6 +633,14 @@ msgstr "Tiszta"
msgid "Click here to select a file to import"
msgstr "Kattints ide az importálandó fájl kiválasztásához"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Bezárás"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Bezárás AI asszisztens"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kódblokk"
@@ -622,6 +687,10 @@ msgstr "Megerősítés"
msgid "Connect"
msgstr "Csatlakozás"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Csatlakoztasson és ellenőrizzen egy mesterséges intelligencia szolgáltatót az önéletrajz-szerkesztési javaslatok használata előtt."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Másold ki ezt a titkos kulcsot, és használd az alkalmazásaidban az a
msgid "Copy URL"
msgstr "URL másolása"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nem sikerült alkalmazni a mesterséges intelligencia javaslatát."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Leválasztás"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Elvetés"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentáció"
msgid "Don't have an account? <0/>"
msgstr "Nincs fiókja? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Adományoz"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Adományozzon a Reactive Resume-nak"
@@ -1094,6 +1175,10 @@ msgstr "2FA bekapcsolása"
msgid "Enable AI Features"
msgstr "AI funkciók engedélyezése"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI-integráció engedélyezése"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Kétlépcsős hitelesítés engedélyezése"
@@ -1162,6 +1247,10 @@ msgstr "Minden itt megadott adat helyben, a böngésződben kerül tárolásra.
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Példák: írja át az összefoglalót, szűkítse le a tapasztalati pontot, adjon hozzá mérőszámokat, vagy igazítsa az önéletrajzot egy munkaköri leíráshoz."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Kilépés a teljes képernyőből"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modell"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "További javaslati műveletek"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Áthelyezés ide"
@@ -1982,6 +2075,10 @@ msgstr "A https:// címmel kell kezdeni."
msgid "Name"
msgstr "Név"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Felülvizsgálatra szorul"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "nepáli"
@@ -2012,6 +2109,10 @@ msgstr "Új jelszó"
msgid "New Section"
msgstr "Új szekció"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Következő"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Nincs reklám, nincs követés"
@@ -2061,11 +2162,19 @@ msgstr "Folyamatos karbantartás"
msgid "Open"
msgstr "Megnyitás"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Nyílt AI asszisztens"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "E‑mail kliens megnyitása"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Nyílt integrációk"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Integrációk beállításainak megnyitása"
@@ -2219,6 +2328,10 @@ msgstr "Kérjük, add meg a neked megosztott, az önéletrajz tulajdonosa által
msgid "Please enter the URL you want to link to:"
msgstr "Kérjük, add meg a csatolni kívánt URL‑t:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Kérjük, támogassa a projektet"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Pozíció"
msgid "Preferences"
msgstr "Beállítások"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Változások előkészítése"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Előbeállítások"
@@ -2267,6 +2384,10 @@ msgstr "Nyomja meg a <0>{RETURN_KEY}</0> vagy a <1>{COMMA_KEY}</1> gombot a jele
msgid "Press <0>Enter</0> to open"
msgstr "Nyomja meg az <0>Entert</0> a megnyitáshoz"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Előző"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Elsődleges szín"
@@ -2297,6 +2418,11 @@ msgstr "Folyamatjelző sáv"
msgid "Projects"
msgstr "Projektek"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{0} javaslat {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Védd az önéletrajzodat a jogosulatlan hozzáféréstől jelszóval"
@@ -2319,6 +2445,10 @@ msgstr "Publikációk"
msgid "Publisher"
msgstr "Kiadó"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Nyers JSON javítás"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – Ugrás a kezdőlapra"
@@ -2340,6 +2470,10 @@ msgstr "A Reactive Resume egy ingyenes és nyílt forráskódú projekt, szerete
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "A Reactive Resume ingyenes és nyílt forráskódú önéletrajz készítő, amely leegyszerűsíti az önéletrajz készítésének, frissítésének és megosztásának folyamatát."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "A Reactive Resume ingyenes és nyílt forráskódú. Ha segített, kérjük, fontold meg az adományozást."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "A Reactive Resume nyílt forráskódú, adatvédelem‑központú és teljesen ingyenes. Más önéletrajz‑készítőkkel ellentétben nem jelenít meg hirdetéseket, nem követi az adataidat, és nem zár funkciókat fizetős fal mögé."
@@ -2380,6 +2514,18 @@ msgstr "Frissítés"
msgid "Register New Device"
msgstr "Új eszköz regisztrálása"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Elutasít"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Összes elutasítása"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Elutasított javaslat"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Emlékszik a jelszavára? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Megerősítő e‑mail újraküldése..."
msgid "Reset"
msgstr "Visszaállítás"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Csevegés visszaállítása"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Jelszó visszaállítása"
msgid "Resetting your password..."
msgstr "Jelszó visszaállítása..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "AI asszisztens átméretezése"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Erőforrások"
@@ -2463,6 +2617,14 @@ msgstr "Az önéletrajzelemzés befejeződött."
msgid "Resumes"
msgstr "Önéletrajzok"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Felülvizsgálat szükséges"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Felülvizsgált javaslatok"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Jobbra igazítás"
@@ -2561,6 +2723,10 @@ msgstr "Kiválasztás..."
msgid "Self-Host with Docker"
msgstr "Önálló hosztolás Dockerrel"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Elküld"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Jelszó‑visszaállító e‑mail küldése"
msgid "Sending password reset email..."
msgstr "Jelszó‑visszaállító e‑mail küldése..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Kérés küldése"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Elválasztó"
@@ -2708,6 +2878,10 @@ msgstr "Egyoszlopos elrendezés oldalsávval és rendezett rácsszerkezettel; so
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Egyoszlopos, sorba illesztett háromoszlopos belépési fejléccel (pozíció - szervezet - pont); kompakt és ATS-barát, jól illeszkedik az ázsiai önéletrajzok konvencióihoz (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Egyhasábos, nagybetűs szakaszcímekkel és minden oldalon alapszínű felső vonallal; kifinomult vezetői, tanácsadói vagy startup önéletrajzokhoz."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Egyoszlopos; kifinomult és komoly, vezetői vagy vállalati szintű pozíciókhoz."
@@ -2808,6 +2982,10 @@ msgstr "Statisztikák"
msgid "Stay"
msgstr "Maradás"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Erősségek"
@@ -2902,6 +3080,14 @@ msgstr "Szövegszín"
msgid "Thai"
msgstr "thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "A mesterséges intelligencia egy olyan módosítást javasolt, amely már nem vonatkozik erre az önéletrajzra."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "A mesterséges intelligencia egy olyan javaslatot adott vissza, amelynek az előnézete nem volt megtekinthető."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Az API kulcsot sikeresen töröltük."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Az API kulcs törlése után többé nem fér hozzá az adataidhoz. Ez a művelet nem vonható vissza."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Az asszisztens megállt, mielőtt válaszolt volna egy javaslatra."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Ez az önéletrajzod URL‑barát neve."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Ez néhány percet igénybe vehet, az AI szolgáltató válaszidejétől függően. Kérjük, ne zárd be az ablakot, és ne frissítsd az oldalt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Ez az ajánlat elavult. Kérje meg az asszisztenst, hogy generálja újra a legutóbbi önéletrajzból."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Ez az önéletrajz zárolva van, és nem frissíthető."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Igen, a Reactive Resume több nyelven is elérhető. A beállítások oldalon választhatod ki a kívánt nyelvet, vagy a jobb felső sarokban található nyelvváltó segítségével. Ha nem látod a saját nyelvedet, vagy szeretnél javítani a meglévő fordításokon, <0>közreműködhetsz a fordításokban a Crowdin‑on<1> (új lapon nyílik meg)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Igen! Minden sablon teljesen testreszabható. Módosíthatod a színeket, betűtípusokat, térközöket, és akár egyéni CSS‑t is írhatsz, hogy teljes mértékben irányítsd az önéletrajzod megjelenését."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Igen! A Reactive Resume teljesen ingyenesen használható, rejtett költségek, prémium szintek vagy előfizetési díjak nélkül. Nyílt forráskódú, és mindig ingyenes marad."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# item}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# peran} other {# peran}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} proposal ditinjau"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Tentu saja! Anda dapat mengekspor resume Anda ke PDF hanya dengan satu klik. PDF yang diekspor mempertahankan semua pemformatan dan gaya Anda dengan sempurna."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Menerima"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Terima semua"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Proposal diterima"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Akses resume dan data Anda secara terprogram menggunakan API."
@@ -229,10 +246,38 @@ msgstr "Tambah Baris Sebelum"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Setelah"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "Kecerdasan Buatan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrasi AI dinonaktifkan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Proposal AI telah diterapkan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Proposal AI ditolak."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Proposal AI diterapkan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Proposal AI ditolak."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asisten Resume AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albania"
@@ -367,10 +412,22 @@ msgstr "Bidang Studi"
msgid "Artificial Intelligence"
msgstr "Kecerdasan Buatan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Minta perubahan resume yang spesifik..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Mintalah perubahan bertahap."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Rasio Aspek"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Permintaan asisten gagal."
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Dasar"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Template indah untuk dipilih, dengan lebih banyak lagi yang akan datang."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Sebelum"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Daftar Poin"
msgid "By the community, for the community."
msgstr "Oleh komunitas, untuk komunitas."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Bisakah saya menyesuaikan template?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Bisakah saya mengekspor resume saya ke PDF?"
@@ -576,6 +633,14 @@ msgstr "Jelas"
msgid "Click here to select a file to import"
msgstr "Klik di sini untuk memilih file yang akan diimpor"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Tutup"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Tutup asisten AI"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blok Kode"
@@ -622,6 +687,10 @@ msgstr "Konfirmasi"
msgid "Connect"
msgstr "Hubungkan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Hubungi dan verifikasi penyedia AI sebelum menggunakan proposal pengeditan resume."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Salin kunci rahasia ini dan gunakan di aplikasi Anda untuk mengakses dat
msgid "Copy URL"
msgstr "Salin URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Proposal AI tidak dapat diterapkan."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Putuskan"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Membubarkan"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentasi"
msgid "Don't have an account? <0/>"
msgstr "Belum punya akun? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Menyumbangkan"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donasi ke Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktifkan 2FA"
msgid "Enable AI Features"
msgstr "Aktifkan Fitur AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Aktifkan integrasi AI"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktifkan Autentikasi Dua Faktor"
@@ -1162,6 +1247,10 @@ msgstr "Semua yang dimasukkan di sini disimpan secara lokal di browser Anda. Dat
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Contoh: tulis ulang ringkasan, ringkas salah satu poin pengalaman, tambahkan metrik, atau sesuaikan resume dengan deskripsi pekerjaan."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Keluar dari Layar Penuh"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Tindakan proposal lainnya"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Pindahkan ke"
@@ -1982,6 +2075,10 @@ msgstr "Harus dimulai dengan https://"
msgid "Name"
msgstr "Nama"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Perlu ditinjau ulang"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepali"
@@ -2012,6 +2109,10 @@ msgstr "Kata Sandi Baru"
msgid "New Section"
msgstr "Bagian Baru"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Berikutnya"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Tanpa Iklan, Tanpa Pelacakan"
@@ -2061,11 +2162,19 @@ msgstr "Pemeliharaan Berkelanjutan"
msgid "Open"
msgstr "Buka"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Asisten AI terbuka"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Buka Klien Email"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrasi Terbuka"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Buka Pengaturan Integrasi"
@@ -2219,6 +2328,10 @@ msgstr "Silakan masukkan kata sandi yang dibagikan kepada Anda oleh pemilik resu
msgid "Please enter the URL you want to link to:"
msgstr "Silakan masukkan URL yang ingin Anda tautkan:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Mohon dukung proyek ini."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Posisi"
msgid "Preferences"
msgstr "Preferensi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Mempersiapkan perubahan"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Preset"
@@ -2267,6 +2384,10 @@ msgstr "Tekan <0>{RETURN_KEY}</0> atau <1>{COMMA_KEY}</1> untuk menambah atau me
msgid "Press <0>Enter</0> to open"
msgstr "Tekan <0>Enter</0> untuk membuka"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Sebelumnya"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -2297,6 +2418,11 @@ msgstr "Bilah Progres"
msgid "Projects"
msgstr "Proyek"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposal {0} dari {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Lindungi resume Anda dari akses tidak sah dengan kata sandi"
@@ -2319,6 +2445,10 @@ msgstr "Publikasi"
msgid "Publisher"
msgstr "Penerbit"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch JSON mentah"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Pergi ke beranda"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume adalah proyek gratis dan sumber terbuka, dibuat dengan c
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume adalah pembuat resume gratis dan sumber terbuka yang menyederhanakan proses membuat, memperbarui, dan membagikan resume Anda."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume gratis dan bersifat open source. Jika aplikasi ini bermanfaat bagi Anda, mohon pertimbangkan untuk berdonasi."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume bersifat sumber terbuka, berfokus pada privasi, dan sepenuhnya gratis. Tidak seperti pembuat resume lainnya, aplikasi ini tidak menampilkan iklan, melacak data Anda, atau membatasi fitur di balik paywall."
@@ -2380,6 +2514,18 @@ msgstr "Muat Ulang"
msgid "Register New Device"
msgstr "Daftarkan Perangkat Baru"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Menolak"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Tolak semuanya"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Proposal ditolak"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Ingat kata sandi Anda? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Mengirim ulang email verifikasi..."
msgid "Reset"
msgstr "Atur Ulang"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Atur ulang obrolan"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Atur ulang kata sandi Anda"
msgid "Resetting your password..."
msgstr "Mengatur ulang kata sandi Anda..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Asisten AI pengubah ukuran"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Sumber Daya"
@@ -2463,6 +2617,14 @@ msgstr "Lanjutkan analisis hingga selesai."
msgid "Resumes"
msgstr "Resume"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Diperlukan peninjauan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Proposal yang ditinjau"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rata Kanan"
@@ -2561,6 +2723,10 @@ msgstr "Pilih..."
msgid "Self-Host with Docker"
msgstr "Self-Host dengan Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Mengirim"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Kirim Email Atur Ulang Kata Sandi"
msgid "Sending password reset email..."
msgstr "Mengirim email atur ulang kata sandi..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Mengirim permintaan"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Pemisah"
@@ -2708,6 +2878,10 @@ msgstr "Satu kolom dengan bilah sisi dan tata letak grid bersih; serbaguna untuk
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Kolom tunggal dengan tajuk entri tiga kolom sebaris (posisi - organisasi - periode); ringkas dan ramah ATS, cocok untuk konvensi resume Asia (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Tata letak satu kolom dengan judul bagian huruf kapital dan garis atas berwarna dasar di setiap halaman; dirancang untuk resume eksekutif, konsultan, atau perusahaan rintisan."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Satu kolom; rapi dan serius untuk posisi tingkat senior atau level perusahaan."
@@ -2808,6 +2982,10 @@ msgstr "Statistik"
msgid "Stay"
msgstr "Tetap"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Berhenti"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Kekuatan"
@@ -2902,6 +3080,14 @@ msgstr "Warna Teks"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI tersebut mengusulkan perubahan yang tidak lagi berlaku untuk resume ini."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI tersebut memberikan proposal yang tidak dapat dipratinjau."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API key telah berhasil dihapus."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API key tidak akan lagi dapat mengakses data Anda setelah dihapus. Tindakan ini tidak dapat dibatalkan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asisten itu berhenti sebelum mengembalikan proposal tersebut."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Ini adalah nama yang ramah URL untuk resume Anda."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Ini mungkin memakan waktu beberapa menit, tergantung respons penyedia AI. Harap jangan menutup jendela atau memuat ulang halaman."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Proposal ini sudah kadaluarsa. Mintalah asisten untuk membuatnya ulang dari resume terbaru."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Resume ini dikunci dan tidak dapat diperbarui."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ya, Reactive Resume tersedia dalam banyak bahasa. Anda dapat memilih bahasa pilihan Anda di halaman pengaturan, atau menggunakan pengalih bahasa di sudut kanan atas. Jika Anda tidak melihat bahasa Anda, atau ingin meningkatkan terjemahan yang ada, Anda dapat <0>berkontribusi pada terjemahan di Crowdin<1> (terbuka di tab baru)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ya! Setiap template sepenuhnya dapat disesuaikan. Anda dapat mengubah warna, font, jarak, dan bahkan menulis CSS kustom untuk kontrol penuh atas tampilan resume Anda."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ya! Reactive Resume sepenuhnya gratis digunakan, tanpa biaya tersembunyi, tingkat premium, atau biaya langganan. Ini bersumber terbuka dan akan selalu tetap gratis."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elemento} other {# elementi}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ruolo} other {# ruoli}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} proposte esaminate"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Certo! Puoi esportare il tuo curriculum in PDF con un solo clic. Il PDF esportato mantiene perfettamente tutta la tua formattazione e lo stile."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accettare"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Accetta tutto"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Proposta accettata"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Accedi in modo programmatico ai tuoi curriculum e ai tuoi dati usando l'API."
@@ -229,10 +246,38 @@ msgstr "Aggiungi riga prima"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Dopo"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrazione dell'IA disabilitata"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Proposta di intelligenza artificiale applicata."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Proposta sull'intelligenza artificiale respinta."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Sono state applicate le proposte basate sull'IA."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Proposte sull'IA respinte."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Assistente AI per la redazione del curriculum"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanese"
@@ -367,10 +412,22 @@ msgstr "Area di studio"
msgid "Artificial Intelligence"
msgstr "Intelligenza artificiale"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Richiedi una modifica mirata al tuo curriculum..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Richiedi un cambiamento graduale"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporzioni"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Richiesta di assistenza non riuscita"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Informazioni di base"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Modelli bellissimi tra cui scegliere, con altri in arrivo."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Prima"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalese"
@@ -462,10 +523,6 @@ msgstr "Elenco puntato"
msgid "By the community, for the community."
msgstr "Dalla comunità, per la comunità."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Posso personalizzare i modelli?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Posso esportare il mio curriculum in PDF?"
@@ -576,6 +633,14 @@ msgstr "Libero"
msgid "Click here to select a file to import"
msgstr "Fai clic qui per selezionare un file da importare"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Chiudi"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Assistente AI ravvicinato"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blocco di codice"
@@ -622,6 +687,10 @@ msgstr "Conferma"
msgid "Connect"
msgstr "Connetti"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Prima di utilizzare i suggerimenti per la modifica del curriculum, collega e verifica il fornitore di intelligenza artificiale."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copia questa chiave segreta e usala nelle tue applicazioni per accedere
msgid "Copy URL"
msgstr "Copia URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Impossibile applicare la proposta basata sull'IA."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Disconnetti"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Congedare"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentazione"
msgid "Don't have an account? <0/>"
msgstr "Non hai un account? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donare"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Fai una donazione a Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Abilita 2FA"
msgid "Enable AI Features"
msgstr "Abilita funzionalità IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Abilita l'integrazione dell'IA"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Abilita autenticazione a due fattori"
@@ -1162,6 +1247,10 @@ msgstr "Tutto ciò che inserisci qui viene memorizzato localmente nel tuo browse
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Esempi: riscrivere il riepilogo, sintetizzare un punto relativo all'esperienza, aggiungere dati statistici o adattare il curriculum alla descrizione di una posizione lavorativa."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Esci dalla modalità a schermo intero"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modello"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Ulteriori azioni proposte"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Sposta in"
@@ -1982,6 +2075,10 @@ msgstr "Deve iniziare con https://"
msgid "Name"
msgstr "Nome"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Necessita di revisione"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalese"
@@ -2012,6 +2109,10 @@ msgstr "Nuova password"
msgid "New Section"
msgstr "Nuova sezione"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Avanti"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Nessuna pubblicità, nessun tracciamento"
@@ -2061,11 +2162,19 @@ msgstr "Manutenzione continua"
msgid "Open"
msgstr "Apri"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Assistente Open AI"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Apri client email"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrazioni aperte"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Apra le Impostazioni delle integrazioni"
@@ -2219,6 +2328,10 @@ msgstr "Inserisci la password condivisa con te dal proprietario del curriculum p
msgid "Please enter the URL you want to link to:"
msgstr "Inserisci l'URL a cui vuoi collegarti:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Per favore, sostenete il progetto."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Posizione"
msgid "Preferences"
msgstr "Preferenze"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparazione dei cambiamenti"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Preset"
@@ -2267,6 +2384,10 @@ msgstr "Premi <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> per aggiungere o salvare
msgid "Press <0>Enter</0> to open"
msgstr "Premere <0>Invio</0> per aprire"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Precedente"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Colore primario"
@@ -2297,6 +2418,11 @@ msgstr "Barra di avanzamento"
msgid "Projects"
msgstr "Progetti"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposta {0} di {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Proteggi il tuo curriculum da accessi non autorizzati con una password"
@@ -2319,6 +2445,10 @@ msgstr "Pubblicazioni"
msgid "Publisher"
msgstr "Editore"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch JSON non elaborato"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Vai alla homepage"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume è un progetto gratuito e open source, creato con amore
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume è un generatore di curriculum gratuito e open source che semplifica il processo di creazione, aggiornamento e condivisione del tuo curriculum."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume è gratuito e open source. Se ti è stato utile, considera la possibilità di fare una donazione."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume è open source, incentrato sulla privacy e completamente gratuito. A differenza di altri generatori di curriculum, non mostra annunci, non traccia i tuoi dati e non limita le funzionalità dietro un paywall."
@@ -2380,6 +2514,18 @@ msgstr "Aggiorna"
msgid "Register New Device"
msgstr "Registra un nuovo dispositivo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rifiutare"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Rifiuta tutto"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Proposta respinta"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Ricordi la tua password? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Invio dell'email di verifica in corso..."
msgid "Reset"
msgstr "Ripristina"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Reimposta la chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Reimposta la tua password"
msgid "Resetting your password..."
msgstr "Reimpostazione della tua password in corso..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Assistente AI per il ridimensionamento"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Risorse"
@@ -2463,6 +2617,14 @@ msgstr "Analisi del curriculum completata."
msgid "Resumes"
msgstr "Curriculum"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Revisione necessaria"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Proposte esaminate"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Allinea a destra"
@@ -2561,6 +2723,10 @@ msgstr "Seleziona..."
msgid "Self-Host with Docker"
msgstr "Self-host con Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Inviare"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Invia email per reimpostare la password"
msgid "Sending password reset email..."
msgstr "Invio dell'email per reimpostare la password in corso..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Invio della richiesta"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separatore"
@@ -2708,6 +2878,10 @@ msgstr "Una singola colonna con barra laterale e griglia pulita; versatile per q
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "A colonna singola con intestazione in linea a tre colonne (posizione - organizzazione - periodo); compatta e adatta agli ATS, si adatta bene alle convenzioni asiatiche per i curriculum (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Impaginazione a colonna singola con intestazioni di sezione in maiuscolo e una linea superiore di colore primario su ogni pagina; ideale per curriculum di dirigenti, consulenti o startup."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Una singola colonna; curato e serio per posizioni senior o a livello enterprise."
@@ -2808,6 +2982,10 @@ msgstr "Statistiche"
msgid "Stay"
msgstr "Rimani"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Fermare"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Punti di forza"
@@ -2902,6 +3080,14 @@ msgstr "Colore del testo"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "L'intelligenza artificiale ha proposto una modifica che non si applica più a questo curriculum."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "L'intelligenza artificiale ha restituito una proposta che non poteva essere visualizzata in anteprima."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "La chiave API è stata eliminata correttamente."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Dopo l'eliminazione, la chiave API non potrà più accedere ai tuoi dati. Questa azione non può essere annullata."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "L'assistente si fermò prima di restituire la proposta."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Questo è un nome adatto agli URL per il tuo curriculum."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Potrebbero essere necessari alcuni minuti, a seconda della risposta del provider IA. Non chiudere la finestra e non aggiornare la pagina."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Questa proposta non è aggiornata. Chiedi all'assistente di rigenerarla a partire dal curriculum più recente."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Questo curriculum è bloccato e non può essere aggiornato."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Sì, Reactive Resume è disponibile in più lingue. Puoi scegliere la tua lingua preferita nella pagina delle impostazioni o usando il selettore di lingua nell'angolo in alto a destra. Se non vedi la tua lingua, o se vuoi migliorare le traduzioni esistenti, puoi <0>contribuire alle traduzioni su Crowdin<1> (apre in una nuova scheda)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Sì! Ogni modello è completamente personalizzabile. Puoi cambiare colori, font, spaziatura e persino scrivere CSS personalizzato per avere il pieno controllo dell'aspetto del tuo curriculum."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Sì! Reactive Resume è completamente gratuito da usare, senza costi nascosti, livelli premium o abbonamenti. È open source e resterà sempre gratuito."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# 件のアイテム}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, other {# 個の役職}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} 提案が審査されました"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "もちろん可能です。ワンクリックで履歴書を PDF にエクスポートできます。エクスポートされた PDF では、書式やスタイルがそのまま維持されます。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "受け入れる"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "すべて受け入れる"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "提案が承認されました"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API を使用して、プログラムから履歴書とデータにアクセスできます。"
@@ -229,10 +246,38 @@ msgstr "前に行を追加"
msgid "Afrikaans"
msgstr "アフリカーンス語"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "後"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI統合は無効になっています"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI提案が適用されました。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AIに関する提案は却下された。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI関連の提案が適用されました。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI関連の提案は却下された。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI履歴書アシスタント"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "アルバニア語"
@@ -367,10 +412,22 @@ msgstr "研究分野"
msgid "Artificial Intelligence"
msgstr "人工知能"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "履歴書の内容を具体的に変更するよう依頼してください。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "段階的な変更を求める"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "アスペクト比"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "アシスタントのリクエストが失敗しました"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "基本情報"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "選択できる美しいテンプレートを多数用意しており、今後もさらに追加される予定です。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "前に"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "ベンガル語"
@@ -462,10 +523,6 @@ msgstr "箇条書きリスト"
msgid "By the community, for the community."
msgstr "コミュニティによる、コミュニティのためのプロジェクト。"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "テンプレートはカスタマイズできますか?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "履歴書を PDF にエクスポートできますか?"
@@ -576,6 +633,14 @@ msgstr "クリア"
msgid "Click here to select a file to import"
msgstr "ここをクリックしてインポートするファイルを選択"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "閉じる"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AIアシスタントを閉じる"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "コードブロック"
@@ -622,6 +687,10 @@ msgstr "確認"
msgid "Connect"
msgstr "接続"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "履歴書編集提案を利用する前に、AIプロバイダーと連絡を取り、その信頼性を確認してください。"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "このシークレットキーをコピーし、アプリケーション
msgid "Copy URL"
msgstr "URL をコピー"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "AI提案を適用できませんでした。"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "切断"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "却下する"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ドキュメンテーション"
msgid "Don't have an account? <0/>"
msgstr "アカウントをお持ちでないですか? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "寄付する"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume に寄付"
@@ -1094,6 +1175,10 @@ msgstr "2FA を有効化"
msgid "Enable AI Features"
msgstr "AI 機能を有効にする"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI統合を有効にする"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "二要素認証を有効化"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "例:要約を書き直す、職務経歴の箇条書きを一つ絞り込む、数値データを追加する、または求人内容に合わせて履歴書を修正する。"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "全画面表示を終了"
@@ -1956,6 +2045,10 @@ msgstr "マイクロソフトワード"
msgid "Model"
msgstr "モデル"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "その他の提案アクション"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "移動先"
@@ -1982,6 +2075,10 @@ msgstr "https://。"
msgid "Name"
msgstr "名前"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "要見直し"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "ネパール語"
@@ -2012,6 +2109,10 @@ msgstr "新しいパスワード"
msgid "New Section"
msgstr "新しいセクション"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "次のページ"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "広告なし・トラッキングなし"
@@ -2061,11 +2162,19 @@ msgstr "継続的な保守"
msgid "Open"
msgstr "開く"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "OpenAIアシスタント"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "メールクライアントを開く"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "オープンインテグレーション"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "統合設定を開く"
@@ -2219,6 +2328,10 @@ msgstr "履歴書の所有者から共有されたパスワードを入力して
msgid "Please enter the URL you want to link to:"
msgstr "リンク先の URL を入力してください:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "プロジェクトへのご支援をお願いいたします"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "役職"
msgid "Preferences"
msgstr "設定"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "変更の準備"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "プリセット"
@@ -2267,6 +2384,10 @@ msgstr "現在のキーワードを追加または保存するには、<0>{RETUR
msgid "Press <0>Enter</0> to open"
msgstr "<0>Enter</0>キーを押して開く"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "前へ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "メインカラー"
@@ -2297,6 +2418,11 @@ msgstr "プログレスバー"
msgid "Projects"
msgstr "プロジェクト"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{0} の {total} の提案"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "パスワードで履歴書を保護し、許可されていないアクセスを防ぎます。"
@@ -2319,6 +2445,10 @@ msgstr "掲載情報"
msgid "Publisher"
msgstr "出版社"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "生のJSONパッチ"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ホームページへ移動"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume は、愛情を込めて作られ、私とコミュニ
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume は、履歴書の作成、更新、共有のプロセスを簡素化する、無料でオープンソースの履歴書ビルダーです。"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resumeは無料のオープンソースソフトウェアです。もしお役に立てたなら、ぜひご寄付をご検討ください。"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume はオープンソースでプライバシー重視、そして完全無料です。他の履歴書ビルダーと違い、広告を表示したり、あなたのデータを追跡したり、有料プランの裏に機能を隠したりすることはありません。"
@@ -2380,6 +2514,18 @@ msgstr "再読み込み"
msgid "Register New Device"
msgstr "新規デバイスの登録"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "拒否する"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "すべて拒否"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "却下された提案"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "パスワードを思い出しましたか? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "確認メールを再送信しています..."
msgid "Reset"
msgstr "リセット"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "チャットをリセット"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "パスワードをリセット"
msgid "Resetting your password..."
msgstr "パスワードをリセットしています..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "リサイズAIアシスタント"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "リソース"
@@ -2463,6 +2617,14 @@ msgstr "履歴書分析完了。"
msgid "Resumes"
msgstr "履歴書"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "レビューが必要です"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "提案内容を検討しました"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "右揃え"
@@ -2561,6 +2723,10 @@ msgstr "選択..."
msgid "Self-Host with Docker"
msgstr "Docker でセルフホスト"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "送信"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "パスワードリセットメールを送信"
msgid "Sending password reset email..."
msgstr "パスワードリセットメールを送信しています..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "リクエストを送信中"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "区切り線"
@@ -2708,6 +2878,10 @@ msgstr "サイドバーと整ったグリッドレイアウトを備えた 1 カ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "1段組、インライン3段組(ポジション-所属-ピリオド)。コンパクトでATSフレンドリー、アジアの履歴書規約(CN/JP/KR)に適しています。"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "1段組で、セクションの見出しはすべて大文字、各ページの上部には原色を使った罫線が入っています。経営幹部、コンサルタント、スタートアップ企業の履歴書に最適な洗練されたデザインです。"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "1 カラムレイアウトで、落ち着いた印象の真面目なデザイン。シニア職やエンタープライズレベルのポジションに適しています。"
@@ -2808,6 +2982,10 @@ msgstr "統計"
msgid "Stay"
msgstr "このまま"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "停止"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "強み"
@@ -2902,6 +3080,14 @@ msgstr "テキストカラー"
msgid "Thai"
msgstr "タイ語"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AIが提案した変更内容は、この履歴書にはもはや適用されません。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AIはプレビューできない提案を返しました。"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API キーを正常に削除しました。"
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "この API キーは削除後、データにアクセスできなくなります。この操作は取り消せません。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "アシスタントは提案を返す前に立ち止まった。"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "これは履歴書用の、URL 向けの名前です。"
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI プロバイダーからの応答によっては、数分かかる場合があります。ウィンドウを閉じたりページを再読み込みしたりしないでください。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "この提案書は古い情報です。アシスタントに最新の履歴書から再作成するよう依頼してください。"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "この履歴書はロックされているため、更新できません。"
@@ -3385,10 +3580,6 @@ msgstr "X(ツイッター)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "はい。Reactive Resume は複数の言語に対応しています。設定ページ、または右上の言語切り替えからお好みの言語を選択できます。もしご希望の言語が見つからない場合や、既存の翻訳を改善したい場合は、<0>Crowdin で翻訳に貢献<1>(新しいタブで開きます)</1></0>できます。"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "はい。すべてのテンプレートは完全にカスタマイズ可能です。色やフォント、余白を変更できるほか、カスタム CSS を記述して履歴書の見た目を完全にコントロールできます。"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "はい。Reactive Resume は完全に無料で、隠れたコストやプレミアムプラン、サブスクリプション料金は一切ありません。オープンソースであり、今後もずっと無料で提供されます。"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# ធាតុ}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# តួនាទី} other {# តួនាទី}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "សំណើ {0} ត្រូវបានពិនិត្យឡើងវិញ"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "បាន​ប្រាកដ! អ្នក​អាច​នាំចេញ​ប្រវត្តិរូប​របស់​អ្នក​ជា PDF ដោយ​ចុច​តែ​ម្ដង។ ឯកសារ PDF ដែលនាំចេញ​នឹង​រក្សា​ទុក​ទ្រង់ទ្រាយ និង​រចនាប័ទ្ម​ទាំង​អស់​របស់​អ្នក​ដូច​ដើម។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "ទទួលយក"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "ទទួលយកទាំងអស់"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "សំណើ​ដែល​បាន​ទទួល​យក"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "ចូលដំណើរការប្រវត្តិរូប និងទិន្នន័យរបស់អ្នកតាមកម្មវិធី ដោយប្រើ API។"
@@ -229,10 +246,38 @@ msgstr "បន្ថែម​ជួរដេក​នៅ​មុខ"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "បន្ទាប់​ពី"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "បានបិទការរួមបញ្ចូល AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "សំណើ AI ត្រូវបានអនុវត្ត។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "សំណើ AI ត្រូវបានបដិសេធ។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "សំណើ AI ត្រូវបានអនុវត្ត។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "សំណើ AI ត្រូវបានបដិសេធ។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "ជំនួយការប្រវត្តិរូបសង្ខេប AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -367,10 +412,22 @@ msgstr "ជំនាញ​រៀន"
msgid "Artificial Intelligence"
msgstr "បញ្ញាសិប្បនិម្មិត"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "ស្នើសុំការផ្លាស់ប្តូរប្រវត្តិរូបសង្ខេបដែលមានគោលដៅ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ស្នើសុំការផ្លាស់ប្តូរបន្តិចម្តងៗ"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "សមាមាត្រទ្រង់ទ្រាយ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "សំណើសុំជំនួយបរាជ័យ"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "មូលដ្ឋាន"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "គំរូ​ស្អាតៗ​ឲ្យ​ជ្រើសរើស ហើយ​នៅមាន​បន្ថែម​ទៀត​កំពុងមកដល់។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "មុន"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "បញ្ជី​មាន​គ្រាប់ចំណុច"
msgid "By the community, for the community."
msgstr "ដោយ​សហគមន៍ សម្រាប់​សហគមន៍។"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "តើ​ខ្ញុំ​អាច​ប្ដូរ​តាមបំណង​គំរូ​ទាំង​នេះ​បាន​ទេ?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "តើ​ខ្ញុំ​អាច​នាំចេញ​ប្រវត្តិរូប​របស់​ខ្ញុំ​ជា PDF បានទេ?"
@@ -576,6 +633,14 @@ msgstr "សម្អាត"
msgid "Click here to select a file to import"
msgstr "ចុច​ទីនេះ​ដើម្បី​ជ្រើស​ឯកសារ​មួយ​ដើម្បី​នាំចូល"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "បិទ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "បិទជំនួយការ AI"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "កូដ​ប្លុក"
@@ -622,6 +687,10 @@ msgstr "អះអាង"
msgid "Connect"
msgstr "តភ្ជាប់"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "ភ្ជាប់ និងផ្ទៀងផ្ទាត់អ្នកផ្តល់សេវា AI មុនពេលប្រើប្រាស់សំណើកែសម្រួលប្រវត្តិរូបសង្ខេប។"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ចម្លង​កូនសោ​សម្ងាត់​នេះ
msgid "Copy URL"
msgstr "ចម្លង URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "មិនអាចអនុវត្តសំណើ AI បានទេ។"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ផ្ដាច់"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "បដិសេធ"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ឯកសារ"
msgid "Don't have an account? <0/>"
msgstr "មិនមានគណនី? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "បរិច្ចាគ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "បរិច្ចាគ​ឲ្យ Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "បើក​ប្រើ 2FA"
msgid "Enable AI Features"
msgstr "បើក​ប្រើ​មុខងារ AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "បើកការរួមបញ្ចូល AI"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "បើក​ប្រើ​ការ​ផ្ទៀងផ្ទាត់​ពីរ​ជាន់"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ឧទាហរណ៍៖ សរសេរសេចក្តីសង្ខេបឡើងវិញ រឹតបន្តឹងចំណុចបទពិសោធន៍មួយ បន្ថែមរង្វាស់ ឬកែសម្រួលប្រវត្តិរូបសង្ខេបសម្រាប់ការពិពណ៌នាការងារ។"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ចេញពីអេក្រង់ពេញ"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "ម៉ូដែល"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "សកម្មភាពស្នើបន្ថែមទៀត"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ផ្លាស់ទី​ទៅ"
@@ -1982,6 +2075,10 @@ msgstr "ត្រូវតែចាប់ផ្តើមដោយ https://"
msgid "Name"
msgstr "ឈ្មោះ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "ត្រូវការការពិនិត្យឡើងវិញ"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepali"
@@ -2012,6 +2109,10 @@ msgstr "ពាក្យសម្ងាត់​ថ្មី"
msgid "New Section"
msgstr "ផ្នែក​ថ្មី"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "បន្ទាប់"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "គ្មាន​ការ​ផ្សពាណិជ្ជកម្ម គ្មាន​ការ​តាមដាន"
@@ -2061,11 +2162,19 @@ msgstr "ការថែទាំ​បន្ត"
msgid "Open"
msgstr "បើក"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "បើកជំនួយការ AI"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "បើក​កម្មវិធី​អ៊ីមែល"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ការរួមបញ្ចូលបើកចំហ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "បើកការកំណត់ការរួមបញ្ចូល"
@@ -2219,6 +2328,10 @@ msgstr "សូម​បញ្ចូល​ពាក្យសម្ងាត់
msgid "Please enter the URL you want to link to:"
msgstr "សូម​បញ្ចូល URL ដែល​អ្នក​ចង់​តភ្ជាប់​ទៅ៖"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "សូមជួយគាំទ្រគម្រោងនេះផង"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "តួនាទី"
msgid "Preferences"
msgstr "ចំណង់ចំណូលចិត្ត"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "កំពុងរៀបចំការផ្លាស់ប្តូរ"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "កំណត់ជាមុន"
@@ -2267,6 +2384,10 @@ msgstr "ចុច <0>{RETURN_KEY}</0> ឬ <1>{COMMA_KEY}</1> ដើម្បី
msgid "Press <0>Enter</0> to open"
msgstr "ចុច <0>Enter</0> ដើម្បីបើក"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "មុន"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ពណ៌​មូលដ្ឋាន"
@@ -2297,6 +2418,11 @@ msgstr "របារ​វឌ្ឍនភាព"
msgid "Projects"
msgstr "គម្រោង"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "សំណើ {0} នៃ {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "ការពារ​ប្រវត្តិរូប​របស់​អ្នក​ពី​ការ​ចូល​ដំណើរការ​ដោយ​មិន​បាន​អនុញ្ញាត ដោយ​ប្រើ​ពាក្យសម្ងាត់"
@@ -2319,6 +2445,10 @@ msgstr "អត្ថបទផ្សព្វផ្សាយ"
msgid "Publisher"
msgstr "អ្នកបោះពុម្ពផ្សាយ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "បំណះ JSON ឆៅ"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ទៅ​កាន់​ទំព័រ​ដើម"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ជា​គម្រោង​ឥតគិតថ្ល
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume ជា​កម្មវិធី​បង្កើត​ប្រវត្តិរូប​ឥតគិតថ្លៃ និង​បើក​ប្រភព ដែល​ធ្វើ​ឱ្យ​ដំណើរការ​បង្កើត បច្ចុប្បន្នភាព និង​ចែករំលែក​ប្រវត្តិរូប​របស់​អ្នក ក្លាយ​ជា​រឿង​ងាយ​ស្រួល។"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume គឺឥតគិតថ្លៃ និងជាប្រភពបើកចំហ។ ប្រសិនបើវាបានជួយអ្នក សូមពិចារណាបរិច្ចាគ។"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume គឺ​បើក​ប្រភព ផ្តោតលើ​ភាព​ឯកជន និង​ឥតគិតថ្លៃ​ទាំងស្រុង។ ខុស​ពី​កម្មវិធី​បង្កើត​ប្រវត្តិរូប​ផ្សេងៗ វា​មិន​បង្ហាញ​ពាណិជ្ជកម្ម មិន​តាមដាន​ទិន្នន័យ​របស់​អ្នក ហើយ​មិន​កំណត់​មុខងារ​ពីក្រោយ paywall ឡើយ។"
@@ -2380,6 +2514,18 @@ msgstr "ផ្ទៀងផ្ទាត់​ម្ដងទៀត"
msgid "Register New Device"
msgstr "ចុះឈ្មោះឧបករណ៍ថ្មី"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "បដិសេធ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "បដិសេធទាំងអស់"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "សំណើ​ត្រូវ​បាន​បដិសេធ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "ចាំពាក្យសម្ងាត់របស់អ្នក? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "កំពុង​ផ្ញើ​អ៊ីមែល​ផ្ទៀងផ
msgid "Reset"
msgstr "កំណត់​ឡើងវិញ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "កំណត់ការជជែកឡើងវិញ"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "កំណត់​ពាក្យសម្ងាត់​របស់​
msgid "Resetting your password..."
msgstr "កំពុង​កំណត់​ពាក្យសម្ងាត់​របស់​អ្នក​ឡើងវិញ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "ប្ដូរទំហំជំនួយការ AI"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "ធនធាន"
@@ -2463,6 +2617,14 @@ msgstr "ការវិភាគប្រវត្តិរូបបានបញ
msgid "Resumes"
msgstr "ប្រវត្តិរូប"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "តម្រូវ​ឱ្យ​មាន​ការ​ពិនិត្យ​ឡើង​វិញ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "សំណើដែលបានពិនិត្យ"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "តម្រង់​ស្ដាំ"
@@ -2561,6 +2723,10 @@ msgstr "ជ្រើសរើស..."
msgid "Self-Host with Docker"
msgstr "ដំឡើង​ផ្ទាល់​ខ្លួន​ដោយ​ប្រើ Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "ផ្ញើ"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "ផ្ញើ​អ៊ីមែល​កំណត់​ពាក្យស
msgid "Sending password reset email..."
msgstr "កំពុង​ផ្ញើ​អ៊ីមែល​កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "កំពុងផ្ញើសំណើ"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "បន្ទាត់​បំបែក"
@@ -2708,6 +2878,10 @@ msgstr "ជួរឈរ​តែមួយ មាន​របារ​បាត
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ប្លង់ជួរឈរតែមួយដែលមានបឋមកថាធាតុជាបីជួរឈរនៅក្នុងបន្ទាត់តែមួយ (មុខតំណែង · ស្ថាប័ន · រយៈពេល)៖ បង្រួម ងាយស្រួលសម្រាប់ ATS និងសមស្របសម្រាប់ទម្រង់ប្រវត្តិរូបបែបអាស៊ី (CN/JP/KR)។"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "ជួរឈរតែមួយដែលមានចំណងជើងផ្នែកអក្សរធំ និងបន្ទាត់កំពូលពណ៌ចម្បងនៅលើទំព័រនីមួយៗ។ ត្រូវបានរៀបចំយ៉ាងល្អសម្រាប់ប្រវត្តិរូបសង្ខេបសម្រាប់នាយកប្រតិបត្តិ ប្រឹក្សាយោបល់ ឬចាប់ផ្តើមអាជីវកម្ម។"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "ជួរឈរ​តែមួយ រូបរាង​រលោង និង​ផ្លូវការ​សម្រាប់​តំណែង​ជាន់​ខ្ពស់ ឬ​កម្រិត​សហគ្រាស។"
@@ -2808,6 +2982,10 @@ msgstr "ស្ថិតិ"
msgid "Stay"
msgstr "ស្ថិត"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "ឈប់"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "ចំណុចខ្លាំង"
@@ -2902,6 +3080,14 @@ msgstr "ពណ៌​អត្ថបទ"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "បញ្ញាសិប្បនិម្មិត (AI) បានស្នើការផ្លាស់ប្តូរមួយដែលលែងអនុវត្តចំពោះប្រវត្តិរូបសង្ខេបនេះទៀតហើយ។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "បញ្ញាសិប្បនិម្មិត (AI) បានប្រគល់សំណើមួយដែលមិនអាចមើលជាមុនបាន។"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "កូនសោ API ត្រូវ​បាន​លុប​ដោយ
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "បន្ទាប់​ពី​លុប កូនសោ API នេះ​នឹង​មិន​អាច​ចូល​ដំណើរការ​ទិន្នន័យ​របស់​អ្នក​បាន​ទៀត​ទេ។ សកម្មភាព​នេះ​មិន​អាច​មិនធ្វើវិញ​បានទេ។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "ជំនួយការ​បាន​ឈប់​មុន​ពេល​ប្រគល់​សំណើ​មួយ​វិញ។"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "នេះ​ជា​ឈ្មោះ​ងាយ​ស្រួល​ស
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "វា​អាច​ចំណាយ​ពេល​ពីរ​នាទី អាស្រ័យ​លើ​ការ​ឆ្លើយតប​របស់​អ្នកផ្តល់​សេវា AI។ សូម​កុំ​បិទ​បង្អួច​នេះ ឬ​ផ្ទុក​ទំព័រ​ឡើង​វិញ។"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "សំណើនេះហួសសម័យហើយ។ សូមស្នើសុំឱ្យជំនួយការបង្កើតវាឡើងវិញពីប្រវត្តិរូបសង្ខេបចុងក្រោយបំផុត។"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "ប្រវត្តិរូប​នេះ​ត្រូវ​បាន​ចាក់សោ ហើយ​មិន​អាច​បច្ចុប្បន្នភាព​បាន​ទេ។"
@@ -3385,10 +3580,6 @@ msgstr "X (ធ្វីតធ័រ)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "បាទ Reactive Resume អាច​ប្រើ​បាន​ជា​ភាសា​ច្រើន។ អ្នក​អាច​ជ្រើស​ភាសា​ដែល​អ្នក​ពេញចិត្ត​នៅលើ​ទំព័រ​ការកំណត់ ឬ​ដោយ​ប្រើ​កម្មវិធី​ប្ដូរ​ភាសា​នៅ​កូណឺ​ឆ្វេងលើ។ បើ​អ្នក​មិន​ឃើញ​ភាសា​របស់​អ្នក ឬ​ចង់​ធ្វើ​ឱ្យ​ការ​បកប្រែ​ដែល​មាន​ស្រាប់​ប្រសើរ​ឡើង អ្នក​អាច <0>ចូលរួម​បកប្រែនៅលើ Crowdin<1> (បើក​ក្នុង​ផ្ទាំង​ថ្មី)</1></0>។"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "បាទ! គំរូ​នីមួយៗ​អាច​ប្ដូរ​តាមបំណង​បាន​ទាំងស្រុង។ អ្នក​អាច​ប្តូរ​ពណ៌ ពុម្ពអក្សរ គម្លាត និង​សរសេរ CSS ផ្ទាល់ខ្លួន ដើម្បី​ត្រួតត្រា​លើ​រូបរាង​ប្រវត្តិរូប​របស់​អ្នក​បាន​ពេញលេញ។"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "បាទ! Reactive Resume គឺ​ឥតគិតថ្លៃ​ទាំងស្រុង គ្មាន​ចំនាយ​លាក់កំបាំង កម្រិត​ពិសេស ឬ​កម្រៃ​ជាវ​ប្រចាំខែ​ទេ។ វា​បើក​ប្រភព ហើយ​នឹង​នៅ​តែ​ឥតគិតថ្លៃ​ជា​រៀងរហូត។"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ಐಟಂ} other {# ಐಟಂಗಳು}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ಪಾತ್ರ} other {# ಪಾತ್ರಗಳು}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "ಖಂಡಿತ! ನೀವು ಒಂದೇ ಕ್ಲಿಕ್‌ನಿಂದ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು PDF ಗೆ ರಫ್ತು ಮಾಡಬಹುದು. ರಫ್ತುಗೊಂಡ PDF ದಲ್ಲಿನ ಎಲ್ಲಾ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮತ್ತು ಶೈಲಿಗಳನ್ನು ಅದು ನಿಖರವಾಗಿ ಉಳಿಸುತ್ತದೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "ಸ್ವೀಕರಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "ಎಲ್ಲವನ್ನೂ ಸ್ವೀಕರಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "ಪ್ರಸ್ತಾವನೆಯನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API ಬಳಸಿ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮೂಲಕ ಪ್ರವೇಶಿಸಿ."
@@ -229,10 +246,38 @@ msgstr "ಸಾಲನ್ನು ಮೊದಲು ಸೇರಿಸಿ"
msgid "Afrikaans"
msgstr "ಆಫ್ರಿಕಾನ್ಸ್"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "ನಂತರ"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI ಏಕೀಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI ಪ್ರಸ್ತಾವನೆಯನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI ಪ್ರಸ್ತಾವನೆಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI ರೆಸ್ಯೂಮ್ ಅಸಿಸ್ಟೆಂಟ್"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "ಅಲ್ಬೇನಿಯನ್"
@@ -367,10 +412,22 @@ msgstr "ಅಧ್ಯಯನದ ಕ್ಷೇತ್ರ"
msgid "Artificial Intelligence"
msgstr "ಕೃತಕ ಬುದ್ಧಿವಂತಿಕೆ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "ಉದ್ದೇಶಿತ ರೆಸ್ಯೂಮ್ ಬದಲಾವಣೆಗಾಗಿ ಕೇಳಿ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ಕ್ರಮೇಣ ಬದಲಾವಣೆಯನ್ನು ಕೇಳಿ"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ಆಕಾರ ಅನುಪಾತ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "ಸಹಾಯಕ ವಿನಂತಿ ವಿಫಲವಾಗಿದೆ"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "ಮೂಲಭೂತಗಳು"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ಆಯ್ಕೆ ಮಾಡಲು ಸುಂದರವಾದ ಮಾದರಿಗಳು, ಇನ್ನೂ ಬಹಳ ಬೇಗ ಬರುತ್ತಿವೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "ಮೊದಲು"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "ಬೆಂಗಾಲಿ"
@@ -462,10 +523,6 @@ msgstr "ಬುಲೆಟ್ ಪಟ್ಟ್ತಿ"
msgid "By the community, for the community."
msgstr "ಸಮುದಾಯದಿಂದ, ಸಮುದಾಯಕ್ಕಾಗಿ."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "ನಾನು ಮಾದರಿಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿಸಬಹುದೇ?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "ನಾನು ನನ್ನ ರೆಸ್ಯೂಮ್ ಅನ್ನು PDF ಗೆ ರಫ್ತು ಮಾಡಿಸಬಹುದೇ?"
@@ -576,6 +633,14 @@ msgstr "ತೆರವುಗೊಳಿಸಿ"
msgid "Click here to select a file to import"
msgstr "ಆಮದು ಮಾಡಲು ಕಡತವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "ಮುಚ್ಚಿ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI ಸಹಾಯಕವನ್ನು ಮುಚ್ಚಿ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "ಕೋಡ್ ಬ್ಲಾಕ್"
@@ -622,6 +687,10 @@ msgstr "ದೃಢೀಕರಿಸಿ"
msgid "Connect"
msgstr "ಕನೆಕ್ಟ್ ಮಾಡಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "ರೆಸ್ಯೂಮ್ ಎಡಿಟಿಂಗ್ ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಬಳಸುವ ಮೊದಲು AI ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ ಮತ್ತು ಪರಿಶೀಲಿಸಿ."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ಈ ಸೀಕ್ರೆಟ್ ಕೀ ಅನ್ನು ನಕಲಿಸಿ
msgid "Copy URL"
msgstr "URL ನಕಲಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "AI ಪ್ರಸ್ತಾವನೆಯನ್ನು ಅನ್ವಯಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ಡಿಸ್ಕನೆಕ್ಟ್ ಮಾಡಿ"
msgid "Discord"
msgstr "ಡಿಸ್ಕೋರ್ಡ್"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "ವಜಾಗೊಳಿಸಿ"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ದಾಖಲೀಕರಣ"
msgid "Don't have an account? <0/>"
msgstr "ಖಾತೆ ಇಲ್ಲವೇ? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "ದಾನ ಮಾಡಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್‌ಗೆ ದೇಣಿಗೆ ನೀಡಿ"
@@ -1094,6 +1175,10 @@ msgstr "2FA ಸಕ್ರಿಯಗೊಳಿಸಿ"
msgid "Enable AI Features"
msgstr "AI ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI ಏಕೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ಉದಾಹರಣೆಗಳು: ಸಾರಾಂಶವನ್ನು ಪುನಃ ಬರೆಯುವುದು, ಒಂದು ಅನುಭವದ ಬುಲೆಟ್ ಅನ್ನು ಬಿಗಿಗೊಳಿಸುವುದು, ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಸೇರಿಸುವುದು ಅಥವಾ ಕೆಲಸದ ವಿವರಣೆಗೆ ಅನುಗುಣವಾಗಿ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಅಳವಡಿಸುವುದು."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ಪೂರ್ಣ ಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "ಮಾದರಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "ಹೆಚ್ಚಿನ ಪ್ರಸ್ತಾವನೆ ಕ್ರಮಗಳು"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ಸ್ಥಳಾಂತರಿಸಿ"
@@ -1982,6 +2075,10 @@ msgstr "https:// ನಿಂದ ಪ್ರಾರಂಭವಾಗಬೇಕು"
msgid "Name"
msgstr "ಹೆಸರು"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "ನೇಪಾಳಿ"
@@ -2012,6 +2109,10 @@ msgstr "ಹೊಸ ಪಾಸ್ವರ್ಡ್"
msgid "New Section"
msgstr "ಹೊಸ ವಿಭಾಗ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "ಮುಂದೆ"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ಯಾವುದೇ ಜಾಹೀರಾತುಗಳಿಲ್ಲ, ಯಾವುದೇ ಟ್ರ್ಯಾಕಿಂಗ್ ಇಲ್ಲ"
@@ -2061,11 +2162,19 @@ msgstr "ನಿರಂತರ ನಿರ್ವಹಣೆ"
msgid "Open"
msgstr "ತೆರೆಯಿರಿ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "AI ಸಹಾಯಕವನ್ನು ತೆರೆಯಿರಿ"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ಇಮೇಲ್ ಕ್ಲೈಂಟ್ ತೆರೆಯಿರಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ಸಂಯೋಜನೆಗಳನ್ನು ತೆರೆಯಿರಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "ಸಂಯೋಜನೆಗಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ"
@@ -2219,6 +2328,10 @@ msgstr "ಮುಂದುವರಿಸಲು, ದಯವಿಟ್ಟು ರೆಸ್
msgid "Please enter the URL you want to link to:"
msgstr "ನೀವು ಲಿಂಕ್ ಮಾಡಲು ಬಯಸುವ URL ಅನ್ನು ನಮೂದಿಸಿ:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "ದಯವಿಟ್ಟು ಯೋಜನೆಯನ್ನು ಬೆಂಬಲಿಸಿ"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "ಸ್ಥಾನ"
msgid "Preferences"
msgstr "ಆದ್ಯತೆಗಳು"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "ಬದಲಾವಣೆಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "ಪ್ರೀಸೆಟ್‌ಗಳು"
@@ -2267,6 +2384,10 @@ msgstr "ಮುಖ್ಯವಚನವನ್ನಾ ಸೇರಿಸಲು ಅಥವ
msgid "Press <0>Enter</0> to open"
msgstr "ತೆರೆಯಲು <0>Enter</0> ಒತ್ತಿರಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "ಹಿಂದಿನದು"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ಪ್ರಾಥಮಿಕ ಬಣ್ಣ"
@@ -2297,6 +2418,11 @@ msgstr "ಪ್ರಗತಿ ಪಟ್ಟೆ"
msgid "Projects"
msgstr "ಯೋಜನೆಗಳು"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "ಪ್ರಸ್ತಾವನೆ {0} / {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "ಪಾಸ್‌ವರ್ಡ್‌ರಿಂದ ಅನಧಿಕೃತ ಪ್ರವೇಶದಿಂದ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ರಕ್ಷಿಸಿ"
@@ -2319,6 +2445,10 @@ msgstr "ಪ್ರಕಟನೆಗಳು"
msgid "Publisher"
msgstr "ಪ್ರಕಾಶಕರು"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "ಕಚ್ಚಾ JSON ಪ್ಯಾಚ್"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ಮುಖ್ಯ ಪುಟಕ್ಕೆ ಹೋಗಿ"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ಉಚಿತ ಮತ್ತು ಮುಕ್ತ-ಮೂಲ
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ರಚಿಸುವ, ನವೀಕರಿಸುವ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರಳಗೊಳಿಸುವ ಉಚಿತ ಮತ್ತು ಮುಕ್ತ-ಮೂಲ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕವಾಗಿದೆ."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್ ಉಚಿತ ಮತ್ತು ಮುಕ್ತ ಮೂಲವಾಗಿದೆ. ಇದು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಿದ್ದರೆ, ದಯವಿಟ್ಟು ದಾನ ಮಾಡುವುದನ್ನು ಪರಿಗಣಿಸಿ."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ಮುಕ್ತ-ಮೂಲ, ಗೌಪ್ಯತಿಗೆ ಪ್ರಾಧಾನ್ಯ ನೀಡುವ ಹಾಗು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ. ಇತರೆ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕರಿಗಿಂತ ವಿಭಿನ್ನವಾಗಿ, ಇದು ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುವುದಿಲ್ಲ, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದಿಲ್ಲ, ಅಥವಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪೇಯ್‌ವಾಲ್ ಹಿಂದೆ ಮಿತಿ ಮಾಡುವುದಿಲ್ಲ."
@@ -2380,6 +2514,18 @@ msgstr "ರಿಫ್ರೆಶ್ ಮಾಡಿ"
msgid "Register New Device"
msgstr "ಹೊಸ ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "ತಿರಸ್ಕರಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "ಎಲ್ಲವನ್ನೂ ತಿರಸ್ಕರಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "ತಿರಸ್ಕರಿಸಿದ ಪ್ರಸ್ತಾವನೆ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನೆನಪಿದೆಯೇ? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "ಪರಿಶೀಲನಾ ಇಮೇಲ್ ಅನ್ನು ಮರುಕಳ
msgid "Reset"
msgstr "ಮರುಹೊಂದಿಸಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "ಚಾಟ್ ಮರುಹೊಂದಿಸಿ"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರು
msgid "Resetting your password..."
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತಿದೆ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "AI ಸಹಾಯಕವನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಿ"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "ಸಂಪನ್ಮೂಲಗಳು"
@@ -2463,6 +2617,14 @@ msgstr "ರೆಸ್ಯೂಮ್ ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗ
msgid "Resumes"
msgstr "ರೆಸ್ಯೂಮೇ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "ಪರಿಶೀಲಿಸಿದ ಪ್ರಸ್ತಾವನೆಗಳು"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "ಬಲ ಸರಿಸು"
@@ -2561,6 +2723,10 @@ msgstr "ಆಯ್ಕೆಮಾಡಿ..."
msgid "Self-Host with Docker"
msgstr "ಡಾಕರ್ ಜೊತೆಗೆ ಸ್ವಯಂ ಹೋಸ್ಟ್"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "ಕಳುಹಿಸಿ"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಇಮ
msgid "Sending password reset email..."
msgstr "ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಇಮೇಲ್ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "ವಿಭಜಕ"
@@ -2708,6 +2878,10 @@ msgstr "ಒಂದು ಕಾಲಮ್, ಸೈಡ್‌ಬಾರ್ ಮತ್ತ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ಒಂದು ಕಾಲಮ್ ವಿನ್ಯಾಸ; ಇನ್‌ಲೈನ್ ಮೂರು-ಕಾಲಮ್ ಎಂಟ್ರಿ ಹೆಡರ್‌ೊಂದಿಗೆ (ಹುದ್ದೆ · ಸಂಸ್ಥೆ · ಅವಧಿ), ಸಂಕ್ಷಿಪ್ತ ಮತ್ತು ATS ಗೆ ಅನುಕೂಲಕರ, ಏಷ್ಯನ್ ರೆಸ್ಯೂಮ್ ಪದ್ಧತಿಗಳಿಗೆ (CN/JP/KR) ಚೆನ್ನಾಗಿ ಸೂಕ್ತವಾಗಿದೆ."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "ಪ್ರತಿ ಪುಟದಲ್ಲಿ ದೊಡ್ಡಕ್ಷರ ವಿಭಾಗ ಶೀರ್ಷಿಕೆಗಳು ಮತ್ತು ಪ್ರಾಥಮಿಕ-ಬಣ್ಣದ ಮೇಲ್ಭಾಗದ ನಿಯಮವನ್ನು ಹೊಂದಿರುವ ಏಕ-ಕಾಲಮ್; ಕಾರ್ಯನಿರ್ವಾಹಕ, ಸಲಹಾ ಅಥವಾ ಆರಂಭಿಕ ರೆಸ್ಯೂಮ್‌ಗಳಿಗಾಗಿ ಪಾಲಿಶ್ ಮಾಡಲಾಗಿದೆ."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "ಒಂದು ಕಾಲಮ್; ಹಿರಿಯ ಅಥವಾ ಎಂಟರ್‌ಪ್ರೈಸ್-ಮಟ್ಟದ ಹುದ್ದೆಗಳಿಗಾಗಿ ಮೆರಗು ಮತ್ತು ಗಂಭೀರ."
@@ -2808,6 +2982,10 @@ msgstr "ಅಂಕಿಅಂಶಗಳು"
msgid "Stay"
msgstr "ಇರಿ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "ನಿಲ್ಲಿಸಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "ಬಲಗಳು"
@@ -2902,6 +3080,14 @@ msgstr "ಅಕ್ಷರದ ಬಣ್ಣ"
msgid "Thai"
msgstr "ಥಾಯ್"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "ಈ ರೆಸ್ಯೂಮ್‌ಗೆ ಇನ್ನು ಮುಂದೆ ಅನ್ವಯಿಸದ ಬದಲಾವಣೆಯನ್ನು AI ಪ್ರಸ್ತಾಪಿಸಿದೆ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "ಪೂರ್ವವೀಕ್ಷಣೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಪ್ರಸ್ತಾವನೆಯನ್ನು AI ಹಿಂತಿರುಗಿಸಿತು."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API ಕೀಲಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿ
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "ಅಳಿಸಿದ ನಂತರ ಈ API ಕೀಲಿಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಇನ್ನೂ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಈ ಕ್ರಿಯೆಯನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "ಪ್ರಸ್ತಾವನೆಯನ್ನು ಹಿಂದಿರುಗಿಸುವ ಮೊದಲು ಸಹಾಯಕ ನಿಲ್ಲಿಸಿದನು."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "ಇದು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ಗಾಗಿ URL
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "ಇದು AI ಪ್ರೊವೈಡರ್‌ನ ಪ್ರತಿಕ್ರಿಯೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿ ಕೆಲ ನಿಮಿಷಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ದಯವಿಟ್ಟು ವಿಂಡೋ ಅನ್ನು ಮುಚ್ಚಬೇಡಿ ಅಥವಾ ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಬೇಡಿ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "ಈ ಪ್ರಸ್ತಾವನೆ ಹಳೆಯದಾಗಿದೆ. ಇತ್ತೀಚಿನ ರೆಸ್ಯೂಮ್‌ನಿಂದ ಇದನ್ನು ಪುನರುತ್ಪಾದಿಸಲು ಸಹಾಯಕರನ್ನು ಕೇಳಿ."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "ಈ ರೆಸ್ಯೂಮ್ ಲಾಕ್ ಆಗಿದೆ ಮತ್ತು ಅದನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
@@ -3385,10 +3580,6 @@ msgstr "ಎಕ್ಸ್ (ಟ್ವಿಟರ್)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "ಹೌದು, Reactive Resume ಅನೇಕ ಭಾಷೆಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ. ನೀವು ಸೆಟ್ಟಿಂಗ್ಸ್ ಪುಟದಲ್ಲಿ ಅಥವಾ ಮೇಲ್ಭಾಗದ ಬಲ ಮೂಲೆಯಲ್ಲಿರುವ ಭಾಷಾ ಸ್ವಿಚರ್ ಬಳಸಿ ನಿಮ್ಮ ಇಷ್ಟದ ಭಾಷೆಯನ್ನು ಆರಿಸಬಹುದು. ನಿಮ್ಮ ಭಾಷೆ ಕಾಣದಿದ್ದರೆ ಅಥವಾ ಇತ್ತೀಚಗಿನ ಅನುವಾದಗಳನ್ನು ಸುಧಾರಿಸಲು ಬಯಸಿದರೆ, ನೀವು <0>Crowdin ನಲ್ಲಿ ಅನುವಾದಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡಬಹುದು<1> (ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "ಹೌದು! ಪ್ರತಿ ಮಾದರಿಯು ಸಂಪೂರ್ಣವಾಗಿ ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದಾಗಿದೆ. ನೀವು ಬಣ್ಣಗಳು, ಫಾಂಟ್‌ಗಳು, ಅಂತರ ಮತ್ತು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ನ ರೂಪುರೇಷೆಯ ಮೇಲೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಕಸ್ಟಮ್ CSS ಕೂಡ ಬರೆಯಬಹುದು."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "ಹೌದು! Reactive Resume ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿ ಬಳಸಬಹುದು, ಯಾವುದೇ ಅಡಕ ವೆಚ್ಚಗಳು, ಪ್ರೀಮಿಯಂ ಹಂತಗಳು ಅಥವಾ ಚಂದಾ ಶುಲ್ಕಗಳಿಲ್ಲದೇ. ಇದು ಮುಕ್ತ-ಮೂಲವಾಗಿದ್ದು ಯಾವಾಗಲೂ ಉಚಿತವಾಗಿಯೇ ಉಳಿಯುತ್ತದೆ."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:05\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {#개 항목}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, other {# 개 역할}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} 제안 검토 완료"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "물론 가능합니다! 한 번의 클릭으로 이력서를 PDF로 내보낼 수 있습니다. 내보낸 PDF에는 모든 서식과 스타일이 그대로 유지됩니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "수용하다"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "모두 수락"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "제안서가 승인되었습니다"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API를 사용해 이력서와 데이터를 프로그래밍 방식으로 사용할 수 있습니다."
@@ -229,10 +246,38 @@ msgstr "앞에 행 추가"
msgid "Afrikaans"
msgstr "아프리칸스어"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "후에"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI 통합 기능이 비활성화되었습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI 관련 제안이 접수되었습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI 관련 제안이 거부되었습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI 관련 제안이 적용되었습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI 관련 제안이 거부되었습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI 이력서 도우미"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "알바니아어"
@@ -367,10 +412,22 @@ msgstr "연구 분야"
msgid "Artificial Intelligence"
msgstr "인공지능"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "이력서 수정 요청을 구체적으로 해주세요..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "점진적인 변화를 요구하세요"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "가로세로 비율"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "보조 요청이 실패했습니다."
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "기본 사항"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "선택할 수 있는 아름다운 템플릿이 준비되어 있으며, 앞으로 더 추가될 예정입니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "전에"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "벵골어"
@@ -462,10 +523,6 @@ msgstr "글머리 기호 목록"
msgid "By the community, for the community."
msgstr "커뮤니티에 의해, 커뮤니티를 위해."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "템플릿을 사용자 지정할 수 있나요?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "이력서를 PDF로 내보낼 수 있나요?"
@@ -576,6 +633,14 @@ msgstr "지우기"
msgid "Click here to select a file to import"
msgstr "가져올 파일을 선택하려면 여기를 클릭하세요"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "닫기"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI 비서 닫기"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "코드 블록"
@@ -622,6 +687,10 @@ msgstr "확인"
msgid "Connect"
msgstr "연결"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "이력서 편집 제안을 사용하기 전에 AI 제공업체를 연결하고 검증하세요."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "이 비밀 키를 복사해 애플리케이션에 붙여넣어 데이터
msgid "Copy URL"
msgstr "URL 복사"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "AI 제안을 적용할 수 없었습니다."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "연결 해제"
msgid "Discord"
msgstr "디스코드"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "해고하다"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "문서"
msgid "Don't have an account? <0/>"
msgstr "계정이 없으신가요? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "기부하세요"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume에 기부하기"
@@ -1094,6 +1175,10 @@ msgstr "2단계 인증 활성화"
msgid "Enable AI Features"
msgstr "AI 기능 활성화"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI 통합 활성화"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "2단계 인증 활성화"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "예시: 요약 내용을 다시 작성하거나, 특정 경력 항목을 더 간결하게 다듬거나, 성과 지표를 추가하거나, 채용 공고에 맞춰 이력서를 수정하세요."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "전체 화면 종료"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "모델"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "추가 제안 조치"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "이동"
@@ -1982,6 +2075,10 @@ msgstr "https:// 으로 시작해야 합니다."
msgid "Name"
msgstr "이름"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "검토 필요"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "네팔어"
@@ -2012,6 +2109,10 @@ msgstr "새 비밀번호"
msgid "New Section"
msgstr "새 섹션"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "다음"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "광고 없음, 추적 없음"
@@ -2061,11 +2162,19 @@ msgstr "지속적인 유지 관리"
msgid "Open"
msgstr "열기"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "오픈 AI 어시스턴트"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "이메일 클라이언트 열기"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "오픈 통합"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "통합 설정 열기"
@@ -2219,6 +2328,10 @@ msgstr "이력서 소유자가 공유한 비밀번호를 입력해 계속 진행
msgid "Please enter the URL you want to link to:"
msgstr "링크할 URL을 입력하세요:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "이 프로젝트를 지원해 주세요."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "직책"
msgid "Preferences"
msgstr "환경 설정"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "변경 준비 중"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "사전 설정"
@@ -2267,6 +2384,10 @@ msgstr "현재 키워드를 추가하거나 저장하려면 <0>{RETURN_KEY}</0>
msgid "Press <0>Enter</0> to open"
msgstr "<0>Enter</0> 키를 눌러 열기"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "이전"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "기본 색상"
@@ -2297,6 +2418,11 @@ msgstr "진행률 바"
msgid "Projects"
msgstr "프로젝트"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{0} 의 제안 {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "비밀번호로 이력서를 보호해, 허가되지 않은 접근을 막으세요"
@@ -2319,6 +2445,10 @@ msgstr "출판물"
msgid "Publisher"
msgstr "발행인"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "원시 JSON 패치"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - 홈페이지로 이동"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume는 애정을 담아 만든 무료 오픈 소스 프로
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume는 이력서 작성, 업데이트 및 공유를 간단하게 할 수 있는 무료 오픈 소스 이력서 작성 도구입니다."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume는 무료 오픈 소스 소프트웨어입니다. 도움이 되셨다면 기부를 고려해 주세요."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume는 오픈 소스, 개인정보 보호 중심, 완전 무료 서비스입니다. 다른 이력서 작성 도구와 달리 광고를 표시하지 않고, 데이터를 추적하지 않으며, 기능을 페이월 뒤에 숨기지도 않습니다."
@@ -2380,6 +2514,18 @@ msgstr "새로고침"
msgid "Register New Device"
msgstr "새 장치 등록"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "거부하다"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "모두 거부하세요"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "제안이 거절되었습니다"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "비밀번호가 기억나시나요? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "인증 이메일을 다시 보내는 중입니다..."
msgid "Reset"
msgstr "초기화"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "채팅 초기화"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "비밀번호 재설정"
msgid "Resetting your password..."
msgstr "비밀번호를 재설정하는 중입니다..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "AI 비서 크기 조정"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "리소스"
@@ -2463,6 +2617,14 @@ msgstr "이력서 분석 완료."
msgid "Resumes"
msgstr "이력서"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "검토 필요"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "검토된 제안서"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "오른쪽 정렬"
@@ -2561,6 +2723,10 @@ msgstr "선택..."
msgid "Self-Host with Docker"
msgstr "Docker로 자체 호스팅"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "보내다"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "비밀번호 재설정 이메일 보내기"
msgid "Sending password reset email..."
msgstr "비밀번호 재설정 이메일을 보내는 중입니다..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "요청 전송"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "구분선"
@@ -2708,6 +2878,10 @@ msgstr "사이드바와 깔끔한 그리드 레이아웃을 갖춘 단일 열
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "인라인 3열 항목 헤더(직위-조직-기간)가 있는 단일 열로, 컴팩트하고 ATS 친화적이며 아시아 이력서 양식(CN/JP/KR)에 적합합니다."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "각 페이지 상단에 기본 색상의 선이 있고, 섹션 제목은 대문자로 된 단일 열 레이아웃입니다. 임원, 컨설턴트 또는 스타트업 이력서에 적합하도록 세련되게 디자인되었습니다."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "단일 열 구성에 세련되고 진중한 느낌을 더한 템플릿으로, 시니어 혹은 엔터프라이즈급 포지션에 적합합니다."
@@ -2808,6 +2982,10 @@ msgstr "통계"
msgid "Stay"
msgstr "머물기"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "멈추다"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "강점"
@@ -2902,6 +3080,14 @@ msgstr "텍스트 색상"
msgid "Thai"
msgstr "태국어"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI가 제안한 변경 사항은 더 이상 이 이력서에 적용되지 않습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI가 미리 볼 수 없는 제안을 반환했습니다."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API 키가 성공적으로 삭제되었습니다."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API 키를 삭제하면 더 이상 데이터에 액세스할 수 없습니다. 이 작업은 되돌릴 수 없습니다."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "비서는 제안서를 돌려주기 전에 잠시 멈칫했다."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "이것은 이력서에 사용할 URL 친화적인 이름입니다."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI 제공자의 응답 속도에 따라 몇 분 정도 걸릴 수 있습니다. 창을 닫거나 페이지를 새로 고치지 마세요."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "이 제안서는 오래된 것입니다. 담당자에게 최신 이력서를 바탕으로 다시 작성해 달라고 요청하세요."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "이 이력서는 잠겨 있어 수정할 수 없습니다."
@@ -3385,10 +3580,6 @@ msgstr "X (트위터)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "네, Reactive Resume는 여러 언어로 제공됩니다. 설정 페이지나 오른쪽 상단의 언어 전환기를 사용해 원하는 언어를 선택할 수 있습니다. 원하는 언어가 없거나 기존 번역을 개선하고 싶다면, <0>Crowdin에서 번역에 기여해 보세요<1> (새 탭에서 열림)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "네! 모든 템플릿은 완전히 사용자 지정할 수 있습니다. 색상, 글꼴, 간격을 변경하고, 사용자 지정 CSS를 작성해 이력서의 외형을 완전히 제어할 수 있습니다."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "네! Reactive Resume는 숨은 비용, 프리미엄 플랜, 구독료 없이 완전히 무료로 사용할 수 있습니다. 오픈 소스이며 앞으로도 계속 무료로 제공됩니다."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:05\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elementas} few {# elementai} many {# elementų} other
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# vaidmuo} few {# vaidmenys} many {# vaidmenų} other {# vaidmenys}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} peržiūrėti pasiūlymai"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Žinoma! Galite vienu spustelėjimu eksportuoti savo gyvenimo aprašymą į PDF. Eksportuotas PDF išsaugo visą jūsų formatavimą ir stilių."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Priimti"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Priimti visus"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Priimtas pasiūlymas"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Programiškai pasiekite savo gyvenimo aprašymus ir duomenis naudodami API."
@@ -229,10 +246,38 @@ msgstr "Pridėti eilutę prieš"
msgid "Afrikaans"
msgstr "Afrikanso"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Po"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Dirbtinio intelekto integracija išjungta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Pritaikytas dirbtinio intelekto pasiūlymas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "DI pasiūlymas atmestas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Pritaikyti dirbtinio intelekto pasiūlymai."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Dirbtinio intelekto pasiūlymai atmesti."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Dirbtinio intelekto gyvenimo aprašymo asistentas"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanų"
@@ -367,10 +412,22 @@ msgstr "Studijų sritis"
msgid "Artificial Intelligence"
msgstr "Dirbtinis intelektas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Paprašykite tikslinio gyvenimo aprašymo pakeitimo..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Paprašykite laipsniško pakeitimo"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Vaizdo santykis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Asistento užklausa nepavyko"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Pagrindai"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Gražūs šablonai, iš kurių galima rinktis, ir dar daugiau pakeliui."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Prieš"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalų"
@@ -462,10 +523,6 @@ msgstr "Suženklintas sąrašas"
msgid "By the community, for the community."
msgstr "Bendruomenės ir bendruomenei."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Ar galiu pritaikyti šablonus?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Ar galiu eksportuoti savo gyvenimo aprašymą į PDF?"
@@ -576,6 +633,14 @@ msgstr "Skaidrus"
msgid "Click here to select a file to import"
msgstr "Spustelėkite čia, kad pasirinktumėte importuojamą failą"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Uždaryti"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Uždaryti DI asistentą"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kodo blokas"
@@ -622,6 +687,10 @@ msgstr "Patvirtinti"
msgid "Connect"
msgstr "Prisijungti"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Prieš naudodami gyvenimo aprašymo redagavimo pasiūlymus, prisijunkite prie dirbtinio intelekto teikėjo ir jį patikrinkite."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Nukopijuokite šį slaptą raktą ir naudokite jį savo programose duome
msgid "Copy URL"
msgstr "Kopijuoti URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nepavyko pritaikyti dirbtinio intelekto pasiūlymo."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Atsijungti"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Atmesti"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentacija"
msgid "Don't have an account? <0/>"
msgstr "Neturite paskyros? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Paaukoti"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Paaukoti „Reactive Resume“"
@@ -1094,6 +1175,10 @@ msgstr "Įjungti 2FA"
msgid "Enable AI Features"
msgstr "Įjungti DI funkcijas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Įgalinti dirbtinio intelekto integraciją"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Įjungti dviejų veiksnių tapatumo patvirtinimą"
@@ -1162,6 +1247,10 @@ msgstr "Viskas, ką čia įvedate, saugoma vietoje jūsų naršyklėje. Jūsų d
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Pavyzdžiai: perrašykite santrauką, sugriežtinkite vieną patirties punktą, pridėkite metrikų arba pritaikykite gyvenimo aprašymą pareigybės aprašymui."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Išeiti iš viso ekrano"
@@ -1956,6 +2045,10 @@ msgstr "\"Microsoft Word"
msgid "Model"
msgstr "Modelis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Daugiau pasiūlymų veiksmų"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Perkelti į"
@@ -1982,6 +2075,10 @@ msgstr "Turi prasidėti nuo https://"
msgid "Name"
msgstr "Pavadinimas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Reikia peržiūrėti"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalų"
@@ -2012,6 +2109,10 @@ msgstr "Naujas slaptažodis"
msgid "New Section"
msgstr "Naujas skyrius"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Kitas"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Be reklamų, be sekimo"
@@ -2061,11 +2162,19 @@ msgstr "Nuolatinė priežiūra"
msgid "Open"
msgstr "Atidaryti"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Atidaryti dirbtinio intelekto asistentą"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Atidaryti el. pašto programą"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Atviros integracijos"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Atidarykite Integracijos nustatymai"
@@ -2219,6 +2328,10 @@ msgstr "Norėdami tęsti, įveskite gyvenimo aprašymo savininko su jumis pasida
msgid "Please enter the URL you want to link to:"
msgstr "Įveskite URL, su kuriuo norite susieti:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Prašome paremti projektą"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Pareigos"
msgid "Preferences"
msgstr "Nustatymai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Ruošiami pakeitimai"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Išankstiniai nustatymai"
@@ -2267,6 +2384,10 @@ msgstr "Paspauskite <0>{RETURN_KEY}</0> arba <1>{COMMA_KEY}</1>, kad pridėtumė
msgid "Press <0>Enter</0> to open"
msgstr "Paspauskite <0>Enter</0>, kad atidarytumėte"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Ankstesnis"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Pagrindinė spalva"
@@ -2297,6 +2418,11 @@ msgstr "Progreso juosta"
msgid "Projects"
msgstr "Projektai"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Pasiūlymas {0} iš {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Apsaugokite savo gyvenimo aprašymą slaptažodžiu nuo neteisėtos prieigos"
@@ -2319,6 +2445,10 @@ msgstr "Publikacijos"
msgid "Publisher"
msgstr "Leidėjas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Neapdorotas JSON pataisymas"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "„Reactive Resume“ – eiti į pagrindinį puslapį"
@@ -2340,6 +2470,10 @@ msgstr "„Reactive Resume“ yra nemokamas atvirojo kodo projektas, sukurtas su
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "„Reactive Resume“ – nemokama atvirojo kodo gyvenimo aprašymų kūrimo priemonė, supaprastinanti gyvenimo aprašymo kūrimo, atnaujinimo ir bendrinimo procesą."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "„Reactive Resume“ yra nemokamas ir atvirojo kodo. Jei jis jums padėjo, apsvarstykite galimybę paaukoti."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "„Reactive Resume“ yra atvirojo kodo, orientuota į privatumą ir visiškai nemokama. Skirtingai nei kiti gyvenimo aprašymų kūrėjai, ji nerodo reklamų, nerenka jūsų duomenų ir neapriboja funkcijų už mokamos sienos."
@@ -2380,6 +2514,18 @@ msgstr "Perkrauti"
msgid "Register New Device"
msgstr "Naujo įrenginio registravimas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Atmesti"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Atmesti viską"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Atmestas pasiūlymas"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Prisimenate slaptažodį? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Iš naujo siunčiamas patvirtinimo el. laiškas..."
msgid "Reset"
msgstr "Nustatyti iš naujo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Iš naujo nustatyti pokalbių langą"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Atkurkite slaptažodį"
msgid "Resetting your password..."
msgstr "Atstatomas slaptažodis..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Keisti dirbtinio intelekto asistento dydį"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ištekliai"
@@ -2463,6 +2617,14 @@ msgstr "Baigta gyvenimo aprašymo analizė."
msgid "Resumes"
msgstr "Gyvenimo aprašymai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Reikalinga peržiūra"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Peržiūrėti pasiūlymai"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Lygiuoti dešinėje"
@@ -2561,6 +2723,10 @@ msgstr "Pasirinkite..."
msgid "Self-Host with Docker"
msgstr "Savarankiškas talpinimas naudojant Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Siųsti"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Siųsti slaptažodžio atkūrimo el. laišką"
msgid "Sending password reset email..."
msgstr "Siunčiamas slaptažodžio atkūrimo el. laiškas..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Siunčiama užklausa"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Skirtukas"
@@ -2708,6 +2878,10 @@ msgstr "Vienas stulpelis su šonine juosta ir švariu tinklelio išdėstymu; uni
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Vieno stulpelio su trijų stulpelių įvesties antraštėmis (pareigos - organizacija - taškas); kompaktiškas ir patogus ATS, gerai pritaikytas Azijos šalių CV konvencijoms (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Vieno stulpelio su didžiosiomis raidėmis rašomomis skyrių antraštėmis ir pagrindinės spalvos viršutine linija kiekviename puslapyje; puikiai tinka vadovų, konsultavimo ar startuolių gyvenimo aprašymams."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Vienas stulpelis; solidus ir rimtas vyresnio ar aukšto lygio pareigoms."
@@ -2808,6 +2982,10 @@ msgstr "Statistika"
msgid "Stay"
msgstr "Likti"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Stipriosios pusės"
@@ -2902,6 +3080,14 @@ msgstr "Teksto spalva"
msgid "Thai"
msgstr "Tajų"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Dirbtinis intelektas pasiūlė pakeitimą, kuris šiam gyvenimo aprašymui nebetaikomas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Dirbtinis intelektas pateikė pasiūlymą, kurio nebuvo galima peržiūrėti."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API raktas sėkmingai ištrintas."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Po ištrynimo šis API raktas nebegalės pasiekti jūsų duomenų. Šio veiksmo anuliuoti neįmanoma."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistentas sustojo prieš atsakydamas pasiūlymu."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Tai URL draugiškas jūsų gyvenimo aprašymo pavadinimas."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Tai gali užtrukti kelias minutes, priklausomai nuo DI tiekėjo atsako. Neuždarykite lango ir neatnaujinkite puslapio."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Šis pasiūlymas pasenęs. Paprašykite asistento jį iš naujo sukurti iš naujausio gyvenimo aprašymo."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Šis gyvenimo aprašymas užrakintas ir negali būti atnaujintas."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Taip, „Reactive Resume“ prieinama keliomis kalbomis. Galite pasirinkti pageidaujamą kalbą nustatymų puslapyje arba naudoti kalbos perjungiklį viršutiniame dešiniajame kampe. Jei nematote savo kalbos arba norite patobulinti esamus vertimus, galite <0>prisidėti prie vertimų „Crowdin“<1> (atidaro naujame skirtuke)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Taip! Kiekvienas šablonas visiškai pritaikomas. Galite keisti spalvas, šriftus, tarpelius ir net rašyti pasirinktinį CSS, kad visiškai valdytumėte savo gyvenimo aprašymo išvaizdą."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Taip! „Reactive Resume“ visiškai nemokama naudoti – be paslėptų kainų, „premium“ lygių ar prenumeratos mokesčių. Ji yra atvirojo kodo ir visada tokia išliks."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, zero {# ierakstu} one {# ieraksts} other {# ieraksti}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, zero {# lomas} one {# loma} other {# lomas}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} pārskatītie priekšlikumi"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Protams! Jūs varat eksportēt savu CV uz PDF ar vienu klikšķi. Eksportētais PDF pilnībā saglabā visu jūsu formatējumu un stilu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Pieņemt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Pieņemt visus"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Akceptēts priekšlikums"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Piekļūstiet saviem CV un datiem programmatiski, izmantojot API."
@@ -229,10 +246,38 @@ msgstr "Pievienot rindu pirms"
msgid "Afrikaans"
msgstr "Afrikandu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Pēc"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "MI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Mākslīgā intelekta integrācija ir atspējota"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Mākslīgā intelekta priekšlikums ir piemērots."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI priekšlikums noraidīts."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Piemēroti mākslīgā intelekta priekšlikumi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Mākslīgā intelekta priekšlikumi noraidīti."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Mākslīgā intelekta CV palīgs"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albāņu"
@@ -367,10 +412,22 @@ msgstr "Studiju joma"
msgid "Artificial Intelligence"
msgstr "Mākslīgais intelekts"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Pieprasiet mērķtiecīgu CV maiņu..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Lūdziet pakāpeniskas izmaiņas"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporcijas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Asistenta pieprasījums neizdevās."
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Pamatinformācija"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Skaistas veidnes, no kurām izvēlēties, un vēl vairāk drīzumā."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Pirms"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengāļu"
@@ -462,10 +523,6 @@ msgstr "Aizzīmju saraksts"
msgid "By the community, for the community."
msgstr "No kopienas kopienai."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Vai varu pielāgot veidnes?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Vai varu eksportēt savu CV uz PDF?"
@@ -576,6 +633,14 @@ msgstr "Skaidrs"
msgid "Click here to select a file to import"
msgstr "Noklikšķiniet šeit, lai izvēlētos importējamo failu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Aizvērt"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Aizvērt mākslīgā intelekta palīgu"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Koda bloks"
@@ -622,6 +687,10 @@ msgstr "Apstiprināt"
msgid "Connect"
msgstr "Savienot"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Pirms CV rediģēšanas priekšlikumu izmantošanas izveidojiet savienojumu ar mākslīgā intelekta pakalpojumu sniedzēju un pārbaudiet to."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Nokopējiet šo slepeno atslēgu un izmantojiet to savās lietotnēs, la
msgid "Copy URL"
msgstr "Kopēt URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nevarēja lietot mākslīgā intelekta priekšlikumu."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Atvienot"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Noraidīt"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentācija"
msgid "Don't have an account? <0/>"
msgstr "Nav konta? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Ziedot"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Ziedot Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Iespējot 2FA"
msgid "Enable AI Features"
msgstr "Iespējot MI funkcijas"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Iespējot mākslīgā intelekta integrāciju"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Iespējot divu faktoru autentifikāciju"
@@ -1162,6 +1247,10 @@ msgstr "Viss, ko ievadāt šeit, tiek glabāts lokāli jūsu pārlūkprogrammā.
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Piemēri: pārrakstīt kopsavilkumu, sašaurināt vienu pieredzes aizzīmi, pievienot rādītājus vai pielāgot CV amata aprakstam."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Iziet no pilnekrāna"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modelis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Vairāk priekšlikumu darbību"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Pārvietot uz"
@@ -1982,6 +2075,10 @@ msgstr "Jāuzsāk ar https://"
msgid "Name"
msgstr "Nosaukums"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Nepieciešama pārskatīšana"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepāļu"
@@ -2012,6 +2109,10 @@ msgstr "Jaunā parole"
msgid "New Section"
msgstr "Jauna sadaļa"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Nākamais"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Bez reklāmām, bez izsekošanas"
@@ -2061,11 +2162,19 @@ msgstr "Nepārtraukta uzturēšana"
msgid "Open"
msgstr "Atvērt"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Atvērt AI palīgu"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Atvērt e-pasta klientu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Atvērtās integrācijas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Atvērt Integrāciju iestatījumi"
@@ -2219,6 +2328,10 @@ msgstr "Lūdzu, ievadiet paroli, ko ar jums kopīgoja CV īpašnieks, lai turpin
msgid "Please enter the URL you want to link to:"
msgstr "Lūdzu, ievadiet URL, uz kuru vēlaties izveidot saiti:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Lūdzu, atbalstiet projektu"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Amats"
msgid "Preferences"
msgstr "Preferences"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Izmaiņu sagatavošana"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Sākotnējie iestatījumi"
@@ -2267,6 +2384,10 @@ msgstr "Nospiediet <0>{RETURN_KEY}</0> vai <1>{COMMA_KEY}</1>, lai pievienotu va
msgid "Press <0>Enter</0> to open"
msgstr "Nospiediet <0>Enter</0>, lai atvērtu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Iepriekšējais"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primārā krāsa"
@@ -2297,6 +2418,11 @@ msgstr "Progresa josla"
msgid "Projects"
msgstr "Projekti"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Priekšlikums {0} no {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Aizsargājiet savu CV no nesankcionētas piekļuves ar paroli"
@@ -2319,6 +2445,10 @@ msgstr "Publikācijas"
msgid "Publisher"
msgstr "Izdevējs"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Neapstrādāts JSON ielāps"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - doties uz sākumlapu"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ir bezmaksas un atvērtā pirmkoda projekts, kas veidots
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume ir bezmaksas un atvērtā pirmkoda CV veidotājs, kas vienkāršo jūsu CV izveides, atjaunināšanas un kopīgošanas procesu."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive CV ir bezmaksas un atvērtā koda resurss. Ja tas jums ir palīdzējis, lūdzu, apsveriet iespēju ziedot."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ir atvērtā pirmkoda, uz privātumu vērsts un pilnīgi bezmaksas. Atšķirībā no citiem CV veidotājiem tas nerāda reklāmas, neizseko jūsu datus un neierobežo funkcijas ar maksas sienu."
@@ -2380,6 +2514,18 @@ msgstr "Atsvaidzināt"
msgid "Register New Device"
msgstr "Reģistrēt jaunu ierīci"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Noraidīt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Noraidīt visus"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Noraidīts priekšlikums"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Atceraties paroli? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Atkārtoti nosūta verifikācijas e-pastu..."
msgid "Reset"
msgstr "Atiestatīt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Atiestatīt tērzēšanu"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Atiestatīt paroli"
msgid "Resetting your password..."
msgstr "Tiek atiestatīta jūsu parole..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Mainīt AI palīga izmēru"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resursi"
@@ -2463,6 +2617,14 @@ msgstr "CV analīze pabeigta."
msgid "Resumes"
msgstr "CV"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Nepieciešama pārskatīšana"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Pārskatītie priekšlikumi"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Izlīdzināt pa labi"
@@ -2561,6 +2723,10 @@ msgstr "Atlasīt..."
msgid "Self-Host with Docker"
msgstr "Pašhostēšana ar Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Sūtīt"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Nosūtīt paroles atiestatīšanas e-pastu"
msgid "Sending password reset email..."
msgstr "Nosūta paroles atiestatīšanas e-pastu..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Pieprasījuma nosūtīšana"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Atdalītājs"
@@ -2708,6 +2878,10 @@ msgstr "Vienkolonnu izkārtojums ar sānu joslu un tīru režģa izkārtojumu; u
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Vienas kolonnas ar ievilktu trīs kolonnu virsrakstu (amats - organizācija - punkts); kompakts un ATS draudzīgs, labi piemērots Āzijas CV konvencijām (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Vienas kolonnas CV ar lielajiem burtiem rakstītiem sadaļu virsrakstiem un pamatkrāsas augšējo rindiņu katrā lapā; lieliski piemērots vadītāju, konsultāciju vai jaunuzņēmumu CV."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Vienkolonnu izkārtojums; nopietns un noslīpēts vecākā līmeņa vai uzņēmuma līmeņa amatiem."
@@ -2808,6 +2982,10 @@ msgstr "Statistika"
msgid "Stay"
msgstr "Palikt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Apstāties"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Stiprās puses"
@@ -2902,6 +3080,14 @@ msgstr "Teksta krāsa"
msgid "Thai"
msgstr "Taju"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Mākslīgais intelekts ierosināja izmaiņas, kas vairs neattiecas uz šo CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Mākslīgais intelekts atgrieza priekšlikumu, kuru nevarēja priekšskatīt."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API atslēga veiksmīgi dzēsta."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Pēc dzēšanas šī API atslēga vairs nevarēs piekļūt jūsu datiem. Šī darbība nav atsaucama."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistents apstājās, pirms atbildēja uz priekšlikumu."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Tas ir URL-draudzīgs nosaukums jūsu CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Tas var aizņemt dažas minūtes atkarībā no MI pakalpojumu sniedzēja atbildes. Lūdzu, neaizveriet logu un neatjaunojiet lapu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Šis piedāvājums ir novecojis. Palūdziet asistentam to atkārtoti ģenerēt no jaunākā CV."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Šis CV ir bloķēts un to nevar atjaunināt."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Jā, Reactive Resume ir pieejams vairākās valodās. Jūs varat izvēlēties vēlamo valodu iestatījumu lapā vai, izmantojot valodas pārslēdzēju augšējā labajā stūrī. Ja neredzat savu valodu vai vēlaties uzlabot esošos tulkojumus, varat <0>piedalīties tulkošanā vietnē Crowdin<1> (atveras jaunā cilnē)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Jā! Katra veidne ir pilnībā pielāgojama. Varat mainīt krāsas, fontus, atstatumus un pat rakstīt pielāgotu CSS, lai pilnībā kontrolētu sava CV izskatu."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Jā! Reactive Resume ir pilnīgi bez maksas, bez slēptām izmaksām, premium līmeņiem vai abonēšanas maksām. Tas ir atvērtā pirmkoda un vienmēr paliks bez maksas."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Malayalam\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ഇനം} other {# ഇനങ്ങൾ}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# റോൾ} other {# റോളുകൾ}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} നിർദ്ദേശങ്ങൾ അവലോകനം ചെയ്തു"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "തീർച്ചയായും! നിങ്ങൾക്ക് ഒരു ക്ലിക്കിൽ തന്നെ നിങ്ങളുടെ റിസ്യൂം PDF ആയി എക്സ്പോർട്ട് ചെയ്യാൻ കഴിയും. എക്സ്പോർട്ട് ചെയ്ത PDF നിങ്ങൾ ഉപയോഗിച്ച എല്ലാ ഫോർമാറ്റിംഗും സ്റ്റൈലിംഗും ഏകദേശം സമ്പൂർണ്ണമായി നിലനിർത്തും."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "അംഗീകരിക്കുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "എല്ലാം സ്വീകരിക്കുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "നിർദ്ദേശം അംഗീകരിച്ചു"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API ഉപയോഗിച്ച് നിങ്ങളുടെ റിസ്യൂമുകളും ഡാറ്റയും പ്രോഗ്രാമാറ്റിക് ആയി ആക്സസ് ചെയ്യൂ."
@@ -229,10 +246,38 @@ msgstr "വരി മുമ്പ് ചേർക്കുക"
msgid "Afrikaans"
msgstr "ആഫ്രിക്കാൻസ്"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "ശേഷം"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI സംയോജനം പ്രവർത്തനരഹിതമാക്കി"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI നിർദ്ദേശം പ്രയോഗിച്ചു."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI നിർദ്ദേശം നിരസിച്ചു."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI നിർദ്ദേശങ്ങൾ പ്രയോഗിച്ചു."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI നിർദ്ദേശങ്ങൾ നിരസിച്ചു."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI റെസ്യൂം അസിസ്റ്റന്റ്"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "അൽബേനിയൻ"
@@ -367,10 +412,22 @@ msgstr "പഠന മേഖല"
msgid "Artificial Intelligence"
msgstr "ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസ്"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "ഒരു ടാർഗെറ്റഡ് റെസ്യൂമെ മാറ്റത്തിന് ആവശ്യപ്പെടുക..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ക്രമേണ മാറ്റം ആവശ്യപ്പെടുക"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ആസ്പെക്ട് റേഷ്യോ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "അസിസ്റ്റന്റ് അഭ്യർത്ഥന പരാജയപ്പെട്ടു"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "അടിസ്ഥാന വിവരങ്ങൾ"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "തിരഞ്ഞെടുക്കാൻ മനോഹരമായ ടെംപ്ലേറ്റുകൾ, കൂടാതെ ഇതിലേറെ ഉടൻ വരുന്നു."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "മുമ്പ്"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "ബെംഗാളി"
@@ -462,10 +523,6 @@ msgstr "ബുള്ളറ്റ് ലിസ്റ്റ്"
msgid "By the community, for the community."
msgstr "സമൂഹം ഉണ്ടാക്കുന്നതും സമൂഹത്തിനുമുള്ളതുമായ ഒരു പ്രോജക്ട്."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "ടെംപ്ലേറ്റുകൾ കസ്റ്റമൈസ് ചെയ്യാൻ കഴിയുമോ?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "എന്റെ റിസ്യൂം PDF ആയി എക്സ്പോർട്ട് ചെയ്യാനാകുമോ?"
@@ -576,6 +633,14 @@ msgstr "വ്യക്തമാക്കുക"
msgid "Click here to select a file to import"
msgstr "ഇംപോർട്ട് ചെയ്യാൻ ഒരു ഫയൽ തിരഞ്ഞെടുക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "അടയ്ക്കുക"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI അസിസ്റ്റന്റ് അടയ്ക്കുക"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "കോഡ് ബ്ലോക്ക്"
@@ -622,6 +687,10 @@ msgstr "സ്ഥിരീകരിക്കുക"
msgid "Connect"
msgstr "കണക്റ്റ് ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "റെസ്യൂമെ എഡിറ്റിംഗ് പ്രൊപ്പോസലുകൾ ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഒരു AI ദാതാവിനെ ബന്ധിപ്പിച്ച് പരിശോധിച്ചുറപ്പിക്കുക."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ഈ സീക്രട്ട് കീ പകർത്തി, നിങ
msgid "Copy URL"
msgstr "URL പകർത്തുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "AI നിർദ്ദേശം പ്രയോഗിക്കാൻ കഴിഞ്ഞില്ല."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ഡിസ്കണക്റ്റ് ചെയ്യുക"
msgid "Discord"
msgstr "ഡിസ്‌കോർഡ്"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "നിരസിക്കുക"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ഡോക്യുമെന്റേഷൻ"
msgid "Don't have an account? <0/>"
msgstr "അക്കൗണ്ട് ഇല്ലേ? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "സംഭാവന ചെയ്യുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume‑ന് സംഭാവന ചെയ്യുക"
@@ -1094,6 +1175,10 @@ msgstr "2FA പ്രാപ്തമാക്കുക"
msgid "Enable AI Features"
msgstr "AI സവിശേഷതകൾ പ്രാപ്തമാക്കുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI സംയോജനം പ്രാപ്തമാക്കുക"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "ടു‑ഫാക്ടർ ഓത്‌ന്റിക്കേഷൻ പ്രാപ്തമാക്കുക"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ഉദാഹരണങ്ങൾ: സംഗ്രഹം മാറ്റിയെഴുതുക, ഒരു അനുഭവ ബുള്ളറ്റ് കൂടുതൽ കൃത്യമാക്കുക, മെട്രിക്കുകൾ ചേർക്കുക, അല്ലെങ്കിൽ ഒരു ജോലി വിവരണത്തിനായി റെസ്യൂമെ പൊരുത്തപ്പെടുത്തുക."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "മുഴുവൻ സ്ക്രീനിൽ നിന്ന് പുറത്തുകടക്കുക"
@@ -1956,6 +2045,10 @@ msgstr "മൈക്രോസോഫ്റ്റ് വേഡ്"
msgid "Model"
msgstr "മോഡൽ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "കൂടുതൽ നിർദ്ദേശ നടപടികൾ"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ഇതിലേക്കു മാറ്റുക"
@@ -1982,6 +2075,10 @@ msgstr "https:// എന്നതിൽ തുടങ്ങണം"
msgid "Name"
msgstr "പേര്"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "അവലോകനം ആവശ്യമാണ്"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "നേപ്പാളി"
@@ -2012,6 +2109,10 @@ msgstr "പുതിയ പാസ്‌വേഡ്"
msgid "New Section"
msgstr "പുതിയ സെക്ഷൻ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "അടുത്തത്"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "പരസ്യങ്ങളില്ല, ട്രാക്കിംഗ് ഇല്ല"
@@ -2061,11 +2162,19 @@ msgstr "തുടർച്ചയായ മെയിൻറനൻസ്"
msgid "Open"
msgstr "ഓപ്പൺ ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "AI അസിസ്റ്റന്റ് തുറക്കുക"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ഇമെയിൽ ക്ലയന്റ് ഓപ്പൺ ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ഓപ്പൺ ഇന്റഗ്രേഷനുകൾ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "ഇന്റഗ്രേഷൻ ക്രമീകരണങ്ങൾ തുറക്കുക"
@@ -2219,6 +2328,10 @@ msgstr "തുടരുന്നതിന്, റിസ്യൂം ഉടമ
msgid "Please enter the URL you want to link to:"
msgstr "നിങ്ങൾ ലിങ്ക് ചെയ്യാനാഗ്രഹിക്കുന്ന URL നൽകുക:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "ദയവായി പദ്ധതിയെ പിന്തുണയ്ക്കുക."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "പദവി"
msgid "Preferences"
msgstr "പ്രിഫറൻസുകൾ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "മാറ്റങ്ങൾ തയ്യാറാക്കുന്നു"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "മുൻകൂട്ടി ക്രമീകരിച്ച ക്രമീകരണങ്ങൾ"
@@ -2267,6 +2384,10 @@ msgstr "നിലവിലുള്ള കീവിഡ്സ് ചേർക്
msgid "Press <0>Enter</0> to open"
msgstr "തുറക്കാൻ <0>എന്റർ</0> അമർത്തുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "മുമ്പത്തേത്"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "പ്രൈമറി നിറം"
@@ -2297,6 +2418,11 @@ msgstr "പ്രോഗ്രസ് ബാർ"
msgid "Projects"
msgstr "പ്രോജക്ടുകൾ"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "പ്രൊപ്പോസൽ {0} ന്റെ {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "നിങ്ങളുടെ റിസ്യൂമിനെ അനധികൃത ആക്‌സസിൽ നിന്ന് സംരക്ഷിക്കാൻ ഒരു പാസ്‌വേഡ് ഉപയോഗിക്കുക"
@@ -2319,6 +2445,10 @@ msgstr "പ്രസിദ്ധീകരണങ്ങൾ"
msgid "Publisher"
msgstr "പ്രസാധകൻ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "റോ JSON പാച്ച്"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ഹോംപേജിലേക്കു പോകുക"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume സ്നേഹത്തോടെ നിർമ്മി
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume നിങ്ങളുടെ റിസ്യൂം സൃഷ്‌ടിക്കാനും അപ്‌ഡേറ്റ് ചെയ്യാനും പങ്കിടാനും ഉള്ള പ്രക്രിയ ലളിതമാക്കുന്ന, സൗജന്യവും ഓപ്പൺ സോഴ്‌സുമായ ഒരു റിസ്യൂം ബിൽഡറാണ്."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "റിയാക്ടീവ് റെസ്യൂമെ സൌജന്യവും ഓപ്പൺ സോഴ്‌സുമാണ്. ഇത് നിങ്ങൾക്ക് സഹായകരമായിട്ടുണ്ടെങ്കിൽ, ദയവായി സംഭാവന നൽകുന്നത് പരിഗണിക്കുക."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ഓപ്പൺ സോഴ്‌സും സ്വകാര്യത കേന്ദ്രീകൃതവുമായ, പൂർണ്ണമായും സൗജന്യമായൊരു ആപ്പാണ്. മറ്റ് റിസ്യൂം ബിൽഡറുകളെ അപേക്ഷിച്ച്, ഇത് പരസ്യങ്ങൾ കാണിക്കുകയോ, നിങ്ങളുടെ ഡാറ്റ ട്രാക്ക് ചെയ്യുകയോ, സവിശേഷതകൾ പേയ്വാളിന് പിന്നിൽ ഒതുക്കുകയോ ചെയ്യുന്നില്ല."
@@ -2380,6 +2514,18 @@ msgstr "റിഫ്രെഷ് ചെയ്യുക"
msgid "Register New Device"
msgstr "പുതിയ ഉപകരണം രജിസ്റ്റർ ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "നിരസിക്കുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "എല്ലാം നിരസിക്കുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "നിരസിച്ച നിർദ്ദേശം"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് ഓർമ്മയുണ്ടോ? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "സ്ഥിരീകരണ ഇമെയിൽ വീണ്ടും അ
msgid "Reset"
msgstr "റീസെറ്റ് ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "ചാറ്റ് പുനഃസജ്ജമാക്കുക"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ
msgid "Resetting your password..."
msgstr "നിങ്ങളുടെ പാസ്‌വേഡ് റീസെറ്റ് ചെയ്യുന്നു..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "AI അസിസ്റ്റന്റിന്റെ വലുപ്പം മാറ്റുക"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "റിസോഴ്സുകൾ"
@@ -2463,6 +2617,14 @@ msgstr "റെസ്യൂമെ വിശകലനം പൂർത്തിയ
msgid "Resumes"
msgstr "റിസ്യൂങ്ങൾ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "അവലോകനം ആവശ്യമാണ്"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "അവലോകനം ചെയ്ത നിർദ്ദേശങ്ങൾ"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "റൈറ്റ് അലൈനിൽ ആക്കുക"
@@ -2561,6 +2723,10 @@ msgstr "തിരഞ്ഞെടുക്കുക..."
msgid "Self-Host with Docker"
msgstr "Docker ഉപയോഗിച്ച് സ്വയം ഹോസ്റ്റ് ചെയ്യുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "അയയ്‌ക്കുക"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "പാസ്‌വേഡ് റീസെറ്റ് ഇമെയിൽ
msgid "Sending password reset email..."
msgstr "പാസ്‌വേഡ് റീസെറ്റ് ഇമെയിൽ അയക്കുന്നു..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "അഭ്യർത്ഥന അയയ്ക്കുന്നു"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "സെപറേറ്റർ"
@@ -2708,6 +2878,10 @@ msgstr "ഒറ്റ കോളമാണ്, സൈഡ്ബാറും ക്
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ഒറ്റ കോളത്തിൽ, ഇൻലൈനായി മൂന്ന് കോളങ്ങളുള്ള എൻട്രി ഹെഡർ (സ്ഥാനം · സ്ഥാപനം · കാലയളവ്); സംക്ഷിപ്തവും ATS-സൗഹൃദപരവുമായ ഇത്, ഏഷ്യൻ റെസ്യൂമെ രീതികൾക്ക് (CN/JP/KR) അനുയോജ്യമാണ്."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "എല്ലാ പേജിലും വലിയക്ഷര വിഭാഗ തലക്കെട്ടുകളും മുകളിൽ ഒരു പ്രാഥമിക വർണ്ണ നിയമവുമുള്ള ഒറ്റ കോളം; എക്സിക്യൂട്ടീവ്, കൺസൾട്ടിംഗ് അല്ലെങ്കിൽ സ്റ്റാർട്ടപ്പ് റെസ്യൂമെകൾക്കായി പോളിഷ് ചെയ്തിരിക്കുന്നു."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "ഒറ്റ കോളമാണ്; polished ആയും ഗൗരവതരമായതുമാണ്, സീനിയർ അല്ലെങ്കിൽ എന്റർപ്രൈസ് തലത്തിലെ സ്ഥാനങ്ങൾക്കു പൊരുത്തപ്പെടും."
@@ -2808,6 +2982,10 @@ msgstr "സ്റ്റാറ്റിസ്റ്റിക്സ്"
msgid "Stay"
msgstr "തുടരുക"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "നിർത്തുക"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "ശക്തികൾ"
@@ -2902,6 +3080,14 @@ msgstr "ടെക്സ്റ്റ് നിറം"
msgid "Thai"
msgstr "തായ്"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "ഈ റെസ്യൂമെയ്ക്ക് ഇനി ബാധകമല്ലാത്ത ഒരു മാറ്റം AI നിർദ്ദേശിച്ചു."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "പ്രിവ്യൂ ചെയ്യാൻ കഴിയാത്ത ഒരു നിർദ്ദേശം AI തിരികെ നൽകി."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API കീ വിജയകരമായി ഡിലീറ്റ് ച
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "ഈ API കീ ഡിലീറ്റുചെയ്ത ശേഷം നിങ്ങളുടെ ഡാറ്റയിലേക്ക് ഇനി ആക്‌സസ് ചെയ്യാൻ സാധിക്കില്ല. ഈ പ്രവർത്തി തിരികെ ലഭ്യമാക്കാൻ സാധിക്കില്ല."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "അസിസ്റ്റന്റ് നിർദ്ദേശം തിരികെ നൽകുന്നതിനുമുമ്പ് നിർത്തി."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "ഇത് നിങ്ങളുടെ റിസ്യൂമിനുള
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI പ്രൊവൈഡർ പ്രതികരിക്കുന്ന സമയത്തെ ആശ്രയിച്ച് ഇതിന് കുറച്ച് മിനിറ്റുകൾ എടുക്കാം. ദയവായി വിൻഡോ അടയ്ക്കുകയോ പേജ് റിഫ്രെഷ് ചെയ്യുകയോ ചെയ്യരുത്."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "ഈ നിർദ്ദേശം പഴയതാണ്. ഏറ്റവും പുതിയ റെസ്യൂമെയിൽ നിന്ന് ഇത് വീണ്ടും സൃഷ്ടിക്കാൻ അസിസ്റ്റന്റിനോട് ആവശ്യപ്പെടുക."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "ഈ റിസ്യൂം ലോക്ക് ചെയ്തതിനാൽ ഇതിനെ അപ്‌ഡേറ്റ് ചെയ്യാനോ ഡിലീറ്റ് ചെയ്യാനോ കഴിയില്ല."
@@ -3385,10 +3580,6 @@ msgstr "എക്സ് (ട്വിറ്റർ)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "അതെ, Reactive Resume പല ഭാഷകളിലും ലഭ്യമാണ്. സെറ്റിംഗ്സ് പേജിൽ നിന്നോ മുകളിലെ വലതു കോണിലുള്ള ഭാഷാ സ്വിച്ചർ ഉപയോഗിച്ചോ നിങ്ങൾക്ക് ഇഷ്ടമുള്ള ഭാഷ തിരഞ്ഞെടുക്കാം. നിങ്ങളുടെ ഭാഷ ലഭ്യമല്ലെങ്കിൽ, അല്ലെങ്കിൽ നിലവിലുള്ള തർജ്ജമകൾ മെച്ചപ്പെടുത്താനാഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾക്ക് <0>Crowdin‑ൽ തർജ്ജമകൾക്ക് സംഭാവന ചെയ്യാം<1> (പുതിയ ടാബിൽ തുറക്കും)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "അതെ! ഓരോ ടെംപ്ലേറ്റും പൂർണ്ണമായി കസ്റ്റമൈസ് ചെയ്യാവുന്നതാണ്. നിറങ്ങൾ, ഫോണ്ടുകൾ, സ്പേസിംഗ് എന്നിവ മാറ്റാനും, നിങ്ങളുടെ റിസ്യൂമിന്റെ രൂപഭാവത്തിൽ പൂർണ്ണ നിയന്ത്രണം നേടാൻ കസ്റ്റം CSS വരെ എഴുതാനും കഴിയും."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "അതെ! Reactive Resume പൂർണ്ണമായും സൗജന്യമായി ഉപയോഗിക്കാവുന്നതാണ്, മറഞ്ഞ ചിലവുകളോ പ്രീമിയം നിരകളോ സബ്സ്ക്രിപ്ഷൻ ഫീസുകളോ ഒന്നുമില്ല. ഇത് ഓപ്പൺ സോഴ്‌സാണ്, എന്നും സൗജന്യമായിരിക്കും."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Marathi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# वस्तू} other {# वस्तू}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# भूमिका} other {# भूमिका}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} प्रस्तावांचे पुनरावलोकन केले"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "नक्कीच! तुम्ही फक्त एका क्लिकमध्ये तुमचा रेझ्युमे PDF म्हणून निर्यात करू शकता. निर्यात केलेल्या PDF मध्ये तुमचे सर्व फॉरमॅटिंग आणि स्टाइलिंग अगदी योग्य स्थितीत राहते."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "स्वीकारा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "सर्व स्वीकारा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "प्रस्ताव स्वीकारला"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API वापरून तुमचे रेझ्युमे आणि डेटा प्रोग्रामॅटिक पद्धतीने अ‍ॅक्सेस करा."
@@ -229,10 +246,38 @@ msgstr "आधी ओळ जोडा"
msgid "Afrikaans"
msgstr "आफ्रिकान्स"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "नंतर"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "एआय एकीकरण अक्षम केले"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "एआय प्रस्ताव लागू झाला."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "एआयचा प्रस्ताव फेटाळला."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "एआय प्रस्ताव लागू केले."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "एआयचे प्रस्ताव फेटाळले."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "एआय रिझ्युमे असिस्टंट"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "अल्बेनियन"
@@ -367,10 +412,22 @@ msgstr "अभ्यासाचे क्षेत्र"
msgid "Artificial Intelligence"
msgstr "कृत्रिम बुद्धिमत्ता"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "बायोडेटामध्ये विशिष्ट बदल करण्याची विनंती करा..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "टप्प्याटप्प्याने होणाऱ्या बदलाची मागणी करा"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "प्रसर गुणोत्तर"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "सहाय्यकाची विनंती अयशस्वी झाली"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "मूलभूत"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "सुंदर साचे निवडण्यासाठी उपलब्ध आहेत, आणि आणखी साचे लवकरच येत आहेत."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "आधी"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "बंगाली"
@@ -462,10 +523,6 @@ msgstr "बुलेट यादी"
msgid "By the community, for the community."
msgstr "समाजाने, समाजासाठी."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "मी साचे सानुकूलित करू शकतो का?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "मी माझा रेझ्युमे PDF मध्ये निर्यात करू शकतो का?"
@@ -576,6 +633,14 @@ msgstr "स्पष्ट"
msgid "Click here to select a file to import"
msgstr "इम्पोर्ट करण्यासाठी फाईल निवडण्यासाठी येथे क्लिक करा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "बंद करा"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "एआय सहाय्यक बंद करा"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "कोड ब्लॉक"
@@ -622,6 +687,10 @@ msgstr "पुष्टी करा"
msgid "Connect"
msgstr "कनेक्ट"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "रेझ्युमे संपादनाचे प्रस्ताव वापरण्यापूर्वी एआय प्रदात्याशी संपर्क साधा आणि त्याची पडताळणी करा."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ही गुप्त key कॉपी करा आणि तुमच
msgid "Copy URL"
msgstr "URL कॉपी करा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "एआय प्रस्ताव लागू करता आला नाही."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "डिस्कनेक्ट"
msgid "Discord"
msgstr "डिस्कॉर्ड"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "बरखास्त करा"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "दस्तऐवजीकरण"
msgid "Don't have an account? <0/>"
msgstr "खाते नाही? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "दान करा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "रिअ‍ॅक्टिव्ह रेझ्युमेला दान करा"
@@ -1094,6 +1175,10 @@ msgstr "2FA सक्षम करा"
msgid "Enable AI Features"
msgstr "AI फिचर्स सक्षम करा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "एआय एकीकरण सक्षम करा"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "दुहेरी घटक ओथेंटिकेशन सक्षम करा"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "उदाहरणे: सारांश पुन्हा लिहिणे, अनुभवाचा एखादा मुद्दा अधिक संक्षिप्त करणे, मोजमापे जोडणे किंवा नोकरीच्या वर्णनानुसार रिझ्युमेमध्ये बदल करणे."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रीनमधून बाहेर पडा"
@@ -1956,6 +2045,10 @@ msgstr "मायक्रोसॉफ्ट वर्ड"
msgid "Model"
msgstr "मॉडेल"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "अधिक प्रस्ताव कृती"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "येथे हलवा"
@@ -1982,6 +2075,10 @@ msgstr "https:// नेच सुरू करावे."
msgid "Name"
msgstr "नाव"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "पुनरावलोकनाची गरज आहे"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "नेपाळी"
@@ -2012,6 +2109,10 @@ msgstr "नवीन पासवर्ड"
msgid "New Section"
msgstr "नवीन विभाग"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "पुढील"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "जाहिरात नाही, ट्रॅकिंग नाही"
@@ -2061,11 +2162,19 @@ msgstr "चालू असलेली देखभाल"
msgid "Open"
msgstr "उघडा"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "ओपन एआय असिस्टंट"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ईमेल क्लायंट उघडा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ओपन इंटिग्रेशन्स"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "इंटीग्रेशन सेटिंग्ज उघडा"
@@ -2219,6 +2328,10 @@ msgstr "कृपया पुढे जाण्यासाठी रेझ्
msgid "Please enter the URL you want to link to:"
msgstr "कृपया तुम्हाला ज्या URL ला लिंक करायचे आहे ती URL टाका:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "कृपया प्रकल्पाला पाठिंबा द्या"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "पद"
msgid "Preferences"
msgstr "प्राधान्ये"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "बदल तयार करणे"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "पूर्वनिर्धारित सेटिंग्ज"
@@ -2267,6 +2384,10 @@ msgstr "सध्याचा कीवर्ड जोडण्यासाठ
msgid "Press <0>Enter</0> to open"
msgstr "उघडण्यासाठी <0>Enter</0> दाबा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "मागील"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "प्राथमिक रंग"
@@ -2297,6 +2418,11 @@ msgstr "प्रगती पट्टी"
msgid "Projects"
msgstr "प्रोजेक्ट्स"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{total} चा प्रस्ताव {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "तुमचा रेझ्युमे पासवर्डने सुरक्षित करा, अनधिकृत प्रवेशापासून संरक्षण करा"
@@ -2319,6 +2445,10 @@ msgstr "प्रकाशने"
msgid "Publisher"
msgstr "प्रकाशक"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "रॉ JSON पॅच"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - मुखपृष्ठावर जा"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume हा मोफत आणि मुक्त-स्र
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume हा मोफत आणि मुक्त-स्रोत रेझ्युमे बिल्डर आहे, जो तुमचा रेझ्युमे तयार करणे, अपडेट करणे आणि शेअर करणे हा प्रोसेस सोपा करतो."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "रिॲक्टिव्ह रिझ्युमे मोफत आणि ओपन सोर्स आहे. जर तुम्हाला याचा उपयोग झाला असेल, तर कृपया देणगी देण्याचा विचार करा."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume हे मुक्त-स्रोत, गोपनीयता-केंद्रित आणि पूर्णपणे मोफत आहे. इतर रेझ्युमे बिल्डर्सप्रमाणेच नाही, हे जाहिराती दाखवत नाही, तुमचा डेटा ट्रॅक करत नाही किंवा फिचर्स पेवॉलच्या मागे मर्यादित करत नाही."
@@ -2380,6 +2514,18 @@ msgstr "ताजेतवाने करा"
msgid "Register New Device"
msgstr "नवीन उपकरण नोंदवा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "नाकारा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "सर्व नाकारा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "प्रस्ताव नाकारला"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "तुमचा पासवर्ड आठवतो? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "पडताळणी ईमेल पुन्हा पाठवला
msgid "Reset"
msgstr "रीसेट करा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "चॅट रीसेट करा"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "तुमचा पासवर्ड रीसेट करा"
msgid "Resetting your password..."
msgstr "तुमचा पासवर्ड रीसेट केला जात आहे..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "एआय सहाय्यकाचा आकार बदला"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "साधने"
@@ -2463,6 +2617,14 @@ msgstr "रेझ्युमे विश्लेषण पूर्ण झा
msgid "Resumes"
msgstr "रेझ्युमे"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "पुनरावलोकन आवश्यक आहे"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "पुनरावलोकन केलेले प्रस्ताव"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "उजवीकडे जुळवा"
@@ -2561,6 +2723,10 @@ msgstr "निवडा..."
msgid "Self-Host with Docker"
msgstr "Docker ने स्वतः होस्ट करा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "पाठवा"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "पासवर्ड रीसेट ईमेल पाठवा"
msgid "Sending password reset email..."
msgstr "पासवर्ड रीसेट ईमेल पाठवला जात आहे..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "विनंती पाठवणे"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "सेपरेटर"
@@ -2708,6 +2878,10 @@ msgstr "एकाच स्तंभाचा साचा, साइडबा
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "एक-स्तंभी, इनलाइन तीन-स्तंभ प्रवेश शीर्षक (स्थान · संस्था · कालावधी); संक्षिप्त आणि ATS-अनुकूल, आशियाई बायोडाटा परंपरांसाठी (CN/JP/KR) योग्य."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "प्रत्येक पानावर मोठ्या अक्षरांतील विभाग शीर्षके आणि प्राथमिक रंगाची वरची रेषा असलेला एक-स्तंभीय आराखडा; कार्यकारी, सल्लागार किंवा स्टार्टअप रिझ्युमेसाठी सुबक."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "एकाच स्तंभाचा, परिष्कृत आणि गंभीर लुक असलेला साचा; वरिष्ठ किंवा एंटरप्राइझ-स्तरीय पदांसाठी योग्य."
@@ -2808,6 +2982,10 @@ msgstr "आकडेवारी"
msgid "Stay"
msgstr "राहा"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "थांबा"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "शक्ती"
@@ -2902,6 +3080,14 @@ msgstr "मजकुराचा रंग"
msgid "Thai"
msgstr "थाई"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "एआयने सुचवलेला बदल आता या रिझ्युमेला लागू होत नाही."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "एआयने असा प्रस्ताव परत पाठवला ज्याचे पूर्वावलोकन करता आले नाही."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API key यशस्वीरित्या हटवली गेल
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "ही API key डिलीट केल्यानंतर तुमच्या डेटाला पुन्हा अ‍ॅक्सेस करू शकणार नाही. ही क्रिया उलट करता येणार नाही."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "सहाय्यकाने प्रस्ताव परत करण्यापूर्वीच थांबला."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "हा तुमच्या रेझ्युमेसाठी URL-
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI प्रोव्हायडरच्या प्रतिसादावर अवलंबून, यासाठी काही मिनिटे लागू शकतात. कृपया विंडो बंद करू नका किंवा पान रीफ्रेश करू नका."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "हा प्रस्ताव कालबाह्य झाला आहे. सहाय्यकाला नवीनतम रिझ्युमेवरून तो पुन्हा तयार करण्यास सांगा."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "हा रेझ्युमे लॉक केलेला आहे आणि अपडेट करता किंवा हटवता येणार नाही."
@@ -3385,10 +3580,6 @@ msgstr "एक्स (ट्विटर)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "होय, Reactive Resume अनेक भाषांमध्ये उपलब्ध आहे. तुम्ही सेटिंग्ज पेजवर किंवा उजव्या वरच्या कोपऱ्यातील भाषा स्विचर वापरून तुमची आवडती भाषा निवडू शकता. जर तुम्हाला तुमची भाषा दिसत नसेल किंवा विद्यमान भाषांतर सुधारायचे असेल, तर तुम्ही <0>Crowdin वर भाषांतरांमध्ये योगदान देऊ शकता<1> (नवीन टॅबमध्ये उघडते)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "होय! प्रत्येक साचा पूर्णपणे सानुकूलित करता येतो. तुम्ही रंग, फाँट, स्पेसिंग बदलू शकता आणि तुमच्या रेझ्युमेच्या स्वरूपावर पूर्ण नियंत्रण मिळवण्यासाठी सानुकूल CSSसुद्धा लिहू शकता."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "होय! Reactive Resume पूर्णपणे मोफत आहे, कोणतेही लपलेले खर्च, प्रीमियम टियर किंवा सब्सक्रिप्शन फी नाही. हे मुक्त-स्रोत आहे आणि नेहमी मोफतच राहिल."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Malay\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# item}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# peranan} other {# peranan}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "Cadangan {0} telah disemak"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Sudah tentu! Anda boleh mengeksport resume anda ke PDF dengan satu klik sahaja. PDF yang dieksport akan mengekalkan semua pemformatan dan gaya anda dengan sempurna."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Terima"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Terima semua"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Cadangan yang diterima"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Akses resume dan data anda secara programatik menggunakan API."
@@ -229,10 +246,38 @@ msgstr "Tambah Baris Sebelum"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Selepas"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrasi AI dilumpuhkan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Cadangan AI telah diguna pakai."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Cadangan AI ditolak."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Cadangan AI telah diguna pakai."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Cadangan AI ditolak."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Pembantu Resume AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanian"
@@ -367,10 +412,22 @@ msgstr "Bidang Pengajian"
msgid "Artificial Intelligence"
msgstr "Kecerdasan Buatan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Minta perubahan resume yang disasarkan..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Minta perubahan secara berperingkat"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Nisbah Aspek"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Permintaan pembantu gagal"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Asas"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Templat cantik untuk dipilih, dengan lebih banyak lagi akan datang."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Sebelum"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Senarai Berbulet"
msgid "By the community, for the community."
msgstr "Oleh komuniti, untuk komuniti."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Bolehkah saya menyesuaikan templat?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Bolehkah saya mengeksport resume saya ke PDF?"
@@ -576,6 +633,14 @@ msgstr "Jelas"
msgid "Click here to select a file to import"
msgstr "Klik di sini untuk memilih fail untuk diimport"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Tutup"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Tutup pembantu AI"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blok Kod"
@@ -622,6 +687,10 @@ msgstr "Sahkan"
msgid "Connect"
msgstr "Sambung"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Sambungkan dan sahkan penyedia AI sebelum menggunakan cadangan penyuntingan resume."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Salin kunci rahsia ini dan gunakan dalam aplikasi anda untuk mengakses d
msgid "Copy URL"
msgstr "Salin URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Tidak dapat menggunakan cadangan AI."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Putuskan sambungan"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Ketepikan"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentasi"
msgid "Don't have an account? <0/>"
msgstr "Tiada akaun? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Derma"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Derma kepada Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktifkan 2FA"
msgid "Enable AI Features"
msgstr "Aktifkan Ciri AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Dayakan integrasi AI"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktifkan Pengesahan Dua Faktor"
@@ -1162,6 +1247,10 @@ msgstr "Segala yang dimasukkan di sini disimpan secara setempat dalam pelayar an
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Contoh: tulis semula ringkasan, ketatkan satu poin pengalaman, tambah metrik atau sesuaikan resume untuk huraian kerja."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Keluar dari Skrin Penuh"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Lebih banyak tindakan cadangan"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Pindah ke"
@@ -1982,6 +2075,10 @@ msgstr "Mesti bermula dengan https://"
msgid "Name"
msgstr "Nama"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Perlu semakan"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepal"
@@ -2012,6 +2109,10 @@ msgstr "Kata Laluan Baharu"
msgid "New Section"
msgstr "Seksyen Baharu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Seterusnya"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Tiada Pengiklanan, Tiada Penjejakan"
@@ -2061,11 +2162,19 @@ msgstr "Penyelenggaraan Berterusan"
msgid "Open"
msgstr "Buka"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Pembantu AI terbuka"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Buka Klien E-mel"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrasi Terbuka"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Buka Tetapan Integrasi"
@@ -2219,6 +2328,10 @@ msgstr "Sila masukkan kata laluan yang dikongsi dengan anda oleh pemilik resume
msgid "Please enter the URL you want to link to:"
msgstr "Sila masukkan URL yang anda ingin pautkan:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Sila sokong projek ini"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Kedudukan"
msgid "Preferences"
msgstr "Keutamaan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Menyediakan perubahan"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Praset"
@@ -2267,6 +2384,10 @@ msgstr "Tekan <0>{RETURN_KEY}</0> atau <1>{COMMA_KEY}</1> untuk menambah atau me
msgid "Press <0>Enter</0> to open"
msgstr "Tekan <0>Enter</0> untuk membuka"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Sebelumnya"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -2297,6 +2418,11 @@ msgstr "Bar Kemajuan"
msgid "Projects"
msgstr "Projek"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Cadangan {0} daripada {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Lindungi resume anda daripada akses tanpa kebenaran dengan kata laluan"
@@ -2319,6 +2445,10 @@ msgstr "Penerbitan"
msgid "Publisher"
msgstr "Penerbit"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Tampalan JSON Mentah"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Pergi ke laman utama"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ialah projek percuma dan sumber terbuka, dibina dengan p
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume ialah pembina resume percuma dan sumber terbuka yang menyederhanakan proses mencipta, mengemas kini dan berkongsi resume anda."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Resume Reaktif adalah percuma dan sumber terbuka. Jika ia telah membantu anda, sila pertimbangkan untuk menderma."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ialah sumber terbuka, berfokuskan privasi dan benar-benar percuma. Tidak seperti pembina resume yang lain, ia tidak memaparkan iklan, menjejak data anda atau mengehadkan ciri di sebalik dinding bayaran."
@@ -2380,6 +2514,18 @@ msgstr "Muat semula"
msgid "Register New Device"
msgstr "Daftar Peranti Baru"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Tolak"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Tolak semua"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Cadangan yang ditolak"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Ingat kata laluan anda? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Menghantar semula e-mel pengesahan..."
msgid "Reset"
msgstr "Tetapkan Semula"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Tetapkan semula sembang"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Tetapkan semula kata laluan anda"
msgid "Resetting your password..."
msgstr "Menetapkan semula kata laluan anda..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Ubah saiz pembantu AI"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Sumber"
@@ -2463,6 +2617,14 @@ msgstr "Analisis resume selesai."
msgid "Resumes"
msgstr "Resume"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Semakan diperlukan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Cadangan yang telah disemak"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Jajaran Kanan"
@@ -2561,6 +2723,10 @@ msgstr "Pilih..."
msgid "Self-Host with Docker"
msgstr "Hos Sendiri dengan Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Hantar"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Hantar E-mel Tetapan Semula Kata Laluan"
msgid "Sending password reset email..."
msgstr "Menghantar e-mel tetapan semula kata laluan..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Menghantar permintaan"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Pemisah"
@@ -2708,6 +2878,10 @@ msgstr "Satu kolum dengan panel sisi dan tataletak grid yang kemas; serba boleh
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Satu lajur dengan tajuk kemasukan tiga lajur bersepadu (posisi · organisasi · tempoh); padat dan mesra ATS, sesuai untuk konvensyen resume Asia (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Lajur tunggal dengan tajuk bahagian huruf besar dan peraturan atas berwarna utama pada setiap halaman; digilap untuk resume eksekutif, perundingan atau syarikat baharu."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Satu kolum; kemas dan serius untuk jawatan kanan atau peringkat perusahaan."
@@ -2808,6 +2982,10 @@ msgstr "Statistik"
msgid "Stay"
msgstr "Kekal"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Berhenti"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Kekuatan"
@@ -2902,6 +3080,14 @@ msgstr "Warna Teks"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI mencadangkan perubahan yang tidak lagi terpakai pada resume ini."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI mengembalikan cadangan yang tidak dapat dipratonton."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Kunci API telah berjaya dipadamkan."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Kunci API ini tidak lagi boleh mengakses data anda selepas dipadamkan. Tindakan ini tidak boleh dibatalkan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Pembantu itu berhenti sebelum memulangkan lamaran."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Ini ialah nama mesra URL untuk resume anda."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Ini mungkin mengambil masa beberapa minit, bergantung pada respons penyedia AI. Sila jangan tutup tetingkap atau segarkan semula halaman."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Cadangan ini sudah lapuk. Minta pembantu untuk menjananya semula daripada resume terkini."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Resume ini dikunci dan tidak boleh dikemas kini."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ya, Reactive Resume tersedia dalam pelbagai bahasa. Anda boleh memilih bahasa pilihan anda di halaman tetapan, atau menggunakan penukar bahasa di penjuru kanan atas. Jika anda tidak melihat bahasa anda, atau anda ingin menambah baik terjemahan sedia ada, anda boleh <0>menyumbang kepada terjemahan di Crowdin<1> (dibuka dalam tab baharu)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ya! Setiap templat boleh disesuaikan sepenuhnya. Anda boleh menukar warna, fon, jarak dan juga menulis CSS tersuai untuk kawalan penuh ke atas rupa resume anda."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ya! Reactive Resume adalah benar-benar percuma untuk digunakan, tanpa kos tersembunyi, tahap premium atau yuran langganan. Ia adalah sumber terbuka dan akan sentiasa kekal percuma."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Nepali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# वस्तु} other {# वस्तुहरू}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# भूमिका} other {# भूमिकाहरू}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} प्रस्तावहरूको समीक्षा गरियो"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "हो, अवश्य! तपाईं एक क्लिकमै आफ्नो बायोडाटा PDF मा निर्यात गर्न सक्नुहुन्छ। निर्यात गरिएको PDF ले तपाईंले गरेका सबै ढाँचा र शैली (styling) पूर्ण रूपमा जस्ताको तस्तै राख्छ।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "स्वीकार गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "सबै स्वीकार गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "स्वीकृत प्रस्ताव"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API प्रयोग गरेर प्रोग्रामिङमार्फत आफ्ना बायोडाटा र डाटामा पहुँच पाउनुहोस्।"
@@ -229,10 +246,38 @@ msgstr "अघिल्लो पङ्क्ति थप्नुहोस्"
msgid "Afrikaans"
msgstr "अफ्रिकान्स"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "पछि"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "एआई एकीकरण असक्षम पारियो"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "एआई प्रस्ताव लागू गरियो।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "एआई प्रस्ताव अस्वीकृत भयो।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "एआई प्रस्तावहरू लागू गरियो।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "एआई प्रस्तावहरू अस्वीकृत गरियो।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "एआई रिजुमे सहायक"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "अल्बानियन"
@@ -367,10 +412,22 @@ msgstr "अध्ययन क्षेत्र"
msgid "Artificial Intelligence"
msgstr "कृत्रिम बौद्धिकता"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "लक्षित बायोडाटा परिवर्तनको लागि सोध्नुहोस्..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "वृद्धिशील परिवर्तनको लागि सोध्नुहोस्"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "आकार अनुपात (Aspect Ratio)"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "सहायक अनुरोध असफल भयो"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "आधारभूत विवरण"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "छान्नका लागि आकर्षक ढाँचाहरू, र थप ढाँचाहरू चाँडै आउँदैछन्।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "पहिले"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "बंगाली"
@@ -462,10 +523,6 @@ msgstr "बुलेट सूची"
msgid "By the community, for the community."
msgstr "समुदायबाट, समुदायकै लागि।"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "के म ढाँचाहरू अनुकूल बनाउन सक्छु?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "के म आफ्नो बायोडाटा PDF मा निर्यात गर्न सक्छु?"
@@ -576,6 +633,14 @@ msgstr "स्पष्ट"
msgid "Click here to select a file to import"
msgstr "आयात गर्न फाइल छान्न यहाँ क्लिक गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "बन्द गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "एआई सहायक बन्द गर्नुहोस्"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "कोड ब्लक"
@@ -622,6 +687,10 @@ msgstr "यकिन गर्नुहोस्"
msgid "Connect"
msgstr "जोड्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "रिजुमे सम्पादन प्रस्तावहरू प्रयोग गर्नु अघि एआई प्रदायकसँग जडान गर्नुहोस् र प्रमाणित गर्नुहोस्।"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "यो गोप्य key प्रतिलिपि गरेर आ
msgid "Copy URL"
msgstr "URL प्रतिलिपि गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "एआई प्रस्ताव लागू गर्न सकिएन।"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "विच्छेद गर्नुहोस्"
msgid "Discord"
msgstr "डिस्कोर्ड"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "खारेज गर्नुहोस्"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "प्रलेखन (Documentation)"
msgid "Don't have an account? <0/>"
msgstr "खाता छैन? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "दान गर्नुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume लाई दान गर्नुहोस्"
@@ -1094,6 +1175,10 @@ msgstr "२FA सक्रिय गर्नुहोस्"
msgid "Enable AI Features"
msgstr "AI सुविधाहरू सक्रिय गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "एआई एकीकरण सक्षम गर्नुहोस्"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "दुई-कारक प्रमाणीकरण सक्रिय गर्नुहोस्"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "उदाहरणहरू: सारांश पुन: लेख्नुहोस्, एउटा अनुभव बुलेट कडा पार्नुहोस्, मेट्रिक्स थप्नुहोस्, वा कामको विवरणको लागि बायोडाटा अनुकूलन गर्नुहोस्।"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "पूर्ण स्क्रिनबाट बाहिर निस्कनुहोस्"
@@ -1956,6 +2045,10 @@ msgstr "माइक्रोसफ्ट वर्ड"
msgid "Model"
msgstr "मोडेल"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "थप प्रस्ताव कार्यहरू"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "यसमा सार्नुहोस्"
@@ -1982,6 +2075,10 @@ msgstr "https:// बाटै सुरु गर्नुपर्छ।"
msgid "Name"
msgstr "नाम"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "समीक्षा आवश्यक छ"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "नेपाली"
@@ -2012,6 +2109,10 @@ msgstr "नयाँ पासवर्ड"
msgid "New Section"
msgstr "नयाँ खण्ड"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "अर्को"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "कुनै विज्ञापन छैन, कुनै ट्र्याकिङ छैन"
@@ -2061,11 +2162,19 @@ msgstr "निरन्तर मर्मत"
msgid "Open"
msgstr "खोल्नुहोस्"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "एआई सहायक खोल्नुहोस्"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "इमेल क्लाइन्ट खोल्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "खुला एकीकरणहरू"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "एकीकरण सेटिङहरू खोल्नुहोस्"
@@ -2219,6 +2328,10 @@ msgstr "कृपया अगाडि बढ्न बायोडाटाक
msgid "Please enter the URL you want to link to:"
msgstr "कृपया तपाईंले लिङ्क गर्न चाहनुभएको URL प्रविष्ट गर्नुहोस्:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "कृपया परियोजनालाई समर्थन गर्नुहोस्।"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "पद"
msgid "Preferences"
msgstr "प्राथमिकता (Preferences)"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "परिवर्तनहरू तयार गर्दै"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "पूर्वनिर्धारित सेटिङहरू"
@@ -2267,6 +2384,10 @@ msgstr "हालको कुञ्जीशब्द थप्न वा ब
msgid "Press <0>Enter</0> to open"
msgstr "खोल्न <0>Enter</0> थिच्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "अघिल्लो"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "मुख्य रङ"
@@ -2297,6 +2418,11 @@ msgstr "प्रगति बार (Progress Bar)"
msgid "Projects"
msgstr "परियोजनाहरू"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "प्रस्ताव {0} को {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "पासवर्ड प्रयोग गरी आफ्नो बायोडाटा अनधिकृत पहुँचबाट जोगाउनुहोस्"
@@ -2319,6 +2445,10 @@ msgstr "प्रकाशनहरू"
msgid "Publisher"
msgstr "प्रकाशक"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "कच्चा JSON प्याच"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - गृहपृष्ठमा जानुहोस्"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume प्रेमसाथ बनाइएको निः
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume निःशुल्क र खुला-स्रोत बायोडाटा निर्माण गर्ने साधन हो जसले तपाईंको बायोडाटा बनाउन, अद्यावधिक गर्न र सेयर गर्ने प्रक्रियालाई सरल बनाउँछ।"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "प्रतिक्रियाशील रिजुमे नि:शुल्क र खुला स्रोत हो। यदि यसले तपाईंलाई मद्दत गरेको छ भने, कृपया दान गर्ने विचार गर्नुहोस्।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume खुला-स्रोत, गोपनीयता-केन्द्रित र पूर्ण रूपमा निःशुल्क छ। अन्य बायोडाटा निर्माण गर्ने साधनहरूको विपरीत, यसले विज्ञापन देखाउँदैन, तपाईंको डाटा ट्र्याक गर्दैन, वा सुविधालाई भुक्तानी पछाडि थुन्न्दैन।"
@@ -2380,6 +2514,18 @@ msgstr "रिफ्रेस गर्नुहोस्"
msgid "Register New Device"
msgstr "नयाँ उपकरण दर्ता गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "अस्वीकार गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "सबै अस्वीकार गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "अस्वीकृत प्रस्ताव"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "पासवर्ड सम्झनुभयो? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "यकिन इमेल पुनः पठाइँदैछ..."
msgid "Reset"
msgstr "रिसेट गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "च्याट रिसेट गर्नुहोस्"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "तपाईंको पासवर्ड रिसेट गर्न
msgid "Resetting your password..."
msgstr "तपाईंको पासवर्ड रिसेट हुँदैछ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "एआई सहायकको आकार बदल्नुहोस्"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "स्रोतहरू"
@@ -2463,6 +2617,14 @@ msgstr "बायोडाटा विश्लेषण पूरा भयो
msgid "Resumes"
msgstr "बायोडाटाहरू"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "समीक्षा आवश्यक छ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "समीक्षा गरिएका प्रस्तावहरू"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "दायाँतिर क्रमबद्ध (Right Align)"
@@ -2561,6 +2723,10 @@ msgstr "छान्नुहोस्..."
msgid "Self-Host with Docker"
msgstr "Docker प्रयोग गरेर आफैं होस्ट गर्नुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "पठाउनुहोस्"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "पासवर्ड रिसेट इमेल पठाउनुह
msgid "Sending password reset email..."
msgstr "पासवर्ड रिसेट इमेल पठाइँदैछ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "अनुरोध पठाउँदै"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "पृथक्करण रेखा (Separator)"
@@ -2708,6 +2878,10 @@ msgstr "एक स्तम्भ, Sidebar र सफा ग्रिड ले
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "एकल स्तम्भ, इनलाइन तीन-स्तम्भ प्रविष्टि शीर्षक (स्थिति · संगठन · अवधि) सहित; संक्षिप्त र ATS-मैत्री, एशियाली रिजुमे परम्परा (CN/JP/KR) का लागि उपयुक्त।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "ठूला अक्षरका खण्ड शीर्षकहरू र प्रत्येक पृष्ठमा प्राथमिक-रङको शीर्ष नियम भएको एकल-स्तम्भ; कार्यकारी, परामर्श, वा स्टार्टअप रिजुमेहरूको लागि पालिश गरिएको।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "एक स्तम्भ; पॉलिस गरिएको र गम्भीर शैली, सिनियर वा ठूला कम्पनी स्तरका पदहरूको लागि उपयुक्त।"
@@ -2808,6 +2982,10 @@ msgstr "तथ्याङ्क (Statistics)"
msgid "Stay"
msgstr "रहनुहोस्"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "रोक्नुहोस्"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "शक्तिहरू"
@@ -2902,6 +3080,14 @@ msgstr "पाठ रङ"
msgid "Thai"
msgstr "थाइ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "एआईले एउटा परिवर्तन प्रस्ताव गर्‍यो जुन अब यो रिजुमेमा लागू हुँदैन।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "एआईले पूर्वावलोकन गर्न नसकिने प्रस्ताव फिर्ता गर्‍यो।"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API key सफलतापूर्वक मेटाइयो।"
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API key मेटाएपछि अब तपाईंको डाटामा पहुँच गर्न सक्दैन। यो कार्य उल्ट्याउन सकिँदैन।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "सहायकले प्रस्ताव फिर्ता गर्नु अघि रोकियो।"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "यो तपाईंको बायोडाटाका लागि
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "यो प्रक्रिया AI प्रदायकको प्रतिक्रियामा भर पर्न जाकाले केही मिनेट लाग्न सक्छ। कृपया विन्डो बन्द नगर्नुहोस् वा पृष्ठ रिफ्रेस नगर्नुहोस्।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "यो प्रस्ताव पुरानो भइसकेको छ। सहायकलाई पछिल्लो रिजुमेबाट यसलाई पुन: उत्पन्न गर्न भन्नुहोस्।"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "यो बायोडाटा हाल लक गरिएको छ र अद्यावधिक गर्न मिल्दैन।"
@@ -3385,10 +3580,6 @@ msgstr "एक्स (ट्विटर)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "हो, Reactive Resume धेरै भाषाहरूमा उपलब्ध छ। तपाईंले सेटिङ पेजबाट वा माथिको दायाँ कुनामा रहेको भाषा सुइचर प्रयोग गरेर आफ्नो मनपर्ने भाषा छान्न सक्नुहुन्छ। यदि आफ्नो भाषा नदेखिनुभयो वा विद्यमान अनुवाद सुधार गर्न चाहनुहुन्छ भने, तपाईं <0>Crowdin मा अनुवादमा योगदान गर्न सक्नुहुन्छ<1> (नयाँ ट्याबमा खुल्छ)</1></0>।"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "हो! हरेक ढाँचा पूर्णरूपमा अनुकूल (customizable) छ। तपाईं रङ, फन्ट, स्पेसिङ परिवर्तन गर्न सक्नुहुन्छ, र आफ्नो बायोडाटाको रूपरङ्गमा पूरा नियन्त्रणका लागि custom CSS पनि लेख्न सक्नुहुन्छ।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "हो! Reactive Resume पूर्णतया निःशुल्क रूपमा प्रयोग गर्न सकिने एप हो, कुनै लुका लागत, प्रिमियम तह वा सदस्यता शुल्कबिनै। यो खुला-स्रोत हो र सधैं निःशुल्क रहनेछ।"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# functie} other {# functies}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} voorstellen beoordeeld"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Zeker! U kunt uw cv met één klik naar PDF exporteren. De geëxporteerde PDF behoudt al uw opmaak en stijlen perfect."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accepteren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Alles accepteren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Aanvaard voorstel"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Benader uw cv's en gegevens programmatisch met behulp van de API."
@@ -229,10 +246,38 @@ msgstr "Rij ervoor toevoegen"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Na"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI-integratie uitgeschakeld"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI-voorstel toegepast."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI-voorstel afgewezen."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI-voorstellen toegepast."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI-voorstellen afgewezen."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI-cv-assistent"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanees"
@@ -367,10 +412,22 @@ msgstr "Studierichting"
msgid "Artificial Intelligence"
msgstr "Kunstmatige intelligentie"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Vraag om een gerichte wijziging in je cv..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Vraag om een stapsgewijze verandering."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Beeldverhouding"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistentieverzoek mislukt"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Basisgegevens"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Prachtige sjablonen om uit te kiezen, met meer in aantocht."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Voor"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengaals"
@@ -462,10 +523,6 @@ msgstr "Opsommingstekens"
msgid "By the community, for the community."
msgstr "Door de gemeenschap, voor de gemeenschap."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Kan ik de sjablonen aanpassen?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Kan ik mijn cv naar PDF exporteren?"
@@ -576,6 +633,14 @@ msgstr "Duidelijk"
msgid "Click here to select a file to import"
msgstr "Klik hier om een bestand te selecteren om te importeren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Sluiten"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI-assistent sluiten"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Codeblok"
@@ -622,6 +687,10 @@ msgstr "Bevestigen"
msgid "Connect"
msgstr "Verbinden"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Maak eerst contact met een AI-aanbieder en controleer of deze betrouwbaar is voordat u gebruikmaakt van de voorgestelde oplossingen voor het bewerken van uw cv."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopieer deze geheime sleutel en gebruik deze in uw applicaties om toegan
msgid "Copy URL"
msgstr "URL kopiëren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Het AI-voorstel kon niet worden toegepast."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Verbinding verbreken"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Afwijzen"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentatie"
msgid "Don't have an account? <0/>"
msgstr "Heb je nog geen account? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Doneer"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Doneer aan Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "2FA inschakelen"
msgid "Enable AI Features"
msgstr "AI-functies inschakelen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI-integratie inschakelen"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Tweestapsverificatie inschakelen"
@@ -1162,6 +1247,10 @@ msgstr "Alles wat u hier invoert, wordt lokaal in uw browser opgeslagen. Uw gege
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Voorbeelden: herschrijf de samenvatting, scherper een ervaringspunt aan, voeg cijfers en statistieken toe of pas het cv aan een functieomschrijving aan."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Volledig scherm afsluiten"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Meer voorstellen"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Verplaatsen naar"
@@ -1982,6 +2075,10 @@ msgstr "Moet beginnen met https://"
msgid "Name"
msgstr "Naam"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Moet beoordeeld worden"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalees"
@@ -2012,6 +2109,10 @@ msgstr "Nieuw wachtwoord"
msgid "New Section"
msgstr "Nieuwe sectie"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Volgende"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Geen advertenties, geen tracking"
@@ -2061,11 +2162,19 @@ msgstr "Doorlopend onderhoud"
msgid "Open"
msgstr "Openen"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Open AI-assistent"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "E-mailclient openen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Open integraties"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Instellingen integraties openen"
@@ -2219,6 +2328,10 @@ msgstr "Voer het wachtwoord in dat met u is gedeeld door de eigenaar van het cv
msgid "Please enter the URL you want to link to:"
msgstr "Voer de URL in waarnaar u wilt linken:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Steun dit project alstublieft."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Positie"
msgid "Preferences"
msgstr "Voorkeuren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Wijzigingen voorbereiden"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Presets"
@@ -2267,6 +2384,10 @@ msgstr "Druk op <0>{RETURN_KEY}</0> of <1>{COMMA_KEY}</1> om het huidige trefwoo
msgid "Press <0>Enter</0> to open"
msgstr "Druk op <0>Enter</0> om te openen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Vorige"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primaire kleur"
@@ -2297,6 +2418,11 @@ msgstr "Voortgangsbalk"
msgid "Projects"
msgstr "Projecten"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Voorstel {0} van {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Bescherm uw cv tegen ongeautoriseerde toegang met een wachtwoord"
@@ -2319,6 +2445,10 @@ msgstr "Publicaties"
msgid "Publisher"
msgstr "Uitgever"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Ruwe JSON-patch"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ga naar de startpagina"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume is een gratis en open-source project, met liefde gebouwd
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume is een gratis en open-source cv-bouwer die het proces van het maken, bijwerken en delen van uw cv vereenvoudigt."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume is gratis en open source. Als het je geholpen heeft, overweeg dan een donatie."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume is open-source, privacygericht en volledig gratis. In tegenstelling tot andere cv-bouwers toont het geen advertenties, volgt het uw gegevens niet en beperkt het uw functies niet achter een betaalmuur."
@@ -2380,6 +2514,18 @@ msgstr "Vernieuwen"
msgid "Register New Device"
msgstr "Nieuw apparaat registreren"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Afwijzen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Alles afwijzen"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Afgewezen voorstel"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Wachtwoord nog weten? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Verificatie-e-mail wordt opnieuw verzonden..."
msgid "Reset"
msgstr "Resetten"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Chat opnieuw instellen"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Reset uw wachtwoord"
msgid "Resetting your password..."
msgstr "Uw wachtwoord wordt gereset..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "AI-assistent voor het aanpassen van de grootte"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Bronnen"
@@ -2463,6 +2617,14 @@ msgstr "CV-analyse voltooid."
msgid "Resumes"
msgstr "Cv's"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Beoordeling vereist"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Beoordeelde voorstellen"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rechts uitlijnen"
@@ -2561,6 +2723,10 @@ msgstr "Selecteren..."
msgid "Self-Host with Docker"
msgstr "Zelf hosten met Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Versturen"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "E-mail voor wachtwoordreset verzenden"
msgid "Sending password reset email..."
msgstr "E-mail voor wachtwoordreset wordt verzonden..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Verzoek verzenden"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Scheidingsteken"
@@ -2708,6 +2878,10 @@ msgstr "Enkelkoloms met een zijbalk en strakke rasterindeling; veelzijdig voor e
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Enkele kolom met een inline kopregel van drie kolommen (positie - organisatie - punt); compact en ATS-vriendelijk, zeer geschikt voor Aziatische cv-conventies (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Eénkoloms lay-out met hoofdletters voor de sectiekoppen en een gekleurde bovenlijn op elke pagina; perfect voor cv's van leidinggevenden, consultants of startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Enkelkoloms; gepolijst en serieus voor senior- of functies op ondernemingsniveau."
@@ -2808,6 +2982,10 @@ msgstr "Statistieken"
msgid "Stay"
msgstr "Blijven"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Sterke punten"
@@ -2902,6 +3080,14 @@ msgstr "Tekstkleur"
msgid "Thai"
msgstr "Thais"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "De AI stelde een wijziging voor die niet langer van toepassing is op dit cv."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "De AI leverde een voorstel op dat niet vooraf bekeken kon worden."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "De API-sleutel is succesvol verwijderd."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "De API-sleutel heeft na verwijdering geen toegang meer tot uw gegevens. Deze actie kan niet ongedaan worden gemaakt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "De assistent stopte even voordat hij een voorstel teruggaf."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Dit is een URL-vriendelijke naam voor uw cv."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Dit kan enkele minuten duren, afhankelijk van de reactie van de AI-provider. Sluit het venster niet en ververs de pagina niet."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Dit voorstel is verouderd. Vraag de assistent om het opnieuw te genereren op basis van het meest recente cv."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Dit cv is vergrendeld en kan niet worden bijgewerkt."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ja, Reactive Resume is beschikbaar in meerdere talen. U kunt uw voorkeurstaal kiezen op de instellingenpagina of met de taalwisselaar rechtsboven. Als u uw taal niet ziet, of als u de bestaande vertalingen wilt verbeteren, kunt u <0>bijdagen aan de vertalingen op Crowdin<1> (opent in nieuw tabblad)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ja! Elk sjabloon is volledig aanpasbaar. U kunt kleuren, lettertypen en afstand aanpassen en zelfs aangepaste CSS schrijven voor volledige controle over de uitstraling van uw cv."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ja! Reactive Resume is volledig gratis te gebruiken, zonder verborgen kosten, premiumlagen of abonnementskosten. Het is open-source en zal altijd gratis blijven."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elementer}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rolle} other {# roller}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} forslag gjennomgått"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Absolutt! Du kan eksportere CV-en din til PDF med ett klikk. Den eksporterte PDF-filen bevarer all formatering og stil perfekt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Akseptere"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Godta alle"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Godkjent forslag"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Få tilgang til CV-er og data programmessig ved å bruke API-et."
@@ -229,10 +246,38 @@ msgstr "Legg til rad før"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Etter"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "KI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI-integrasjon deaktivert"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI-forslag ble brukt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI-forslag avvist."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI-forslag ble brukt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI-forslag avvist."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI CV-assistent"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albansk"
@@ -367,10 +412,22 @@ msgstr "Studiefelt"
msgid "Artificial Intelligence"
msgstr "Kunstig intelligens"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Be om en målrettet CV-endring..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Be om en trinnvis endring"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Størrelsesforhold"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistent-forespørselen mislyktes"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Grunnleggende"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Vakre maler å velge mellom, med flere på vei."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Før"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Punktliste"
msgid "By the community, for the community."
msgstr "Av fellesskapet, for fellesskapet."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Kan jeg tilpasse malene?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Kan jeg eksportere CV-en min til PDF?"
@@ -576,6 +633,14 @@ msgstr "Tøm"
msgid "Click here to select a file to import"
msgstr "Klikk her for å velge en fil å importere"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Lukk"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Lukk AI-assistenten"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kodeblokk"
@@ -622,6 +687,10 @@ msgstr "Bekreft"
msgid "Connect"
msgstr "Koble til"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Koble til og bekreft en AI-leverandør før du bruker forslag til redigering av CV."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopier denne hemmelige nøkkelen og bruk den i applikasjonene dine for
msgid "Copy URL"
msgstr "Kopier URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Kunne ikke bruke AI-forslaget."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Koble fra"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Avskjedige"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentasjon"
msgid "Don't have an account? <0/>"
msgstr "Har du ikke en konto? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donere"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Doner til Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktiver 2FA"
msgid "Enable AI Features"
msgstr "Aktiver KI-funksjoner"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Aktiver AI-integrasjon"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktiver tofaktorautentisering"
@@ -1162,6 +1247,10 @@ msgstr "Alt du skriver inn her lagres lokalt i nettleseren din. Dataene dine sen
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Eksempler: skriv om sammendraget, stram inn ett erfaringspunkt, legg til målinger eller tilpass CV-en til en stillingsbeskrivelse."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avslutt fullskjerm"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modell"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Flere forslagstiltak"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Flytt til"
@@ -1982,6 +2075,10 @@ msgstr "Må starte med https://"
msgid "Name"
msgstr "Navn"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Trenger gjennomgang"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepali"
@@ -2012,6 +2109,10 @@ msgstr "Nytt passord"
msgid "New Section"
msgstr "Ny seksjon"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Neste"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Ingen annonser, ingen sporing"
@@ -2061,11 +2162,19 @@ msgstr "Løpende vedlikehold"
msgid "Open"
msgstr "Åpne"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Åpne AI-assistenten"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Åpne e-postklient"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Åpne integrasjoner"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Åpne innstillinger for integrasjoner"
@@ -2219,6 +2328,10 @@ msgstr "Skriv inn passordet som er delt med deg av eieren av CV-en for å fortse
msgid "Please enter the URL you want to link to:"
msgstr "Skriv inn URL-en du vil lenke til:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Vennligst støtt prosjektet"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Posisjon"
msgid "Preferences"
msgstr "Preferanser"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Forbereder endringer"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Forhåndsinnstillinger"
@@ -2267,6 +2384,10 @@ msgstr "Trykk <0>{RETURN_KEY}</0> eller <1>{COMMA_KEY}</1> for å legge til elle
msgid "Press <0>Enter</0> to open"
msgstr "Trykk <0>Enter</0> for å åpne"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Forrige"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hovedfarge"
@@ -2297,6 +2418,11 @@ msgstr "Fremdriftslinje"
msgid "Projects"
msgstr "Prosjekter"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Forslag {0} av {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Beskytt CV-en din mot uautorisert tilgang med et passord"
@@ -2319,6 +2445,10 @@ msgstr "Publikasjoner"
msgid "Publisher"
msgstr "Utgiver"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Rå JSON-oppdatering"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Gå til startsiden"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume er et gratis og åpen kildekode-prosjekt, bygget med kj
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume er en gratis og åpen kildekode CV-bygger som forenkler prosessen med å lage, oppdatere og dele CV-en din."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume er gratis og har åpen kildekode. Hvis det har hjulpet deg, bør du vurdere å donere."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume er åpen kildekode, personvernfokusert og helt gratis. I motsetning til andre CV-byggere viser den ikke annonser, sporer ikke dataene dine og begrenser ikke funksjoner bak en betalingsmur."
@@ -2380,6 +2514,18 @@ msgstr "Oppdater"
msgid "Register New Device"
msgstr "Registrer ny enhet"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Avvis"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Avvis alle"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Avvist forslag"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Husker du passordet ditt? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Sender verifiserings-e-post på nytt..."
msgid "Reset"
msgstr "Tilbakestill"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Tilbakestill chatten"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Tilbakestill passordet ditt"
msgid "Resetting your password..."
msgstr "Tilbakestiller passordet ditt..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Endre størrelse på AI-assistenten"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ressurser"
@@ -2463,6 +2617,14 @@ msgstr "CV-analysen er fullført."
msgid "Resumes"
msgstr "CV-er"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Gjennomgang kreves"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Gjennomgåtte forslag"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Høyrejuster"
@@ -2561,6 +2723,10 @@ msgstr "Velg..."
msgid "Self-Host with Docker"
msgstr "Selvhosting med Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Sende"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Send e-post for tilbakestilling av passord"
msgid "Sending password reset email..."
msgstr "Sender e-post for tilbakestilling av passord..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Sender forespørsel"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Skillelinje"
@@ -2708,6 +2878,10 @@ msgstr "Enkolonners med sidepanel og ren rutenettslayout; allsidig for alle prof
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Én kolonne med en innebygd topptekst i tre kolonner for hver oppføring (stilling · organisasjon · periode); kompakt og ATS-vennlig, godt egnet for asiatiske CV-konvensjoner (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Enkeltkolonne med overskrifter i store bokstaver og en primærfarget topplinje på hver side; polert for CV-er for ledere, konsulenter eller oppstartsbedrifter."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Enkolonners; polert og seriøs for senior- eller virksomhetsnivåstillinger."
@@ -2808,6 +2982,10 @@ msgstr "Statistikk"
msgid "Stay"
msgstr "Bli"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stoppe"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Styrker"
@@ -2902,6 +3080,14 @@ msgstr "Tekstfarge"
msgid "Thai"
msgstr "Thai"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI-en foreslo en endring som ikke lenger gjelder for denne CV-en."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI-en returnerte et forslag som ikke kunne forhåndsvises."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API-nøkkelen er slettet."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Etter sletting vil API-nøkkelen ikke lenger kunne få tilgang til dataene dine. Denne handlingen kan ikke angres."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Assistenten stoppet før han returnerte et forslag."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Dette er et URL-vennlig navn på CV-en din."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Dette kan ta noen minutter, avhengig av responsen fra KI-leverandøren. Ikke lukk vinduet eller oppdater siden."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Dette forslaget er foreldet. Be assistenten om å generere det på nytt fra den nyeste CV-en."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Denne CV-en er låst og kan ikke oppdateres."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ja, Reactive Resume er tilgjengelig på flere språk. Du kan velge foretrukket språk på innstillingssiden, eller ved å bruke språkvælgeren øverst til høyre. Hvis du ikke ser språket ditt, eller du vil forbedre eksisterende oversettelser, kan du <0>bidra til oversettelsene på Crowdin<1> (åpnes i ny fane)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ja! Hver mal er fullt ut tilpassbar. Du kan endre farger, skrifttyper, avstander og til og med skrive tilpasset CSS for full kontroll over hvordan CV-en ser ut."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ja! Reactive Resume er helt gratis å bruke, uten skjulte kostnader, premium-nivåer eller abonnementsgebyrer. Det er åpen kildekode og vil alltid forbli gratis."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ଆଇଟମ୍} other {# ଆଇଟମ୍}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ଭୂମିକା} other {# ଭୂମିକା}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} ପ୍ରସ୍ତାବଗୁଡ଼ିକର ସମୀକ୍ଷା କରାଯାଇଛି"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "ନିଶ୍ଚୟ! ଆପଣ ଗୋଟିଏ କ୍ଲିକ୍‌ରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେକୁ PDF କୁ ନିର୍ଯ୍ୟାତ କରିପାରିବେ। ନିର୍ଯ୍ୟାତ ହୋଇଥିବା PDF ଆପଣଙ୍କ ସମସ୍ତ ଫର୍ମାଟିଙ୍ଗ ଏବଂ ଶୈଳୀକୁ ସଠିକ୍ ଭାବରେ ରକ୍ଷା କରେ।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "ଗ୍ରହଣ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "ସବୁ ସ୍ୱୀକାର କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "ଗ୍ରହଣ କରାଯାଇଥିବା ପ୍ରସ୍ତାବ"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API ବ୍ୟବହାର କରି ଆପଣଙ୍କ ରେଜ୍ୟୁମେଗୁଡିକ ଏବଂ ତଥ୍ୟକୁ ପ୍ରୋଗ୍ରାମାଟିକ୍ ଭାବରେ ଆକ୍ସେସ୍ କରନ୍ତୁ।"
@@ -229,10 +246,38 @@ msgstr "ପୂର୍ବେ ପଙ୍କ୍ତି ଯୋଡନ୍ତୁ"
msgid "Afrikaans"
msgstr "ଆଫ୍ରିକାନ୍ସ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "ପରେ"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI ଇଣ୍ଟିଗ୍ରେସନକୁ ଅକ୍ଷମ କରାଯାଇଛି"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI ପ୍ରସ୍ତାବ ଲାଗୁ ହୋଇଛି।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI ପ୍ରସ୍ତାବକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଇଛି।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI ପ୍ରସ୍ତାବଗୁଡ଼ିକ ପ୍ରୟୋଗ କରାଯାଇଛି।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI ପ୍ରସ୍ତାବଗୁଡ଼ିକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଇଛି।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI ରିଜ୍ୟୁମ୍ ଆସିଷ୍ଟାଣ୍ଟ"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "ଆଲବାନିଆନ୍"
@@ -367,10 +412,22 @@ msgstr "ଅଧ୍ୟୟନ କ୍ଷେତ୍ର"
msgid "Artificial Intelligence"
msgstr "କୃତ୍ରିମ ବୁଦ୍ଧିମତ୍ତା"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "ଏକ ଲକ୍ଷ୍ୟଭେଦୀ ଜୀବନବୃତ୍ତାନ୍ତ ପରିବର୍ତ୍ତନ ପାଇଁ କୁହନ୍ତୁ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ଏକ କ୍ରମିକ ପରିବର୍ତ୍ତନ ପାଇଁ ପଚାରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ଆସ୍ପେକ୍ଟ ଅନୁପାତ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "ଆସିଷ୍ଟାଣ୍ଟ ଅନୁରୋଧ ବିଫଳ ହୋଇଛି"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "ମୌଳିକତା"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ଚୟନ କରିବା ପାଇଁ ସୁନ୍ଦର ଟେମ୍ପ୍ଲେଟ୍‌, ଆଉ ଅଧିକ ଆସୁଛି।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "ପୂର୍ବରୁ"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "ବଙ୍ଗାଳୀ"
@@ -462,10 +523,6 @@ msgstr "ବୁଲେଟ୍ ତାଲିକା"
msgid "By the community, for the community."
msgstr "ସମୁଦାୟ ଦ୍ୱାରା, ସମୁଦାୟ ପାଇଁ।"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "ମୁଁ ଟେମ୍ପ୍ଲେଟ୍‌ଗୁଡିକୁ କଷ୍ଟମାଇଜ୍ କରିପାରିବି କି?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "ମୁଁ ମୋର ରେଜ୍ୟୁମେକୁ PDF କୁ ନିର୍ଯ୍ୟାତ କରିପାରିବି କି?"
@@ -576,6 +633,14 @@ msgstr "ସଫା କରନ୍ତୁ"
msgid "Click here to select a file to import"
msgstr "ଆୟାତ କରିବା ପାଇଁ ଫାଇଲ୍ ଚୟନ କରିବାକୁ ଏଠାରେ କ୍ଲିକ୍ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "ବନ୍ଦ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI ଆସିଷ୍ଟାଣ୍ଟ ବନ୍ଦ କରନ୍ତୁ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "କୋଡ୍ ବ୍ଲକ୍"
@@ -622,6 +687,10 @@ msgstr "ନିଶ୍ଚିତ କରନ୍ତୁ"
msgid "Connect"
msgstr "ଯୋଡନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "ରିଜ୍ୟୁମ୍ ସମ୍ପାଦନ ପ୍ରସ୍ତାବ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଏକ AI ପ୍ରଦାନକାରୀଙ୍କ ସହିତ ସଂଯୋଗ କରନ୍ତୁ ଏବଂ ଯାଞ୍ଚ କରନ୍ତୁ।"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ଏହି ଗୁପ୍ତ କିକୁ କପି କରନ୍ତୁ ଏ
msgid "Copy URL"
msgstr "URL କପି କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "AI ପ୍ରସ୍ତାବକୁ ପ୍ରୟୋଗ କରିପାରିଲି ନାହିଁ।"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ଡିସ୍‌କନେକ୍ଟ କରନ୍ତୁ"
msgid "Discord"
msgstr "ଡିସକର୍ଡ (Discord)"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "ଖାରଜ କରନ୍ତୁ"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ଦଳିଲପତ୍ର"
msgid "Don't have an account? <0/>"
msgstr "ଖାତା ନାହିଁ? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "ଦାନ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume କୁ ଦାନ କରନ୍ତୁ"
@@ -1094,6 +1175,10 @@ msgstr "2FA ସକ୍ରିୟ କରନ୍ତୁ"
msgid "Enable AI Features"
msgstr "AI ବିଶେଷତା ସକ୍ରିୟ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI ଇଣ୍ଟିଗ୍ରେସନକୁ ସକ୍ଷମ କରନ୍ତୁ"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ ସକ୍ରିୟ କରନ୍ତୁ"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ଉଦାହରଣ: ସାରାଂଶକୁ ପୁଣି ଲେଖିବା, ଗୋଟିଏ ଅଭିଜ୍ଞତା ବୁଲେଟ୍ କଡ଼ାକଡ଼ି କରିବା, ମେଟ୍ରିକ୍ସ ଯୋଡିବା, କିମ୍ବା ଚାକିରି ବର୍ଣ୍ଣନା ପାଇଁ ରିଜ୍ୟୁମକୁ ଗ୍ରହଣ କରିବା।"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରୁ ବାହାରକୁ ଆସନ୍ତୁ"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "ମଡେଲ୍"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "ଅଧିକ ପ୍ରସ୍ତାବ କାର୍ଯ୍ୟ"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ଏଠାକୁ ସଞ୍ଚାଳନ କରନ୍ତୁ"
@@ -1982,6 +2075,10 @@ msgstr "https:// ସହ ଆରମ୍ଭ ହେବା ଆବଶ୍ୟକ"
msgid "Name"
msgstr "ନାମ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "ସମୀକ୍ଷା ଆବଶ୍ୟକ"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "ନେପାଳୀ"
@@ -2012,6 +2109,10 @@ msgstr "ନୂତନ ପାସୱାର୍ଡ"
msgid "New Section"
msgstr "ନୂତନ ବିଭାଗ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "ପରବର୍ତ୍ତୀ"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ବିଜ୍ଞାପନ ନାହିଁ, ଟ୍ରାକିଂ ନାହିଁ"
@@ -2061,11 +2162,19 @@ msgstr "ଚାଲୁ ରଖିବାକୁ ମରାମତି"
msgid "Open"
msgstr "ଖୋଲନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "AI ଆସିଷ୍ଟାଣ୍ଟ ଖୋଲନ୍ତୁ"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ଇମେଲ୍ କ୍ଲାୟେଣ୍ଟ ଖୋଲନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ଖୋଲନ୍ତୁ ଏକୀକରଣ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "ଇଣ୍ଟିଗ୍ରେସନ୍ସ ସେଟିଂସ୍ ଖୋଲନ୍ତୁ"
@@ -2219,6 +2328,10 @@ msgstr "ଦୟାକରି ରେଜ୍ୟୁମେ ମାଲିକଙ୍କ ଦ
msgid "Please enter the URL you want to link to:"
msgstr "ଦୟାକରି ଯେଉଁ URL କୁ ଲିଙ୍କ କରିବାକୁ ଚାହାଁନ୍ତି ସେଥିରେ ପ୍ରବେଶ କରନ୍ତୁ:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "ଦୟାକରି ପ୍ରୋଜେକ୍ଟକୁ ସମର୍ଥନ କରନ୍ତୁ।"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "ପଦବୀ"
msgid "Preferences"
msgstr "ପସନ୍ଦ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ପ୍ରସ୍ତୁତ କରାଯାଉଛି"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "ପ୍ରିସେଟ୍‌ଗୁଡିକ"
@@ -2267,6 +2384,10 @@ msgstr "ଏହି କୀୱାର୍ଡ ଯୋଡ଼ିବା କିମ୍ବା
msgid "Press <0>Enter</0> to open"
msgstr "ଖୋଲିବା ପାଇଁ <0>Enter</0> ଦବାନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "ପୂର୍ବବର୍ତ୍ତୀ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ମୁଖ୍ୟ ରଙ୍ଗ"
@@ -2297,6 +2418,11 @@ msgstr "ପ୍ରଗତି ବାର୍"
msgid "Projects"
msgstr "ପ୍ରକଳ୍ପଗୁଡିକ"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{total} ର {0} ପ୍ରସ୍ତାବ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେକୁ ଅନଧିକୃତ ଆକ୍ସେସ୍ ଠାରୁ ପାସୱାର୍ଡ ଦ୍ୱାରା ସୁରକ୍ଷିତ କରନ୍ତୁ"
@@ -2319,6 +2445,10 @@ msgstr "ପ୍ରକାଶନଗୁଡିକ"
msgid "Publisher"
msgstr "ପ୍ରକାଶକ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "ର JSON ପ୍ୟାଚ୍"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ହୋମ୍ପେଜ୍‌କୁ ଯାଆନ୍ତୁ"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ଏକ ନିଶୁଳ୍କ ଏବଂ ଖୋଲା‑
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume ଏକ ନିଶୁଳ୍କ ଏବଂ ଖୋଲା‑ମୂଳ ରେଜ୍ୟୁମେ ବିଲ୍ଡର, ଯାହା ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ତିଆରି, ଅଦ୍ୟତନ ଏବଂ ସେୟାର କରିବା ପ୍ରକ୍ରିୟାକୁ ସହଜ କରେ।"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "ପ୍ରତିକ୍ରିୟାଶୀଳ ରିଜ୍ୟୁମ୍ ମାଗଣା ଏବଂ ଖୋଲା ଉତ୍ସ। ଯଦି ଏହା ଆପଣଙ୍କୁ ସାହାଯ୍ୟ କରିଛି, ଦୟାକରି ଦାନ କରିବାକୁ ବିଚାର କରନ୍ତୁ।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ଖୋଲା‑ମୂଳ, ଗୋପନୀୟତା‑କେନ୍ଦ୍ରିତ ଏବଂ ସଂପୂର୍ଣ୍ଣ ଭାବରେ ନିଶୁଳ୍କ। ଅନ୍ୟ ରେଜ୍ୟୁମେ ବିଲ୍ଡରଗୁଡିକ ଭଳି ଏହା ବିଜ୍ଞାପନ ଦେଖାଏ ନାହିଁ, ଆପଣଙ୍କ ତଥ୍ୟକୁ ଟ୍ରାକ୍ କରେ ନାହିଁ, କିମ୍ବା ପେୱାଲ୍ ପଛରେ ବିଶେଷତାଗୁଡିକୁ ଆଟକାଇ ରଖେ ନାହିଁ।"
@@ -2380,6 +2514,18 @@ msgstr "ରିଫ୍ରେଶ କରନ୍ତୁ"
msgid "Register New Device"
msgstr "ନୂତନ ଡିଭାଇସ୍ ରେଜିଷ୍ଟର କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "ସବୁକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଇଥିବା ପ୍ରସ୍ତାବ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ମନେ ଅଛି? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "ସତ୍ୟାପନ ଇମେଲ୍ ପୁନଃ ପଠାଯାଉଛ
msgid "Reset"
msgstr "ରିସେଟ୍ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "ଚାଟ୍ ରିସେଟ୍ କରନ୍ତୁ"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ରିସେଟ୍ କରନ
msgid "Resetting your password..."
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ରିସେଟ୍ ହେଉଛି..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "AI ଆସିଷ୍ଟାଣ୍ଟର ଆକାର ବଦଳାନ୍ତୁ"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "ସମ୍ପଦ"
@@ -2463,6 +2617,14 @@ msgstr "ରେଜ୍ୟୁମେ ବିଶ୍ଳେଷଣ ସମ୍ପୂର୍
msgid "Resumes"
msgstr "ରେଜ୍ୟୁମେଗୁଡିକ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "ସମୀକ୍ଷା ଆବଶ୍ୟକ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "ସମୀକ୍ଷା କରାଯାଇଥିବା ପ୍ରସ୍ତାବଗୁଡ଼ିକ"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "ଡାହାଣ ସଙ୍ଗୁଯୋଗ"
@@ -2561,6 +2723,10 @@ msgstr "ବାଛନ୍ତୁ..."
msgid "Self-Host with Docker"
msgstr "Docker ସହ ସ୍ୱୟଂ‑ହୋଷ୍ଟ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "ପଠାନ୍ତୁ"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "ପାସୱାର୍ଡ ରିସେଟ୍ ଇମେଲ୍ ପଠାନ
msgid "Sending password reset email..."
msgstr "ପାସୱାର୍ଡ ରିସେଟ୍ ଇମେଲ୍ ପଠାଯାଉଛି..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "ଅନୁରୋଧ ପଠାଯାଉଛି"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "ବିଭଜକ"
@@ -2708,6 +2878,10 @@ msgstr "ସାଇଡବାର୍ ଏବଂ ସଫା ଗ୍ରିଡ୍ ଲେ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ଇନ୍‌ଲାଇନ୍ ତିନି-ସ୍ତମ୍ଭ ଏଣ୍ଟ୍ରି ହେଡର୍ (ପଦବୀ · ସଂସ୍ଥା · ସମୟାବଧି) ସହ ଏକକ-ସ୍ତମ୍ଭ; ସଂକ୍ଷିପ୍ତ ଏବଂ ATS-ଅନୁକୂଳ, ଏସିଆଇ ରେଜ୍ୟୁମେ ପ୍ରଚଳନ (CN/JP/KR) ପାଇଁ ବହୁତ ଉପଯୁକ୍ତ।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "ପ୍ରତ୍ୟେକ ପୃଷ୍ଠାରେ ବଡ଼ ଅକ୍ଷର ବିଭାଗ ଶୀର୍ଷକ ଏବଂ ଏକ ପ୍ରାଥମିକ ରଙ୍ଗର ଶୀର୍ଷ ନିୟମ ସହିତ ଏକକ ସ୍ତମ୍ଭ; କାର୍ଯ୍ୟନିର୍ବାହୀ, ପରାମର୍ଶଦାତା, କିମ୍ବା ଷ୍ଟାର୍ଟଅପ୍ ରିଜ୍ୟୁମ୍ ପାଇଁ ପଲିଶ୍ କରାଯାଇଛି।"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "ଏକକ‑କଲମ୍; ବରିଷ୍ଠ କିମ୍ବା ଉଦ୍ୟମ‑ସ୍ତରର ପଦବୀମାନଙ୍କ ପାଇଁ ମଜାଇଦାର ଏବଂ ଗୁଭୀର।"
@@ -2808,6 +2982,10 @@ msgstr "ସଂଖ୍ୟାତ୍ମକ ତଥ୍ୟ"
msgid "Stay"
msgstr "ରୁହନ୍ତୁ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "ବନ୍ଦ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "ଶକ୍ତିଗୁଡିକ"
@@ -2902,6 +3080,14 @@ msgstr "ପାଠ୍ୟ ରଙ୍ଗ"
msgid "Thai"
msgstr "ଥାଇ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI ଏକ ପରିବର୍ତ୍ତନ ପ୍ରସ୍ତାବ ଦେଇଥିଲା ଯାହା ଆଉ ଏହି ରିଜ୍ୟୁମରେ ପ୍ରଯୁଜ୍ୟ ନୁହେଁ।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "ଏଆଇ ଏକ ପ୍ରସ୍ତାବ ଫେରାଇ ଦେଇଥିଲା ଯାହାର ପୂର୍ବାବଲୋକନ କରାଯାଇପାରିଲା ନାହିଁ।"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API କି ସଫଳତାର ସହ ବିଲୋପ କରାଯାଇ
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API କି ବିଲୋପ କରାଯାଇବା ପରେ ଆପଣଙ୍କ ତଥ୍ୟକୁ ଆରମ୍ଭରୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ। ଏହି କାର୍ଯ୍ୟ ପୁନଃ କରିହୋଇପାରିବ ନାହିଁ।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "ସହାୟକ ଜଣକ ପ୍ରସ୍ତାବ ଫେରାଇବା ପୂର୍ବରୁ ଅଟକିଗଲେ।"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "ଏହା ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ପାଇଁ URL
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI ପ୍ରଦାନକାରୀଙ୍କ ପ୍ରତିକ୍ରିୟା ଉପରେ ନିର୍ଭର କରି, ଏହାକୁ କିଛି ମିନିଟ୍ ଲାଗିପାରେ। ଦୟାକରି ଉଇଣ୍ଡୋଟିକୁ ବନ୍ଦ କରନ୍ତୁ ନାହିଁ କିମ୍ବା ପେଜ୍‌ଟିକୁ ରିଫ୍ରେଶ କରନ୍ତୁ ନାହିଁ।"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "ଏହି ପ୍ରସ୍ତାବଟି ପୁରୁଣା। ସହାୟକଙ୍କୁ ନୂତନତମ ରିଜ୍ୟୁମରୁ ଏହାକୁ ପୁନଃ ସୃଷ୍ଟି କରିବାକୁ କୁହନ୍ତୁ।"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "ଏହି ରେଜ୍ୟୁମେଟି ଲକ୍ ହୋଇଛି ଏବଂ ଅଦ୍ୟତନ କରିହୋଇପାରିବ ନାହିଁ।"
@@ -3385,10 +3580,6 @@ msgstr "X (ଟ୍ୱିଟର)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "ହଁ, Reactive Resume ଅନେକ ଭାଷାରେ ଉପଲବ୍ଧ। ଆପଣ ସେଟିଂସ୍ ପେଜ୍‌ରେ, କିମ୍ବା ଡାହାଣ ପର୍ଯ୍ୟନ୍ତ ଉପର କୋଣରେ ଥିବା ଭାଷା ସ୍ୱିଚ୍‌ର ବ୍ୟବହାର କରି ପସନ୍ଦକ୍ରାତ ଭାଷା ଚୟନ କରିପାରିବେ। ଯଦି ଆପଣ ଆପଣଙ୍କ ଭାଷାକୁ ଦେଖୁନଥିବେ, କିମ୍ବା ଅବସ୍ଥିତ ଅନୁବାଦଗୁଡିକୁ ଉନ୍ନତ କରିବାକୁ ଚାହାଁନ୍ତି, ତେବେ ଆପଣ <0>Crowdin ରେ ଅନୁବାଦଗୁଡିକୁ ଅବଦାନ ଦେଇପାରିବେ<1> (ନୂତନ ଟାବ୍‌ରେ ଖୋଲେ)</1></0>।"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "ହଁ! ପ୍ରତ୍ୟେକ ଟେମ୍ପ୍ଲେଟ୍ ପ୍ରତିପୂର୍ଣ୍ଣ ଭାବରେ କଷ୍ଟମାଇଜ୍ କରିହୋଇପାରିବ। ଆପଣ ରଙ୍ଗ, ଫଣ୍ଟ, ଖାଲି ସ୍ଥାନ ବଦଳାଇ ପାରିବେ, ଏବଂ ଆପଣଙ୍କ ରେଜ୍ୟୁମେର ଦେଖା ଅନୁଭବ ଉପରେ ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ପାଇଁ କଷ୍ଟମ୍ CSS ଲେଖି ପାରିବେ।"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "ହଁ! Reactive Resume ସଂପୂର୍ଣ୍ଣ ଭାବରେ ନିଶୁଳ୍କ, କୌଣସି ଲୁଚା ଖର୍ଚ୍ଚ, ପ୍ରିମିୟମ ସ୍ତର କିମ୍ବା ସବ୍ସକ୍ରିପ୍ସନ୍ ଶୁଳ୍କ ନାହିଁ। ଏହା ଖୋଲା‑ମୂଳ ଏବଂ ସଦା ପାଇଁ ନିଶୁଳ୍କ ରହିବ।"
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} few {# elementy} many {# elementów} other {
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# stanowisko} few {# stanowiska} many {# stanowisk} other {# stanowiska}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} przejrzanych propozycji"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Oczywiście! Możesz wyeksportować swoje CV do PDF jednym kliknięciem. Wyeksportowany PDF zachowa wszystkie formatowanie i styl w idealnym stanie."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Przyjąć"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Akceptuj wszystko"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Zaakceptowana propozycja"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Uzyskaj programistyczny dostęp do swoich CV i danych za pomocą API."
@@ -229,10 +246,38 @@ msgstr "Dodaj wiersz przed"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Po"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integracja AI wyłączona"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Zastosowano propozycję sztucznej inteligencji."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Propozycja sztucznej inteligencji odrzucona."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Zastosowano propozycje sztucznej inteligencji."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propozycje dotyczące sztucznej inteligencji odrzucone."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asystent CV AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albański"
@@ -367,10 +412,22 @@ msgstr "Kierunek studiów"
msgid "Artificial Intelligence"
msgstr "Sztuczna inteligencja"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Poproś o ukierunkowaną zmianę CV..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Poproś o stopniową zmianę"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporcje obrazu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Żądanie asystenta nie powiodło się"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Podstawy"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Piękne szablony do wyboru, a wkrótce kolejne."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Zanim"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalski"
@@ -462,10 +523,6 @@ msgstr "Lista wypunktowana"
msgid "By the community, for the community."
msgstr "Stworzone przez społeczność dla społeczności."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Czy mogę dostosować szablony?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Czy mogę wyeksportować swoje CV do PDF?"
@@ -576,6 +633,14 @@ msgstr "Wyczyść"
msgid "Click here to select a file to import"
msgstr "Kliknij tutaj, aby wybrać plik do importu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Zamknij"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Zamknij asystenta AI"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blok kodu"
@@ -622,6 +687,10 @@ msgstr "Potwierdź"
msgid "Connect"
msgstr "Połącz"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Skontaktuj się z dostawcą sztucznej inteligencji i zweryfikuj go, zanim skorzystasz z propozycji edycji CV."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Skopiuj ten tajny klucz i użyj go w swoich aplikacjach, aby uzyskać do
msgid "Copy URL"
msgstr "Kopiuj URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nie udało się zastosować propozycji sztucznej inteligencji."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Odłącz"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Odrzucać"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentacja"
msgid "Don't have an account? <0/>"
msgstr "Nie masz konta? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Podarować"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Przekaż darowiznę na rzecz Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Włącz 2FA"
msgid "Enable AI Features"
msgstr "Włącz funkcje AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Włącz integrację AI"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Włącz uwierzytelnianie dwuskładnikowe"
@@ -1162,6 +1247,10 @@ msgstr "Wszystko, co tutaj wpiszesz, jest przechowywane lokalnie w Twojej przegl
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Przykłady: przepisz podsumowanie, skróć jeden punkt dotyczący doświadczenia, dodaj wskaźniki lub dostosuj CV do opisu stanowiska."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Wyjdź z trybu pełnoekranowego"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Więcej działań w ramach propozycji"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Przenieś do"
@@ -1982,6 +2075,10 @@ msgstr "Proszę zacząć od https://"
msgid "Name"
msgstr "Nazwa"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Wymaga przeglądu"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalski"
@@ -2012,6 +2109,10 @@ msgstr "Nowe hasło"
msgid "New Section"
msgstr "Nowa sekcja"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Następny"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Bez reklam, bez śledzenia"
@@ -2061,11 +2162,19 @@ msgstr "Bieżące utrzymanie"
msgid "Open"
msgstr "Otwórz"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Otwarty asystent AI"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Otwórz klienta poczty e-mail"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Otwarte integracje"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Proszę otworzyć Ustawienia integracji"
@@ -2219,6 +2328,10 @@ msgstr "Wprowadź hasło udostępnione Ci przez właściciela CV, aby kontynuowa
msgid "Please enter the URL you want to link to:"
msgstr "Wpisz adres URL, do którego chcesz utworzyć link:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Proszę wesprzeć projekt"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Stanowisko"
msgid "Preferences"
msgstr "Preferencje"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Przygotowywanie zmian"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Ustawienia wstępne"
@@ -2267,6 +2384,10 @@ msgstr "Naciśnij <0>{RETURN_KEY}</0> lub <1>{COMMA_KEY}</1>, aby dodać lub zap
msgid "Press <0>Enter</0> to open"
msgstr "Proszę wcisnąć <0>Enter</0>, aby otworzyć"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Poprzedni"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Kolor główny"
@@ -2297,6 +2418,11 @@ msgstr "Pasek postępu"
msgid "Projects"
msgstr "Projekty"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Propozycja {0} z {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Chroń swoje CV hasłem przed nieautoryzowanym dostępem"
@@ -2319,6 +2445,10 @@ msgstr "Publikacje"
msgid "Publisher"
msgstr "Wydawca"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Surowa łatka JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – przejdź do strony głównej"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume to darmowy, open-source'owy projekt, tworzony z pasją i
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume to darmowy i open-source'owy kreator CV, który upraszcza proces tworzenia, aktualizowania i udostępniania CV."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume jest darmowy i ma otwarte oprogramowanie. Jeśli Ci pomogło, rozważ przekazanie darowizny."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume jest open-source, skupione na prywatności i całkowicie darmowe. W przeciwieństwie do innych kreatorów CV nie wyświetla reklam, nie śledzi Twoich danych ani nie ukrywa funkcji za paywallem."
@@ -2380,6 +2514,18 @@ msgstr "Odśwież"
msgid "Register New Device"
msgstr "Zarejestrować nowe urządzenie"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Odrzucić"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Odrzuć wszystko"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Odrzucona propozycja"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Pamiętasz hasło? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Ponowne wysyłanie e-maila weryfikacyjnego..."
msgid "Reset"
msgstr "Zresetuj"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Zresetuj czat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Zresetuj swoje hasło"
msgid "Resetting your password..."
msgstr "Resetowanie hasła..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Asystent zmiany rozmiaru AI"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Zasoby"
@@ -2463,6 +2617,14 @@ msgstr "Analiza CV zakończona."
msgid "Resumes"
msgstr "CV"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Wymagana recenzja"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Przejrzane propozycje"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Wyrównaj do prawej"
@@ -2561,6 +2723,10 @@ msgstr "Wybierz..."
msgid "Self-Host with Docker"
msgstr "Samodzielny hosting z Dockerem"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Wysłać"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Wyślij e-mail do resetowania hasła"
msgid "Sending password reset email..."
msgstr "Wysyłanie e-maila do resetowania hasła..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Wysyłanie żądania"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separator"
@@ -2708,6 +2878,10 @@ msgstr "Jedna kolumna z paskiem bocznym i przejrzystą siatką; uniwersalny ukł
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Jednokolumnowy z wbudowanym trzykolumnowym nagłówkiem (stanowisko - organizacja - kropka); kompaktowy i przyjazny dla ATS, dobrze dopasowany do azjatyckich konwencji CV (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Jedna kolumna z nagłówkami sekcji pisanymi wielkimi literami i podstawową linią koloru górnego na każdej stronie; dopracowane pod kątem życiorysów kadry kierowniczej, konsultantów lub startupów."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Jedna kolumna; dopracowany i poważny układ dla stanowisk seniorskich lub na poziomie korporacyjnym."
@@ -2808,6 +2982,10 @@ msgstr "Statystyki"
msgid "Stay"
msgstr "Zostań"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Zatrzymywać się"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Mocne strony"
@@ -2902,6 +3080,14 @@ msgstr "Kolor tekstu"
msgid "Thai"
msgstr "Tajski"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Sztuczna inteligencja zaproponowała zmianę, która już nie ma zastosowania do tego CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Sztuczna inteligencja zwróciła propozycję, której nie można było wyświetlić."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Klucz API został pomyślnie usunięty."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Po usunięciu ten klucz API nie będzie już mógł uzyskiwać dostępu do Twoich danych. Tej akcji nie można cofnąć."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asystent zatrzymał się przed przekazaniem propozycji."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "To przyjazna dla adresu URL nazwa Twojego CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "To może potrwać kilka minut, w zależności od czasu odpowiedzi dostawcy AI. Nie zamykaj okna ani nie odświeżaj strony."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Ta propozycja jest nieaktualna. Poproś asystenta o jej ponowne wygenerowanie na podstawie najnowszego CV."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "To CV jest zablokowane i nie można go aktualizować."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Tak, Reactive Resume jest dostępne w wielu językach. Możesz wybrać preferowany język na stronie ustawień lub za pomocą przełącznika języka w prawym górnym rogu. Jeśli nie widzisz swojego języka lub chcesz ulepszyć istniejące tłumaczenia, możesz <0>współtworzyć tłumaczenia na Crowdin<1> (otwiera się w nowej karcie)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Tak! Każdy szablon jest w pełni konfigurowalny. Możesz zmieniać kolory, czcionki, odstępy, a nawet pisać własny CSS, aby w pełni kontrolować wygląd swojego CV."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Tak! Reactive Resume jest całkowicie darmowe w użyciu, bez ukrytych kosztów, planów premium czy opłat abonamentowych. Jest open-source i zawsze będzie darmowe."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# itens}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# cargo} other {# cargos}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propostas analisadas"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Com certeza! Você pode exportar seu currículo para PDF com um único clique. O PDF exportado mantém toda a sua formatação e estilo perfeitamente."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Aceitar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Aceitar tudo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Proposta aceita"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Acesse seus currículos e dados programaticamente usando a API."
@@ -229,10 +246,38 @@ msgstr "Adicionar linha antes"
msgid "Afrikaans"
msgstr "Africâner"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Depois"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integração de IA desativada"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Proposta de IA aplicada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Proposta de IA rejeitada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Propostas de IA aplicadas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propostas de IA rejeitadas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Assistente de Currículo com IA"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanês"
@@ -367,10 +412,22 @@ msgstr "Área de estudo"
msgid "Artificial Intelligence"
msgstr "Inteligência Artificial"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Solicite uma alteração específica no currículo..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Solicite uma mudança gradual."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporção da imagem"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "A solicitação de assistência falhou"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Informações básicas"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Modelos bonitos para escolher, com mais a caminho."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Antes"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Lista com marcadores"
msgid "By the community, for the community."
msgstr "Construída pela comunidade para a comunidade."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Posso personalizar os modelos?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Posso exportar meu currículo para PDF?"
@@ -576,6 +633,14 @@ msgstr "Limpo"
msgid "Click here to select a file to import"
msgstr "Clique aqui para selecionar um arquivo para importar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Fechar"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Fechar assistente de IA"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bloco de código"
@@ -622,6 +687,10 @@ msgstr "Confirmar"
msgid "Connect"
msgstr "Conectar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Antes de usar propostas de edição de currículo, entre em contato e verifique a confiabilidade de um fornecedor de IA."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copie esta chave secreta e use-a em seus aplicativos para acessar seus d
msgid "Copy URL"
msgstr "Copiar URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Não foi possível aplicar a proposta de IA."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Desconectar"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Liberar"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentação"
msgid "Don't have an account? <0/>"
msgstr "Não tem uma conta? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Doar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Doe para o Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Ativar 2FA"
msgid "Enable AI Features"
msgstr "Ativar recursos de IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Habilitar a integração de IA"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Ativar autenticação de dois fatores"
@@ -1162,6 +1247,10 @@ msgstr "Tudo o que for inserido aqui é armazenado localmente no seu navegador.
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Exemplos: reescrever o resumo, condensar um dos tópicos de experiência, adicionar métricas ou adaptar o currículo à descrição da vaga."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Sair da tela cheia"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modelo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Mais ações propostas"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Mover para"
@@ -1982,6 +2075,10 @@ msgstr "Deve começar com https://"
msgid "Name"
msgstr "Nome"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Precisa de revisão"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalês"
@@ -2012,6 +2109,10 @@ msgstr "Nova senha"
msgid "New Section"
msgstr "Nova seção"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Próximo"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Sem publicidade, sem rastreamento"
@@ -2061,11 +2162,19 @@ msgstr "Manutenção contínua"
msgid "Open"
msgstr "Abrir"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Assistente de IA aberta"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Abrir cliente de email"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrações abertas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Abrir Integrations Settings (Configurações de integrações)"
@@ -2219,6 +2328,10 @@ msgstr "Insira a senha compartilhada com você pelo proprietário do currículo
msgid "Please enter the URL you want to link to:"
msgstr "Insira o URL para o qual você deseja criar o link:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Por favor, apoie o projeto."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Posição"
msgid "Preferences"
msgstr "Preferências"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparando alterações"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Predefinições"
@@ -2267,6 +2384,10 @@ msgstr "Pressione <0>{RETURN_KEY}</0> ou <1>{COMMA_KEY}</1> para adicionar ou sa
msgid "Press <0>Enter</0> to open"
msgstr "Pressione <0>Enter</0> para abrir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Anterior"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Cor primária"
@@ -2297,6 +2418,11 @@ msgstr "Barra de progresso"
msgid "Projects"
msgstr "Projetos"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposta {0} de {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Proteja seu currículo de acessos não autorizados com uma senha"
@@ -2319,6 +2445,10 @@ msgstr "Publicações"
msgid "Publisher"
msgstr "Editor"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch JSON bruto"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ir para a página inicial"
@@ -2340,6 +2470,10 @@ msgstr "O Reactive Resume é um projeto gratuito e de código aberto, construíd
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "O Reactive Resume é um criador de currículos gratuito e de código aberto que simplifica o processo de criação, atualização e compartilhamento de seu currículo."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "O Reactive Resume é gratuito e de código aberto. Se ele lhe foi útil, considere fazer uma doação."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "O Reactive Resume é de código aberto, focado em privacidade e completamente gratuito. Ao contrário de outros criadores de currículos, ele não exibe anúncios, não rastreia seus dados e não limita recursos atrás de um paywall."
@@ -2380,6 +2514,18 @@ msgstr "Atualizar"
msgid "Register New Device"
msgstr "Registrar novo dispositivo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rejeitar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Rejeitar tudo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Proposta rejeitada"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Lembrou sua senha? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Reenviando email de verificação..."
msgid "Reset"
msgstr "Redefinir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Reiniciar bate-papo"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Redefinir a sua senha"
msgid "Resetting your password..."
msgstr "Redefinindo a sua senha..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Assistente de IA para redimensionar"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Recursos"
@@ -2463,6 +2617,14 @@ msgstr "Análise de currículo concluída."
msgid "Resumes"
msgstr "Currículos"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Revisão necessária"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propostas analisadas"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alinhar à direita"
@@ -2561,6 +2723,10 @@ msgstr "Selecionar..."
msgid "Self-Host with Docker"
msgstr "Auto-hospedagem com Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Enviar"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Enviar email de redefinição de senha"
msgid "Sending password reset email..."
msgstr "Enviando email de redefinição de senha..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Enviando solicitação"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separador"
@@ -2708,6 +2878,10 @@ msgstr "Uma coluna com barra lateral e layout em grade limpa; versátil para qua
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Coluna única com um cabeçalho de entrada em linha de três colunas (cargo - organização - ponto); compacto e amigável para ATS, adequado para convenções de currículo asiáticas (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Formato de coluna única com títulos de seção em maiúsculas e linha superior na cor principal em todas as páginas; ideal para currículos de executivos, consultores ou startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Uma coluna; polido e sério para posições sênior ou de nível corporativo."
@@ -2808,6 +2982,10 @@ msgstr "Estatísticas"
msgid "Stay"
msgstr "Ficar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Parar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Pontos fortes"
@@ -2902,6 +3080,14 @@ msgstr "Cor do texto"
msgid "Thai"
msgstr "Tailandês"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "A IA propôs uma alteração que já não se aplica a este currículo."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "A IA retornou uma proposta que não pôde ser visualizada previamente."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "A chave de API foi excluída com sucesso."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "A chave de API não poderá mais acessar seus dados após a exclusão. Esta ação não pode ser desfeita."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "O assistente parou antes de apresentar uma proposta."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Este é um nome amigável para URL do seu currículo."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Isso pode levar alguns minutos, dependendo da resposta do provedor de IA. Não feche a janela nem atualize a página."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Esta proposta está desatualizada. Peça ao assistente para gerá-la novamente a partir do currículo mais recente."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Este currículo está bloqueado e não pode ser atualizado."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Sim, o Reactive Resume está disponível em vários idiomas. Você pode escolher seu idioma preferido na página de configurações ou usando o seletor de idioma no canto superior direito. Se você não encontrar seu idioma ou quiser melhorar as traduções existentes, você pode <0>contribuir com as traduções no Crowdin<1> (abre em nova aba)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Sim! Cada modelo é totalmente personalizável. Você pode alterar cores, fontes, espaçamentos e até escrever CSS personalizado para ter controle total sobre a aparência do seu currículo."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Sim! O Reactive Resume é completamente gratuito para usar, sem custos ocultos, níveis premium ou taxas de assinatura. É de código aberto e sempre permanecerá gratuito."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# função} other {# funções}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propostas analisadas"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Claro! Pode exportar o seu currículo para PDF com um único clique. O PDF exportado mantém toda a sua formatação e estilo na perfeição."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Aceitar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Aceitar tudo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Proposta aceite"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Aceda programaticamente aos seus currículos e dados utilizando a API."
@@ -229,10 +246,38 @@ msgstr "Adicionar linha antes"
msgid "Afrikaans"
msgstr "Africâner"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Depois"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integração de IA desativada"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Proposta de IA aplicada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Proposta de IA rejeitada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Propostas de IA aplicadas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propostas de IA rejeitadas."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Assistente de Currículo com IA"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanês"
@@ -367,10 +412,22 @@ msgstr "Área de estudo"
msgid "Artificial Intelligence"
msgstr "Inteligência Artificial"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Solicite uma alteração específica no currículo..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Solicite uma mudança gradual."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporção"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "A solicitação de assistência falhou"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Informações básicas"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Modelos bonitos para escolher, com mais a caminho."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Antes"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Lista com marcadores"
msgid "By the community, for the community."
msgstr "Pela comunidade, para a comunidade."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Posso personalizar os modelos?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Posso exportar o meu currículo para PDF?"
@@ -576,6 +633,14 @@ msgstr "Limpar"
msgid "Click here to select a file to import"
msgstr "Clique aqui para selecionar um ficheiro para importar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Fechar"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Fechar assistente de IA"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bloco de código"
@@ -622,6 +687,10 @@ msgstr "Confirmar"
msgid "Connect"
msgstr "Ligar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Antes de utilizar propostas de edição de currículos, contacte e verifique a fiabilidade de um fornecedor de IA."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copie esta chave secreta e utilize-a nas suas aplicações para aceder a
msgid "Copy URL"
msgstr "Copiar URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Não foi possível aplicar a proposta de IA."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Desligar"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Dispensar"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentação"
msgid "Don't have an account? <0/>"
msgstr "Não tem uma conta? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Doar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Faça um donativo para o Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Ativar 2FA"
msgid "Enable AI Features"
msgstr "Ativar funcionalidades de IA"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Ativar a integração de IA"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Ativar autenticação de dois fatores"
@@ -1162,6 +1247,10 @@ msgstr "Tudo o que for introduzido aqui é armazenado localmente no seu navegado
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Exemplos: reescrever o resumo, condensar um dos tópicos de experiência, adicionar métricas ou adaptar o currículo à descrição da função."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Sair do ecrã inteiro"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modelo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Mais ações propostas"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Mover para"
@@ -1982,6 +2075,10 @@ msgstr "Deve começar por https://"
msgid "Name"
msgstr "Nome"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Precisa de revisão"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalês"
@@ -2012,6 +2109,10 @@ msgstr "Nova senha"
msgid "New Section"
msgstr "Nova secção"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Seguinte"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Sem publicidade, sem rastreamento"
@@ -2061,11 +2162,19 @@ msgstr "Manutenção contínua"
msgid "Open"
msgstr "Abrir"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Assistente de IA aberta"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Abrir cliente de email"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrações abertas"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Abra as definições de integrações"
@@ -2219,6 +2328,10 @@ msgstr "Introduza a senha partilhada consigo pelo proprietário do currículo pa
msgid "Please enter the URL you want to link to:"
msgstr "Introduza o URL para o qual pretende criar o link:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Por favor, apoie o projeto."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Cargo"
msgid "Preferences"
msgstr "Preferências"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Preparando alterações"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Predefinições"
@@ -2267,6 +2384,10 @@ msgstr "Pressione <0>{RETURN_KEY}</0> ou <1>{COMMA_KEY}</1> para adicionar ou sa
msgid "Press <0>Enter</0> to open"
msgstr "Prima <0>Enter</0> para abrir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Anterior"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Cor principal"
@@ -2297,6 +2418,11 @@ msgstr "Barra de progresso"
msgid "Projects"
msgstr "Projetos"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Proposta {0} de {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Proteja o seu currículo de acessos não autorizados com uma senha"
@@ -2319,6 +2445,10 @@ msgstr "Publicações"
msgid "Publisher"
msgstr "Editora"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch JSON em bruto"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ir para a página inicial"
@@ -2340,6 +2470,10 @@ msgstr "O Reactive Resume é um projeto gratuito e de código aberto, construíd
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "O Reactive Resume é um criador de currículos gratuito e de código aberto que simplifica o processo de criação, atualização e de partilha do seu currículo."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "O Reactive Resume é gratuito e de código aberto. Se ele lhe foi útil, considere fazer um donativo."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "O Reactive Resume é de código aberto, focado na privacidade e completamente gratuito. Ao contrário de outros criadores de currículos, não mostra anúncios, não rastreia os seus dados nem limita funcionalidades atrás de um paywall."
@@ -2380,6 +2514,18 @@ msgstr "Recarregar"
msgid "Register New Device"
msgstr "Registar novo dispositivo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rejeitar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Rejeitar tudo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Proposta rejeitada"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Lembra-se da sua palavra-passe? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "A reenviar email de verificação..."
msgid "Reset"
msgstr "Repor"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Reiniciar o bate-papo"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Repor a sua senha"
msgid "Resetting your password..."
msgstr "A repor a sua senha..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Assistente de IA para redimensionar"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Recursos"
@@ -2463,6 +2617,14 @@ msgstr "Análise do currículo concluída."
msgid "Resumes"
msgstr "Currículos"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Revisão necessária"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propostas analisadas"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alinhar à direita"
@@ -2561,6 +2723,10 @@ msgstr "Selecionar..."
msgid "Self-Host with Docker"
msgstr "Faça auto-hospedagem com o Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Enviar"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Enviar email para repor senha"
msgid "Sending password reset email..."
msgstr "A enviar email para repor senha..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Enviando solicitação"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separador"
@@ -2708,6 +2878,10 @@ msgstr "Uma coluna com uma barra lateral e um layout de grelha limpo; versátil
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Coluna única com um cabeçalho de entrada em linha de três colunas (cargo - organização - ponto final); compacto e de fácil utilização pelos ATS, adequado às convenções asiáticas de currículos (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Formato de coluna única com títulos de secção em maiúsculas e linha superior na cor principal em todas as páginas; ideal para currículos de executivos, consultores ou startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Uma coluna; polido e sério para posições sénior ou de nível empresarial."
@@ -2808,6 +2982,10 @@ msgstr "Estatísticas"
msgid "Stay"
msgstr "Ficar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Parar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Pontos fortes"
@@ -2902,6 +3080,14 @@ msgstr "Cor do texto"
msgid "Thai"
msgstr "Tailandês"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "A IA propôs uma alteração que já não se aplica a este currículo."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "A IA devolveu uma proposta que não pôde ser visualizada previamente."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "A chave API foi eliminada com sucesso."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "A chave API deixará de conseguir aceder aos seus dados após a eliminação. Esta ação não pode ser anulada."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "O assistente parou antes de apresentar uma proposta."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Este é um nome compatível com URL para o seu currículo."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Isto pode demorar alguns minutos, dependendo da resposta do fornecedor de IA. Não feche a janela nem atualize a página."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Esta proposta está desatualizada. Peça ao assistente para a gerar novamente a partir do currículo mais recente."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Este currículo está bloqueado e não pode ser atualizado."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Sim, o Reactive Resume está disponível em vários idiomas. Pode escolher o seu idioma preferido na página de configurações ou utilizando o seletor de idioma no canto superior direito. Se não vir o seu idioma ou quiser melhorar as traduções existentes, pode <0>contribuir para as traduções no Crowdin<1> (abre num novo separador)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Sim! Todos os modelos são totalmente personalizáveis. Pode alterar cores, fontes, espaçamento e até escrever CSS personalizado para ter controlo total sobre a aparência do seu currículo."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Sim! O Reactive Resume é completamente gratuito, sem custos ocultos, níveis premium ou taxas de subscrição. É de código aberto e permanecerá sempre gratuito."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:05\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} few {# elemente} other {# de elemente}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rol} few {# roluri} other {# de roluri}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propuneri analizate"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Desigur! Puteți exporta CV-ul în PDF cu un singur clic. PDF-ul exportat păstrează perfect toată formatarea și stilizarea."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Accepta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Acceptă tot"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Propunere acceptată"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Accesați CV-urile și datele dvs. programatic folosind API-ul."
@@ -229,10 +246,38 @@ msgstr "Adăugați rând înainte"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "După"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrarea AI dezactivată"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Propunerea de inteligență artificială a fost aplicată."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Propunerea de inteligență artificială a fost respinsă."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Propuneri de inteligență artificială aplicate."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propunerile de inteligență artificială au fost respinse."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asistent CV cu inteligență artificială"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albaneză"
@@ -367,10 +412,22 @@ msgstr "Domeniu de studiu"
msgid "Artificial Intelligence"
msgstr "Inteligență artificială"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Cere o schimbare specifică a CV-ului..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Cere o schimbare incrementală"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Raport de aspect"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Solicitarea asistentului a eșuat"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Informații de bază"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Șabloane frumoase din care să alegeți, cu altele pe drum."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Înainte"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengaleză"
@@ -462,10 +523,6 @@ msgstr "Listă cu puncte"
msgid "By the community, for the community."
msgstr "Construit de comunitate, pentru comunitate."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Pot personaliza șabloanele?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Pot să-mi export CV-ul în PDF?"
@@ -576,6 +633,14 @@ msgstr "Clar"
msgid "Click here to select a file to import"
msgstr "Faceți clic aici pentru a selecta un fișier de importat"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Închide"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Închide asistentul AI"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bloc de cod"
@@ -622,6 +687,10 @@ msgstr "Confirmă"
msgid "Connect"
msgstr "Conectează"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Conectează-te și verifică un furnizor de inteligență artificială înainte de a utiliza propuneri de editare a CV-urilor."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Copiați această cheie secretă și folosiți-o în aplicațiile dvs. p
msgid "Copy URL"
msgstr "Copiază URL-ul"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nu s-a putut aplica propunerea de inteligență artificială."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Deconectează"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Închide"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Documentație"
msgid "Don't have an account? <0/>"
msgstr "Nu ai un cont? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Dona"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donează către Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Activează 2FA"
msgid "Enable AI Features"
msgstr "Activează funcționalitățile AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Activează integrarea inteligenței artificiale"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Activează autentificarea cu doi factori"
@@ -1162,6 +1247,10 @@ msgstr "Tot ce introduceți aici este stocat local în browserul dvs. Datele sun
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Exemple: rescrieți rezumatul, restrângeți un punct referitor la experiență, adăugați indicatori de performanță sau adaptați CV-ul pentru o fișă a postului."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ieșire din ecran complet"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Mai multe acțiuni de propunere"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Mută în"
@@ -1982,6 +2075,10 @@ msgstr "Trebuie să înceapă cu https://"
msgid "Name"
msgstr "Nume"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Necesită revizuire"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepaleză"
@@ -2012,6 +2109,10 @@ msgstr "Parolă nouă"
msgid "New Section"
msgstr "Secțiune nouă"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Următorul"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Fără reclame, fără urmărire"
@@ -2061,11 +2162,19 @@ msgstr "Mentenanță continuă"
msgid "Open"
msgstr "Deschis"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Asistent AI deschis"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Deschide clientul de e-mail"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrări deschise"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Deschideți Setări integrări"
@@ -2219,6 +2328,10 @@ msgstr "Introduceți parola primită de la proprietarul CV-ului pentru a continu
msgid "Please enter the URL you want to link to:"
msgstr "Introduceți URL-ul la care doriți să faceți link:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Vă rugăm să susțineți proiectul"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Poziție"
msgid "Preferences"
msgstr "Preferințe"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Pregătirea modificărilor"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Presetări"
@@ -2267,6 +2384,10 @@ msgstr "Apăsați <0>{RETURN_KEY}</0> sau <1>{COMMA_KEY}</1> pentru a adăuga sa
msgid "Press <0>Enter</0> to open"
msgstr "Apăsați <0>Enter</0> pentru a deschide"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Anterior"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Culoare primară"
@@ -2297,6 +2418,11 @@ msgstr "Bară de progres"
msgid "Projects"
msgstr "Proiecte"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Propunerea {0} din {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Protejați CV-ul de acces neautorizat cu o parolă"
@@ -2319,6 +2445,10 @@ msgstr "Publicații"
msgid "Publisher"
msgstr "Editor"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch JSON brut"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Mergi la pagina principală"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume este un proiect gratuit și open-source, construit cu dr
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume este un constructor de CV-uri gratuit și open-source care simplifică procesul de creare, actualizare și partajare a CV-ului."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume este gratuit și open source. Dacă te-a ajutat, te rugăm să iei în considerare o donație."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume este open-source, axat pe confidențialitate și complet gratuit. Spre deosebire de alți constructori de CV-uri, nu afișează reclame, nu vă urmărește datele și nu limitează funcționalitățile în spatele unui paywall."
@@ -2380,6 +2514,18 @@ msgstr "Reîncarcă"
msgid "Register New Device"
msgstr "Înregistrare dispozitiv nou"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Respinge"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Respingeți toate"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Propunere respinsă"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Îți amintești parola? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Se retrimite e-mailul de verificare..."
msgid "Reset"
msgstr "Resetează"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Resetează chatul"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Resetați-vă parola"
msgid "Resetting your password..."
msgstr "Se resetează parola..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Asistent AI pentru redimensionare"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resurse"
@@ -2463,6 +2617,14 @@ msgstr "Analiza CV-ului este completă."
msgid "Resumes"
msgstr "CV-uri"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Revizuire necesară"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propuneri revizuite"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Aliniere la dreapta"
@@ -2561,6 +2723,10 @@ msgstr "Selectează..."
msgid "Self-Host with Docker"
msgstr "Self-host cu Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Trimite"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Trimite e-mail de resetare a parolei"
msgid "Sending password reset email..."
msgstr "Se trimite e-mailul de resetare a parolei..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Se trimite cererea"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Separator"
@@ -2708,6 +2878,10 @@ msgstr "O singură coloană cu bară laterală și layout tip grid curat; versat
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "O singură coloană cu un antet de intrare în linie pe trei coloane (poziție - organizație - punct); compact și prietenos pentru ATS, bine adaptat pentru convențiile CV-urilor asiatice (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "O singură coloană cu titluri de secțiune cu majuscule și o linie de sus în culoarea primară pe fiecare pagină; rafinat pentru CV-uri de directori, consultanți sau startup-uri."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "O singură coloană; finisat și serios pentru poziții de nivel senior sau enterprise."
@@ -2808,6 +2982,10 @@ msgstr "Statistici"
msgid "Stay"
msgstr "Rămâi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stop"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Puncte forte"
@@ -2902,6 +3080,14 @@ msgstr "Culoare text"
msgid "Thai"
msgstr "Thailandeză"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Inteligența artificială a propus o modificare care nu se mai aplică acestui CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Inteligența artificială a returnat o propunere care nu a putut fi previzualizată."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Cheia API a fost ștearsă cu succes."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Cheia API nu va mai putea accesa datele dvs. după ștergere. Această acțiune nu poate fi anulată."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistentul s-a oprit înainte de a răspunde la o propunere."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Acesta este un nume prietenos cu URL-ul pentru CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Acest lucru poate dura câteva minute, în funcție de răspunsul furnizorului AI. Vă rugăm să nu închideți fereastra și să nu reîncărcați pagina."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Această propunere este învechită. Rugați asistentul să o genereze din cel mai recent CV."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Acest CV este blocat și nu poate fi actualizat."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Da, Reactive Resume este disponibil în mai multe limbi. Puteți alege limba preferată în pagina de setări sau folosind comutatorul de limbă din colțul din dreapta sus. Dacă nu vedeți limba dvs. sau doriți să îmbunătățiți traducerile existente, puteți <0>contribui la traduceri pe Crowdin<1> (se deschide într-o filă nouă)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Da! Fiecare șablon este complet personalizabil. Puteți schimba culorile, fonturile, spațierea și chiar scrie CSS personalizat pentru control complet asupra aspectului CV-ului."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Da! Reactive Resume este complet gratuit de utilizat, fără costuri ascunse, niveluri premium sau abonamente. Este open-source și va rămâne întotdeauna gratuit."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# элемент} few {# элемента} many {# эл
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# должность} few {# должности} many {# должностей} other {# должности}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} предложения рассмотрены"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Конечно! Вы можете экспортировать свое резюме в PDF одним щелчком. Экспортированный PDF в точности сохранит все ваше форматирование и оформление."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Принимать"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Принять все"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Предложение принято."
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Получайте доступ к своим резюме и данным программно с помощью API."
@@ -229,10 +246,38 @@ msgstr "Добавить строку до"
msgid "Afrikaans"
msgstr "Африкаанс"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "После"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "ИИ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Интеграция ИИ отключена"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Предложение по применению ИИ было реализовано."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Предложение по внедрению ИИ отклонено."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Применены предложения по использованию ИИ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Предложения по внедрению ИИ отклонены."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Помощник по составлению резюме на основе ИИ"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Албанский"
@@ -367,10 +412,22 @@ msgstr "Область обучения"
msgid "Artificial Intelligence"
msgstr "Искусственный интеллект"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Попросите внести целенаправленные изменения в резюме..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Попросите о постепенных изменениях."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Соотношение сторон"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Запрос на помощь не удался."
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Основное"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Красивые шаблоны на ваш выбор, и скоро появятся новые."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "До"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Бенгальский"
@@ -462,10 +523,6 @@ msgstr "Маркированный список"
msgid "By the community, for the community."
msgstr "Продукт сообщества для сообщества."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Могу ли я настроить шаблоны под себя?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Могу ли я экспортировать свое резюме в PDF?"
@@ -576,6 +633,14 @@ msgstr "Clear"
msgid "Click here to select a file to import"
msgstr "Нажмите здесь, чтобы выбрать файл для импорта"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Закрыть"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Закрыть ИИ-помощника"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Блок кода"
@@ -622,6 +687,10 @@ msgstr "Подтвердить"
msgid "Connect"
msgstr "Подключить"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Перед использованием предложений по редактированию резюме свяжитесь с поставщиком услуг искусственного интеллекта и проверьте его."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Скопируйте этот секретный ключ и испол
msgid "Copy URL"
msgstr "Скопировать URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Не удалось применить предложенный ИИ метод."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Отключить"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Увольнять"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Документация"
msgid "Don't have an account? <0/>"
msgstr "Нет аккаунта? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Пожертвовать"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Пожертвовать Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Включить 2FA"
msgid "Enable AI Features"
msgstr "Включить функции ИИ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Включите интеграцию ИИ."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Включить двухфакторную аутентификацию"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Примеры: переписать краткое описание, сократить один пункт из раздела «Опыт работы», добавить показатели эффективности или адаптировать резюме под описание вакансии."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Выйти из полноэкранного режима"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Модель"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Дополнительные действия по внесению предложений"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Переместить в"
@@ -1982,6 +2075,10 @@ msgstr "Должно начинаться с https://"
msgid "Name"
msgstr "Название"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Требуется пересмотр"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Непальский"
@@ -2012,6 +2109,10 @@ msgstr "Новый пароль"
msgid "New Section"
msgstr "Новый раздел"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Следующий"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Без рекламы и отслеживания"
@@ -2061,11 +2162,19 @@ msgstr "Текущее сопровождение"
msgid "Open"
msgstr "Открыть"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Открытый ИИ-помощник"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Открыть почтовый клиент"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Открытые интеграции"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Откройте Настройки интеграций"
@@ -2219,6 +2328,10 @@ msgstr "Пожалуйста, введите пароль, который вла
msgid "Please enter the URL you want to link to:"
msgstr "Введите URL, на который вы хотите поставить ссылку:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Пожалуйста, поддержите проект."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Должность"
msgid "Preferences"
msgstr "Настройки"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Подготовка изменений"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Пресеты"
@@ -2267,6 +2384,10 @@ msgstr "Нажмите <0>{RETURN_KEY}</0> или <1>{COMMA_KEY}</1>, чтобы
msgid "Press <0>Enter</0> to open"
msgstr "Нажмите <0>Enter</0>, чтобы открыть"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Предыдущая"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основной цвет"
@@ -2297,6 +2418,11 @@ msgstr "Индикатор прогресса"
msgid "Projects"
msgstr "Проекты"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Предложение {0} от {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Защитите свое резюме от несанкционированного доступа с помощью пароля"
@@ -2319,6 +2445,10 @@ msgstr "Публикации"
msgid "Publisher"
msgstr "Издатель"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Патч в формате Raw JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume — перейти на главную страницу"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume — это бесплатный проект с откр
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume — бесплатный конструктор резюме с открытым исходным кодом, который упрощает процесс создания, обновления и публикации вашего резюме."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume — бесплатный проект с открытым исходным кодом. Если он вам помог, пожалуйста, рассмотрите возможность пожертвования."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume — это проект с открытым исходным кодом, ориентированный на конфиденциальность и полностью бесплатный. В отличие от других конструкторов резюме, он не показывает рекламу, не отслеживает ваши данные и не ограничивает функции платной подпиской."
@@ -2380,6 +2514,18 @@ msgstr "Обновить"
msgid "Register New Device"
msgstr "Зарегистрируйте новое устройство"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Отклонять"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Отвергнуть все"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Отклонено предложение"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Вспомнили пароль? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Повторная отправка письма для подтверж
msgid "Reset"
msgstr "Сброс"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Сбросить чат"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Сбросить пароль"
msgid "Resetting your password..."
msgstr "Сброс пароля..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "ИИ-помощник по изменению размера"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ресурсы"
@@ -2463,6 +2617,14 @@ msgstr "Анализ резюме завершен."
msgid "Resumes"
msgstr "Резюме"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Требуется проверка"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Рассмотренные предложения"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Выровнять по правому краю"
@@ -2561,6 +2723,10 @@ msgstr "Выбрать..."
msgid "Self-Host with Docker"
msgstr "Хостинг на Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Отправлять"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Отправить письмо для сброса пароля"
msgid "Sending password reset email..."
msgstr "Отправка письма для сброса пароля..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Отправка запроса"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Разделитель"
@@ -2708,6 +2878,10 @@ msgstr "Одноколоночный макет с боковой панелью
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Одноколоночный со встроенным трехколоночным заголовком (должность - организация - точка); компактный и удобный для ATS, хорошо подходит для азиатских стандартов составления резюме (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Одноколоночный формат с заголовками разделов, написанными заглавными буквами, и разлиновкой основного цвета на каждой странице; идеально подходит для резюме руководителей, консультантов или сотрудников стартапов."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Одноколоночный макет; строгий и солидный для старших и руководящих позиций."
@@ -2808,6 +2982,10 @@ msgstr "Статистика"
msgid "Stay"
msgstr "Остаться"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Останавливаться"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Сильные стороны"
@@ -2902,6 +3080,14 @@ msgstr "Цвет текста"
msgid "Thai"
msgstr "Тайский"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Искусственный интеллект предложил изменение, которое больше не применяется к этому резюме."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Искусственный интеллект выдал предложение, которое нельзя было предварительно просмотреть."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API-ключ был успешно удален."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "После удаления этот API-ключ больше не сможет получать доступ к вашим данным. Это действие нельзя отменить."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Ассистент остановился, прежде чем вернуть предложение."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Это удобное для URL название вашего резю
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Это может занять несколько минут, в зависимости от времени ответа провайдера ИИ. Пожалуйста, не закрывайте окно и не обновляйте страницу."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Это предложение устарело. Попросите ассистента сгенерировать его заново на основе последнего резюме."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Это резюме заблокировано и не может быть обновлено."
@@ -3385,10 +3580,6 @@ msgstr "X (Твиттер)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Да, Reactive Resume доступен на нескольких языках. Вы можете выбрать предпочитаемый язык на странице настроек или с помощью переключателя языка в правом верхнем углу. Если вы не видите свой язык или хотите улучшить существующие переводы, вы можете <0>поучаствовать в переводах на Crowdin<1> (открывается в новой вкладке)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Да! Каждый шаблон полностью настраиваемый. Вы можете менять цвета, шрифты, интервалы и даже писать собственный CSS, чтобы полностью контролировать внешний вид резюме."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Да! Reactive Resume полностью бесплатен, без скрытых платежей, премиум-уровней или абонентской платы. Это проект с открытым исходным кодом и он всегда останется бесплатным."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# položka} few {# položky} many {# položiek} other {
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rola} few {# roly} many {# rolí} other {# rolí}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} preskúmaných návrhov"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Určite! Svoj životopis môžeš jedným kliknutím exportovať do PDF. Exportované PDF presne zachová všetko formátovanie aj štýl."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Prijať"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Prijať všetko"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Prijatý návrh"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Pristupuj k svojim životopisom a dátam programovo pomocou API."
@@ -229,10 +246,38 @@ msgstr "Pridať riadok pred"
msgid "Afrikaans"
msgstr "Afrikánčina"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Po"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrácia umelej inteligencie je zakázaná"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Návrh umelej inteligencie bol použitý."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Návrh na umelú inteligenciu bol zamietnutý."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Použité návrhy umelej inteligencie."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Návrhy na umelú inteligenciu boli zamietnuté."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asistent životopisov s umelou inteligenciou"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albánčina"
@@ -367,10 +412,22 @@ msgstr "Študijný odbor"
msgid "Artificial Intelligence"
msgstr "Umelá inteligencia"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Požiadajte o cielenú zmenu životopisu..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Požiadajte o postupnú zmenu"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Pomer strán"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Žiadosť o Asistenta zlyhala"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Základy"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Krásne šablóny, z ktorých si môžeš vybrať, a ďalšie sú na ceste."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Predtým"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengálčina"
@@ -462,10 +523,6 @@ msgstr "Odrážkový zoznam"
msgid "By the community, for the community."
msgstr "Komunitou vytvorené pre komunitu."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Môžem si šablóny prispôsobiť?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Môžem svoj životopis exportovať do PDF?"
@@ -576,6 +633,14 @@ msgstr "Jasné"
msgid "Click here to select a file to import"
msgstr "Kliknutím sem vyber súbor na import"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Zavrieť"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Zatvoriť asistenta s umelou inteligenciou"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blok kódu"
@@ -622,6 +687,10 @@ msgstr "Potvrdiť"
msgid "Connect"
msgstr "Pripojiť"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Pred použitím návrhov na úpravu životopisov sa pripojte a overte poskytovateľa umelej inteligencie."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Skopíruj tento tajný kľúč a použi ho vo svojich aplikáciách na p
msgid "Copy URL"
msgstr "Kopírovať URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Návrh umelej inteligencie sa nepodarilo použiť."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Odpojiť"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Zavrieť"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentácia"
msgid "Don't have an account? <0/>"
msgstr "Nemáte účet? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Darovať"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Prispej projektu Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Povoliť 2FA"
msgid "Enable AI Features"
msgstr "Povoliť AI funkcie"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Povoliť integráciu umelej inteligencie"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Povoliť dvojfaktorové overenie"
@@ -1162,6 +1247,10 @@ msgstr "Všetko, čo sem zadáš, sa ukladá lokálne v tvojom prehliadači. Tvo
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Príklady: prepísať súhrn, sprísniť jednu odrážku skúseností, pridať metriky alebo prispôsobiť životopis popisu práce."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Ukončiť celú obrazovku"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Ďalšie akcie návrhu"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Presunúť do"
@@ -1982,6 +2075,10 @@ msgstr "Musí začať na https://"
msgid "Name"
msgstr "Názov"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Vyžaduje sa kontrola"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepálčina"
@@ -2012,6 +2109,10 @@ msgstr "Nové heslo"
msgid "New Section"
msgstr "Nová sekcia"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Ďalšie"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Bez reklám, bez sledovania"
@@ -2061,11 +2162,19 @@ msgstr "Priebežná údržba"
msgid "Open"
msgstr "Otvoriť"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Otvorený asistent s umelou inteligenciou"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Otvoriť e‑mailového klienta"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Otvorené integrácie"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Otvoriť Nastavenia integrácií"
@@ -2219,6 +2328,10 @@ msgstr "Zadaj, prosím, heslo, ktoré s tebou zdieľal vlastník životopisu, ab
msgid "Please enter the URL you want to link to:"
msgstr "Zadaj prosím URL adresu, na ktorú chceš odkazovať:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Prosím, podporte projekt"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Pozícia"
msgid "Preferences"
msgstr "Predvoľby"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Príprava zmien"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Prednastavenia"
@@ -2267,6 +2384,10 @@ msgstr "Stlačte <0>{RETURN_KEY}</0> alebo <1>{COMMA_KEY}</1> pre pridanie alebo
msgid "Press <0>Enter</0> to open"
msgstr "Stlačením tlačidla <0>Enter</0> otvoríte"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Predchádzajúce"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hlavná farba"
@@ -2297,6 +2418,11 @@ msgstr "Ukazovateľ priebehu"
msgid "Projects"
msgstr "Projekty"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Návrh {0} z {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Ochráň svoj životopis pred neoprávneným prístupom heslom"
@@ -2319,6 +2445,10 @@ msgstr "Publikácie"
msgid "Publisher"
msgstr "Vydavateľ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch surového JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – prejsť na domovskú stránku"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume je bezplatný a open‑source projekt, vytvorený z lás
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume je bezplatný a open‑source nástroj na tvorbu životopisov, ktorý zjednodušuje vytváranie, aktualizáciu a zdieľanie tvojho životopisu."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume je bezplatný a má otvorený zdrojový kód. Ak vám pomohol, zvážte darovanie."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume je open‑source, zamerané na súkromie a úplne zadarmo. Na rozdiel od iných nástrojov na tvorbu životopisov nezobrazuje reklamy, nesleduje tvoje dáta a neuzamyká funkcie za paywallom."
@@ -2380,6 +2514,18 @@ msgstr "Obnoviť"
msgid "Register New Device"
msgstr "Registrácia nového zariadenia"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Odmietnuť"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Odmietnuť všetko"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Zamietnutý návrh"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Pamätáte si heslo? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Znova odosielam overovací e‑mail..."
msgid "Reset"
msgstr "Resetovať"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Obnoviť chat"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Obnov svoje heslo"
msgid "Resetting your password..."
msgstr "Obnovujem tvoje heslo..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Zmena veľkosti asistenta s umelou inteligenciou"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Zdroje"
@@ -2463,6 +2617,14 @@ msgstr "Dokončenie analýzy životopisu."
msgid "Resumes"
msgstr "Životopisy"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Vyžaduje sa kontrola"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Preskúmané návrhy"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Zarovnať vpravo"
@@ -2561,6 +2723,10 @@ msgstr "Vybrať..."
msgid "Self-Host with Docker"
msgstr "Vlastný hosting cez Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Odoslať"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Poslať e‑mail na obnovenie hesla"
msgid "Sending password reset email..."
msgstr "Odosielam e‑mail na obnovenie hesla..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Odosielanie žiadosti"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Oddeľovač"
@@ -2708,6 +2878,10 @@ msgstr "Jednostĺpcové rozloženie s bočným panelom a čistou mriežkou; univ
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Jednoslúpcový s riadkovým trojstĺpcovým záhlavím (pozícia - organizácia - bodka); kompaktný a vhodný pre ATS, vhodný pre ázijské konvencie životopisov (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Jednostĺpcový s veľkými písmenami v nadpisoch sekcií a hornou čiarou v základnej farbe na každej strane; vylepšené pre životopisy manažérov, konzultantov alebo startupov."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Jednostĺpcové rozloženie; uhladené a seriózne pre seniorské alebo enterprise pozície."
@@ -2808,6 +2982,10 @@ msgstr "Štatistiky"
msgid "Stay"
msgstr "Zostať"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Zastaviť"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Silné stránky"
@@ -2902,6 +3080,14 @@ msgstr "Farba textu"
msgid "Thai"
msgstr "Thajčina"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Umelá inteligencia navrhla zmenu, ktorá sa už na tento životopis nevzťahuje."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Umelá inteligencia vrátila návrh, ktorého ukážku nebolo možné zobraziť."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API kľúč bol úspešne vymazaný."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Po vymazaní už tento API kľúč nebude môcť pristupovať k tvojim dátam. Túto akciu nemožno vrátiť späť."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistent sa zastavil predtým, ako vrátil návrh."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Toto je URL‑prívetivý názov tvojho životopisu."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Môže to trvať niekoľko minút v závislosti od odozvy poskytovateľa AI. Prosím, nezatváraj okno ani neobnovuj stránku."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Tento návrh je neaktuálny. Požiadajte asistenta, aby ho znovu vytvoril z najnovšieho životopisu."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Tento životopis je uzamknutý a nemožno ho aktualizovať."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Áno, Reactive Resume je dostupné vo viacerých jazykoch. Uprednostňovaný jazyk si môžeš zvoliť na stránke nastavení alebo pomocou prepínača jazykov v pravom hornom rohu. Ak svoj jazyk nevidíš alebo chceš zlepšiť existujúce preklady, môžeš <0>prispieť k prekladom na Crowdin<1> (otvorí sa na novej karte)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Áno! Každá šablóna je plne prispôsobiteľná. Môžeš meniť farby, písma, rozostupy a dokonca písať vlastné CSS, aby si mal nad vzhľadom svojho životopisu úplnú kontrolu."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Áno! Reactive Resume je úplne zadarmo, bez skrytých poplatkov, prémiových úrovní či predplatného. Je open‑source a vždy ním zostane."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# postavka} two {# postavki} few {# postavke} other {#
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# vloga} two {# vlogi} few {# vloge} other {# vlog}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} pregledanih predlogov"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Seveda! Svoj življenjepis lahko izvozite v PDF z enim samim klikom. Izvožen PDF ohrani vso vašo obliko in slog popolno."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Sprejmi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Sprejmi vse"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Sprejet predlog"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Dostopajte do svojih življenjepisov in podatkov programsko prek API-ja."
@@ -229,10 +246,38 @@ msgstr "Dodaj vrstico pred"
msgid "Afrikaans"
msgstr "Afriščina"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Po"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integracija umetne inteligence onemogočena"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Predlog umetne inteligence je bil uporabljen."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Predlog umetne inteligence zavrnjen."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Uporabljeni predlogi umetne inteligence."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Predlogi umetne inteligence zavrnjeni."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Pomočnik za življenjepis z umetno inteligenco"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanščina"
@@ -367,10 +412,22 @@ msgstr "Področje študija"
msgid "Artificial Intelligence"
msgstr "Umetna inteligenca"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Zahtevajte ciljno spremembo življenjepisa ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Zahtevajte postopno spremembo"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Razmerje stranic"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Zahteva za pomočnika ni uspela"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Osnove"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Čudovite predloge na izbiro, dodatne prihajajo."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Pred"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalščina"
@@ -462,10 +523,6 @@ msgstr "Označen seznam"
msgid "By the community, for the community."
msgstr "Od skupnosti, za skupnost."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Ali lahko prilagodim predloge?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Ali lahko izvozite svoj življenjepis v PDF?"
@@ -576,6 +633,14 @@ msgstr "Jasno"
msgid "Click here to select a file to import"
msgstr "Kliknite tukaj za izbiro datoteke za uvoz"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Zapri"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Zapri pomočnika umetne inteligence"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Blok kode"
@@ -622,6 +687,10 @@ msgstr "Potrdi"
msgid "Connect"
msgstr "Poveži"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Preden uporabite predloge za urejanje življenjepisa, se povežite in preverite ponudnika umetne inteligence."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopirajte to skrivno kodo in jo uporabite v svojih aplikacijah za dostop
msgid "Copy URL"
msgstr "Kopiraj URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Predloga umetne inteligence ni bilo mogoče uporabiti."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Prekini povezavo"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Zavrzi"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentacija"
msgid "Don't have an account? <0/>"
msgstr "Nimate računa? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donirajte"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donirajte za Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Omogoči 2FA"
msgid "Enable AI Features"
msgstr "Omogoči funkcije umetne inteligence"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Omogočanje integracije umetne inteligence"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Omogoči dvostopenjsko preverjanje pristnosti"
@@ -1162,6 +1247,10 @@ msgstr "Vse, kar vnesete tukaj, je shranjeno lokalno v vašem brskalniku. Vaši
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Primeri: prepišite povzetek, zožite eno alinejo izkušenj, dodajte metrike ali prilagodite življenjepis opisu delovnega mesta."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Izhod iz celozaslonskega načina"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Več dejanj s predlogom"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Premakni na"
@@ -1982,6 +2075,10 @@ msgstr "Začeti je treba z https://"
msgid "Name"
msgstr "Ime"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Potreben je pregled"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "nepalščina"
@@ -2012,6 +2109,10 @@ msgstr "Novo geslo"
msgid "New Section"
msgstr "Nov razdelek"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Naslednji"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Brez oglaševanja, brez sledenja"
@@ -2061,11 +2162,19 @@ msgstr "Neprestano vzdrževanje"
msgid "Open"
msgstr "Odpri"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Odprti pomočnik umetne inteligence"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Odpri e-poštni odjemalec"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Odprte integracije"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Odprite Nastavitve integracij"
@@ -2219,6 +2328,10 @@ msgstr "Vnesite geslo, ki vam ga je posredoval lastnik življenjepisa, da nadalj
msgid "Please enter the URL you want to link to:"
msgstr "Vnesite URL, na katerega želite povezati:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Prosim, podprite projekt"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Položaj"
msgid "Preferences"
msgstr "Nastavitve"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Priprava sprememb"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Prednastavitve"
@@ -2267,6 +2384,10 @@ msgstr "Pritisnite <0>{RETURN_KEY}</0> ali <1>{COMMA_KEY}</1> za dodajanje ali s
msgid "Press <0>Enter</0> to open"
msgstr "Pritisnite <0>Enter</0>, da odprete"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Prejšnje"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primarna barva"
@@ -2297,6 +2418,11 @@ msgstr "Indikator napredka"
msgid "Projects"
msgstr "Projekti"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Predlog {0} od {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Zaščitite svoj življenjepis pred nepooblaščenim dostopom z geslom"
@@ -2319,6 +2445,10 @@ msgstr "Publikacije"
msgid "Publisher"
msgstr "Založnik"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Popravek surovega JSON-a"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Pojdi na domačo stran"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume je brezplačen in odprtokodni projekt, ustvarjen z ljube
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume je brezplačen in odprtokoden urejevalnik življenjepisa, ki poenostavi ustvarjanje, posodabljanje in deljenje vašega življenjepisa."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume je brezplačen in odprtokoden. Če vam je pomagal, prosimo, razmislite o donaciji."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume je odprtokoden, osredotočen na zasebnost in popolnoma brezplačen. Za razliko od drugih graditeljev življenjepisov ne prikazuje oglasov, ne sledi vašim podatkom in ne omejuje funkcij z zidovi plačila."
@@ -2380,6 +2514,18 @@ msgstr "Osveži"
msgid "Register New Device"
msgstr "Registracija nove naprave"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Zavrni"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Zavrni vse"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Zavrnjen predlog"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Se spomnite svojega gesla? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Pošiljanje potrditvenega e-maila ..."
msgid "Reset"
msgstr "Ponastavi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Ponastavi klepet"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Ponastavite svoje geslo"
msgid "Resetting your password..."
msgstr "Ponastavljanje gesla..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Spreminjanje velikosti pomočnika umetne inteligence"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Viri"
@@ -2463,6 +2617,14 @@ msgstr "Analiza življenjepisa je končana."
msgid "Resumes"
msgstr "Življenjepisi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Zahtevan pregled"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Pregledani predlogi"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Poravnaj desno"
@@ -2561,6 +2723,10 @@ msgstr "Izberi ..."
msgid "Self-Host with Docker"
msgstr "Lastno gostovanje z Dockerjem"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Pošlji"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Pošlji e-pošto za ponastavitev gesla"
msgid "Sending password reset email..."
msgstr "Pošiljanje e-pošte za ponastavitev gesla ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Pošiljanje zahteve"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Ločilo"
@@ -2708,6 +2878,10 @@ msgstr "Enojen stolpec s stransko vrstico in čistim mrežnim prikazom; vsestran
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Enoslojni z vdelanim tristebrnim glavičem (položaj - organizacija - pika); kompakten in prijazen do sistemov ATS, primeren za azijske konvencije življenjepisov (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "En stolpec z velikimi tiskanimi črkami v naslovih razdelkov in zgornjo črto primarne barve na vsaki strani; dodelano za življenjepise direktorjev, svetovalcev ali zagonskih podjetij."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Enojen stolpec; izpiljeno in resno za višje ali podjetniške položaje."
@@ -2808,6 +2982,10 @@ msgstr "Statistika"
msgid "Stay"
msgstr "Ostani"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Ustavi se"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Prednosti"
@@ -2902,6 +3080,14 @@ msgstr "Barva besedila"
msgid "Thai"
msgstr "tajščina"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Umetna inteligenca je predlagala spremembo, ki za ta življenjepis ne velja več."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Umetna inteligenca je vrnila predlog, ki si ga ni bilo mogoče predogledati."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API ključ je bil uspešno izbrisan."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Po izbrisu API ključa ta več ne bo imel dostopa do vaših podatkov. To dejanje ni mogoče razveljaviti."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistent se je ustavil, preden je vrnil predlog."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "To je ime vašega življenjepisa, ki je prijazno do URL-jev."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "To lahko traja nekaj minut, odvisno od odziva AI ponudnika. Prosimo, ne zaprite okna ali osvežite strani."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Ta predlog je zastarel. Prosite asistenta, naj ga ponovno ustvari iz najnovejšega življenjepisa."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Ta življenjepis je zaklenjen in ga ni mogoče posodobiti."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Da, Reactive Resume je na voljo v več jezikih. Želeni jezik lahko izberete na strani z nastavitvami ali z izbirnikom jezika v zgornjem desnem kotu. Če svojega jezika ne najdete ali bi želeli izboljšati obstoječe prevode, lahko <0>prispevate prevode na Crowdin<1> (odpre se v novem zavihku)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Da! Vsaka predloga je popolnoma prilagodljiva. Lahko spremenite barve, pisave, razmike in celo napišete svoj CSS za popoln nadzor nad videzom vašega življenjepisa."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Da! Reactive Življenjepis je popolnoma brezplačen za uporabo, brez skritih stroškov, premium nivojev ali naročnin. Je odprtokoden in bo vedno ostal brezplačen."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Albanian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elemente}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rol} other {# role}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} propozime të shqyrtuara"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Patjetër! Ju mund ta eksportoni CV-në tuaj në PDF me një klikim të vetëm. PDF-ja e eksportuar ruan në mënyrë të përsosur të gjithë formatimin dhe stilimin tuaj."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Prano"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Prano të gjitha"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Propozimi i pranuar"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Përdorni API-n për të aksesuar programatikisht CV-të dhe të dhënat tuaja."
@@ -229,10 +246,38 @@ msgstr "Shto rresht para"
msgid "Afrikaans"
msgstr "Afrikanisht"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Pas"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Integrimi i inteligjencës artificiale është çaktivizuar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Propozimi i inteligjencës artificiale u zbatua."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Propozimi i IA-së u refuzua."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Propozimet e inteligjencës artificiale u zbatuan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Propozimet e inteligjencës artificiale u refuzuan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Asistent i CV-së së AI-së"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Shqip"
@@ -367,10 +412,22 @@ msgstr "Fusha e studimit"
msgid "Artificial Intelligence"
msgstr "Inteligjenca Artificiale"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Kërkoni një ndryshim të synuar të CV-së..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Kërkoni një ndryshim gradual"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporcioni"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Kërkesa për asistent dështoi"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Bazat"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Shabllone të bukura për të zgjedhur, me më shumë që po vijnë."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Para"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalisht"
@@ -462,10 +523,6 @@ msgstr "Lista me pika"
msgid "By the community, for the community."
msgstr "Nga komuniteti, për komunitetin."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "A mund t’i personalizoj shabllonet?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "A mund ta eksportoj CV-në time në PDF?"
@@ -576,6 +633,14 @@ msgstr "E qartë"
msgid "Click here to select a file to import"
msgstr "Klikoni këtu për të zgjedhur një skedar për importim"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Mbyll"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Mbyll asistentin e inteligjencës artificiale"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Bllok kodi"
@@ -622,6 +687,10 @@ msgstr "Konfirmo"
msgid "Connect"
msgstr "Lidhu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Lidhu dhe verifiko një ofrues të inteligjencës artificiale përpara se të përdorësh propozime për redaktimin e CV-së."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopjoni këtë çelës sekret dhe përdoreni në aplikacionet tuaja për
msgid "Copy URL"
msgstr "Kopjo URL-në"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Nuk mund të zbatohej propozimi i inteligjencës artificiale."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Shkëput"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Hiq"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentacioni"
msgid "Don't have an account? <0/>"
msgstr "Nuk keni llogari? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Dhuro"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Dhuro në Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktivizo vërtetimin me dy faktorë"
msgid "Enable AI Features"
msgstr "Aktivizo veçoritë e AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Aktivizo integrimin e inteligjencës artificiale"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktivizo vërtetimin me dy faktorë"
@@ -1162,6 +1247,10 @@ msgstr "Gjithçka që shkruhet këtu ruhet lokalisht në shfletuesin tuaj. Të d
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Shembuj: rishkruaj përmbledhjen, ngushto një pikë përvoje, shto metrika ose përshtat CV-në për një përshkrim pune."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Dil nga ekrani i plotë"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modeli"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Më shumë veprime propozimi"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Lëviz te"
@@ -1982,6 +2075,10 @@ msgstr "Duhet të fillojë me https://"
msgid "Name"
msgstr "Emri"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Ka nevojë për shqyrtim"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalisht"
@@ -2012,6 +2109,10 @@ msgstr "Fjalëkalim i ri"
msgid "New Section"
msgstr "Seksion i ri"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Më tej"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Pa reklama, pa gjurmim"
@@ -2061,11 +2162,19 @@ msgstr "Mirëmbajtje e vazhdueshme"
msgid "Open"
msgstr "Hap"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Asistent i hapur i inteligjencës artificiale"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Hap klientin e emailit"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Integrime të Hapura"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Hape cilësimet e integrimeve"
@@ -2219,6 +2328,10 @@ msgstr "Ju lutemi shkruani fjalëkalimin që është ndarë me ju nga pronari i
msgid "Please enter the URL you want to link to:"
msgstr "Ju lutemi shkruani URL-në që dëshironi të lidhni:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Ju lutemi mbështesni projektin"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Pozicioni"
msgid "Preferences"
msgstr "Preferenca"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Përgatitja e ndryshimeve"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Paracaktimet"
@@ -2267,6 +2384,10 @@ msgstr "Shtyp <0>{RETURN_KEY}</0> ose <1>{COMMA_KEY}</1> për të shtuar ose rua
msgid "Press <0>Enter</0> to open"
msgstr "Shtypni <0>Enter</0> për të hapur"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Më parë"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Ngjyra kryesore"
@@ -2297,6 +2418,11 @@ msgstr "Shtyllë progresi"
msgid "Projects"
msgstr "Projekte"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Propozim {0} nga {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Mbroni CV-në tuaj nga akseset e paautorizuara me një fjalëkalim"
@@ -2319,6 +2445,10 @@ msgstr "Publikime"
msgid "Publisher"
msgstr "Botues"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Patch i papërpunuar JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Shko në faqen kryesore"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume është një projekt falas dhe me burim të hapur, i nd
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume është një ndërtues i CV-së, falas dhe me burim të hapur që thjeshton procesin e krijimit, përditësimit dhe shpërndarjes së CV-së tuaj."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive CV është falas dhe me kod të hapur. Nëse ju ka ndihmuar, ju lutemi merrni në konsideratë dhurimin."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume është me burim të hapur, i përqendruar te privatësia dhe krejtësisht falas. Ndryshe nga ndërtuesit e tjerë të CV-ve, nuk shfaq reklama, nuk gjurmon të dhënat tuaja dhe nuk i kufizon veçoritë pas një muri pagese."
@@ -2380,6 +2514,18 @@ msgstr "Rifresko"
msgid "Register New Device"
msgstr "Regjistro pajisjen e re"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Refuzo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Refuzo të gjitha"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Propozim i refuzuar"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Ju kujtohet fjalëkalimi? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Po ridërgohet emaili i verifikimit..."
msgid "Reset"
msgstr "Rivendos"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Rivendos bisedën"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Rivendosni fjalëkalimin tuaj"
msgid "Resetting your password..."
msgstr "Po rivendoset fjalëkalimi juaj..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Ndihmësi i ndryshimit të madhësisë së inteligjencës artificiale"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Burime"
@@ -2463,6 +2617,14 @@ msgstr "Analiza e rezumesë e përfunduar."
msgid "Resumes"
msgstr "CV-të"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Kërkohet shqyrtim"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Propozimet e shqyrtuara"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rreshto djathtas"
@@ -2561,6 +2723,10 @@ msgstr "Zgjidh..."
msgid "Self-Host with Docker"
msgstr "Self-host me Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Dërgo"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Dërgo emailin për rivendosjen e fjalëkalimit"
msgid "Sending password reset email..."
msgstr "Po dërgohet emaili për rivendosjen e fjalëkalimit..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Duke dërguar kërkesën"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Ndarës"
@@ -2708,6 +2878,10 @@ msgstr "Një kolonë e vetme me një shirit anësor dhe një rrjet të pastër;
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Një kolonë me një mbishkrim hyrës me tre kolona në vijë (pozicion · organizatë · periudhë); kompakt dhe i përshtatshëm për ATS, i përshtatur mirë me konventat aziatike të CV-së (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Me një kolonë të vetme me tituj seksionesh me shkronja të mëdha dhe një vizore me ngjyrë kryesore në krye në çdo faqe; e përpunuar për CV-të e ekzekutivëve, konsulencës ose startup-eve."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Një kolonë e vetme; e lustruar dhe serioze për pozicione të larta ose në nivel ndërmarrjeje."
@@ -2808,6 +2982,10 @@ msgstr "Statistikat"
msgid "Stay"
msgstr "Qëndro"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Ndalo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Përparësitë"
@@ -2902,6 +3080,14 @@ msgstr "Ngjyra e tekstit"
msgid "Thai"
msgstr "Tajlandisht"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "IA propozoi një ndryshim që nuk vlen më për këtë CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "IA ktheu një propozim që nuk mund të shikohej paraprakisht."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API key u fshi me sukses."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API key nuk do të mund të aksesojë më të dhënat tuaja pas fshirjes. Ky veprim nuk mund të zhbëhet."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistenti ndaloi përpara se t’i kthente një propozim."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Ky është një emër miqësor për URL për CV-në tuaj."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Kjo mund të zgjasë disa minuta, në varësi të përgjigjes së ofruesit të AI. Ju lutemi mos e mbyllni dritaren dhe mos rifreskoni faqen."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Ky propozim është i vjetëruar. Kërkoji asistentit ta rigjenerojë atë nga CV-ja më e fundit."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Kjo CV është e kyçur dhe nuk mund të përditësohet."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Po, Reactive Resume është i disponueshëm në shumë gjuhë. Mund të zgjidhni gjuhën tuaj të preferuar në faqen e parametrave, ose duke përdorur zgjedhësin e gjuhës në këndin e sipërm djathtas. Nëse nuk e shihni gjuhën tuaj, ose dëshironi të përmirësoni përkthimet ekzistuese, mund të <0>kontribuoni për përkthimet në Crowdin<1> (hapet në skedë të re)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Po! Çdo shabllon është plotësisht i personalizueshëm. Mund të ndryshoni ngjyrat, gërmat, hapësirat dhe madje të shkruani CSS të personalizuar për të pasur kontroll të plotë mbi pamjen e CV-së suaj."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Po! Reactive Resume është krejtësisht falas për t’u përdorur, pa kosto të fshehura, nivele premium ose tarifa abonimi. Është me burim të hapur dhe do të mbetet gjithmonë falas."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ставка} few {# ставке} other {# став
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# улога} few {# улоге} other {# улога}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} прегледаних предлога"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Наравно! Можете да извезете свој резиме у PDF једним кликом. Извезени PDF савршено задржава све ваше форматiranje и стил."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Прихвати"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Прихвати све"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Прихваћен предлог"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Приступите својим резимеима и подацима програмски помоћу API-ја."
@@ -229,10 +246,38 @@ msgstr "Додај ред пре"
msgid "Afrikaans"
msgstr "Африканс"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "После"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Интеграција вештачке интелигенције је онемогућена"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Примењен је предлог вештачке интелигенције."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Предлог вештачке интелигенције одбијен."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Примењени су предлози вештачке интелигенције."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Предлози за вештачку интелигенцију су одбијени."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "АИ помоћник за животопис"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Албански"
@@ -367,10 +412,22 @@ msgstr "Област студија"
msgid "Artificial Intelligence"
msgstr "Вештачка интелигенција"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Затражите циљану промену животописа..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Затражите постепену промену"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Однос стране"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Захтев за помоћника није успео"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Основне информације"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Лепи шаблони из којих можете да бирате, а још више је у припреми."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Пре"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Бенгалски"
@@ -462,10 +523,6 @@ msgstr "Списак са ставкама"
msgid "By the community, for the community."
msgstr "Од заједнице, за заједницу."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Могу ли да прилагодим шаблоне?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Могу ли да извезем свој резиме у PDF?"
@@ -576,6 +633,14 @@ msgstr "Јасно"
msgid "Click here to select a file to import"
msgstr "Кликните овде да изаберете датотеку за увоз"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Затвори"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Затвори AI асистент"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Блок кода"
@@ -622,6 +687,10 @@ msgstr "Потврди"
msgid "Connect"
msgstr "Повежи"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Повежите се и проверите добављача вештачке интелигенције пре коришћења предлога за уређивање животописа."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Копирајте овај тајни кључ и користите г
msgid "Copy URL"
msgstr "Копирај URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Није могуће применити предлог вештачке интелигенције."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Прекини повезивање"
msgid "Discord"
msgstr "Дискорд"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Одбаци"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Документација"
msgid "Don't have an account? <0/>"
msgstr "Немате налог? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Донирајте"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Донирајте Реактивном Резимеу"
@@ -1094,6 +1175,10 @@ msgstr "Омогући 2FA"
msgid "Enable AI Features"
msgstr "Омогући AI функције"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Омогући интеграцију вештачке интелигенције"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Омогући двофакторску аутентификацију"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Примери: препишите резиме, скратите једну тачку о искуству, додајте метрике или прилагодите животопис опису посла."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Изађи из целог екрана"
@@ -1956,6 +2045,10 @@ msgstr "Микрософт Ворд"
msgid "Model"
msgstr "Модел"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Више радњи предлога"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Премести у"
@@ -1982,6 +2075,10 @@ msgstr "Мора да почне са https://"
msgid "Name"
msgstr "Име"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Потребан је преглед"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Непалски"
@@ -2012,6 +2109,10 @@ msgstr "Нова лозинка"
msgid "New Section"
msgstr "Нови одељак"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Следеће"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Без оглашавања, без праћења"
@@ -2061,11 +2162,19 @@ msgstr "Континуирано одржавање"
msgid "Open"
msgstr "Отвори"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Отворите AI асистент"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Отвори клијент за е-пошту"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Отворене интеграције"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Отвори подешавања интеграција"
@@ -2219,6 +2328,10 @@ msgstr "Унесите лозинку коју вам је поделио вла
msgid "Please enter the URL you want to link to:"
msgstr "Унесите URL на који желите да води веза:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Молимо вас да подржите пројекат"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Позиција"
msgid "Preferences"
msgstr "Поставке"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Припрема промена"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Предефинисања"
@@ -2267,6 +2384,10 @@ msgstr "Притисните <0>{RETURN_KEY}</0> или <1>{COMMA_KEY}</1> да
msgid "Press <0>Enter</0> to open"
msgstr "Притисните <0>Enter</0> да бисте отворили"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Претходно"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Примарна боја"
@@ -2297,6 +2418,11 @@ msgstr "Трака напретка"
msgid "Projects"
msgstr "Пројекти"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Предлог {0} од {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Заштитите свој резиме од неовлашћеног приступа лозинком"
@@ -2319,6 +2445,10 @@ msgstr "Публикације"
msgid "Publisher"
msgstr "Издавач"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Закрпа за нерафинирани JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Реактивни Резиме - Иди на почетну страницу"
@@ -2340,6 +2470,10 @@ msgstr "Реактивни Резиме је бесплатан и отворе
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Реактивни Резиме је бесплатан и отворен алат за креирање резимеа који поједностављује процес креирања, ажурирања и дељења вашег резимеа."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Реактивни резиме је бесплатан и отвореног кода. Ако вам је помогао, размислите о донацији."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Реактивни Резиме је отвореног кода, усмерен на приватност и потпуно бесплатан. За разлику од других алата за креирање резимеа, не приказује огласе, не прати ваше податке и не ограничава функције иза платног зида."
@@ -2380,6 +2514,18 @@ msgstr "Освежи"
msgid "Register New Device"
msgstr "Региструјте нови уређај"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Одбиј"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Одбиј све"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Одбијен предлог"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Сећате се лозинке? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Поновно слање верификационе е-поште..."
msgid "Reset"
msgstr "Ресетуј"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Ресетуј ћаскање"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Ресетујте своју лозинку"
msgid "Resetting your password..."
msgstr "Ресетовање ваше лозинке..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Промените величину AI асистента"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ресурси"
@@ -2463,6 +2617,14 @@ msgstr "Анализа резимеа је завршена."
msgid "Resumes"
msgstr "Резимеи"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Потребан је преглед"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Прегледани предлози"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Поравнај десно"
@@ -2561,6 +2723,10 @@ msgstr "Изаберите..."
msgid "Self-Host with Docker"
msgstr "Самохостовање помоћу Docker-а"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Пошаљи"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Пошаљи е-поруку за ресет лозинке"
msgid "Sending password reset email..."
msgstr "Слање е-поруке за ресет лозинке..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Слање захтева"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Раздвајач"
@@ -2708,6 +2878,10 @@ msgstr "Једноколонац са бочном траком и чистим
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Једноколона са уграђеним троколонашким заглављем за унос (позиција · организација · период); компактно и прилагођено ATS-у, добро прилагођено азијским конвенцијама за резиме (Кина/Јапан/Кореја)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Једноколонна верзија са великим словима у насловима одељака и горњом линијом примарне боје на свакој страници; дотерано за биографије руководилаца, консултанта или стартап компанија."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Једноколонац; уштогљен и озбиљан за сениорске или позиције на нивоу предузећа."
@@ -2808,6 +2982,10 @@ msgstr "Статистика"
msgid "Stay"
msgstr "Остани"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Заустави"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Снаге"
@@ -2902,6 +3080,14 @@ msgstr "Боја текста"
msgid "Thai"
msgstr "Тајландски"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Вештачка интелигенција је предложила промену која се више не односи на ову биографију."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Вештачка интелигенција је вратила предлог који није могао бити прегледан."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API кључ је успешно обрисан."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API кључ више неће моћи да приступа вашим подацима након брисања. Ова радња се не може опозвати."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Асистент је стао пре него што је вратио предлог."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Ово је URL-пријатељско име за ваш резиме."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Ово може потрајати неколико минута, у зависности од одзива AI провајдера. Немојте затварати прозор нити освежавати страницу."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Овај предлог је застарео. Замолите асистента да га поново генерише из најновијег животописа."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Овај резиме је закључан и не може се ажурирати."
@@ -3385,10 +3580,6 @@ msgstr "X (Твитер)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Да, Реактивни Резиме је доступан на више језика. Омиљени језик можете изабрати на страници подешавања или помоћу прекидача језика у горњем десном углу. Ако не видите свој језик или желите да побољшате постојеће преводе, можете <0>допринети преводима на Crowdin-у<1> (отвара се у новом језичку)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Да! Сваки шаблон је у потпуности прилагодљив. Можете мењати боје, фонтове, размаке, па чак и писати прилагођени CSS за потпуну контролу изгледа свог резимеа."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Да! Реактивни Резиме је потпуно бесплатан за коришћење, без скривених трошкова, премијум нивоа или претплата. Он је отвореног кода и увек ће остати бесплатан."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {Kolumn} other {Kolumner}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# roll} other {# roller}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} förslag granskade"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Ja, absolut! Du kan exportera ditt CV till PDF med ett enda klick. Den exporterade PDF-filen behåller all din formatering och styling perfekt."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Acceptera"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Acceptera alla"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Godkänt förslag"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Få tillgång till dina CV:n och data programmatiskt med hjälp av API:et."
@@ -229,10 +246,38 @@ msgstr "Lägg till rad före"
msgid "Afrikaans"
msgstr "Afrikanska"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Efter"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI-integration inaktiverad"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI-förslag tillämpat."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "AI-förslaget avvisades."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI-förslag tillämpades."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI-förslag avvisades."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI CV-assistent"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Albanska"
@@ -367,10 +412,22 @@ msgstr "Studieområde"
msgid "Artificial Intelligence"
msgstr "Artificiell intelligens"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Begär en riktad CV-ändring..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Be om en stegvis förändring"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Bildförhållande"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Assistent-begäran misslyckades"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Grunderna"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Vackra mallar att välja mellan, fler är på väg."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Före"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -462,10 +523,6 @@ msgstr "Punktlista"
msgid "By the community, for the community."
msgstr "Av gemenskapen, för gemenskapen."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Kan jag anpassa mallarna?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Kan jag exportera mitt CV till PDF?"
@@ -576,6 +633,14 @@ msgstr "Klart"
msgid "Click here to select a file to import"
msgstr "Klicka här för att välja en fil att importera"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Stäng"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Stäng AI-assistenten"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kodblock"
@@ -622,6 +687,10 @@ msgstr "Bekräfta"
msgid "Connect"
msgstr "Anslut"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Anslut och verifiera en AI-leverantör innan du använder förslag på redigering av CV."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Kopiera denna hemliga nyckel och använd den i dina applikationer för a
msgid "Copy URL"
msgstr "Kopiera URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Kunde inte tillämpa AI-förslaget."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Koppla från"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Avfärda"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dokumentation"
msgid "Don't have an account? <0/>"
msgstr "Har du inget konto? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Donera"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Donera till Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Aktivera 2FA"
msgid "Enable AI Features"
msgstr "Aktivera AI-funktioner"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Aktivera AI-integration"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Aktivera tvåfaktorsautentisering"
@@ -1162,6 +1247,10 @@ msgstr "Allt som anges här lagras lokalt i din webbläsare. Dina data skickas b
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Exempel: skriv om sammanfattningen, skärp ner en erfarenhetspunkt, lägg till mätvärden eller anpassa CV:t för en arbetsbeskrivning."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avsluta helskärm"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Modell"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Fler förslagsåtgärder"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Flytta till"
@@ -1982,6 +2075,10 @@ msgstr "Börjar med https://"
msgid "Name"
msgstr "Namn"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Behöver granskas"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalesiska"
@@ -2012,6 +2109,10 @@ msgstr "Nytt lösenord"
msgid "New Section"
msgstr "Nytt avsnitt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Nästa"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Ingen reklam, ingen spårning"
@@ -2061,11 +2162,19 @@ msgstr "Löpande underhåll"
msgid "Open"
msgstr "Öppna"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Öppna AI-assistenten"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Öppna e-postklient"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Öppna integrationer"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Öppna Inställningar för integrationer"
@@ -2219,6 +2328,10 @@ msgstr "Ange lösenordet som delats med dig av ägaren av CV:t för att fortsät
msgid "Please enter the URL you want to link to:"
msgstr "Ange URL:en du vill länka till:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Stöd projektet"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Position"
msgid "Preferences"
msgstr "Inställningar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Förbereder ändringar"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Förinställningar"
@@ -2267,6 +2384,10 @@ msgstr "Tryck på <0>{RETURN_KEY}</0> eller <1>{COMMA_KEY}</1> för att lägga t
msgid "Press <0>Enter</0> to open"
msgstr "Tryck på <0>Enter</0> för att öppna"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Föregående"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfärg"
@@ -2297,6 +2418,11 @@ msgstr "Förloppsindikator"
msgid "Projects"
msgstr "Projekt"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Förslag {0} av {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Skydda ditt CV mot obehörig åtkomst med ett lösenord"
@@ -2319,6 +2445,10 @@ msgstr "Publikationer"
msgid "Publisher"
msgstr "Utgivare"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Rå JSON-patch"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Gå till startsida"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume är ett gratis projekt med öppen källkod, byggt med k
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume är en gratis CV-byggare med öppen källkod som förenklar processen med att skapa, uppdatera och dela ditt CV."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume är gratis och har öppen källkod. Om det har hjälpt dig, överväg gärna att donera."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume har en öppen källkod, är integritetsfokuserat och helt gratis. Till skillnad från andra CV-byggare visas inga annonser, spårar dig inte och gömmer inte funktioner bakom en betalvägg."
@@ -2380,6 +2514,18 @@ msgstr "Uppdatera"
msgid "Register New Device"
msgstr "Registrera ny enhet"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Avvisa"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Avvisa alla"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Avslaget förslag"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Kommer du ihåg ditt lösenord? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Skickar verifieringsmejl igen..."
msgid "Reset"
msgstr "Återställ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Återställ chatten"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Återställ ditt lösenord"
msgid "Resetting your password..."
msgstr "Återställer ditt lösenord..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Ändra storlek på AI-assistenten"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resurser"
@@ -2463,6 +2617,14 @@ msgstr "CV-analysen är klar."
msgid "Resumes"
msgstr "CV"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Granskning krävs"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Granskade förslag"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Högerjustera"
@@ -2561,6 +2723,10 @@ msgstr "Välj..."
msgid "Self-Host with Docker"
msgstr "Självhosting med Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Skicka"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Skicka e-post för återställning av lösenord"
msgid "Sending password reset email..."
msgstr "Skickar e-post för återställning av lösenord..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Skickar begäran"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Avskiljare"
@@ -2708,6 +2878,10 @@ msgstr "En kolumn med ett sidofält och ren rutnätslayout; mångsidig för alla
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Enkolumnig med en inline-rubrik på tre kolumner (position - organisation - period); kompakt och ATS-vänlig, väl lämpad för asiatiska CV-konventioner (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Enkolumn med rubriker i versaler och en linje i primärfärg överst på varje sida; polerat för CV:n för chefer, konsulter eller startups."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "En kolumn; polerad och seriös för seniora eller roller på företagsnivå."
@@ -2808,6 +2982,10 @@ msgstr "Statistik"
msgid "Stay"
msgstr "Stanna"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Stopp"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Styrkor"
@@ -2902,6 +3080,14 @@ msgstr "Textfärg"
msgid "Thai"
msgstr "Thailändska"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI:n föreslog en ändring som inte längre gäller för detta CV."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI:n returnerade ett förslag som inte kunde förhandsgranskas."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API-nyckeln har raderats."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API-nyckeln kommer inte längre att kunna komma åt dina data efter att den raderats. Denna åtgärd kan inte ångras."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Assistenten stannade innan han återvände med ett förslag."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Detta är ett URL-vänligt namn för ditt CV."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Detta kan ta några minuter, beroende på svaret från AI-leverantören. Stäng inte fönstret och uppdatera inte sidan."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Det här förslaget är inaktuellt. Be assistenten att återskapa det från det senaste CV:t."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Detta CV är låst och kan inte uppdateras."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ja, Reactive Resume finns på flera språk. Du kan välja ditt föredragna språk på inställningssidan eller med språkväljaren uppe till höger. Om du inte ser ditt språk, eller vill förbättra de befintliga översättningarna, kan du <0>bidra till översättningarna på Crowdin<1> (öppnas i ny flik)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ja! Varje mall är helt anpassningsbar. Du kan ändra färger, typsnitt, mellanrum och till och med skriva egen CSS för full kontroll över hur ditt CV ser ut."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ja! Reactive Resume är helt gratis att använda, utan dolda kostnader, premium­nivåer eller prenumerationsavgifter. Det är öppen källkod och kommer alltid att vara gratis."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Tamil\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# உருப்படி} other {# உருப்ப
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# பங்கு} other {# பங்குகள்}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} முன்மொழிவுகள் மதிப்பாய்வு செய்யப்பட்டன"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "ஏ4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "நிச்சயமாக! ஒரு கிளிக் மூலமே உங்கள் ரெஸ்யூமியை PDF ஆக ஏற்றுமதி செய்யலாம். ஏற்றுமதி செய்யப்பட்ட PDF உங்கள் அனைத்து வடிவமைப்பு மற்றும் ஸ்டைல் அமைப்புகளையும் அப்படியே காக்கும்."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "ஏற்றுக்கொள்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "அனைத்தையும் ஏற்கவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "ஏற்றுக்கொள்ளப்பட்ட முன்மொழிவு"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API-யை பயன்படுத்தி உங்கள் ரெஸ்யூமிகளையும் தரவையும் நிரலாலும் அணுகலாம்."
@@ -229,10 +246,38 @@ msgstr "முன் வரியைச் சேர்க்கவும்"
msgid "Afrikaans"
msgstr "ஆஃப்ரிகான்ஸ்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "பிறகு"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "செயற்கை நுண்ணறிவு ஒருங்கிணைப்பு முடக்கப்பட்டது"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "செயற்கை நுண்ணறிவு முன்மொழிவு செயல்படுத்தப்பட்டது."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "செயற்கை நுண்ணறிவு முன்மொழிவு நிராகரிக்கப்பட்டது."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "செயற்கை நுண்ணறிவு முன்மொழிவுகள் செயல்படுத்தப்பட்டன."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "செயற்கை நுண்ணறிவு முன்மொழிவுகள் நிராகரிக்கப்பட்டன."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI ரெஸ்யூம் உதவியாளர்"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "அல்பேனியன்"
@@ -367,10 +412,22 @@ msgstr "கற்றல் துறை"
msgid "Artificial Intelligence"
msgstr "செயற்கை நுண்ணறிவு"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "குறிப்பிட்ட சுயவிவரத் திருத்தத்தைக் கோருங்கள்..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "படிப்படியான மாற்றத்தைக் கோருங்கள்"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ஒப்புத்திணைவு விகிதம்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "உதவியாளர் கோரிக்கை தோல்வியடைந்தது"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "அடிப்படைத் தகவல்கள்"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "தேர்வு செய்ய அழகான டெம்ப்ளேட்டுகள், மேலும் பல வழியில் வருகின்றன."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "முன்பு"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "பெங்காலி"
@@ -462,10 +523,6 @@ msgstr "குறியிட்டு பட்டியல்"
msgid "By the community, for the community."
msgstr "சமூகத்தால், சமூகத்திற்காக."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "டெம்ப்ளேட்டுகளை நான் விருப்பத்துக்கு ஏற்ப மாற்றிக்கொள்ளலாமா?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "என் ரெஸ்யூமியை PDF ஆக ஏற்றுமதி செய்யலாமா?"
@@ -576,6 +633,14 @@ msgstr "தெளிவான"
msgid "Click here to select a file to import"
msgstr "இறக்குமதி செய்ய ஒரு கோப்பை தேர்ந்தெடுக்க இங்கே கிளிக் செய்யவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "மூடு"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI உதவியாளரை மூடு"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "குறியீட்டு தொகுதி"
@@ -622,6 +687,10 @@ msgstr "உறுதி செய்"
msgid "Connect"
msgstr "இணைக்கவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "சுயவிவரத் திருத்தப் பரிந்துரைகளைப் பயன்படுத்துவதற்கு முன்பு, ஒரு AI வழங்குநருடன் தொடர்புகொண்டு சரிபார்க்கவும்."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "இந்த ரகசிய விசையை நகலெடுத்
msgid "Copy URL"
msgstr "URL-ஐ நகலெடு"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "செயற்கை நுண்ணறிவு முன்மொழிவைச் செயல்படுத்த முடியவில்லை."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "துண்டிக்கவும்"
msgid "Discord"
msgstr "டிஸ்கார்ட்"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "நிராகரி"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "ஆவணங்கள்"
msgid "Don't have an account? <0/>"
msgstr "கணக்கு இல்லையா? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "நன்கொடை அளிக்கவும்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume-க்கு நன்கொடை அளிக்கவும்"
@@ -1094,6 +1175,10 @@ msgstr "2FA-ஐ இயக்கு"
msgid "Enable AI Features"
msgstr "AI அம்சங்களை இயக்கு"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI ஒருங்கிணைப்புகளை இயக்கு"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "இரண்டு நிலை அங்கீகாரத்தை இயக்கு"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "உதாரணங்கள்: சுருக்கத்தை மீண்டும் எழுதுதல், ஒரு அனுபவப் பகுதியைச் செம்மைப்படுத்துதல், அளவீடுகளைச் சேர்த்தல், அல்லது வேலை விவரத்திற்கு ஏற்ப சுயவிவரக் குறிப்பைத் தழுவி அமைத்தல்."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "முழுத்திரையிலிருந்து வெளியேறு"
@@ -1956,6 +2045,10 @@ msgstr "மைக்ரோசாஃப்ட் வேர்ட்"
msgid "Model"
msgstr "மாதிரி"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "மேலும் முன்மொழிவு நடவடிக்கைகள்"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "இதற்கு நகர்த்தவும்"
@@ -1982,6 +2075,10 @@ msgstr "https:// கொண்டு தொடங்க வேண்டும்"
msgid "Name"
msgstr "பெயர்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "தேவைகள் மதிப்பாய்வு"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "நேபாளி"
@@ -2012,6 +2109,10 @@ msgstr "புதிய கடவுச்சொல்"
msgid "New Section"
msgstr "புதிய பகுதி"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "அடுத்து"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "விளம்பரம் இல்லை, கண்காணிப்பு இல்லை"
@@ -2061,11 +2162,19 @@ msgstr "தொடர்ந்து பராமரிப்பு"
msgid "Open"
msgstr "திற"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "திறந்த AI உதவியாளர்"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "மின்னஞ்சல் பயன்பாட்டை திறக்கவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "திறந்த ஒருங்கிணைப்புகள்"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "ஒருங்கிணைப்பு அமைப்புகளைத் திற"
@@ -2219,6 +2328,10 @@ msgstr "தொடர்ந்து செல்ல, ரெஸ்யூமிய
msgid "Please enter the URL you want to link to:"
msgstr "நீங்கள் இணைக்க விரும்பும் URL-ஐ உள்ளிடவும்:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "திட்டத்திற்கு ஆதரவளிக்கவும்"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "பதவி"
msgid "Preferences"
msgstr "விருப்பங்கள்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "மாற்றங்களைத் தயாரித்தல்"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "முன்வழங்கல்கள்"
@@ -2267,6 +2384,10 @@ msgstr "தற்போதைய முக்கிய சொல்லை சே
msgid "Press <0>Enter</0> to open"
msgstr "திறக்க <0>Enter ஐ</0> அழுத்தவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "முந்தைய"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "முதன்மை நிறம்"
@@ -2297,6 +2418,11 @@ msgstr "முன்னேற்ற பட்டை"
msgid "Projects"
msgstr "திட்டங்கள்"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{total} இன் முன்மொழிவு {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "உங்கள் ரெஸ்யூமியை அனுமதியற்ற அணுகலிலிருந்து ஒரு கடவுச்சொல்லால் பாதுகாக்கவும்"
@@ -2319,6 +2445,10 @@ msgstr "வெளியீடுகள்"
msgid "Publisher"
msgstr "பதிப்பாளர்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "மூல JSON இணைப்பு"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - முகப்புப் பக்கத்துக்கு செல்லவும்"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume என்பது இலவச மற்றும்
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume என்பது உங்கள் ரெஸ்யூமியை உருவாக்குதல், புதுப்பித்தல் மற்றும் பகிர்தல் ஆகிய செயல்முறைகளை எளிதாக்கும் ஒரு இலவச மற்றும் திறந்த மூல ரெஸ்யூம் பில்டர்."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "ரியாக்டிவ் ரெஸ்யூம் இலவசமானது மற்றும் திறந்த மூல மென்பொருளாகும். இது உங்களுக்கு உதவியிருந்தால், நன்கொடை அளிக்கப் பரிசீலிக்கவும்."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume திறந்த மூலமாகவும், தனியுரிமை மீது கவனம் செலுத்தியதாகவும், முற்றிலும் இலவசமாகவும் உள்ளது. மற்ற ரெஸ்யூம் பில்டர்களைப் போல் இது விளம்பரங்களை காட்டாது, உங்கள் தரவை கண்காணிக்காது, அல்லது அம்சங்களை கட்டண சுவருக்கு பின்னால் பூட்டாது."
@@ -2380,6 +2514,18 @@ msgstr "மீண்டும் ஏற்று"
msgid "Register New Device"
msgstr "புதிய சாதனத்தைப் பதிவு செய்யவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "நிராகரி"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "அனைத்தையும் நிராகரிக்கவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "நிராகரிக்கப்பட்ட முன்மொழிவு"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "உங்கள் கடவுச்சொல் நினைவிருக்கிறதா? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "சரிபார்ப்பு மின்னஞ்சலை மீ
msgid "Reset"
msgstr "மீட்டமை"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "அரட்டையை மீட்டமைக்கவும்"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "உங்கள் கடவுச்சொல்லை மீட்ட
msgid "Resetting your password..."
msgstr "உங்கள் கடவுச்சொல்லை மீட்டமைத்து கொண்டிருக்கிறது..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "அளவை மாற்று AI உதவியாளர்"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "வளங்கள்"
@@ -2463,6 +2617,14 @@ msgstr "விண்ணப்பப் பகுப்பாய்வு நி
msgid "Resumes"
msgstr "ரெஸ்யூமிகள்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "மதிப்பாய்வு தேவை"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "மதிப்பாய்வு செய்யப்பட்ட முன்மொழிவுகள்"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "வலது சீரமை"
@@ -2561,6 +2723,10 @@ msgstr "தேர்ந்தெடு..."
msgid "Self-Host with Docker"
msgstr "Docker-இன் உதவியுடன் தானே ஹோஸ்ட் செய்யவும்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "அனுப்பு"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "கடவுச்சொல் மீட்டமைப்பு மி
msgid "Sending password reset email..."
msgstr "கடவுச்சொல் மீட்டமைப்பு மின்னஞ்சலை அனுப்பிக் கொண்டிருக்கிறது..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "கோரிக்கையை அனுப்புகிறது"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "பிரிப்பான்"
@@ -2708,6 +2878,10 @@ msgstr "சைட்பாரும் சுத்தமான கிரிட
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ஒரு நிரலில் மூன்று-காலம் உள்ளீட்டுத் தலைப்புடன் (நிலை · அமைப்பு · காலம்) ஒரு-காலம்; சுருங்கிய மற்றும் ATS-நட்பு, ஆசிய ரெஸ்யூம் மரபுகளுக்கு (CN/JP/KR) மிகவும் பொருத்தமானது."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "ஒவ்வொரு பக்கத்திலும் பெரிய எழுத்துகளில் பகுதித் தலைப்புகளையும், முதன்மை வண்ண மேல் கோட்டையும் கொண்ட ஒற்றைப் பத்தி அமைப்பு; நிர்வாகி, ஆலோசனை அல்லது ஸ்டார்ட்அப் நிறுவனங்களுக்கான சுயவிவரக் குறிப்புகளுக்கு ஏற்றவாறு நேர்த்தியாக வடிவமைக்கப்பட்டுள்ளது."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "ஒற்றை நெடுவரிசை; மெத்தனமாகவும் சீரியஸாகவும் இருக்கும் வடிவம்; மூத்த அல்லது எண்டர்பிரைஸ் நிலை பதவிகளுக்கு ஏற்றது."
@@ -2808,6 +2982,10 @@ msgstr "புள்ளிவிபரங்கள்"
msgid "Stay"
msgstr "தங்கு"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "நிறுத்து"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "வலிமைகள்"
@@ -2902,6 +3080,14 @@ msgstr "எழுத்து நிறம்"
msgid "Thai"
msgstr "தாய்"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "செயற்கை நுண்ணறிவு முன்மொழிந்த மாற்றம் இனி இந்த சுயவிவரக் குறிப்பிற்குப் பொருந்தாது."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "முன்னோட்டம் பார்க்க முடியாத ஒரு முன்மொழிவை அந்தச் செயற்கை நுண்ணறிவு வழங்கியது."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API விசை வெற்றிகரமாக நீக்கப்
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API விசை நீக்கப்பட்ட பின்னர், அது உங்கள் தரவை இனி அணுக முடியாது. இந்த செயலைக் களைந்து விட முடியாது."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "ஒரு முன்மொழிவைத் திருப்பி அனுப்புவதற்கு முன்பு உதவியாளர் நிறுத்தினார்."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "இது உங்கள் ரெஸ்யூமிக்கான URL
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "இது சில நிமிடங்கள் ஆகலாம்; இது AI வழங்குநரின் பதிலைப் பொருத்தது. தயவுசெய்து சாளரத்தை மூடவோ பக்கத்தை மீண்டும் ஏற்றவோ செய்யாதீர்கள்."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "இந்த முன்மொழிவு காலாவதியானது. சமீபத்திய சுயவிவரத்திலிருந்து இதை மீண்டும் உருவாக்குமாறு உதவியாளரிடம் கூறுங்கள்."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "இந்த ரெஸ்யூமி பூட்டப்பட்டுள்ளது மற்றும் புதுப்பிக்க முடியாது."
@@ -3385,10 +3580,6 @@ msgstr "X (ட்விட்டர்)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "ஆம், Reactive Resume பல மொழிகளில் கிடைக்கிறது. நீங்கள் அமைப்புகள் பக்கத்தில், அல்லது மேல் வலது மூலையில் உள்ள மொழி மாற்றியைப் பயன்படுத்தி உங்கள் விருப்பமான மொழியைத் தேர்ந்தெடுக்கலாம். உங்கள் மொழி பட்டியலில் தெரியவில்லையெனில், அல்லது ஏற்கனவே உள்ள மொழிபெயர்ப்புகளை மேம்படுத்த விரும்பினால், நீங்கள் <0>Crowdin-ல் உள்ள மொழிபெயர்ப்புகளுக்கு பங்களிக்கலாம்<1> (புதிய தாவலில் திறக்கிறது)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "ஆம்! ஒவ்வொரு டெம்ப்ளேட்டும் முழுமையாக தனிப்பயனாக்கக்கூடியது. நீங்கள் நிறங்கள், எழுத்துருக்கள், இடைவெளி போன்றவற்றை மாற்றலாம்; மேலும் உங்கள் ரெஸ்யூமியின் தோற்றத்தை முழுமையாக கட்டுப்படுத்த தனிப்பயன் CSS-யையும் எழுதலாம்."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "ஆம்! Reactive Resume-ஐ எவ்வித மறைந்த செலவுகளும், பிரீமியம் அடுக்கு கட்டணங்களும், சந்தா கட்டணங்களும் இன்றி முற்றிலும் இலவசமாக பயன்படுத்தலாம். இது திறந்த மூலமாகும் மற்றும் எப்போதும் இலவசமாகவே இருக்கும்."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Telugu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# అంశం} other {# అంశాలు}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# పాత్ర} other {# పాత్రలు}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} ప్రతిపాదనలు సమీక్షించబడ్డాయి"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "ఎ4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "పూర్తిగా! మీరు ఒక్క క్లిక్‌తో మీ రిజ్యూమ్‌ను PDF కు ఎగుమతి చేయవచ్చు. ఎగుమతైన PDF మీ ఫార్మాటింగ్ మరియు స్టైలింగ్‌ను ఖచ్చితంగా నిలుపుకుంటుంది."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "అంగీకరించు"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "అన్నింటినీ అంగీకరించండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "ఆమోదించబడిన ప్రతిపాదన"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API ఉపయోగించి మీ రిజ్యూమ్స్ మరియు డేటాను ప్రోగ్రామాటిక్‌గా యాక్సెస్ చేయండి."
@@ -229,10 +246,38 @@ msgstr "ముందు వరుస చేర్చండి"
msgid "Afrikaans"
msgstr "ఆఫ్రికాన్స్"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "తరువాత"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI అనుసంధానం నిలిపివేయబడింది"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "AI ప్రతిపాదన అమలు చేయబడింది."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "ఏఐ ప్రతిపాదన తిరస్కరించబడింది."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "AI ప్రతిపాదనలు అమలు చేయబడ్డాయి."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "AI ప్రతిపాదనలు తిరస్కరించబడ్డాయి."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI రెజ్యూమె అసిస్టెంట్"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "అల్బేనియన్"
@@ -367,10 +412,22 @@ msgstr "అధ్యయన విభాగం"
msgid "Artificial Intelligence"
msgstr "ఆర్టిఫిషియల్ ఇంటెలిజెన్స్"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "నిర్దిష్టమైన రెజ్యూమే మార్పు కోసం అడగండి..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "క్రమమైన మార్పును కోరండి"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "కారక నిష్పత్తి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "సహాయక అభ్యర్థన విఫలమైంది"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "ప్రాథమికాలు"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ఎంపిక చేసుకోవడానికి అందమైన టెంప్లేట్లు ఉన్నాయి, ఇంకా మరిన్ని త్వరలో వస్తున్నాయి."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "ముందు"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "బెంగాలీ"
@@ -462,10 +523,6 @@ msgstr "బుల్లెట్ జాబితా"
msgid "By the community, for the community."
msgstr "కమ్యూనిటీ కోసం, కమ్యూనిటీ చేత."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "నేను టెంప్లేట్లను అనుసంధానించగలనా?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "నేను నా రిజ్యూమ్‌ని PDFగా ఎగుమతి చేయగలనా?"
@@ -576,6 +633,14 @@ msgstr "తొలగించు"
msgid "Click here to select a file to import"
msgstr "ఇంపోర్ట్ చేయడానికి ఫైల్ ను ఎంచుకోవడానికి ఇక్కడ క్లిక్ చేయండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "మూసివేయి"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "AI సహాయకుడిని మూసివేయండి"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "కోడ్ బ్లాక్"
@@ -622,6 +687,10 @@ msgstr "నిర్ధారించండి"
msgid "Connect"
msgstr "కనెక్ట్ చేయండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "రెజ్యూమె ఎడిటింగ్ ప్రతిపాదనలను ఉపయోగించే ముందు, ఒక AI ప్రొవైడర్‌తో కనెక్ట్ అయి, దానిని ధృవీకరించుకోండి."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "ఈ సీక్రెట్ కీని కాపీ చేసి మ
msgid "Copy URL"
msgstr "URLని కాపీ చేయండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "AI ప్రతిపాదనను అమలు చేయలేకపోయారు."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "డిస్కనెక్ట్ చేయండి"
msgid "Discord"
msgstr "డిస్కోర్డ్"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "కొట్టివేయండి"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "డాక్యుమెంటేషన్"
msgid "Don't have an account? <0/>"
msgstr "ఖాతా లేదా? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "విరాళం ఇవ్వండి"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume కు దానం చేయండి"
@@ -1094,6 +1175,10 @@ msgstr "2FAని ప్రారంభించండి"
msgid "Enable AI Features"
msgstr "AI ఫీచర్లు ప్రారంభించండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "AI అనుసంధానాన్ని ప్రారంభించండి"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "టూ-ఫాక్టర్ ఆథెంటికేషన్‌ని ప్రారంభించండి"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ఉదాహరణలు: సారాంశాన్ని తిరిగి రాయడం, ఒక అనుభవ బుల్లెట్‌ను కుదించడం, కొలమానాలను జోడించడం లేదా ఉద్యోగ వివరణకు అనుగుణంగా రెజ్యూమెను మార్చడం."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "పూర్తి స్క్రీన్ నుండి నిష్క్రమించు"
@@ -1956,6 +2045,10 @@ msgstr "మైక్రోసాఫ్ట్ వర్డ్"
msgid "Model"
msgstr "మోడల్"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "మరిన్ని ప్రతిపాదన చర్యలు"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "కి తరలించండి"
@@ -1982,6 +2075,10 @@ msgstr "తప్పనిసరిగా https:// తో ప్రారంభ
msgid "Name"
msgstr "పేరు"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "సమీక్షించాల్సిన అవసరం ఉంది"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "నేపాళీ"
@@ -2012,6 +2109,10 @@ msgstr "న్యూ పాస్‌వర్డ్"
msgid "New Section"
msgstr "కొత్త విభాగం"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "తరువాత"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ప్రకటనలు లేవు, ట్రాకింగ్ లేదు"
@@ -2061,11 +2162,19 @@ msgstr "నిరంతర నిర్వహణ"
msgid "Open"
msgstr "ఓపెన్"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "ఓపెన్ AI అసిస్టెంట్"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "ఈమెయిల్ క్లైంట్ తెరవండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "ఓపెన్ ఇంటిగ్రేషన్స్"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "ఇంటిగ్రేషన్ల సెట్టింగ్‌లను తెరవండి"
@@ -2219,6 +2328,10 @@ msgstr "కొనసాగడానికి, రిజ్యూమ్ యజమ
msgid "Please enter the URL you want to link to:"
msgstr "మీరు లింక్ చేయాలనుకునే URL‌ను నమోదు చేయండి:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "దయచేసి ప్రాజెక్ట్‌కు మద్దతు ఇవ్వండి"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "పాజిషన్"
msgid "Preferences"
msgstr "ప్రాధాన్యతలు"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "మార్పులకు సిద్ధమవుతోంది"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "ప్రీసెట్‌లు"
@@ -2267,6 +2384,10 @@ msgstr "ప్రస్తుత కీలుపదాన్ని జోడి
msgid "Press <0>Enter</0> to open"
msgstr "తెరవడానికి <0>ఎంటర్</0> నొక్కండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "మునుపటి"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ప్రాథమిక రంగు"
@@ -2297,6 +2418,11 @@ msgstr "ప్రోగ్రెస్ బార్"
msgid "Projects"
msgstr "ప్రాజెక్ట్స్"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{total} యొక్క ప్రతిపాదన {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "మీ రిజ్యూమ్‌ను అనధికారిక ప్రవేశం నుండి పాస్‌వర్డ్‌తో రక్షించండి"
@@ -2319,6 +2445,10 @@ msgstr "పబ్లికేషన్స్"
msgid "Publisher"
msgstr "పబ్లిషర్"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "రా JSON ప్యాచ్"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - హోమ్‌పేజీకి వెళ్ళండి"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume ఉచితమైన ఓపెన్-సోర్స్
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume అనేది ఉచితమైన, ఓపెన్-సోర్స్ రిజ్యూమ్ బిల్డర్, ఇది మీ రిజ్యూమ్‌ను సృష్టించడం, నవీకరించడం మరియు పంచుకోవడం ప్రక్రియను సులభతరం చేస్తుంది."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "రియాక్టివ్ రెజ్యూమ్ ఉచితం మరియు ఓపెన్ సోర్స్. ఇది మీకు సహాయపడినట్లయితే, దయచేసి విరాళం ఇవ్వడాన్ని పరిగణించండి."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ఓపెన్‌సోర్స్‌, గోప్యతపై దృష్టి సారించినది మరియు పూర్తిగా ఉచితం. ఇతర జీవన చరిత్ర తయారీదార్ల వలె ప్రకటనలను చూపించదు, మీ డేటాను ట్రాక్ చేయదు, లేదా ఫీచర్లను వాలుతో పరిమితం చేయదు."
@@ -2380,6 +2514,18 @@ msgstr "రిఫ్రెష్ చేయండి"
msgid "Register New Device"
msgstr "కొత్త పరికరాన్ని నమోదు చేయండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "తిరస్కరించు"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "అన్నింటినీ తిరస్కరించండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "తిరస్కరించబడిన ప్రతిపాదన"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "మీ పాస్‌వర్డ్ గుర్తుందా? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "ధ్రువీకరణ ఇమెయిల్‌ను మళ్ల
msgid "Reset"
msgstr "రీసెట్ చేయండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "చాట్‌ను రీసెట్ చేయండి"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చే
msgid "Resetting your password..."
msgstr "మీ పాస్‌వర్డ్‌ను రీసెట్ చేస్తున్నాము..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "రీసైజ్ AI అసిస్టెంట్"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "వనరులు"
@@ -2463,6 +2617,14 @@ msgstr "రిజ్యూమ్ విశ్లేషణ పూర్తయి
msgid "Resumes"
msgstr "రిజ్యూమ్స్"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "సమీక్ష అవసరం"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "సమీక్షించిన ప్రతిపాదనలు"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "కుడి align చేయండి"
@@ -2561,6 +2723,10 @@ msgstr "ఎంచుకోండి..."
msgid "Self-Host with Docker"
msgstr "డాకర్‌తో స్వయంగా హోస్ట్ చేయండి"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "పంపండి"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "పాస్‌వర్డ్ రీసెట్ ఇమెయిల్
msgid "Sending password reset email..."
msgstr "పాస్‌వర్డ్ రీసెట్ ఇమెయిల్‌ను పంపుతున్నాము..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "అభ్యర్థనను పంపుతోంది"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "వేర్పాటు రేఖ"
@@ -2708,6 +2878,10 @@ msgstr "ఒకే-కాలమ్, సైడ్‌బార్ మరియు
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "ఇన్‌లైన్ మూడు-కాలమ్ ఎంట్రీ హెడర్‌తో (స్థానం · సంస్థ · కాలం) ఒకే-కాలమ్; సంక్షిప్తంగా మరియు ATS-స్నేహపూర్వకంగా, ఆసియా రెస్యూమ్ సంప్రదాయాలకు (CN/JP/KR) బాగా సరిపోతుంది."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "ప్రతి పేజీలో పెద్ద అక్షరాల విభాగ శీర్షికలు మరియు ప్రాథమిక రంగు టాప్ రూల్‌తో కూడిన సింగిల్-కాలమ్; ఎగ్జిక్యూటివ్, కన్సల్టింగ్ లేదా స్టార్టప్ రెజ్యూమెల కోసం చక్కగా తీర్చిదిద్దబడింది."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "ఒకే-కాలమ్; శుభ్రమైన మరియు ప్రాధాన్యత ఉన్న సీనియర్ లేదా ఎంటర్‌ప్రైజ్-లెవల్ స్థానాలకు సరిపోయే విధంగా."
@@ -2808,6 +2982,10 @@ msgstr "స్టాటిస్టిక్స్"
msgid "Stay"
msgstr "ఉండు"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "ఆపండి"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "బలాలు"
@@ -2902,6 +3080,14 @@ msgstr "టెక్స్ట్ కలర్"
msgid "Thai"
msgstr "థాయ్"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI ప్రతిపాదించిన మార్పు ఇకపై ఈ రెజ్యూమెకు వర్తించదు."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "AI ప్రివ్యూ చేయలేని ఒక ప్రతిపాదనను తిరిగి ఇచ్చింది."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API కీ విజయవంతంగా తొలగించబడి
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API కీ తొలగించబడిన తర్వాత మీ డేటాను మళ్ళీ యాక్సెస్ చేయలేరు. ఈ చర్యను రద్దు చేయడం సాధ్యం కాదు."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "సహాయకుడు ఒక ప్రతిపాదనను తిరిగి ఇచ్చే ముందు ఆగిపోయాడు."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "ఇది మీ రెజ్యూమ్‌కి URL-ప్రియ
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "AI ప్రొవైడర్‌ స్పందనపై ఆధారపడి, ఇది కొన్ని నిమిషాలు పడవచ్చు. దయచేసి విండోను మూసివేయకండి లేదా పేజీ రిఫ్రెష్ చేయకండి."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "ఈ ప్రతిపాదన పాతది. తాజా రెజ్యూమే నుండి దీనిని పునఃసృష్టించమని సహాయకుడిని అడగండి."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "ఈ రెజ్యూమ్ లాక్ చేయబడింది మరియు నవీకరించలేరు."
@@ -3385,10 +3580,6 @@ msgstr "X (ట్విట్టర్)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "అవును, Reactive Resume అనేక భాషల్లో అందుబాటులో ఉంది. మీరు సెట్టింగ్స్ పేజీలో లేదా పై కోణంలో భాష మార్పిడి ద్వారా మీకు ఇష్టమైన భాషను ఎంచుకోవచ్చు. మీ భాష కనిపించకపోతే, లేకపోతే మీరు ప్రస్తుత అనువాదాలను మెరుగుపరచాలనుకుంటే, మీరు <0>Crowdinలో అనువాదాలకు ప్రయత్నించవచ్చు<1> (కొత్త ట్యాబ్‌లో తెరవబడుతుంది)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "అవును! ప్రతి టెంప్లేట్‌ను పూర్తిగా అనుకూలీకరించుకోవచ్చు. మీరు రంగులు, ఫాంట్లు, స్పేసింగ్‌ను మార్చుకోవచ్చు, మరియు మీ రిజ్యూమ్ రూపాన్ని పూర్తిగా నియంత్రించేందుకు కస్టమ్ CSSను కూడా రాయొచ్చు."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "అవును! Reactive Resume ఉపయోగించడం పూర్తిగా ఉచితమే, ఎలాంటి దాచిన ఖర్చులు, ప్రీమియం స్థాయిలు, లేదా సబ్‌స్క్రిప్షన్‌ ఛార్జీలు లేవు. ఇది ఓపెన్‌సోర్స్ మరియు ఎప్పుడూ ఉచితంగానే ఉంటుంది."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# รายการ}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ตำแหน่ง} other {# ตำแหน่ง}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} ข้อเสนอได้รับการตรวจสอบแล้ว"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "แน่นอน! คุณสามารถส่งออกเรซูเม่ของคุณเป็น PDF ได้ในคลิกเดียว PDF ที่ส่งออกจะคงรูปแบบและสไตล์ของคุณไว้อย่างสมบูรณ์แบบ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "ยอมรับ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "ยอมรับทั้งหมด"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "ข้อเสนอที่ได้รับการยอมรับ"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "เข้าถึงเรซูเม่และข้อมูลของคุณผ่าน API ได้โดยอัตโนมัติ"
@@ -229,10 +246,38 @@ msgstr "เพิ่มแวก่อน"
msgid "Afrikaans"
msgstr "อาฟรีกานส์"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "หลังจาก"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "การผสานรวม AI ถูกปิดใช้งาน"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "ได้ยื่นข้อเสนอเกี่ยวกับ AI แล้ว"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "ข้อเสนอเกี่ยวกับ AI ถูกปฏิเสธ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "มีการนำข้อเสนอเกี่ยวกับ AI มาประยุกต์ใช้แล้ว"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "ข้อเสนอเกี่ยวกับ AI ถูกปฏิเสธ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "ผู้ช่วยเขียนเรซูเม่ด้วย AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "แอลเบเนีย"
@@ -367,10 +412,22 @@ msgstr "สาขาวิชา"
msgid "Artificial Intelligence"
msgstr "ปัญญาประดิษฐ์"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "ขอรับบริการแก้ไขประวัติย่อแบบเฉพาะเจาะจง..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "ขอให้มีการเปลี่ยนแปลงทีละน้อย"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "อัตราส่วนภาพ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "คำขอผู้ช่วยล้มเหลว"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "พื้นฐาน"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "แม่แบบที่สวยงามให้เลือก พร้อมเพิ่มเติมอีกในอนาคต"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "ก่อน"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "เบงกาลี"
@@ -462,10 +523,6 @@ msgstr "รายการหัวข้อย่อย"
msgid "By the community, for the community."
msgstr "โดยชุมชน เพื่อชุมชน"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "ฉันสามารถปรับแต่งแม่แบบได้ไหม?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "ฉันสามารถส่งออกเรซูเม่ของฉันเป็น PDF ได้ไหม?"
@@ -576,6 +633,14 @@ msgstr "ชัดเจน"
msgid "Click here to select a file to import"
msgstr "คลิกที่นี่เพื่อเลือกไฟล์ที่จะนำเข้า"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "ปิด"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "ปิดผู้ช่วย AI"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "บล็อกโค้ด"
@@ -622,6 +687,10 @@ msgstr "ยืนยัน"
msgid "Connect"
msgstr "เชื่อมต่อ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "ติดต่อและตรวจสอบผู้ให้บริการ AI ก่อนใช้บริการแก้ไขเรซูเม่"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "คัดลอกคีย์ลับนี้และใช้ใน
msgid "Copy URL"
msgstr "คัดลอก URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "ไม่สามารถนำข้อเสนอ AI ไปใช้ได้"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "ตัดการเชื่อมต่อ"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "อนุญาตให้ออกไป"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "เอกสารอ้างอิง"
msgid "Don't have an account? <0/>"
msgstr "ยังไม่มีบัญชี? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "บริจาค"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "บริจาคให้กับ Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "เปิดใช้งาน 2FA"
msgid "Enable AI Features"
msgstr "เปิดใช้งานคุณสมบัติ AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "เปิดใช้งานการผสานรวม AI"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "เปิดใช้งานการยืนยันตัวตนแบบสองขั้นตอน"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "ตัวอย่างเช่น: เขียนสรุปใหม่ ย่อรายละเอียดประสบการณ์บางส่วน เพิ่มตัวชี้วัด หรือปรับเรซูเม่ให้ตรงกับคุณสมบัติของตำแหน่งงาน"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ออกจากเต็มหน้าจอ"
@@ -1956,6 +2045,10 @@ msgstr "ไมโครซอฟต์ เวิร์ด"
msgid "Model"
msgstr "โมเดล"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "การดำเนินการข้อเสนอเพิ่มเติม"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ย้ายไปที่"
@@ -1982,6 +2075,10 @@ msgstr "ต้องเริ่มต้นด้วย https://"
msgid "Name"
msgstr "ชื่อ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "ต้องได้รับการตรวจสอบ"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "เนปาลี"
@@ -2012,6 +2109,10 @@ msgstr "รหัสผ่านใหม่"
msgid "New Section"
msgstr "เซกชั่นใหม่"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "ถัดไป"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ไม่มีโฆษณา ไม่มีการติดตาม"
@@ -2061,11 +2162,19 @@ msgstr "การบำรุงรักษาต่อเนื่อง"
msgid "Open"
msgstr "เปิด"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "เปิดผู้ช่วย AI"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "เปิดโปรแกรมอีเมล"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "การผสานรวมแบบเปิด"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "เปิดการตั้งค่าการเชื่อมต่อแบบเปิด"
@@ -2219,6 +2328,10 @@ msgstr "กรุณากรอกรหัสผ่านที่เจ้า
msgid "Please enter the URL you want to link to:"
msgstr "กรุณากรอก URL ที่คุณต้องการเชื่อมโยง:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "โปรดให้การสนับสนุนโครงการนี้"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "ตำแหน่ง"
msgid "Preferences"
msgstr "การตั้งค่าที่ต้องการ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "กำลังเตรียมการเปลี่ยนแปลง"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "ค่าที่ตั้งไว้ล่วงหน้า"
@@ -2267,6 +2384,10 @@ msgstr "กด <0>{RETURN_KEY}</0> หรือ <1>{COMMA_KEY}</1> เพื่
msgid "Press <0>Enter</0> to open"
msgstr "กด<0>Enter</0>เพื่อเปิด"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "ก่อนหน้า"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "สีหลัก"
@@ -2297,6 +2418,11 @@ msgstr "แถบความคืบหน้า"
msgid "Projects"
msgstr "โปรเจกต์"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "ข้อเสนอ {0} ของ {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "ปกป้องเรซูเม่ของคุณจากการเข้าถึงโดยไม่ได้รับอนุญาตด้วยรหัสผ่าน"
@@ -2319,6 +2445,10 @@ msgstr "สิ่งตีพิมพ์"
msgid "Publisher"
msgstr "สำนักพิมพ์"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "แพทช์ JSON ดิบ"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ไปที่หน้าแรก"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume เป็นโครงการฟรีและโ
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume คือเครื่องมือสร้างเรซูเม่ฟรีและโอเพนซอร์สที่ทำให้การสร้าง อัปเดต และแบ่งปันเรซูเม่ของคุณเป็นเรื่องง่าย"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume เป็นซอฟต์แวร์ฟรีและโอเพนซอร์ส หากซอฟต์แวร์นี้มีประโยชน์กับคุณ โปรดพิจารณาบริจาคเงินสนับสนุน"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume เป็นโอเพ่นซอร์ส เน้นความเป็นส่วนตัว และฟรีอย่างสมบูรณ์ แตกต่างจากเครื่องมือสร้างเรซูเม่อื่น ๆ ไม่มีโฆษณา ไม่ติดตามข้อมูลของคุณ หรือจำกัดฟีเจอร์หลังระบบจ่ายเงิน"
@@ -2380,6 +2514,18 @@ msgstr "รีเฟรช"
msgid "Register New Device"
msgstr "ลงทะเบียนอุปกรณ์ใหม่"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "ปฏิเสธ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "ปฏิเสธทั้งหมด"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "ข้อเสนอที่ถูกปฏิเสธ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "จำรหัสผ่านได้? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "กำลังส่งอีเมลยืนยันอีกคร
msgid "Reset"
msgstr "รีเซ็ต"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "รีเซ็ตแชท"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "รีเซ็ตรหัสผ่านของคุณ"
msgid "Resetting your password..."
msgstr "กำลังรีเซ็ตรหัสผ่านของคุณ..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "ผู้ช่วย AI ปรับขนาด"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "ทรัพยากร"
@@ -2463,6 +2617,14 @@ msgstr "การวิเคราะห์ประวัติย่อเส
msgid "Resumes"
msgstr "เรซูเม่"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "จำเป็นต้องมีการตรวจสอบ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "ข้อเสนอที่ได้รับการตรวจสอบ"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "ชิดขวา"
@@ -2561,6 +2723,10 @@ msgstr "เลือก..."
msgid "Self-Host with Docker"
msgstr "โฮสต์ด้วยตนเองบน Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "ส่ง"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "ส่งอีเมลรีเซ็ตรหัสผ่าน"
msgid "Sending password reset email..."
msgstr "กำลังส่งอีเมลรีเซ็ตรหัสผ่าน..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "กำลังส่งคำขอ"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "ตัวคั่น"
@@ -2708,6 +2878,10 @@ msgstr "คอลัมน์เดียว มีแถบข้างแล
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "คอลัมน์เดียวพร้อมหัวรายการสามคอลัมน์แบบอินไลน์ (ตำแหน่ง · องค์กร · ช่วงเวลา); กระชับและเป็นมิตรกับระบบคัดกรองอัตโนมัติ (ATS) เหมาะอย่างยิ่งสำหรับรูปแบบเรซูเม่แบบเอเชีย (จีน/ญี่ปุ่น/เกาหลี)"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "รูปแบบคอลัมน์เดียว โดยใช้ตัวพิมพ์ใหญ่สำหรับหัวข้อแต่ละส่วน และมีเส้นขีดด้านบนสีหลักในทุกหน้า เหมาะสำหรับเรซูเม่ของผู้บริหาร ที่ปรึกษา หรือบริษัทสตาร์ทอัพ"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "คอลัมน์เดียว มีความเรียบหรูและเป็นทางการ เหมาะสำหรับตำแหน่งผู้บริหารหรือระดับอาวุโส"
@@ -2808,6 +2982,10 @@ msgstr "สถิติ"
msgid "Stay"
msgstr "อยู่ต่อ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "หยุด"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "จุดแข็ง"
@@ -2902,6 +3080,14 @@ msgstr "สีตัวอักษร"
msgid "Thai"
msgstr "ไทย"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "ระบบ AI เสนอการเปลี่ยนแปลงที่ไม่เกี่ยวข้องกับประวัติย่อนี้อีกต่อไป"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "ระบบ AI ส่งข้อเสนอกลับมา แต่ไม่สามารถดูตัวอย่างได้"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "ลบคีย์ API เรียบร้อยแล้ว"
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "หลังลบคีย์ API แล้ว จะไม่สามารถเข้าถึงข้อมูลของคุณได้อีก การดำเนินการนี้ไม่สามารถกลับคืนได้"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "ผู้ช่วยหยุดก่อนที่จะส่งข้อเสนอกลับไป"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "นี่คือชื่อเรซูเม่ที่เหมา
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "อาจใช้เวลาสักครู่ขึ้นอยู่กับการตอบสนองของผู้ให้บริการ AI กรุณาอย่าปิดหน้าต่างหรือรีเฟรชหน้าเว็บ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "ข้อเสนอฉบับนี้ล้าสมัยแล้ว โปรดขอให้ผู้ช่วยสร้างข้อเสนอใหม่จากประวัติย่อล่าสุด"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "เรซูเม่นี้ถูกล็อกและไม่สามารถอัปเดตได้"
@@ -3385,10 +3580,6 @@ msgstr "X (ทวิตเตอร์)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "ใช่, Reactive Resume มีให้บริการหลายภาษา คุณสามารถเลือกภาษาที่คุณต้องการได้ในหน้าตั้งค่าหรือใช้ตัวสลับภาษาในมุมขวาบน หากคุณไม่เห็นภาษาของคุณ หรือหากคุณต้องการปรับปรุงคำแปลปัจจุบัน คุณสามารถ<0>ร่วมแปลบน Crowdin<1> (เปิดในแท็บใหม่)</1></0> ได้"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "ใช่! แม่แบบทุกแบบปรับแต่งได้เต็มที่ คุณสามารถเปลี่ยนสี ฟอนต์ ระยะห่าง และแม้แต่เขียน CSS เองเพื่อควบคุมรูปลักษณ์ของประวัติย่อคุณได้โดยสมบูรณ์."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "ใช่! Reactive Resume ใช้งานได้ฟรีโดยสมบูรณ์ ไม่มีค่าใช้จ่ายแอบแฝง ระดับพรีเมียม หรือค่าบริการรายเดือน เป็นโอเพนซอร์สและจะฟรีตลอดไป."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# öğe} other {# öğe}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rol} other {# rol}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} teklif incelendi"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Kesinlikle! Özgeçmişinizi tek tıkla PDF'ye aktarabilirsiniz. Aktarılan PDF tüm biçim ve stillerinizi mükemmel bir şekilde korur."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Kabul etmek"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Tümünü kabul et"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Kabul edilen teklif"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Özgeçmişlerinize ve verilerinize API aracılığıyla programlı olarak erişin."
@@ -229,10 +246,38 @@ msgstr "Önce Satır Ekle"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Sonrasında"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "Yapay Zeka"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Yapay zeka entegrasyonu devre dışı bırakıldı"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Yapay zeka önerisi sunuldu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Yapay zeka önerisi reddedildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Yapay zeka önerileri sunuldu."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Yapay zekâ projeleri reddedildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Yapay Zeka Destekli Özgeçmiş Asistanı"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Arnavutça"
@@ -367,10 +412,22 @@ msgstr "Çalışma alanı"
msgid "Artificial Intelligence"
msgstr "Yapay Zekâ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Hedeflenen özgeçmiş değişikliği talebinde bulunun..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Kademeli bir değişiklik talep edin."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "En/Boy Oranı"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Asistan isteği başarısız oldu"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Temel Bilgiler"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Seçebileceğiniz güzel şablonlar, daha fazlası yolda."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Önce"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengalce"
@@ -462,10 +523,6 @@ msgstr "Madde Listesi"
msgid "By the community, for the community."
msgstr "Topluluk tarafından topluluk için oluşturuldu."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Şablonları özelleştirebilir miyim?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Özgeçmişimi PDF olarak dışa aktarabilir miyim?"
@@ -576,6 +633,14 @@ msgstr "Temiz"
msgid "Click here to select a file to import"
msgstr "İçe aktarmak için bir dosya seçmek üzere buraya tıklayın"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Kapat"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Yapay zeka asistanını kapat"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kod Bloğu"
@@ -622,6 +687,10 @@ msgstr "Onayla"
msgid "Connect"
msgstr "Bağlan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Özgeçmiş düzenleme tekliflerini kullanmadan önce bir yapay zeka sağlayıcısıyla bağlantı kurun ve doğrulayın."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Bu gizli anahtarı kopyalayıp uygulamalarınızda verilerinize erişmek
msgid "Copy URL"
msgstr "URL'yi Kopyala"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Yapay zeka önerisi uygulanamadı."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Bağlantıyı Kes"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Azletmek"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Dökümantasyon"
msgid "Don't have an account? <0/>"
msgstr "Hesabınız yok mu? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Bağış yapmak"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reaktif Özgeçmiş'e Bağış Yapın"
@@ -1094,6 +1175,10 @@ msgstr "2FA'yı etkinleştir"
msgid "Enable AI Features"
msgstr "Yapay Zeka Özelliklerini Etkinleştir"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Yapay zeka entegrasyonunu etkinleştirin"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "İki Faktörlü Kimlik Doğrulamayı Etkinleştir"
@@ -1162,6 +1247,10 @@ msgstr "Buraya girilen her şey tarayıcınıza yerel olarak kaydedilir. Veriler
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Örnekler: özet bölümünü yeniden yazmak, deneyimle ilgili bir maddeyi kısaltmak, ölçütler eklemek veya özgeçmişi iş tanımına uyarlamak."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Tam Ekrandan Çık"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Daha fazla teklif eylemi"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Taşı"
@@ -1982,6 +2075,10 @@ msgstr "https:// ile başlamalıdır."
msgid "Name"
msgstr "İsim"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Gözden geçirilmesi gerekiyor"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepalce"
@@ -2012,6 +2109,10 @@ msgstr "Yeni Şifre"
msgid "New Section"
msgstr "Yeni Bölüm"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Sonraki"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Reklam Yok, Takip Yok"
@@ -2061,11 +2162,19 @@ msgstr "Devam Eden Bakım"
msgid "Open"
msgstr "Aç"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Açık yapay zeka asistanı"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "E-posta İstemcisini Aç"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Açık Entegrasyonlar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Entegrasyon Ayarlarını Açın"
@@ -2219,6 +2328,10 @@ msgstr "Devam etmek için özgeçmişin sahibinin sizinle paylaştığı şifrey
msgid "Please enter the URL you want to link to:"
msgstr "Bağlamak istediğiniz URL'yi girin:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Lütfen projeyi destekleyin."
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Pozisyon"
msgid "Preferences"
msgstr "Tercihler"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Değişikliklere hazırlanmak"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Ön Ayarlar"
@@ -2267,6 +2384,10 @@ msgstr "Mevcut anahtar kelimeyi eklemek veya kaydetmek için <0>{RETURN_KEY}</0>
msgid "Press <0>Enter</0> to open"
msgstr "Açmak için <0>Enter</0> tuşuna basın"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Önceki"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Birincil Renk"
@@ -2297,6 +2418,11 @@ msgstr "İlerleme Çubuğu"
msgid "Projects"
msgstr "Projeler"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{total}'in {0} numaralı teklifi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Özgeçmişinizi yetkisiz erişimden bir şifreyle koruyun"
@@ -2319,6 +2445,10 @@ msgstr "Yayınlar"
msgid "Publisher"
msgstr "Yayınlayıcı"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Ham JSON Yaması"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Özgeçmiş - Ana sayfaya git"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume, sevgiyle yapılan ve benimle birlikte katkıda bulunanl
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume, özgeçmişinizi oluşturma, güncelleme ve paylaşma sürecini kolaylaştıran ücretsiz ve açık kaynaklı bir özgeçmiş oluşturucusudur."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume ücretsiz ve açık kaynaklıdır. Eğer size yardımcı olduysa, lütfen bağış yapmayı düşünün."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Özgeçmiş açık kaynaklı, gizliliğe önem veren ve tamamen ücretsizdir. Diğer özgeçmiş oluşturuculardan farklı olarak reklam göstermez, verilerinizi takip etmez veya özelliklerinizi bir ödeme duvarının arkasına gizlemez."
@@ -2380,6 +2514,18 @@ msgstr "Yenile"
msgid "Register New Device"
msgstr "Yeni Cihaz Kaydetme"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Reddetmek"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Tümünü reddet"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Reddedilen teklif"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Şifrenizi hatırladınız mı? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Doğrulama e-postası tekrar gönderiliyor..."
msgid "Reset"
msgstr "Sıfırla"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Sohbeti sıfırla"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Şifrenizi sıfırlayın"
msgid "Resetting your password..."
msgstr "Şifreniz sıfırlanıyor..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Yeniden boyutlandırma yapay zeka asistanı"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Kaynaklar"
@@ -2463,6 +2617,14 @@ msgstr "Özgeçmiş analizi tamamlandı."
msgid "Resumes"
msgstr "Özgeçmişler"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "İnceleme gerekli"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "İncelenen teklifler"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Sağa Hizala"
@@ -2561,6 +2723,10 @@ msgstr "Seç..."
msgid "Self-Host with Docker"
msgstr "Docker ile kendi kendine barındırma"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Göndermek"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Şifre Sıfırlama E-postası Gönder"
msgid "Sending password reset email..."
msgstr "Şifre sıfırlama e-postası gönderiliyor..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "İstek gönderiliyor"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Ayırıcı"
@@ -2708,6 +2878,10 @@ msgstr "Yan panel ve temiz ızgara yerleşimine sahip tek sütun; her türlü pr
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Satır içi üç sütunlu giriş başlığına sahip tek sütun (pozisyon - organizasyon - nokta); kompakt ve ATS dostu, Asya özgeçmiş kuralları (CN/JP/KR) için çok uygun."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Tek sütunlu, büyük harfli bölüm başlıkları ve her sayfada ana renkte üst çizgi bulunan; yönetici, danışmanlık veya girişim özgeçmişleri için ideal."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Tek sütun; üst düzey veya kurumsal pozisyonlar için ciddi ve özenli."
@@ -2808,6 +2982,10 @@ msgstr "İstatistikler"
msgid "Stay"
msgstr "Kal"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Durmak"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Güçlü Yönler"
@@ -2902,6 +3080,14 @@ msgstr "Metin Rengi"
msgid "Thai"
msgstr "Tayca"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Yapay zekanın önerdiği değişiklik artık bu özgeçmiş için geçerli değil."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Yapay zeka önizlemesi yapılamayan bir öneri sundu."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API anahtarı başarıyla silindi."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "API anahtarı silindikten sonra artık verilerinize erişemeyecektir. Bu işlem geri alınamaz."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Asistan, teklifi geri vermeden önce durdu."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Bu, özgeçmişiniz için URL dostu bir isimdir."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Bu, yapay zeka sağlayıcısının yanıtına bağlı olarak birkaç dakika sürebilir. Lütfen pencereyi kapatmayın veya sayfayı yenilemeyin."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Bu teklif güncelliğini yitirmiş. Asistandan en son özgeçmişten yola çıkarak yeniden oluşturmasını rica edin."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Bu özgeçmiş kilitli ve güncellenemez."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Evet, Reactive Özgeçmiş birçok dilde mevcuttur. Tercih ettiğiniz dili ayarlar sayfasından veya sağ üst köşedeki dil değiştiriciyi kullanarak seçebilirsiniz. Eğer dilinizi göremiyorsanız ya da mevcut çevirileri geliştirmek istiyorsanız, <0>Crowdin'de çevirilere katkıda bulunabilirsiniz<1> (yeni sekmede açılır)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Evet! Her şablon tamamen özelleştirilebilir. Renkleri, yazı tiplerini, aralığı değiştirebilir, hatta özgeçmişinizin görünümünü tamamen kontrol etmek için özel CSS yazabilirsiniz."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Evet! Reactive Resume tamamen ücretsizdir, gizli maliyetler, premium katmanlar veya abonelik ücretleri yoktur. Açık kaynaklıdır ve her zaman ücretsiz kalacaktır."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\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"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# елемент} few {# елементи} many {# ел
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# посада} few {# посади} many {# посад} other {# посади}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} пропозицій розглянуто"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Звісно! Ви можете експортувати своє резюме як PDF одним кліком. Експортований PDF ідеально відтворює ваше форматування і стилі."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Прийняти"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Прийняти все"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Прийнята пропозиція"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Отримуйте доступ до ваших резюме і даних за допомогою API."
@@ -229,10 +246,38 @@ msgstr "Додати Рядок Згори"
msgid "Afrikaans"
msgstr "Африканська"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Після"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "ШІ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Інтеграцію ШІ вимкнено"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Пропозицію штучного інтелекту застосовано."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Пропозицію щодо ШІ відхилено."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Застосовані пропозиції ШІ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Пропозиції щодо штучного інтелекту відхилено."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Помічник зі штучним інтелектом для створення резюме"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Албанська"
@@ -367,10 +412,22 @@ msgstr "Освітня програма"
msgid "Artificial Intelligence"
msgstr "Штучний інтелект"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Попросіть про цілеспрямовану зміну резюме..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Попросіть про поступові зміни"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Пропорції"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Запит на доступ до Асистента не вдався"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Основне"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Гарні шаблони на вибір, і ще більше буде незабаром."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Раніше"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Бенгальська"
@@ -462,10 +523,6 @@ msgstr "Маркірований список"
msgid "By the community, for the community."
msgstr "Спільнотою, для спільноти."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Чи можна налаштовувати шаблони?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Чи можу я експортувати своє резюме у PDF?"
@@ -576,6 +633,14 @@ msgstr "Чисто"
msgid "Click here to select a file to import"
msgstr "Натисніть тут, щоб вибрати файл для імпорту"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Закрити"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Закрити помічника зі штучним інтелектом"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Блок коду"
@@ -622,6 +687,10 @@ msgstr "Підтвердити"
msgid "Connect"
msgstr "Підключити"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Підключіть та перевірте постачальника послуг штучного інтелекту, перш ніж використовувати пропозиції редагування резюме."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Скопіюйте цей секретний ключ та викори
msgid "Copy URL"
msgstr "Скопіювати URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Не вдалося застосувати пропозицію штучного інтелекту."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Від'єднати"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Відхилити"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Документація"
msgid "Don't have an account? <0/>"
msgstr "Немає облікового запису? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Пожертвувати"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Пожертвувати на Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Увімкнути 2FA"
msgid "Enable AI Features"
msgstr "Увімкнути функції ШІ"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Увімкнути інтеграцію штучного інтелекту"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Увімкнути двофакторну автентифікацію"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Приклади: переписати резюме, скоротити один пункт про досвід, додати показники або адаптувати резюме до опису вакансії."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Вийти з повноекранного режиму"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Модель"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Більше дій з пропозиціями"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Перемістити до"
@@ -1982,6 +2075,10 @@ msgstr "Почніть з https://"
msgid "Name"
msgstr "Назва"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Потребує перегляду"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Непальська"
@@ -2012,6 +2109,10 @@ msgstr "Новий пароль"
msgid "New Section"
msgstr "Нова секція"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Далі"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Без реклами, без відстеження"
@@ -2061,11 +2162,19 @@ msgstr "Поточне обслуговування"
msgid "Open"
msgstr "Відкрити"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Відкритий помічник зі штучним інтелектом"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Відкрити поштовий клієнт"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Відкриті інтеграції"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Відкрити налаштування інтеграції"
@@ -2219,6 +2328,10 @@ msgstr "Будь ласка, введіть пароль, яким з вами
msgid "Please enter the URL you want to link to:"
msgstr "Будь ласка, введіть URL-адресу, на яку хочете зробити посилання:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Будь ласка, підтримайте проєкт"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Посада"
msgid "Preferences"
msgstr "Налаштування"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Підготовка змін"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Пресети"
@@ -2267,6 +2384,10 @@ msgstr "Натисніть <0>{RETURN_KEY}</0> або <1>{COMMA_KEY}</1>, щоб
msgid "Press <0>Enter</0> to open"
msgstr "Натисніть <0>Enter</0>, щоб відкрити"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Попередній"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Основний колір"
@@ -2297,6 +2418,11 @@ msgstr "Індикатор прогресу"
msgid "Projects"
msgstr "Проєкти"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Пропозиція {0} з {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Захистіть своє резюме від несанкціонованого доступу за допомогою пароля"
@@ -2319,6 +2445,10 @@ msgstr "Публікації"
msgid "Publisher"
msgstr "Видавець"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Патч необробленого JSON"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – перейти на головну сторінку"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume — це безкоштовний проєкт з від
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume — це безкоштовний та відкритий конструктор резюме, що спрощує процес створення, оновлення й поширення вашого резюме."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume — безкоштовний ресурс з відкритим вихідним кодом. Якщо він вам допоміг, будь ласка, подумайте про пожертвування."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume є open-source, орієнтована на приватність і повністю безкоштовна. На відміну від інших редакторів резюме, вона не показує рекламу, не відстежує ваші дані і не обмежує функції за оплатою."
@@ -2380,6 +2514,18 @@ msgstr "Оновити"
msgid "Register New Device"
msgstr "Зареєструвати новий пристрій"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Відхилити"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Відхилити все"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Відхилена пропозиція"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Пригадали пароль? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Повторна відправка листа для підтвердж
msgid "Reset"
msgstr "Скинути"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Скинути чат"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Скинути пароль"
msgid "Resetting your password..."
msgstr "Скидання пароля..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Змінити розмір помічника зі штучним інтелектом"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Ресурси"
@@ -2463,6 +2617,14 @@ msgstr "Аналіз резюме завершено."
msgid "Resumes"
msgstr "Резюме"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Потрібна перевірка"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Переглянуті пропозиції"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Вирівняти праворуч"
@@ -2561,6 +2723,10 @@ msgstr "Вибрати..."
msgid "Self-Host with Docker"
msgstr "Самостійний хостинг з Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Надіслати"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Надіслати лист для скидання пароля"
msgid "Sending password reset email..."
msgstr "Відправка листа для скидання пароля..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Надсилання запиту"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Роздільник"
@@ -2708,6 +2878,10 @@ msgstr "Одна колонка з бічною панеллю та чіткою
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Одноколонковий з вбудованим триколонковим заголовком (посада - організація - період); компактний і зручний для ATS, добре підходить для азіатських конвенцій резюме (CN/JP/KR)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Одноколонцевий формат із заголовками розділів великими літерами та верхньою лінією основного кольору на кожній сторінці; ідеально підходить для резюме керівників, консалтингових компаній або стартапів."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Одна колонка; акуратно й серйозно для старших або корпоративних посад."
@@ -2808,6 +2982,10 @@ msgstr "Статистика"
msgid "Stay"
msgstr "Залишитись"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "СТІЙ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Сильні сторони"
@@ -2902,6 +3080,14 @@ msgstr "Колір тексту"
msgid "Thai"
msgstr "Тайська"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Штучний інтелект запропонував зміну, яка більше не застосовується до цього резюме."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Штучний інтелект повернув пропозицію, яку неможливо було переглянути."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API-ключ було успішно видалено."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Після видалення API-ключ більше не зможе отримувати доступ до ваших даних. Цю дію неможливо скасувати."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Помічник зупинився, перш ніж повернути пропозицію."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Це ім'я вашого резюме, пристосоване для
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Це може зайняти кілька хвилин, залежно від відповіді AI-провайдера. Будь ласка, не закривайте вікно і не оновлюйте сторінку."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Ця пропозиція застаріла. Попросіть асистента створити її заново з останнього резюме."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Це резюме заблоковано і не може бути оновлене."
@@ -3385,10 +3580,6 @@ msgstr "Х (Твіттер)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Так, Reactive Resume доступна багатьма мовами. Ви можете обрати бажану мову на сторінці налаштувань або через перемикач мови у верхньому правому кутку. Якщо ви не бачите своєї мови або хочете покращити існуючий переклад, ви можете <0>долучитися до перекладу на Crowdin<1> (відкриється у новій вкладці)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Так! Кожен шаблон повністю налаштовується. Ви можете змінювати кольори, шрифти, відступи та навіть писати власний CSS, щоб повністю контролювати вигляд вашого резюме."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Так! Reactive Resume повністю безкоштовний у використанні, без прихованих платежів, преміум тарифів чи підписок. Це відкрите програмне забезпечення, яке завжди залишатиметься безкоштовним."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Uzbek\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elementlar}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rol} other {# rol}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} takliflar ko'rib chiqildi"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Albatta! Tarjimai holingizni bir marta bosish bilan PDF formatiga eksport qilishingiz mumkin. Eksport qilingan PDF sizning barcha format va uslublaringizni to‘liq saqlab qoladi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Qabul qilish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Hammasini qabul qilish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Qabul qilingan taklif"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Tarjimai hollaringiz va ma'lumotlaringizdan API orqali dasturiy ravishda foydalaning."
@@ -229,10 +246,38 @@ msgstr "Qatordan oldin qator qo‘shish"
msgid "Afrikaans"
msgstr "Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Keyin"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "SO"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Sun'iy intellekt integratsiyasi o'chirilgan"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Sun'iy intellekt taklifi qo'llanildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Sun'iy intellekt bo'yicha taklif rad etildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Sun'iy intellekt bo'yicha takliflar qo'llanildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Sun'iy intellekt bo'yicha takliflar rad etildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Sun'iy intellekt rezyume yordamchisi"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Alban tili"
@@ -367,10 +412,22 @@ msgstr "Ta'lim sohasi"
msgid "Artificial Intelligence"
msgstr "Sun'iy intellekt"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Maqsadli rezyumeni o'zgartirishni so'rang..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Bosqichma-bosqich o'zgarishni so'rang"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Tomonlar nisbati"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Yordamchi so'rovi bajarilmadi"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Asoslar"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Goʻzal shablonlar tanlang, yana koʻplari yoʻlda."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Oldin"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Bengal tili"
@@ -462,10 +523,6 @@ msgstr "Nuqta roʻyxati"
msgid "By the community, for the community."
msgstr "Jamiyat tomonidan, jamiyat uchun."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Shablonlarni moslashtira olamanmi?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Rezyumeni PDF ga eksport qila olamanmi?"
@@ -576,6 +633,14 @@ msgstr "Tiniq"
msgid "Click here to select a file to import"
msgstr "Import qilish uchun faylni tanlash uchun shu yerni bosing"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Yopish"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Sun'iy intellekt yordamchisini yopish"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Kod bloki"
@@ -622,6 +687,10 @@ msgstr "Tasdiqlash"
msgid "Connect"
msgstr "Ulanish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Rezyume tahrirlash takliflaridan foydalanishdan oldin AI provayderiga ulaning va tasdiqlang."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Ushbu maxfiy kalitni nusxalab, maʼlumotlaringizga kirish uchun ilovalar
msgid "Copy URL"
msgstr "URL-ni nusxalash"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Sun'iy intellekt taklifini qo'llab bo'lmadi."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Uzib qo‘yish"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Bekor qilish"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Hujjatlar"
msgid "Don't have an account? <0/>"
msgstr "Hisobingiz yoʻqmi? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Xayriya qiling"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Reactive Resume'ga xayriya qiling"
@@ -1094,6 +1175,10 @@ msgstr "2BShT (2FA) ni yoqish"
msgid "Enable AI Features"
msgstr "AI xususiyatlarini yoqish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Sun'iy intellekt integratsiyasini yoqish"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Ikki bosqichli autentifikatsiyani yoqish"
@@ -1162,6 +1247,10 @@ msgstr "Bu yerga kiritilgan barcha ma'lumotlar faqat brauzeringizda lokal saqlan
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Misollar: xulosani qayta yozish, bitta tajriba bandini qisqartirish, ko'rsatkichlarni qo'shish yoki rezyumeni ish tavsifiga moslashtirish."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Toʻliq ekrandan chiqish"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Model"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Ko'proq takliflar"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "...ga ko'chirish"
@@ -1982,6 +2075,10 @@ msgstr "https:// bilan boshlanishi kerak."
msgid "Name"
msgstr "Ism"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Ko'rib chiqish kerak"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepal tili"
@@ -2012,6 +2109,10 @@ msgstr "Yangi parol"
msgid "New Section"
msgstr "Yangi bo'lim"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Keyingi"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Reklamasiz, kuzatuvsiz"
@@ -2061,11 +2162,19 @@ msgstr "Doimiy texnik xizmat ko‘rsatish"
msgid "Open"
msgstr "Ochiq"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Ochiq AI yordamchisi"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Pochta dasturini ochish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Ochiq integratsiyalar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Integratsiyalar sozlamalarini oching"
@@ -2219,6 +2328,10 @@ msgstr "Davom etish uchun, rezyume egasi siz bilan baham ko'rgan parolni kiritin
msgid "Please enter the URL you want to link to:"
msgstr "Havola qilmoqchi bo'lgan URL manzilini kiriting:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Iltimos, loyihani qo'llab-quvvatlang"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Lavozim"
msgid "Preferences"
msgstr "Afzalliklar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "O'zgarishlarni tayyorlash"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Oldindan sozlamalar"
@@ -2267,6 +2384,10 @@ msgstr "Joriy kalit soʻzni qoʻshish yoki saqlash uchun <0>{RETURN_KEY}</0> yok
msgid "Press <0>Enter</0> to open"
msgstr "Ochish uchun <0>Enter tugmasini</0> bosing"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Oldingi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Asosiy rang"
@@ -2297,6 +2418,11 @@ msgstr "Progres paneli"
msgid "Projects"
msgstr "Loyihalar"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "{total} taklifidan {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Rezyumeni ruxsatsiz kirishdan parol orqali himoya qiling"
@@ -2319,6 +2445,10 @@ msgstr "Nashrlar"
msgid "Publisher"
msgstr "Nashriyotchi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Xom JSON yamoq"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Bosh sahifaga o'tish"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume bu bepul va ochiq kodli loyiha bo‘lib, muhabbat bilan
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume bu bepul va ochiq kodli rezyume tuzuvchi bo‘lib, rezyumeingizni yaratish, yangilash va ulashish jarayonini soddalashtiradi."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume bepul va ochiq kodli. Agar u sizga yordam bergan bo'lsa, iltimos, xayriya qilishni ko'rib chiqing."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume ochiq manbali, maxfiylikka yo'naltirilgan va butunlay bepul. Boshqa rezume tuzuvchilardan farqli o'laroq, u reklamalarni ko'rsatmaydi, ma'lumotlaringizni kuzatmaydi yoki funksiyalarni to'lov devori ortida cheklamaydi."
@@ -2380,6 +2514,18 @@ msgstr "Yangilash"
msgid "Register New Device"
msgstr "Yangi qurilmani ro'yxatdan o'tkazish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Rad etish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Hammasini rad etish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Rad etilgan taklif"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Parolingizni eslaysizmi? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Tasdiqlash xati qayta yuborilmoqda..."
msgid "Reset"
msgstr "Tiklash"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Chatni qayta tiklash"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Parolingizni tiklang"
msgid "Resetting your password..."
msgstr "Parolingiz tiklanmoqda..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Sun'iy intellekt yordamchisining o'lchamini o'zgartirish"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Resurslar"
@@ -2463,6 +2617,14 @@ msgstr "Rezyume tahlili yakunlandi."
msgid "Resumes"
msgstr "Rezyumelar"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Ko'rib chiqish talab qilinadi"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Ko'rib chiqilgan takliflar"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "O‘ngga hizalash"
@@ -2561,6 +2723,10 @@ msgstr "Tanlang..."
msgid "Self-Host with Docker"
msgstr "Docker bilan mustaqil joylashtirish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Yuborish"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Parolni tiklash uchun email jo‘natish"
msgid "Sending password reset email..."
msgstr "Parol tiklash uchun email yuborilmoqda..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "So'rov yuborilmoqda"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Ajratgich"
@@ -2708,6 +2878,10 @@ msgstr "Yon panel va toza tarmoq maketi bilan bir ustunli; har qanday kasbiy yok
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Bir ustunli, satr ichida uch ustunli kirish sarlavhasi (lavozim · tashkilot · davr); ixcham va ATSga mos, Osiyo rezyume an'analari (Xitoy/Yaponiya/Janubiy Koreya) uchun juda qulay."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Har bir sahifada bosh harflar bilan yozilgan bo'lim sarlavhalari va asosiy rangdagi yuqori qoidasi bo'lgan bitta ustunli; rahbariyat, konsalting yoki startap rezyumelari uchun sayqallangan."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Bir ustunli; sayqallangan va jiddiy, yuqori darajali yoki korporativ lavozimlar uchun."
@@ -2808,6 +2982,10 @@ msgstr "Statistika"
msgid "Stay"
msgstr "Qolish"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "STOP"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Kuchli tomonlari"
@@ -2902,6 +3080,14 @@ msgstr "Matn rangi"
msgid "Thai"
msgstr "Tay tili"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "AI endi ushbu rezyumega taalluqli bo'lmagan o'zgartirishni taklif qildi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Sun'iy intellekt oldindan ko'rib chiqilmagan taklifni qaytardi."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API kaliti muvaffaqiyatli oʻchirildi."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Oʻchirilgandan soʻng API kaliti endi maʼlumotlaringizga kira olmaydi. Bu amalni bekor qilib boʻlmaydi."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Yordamchi taklifni qaytarishdan oldin to'xtadi."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Bu rezyume uchun URL uchun qulay ism."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Bu AI provayderining javobiga qarab bir necha daqiqa davom etishi mumkin. Iltimos, oynani yoping yoki sahifani yangilamang."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Bu taklif eskirgan. Yordamchidan uni so'nggi rezyumedan qayta yaratishini so'rang."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Ushbu rezyume bloklangan va yangilab boʻlmaydi."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Ha, Reactive Resume bir nechta tillarda mavjud. Siz sozlamalar sahifasida yoki yuqori o'ng burchakdagi til almashtirgich yordamida o'zingizga qulay tilni tanlashingiz mumkin. Agar tilingiz ro'yxatda bo'lmasa yoki mavjud tarjimalarni yaxshilashni istasangiz, <0>Crowdin'da tarjimalarga hissa qo'shishingiz mumkin<1> (yangi tabda ochiladi)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Ha! Har bir shablonni to‘liq moslashtirish mumkin. Ranglar, shriftlar, oraliqlarni o‘zgartirishingiz yoki rezyumening ko‘rinishini to‘liq boshqarish uchun o‘zingiz CSS yozishingiz mumkin."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Ha! Reactive Resume’dan foydalanish butunlay bepul — yashirin toʻlovlar, premium darajalar yoki obuna haqqi yoʻq. Ochiq kodli va har doim bepul boʻlib qoladi."
+200 -9
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-05-08 11:02\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# mục}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# vai trò} other {# vai trò}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} đề xuất đã được xem xét"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "Khổ giấy A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "Chắc chắn rồi! Bạn có thể xuất sơ yếu lý lịch của mình sang PDF chỉ với một cú nhấp chuột. Tệp PDF được xuất sẽ giữ nguyên mọi định dạng và kiểu trình bày của bạn một cách hoàn hảo."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "Chấp nhận"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "Chấp nhận tất cả"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "Đề xuất được chấp nhận"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "Truy cập sơ yếu lý lịch và dữ liệu của bạn một cách tự động qua API."
@@ -229,10 +246,38 @@ msgstr "Thêm dòng trước"
msgid "Afrikaans"
msgstr "Tiếng Afrikaans"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "Sau đó"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "Tính năng tích hợp AI đã bị vô hiệu hóa."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "Đề xuất về trí tuệ nhân tạo đã được chấp nhận."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "Đề xuất về trí tuệ nhân tạo bị bác bỏ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "Các đề xuất về trí tuệ nhân tạo đã được áp dụng."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "Các đề xuất về trí tuệ nhân tạo bị bác bỏ."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "Trợ lý sơ yếu lý lịch AI"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "Tiếng Albania"
@@ -367,10 +412,22 @@ msgstr "Lĩnh vực học tập"
msgid "Artificial Intelligence"
msgstr "Trí tuệ nhân tạo"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "Hãy yêu cầu chỉnh sửa sơ yếu lý lịch sao cho phù hợp..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "Hãy yêu cầu thay đổi từng bước."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Tỷ lệ khung hình"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "Yêu cầu trợ lý đã thất bại"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "Cơ bản"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "Các mẫu đẹp để lựa chọn, sẽ còn cập nhật thêm trong tương lai."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "Trước"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "Tiếng Bengal"
@@ -462,10 +523,6 @@ msgstr "Danh sách chấm tròn"
msgid "By the community, for the community."
msgstr "Bởi cộng đồng, vì cộng đồng."
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "Tôi có thể tùy chỉnh mẫu không?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "Tôi có thể xuất sơ yếu lý lịch của mình ra PDF không?"
@@ -576,6 +633,14 @@ msgstr "Xóa"
msgid "Click here to select a file to import"
msgstr "Nhấn vào đây để chọn file cần nhập khẩu"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "Đóng"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "Trợ lý AI gần gũi"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "Khối mã"
@@ -622,6 +687,10 @@ msgstr "Xác nhận"
msgid "Connect"
msgstr "Kết nối"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "Hãy kết nối và xác minh nhà cung cấp AI trước khi sử dụng các đề xuất chỉnh sửa sơ yếu lý lịch."
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "Sao chép khóa bí mật này và sử dụng trong ứng dụng của
msgid "Copy URL"
msgstr "Sao chép URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "Không thể áp dụng đề xuất về trí tuệ nhân tạo."
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "Ngắt kết nối"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "Miễn nhiệm"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "Tài liệu"
msgid "Don't have an account? <0/>"
msgstr "Chưa có tài khoản? <0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "Quyên tặng"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "Đóng góp cho Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "Bật xác thực 2FA"
msgid "Enable AI Features"
msgstr "Bật Tính năng AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "Kích hoạt tích hợp AI"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "Bật xác thực hai yếu tố"
@@ -1162,6 +1247,10 @@ msgstr "Tất cả thông tin điền ở đây đều được lưu cục bộ
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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "Ví dụ: viết lại phần tóm tắt, rút gọn một gạch đầu dòng kinh nghiệm, thêm số liệu thống kê, hoặc điều chỉnh sơ yếu lý lịch cho phù hợp với mô tả công việc."
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Thoát toàn màn hình"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "Mô hình"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "Thêm các hành động đề xuất"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Chuyển đến"
@@ -1982,6 +2075,10 @@ msgstr "Phải bắt đầu bằng https://"
msgid "Name"
msgstr "Tên"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "Cần xem xét lại"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "Nepali"
@@ -2012,6 +2109,10 @@ msgstr "Mật khẩu mới"
msgid "New Section"
msgstr "Phần mới"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "Tiếp theo"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Không quảng cáo, không theo dõi"
@@ -2061,11 +2162,19 @@ msgstr "Bảo trì liên tục"
msgid "Open"
msgstr "Mở"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "Trợ lý AI mở"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "Mở ứng dụng Email"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "Tích hợp mở"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "Mở Cài đặt tích hợp"
@@ -2219,6 +2328,10 @@ msgstr "Vui lòng nhập mật khẩu được chủ sở hữu sơ yếu lý l
msgid "Please enter the URL you want to link to:"
msgstr "Vui lòng nhập URL bạn muốn liên kết đến:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "Hãy ủng hộ dự án!"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "Vị trí"
msgid "Preferences"
msgstr "Tùy chọn"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "Chuẩn bị thay đổi"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "Cài đặt sẵn"
@@ -2267,6 +2384,10 @@ msgstr "Nhấn <0>{RETURN_KEY}</0> hoặc <1>{COMMA_KEY}</1> để thêm hoặc
msgid "Press <0>Enter</0> to open"
msgstr "Nhấn <0>phím Enter</0> để mở"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "Trước đó"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Màu chủ đạo"
@@ -2297,6 +2418,11 @@ msgstr "Thanh tiến trình"
msgid "Projects"
msgstr "Dự án"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "Đề xuất {0} của {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "Bảo vệ sơ yếu lý lịch của bạn khỏi truy cập trái phép bằng mật khẩu"
@@ -2319,6 +2445,10 @@ msgstr "Ấn phẩm"
msgid "Publisher"
msgstr "Nhà xuất bản"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "Bản vá JSON thô"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Resume Phản Ứng - Về trang chủ"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume là một dự án mã nguồn mở & miễn phí, đư
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume là trình tạo sơ yếu lý lịch mã nguồn mở & miễn phí, giúp đơn giản hóa quá trình tạo, cập nhật và chia sẻ sơ yếu lý lịch của bạn."
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume là phần mềm mã nguồn mở miễn phí. Nếu thấy hữu ích, xin vui lòng xem xét quyên góp."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Resume Phản Ứng là mã nguồn mở, tập trung vào quyền riêng tư và hoàn toàn miễn phí. Khác với các trình tạo hồ sơ khác, nó không hiển thị quảng cáo, không theo dõi dữ liệu của bạn, và không giới hạn tính năng đằng sau tường phí."
@@ -2380,6 +2514,18 @@ msgstr "Làm mới"
msgid "Register New Device"
msgstr "Đăng ký thiết bị mới"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "Từ chối"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "Từ chối tất cả"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "Đề xuất bị từ chối"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Nhớ mật khẩu? <0/>"
@@ -2430,6 +2576,10 @@ msgstr "Đang gửi lại email xác minh..."
msgid "Reset"
msgstr "Thiết lập lại"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "Đặt lại cuộc trò chuyện"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "Đặt lại mật khẩu"
msgid "Resetting your password..."
msgstr "Đang đặt lại mật khẩu..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "Trợ lý AI thay đổi kích thước"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "Tài nguyên"
@@ -2463,6 +2617,14 @@ msgstr "Việc phân tích sơ yếu lý lịch đã hoàn tất."
msgid "Resumes"
msgstr "Sơ yếu lý lịch"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "Cần xem xét"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "Đề xuất đã được xem xét"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Căn phải"
@@ -2561,6 +2723,10 @@ msgstr "Chọn..."
msgid "Self-Host with Docker"
msgstr "Tự dựng với Docker"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "Gửi"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "Gửi email đặt lại mật khẩu"
msgid "Sending password reset email..."
msgstr "Đang gửi email đặt lại mật khẩu..."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "Gửi yêu cầu"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "Dấu phân cách"
@@ -2708,6 +2878,10 @@ msgstr "Một cột với thanh bên và lưới bố cục sạch sẽ; linh ho
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "Mẫu một cột với phần tiêu đề ba cột nằm trong cùng một dòng (vị trí · tổ chức · thời gian); thiết kế gọn gàng và phù hợp với định dạng ATS, rất thích hợp với các quy tắc viết sơ yếu lý lịch ở châu Á (Trung Quốc/Nhật Bản/Hàn Quốc)."
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "Sơ yếu lý lịch một cột với tiêu đề phần viết hoa và đường kẻ màu chủ đạo ở đầu mỗi trang; được thiết kế chuyên nghiệp, phù hợp cho các vị trí quản lý cấp cao, tư vấn hoặc khởi nghiệp."
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "Một cột; chỉnh chu và nghiêm túc cho vị trí cấp cao hoặc doanh nghiệp."
@@ -2808,6 +2982,10 @@ msgstr "Thống kê"
msgid "Stay"
msgstr "Ở lại"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "Dừng lại"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "Điểm mạnh"
@@ -2902,6 +3080,14 @@ msgstr "Màu chữ"
msgid "Thai"
msgstr "Thái"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "Trí tuệ nhân tạo (AI) đã đề xuất một thay đổi mà hiện không còn áp dụng cho sơ yếu lý lịch này nữa."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "Trí tuệ nhân tạo đã đưa ra một đề xuất không thể xem trước."
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "Khóa API đã được xóa thành công."
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "Khóa API sẽ không còn có thể truy cập dữ liệu của bạn sau khi xóa. Hành động này không thể hoàn tác."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "Người trợ lý dừng lại trước khi trả lời đề xuất."
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "Đây là tên thân thiện với URL cho hồ sơ của bạn."
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "Sẽ mất vài phút, tùy thuộc vào tốc độ phản hồi của nhà cung cấp AI. Vui lòng không đóng cửa sổ hoặc làm mới trang."
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "Đề xuất này đã lỗi thời. Hãy yêu cầu trợ lý tạo lại đề xuất này từ sơ yếu lý lịch mới nhất."
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "Hồ sơ này đã bị khóa và không thể cập nhật."
@@ -3385,10 +3580,6 @@ msgstr "X (Twitter)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "Vâng, Resume Phản Ứng có sẵn bằng nhiều ngôn ngữ. Bạn có thể chọn ngôn ngữ ưa thích ở trang cài đặt, hoặc dùng bộ chuyển đổi ngôn ngữ ở góc trên cùng bên phải. Nếu bạn không thấy ngôn ngữ của mình, hoặc muốn cải thiện bản dịch hiện tại, bạn có thể <0>đóng góp dịch thuật trên Crowdin<1> (mở ở tab mới)</1></0>."
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "Đúng vậy! Mỗi mẫu đều tùy chỉnh hoàn toàn. Bạn có thể thay đổi màu sắc, phông chữ, giãn cách, và thậm chí viết CSS riêng để kiểm soát đầy đủ giao diện resume của bạn."
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Đúng vậy! Reactive Resume hoàn toàn miễn phí, không có chi phí ẩn, gói trả phí hoặc phí đăng ký. Nó là mã nguồn mở và sẽ luôn miễn phí."
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# 项}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, other {# 个职位}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} 提案已审核"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "当然可以!你只需点击一下即可将简历导出为 PDF。导出的 PDF 会完美保留你所有的排版与样式。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "接受"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "接受所有"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "提案已接受"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "使用 API 以编程方式访问你的简历和数据。"
@@ -229,10 +246,38 @@ msgstr "在前面添加行"
msgid "Afrikaans"
msgstr "南非语"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "后"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI(人工智能)"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI集成已禁用"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "人工智能方案已提交。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "人工智能提案被驳回。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "人工智能方案已提交。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "人工智能提案被驳回。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI简历助手"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "阿尔巴尼亚语"
@@ -367,10 +412,22 @@ msgstr "学习领域"
msgid "Artificial Intelligence"
msgstr "人工智能"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "要求对简历进行针对性修改……"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "要求逐步改变"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "宽高比"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "助理请求失败"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "基础"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "提供多款精美模板供你选择,并且还会不断增加。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "前"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "孟加拉语"
@@ -462,10 +523,6 @@ msgstr "项目符号列表"
msgid "By the community, for the community."
msgstr "由社群贡献,为社群服务。"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "我可以自定义模板吗?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "我可以把简历导出为 PDF 吗?"
@@ -576,6 +633,14 @@ msgstr "清晰"
msgid "Click here to select a file to import"
msgstr "点击此处选择要导入的文件"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "关闭"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "近距离人工智能助手"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "代码块"
@@ -622,6 +687,10 @@ msgstr "确认"
msgid "Connect"
msgstr "连接"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "在使用简历编辑服务前,请先联系并验证人工智能服务提供商的身份。"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "复制此密钥,并在你的应用程序中使用它来访问你的数
msgid "Copy URL"
msgstr "复制 URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "无法应用人工智能方案。"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "断开连接"
msgid "Discord"
msgstr "Discord 频道"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "解雇"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "文档"
msgid "Don't have an account? <0/>"
msgstr "没有账户?<0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "捐"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "为 Reactive Resume 捐款"
@@ -1094,6 +1175,10 @@ msgstr "启用 2FA 双重身份验证"
msgid "Enable AI Features"
msgstr "启用 AI 功能"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "启用人工智能集成"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "启用双重身份认证"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "例如:重写简历摘要,精简一项经验要点,添加指标,或根据职位描述调整简历。"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "退出全屏"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "模型"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "更多提案行动"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "移动到"
@@ -1982,6 +2075,10 @@ msgstr "必须从 https:// 开始"
msgid "Name"
msgstr "姓名"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "需要审查"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "尼泊尔语"
@@ -2012,6 +2109,10 @@ msgstr "新密码"
msgid "New Section"
msgstr "新章节"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "下一页"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "无广告,无跟踪"
@@ -2061,11 +2162,19 @@ msgstr "持续维护"
msgid "Open"
msgstr "打开"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "OpenAI助手"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "打开邮件客户端"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "开放式集成"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "打开集成设置"
@@ -2219,6 +2328,10 @@ msgstr "请输入简历所有者与你共享的密码以继续。"
msgid "Please enter the URL you want to link to:"
msgstr "请输入你想要链接到的 URL:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "请支持这个项目"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "职位"
msgid "Preferences"
msgstr "偏好设置"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "准备变更"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "预设"
@@ -2267,6 +2384,10 @@ msgstr "按下<0>{RETURN_KEY}</0>或<1>{COMMA_KEY}</1>以添加或保存当前
msgid "Press <0>Enter</0> to open"
msgstr "按<0>Enter 键</0>打开"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "上一页"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "主颜色"
@@ -2297,6 +2418,11 @@ msgstr "进度条"
msgid "Projects"
msgstr "项目"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "提案 {0} 的 {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "使用密码保护你的简历,防止未经授权的访问"
@@ -2319,6 +2445,10 @@ msgstr "出版物"
msgid "Publisher"
msgstr "发布者"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "原始 JSON 补丁"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - 返回首页"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume 是一个免费开源的项目,满怀热情打造,
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume 是一款免费开源的简历生成器,可简化创建、更新和分享简历的过程。"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume 是免费开源的。如果它对您有所帮助,请考虑捐赠。"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume 是开源、注重隐私且完全免费的。与其他简历生成器不同,它不会展示广告、跟踪你的数据,也不会把功能锁在付费墙后面。"
@@ -2380,6 +2514,18 @@ msgstr "刷新"
msgid "Register New Device"
msgstr "注册新设备"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "拒绝"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "全部拒绝"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "提案被否决"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "记得密码?<0/>"
@@ -2430,6 +2576,10 @@ msgstr "正在重新发送验证邮件…"
msgid "Reset"
msgstr "重置"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "重置聊天"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "重置密码"
msgid "Resetting your password..."
msgstr "正在重置你的密码…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "调整大小 AI 助手"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "资源"
@@ -2463,6 +2617,14 @@ msgstr "简历分析完毕。"
msgid "Resumes"
msgstr "简历"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "需要审核"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "已审核提案"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "右对齐"
@@ -2561,6 +2723,10 @@ msgstr "选择..."
msgid "Self-Host with Docker"
msgstr "使用 Docker 自托管"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "发送"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "发送密码重置邮件"
msgid "Sending password reset email..."
msgstr "正在发送密码重置邮件…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "发送请求"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "分隔线"
@@ -2708,6 +2878,10 @@ msgstr "单栏布局,带侧边栏和干净的网格排版;用途广泛,适
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "单栏,内嵌三栏条目标题(职位--组织--句号);结构紧凑,便于 ATS 使用,非常适合亚洲简历惯例(CN/JP/KR)。"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "单栏格式,每页标题采用大写字母,顶部有主色线条;专为高管、咨询顾问或创业公司简历而设计。"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "单栏布局;风格精致严肃,适合高级或企业级职位。"
@@ -2808,6 +2982,10 @@ msgstr "统计数据"
msgid "Stay"
msgstr "留下"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "停止"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "优势"
@@ -2902,6 +3080,14 @@ msgstr "文本颜色"
msgid "Thai"
msgstr "泰语"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "人工智能提出的修改建议不再适用于这份简历。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "人工智能返回的方案无法预览。"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API key 已成功删除。"
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "删除后,该 API key 将无法再访问你的数据。此操作不可撤销。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "助理在递交提案前停了下来。"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "这是一个适合放在 URL 中的简历名称。"
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "这可能需要几分钟时间,具体取决于 AI 服务提供商的响应速度。请不要关闭窗口或刷新页面。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "这份提案已经过时了。请助理根据最新的简历重新生成一份。"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "这份简历已被锁定,无法更新。"
@@ -3385,10 +3580,6 @@ msgstr "X(推特)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "是的,Reactive Resume 支持多种语言。你可以在设置页面或右上角的语言切换器中选择你偏好的语言。如果没有找到你的语言,或者你想改进现有翻译,可以<0>在 Crowdin 上参与翻译<1>(在新标签页中打开)</1></0>。"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "当然!每个模板都完全可定制。你可以更改颜色、字体、间距,甚至编写自定义 CSS,全面掌控简历的外观。"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "当然!Reactive Resume 完全免费使用,没有任何隐藏费用、高级套餐或订阅费。它是开源项目,并将永远保持免费。"
+200 -9
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-05-08 11:01\n"
"PO-Revision-Date: 2026-05-13 06:07\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# 個項目}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, other {# 個職位}}"
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr "{0} 提案已審核"
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -119,6 +124,18 @@ msgstr "A4"
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr "當然可以!您只要按一下即可將履歷匯出為 PDF。匯出的 PDF 會完整保留所有格式與樣式。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr "接受"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr "接受所有"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr "提案已接受"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "使用 API 以程式化方式存取您的履歷與資料。"
@@ -229,10 +246,38 @@ msgstr "在前方新增列"
msgid "Afrikaans"
msgstr "南非荷蘭語"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr "後"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr "AI整合已停用"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr "人工智慧方案已提交。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr "人工智慧提案被駁回。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr "人工智慧方案已提交。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr "人工智慧提案被駁回。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr "AI履歷助理"
#: src/libs/locale.ts
msgid "Albanian"
msgstr "阿爾巴尼亞語"
@@ -367,10 +412,22 @@ msgstr "學習領域"
msgid "Artificial Intelligence"
msgstr "人工智慧"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr "要求對履歷進行針對性修改…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr "要求逐步改變"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "顯示比例"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr "助理請求失敗"
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -421,6 +478,10 @@ msgstr "基本資料"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "提供多款精美範本供您選擇,並持續增加中。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr "前"
#: src/libs/locale.ts
msgid "Bengali"
msgstr "孟加拉語"
@@ -462,10 +523,6 @@ msgstr "項目符號清單"
msgid "By the community, for the community."
msgstr "來自社區,服務社區。"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr "我可以自訂範本嗎?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr "我可以把履歷匯出成 PDF 嗎?"
@@ -576,6 +633,14 @@ msgstr "清除"
msgid "Click here to select a file to import"
msgstr "按這裡選擇要匯入的檔案"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr "關閉"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr "近距離人工智慧助手"
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr "程式碼區塊"
@@ -622,6 +687,10 @@ msgstr "確認"
msgid "Connect"
msgstr "連結"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr "在使用履歷編輯服務前,請先聯絡並驗證人工智慧服務提供者的身份。"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -669,6 +738,10 @@ msgstr "複製這組私密金鑰,並在您的應用程式中使用它來存取
msgid "Copy URL"
msgstr "複製 URL"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr "無法應用人工智慧方案。"
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -961,6 +1034,10 @@ msgstr "中斷連結"
msgid "Discord"
msgstr "Discord"
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr "解僱"
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -970,6 +1047,10 @@ msgstr "文件"
msgid "Don't have an account? <0/>"
msgstr "沒有帳戶?<0/>"
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr "捐"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr "捐助 Reactive Resume"
@@ -1094,6 +1175,10 @@ msgstr "啟用雙因子驗證"
msgid "Enable AI Features"
msgstr "啟用 AI 功能"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr "啟用人工智慧集成"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr "啟用雙因子驗證"
@@ -1162,6 +1247,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr "例如:重寫履歷摘要,精簡一項經驗要點,新增指標,或根據職位描述調整履歷。"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "退出全螢幕"
@@ -1956,6 +2045,10 @@ msgstr "Microsoft Word"
msgid "Model"
msgstr "模型"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr "更多提案行動"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "移動到"
@@ -1982,6 +2075,10 @@ msgstr "必須從 https:// 開始"
msgid "Name"
msgstr "名稱"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr "需要審查"
#: src/libs/locale.ts
msgid "Nepali"
msgstr "尼泊爾語"
@@ -2012,6 +2109,10 @@ msgstr "新密碼"
msgid "New Section"
msgstr "新段落"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr "下一頁"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "無廣告、無追蹤"
@@ -2061,11 +2162,19 @@ msgstr "持續維護"
msgid "Open"
msgstr "開啟"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr "OpenAI助手"
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr "開啟電子郵件用戶端"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr "開放式集成"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr "開啟整合設定"
@@ -2219,6 +2328,10 @@ msgstr "請輸入履歷擁有者提供給您的密碼以繼續。"
msgid "Please enter the URL you want to link to:"
msgstr "請輸入您要連結的 URL:"
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr "請支持這個項目"
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2254,6 +2367,10 @@ msgstr "職位"
msgid "Preferences"
msgstr "偏好設定"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr "準備變更"
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr "預設值"
@@ -2267,6 +2384,10 @@ msgstr "請按下 <0>{RETURN_KEY}</0> 或 <1>{COMMA_KEY}</1> 來新增或儲存
msgid "Press <0>Enter</0> to open"
msgstr "按<0>Enter</0>開啟"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr "上一頁"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "主要顏色"
@@ -2297,6 +2418,11 @@ msgstr "進度條"
msgid "Projects"
msgstr "專案"
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr "提案 {0} 的 {total}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr "使用密碼保護履歷,避免未經授權的存取"
@@ -2319,6 +2445,10 @@ msgstr "出版品"
msgid "Publisher"
msgstr "出版者"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr "原始 JSON 補丁"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - 前往首頁"
@@ -2340,6 +2470,10 @@ msgstr "Reactive Resume 是一個免費且開放原始碼的專案,包含創
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr "Reactive Resume 是一個免費且開放原始碼的履歷建立工具,可簡化建立、更新及分享履歷的程序。"
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr "Reactive Resume 是免費開源的。如果它對您有所幫助,請考慮捐贈。"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "Reactive Resume 是開放原始碼、重視隱私且完全免費的工具。與其他履歷建立工具不同,它不會顯示廣告、不追蹤您的資料,也不會把功能鎖在付費牆後面。"
@@ -2380,6 +2514,18 @@ msgstr "重新整理"
msgid "Register New Device"
msgstr "註冊新裝置"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr "拒絕"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr "全部拒絕"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr "提案被否決"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "記得密碼?<0/>"
@@ -2430,6 +2576,10 @@ msgstr "正在重新傳送驗證電子郵件…"
msgid "Reset"
msgstr "重置"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr "重置聊天"
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2443,6 +2593,10 @@ msgstr "重設您的密碼"
msgid "Resetting your password..."
msgstr "正在重設您的密碼…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr "調整大小 AI 助手"
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr "資源"
@@ -2463,6 +2617,14 @@ msgstr "履歷分析完成。"
msgid "Resumes"
msgstr "履歷"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr "需要審核"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr "已審核提案"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "靠右對齊"
@@ -2561,6 +2723,10 @@ msgstr "選擇..."
msgid "Self-Host with Docker"
msgstr "使用 Docker 自行託管"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr "傳送"
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2570,6 +2736,10 @@ msgstr "傳送重設密碼電子郵件"
msgid "Sending password reset email..."
msgstr "正在傳送重設密碼電子郵件…"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr "發送請求"
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr "分隔線"
@@ -2708,6 +2878,10 @@ msgstr "單欄版面,包含側邊欄與俐落的網格配置;適用於任何
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr "單欄,內嵌三欄入口標題 (位置 - 組織 - 句點);簡潔且適合 ATS,非常適合亞洲簡歷慣例 (CN/JP/KR)。"
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr "單欄格式,每頁標題採用大寫字母,頂部有主色線條;專為高階主管、顧問顧問或新創公司履歷表而設計。"
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr "單欄版面,風格精緻嚴謹,適合資深或企業級職位。"
@@ -2808,6 +2982,10 @@ msgstr "統計資料"
msgid "Stay"
msgstr "留下"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr "停止"
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr "優勢"
@@ -2902,6 +3080,14 @@ msgstr "字型色彩"
msgid "Thai"
msgstr "泰文"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr "人工智慧提出的修改建議不再適用於這份履歷。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr "人工智慧返回的方案無法預覽。"
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2915,6 +3101,10 @@ msgstr "API Key 已成功刪除。"
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr "刪除後,此 API Key 將無法再存取您的資料。此動作無法復原。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr "助理在遞交提案前停了下來。"
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2981,7 +3171,12 @@ msgstr "這是用於履歷的 URL 友善名稱。"
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr "這可能需要幾分鐘,取決於 AI 服務提供者的回應時間。請勿關閉視窗或重新整理頁面。"
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr "這份提案已經過時了。請助理根據最新的履歷重新產生一份。"
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr "這份履歷已被鎖定,無法更新。"
@@ -3385,10 +3580,6 @@ msgstr "X(推特)"
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr "沒錯,Reactive Resume 支援多種語言。您可以在設定頁面或右上角的語言切換器中選擇偏好的語言。如果沒有找到您的語言,或是想改進現有翻譯,您可以<0>在 Crowdin 上貢獻翻譯<1>(在新分頁中開啟)</1></0>。"
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr "沒錯!每一款範本都能完全自訂。您可以調整顏色、字體、間距,甚至撰寫自訂 CSS,完全掌控履歷的外觀。"
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr "沒錯!Reactive Resume 完全免費使用,沒有任何隱藏費用、高級版本或訂閱費。它是開放原始碼專案,並將永遠保持免費。"
+199 -8
View File
@@ -43,6 +43,11 @@ msgstr ""
msgid "{0, plural, one {# role} other {# roles}}"
msgstr ""
#. placeholder {0}: resolutions.length
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "{0} proposals reviewed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "{column, plural, one {# Column} other {# Columns}}"
@@ -114,6 +119,18 @@ msgstr ""
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accept all"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Accepted proposal"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr ""
@@ -224,10 +241,38 @@ msgstr ""
msgid "Afrikaans"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "After"
msgstr ""
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI integration disabled"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal applied."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposal rejected."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals applied."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI proposals rejected."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "AI Resume Assistant"
msgstr ""
#: src/libs/locale.ts
msgid "Albanian"
msgstr ""
@@ -362,10 +407,22 @@ msgstr ""
msgid "Artificial Intelligence"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for a targeted resume change..."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Ask for an incremental change"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Assistant request failed"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/authentication/index.tsx
@@ -416,6 +473,10 @@ msgstr ""
msgid "Beautiful templates to choose from, with more on the way."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Before"
msgstr ""
#: src/libs/locale.ts
msgid "Bengali"
msgstr ""
@@ -457,10 +518,6 @@ msgstr ""
msgid "By the community, for the community."
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Can I customize the templates?"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
msgstr ""
@@ -571,6 +628,14 @@ msgstr ""
msgid "Click here to select a file to import"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Close"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Close AI assistant"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Code Block"
msgstr ""
@@ -617,6 +682,10 @@ msgstr ""
msgid "Connect"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Connect and verify an AI provider before using resume editing proposals."
msgstr ""
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
@@ -664,6 +733,10 @@ msgstr ""
msgid "Copy URL"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Could not apply the AI proposal."
msgstr ""
#. Error description when AI provider cannot be reached during resume analysis
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
#. Error shown when the configured AI provider cannot be reached during connection test
@@ -956,6 +1029,10 @@ msgstr ""
msgid "Discord"
msgstr ""
#: src/components/ui/donation-toast.tsx
msgid "Dismiss"
msgstr ""
#: src/routes/_home/-sections/footer.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Documentation"
@@ -965,6 +1042,10 @@ msgstr ""
msgid "Don't have an account? <0/>"
msgstr ""
#: src/components/ui/donation-toast.tsx
msgid "Donate"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
msgstr ""
@@ -1089,6 +1170,10 @@ msgstr ""
msgid "Enable AI Features"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Enable AI integration"
msgstr ""
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Enable Two-Factor Authentication"
msgstr ""
@@ -1157,6 +1242,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/routes/builder/$resumeId/-components/assistant.tsx
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
@@ -1951,6 +2040,10 @@ msgstr ""
msgid "Model"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "More proposal actions"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr ""
@@ -1977,6 +2070,10 @@ msgstr ""
msgid "Name"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Needs review"
msgstr ""
#: src/libs/locale.ts
msgid "Nepali"
msgstr ""
@@ -2007,6 +2104,10 @@ msgstr ""
msgid "New Section"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Next"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr ""
@@ -2056,11 +2157,19 @@ msgstr ""
msgid "Open"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Open AI assistant"
msgstr ""
#. Button label to open the user's default email app
#: src/routes/auth/forgot-password.tsx
msgid "Open Email Client"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Open Integrations"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Open Integrations Settings"
msgstr ""
@@ -2214,6 +2323,10 @@ msgstr ""
msgid "Please enter the URL you want to link to:"
msgstr ""
#: src/components/ui/donation-toast.tsx
msgid "Please support the project"
msgstr ""
#: src/routes/$username/-components/public-resume.tsx
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -2249,6 +2362,10 @@ msgstr ""
msgid "Preferences"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Preparing changes"
msgstr ""
#: src/components/input/color-picker.tsx
msgid "Presets"
msgstr ""
@@ -2262,6 +2379,10 @@ msgstr ""
msgid "Press <0>Enter</0> to open"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Prev"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr ""
@@ -2292,6 +2413,11 @@ msgstr ""
msgid "Projects"
msgstr ""
#. placeholder {0}: index + 1
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Proposal {0} of {total}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Protect your resume from unauthorized access with a password"
msgstr ""
@@ -2314,6 +2440,10 @@ msgstr ""
msgid "Publisher"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Raw JSON Patch"
msgstr ""
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr ""
@@ -2335,6 +2465,10 @@ msgstr ""
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
msgstr ""
#: src/components/ui/donation-toast.tsx
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr ""
@@ -2375,6 +2509,18 @@ msgstr ""
msgid "Register New Device"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reject all"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Rejected proposal"
msgstr ""
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
@@ -2425,6 +2571,10 @@ msgstr ""
msgid "Reset"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reset chat"
msgstr ""
#. Primary action button label on reset-password form
#: src/routes/auth/reset-password.tsx
msgid "Reset Password"
@@ -2438,6 +2588,10 @@ msgstr ""
msgid "Resetting your password..."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Resize AI assistant"
msgstr ""
#: src/routes/_home/-sections/footer.tsx
msgid "Resources"
msgstr ""
@@ -2458,6 +2612,14 @@ msgstr ""
msgid "Resumes"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Review required"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Reviewed proposals"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr ""
@@ -2556,6 +2718,10 @@ msgstr ""
msgid "Self-Host with Docker"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Send"
msgstr ""
#. Primary action button label on forgot-password form
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2565,6 +2731,10 @@ msgstr ""
msgid "Sending password reset email..."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Sending request"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Separator"
msgstr ""
@@ -2703,6 +2873,10 @@ msgstr ""
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
msgstr ""
#: src/dialogs/resume/template/data.ts
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
msgstr ""
#: src/dialogs/resume/template/data.ts
msgid "Single-column; polished and serious for senior or enterprise-level positions."
msgstr ""
@@ -2803,6 +2977,10 @@ msgstr ""
msgid "Stay"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "Stop"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "Strengths"
msgstr ""
@@ -2897,6 +3075,14 @@ msgstr ""
msgid "Thai"
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI proposed a change that no longer applies to this resume."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The AI returned a proposal that could not be previewed."
msgstr ""
#. Error description when AI returns invalid resume analysis format
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
msgid "The AI returned an invalid analysis format. Please try again."
@@ -2910,6 +3096,10 @@ msgstr ""
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "The assistant stopped before returning a proposal."
msgstr ""
#. Empty-state message when no command palette results match the search query
#: src/components/command-palette/index.tsx
msgid "The command you're looking for doesn't exist."
@@ -2976,7 +3166,12 @@ msgstr ""
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
msgstr ""
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
msgstr ""
#: src/components/resume/builder-resume-draft.ts
#: src/routes/builder/$resumeId/-components/assistant.tsx
msgid "This resume is locked and cannot be updated."
msgstr ""
@@ -3380,10 +3575,6 @@ msgstr ""
msgid "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 <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "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."
msgstr ""
+27 -26
View File
@@ -4,7 +4,7 @@
"type": "module",
"private": true,
"scripts": {
"build": "vite build",
"build": "rm -rf .output && vite build",
"dev": "vite dev",
"serve": "vite preview",
"start": "node .output/server/index.mjs",
@@ -16,23 +16,24 @@
"lingui:extract": "lingui extract --clean --overwrite"
},
"dependencies": {
"@ai-sdk/react": "^3.0.182",
"@base-ui/react": "^1.4.1",
"@better-auth/api-key": "^1.6.9",
"@better-auth/infra": "^0.2.6",
"@better-auth/oauth-provider": "^1.6.9",
"@better-auth/passkey": "^1.6.9",
"@better-auth/api-key": "^1.6.11",
"@better-auth/infra": "^0.2.8",
"@better-auth/oauth-provider": "^1.6.11",
"@better-auth/passkey": "^1.6.11",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@lingui/core": "^6.0.1",
"@lingui/react": "^6.0.1",
"@modelcontextprotocol/sdk": "^1.29.0",
"@orpc/client": "^1.14.2",
"@orpc/json-schema": "^1.14.2",
"@orpc/openapi": "^1.14.2",
"@orpc/server": "^1.14.2",
"@orpc/tanstack-query": "^1.14.2",
"@orpc/zod": "^1.14.2",
"@orpc/client": "^1.14.3",
"@orpc/json-schema": "^1.14.3",
"@orpc/openapi": "^1.14.3",
"@orpc/server": "^1.14.3",
"@orpc/tanstack-query": "^1.14.3",
"@orpc/zod": "^1.14.3",
"@phosphor-icons/react": "^2.1.10",
"@react-pdf/renderer": "^4.5.1",
"@reactive-resume/ai": "workspace:*",
@@ -46,30 +47,30 @@
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/ui": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"@tailwindcss/vite": "^4.2.4",
"@tanstack/react-form": "^1.29.1",
"@tailwindcss/vite": "^4.3.0",
"@tanstack/react-form": "^1.32.0",
"@tanstack/react-hotkeys": "^0.10.0",
"@tanstack/react-query": "^5.100.9",
"@tanstack/react-query": "^5.100.10",
"@tanstack/react-router": "^1.169.2",
"@tanstack/react-router-ssr-query": "^1.166.12",
"@tanstack/react-start": "^1.167.65",
"@tiptap/extension-color": "^3.22.5",
"@tiptap/extension-highlight": "^3.22.5",
"@tiptap/extension-table": "^3.22.5",
"@tiptap/extension-text-align": "^3.22.5",
"@tiptap/extension-text-style": "^3.22.5",
"@tiptap/pm": "^3.22.5",
"@tiptap/react": "^3.22.5",
"@tiptap/starter-kit": "^3.22.5",
"@tiptap/extension-color": "^3.23.2",
"@tiptap/extension-highlight": "^3.23.2",
"@tiptap/extension-table": "^3.23.2",
"@tiptap/extension-text-align": "^3.23.2",
"@tiptap/extension-text-style": "^3.23.2",
"@tiptap/pm": "^3.23.2",
"@tiptap/react": "^3.23.2",
"@tiptap/starter-kit": "^3.23.2",
"@types/js-cookie": "^3.0.6",
"@uiw/color-convert": "^2.10.1",
"@uiw/react-color-colorful": "^2.10.1",
"better-auth": "1.6.9",
"better-auth": "1.6.11",
"cmdk": "^1.1.1",
"drizzle-orm": "1.0.0-beta.22",
"es-toolkit": "^1.46.1",
"fuse.js": "^7.3.0",
"immer": "^11.1.7",
"immer": "^11.1.8",
"js-cookie": "^3.0.5",
"motion": "^12.38.0",
"pdfjs-dist": "5.7.284",
@@ -97,12 +98,12 @@
"@types/pg": "^8.20.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@typescript/native-preview": "7.0.0-dev.20260508.1",
"@typescript/native-preview": "7.0.0-dev.20260512.1",
"@vitejs/plugin-react": "^6.0.1",
"babel-plugin-macros": "^3.1.0",
"nitro": "3.0.260429-beta",
"typescript": "^6.0.3",
"vite": "^8.0.11",
"vite": "^8.0.12",
"vite-plugin-pwa": "^1.3.0"
}
}
+24
View File
@@ -0,0 +1,24 @@
import fs from "node:fs/promises";
import { definePlugin } from "nitro";
import { env } from "@reactive-resume/env/server";
import { getLocalDataDirectory } from "@reactive-resume/utils/monorepo.node";
export default definePlugin(async () => {
if (env.S3_ACCESS_KEY_ID && env.S3_SECRET_ACCESS_KEY && env.S3_BUCKET) return;
const dataDirectory = getLocalDataDirectory(env.LOCAL_STORAGE_PATH);
console.info(`Validating local storage path: ${dataDirectory}`);
try {
await fs.mkdir(dataDirectory, { recursive: true });
await fs.access(dataDirectory, fs.constants.R_OK | fs.constants.W_OK);
} catch (error) {
const message = error instanceof Error ? error.message : "Unknown error";
console.error(
`Local storage path is not writable: ${dataDirectory}\n` +
` ${message}\n` +
"Set LOCAL_STORAGE_PATH to a writable directory or fix permissions on the existing path.",
);
throw error;
}
});
+1 -1
View File
@@ -61,7 +61,7 @@
"guid": "open-collective",
"type": "payment-provider",
"description": "Open Collective",
"address": "https://opencollective.com/reactive-resume"
"address": "https://opencollective.com/reactive-resume/donate"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.
@@ -0,0 +1,56 @@
// @vitest-environment happy-dom
import { fireEvent, render } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { CometCard } from "./comet-card";
describe("CometCard", () => {
it("renders its children inside the perspective wrapper", () => {
const { getByText } = render(
<CometCard>
<span>card body</span>
</CometCard>,
);
expect(getByText("card body")).toBeInTheDocument();
});
it("merges custom className into the wrapper", () => {
const { container } = render(
<CometCard className="extra-class">
<span>x</span>
</CometCard>,
);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.className).toContain("extra-class");
expect(wrapper.className).toContain("perspective-distant");
expect(wrapper.className).toContain("transform-3d");
});
it("renders a glare overlay positioned absolutely with mix-blend-overlay", () => {
const { container } = render(
<CometCard>
<span>x</span>
</CometCard>,
);
const glare = container.querySelector("[class*='mix-blend-overlay']") as HTMLElement | null;
expect(glare).not.toBeNull();
expect(glare?.className).toContain("pointer-events-none");
});
it("does not throw when mouse enters / moves over / leaves the card", () => {
const { container } = render(
<CometCard>
<span>x</span>
</CometCard>,
);
const tiltable = container.querySelector("[class*='will-change-transform']") as HTMLElement;
expect(tiltable).toBeTruthy();
expect(() => {
fireEvent.mouseMove(tiltable, { clientX: 100, clientY: 50 });
fireEvent.mouseMove(tiltable, { clientX: 0, clientY: 0 });
fireEvent.mouseLeave(tiltable);
}).not.toThrow();
});
});
@@ -0,0 +1,52 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { CountUp } from "./count-up";
describe("CountUp", () => {
it("renders an aria-live=polite span by default (announced to screen readers)", () => {
const { container } = render(<CountUp to={1000} />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.getAttribute("aria-live")).toBe("polite");
expect(span.getAttribute("aria-atomic")).toBe("true");
});
it("seeds textContent to the 'from' value when counting up", () => {
const { container } = render(<CountUp from={0} to={100} />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.textContent).toBe("0");
});
it("seeds textContent to the 'to' value when direction is down", () => {
const { container } = render(<CountUp from={0} to={100} direction="down" />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.textContent).toBe("100");
});
it("formats with the separator when one is supplied", () => {
const { container } = render(<CountUp from={1234} to={2345} separator="," />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.textContent).toBe("1,234");
});
it("preserves decimal places when from / to are fractional", () => {
const { container } = render(<CountUp from={1.25} to={3.75} />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.textContent).toBe("1.25");
});
it("strips aria-live and aria-atomic when aria-hidden is set", () => {
const { container } = render(<CountUp to={100} aria-hidden="true" />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.getAttribute("aria-hidden")).toBe("true");
expect(span.getAttribute("aria-live")).toBeNull();
expect(span.getAttribute("aria-atomic")).toBeNull();
});
it("accepts a custom className", () => {
const { container } = render(<CountUp to={100} className="custom-class" />);
const span = container.querySelector("span") as HTMLSpanElement;
expect(span.className).toContain("custom-class");
});
});
@@ -0,0 +1,45 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { Spotlight } from "./spotlight";
describe("Spotlight", () => {
it("renders a non-pointer-events overlay container", () => {
const { container } = render(<Spotlight />);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.className).toContain("pointer-events-none");
expect(wrapper.className).toContain("absolute");
});
it("renders both left and right beam groups by default", () => {
const { container } = render(<Spotlight />);
// Outer wrapper > two animated beam containers
const beamGroups = container.firstChild?.childNodes;
expect(beamGroups?.length).toBe(2);
});
it("applies the provided width / height / smallWidth to inline styles", () => {
const { container } = render(<Spotlight width={500} height={800} smallWidth={120} translateY={-100} />);
const inlineStyles = Array.from(container.querySelectorAll<HTMLDivElement>("[style]")).map(
(el) => el.getAttribute("style") ?? "",
);
const allStyles = inlineStyles.join("|");
expect(allStyles).toContain("width: 500px");
expect(allStyles).toContain("height: 800px");
expect(allStyles).toContain("width: 120px");
expect(allStyles).toContain("translateY(-100px)");
});
it("uses the supplied gradient strings as background values", () => {
const customFirst = "radial-gradient(red, blue)";
const { container } = render(<Spotlight gradientFirst={customFirst} />);
const matched = Array.from(container.querySelectorAll<HTMLDivElement>("[style]")).filter(
(el) => el.style.background.includes("red") && el.style.background.includes("blue"),
);
expect(matched.length).toBeGreaterThan(0);
});
});
@@ -0,0 +1,47 @@
// @vitest-environment happy-dom
import { fireEvent, render } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { TextMaskEffect } from "./text-mask";
const renderMask = (props: React.ComponentProps<typeof TextMaskEffect>) => render(<TextMaskEffect {...props} />);
describe("TextMaskEffect", () => {
it("renders the supplied text in all visible text layers", () => {
const { container } = renderMask({ text: "Hello World" });
const texts = container.querySelectorAll("text");
expect(texts.length).toBeGreaterThanOrEqual(2);
for (const el of texts) {
expect(el.textContent).toBe("Hello World");
}
});
it("forwards aria-hidden onto the root svg", () => {
const { container } = renderMask({ text: "X", "aria-hidden": "true" });
const svg = container.querySelector("svg") as SVGSVGElement;
expect(svg.getAttribute("aria-hidden")).toBe("true");
});
it("renders an aria-label on the root svg", () => {
const { container } = renderMask({ text: "X" });
const svg = container.querySelector("svg") as SVGSVGElement;
expect(svg.getAttribute("aria-label")).toBe("Text mask effect");
});
it("does not throw on mouse-enter / mouse-move / mouse-leave interactions", () => {
const { container } = renderMask({ text: "X" });
const svg = container.querySelector("svg") as SVGSVGElement;
expect(() => {
fireEvent.mouseEnter(svg);
fireEvent.mouseMove(svg, { clientX: 50, clientY: 25 });
fireEvent.mouseLeave(svg);
}).not.toThrow();
});
it("merges custom className into the svg", () => {
const { container } = renderMask({ text: "X", className: "custom-class" });
const svg = container.querySelector("svg") as SVGSVGElement;
expect(svg.getAttribute("class") ?? "").toContain("custom-class");
});
});
@@ -0,0 +1,53 @@
// @vitest-environment happy-dom
import { render, screen } from "@testing-library/react";
import { afterEach, describe, expect, it } from "vitest";
import { Command } from "@reactive-resume/ui/components/command";
import { useCommandPaletteStore } from "../store";
import { BaseCommandGroup } from "./base";
const renderInCommand = (ui: React.ReactNode) => render(<Command>{ui}</Command>);
const resetStore = () => {
useCommandPaletteStore.setState({ open: false, search: "", pages: [] });
};
afterEach(resetStore);
describe("BaseCommandGroup", () => {
it("renders children at the root (no page prop) when the page stack is empty", () => {
renderInCommand(<BaseCommandGroup heading="Root">child-text</BaseCommandGroup>);
expect(screen.getByText("child-text")).toBeInTheDocument();
});
it("does NOT render when the page stack tops a different page than its `page` prop", () => {
useCommandPaletteStore.setState({ pages: ["other"] });
const { container } = renderInCommand(
<BaseCommandGroup page="settings" heading="Settings">
<span>x</span>
</BaseCommandGroup>,
);
// Nothing rendered besides the Command shell itself.
expect(container.textContent).toBe("");
});
it("renders when the top of the page stack matches its `page` prop", () => {
useCommandPaletteStore.setState({ pages: ["settings"] });
renderInCommand(
<BaseCommandGroup page="settings" heading="Settings">
settings-children
</BaseCommandGroup>,
);
expect(screen.getByText("settings-children")).toBeInTheDocument();
});
it("does NOT render the root group when there is a sub-page on top", () => {
useCommandPaletteStore.setState({ pages: ["settings"] });
const { container } = renderInCommand(
<BaseCommandGroup heading="Root">
<span>root-text</span>
</BaseCommandGroup>,
);
expect(container.textContent).toBe("");
});
});
@@ -0,0 +1,52 @@
// @vitest-environment happy-dom
import { fireEvent, render, screen } from "@testing-library/react";
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { Command } from "@reactive-resume/ui/components/command";
import { useCommandPaletteStore } from "../../store";
vi.mock("@/components/theme/provider", () => ({
useTheme: () => ({ setTheme: vi.fn(), theme: "light", toggleTheme: vi.fn() }),
}));
const { PreferencesCommandGroup } = await import("./index");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
afterEach(() => {
useCommandPaletteStore.setState({ open: false, search: "", pages: [] });
});
const renderGroup = () =>
render(
<I18nProvider i18n={i18n}>
<Command>
<PreferencesCommandGroup />
</Command>
</I18nProvider>,
);
describe("PreferencesCommandGroup", () => {
it("renders 'Change theme to...' and 'Change language to...' at the root", () => {
renderGroup();
expect(screen.getByText("Change theme to...")).toBeInTheDocument();
expect(screen.getByText("Change language to...")).toBeInTheDocument();
});
it("pushes 'theme' onto the page stack when the theme item is selected", () => {
renderGroup();
const item = screen.getByText("Change theme to...");
fireEvent.click(item);
expect(useCommandPaletteStore.getState().pages).toContain("theme");
});
it("pushes 'language' onto the page stack when the language item is selected", () => {
renderGroup();
fireEvent.click(screen.getByText("Change language to..."));
expect(useCommandPaletteStore.getState().pages).toContain("language");
});
});
@@ -0,0 +1,59 @@
// @vitest-environment happy-dom
import { render, screen } from "@testing-library/react";
import { afterEach, beforeAll, describe, expect, it } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { Command } from "@reactive-resume/ui/components/command";
import { localeMap } from "@/libs/locale";
import { useCommandPaletteStore } from "../../store";
import { LanguageCommandPage } from "./language";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
afterEach(() => {
useCommandPaletteStore.setState({ open: false, search: "", pages: [] });
});
const renderPage = () =>
render(
<I18nProvider i18n={i18n}>
<Command>
<LanguageCommandPage />
</Command>
</I18nProvider>,
);
describe("LanguageCommandPage", () => {
it("does NOT render when the page stack does not have 'language' on top", () => {
renderPage();
// localeMap codes shouldn't appear because BaseCommandGroup gating is off.
expect(screen.queryByText("en-US")).toBeNull();
});
it("renders one CommandItem for every entry in localeMap when active", () => {
useCommandPaletteStore.setState({ pages: ["language"] });
renderPage();
const expectedCount = Object.keys(localeMap).length;
expect(expectedCount).toBeGreaterThan(0);
// Each locale value is rendered in the inline font-mono span.
for (const code of Object.keys(localeMap).slice(0, 5)) {
expect(screen.getByText(code)).toBeInTheDocument();
}
});
it("includes the documented set of locales (sample check)", () => {
useCommandPaletteStore.setState({ pages: ["language"] });
renderPage();
// Spot-check a couple of common locales.
for (const code of ["en-US", "de-DE", "ja-JP"]) {
if (code in localeMap) {
expect(screen.getByText(code)).toBeInTheDocument();
}
}
});
});
@@ -0,0 +1,45 @@
// @vitest-environment happy-dom
import { render, screen } from "@testing-library/react";
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { Command } from "@reactive-resume/ui/components/command";
import { useCommandPaletteStore } from "../../store";
vi.mock("@/components/theme/provider", () => ({
useTheme: () => ({ setTheme: vi.fn(), theme: "light", toggleTheme: vi.fn() }),
}));
const { ThemeCommandPage } = await import("./theme");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
afterEach(() => {
useCommandPaletteStore.setState({ open: false, search: "", pages: [] });
});
const renderPage = () =>
render(
<I18nProvider i18n={i18n}>
<Command>
<ThemeCommandPage />
</Command>
</I18nProvider>,
);
describe("ThemeCommandPage", () => {
it("is hidden when 'theme' is not on top of the page stack", () => {
renderPage();
expect(screen.queryByText("Light theme")).toBeNull();
});
it("renders Light + Dark options when active", () => {
useCommandPaletteStore.setState({ pages: ["theme"] });
renderPage();
expect(screen.getByText("Light theme")).toBeInTheDocument();
expect(screen.getByText("Dark theme")).toBeInTheDocument();
});
});
@@ -0,0 +1,118 @@
import { afterEach, describe, expect, it } from "vitest";
import { useCommandPaletteStore } from "./store";
const reset = () => {
useCommandPaletteStore.setState({ open: false, search: "", pages: [] });
};
afterEach(reset);
describe("useCommandPaletteStore", () => {
it("starts closed with empty search and no pages", () => {
const state = useCommandPaletteStore.getState();
expect(state.open).toBe(false);
expect(state.search).toBe("");
expect(state.pages).toEqual([]);
});
it("setOpen(true) opens the palette without touching other fields", () => {
useCommandPaletteStore.setState({ search: "foo", pages: ["page1"] });
useCommandPaletteStore.getState().setOpen(true);
const state = useCommandPaletteStore.getState();
expect(state.open).toBe(true);
expect(state.search).toBe("foo");
expect(state.pages).toEqual(["page1"]);
});
it("setOpen(false) resets the entire store back to initial state", () => {
useCommandPaletteStore.setState({ open: true, search: "foo", pages: ["page1"] });
useCommandPaletteStore.getState().setOpen(false);
const state = useCommandPaletteStore.getState();
expect(state.open).toBe(false);
expect(state.search).toBe("");
expect(state.pages).toEqual([]);
});
it("setSearch updates only the search field", () => {
useCommandPaletteStore.getState().setSearch("query");
expect(useCommandPaletteStore.getState().search).toBe("query");
});
it("pushPage appends a page and clears search", () => {
useCommandPaletteStore.setState({ search: "leftover" });
useCommandPaletteStore.getState().pushPage("settings");
const state = useCommandPaletteStore.getState();
expect(state.pages).toEqual(["settings"]);
expect(state.search).toBe("");
});
it("pushPage stacks multiple pages in order", () => {
const { pushPage } = useCommandPaletteStore.getState();
pushPage("a");
pushPage("b");
pushPage("c");
expect(useCommandPaletteStore.getState().pages).toEqual(["a", "b", "c"]);
});
it("peekPage returns the top page (or undefined when empty)", () => {
expect(useCommandPaletteStore.getState().peekPage()).toBeUndefined();
useCommandPaletteStore.setState({ pages: ["a", "b"] });
expect(useCommandPaletteStore.getState().peekPage()).toBe("b");
});
it("popPage removes the last page and clears search", () => {
useCommandPaletteStore.setState({ pages: ["a", "b"], search: "x" });
useCommandPaletteStore.getState().popPage();
const state = useCommandPaletteStore.getState();
expect(state.pages).toEqual(["a"]);
expect(state.search).toBe("");
});
it("reset clears every state field", () => {
useCommandPaletteStore.setState({ open: true, search: "x", pages: ["a"] });
useCommandPaletteStore.getState().reset();
expect(useCommandPaletteStore.getState()).toMatchObject({ open: false, search: "", pages: [] });
});
describe("goBack", () => {
it("clears search first if present, leaving pages and open untouched", () => {
useCommandPaletteStore.setState({ open: true, search: "text", pages: ["a"] });
useCommandPaletteStore.getState().goBack();
const state = useCommandPaletteStore.getState();
expect(state.search).toBe("");
expect(state.pages).toEqual(["a"]);
expect(state.open).toBe(true);
});
it("pops the top page when no search and pages exist", () => {
useCommandPaletteStore.setState({ open: true, search: "", pages: ["a", "b"] });
useCommandPaletteStore.getState().goBack();
const state = useCommandPaletteStore.getState();
expect(state.pages).toEqual(["a"]);
expect(state.open).toBe(true);
});
it("closes the palette when no search and no pages", () => {
useCommandPaletteStore.setState({ open: true, search: "", pages: [] });
useCommandPaletteStore.getState().goBack();
expect(useCommandPaletteStore.getState().open).toBe(false);
});
});
});
@@ -0,0 +1,84 @@
// @vitest-environment happy-dom
import { fireEvent, render, screen } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { ChipInput } from "./chip-input";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
const renderInput = (props: Partial<React.ComponentProps<typeof ChipInput>> = {}) =>
render(
<I18nProvider i18n={i18n}>
<ChipInput defaultValue={[]} onChange={vi.fn()} {...props} />
</I18nProvider>,
);
describe("ChipInput", () => {
it("renders the supplied chips as Badges", () => {
renderInput({ defaultValue: ["alpha", "beta", "gamma"] });
expect(screen.getByText("alpha")).toBeInTheDocument();
expect(screen.getByText("beta")).toBeInTheDocument();
expect(screen.getByText("gamma")).toBeInTheDocument();
});
it("adds a chip on Enter, calling onChange with the new list", () => {
const onChange = vi.fn();
renderInput({ defaultValue: ["a"], onChange });
const input = document.querySelector("input") as HTMLInputElement;
fireEvent.change(input, { target: { value: "b" } });
fireEvent.keyDown(input, { key: "Enter" });
expect(onChange).toHaveBeenCalledWith(["a", "b"]);
});
it("adds a chip on comma keypress", () => {
const onChange = vi.fn();
renderInput({ defaultValue: [], onChange });
const input = document.querySelector("input") as HTMLInputElement;
fireEvent.change(input, { target: { value: "new-tag" } });
fireEvent.keyDown(input, { key: "," });
expect(onChange).toHaveBeenCalledWith(["new-tag"]);
});
it("does not add a duplicate chip", () => {
const onChange = vi.fn();
renderInput({ defaultValue: ["a"], onChange });
const input = document.querySelector("input") as HTMLInputElement;
fireEvent.change(input, { target: { value: "a" } });
fireEvent.keyDown(input, { key: "Enter" });
// chips set should remain ["a"]; onChange not invoked with the same array.
const callsAddingA = onChange.mock.calls.filter((args) => Array.isArray(args[0]) && args[0].length > 1);
expect(callsAddingA.length).toBe(0);
});
it("does not add an empty / whitespace-only chip", () => {
const onChange = vi.fn();
renderInput({ defaultValue: ["a"], onChange });
const input = document.querySelector("input") as HTMLInputElement;
fireEvent.change(input, { target: { value: " " } });
fireEvent.keyDown(input, { key: "Enter" });
expect(onChange).not.toHaveBeenCalled();
});
it("hides the description copy when hideDescription is true", () => {
const { container } = renderInput({ defaultValue: ["a"], hideDescription: true });
// We don't know the exact translated text, just confirm no <Kbd> hint banner is rendered.
expect(container.querySelector("kbd")).toBeNull();
});
it("shows the description copy by default", () => {
const { container } = renderInput({ defaultValue: ["a"] });
expect(container.querySelector("kbd")).not.toBeNull();
});
});
@@ -0,0 +1,61 @@
// @vitest-environment happy-dom
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";
vi.mock("@uiw/react-color-colorful", () => ({
default: () => null,
}));
const { ColorPicker } = await import("./color-picker");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
const renderPicker = (props: React.ComponentProps<typeof ColorPicker> = {}) =>
render(
<I18nProvider i18n={i18n}>
<ColorPicker {...props} />
</I18nProvider>,
);
describe("ColorPicker", () => {
it("renders a trigger swatch reflecting the current value", () => {
const { container } = renderPicker({ defaultValue: "rgba(231, 0, 11, 1)" });
const trigger = container.querySelector("[style*='background-color']") as HTMLElement | null;
expect(trigger).not.toBeNull();
// happy-dom serializes both the input rgba string and the rgb representation,
// depending on alpha; just confirm the color values surface.
const bg = trigger?.getAttribute("style") ?? "";
expect(bg).toContain("231");
expect(bg).toContain("11");
});
it("calls onChange when a preset color is clicked", () => {
const onChange = vi.fn();
renderPicker({ defaultValue: "rgba(0, 0, 0, 1)", onChange });
// Open the popover by clicking the trigger swatch.
const triggerSwatch = document.querySelector("[style*='background-color']") as HTMLElement;
fireEvent.click(triggerSwatch);
// Locate any preset button (they have aria-label='Use color rgba(...)').
const presetBtn = screen.getAllByRole("button", { name: /Use color rgba\(/ })[0];
fireEvent.click(presetBtn);
expect(onChange).toHaveBeenCalled();
expect(onChange.mock.calls[0]?.[0]).toMatch(/^rgba\(/);
});
it("renders a custom trigger when provided", () => {
renderPicker({
defaultValue: "rgba(0, 0, 0, 1)",
trigger: <button type="button">custom trigger</button>,
});
expect(screen.getByText("custom trigger")).toBeInTheDocument();
});
});
@@ -0,0 +1,66 @@
// @vitest-environment happy-dom
import { render, screen } from "@testing-library/react";
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
const queryResult = vi.hoisted(() => ({ data: undefined as number | undefined }));
vi.mock("@tanstack/react-query", () => ({
useQuery: () => queryResult,
}));
vi.mock("@/libs/orpc/client", () => ({
orpc: { statistics: { github: { getStarCount: { queryOptions: () => ({}) } } } },
}));
vi.mock("../animation/count-up", () => ({
CountUp: ({ to }: { to: number }) => <span data-testid="count-up">{to.toLocaleString()}</span>,
}));
const { GithubStarsButton } = await import("./github-stars-button");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
beforeEach(() => {
queryResult.data = undefined;
});
const renderButton = () =>
render(
<I18nProvider i18n={i18n}>
<GithubStarsButton />
</I18nProvider>,
);
describe("GithubStarsButton", () => {
it("renders an anchor pointing at the project repo with rel=noopener and target=_blank", () => {
renderButton();
const link = screen.getByRole("button") as HTMLAnchorElement;
expect(link.href).toBe("https://github.com/amruthpillai/reactive-resume");
expect(link.target).toBe("_blank");
expect(link.rel).toBe("noopener");
});
it("uses the no-count aria-label when star count hasn't loaded yet", () => {
renderButton();
const link = screen.getByRole("button") as HTMLAnchorElement;
expect(link.getAttribute("aria-label")).toBe("Star us on GitHub (opens in new tab)");
});
it("does not render a CountUp when star count is undefined", () => {
renderButton();
expect(screen.queryByTestId("count-up")).toBeNull();
});
it("renders a CountUp + announces the star count when available", () => {
queryResult.data = 12345;
renderButton();
expect(screen.getByTestId("count-up").textContent).toBe("12,345");
const link = screen.getByRole("button") as HTMLAnchorElement;
expect(link.getAttribute("aria-label")).toContain("12,345 stars");
});
});
@@ -0,0 +1,74 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
// react-window's <Grid> uses ResizeObserver / IntersectionObserver heavily and
// expects measurable layouts that happy-dom can't provide. Stub it with a simple
// pass-through that renders the first row of cells via the supplied cellComponent.
vi.mock("react-window", () => ({
Grid: ({
rowCount,
columnCount,
cellComponent: CellComponent,
cellProps,
}: {
rowCount: number;
columnCount: number;
cellComponent: React.ComponentType<
{ rowIndex: number; columnIndex: number; style: React.CSSProperties } & Record<string, unknown>
>;
cellProps: Record<string, unknown>;
}) => {
const cells: React.ReactNode[] = [];
for (let r = 0; r < Math.min(rowCount, 1); r++) {
for (let c = 0; c < columnCount; c++) {
cells.push(<CellComponent key={`${r}-${c}`} rowIndex={r} columnIndex={c} style={{}} {...cellProps} />);
}
}
return <div data-testid="grid">{cells}</div>;
},
}));
const { IconPicker } = await import("./icon-picker");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
const renderPicker = (props: Partial<React.ComponentProps<typeof IconPicker>> = {}) =>
render(
<I18nProvider i18n={i18n}>
<IconPicker value="globe" onChange={vi.fn()} {...props} />
</I18nProvider>,
);
describe("IconPicker", () => {
it("renders a trigger button containing the current icon", () => {
const { container } = renderPicker();
const i = container.querySelector("i.ph") as HTMLElement;
expect(i.className).toContain("ph-globe");
});
it("changes the trigger icon when value prop changes", () => {
const { container, rerender } = renderPicker({ value: "globe" });
const before = container.querySelector("i.ph")?.className ?? "";
expect(before).toContain("ph-globe");
rerender(
<I18nProvider i18n={i18n}>
<IconPicker value="star" onChange={vi.fn()} />
</I18nProvider>,
);
const after = container.querySelector("i.ph")?.className ?? "";
expect(after).toContain("ph-star");
});
it("renders the picker button as a single icon-size button", () => {
const { container } = renderPicker();
expect(container.querySelectorAll("button").length).toBeGreaterThanOrEqual(1);
});
});
+7 -6
View File
@@ -46,7 +46,7 @@ import TextAlign from "@tiptap/extension-text-align";
import { TextStyle } from "@tiptap/extension-text-style";
import { EditorContent, EditorContext, useEditor, useEditorState } from "@tiptap/react";
import StarterKit from "@tiptap/starter-kit";
import { useMemo, useState } from "react";
import { useEffect, useMemo, useState } from "react";
import { toast } from "sonner";
import { match } from "ts-pattern";
import z from "zod";
@@ -86,11 +86,7 @@ const extensions = [
}),
TextStyle,
Color,
Highlight.configure({
HTMLAttributes: {
class: "rounded-md px-0.5 py-px",
},
}),
Highlight.configure(),
TextAlign.configure({ types: ["heading", "paragraph", "listItem"] }),
TableKit.configure(),
];
@@ -137,6 +133,11 @@ export function RichInput({ value, onChange, style, className, editorClassName,
const providerValue = useMemo(() => ({ editor }), [editor]);
useEffect(() => {
if (!editor || editor.getHTML() === value) return;
editor.commands.setContent(value, { emitUpdate: false });
}, [editor, value]);
if (!editor) return null;
const editorElement = (
@@ -0,0 +1,85 @@
// @vitest-environment happy-dom
import { fireEvent, render, screen } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { URLInput } from "./url-input";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
const renderInput = (value: { url: string; label: string }, onChange = vi.fn(), hideLabelButton = false) =>
render(
<I18nProvider i18n={i18n}>
<URLInput value={value} onChange={onChange} hideLabelButton={hideLabelButton} />
</I18nProvider>,
);
describe("URLInput", () => {
it("strips the https:// prefix in the visible input value", () => {
renderInput({ url: "https://example.com/path", label: "" });
const input = screen.getByRole("textbox") as HTMLInputElement;
expect(input.value).toBe("example.com/path");
});
it("renders the raw value when no prefix is present", () => {
renderInput({ url: "no-prefix.example", label: "" });
const input = screen.getByRole("textbox") as HTMLInputElement;
expect(input.value).toBe("no-prefix.example");
});
it("adds https:// prefix on edit when not already present", () => {
const onChange = vi.fn();
renderInput({ url: "https://example.com", label: "" }, onChange);
const input = screen.getByRole("textbox") as HTMLInputElement;
fireEvent.change(input, { target: { value: "new.example" } });
expect(onChange).toHaveBeenCalledWith({
url: "https://new.example",
label: "",
});
});
it("keeps already-prefixed URLs intact on edit", () => {
const onChange = vi.fn();
renderInput({ url: "https://example.com", label: "" }, onChange);
const input = screen.getByRole("textbox") as HTMLInputElement;
fireEvent.change(input, { target: { value: "https://other.example" } });
expect(onChange).toHaveBeenCalledWith({
url: "https://other.example",
label: "",
});
});
it("emits an empty url string when cleared", () => {
const onChange = vi.fn();
renderInput({ url: "https://example.com", label: "" }, onChange);
const input = screen.getByRole("textbox") as HTMLInputElement;
fireEvent.change(input, { target: { value: "" } });
expect(onChange).toHaveBeenCalledWith({
url: "",
label: "",
});
});
it("hides the label button when hideLabelButton=true", () => {
const { container } = renderInput({ url: "https://example.com", label: "" }, vi.fn(), true);
// PopoverTrigger is rendered as a button; its absence means hideLabelButton worked.
const buttons = container.querySelectorAll("button");
expect(buttons.length).toBe(0);
});
it("renders the label button by default", () => {
const { container } = renderInput({ url: "https://example.com", label: "" });
const buttons = container.querySelectorAll("button");
expect(buttons.length).toBeGreaterThan(0);
});
});
@@ -0,0 +1,51 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { BreakpointIndicator } from "./breakpoint-indicator";
const getWrapper = (container: HTMLElement) => container.firstChild as HTMLElement;
describe("BreakpointIndicator", () => {
it("defaults to bottom-right positioning when no position is supplied", () => {
const { container } = render(<BreakpointIndicator />);
const wrapper = getWrapper(container);
expect(wrapper.className).toContain("bottom-0");
// bottom-right path: top branch sets the "bottom-0", right path sets "inset-e-0"
expect(wrapper.className).toContain("inset-e-0");
});
it("renders all breakpoint labels (one is visible at each viewport)", () => {
const { container } = render(<BreakpointIndicator />);
const text = container.textContent ?? "";
for (const label of ["XS", "SM", "MD", "LG", "XL", "2XL", "3XL", "4XL"]) {
expect(text).toContain(label);
}
});
it("uses top-left classes for top-left position", () => {
const { container } = render(<BreakpointIndicator position="top-left" />);
const wrapper = getWrapper(container);
expect(wrapper.className).toContain("top-0");
expect(wrapper.className).toContain("inset-s-0");
});
it("uses top-right classes for top-right position", () => {
const { container } = render(<BreakpointIndicator position="top-right" />);
const wrapper = getWrapper(container);
expect(wrapper.className).toContain("top-0");
expect(wrapper.className).toContain("inset-e-0");
});
it("uses bottom-left classes for bottom-left position", () => {
const { container } = render(<BreakpointIndicator position="bottom-left" />);
const wrapper = getWrapper(container);
expect(wrapper.className).toContain("bottom-0");
expect(wrapper.className).toContain("inset-s-0");
});
it("hides the indicator from print stylesheets", () => {
const { container } = render(<BreakpointIndicator />);
expect(getWrapper(container).className).toContain("print:hidden");
});
});
@@ -0,0 +1,45 @@
// @vitest-environment happy-dom
import type { ErrorComponentProps } from "@tanstack/react-router";
import { fireEvent, render, screen } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { ErrorScreen } from "./error-screen";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
const renderError = (overrides: { error?: Error; reset?: () => void } = {}) => {
const props: ErrorComponentProps = {
error: overrides.error ?? new Error("boom"),
reset: overrides.reset ?? vi.fn(),
};
return render(
<I18nProvider i18n={i18n}>
<ErrorScreen {...props} />
</I18nProvider>,
);
};
describe("ErrorScreen", () => {
it("shows the error message provided", () => {
renderError({ error: new Error("Network is down") });
expect(screen.getByText("Network is down")).toBeInTheDocument();
});
it("shows the user-facing error heading", () => {
renderError();
expect(screen.getByText("An error occurred while loading the page.")).toBeInTheDocument();
});
it("calls reset when the Refresh button is clicked", () => {
const reset = vi.fn();
renderError({ reset });
fireEvent.click(screen.getByRole("button", { name: /refresh/i }));
expect(reset).toHaveBeenCalledTimes(1);
});
});
@@ -0,0 +1,35 @@
// @vitest-environment happy-dom
import { render, screen } from "@testing-library/react";
import { beforeAll, describe, expect, it } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
import { LoadingScreen } from "./loading-screen";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
describe("LoadingScreen", () => {
it("renders a spinner and the loading text", () => {
render(
<I18nProvider i18n={i18n}>
<LoadingScreen />
</I18nProvider>,
);
expect(screen.getByText("Loading...")).toBeInTheDocument();
});
it("fills the viewport (fixed inset-0)", () => {
const { container } = render(
<I18nProvider i18n={i18n}>
<LoadingScreen />
</I18nProvider>,
);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.className).toContain("fixed");
expect(wrapper.className).toContain("inset-0");
});
});
@@ -0,0 +1,47 @@
// @vitest-environment happy-dom
import { render, screen } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
import { I18nProvider } from "@lingui/react";
// `Link` from tanstack/react-router requires a Router context. Stub it out with
// a plain anchor so we can render the screen in isolation.
vi.mock("@tanstack/react-router", () => ({
Link: ({ children, to, ...rest }: React.PropsWithChildren<{ to: string }>) => (
<a href={typeof to === "string" ? to : "#"} {...rest}>
{children}
</a>
),
}));
const { NotFoundScreen } = await import("./not-found-screen");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
const renderScreen = (routeId = "/missing") =>
render(
<I18nProvider i18n={i18n}>
<NotFoundScreen isNotFound routeId={routeId as never} />
</I18nProvider>,
);
describe("NotFoundScreen", () => {
it("renders the documented error heading", () => {
renderScreen();
expect(screen.getByText("An error occurred while loading the page.")).toBeInTheDocument();
});
it("displays the routeId that triggered the not-found", () => {
renderScreen("/dashboard/missing-page");
expect(screen.getByText("/dashboard/missing-page")).toBeInTheDocument();
});
it("renders a Go Back link", () => {
renderScreen();
const link = screen.getByRole("link", { name: /go back/i });
expect(link.getAttribute("href")).toBe("..");
});
});
@@ -0,0 +1,44 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { beforeAll, describe, expect, it, vi } from "vitest";
import { i18n } from "@lingui/core";
// Capture the options the Combobox receives so we can introspect them.
const captured = vi.hoisted(() => ({
options: undefined as Array<{ value: string; label: string }> | undefined,
}));
vi.mock("@/components/ui/combobox", () => ({
Combobox: (props: { options: Array<{ value: string; label: string }> }) => {
captured.options = props.options;
return null;
},
}));
const { LevelTypeCombobox } = await import("./combobox");
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
describe("LevelTypeCombobox", () => {
it("renders one option per level type from levelDesignSchema", () => {
render(<LevelTypeCombobox />);
expect(captured.options?.length).toBe(7);
const values = captured.options?.map((o) => o.value);
expect(values).toEqual(
expect.arrayContaining(["hidden", "circle", "square", "rectangle", "rectangle-full", "progress-bar", "icon"]),
);
});
it("produces a human-readable label for each level type", () => {
render(<LevelTypeCombobox />);
for (const opt of captured.options ?? []) {
expect(opt.label).toBeTruthy();
expect(typeof opt.label).toBe("string");
}
});
});
@@ -0,0 +1,79 @@
// @vitest-environment happy-dom
import { render } from "@testing-library/react";
import { beforeAll, describe, expect, it } from "vitest";
import { i18n } from "@lingui/core";
import { LevelDisplay } from "./display";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
describe("LevelDisplay", () => {
it("renders nothing when level is 0", () => {
const { container } = render(<LevelDisplay type="circle" icon="star" level={0} />);
expect(container.firstChild).toBeNull();
});
it("renders nothing when type is hidden", () => {
const { container } = render(<LevelDisplay type="hidden" icon="star" level={3} />);
expect(container.firstChild).toBeNull();
});
it("renders nothing when icon is empty (regardless of type)", () => {
const { container } = render(<LevelDisplay type="icon" icon="" level={3} />);
expect(container.firstChild).toBeNull();
});
it("renders 5 segments for progress-bar type", () => {
const { container } = render(<LevelDisplay type="progress-bar" icon="star" level={3} />);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.children).toHaveLength(5);
});
it("marks first N segments as active for progress-bar", () => {
const { container } = render(<LevelDisplay type="progress-bar" icon="star" level={3} />);
const wrapper = container.firstChild as HTMLElement;
const activeStates = Array.from(wrapper.children).map((el) => (el as HTMLElement).dataset.active);
expect(activeStates).toEqual(["true", "true", "true", "false", "false"]);
});
it("renders icons for icon type", () => {
const { container } = render(<LevelDisplay type="icon" icon="star" level={2} />);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.children).toHaveLength(5);
expect(wrapper.querySelectorAll("i").length).toBe(5);
expect(wrapper.querySelector("i")?.className).toContain("ph-star");
});
it("dims inactive icons for icon type", () => {
const { container } = render(<LevelDisplay type="icon" icon="star" level={1} />);
const wrapper = container.firstChild as HTMLElement;
const icons = wrapper.querySelectorAll("i");
expect(icons[0]?.className).not.toContain("opacity-40");
expect(icons[4]?.className).toContain("opacity-40");
});
it("renders square segments for circle/rectangle/rectangle-full types", () => {
for (const type of ["circle", "rectangle", "rectangle-full"] as const) {
const { container } = render(<LevelDisplay type={type} icon="star" level={2} />);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.children).toHaveLength(5);
const activeStates = Array.from(wrapper.children).map((el) => (el as HTMLElement).dataset.active);
expect(activeStates).toEqual(["true", "true", "false", "false", "false"]);
}
});
it("includes an aria-label describing the level", () => {
const { container } = render(<LevelDisplay type="circle" icon="star" level={4} />);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.getAttribute("role")).toBe("img");
expect(wrapper.getAttribute("aria-label")).toContain("4");
});
it("merges extra className into the wrapper", () => {
const { container } = render(<LevelDisplay type="circle" icon="star" level={1} className="extra" />);
const wrapper = container.firstChild as HTMLElement;
expect(wrapper.className).toContain("extra");
});
});
@@ -0,0 +1,36 @@
// @vitest-environment happy-dom
import { beforeAll, describe, expect, it } from "vitest";
import { i18n } from "@lingui/core";
import { localeMap } from "@/libs/locale";
import { getLocaleOptions } from "./combobox";
beforeAll(() => {
i18n.loadAndActivate({ locale: "en", messages: {} });
});
describe("getLocaleOptions", () => {
it("returns one option per entry in localeMap", () => {
const options = getLocaleOptions();
expect(options).toHaveLength(Object.keys(localeMap).length);
});
it("uses the locale code as the value", () => {
const options = getLocaleOptions();
const values = options.map((opt) => opt.value);
expect(values).toContain("en-US");
expect(values).toContain("de-DE");
});
it("populates label and keywords with the same translated string", () => {
const options = getLocaleOptions();
const enUS = options.find((opt) => opt.value === "en-US");
expect(enUS?.label).toBeTruthy();
expect(enUS?.keywords).toEqual([enUS?.label]);
});
it("uses unique values for every option", () => {
const values = getLocaleOptions().map((opt) => opt.value);
expect(new Set(values).size).toBe(values.length);
});
});
+1 -1
View File
@@ -1,5 +1,5 @@
import type { Locale } from "@reactive-resume/utils/locale";
import type { SingleComboboxProps } from "@/components/ui/combobox";
import type { Locale } from "@/libs/locale";
import { i18n } from "@lingui/core";
import { useLingui } from "@lingui/react";
import { Combobox } from "@/components/ui/combobox";
@@ -2,22 +2,25 @@ import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { QueryClient, QueryKey } from "@tanstack/react-query";
import type { WritableDraft } from "immer";
import { t } from "@lingui/core/macro";
import { consumeEventIterator } from "@orpc/client";
import { useQueryClient } from "@tanstack/react-query";
import { useParams } from "@tanstack/react-router";
import { debounce } from "es-toolkit";
import { useCallback, useEffect } from "react";
import { debounce, isEqual } from "es-toolkit";
import { useCallback, useEffect, useState } from "react";
import { toast } from "sonner";
import { immer } from "zustand/middleware/immer";
import { create } from "zustand/react";
import { orpc } from "@/libs/orpc/client";
import { applyResumePatches, createResumePatches } from "@reactive-resume/utils/resume/patch";
import { orpc, streamClient } from "@/libs/orpc/client";
type Resume = {
export type Resume = {
id: string;
name: string;
slug: string;
tags: string[];
data: ResumeData;
isLocked: boolean;
updatedAt: Date;
hasPassword?: boolean;
isPublic?: boolean;
};
@@ -31,6 +34,8 @@ type ResumeStoreState = {
type ResumeStoreActions = {
initialize: (resume: Resume | null) => void;
reset: () => void;
replaceResumeDraft: (resume: Resume) => void;
replaceResumeFromServer: (resume: Resume) => void;
updateResumeData: (fn: (draft: WritableDraft<ResumeData>) => void) => void;
patchResume: (fn: (draft: WritableDraft<Resume>) => void) => void;
mergeResumeMetadata: (resume: Resume) => void;
@@ -41,6 +46,8 @@ type ResumeStore = ResumeStoreState & ResumeStoreActions;
type Runtime = {
abortController: AbortController;
queryClient?: QueryClient;
baselineData?: ResumeData;
hasPendingLocalChanges: boolean;
syncErrorToastId?: string | number;
syncResume: ReturnType<typeof debounce<(resume: Resume) => Promise<void>>>;
beforeUnloadHandler?: () => void;
@@ -55,6 +62,16 @@ function getResumeQueryKey(id: string): QueryKey {
return orpc.resume.getById.queryOptions({ input: { id } }).queryKey as QueryKey;
}
function cloneResumeData(data: ResumeData): ResumeData {
return structuredClone(data);
}
function setRuntimeBaseline(resume: Resume) {
const runtime = getRuntime(resume.id);
runtime.baselineData = cloneResumeData(resume.data);
runtime.hasPendingLocalChanges = false;
}
function createRuntime(): Runtime {
const abortController = new AbortController();
@@ -63,14 +80,37 @@ function createRuntime(): Runtime {
const runtime = runtimes.get(resume.id);
if (!runtime) return;
const baselineData = runtime.baselineData ?? cloneResumeData(resume.data);
const operations = createResumePatches(baselineData, resume.data);
if (operations.length === 0) {
runtime.hasPendingLocalChanges = false;
return;
}
const submittedData = cloneResumeData(resume.data);
try {
const updated = (await orpc.resume.update.call(
{ id: resume.id, data: resume.data },
const updated = (await orpc.resume.patch.call(
{ id: resume.id, operations },
{ signal: abortController.signal },
)) as Resume;
runtime.queryClient?.setQueryData(getResumeQueryKey(resume.id), updated);
useResumeStore.getState().mergeResumeMetadata(updated);
runtime.baselineData = cloneResumeData(updated.data);
const currentResume = useResumeStore.getState().resume;
const currentDataStillMatchesSubmission =
currentResume?.id === resume.id && isEqual(currentResume.data, submittedData);
if (currentDataStillMatchesSubmission) {
runtime.hasPendingLocalChanges = false;
useResumeStore.getState().replaceResumeFromServer(updated);
} else {
runtime.hasPendingLocalChanges = true;
useResumeStore.getState().mergeResumeMetadata(updated);
syncCurrentResume(resume.id);
}
if (runtime.syncErrorToastId === undefined) return;
toast.dismiss(runtime.syncErrorToastId);
@@ -89,6 +129,7 @@ function createRuntime(): Runtime {
const runtime: Runtime = {
abortController,
hasPendingLocalChanges: false,
syncResume,
};
@@ -113,6 +154,10 @@ function bindRuntimeQueryClient(id: string, queryClient: QueryClient) {
getRuntime(id).queryClient = queryClient;
}
function hasPendingLocalChanges(id: string): boolean {
return getRuntime(id).hasPendingLocalChanges;
}
function cleanupRuntime(id: string) {
const runtime = runtimes.get(id);
if (!runtime) return;
@@ -141,6 +186,8 @@ export const useResumeStore = create<ResumeStore>()(
isReady: false,
initialize: (resume) => {
if (resume) setRuntimeBaseline(resume);
set((state) => {
state.resume = resume;
state.resumeId = resume?.id;
@@ -156,6 +203,24 @@ export const useResumeStore = create<ResumeStore>()(
});
},
replaceResumeDraft: (resume) => {
set((state) => {
state.resume = resume;
state.resumeId = resume.id;
state.isReady = true;
});
},
replaceResumeFromServer: (resume) => {
setRuntimeBaseline(resume);
set((state) => {
state.resume = resume;
state.resumeId = resume.id;
state.isReady = true;
});
},
patchResume: (fn) => {
set((state) => {
if (!state.resume) return;
@@ -171,6 +236,7 @@ export const useResumeStore = create<ResumeStore>()(
state.resume.slug = resume.slug;
state.resume.tags = resume.tags;
state.resume.isLocked = resume.isLocked;
state.resume.updatedAt = resume.updatedAt;
state.resume.hasPassword = resume.hasPassword;
state.resume.isPublic = resume.isPublic;
});
@@ -192,6 +258,7 @@ export const useResumeStore = create<ResumeStore>()(
fn(state.resume.data as WritableDraft<ResumeData>);
});
getRuntime(currentResume.id).hasPendingLocalChanges = true;
syncCurrentResume(currentResume.id);
},
})),
@@ -213,6 +280,20 @@ export function usePatchResume() {
return useResumeStore((state) => state.patchResume);
}
export function useReplaceResumeFromServer() {
const queryClient = useQueryClient();
const replaceResumeFromServer = useResumeStore((state) => state.replaceResumeFromServer);
return useCallback(
(resume: Resume) => {
bindRuntimeQueryClient(resume.id, queryClient);
queryClient.setQueryData(getResumeQueryKey(resume.id), resume);
replaceResumeFromServer(resume);
},
[queryClient, replaceResumeFromServer],
);
}
function useBuilderResumeSelector<T>(selector: (resume: Resume) => T): T | undefined {
const params = useParams({ strict: false }) as { resumeId?: string };
const resumeId = params.resumeId;
@@ -259,6 +340,68 @@ export function useUpdateResumeData() {
);
}
export function useResumeUpdateSubscription() {
const queryClient = useQueryClient();
const replaceResumeFromServer = useResumeStore((state) => state.replaceResumeFromServer);
const params = useParams({ strict: false }) as { resumeId?: string };
const resumeId = params.resumeId;
const [_retryNonce, setRetryNonce] = useState(0);
useEffect(() => {
if (!resumeId) return;
bindRuntimeQueryClient(resumeId, queryClient);
let didCancel = false;
let retryTimer: number | undefined;
const cancel = consumeEventIterator(streamClient.resume.updates.subscribe({ id: resumeId }), {
onEvent: async () => {
try {
const resume = (await orpc.resume.getById.call({ id: resumeId })) as Resume;
if (hasPendingLocalChanges(resumeId)) {
const runtime = getRuntime(resumeId);
const currentResume = useResumeStore.getState().resume;
const baselineData = runtime.baselineData ?? currentResume?.data;
if (currentResume && baselineData) {
const localOperations = createResumePatches(baselineData, currentResume.data);
const mergedData = applyResumePatches(resume.data, localOperations);
runtime.baselineData = cloneResumeData(resume.data);
runtime.hasPendingLocalChanges = localOperations.length > 0;
queryClient.setQueryData(getResumeQueryKey(resumeId), resume);
useResumeStore.getState().replaceResumeDraft({ ...resume, data: mergedData });
syncCurrentResume(resumeId);
} else {
runtime.baselineData = cloneResumeData(resume.data);
useResumeStore.getState().mergeResumeMetadata(resume);
}
return;
}
queryClient.setQueryData(getResumeQueryKey(resumeId), resume);
replaceResumeFromServer(resume);
} catch (error) {
if (error instanceof DOMException && error.name === "AbortError") return;
console.warn("Failed to refresh resume after update event:", error);
}
},
onError: (error) => {
if (didCancel) return;
console.warn("Resume update stream failed, reconnecting:", error);
retryTimer = window.setTimeout(() => setRetryNonce((value) => value + 1), 2500);
},
});
return () => {
didCancel = true;
if (retryTimer) window.clearTimeout(retryTimer);
void cancel().catch(() => {});
};
}, [queryClient, replaceResumeFromServer, resumeId]);
}
export function useResumeCleanup() {
const params = useParams({ strict: false }) as { resumeId?: string };
const resumeId = params.resumeId;
@@ -0,0 +1,120 @@
// @vitest-environment happy-dom
import type { ResumeData } from "@reactive-resume/schema/resume/data";
import { render, screen, waitFor } from "@testing-library/react";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { sampleResumeData } from "@reactive-resume/schema/resume/sample";
import { ResumePreviewClient } from "./preview.browser";
const previewMock = vi.hoisted(() => ({
builderResumeData: undefined as ResumeData | undefined,
localizedResumeData: [] as Array<ResumeData | undefined>,
toBlob: vi.fn(async () => new Blob(["%PDF"], { type: "application/pdf" })),
}));
const resumeDataWithPageCount = (pageCount: number): ResumeData => ({
...sampleResumeData,
metadata: {
...sampleResumeData.metadata,
layout: {
...sampleResumeData.metadata.layout,
pages: sampleResumeData.metadata.layout.pages.slice(0, pageCount),
},
},
});
vi.mock("@react-pdf/renderer", () => ({
pdf: () => ({ toBlob: previewMock.toBlob }),
}));
vi.mock("@/libs/resume/pdf-document", () => ({
useLocalizedResumeDocument: (data?: ResumeData) => {
previewMock.localizedResumeData.push(data);
return data ? { type: "resume-document", data } : null;
},
}));
vi.mock("./builder-resume-draft", () => ({
useResumeData: () => previewMock.builderResumeData,
}));
vi.mock("./pdf-canvas", async () => {
const React = await import("react");
const pdfDocument = { numPages: 1 };
return {
PdfCanvasDocument: ({
children,
onLoadSuccess,
}: {
children: (document: typeof pdfDocument) => React.ReactNode;
onLoadSuccess: (document: typeof pdfDocument) => void;
}) => {
React.useEffect(() => {
onLoadSuccess(pdfDocument);
}, [onLoadSuccess]);
return React.createElement(React.Fragment, null, children(pdfDocument));
},
PdfCanvasPage: ({
onLoadSuccess,
onRenderSuccess,
pageNumber,
totalPages,
}: {
onLoadSuccess: (pageNumber: number, pageSize: { height: number; width: number }) => void;
onRenderSuccess?: () => void;
pageNumber: number;
totalPages: number;
}) => {
React.useEffect(() => {
onLoadSuccess(pageNumber, { height: 200, width: 100 });
onRenderSuccess?.();
}, [onLoadSuccess, onRenderSuccess, pageNumber]);
return React.createElement(
"div",
{ role: "img", "aria-label": `Resume page ${pageNumber} of ${totalPages}` },
"Rendered page",
);
},
};
});
describe("ResumePreviewClient", () => {
beforeEach(() => {
previewMock.builderResumeData = undefined;
previewMock.localizedResumeData = [];
previewMock.toBlob.mockReset();
previewMock.toBlob.mockImplementation(async () => new Blob(["%PDF"], { type: "application/pdf" }));
});
it("renders a loading placeholder for each builder layout page while the PDF is generated", () => {
previewMock.builderResumeData = resumeDataWithPageCount(3);
previewMock.toBlob.mockImplementation(() => new Promise<Blob>(() => {}));
render(<ResumePreviewClient pageGap="1rem" pageLayout="vertical" pageScale={1.25} showPageNumbers={false} />);
expect(screen.getAllByRole("img", { name: /Loading resume page/ })).toHaveLength(3);
});
it("renders from explicit resume data when no builder resume is active", async () => {
render(
<ResumePreviewClient
data={sampleResumeData}
pageGap="1rem"
pageLayout="vertical"
pageScale={1.25}
showPageNumbers={false}
/>,
);
expect(await screen.findByRole("img", { name: "Resume page 1 of 1" })).toBeTruthy();
await waitFor(() => {
expect(previewMock.toBlob).toHaveBeenCalledTimes(1);
});
expect(previewMock.localizedResumeData).toContain(sampleResumeData);
});
});

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