Compare commits

...
29 Commits
Author SHA1 Message Date
Amruth Pillai 3653baad9b 📦 v5.0.14 - https://docs.rxresu.me/changelog 2026-03-24 11:22:45 +01:00
b4aaf9712f feat(mcp): add OAuth 2.1 for claude.ai MCP connector (#2829)
* feat(mcp): add OAuth 2.1 authentication for claude.ai MCP connector

Enable OAuth 2.1 (RFC 8414 + RFC 7591) for the MCP endpoint using
better-auth's MCP plugin. This allows claude.ai and other MCP clients
to authenticate via Dynamic Client Registration and Authorization Code
flow with PKCE, using the existing login page.

- Add `mcp()` plugin to better-auth config with login page redirect
- Add `.well-known/oauth-authorization-server` discovery endpoint
- Add `.well-known/oauth-protected-resource` metadata endpoint
- Update MCP handler to accept Bearer tokens via `getMcpSession`
- Retain `x-api-key` fallback for backward compatibility
- Return proper HTTP 401 + WWW-Authenticate header for unauthed requests
- Add `oauthApplication`, `oauthAccessToken`, `oauthConsent` tables

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): use typed AuthError and suppress noisy verifyApiKey throws

- Replace string-matching error detection with instanceof AuthError
- Wrap verifyApiKey in try-catch to avoid logging malformed key errors
- Move console.error below auth check so 401s don't pollute logs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(mcp): add database migration for OAuth tables

Creates oauth_application, oauth_access_token, and oauth_consent tables
required for MCP OAuth 2.1 Dynamic Client Registration flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): resolve OAuth Bearer token auth for oRPC tool calls

The oRPC context only checked session cookies and API keys, causing
MCP tool calls from OAuth clients (claude.ai) to fail with Unauthorized
even though the MCP endpoint itself authenticated successfully.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): look up user by userId from OAuth access token

getMcpSession returns OAuthAccessToken (with userId), not a session
object with a user property. Must query the user table by userId.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(mcp): migrate from deprecated mcp() plugin to @better-auth/oauth-provider

The better-auth MCP plugin is marked for deprecation in favor of the
OAuth Provider plugin. This refactors the entire OAuth 2.1 flow to use
@better-auth/oauth-provider with JWT-based token verification, replacing
the opaque token lookup via getMcpSession().

Key changes:
- Replace mcp() with jwt() + oauthProvider() in auth config
- Replace getMcpSession() with verifyAccessToken() (JWT/JWKS)
- Replace oauthApplication table with oauthClient (RFC 7591 compliant)
- Add oauthRefreshToken table and jwks table for JWT signing keys
- Extract shared authBaseUrl and verifyOAuthToken helper
- Hoist McpServer to module scope (avoid per-request reconstruction)
- Update .well-known discovery endpoints for OAuth Provider

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): resolve OAuth 2.1 flow for claude.ai MCP connector

Multiple fixes required to make the full MCP OAuth flow work with
claude.ai's implementation:

- Add RFC 8414 discovery route at /.well-known/oauth-authorization-server/api/auth
  (claude.ai appends the issuer path per spec)
- Add /auth/oauth server route to handle login/consent flow
  (generates auth codes directly, bypassing h3 cookie issues)
- Default token_endpoint_auth_method to "none" via onRequest plugin hook
  (claude.ai omits this field, causing confidential client rejection)
- Strip prompt=consent from authorize requests via onRequest hook
  (better-auth checks prompt before skipConsent, causing redirect loops)
- Add validAudiences for MCP resource URL
  (JWT aud claim contains the MCP URL, not the base URL)
- Disable CSRF check for cross-origin OAuth flows
- Log token endpoint errors for debugging
- Set skipConsent on OAuth clients via /auth/oauth route

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(mcp): harden OAuth security and enforce lock on delete

- Scope CSRF bypass to OAuth2 paths only instead of disabling globally
- Validate redirect_uri against registered client URIs (prevents code interception)
- Use pathname matching instead of fragile url.includes() for route guards
- Replace biased modulo code generation with crypto.randomBytes
- Enforce resume lock check on delete (previously silently ignored)
- Remove debug console.error logging of OAuth token response bodies
- Use Response.json() consistently for MCP 401 response

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update dependencies, refine ignore patterns, and enhance documentation

- Updated various dependencies in package.json and pnpm-lock.yaml for improved stability and features.
- Adjusted ignore patterns in knip.json to include specific component directories.
- Enhanced documentation for the MCP server, clarifying authentication methods and configuration options.
- Made minor adjustments to VSCode settings for better code organization.

* fix(mcp): resolve OAuth client registration and stale token handling

Claude.ai sends token_endpoint_auth_method: "client_secret_post" without
a client_secret during Dynamic Client Registration, causing Better Auth to
reject it as an unauthenticated confidential client. Force to "none" for
unauthenticated registrations.

Also catch JWKS verification errors (e.g. key rotation after redeployment)
so stale Bearer tokens return 401 instead of 200 with an error body,
allowing clients to re-initiate the OAuth flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* reiterate on tests

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-03-24 11:03:56 +01:00
Amruth Pillai e3274d7c95 New translations en-us.po (French) (#2834)
[ci skip]
2026-03-22 17:49:55 +01:00
Copilotamruthpillaicopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
a7a3d53dbd [WIP] Fix issue 2830 related to sidebar width slider (#2832)
* Initial plan

* fix: sidebar width slider not updating resume layout

Co-authored-by: amruthpillai <1134738+amruthpillai@users.noreply.github.com>
Agent-Logs-Url: https://github.com/amruthpillai/reactive-resume/sessions/55cb1943-2066-4871-8a12-0a0a4cb35fa6

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: amruthpillai <1134738+amruthpillai@users.noreply.github.com>
2026-03-21 08:24:42 +01:00
Amruth Pillai f8d776106f fixes #2826 2026-03-19 19:16:28 +01:00
Amruth Pillai e34f648455 remove input-otp component, upstream issues 2026-03-19 18:43:05 +01:00
Amruth Pillai f4e2d05f25 Merge branch 'main' of github.com:amruthpillai/reactive-resume 2026-03-19 12:55:46 +01:00
Amruth Pillai bbc17b8995 cleaner logging in dev and prod 2026-03-19 12:55:37 +01:00
Amruth Pillai a66bc13f4f Sync Translations from Crowdin (#2825)
* New translations en-us.po (Romanian)
[ci skip]

* New translations en-us.po (French)
[ci skip]

* New translations en-us.po (Spanish)
[ci skip]

* New translations en-us.po (Afrikaans)
[ci skip]

* New translations en-us.po (Arabic)
[ci skip]

* New translations en-us.po (Bulgarian)
[ci skip]

* New translations en-us.po (Catalan)
[ci skip]

* New translations en-us.po (Czech)
[ci skip]

* New translations en-us.po (Danish)
[ci skip]

* New translations en-us.po (German)
[ci skip]

* New translations en-us.po (Greek)
[ci skip]

* New translations en-us.po (Finnish)
[ci skip]

* New translations en-us.po (Hebrew)
[ci skip]

* New translations en-us.po (Hungarian)
[ci skip]

* New translations en-us.po (Italian)
[ci skip]

* New translations en-us.po (Japanese)
[ci skip]

* New translations en-us.po (Korean)
[ci skip]

* New translations en-us.po (Lithuanian)
[ci skip]

* New translations en-us.po (Dutch)
[ci skip]

* New translations en-us.po (Norwegian)
[ci skip]

* New translations en-us.po (Polish)
[ci skip]

* New translations en-us.po (Portuguese)
[ci skip]

* New translations en-us.po (Russian)
[ci skip]

* New translations en-us.po (Slovak)
[ci skip]

* New translations en-us.po (Slovenian)
[ci skip]

* New translations en-us.po (Albanian)
[ci skip]

* New translations en-us.po (Serbian (Cyrillic))
[ci skip]

* New translations en-us.po (Swedish)
[ci skip]

* New translations en-us.po (Turkish)
[ci skip]

* New translations en-us.po (Ukrainian)
[ci skip]

* New translations en-us.po (Chinese Simplified)
[ci skip]

* New translations en-us.po (Chinese Traditional)
[ci skip]

* New translations en-us.po (Vietnamese)
[ci skip]

* New translations en-us.po (Portuguese, Brazilian)
[ci skip]

* New translations en-us.po (Indonesian)
[ci skip]

* New translations en-us.po (Persian)
[ci skip]

* New translations en-us.po (Khmer)
[ci skip]

* New translations en-us.po (Tamil)
[ci skip]

* New translations en-us.po (Bengali)
[ci skip]

* New translations en-us.po (Marathi)
[ci skip]

* New translations en-us.po (Thai)
[ci skip]

* New translations en-us.po (Latvian)
[ci skip]

* New translations en-us.po (Azerbaijani)
[ci skip]

* New translations en-us.po (Hindi)
[ci skip]

* New translations en-us.po (Malay)
[ci skip]

* New translations en-us.po (Telugu)
[ci skip]

* New translations en-us.po (English, United Kingdom)
[ci skip]

* New translations en-us.po (Malayalam)
[ci skip]

* New translations en-us.po (Uzbek)
[ci skip]

* New translations en-us.po (Kannada)
[ci skip]

* New translations en-us.po (Odia)
[ci skip]

* New translations en-us.po (Amharic)
[ci skip]

* New translations en-us.po (Nepali)
[ci skip]
2026-03-19 10:23:34 +01:00
Amruth Pillai 7858efbd2b remove prepare script 2026-03-19 10:22:37 +01:00
Amruth Pillai 7da5e2c0c2 update schema.json and openapi/spec.json 2026-03-19 10:07:19 +01:00
Amruth Pillai 177c550a0c fix changelog formatting 2026-03-19 10:03:15 +01:00
Amruth Pillai 882725cabf 📦 v5.0.13 - https://docs.rxresu.me/changelog 2026-03-19 09:57:34 +01:00
Luka FagundesandAmruth Pillai 3e16586d7a feat(jobs): add job listings with AI-powered resume tailoring (#2788)
* feat: add job listings feature with JSearch API integration, resume tailoring, and per-user rate limiting

* feat(jobs): add search filters UI, filter helper functions with tests, and job_search_quota DB migration

* feat(jobs): add pagination with 30 results per page and prev/next navigation

* refactor(job-detail): Adjust sheet width and scroll area height

* feat(ai): Add resume tailoring feature and prompt

* refactor(ai): Revise tailoring prompts and schema for full skill rewrite

* feat(ai): Add reference tailoring and output sanitization

* feat(testing): Add Vitest testing framework

* fix: address PR review - atomic rate limiting, calendar-month quota, skill sync warning, gitignore routeTree.gen.ts

* feat(jobs): Add location filter to job listings

* feat(job-listings): Add DOCX document generation

* feat(job-listings): Enable search by location and on Enter key

* feat(job-listings): Split location filter into city, state, and country

* feat(jobs): Implement job search adapter and JSearch

* Update 'locale/' directory

* feat(resume): Simplify filename generation and add tests

* fix(JSearch): reduce JSearch API usage to 1 request per search to prevent quota exhaustion

* fix(JSearch): Displayed quota amounts on Job Search functionality and settings fixed to pull from RapidAPI/JSearch response

* fix(internal rate limit): Removed internal rate limit and .env.example addition, cloud based implementation handles.

* style(job-filters): Adjust layout of switch filters

* fix(typecheck): Fixed typecheck issues introduced to sync with origin

* feat(jobs): Enhance tailor dialog with apply link and tags

* feat(locale files): updated locale files with the latest build

* feat(jobs): Add job search provider and integrate testing functionality

- Introduced `createJobSearchProvider` function to instantiate a JSearchProvider.
- Enhanced job search provider with methods for searching jobs, retrieving job details, and testing connection.
- Updated `vite.config.ts` to include new testing configurations and plugins.
- Added new dependencies in `package.json` for testing and document generation.
- Removed obsolete `vitest.config.ts` file.
- Improved job search provider tests for better coverage and reliability.

* refactor: Update job search routes and remove obsolete test configurations

- Removed the test configuration from `vite.config.ts`.
- Updated localization files to reflect changes in job search routes, renaming references from `jobs` to `job-search` across multiple languages.
- Adjusted autofix workflow to run formatting without the `--fix` flag for better control over code style adjustments.

* chore: Update dependencies and improve animation performance

- Added `jsdom` as a new dependency in `package.json`.
- Updated `vite-plus` and `vitest` to the latest versions for better compatibility.
- Enhanced animation components with `willChange` styles to optimize rendering performance.
- Adjusted various UI components to improve responsiveness and visual effects.
- Removed obsolete job details functionality from the job search provider and related tests.

* chore(locales): Update localization files for job search improvements

- Modified job search related strings to remove references to "this month" for a more concise format.
- Updated file references in localization entries to reflect changes in the job search component structure.
- Added new strings for API usage, quota remaining, and job fetching error messages across multiple languages.
- Removed obsolete "Monthly Usage" string from localization files.

* chore(dependencies): Update @typescript/native-preview to version 7.0.0-dev.20260319.1

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
2026-03-19 09:48:02 +01:00
Amruth Pillai 56a1838315 update routeTree.gen.ts, ignore files 2026-03-18 22:11:37 +01:00
Amruth Pillai 2d76cc5cfb update autofix 2026-03-18 22:08:12 +01:00
Amruth Pillai 192880e416 use vite+ 2026-03-18 22:03:24 +01:00
Amruth Pillai d1dac8aeca Sync Translations from Crowdin (#2824)
* New translations en-us.po (French)
[ci skip]

* New translations en-us.po (English, United Kingdom)
[ci skip]

* New translations en-us.po (French)
[ci skip]
2026-03-18 21:37:19 +01:00
Héphaïsto f13093249d Update French translation for 'Volunteer' to 'Bénévolat' (#2823)
Bénévole means The Volunteer (The person doing the action)
Bénévolat means actions made by volunteers so it is more adequat
2026-03-18 18:46:42 +01:00
Amruth PillaiCopilot Autofix powered by AIautofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
99c602e3c7 Migrate from Biome to Oxlint/Oxfmt (#2822)
* Migrate from Biome to Oxlint/Oxfmt

* pin version of autofix

* set version of autofix

* pin version of autofix

* [autofix.ci] apply automated fixes

* better comments, test formatter

* [autofix.ci] apply automated fixes

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 14:59:05 +01:00
Amruth PillaiandCopilot Autofix powered by AI 040755bec9 Sync Translations from Crowdin (#2820)
* New translations en-us.po (Romanian)
[ci skip]

* New translations en-us.po (French)
[ci skip]

* New translations en-us.po (Spanish)
[ci skip]

* New translations en-us.po (Afrikaans)
[ci skip]

* New translations en-us.po (Arabic)
[ci skip]

* New translations en-us.po (Bulgarian)
[ci skip]

* New translations en-us.po (Catalan)
[ci skip]

* New translations en-us.po (Czech)
[ci skip]

* New translations en-us.po (Danish)
[ci skip]

* New translations en-us.po (German)
[ci skip]

* New translations en-us.po (Greek)
[ci skip]

* New translations en-us.po (Finnish)
[ci skip]

* New translations en-us.po (Hebrew)
[ci skip]

* New translations en-us.po (Hungarian)
[ci skip]

* New translations en-us.po (Italian)
[ci skip]

* New translations en-us.po (Japanese)
[ci skip]

* New translations en-us.po (Korean)
[ci skip]

* New translations en-us.po (Lithuanian)
[ci skip]

* New translations en-us.po (Dutch)
[ci skip]

* New translations en-us.po (Norwegian)
[ci skip]

* New translations en-us.po (Polish)
[ci skip]

* New translations en-us.po (Portuguese)
[ci skip]

* New translations en-us.po (Russian)
[ci skip]

* New translations en-us.po (Slovak)
[ci skip]

* New translations en-us.po (Slovenian)
[ci skip]

* New translations en-us.po (Albanian)
[ci skip]

* New translations en-us.po (Serbian (Cyrillic))
[ci skip]

* New translations en-us.po (Swedish)
[ci skip]

* New translations en-us.po (Turkish)
[ci skip]

* New translations en-us.po (Ukrainian)
[ci skip]

* New translations en-us.po (Chinese Simplified)
[ci skip]

* New translations en-us.po (Chinese Traditional)
[ci skip]

* New translations en-us.po (Vietnamese)
[ci skip]

* New translations en-us.po (Portuguese, Brazilian)
[ci skip]

* New translations en-us.po (Indonesian)
[ci skip]

* New translations en-us.po (Persian)
[ci skip]

* New translations en-us.po (Khmer)
[ci skip]

* New translations en-us.po (Tamil)
[ci skip]

* New translations en-us.po (Bengali)
[ci skip]

* New translations en-us.po (Marathi)
[ci skip]

* New translations en-us.po (Thai)
[ci skip]

* New translations en-us.po (Latvian)
[ci skip]

* New translations en-us.po (Azerbaijani)
[ci skip]

* New translations en-us.po (Hindi)
[ci skip]

* New translations en-us.po (Malay)
[ci skip]

* New translations en-us.po (Telugu)
[ci skip]

* New translations en-us.po (English, United Kingdom)
[ci skip]

* New translations en-us.po (Malayalam)
[ci skip]

* New translations en-us.po (Uzbek)
[ci skip]

* New translations en-us.po (Kannada)
[ci skip]

* New translations en-us.po (Odia)
[ci skip]

* New translations en-us.po (Amharic)
[ci skip]

* New translations en-us.po (Nepali)
[ci skip]

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 11:56:42 +01:00
Amruth Pillai 1063680774 update translations 2026-03-18 11:04:00 +01:00
Amruth Pillai 1f8644bb54 add slovenian locale 2026-03-18 10:45:04 +01:00
Amruth Pillai 1d7c4b2615 update dependencies, fix type issues in auth, add migrations for missing indexes 2026-03-18 10:42:08 +01:00
Amruth Pillai d8ffd00fa6 update translations 2026-03-18 09:54:10 +01:00
Amruth Pillai f431c0fd89 language updates 2026-03-17 23:52:09 +01:00
Amruth Pillai 571a1c1efe use rtl friendly classes 2026-03-17 23:50:52 +01:00
Amruth Pillai 547afaa18f remove dead code 2026-03-17 23:50:04 +01:00
Amruth Pillai 7789c39fe3 better changelog 2026-03-17 23:48:14 +01:00
495 changed files with 105783 additions and 44147 deletions
+28 -27
View File
@@ -1,32 +1,33 @@
{
"name": "Reactive Resume",
"service": "reactive_resume",
"dockerComposeFile": "docker-compose.yml",
"workspaceFolder": "/workspace",
"name": "Reactive Resume",
"service": "reactive_resume",
"dockerComposeFile": "docker-compose.yml",
"workspaceFolder": "/workspace",
"forwardPorts": [3000, 4000, 5432, 8333],
"portsAttributes": {
"3000": { "label": "Reactive Resume", "onAutoForward": "openBrowser" },
"4000": { "label": "Browserless (Printer)" },
"5432": { "label": "PostgreSQL" },
"8333": { "label": "SeaweedFS (S3)" }
},
"forwardPorts": [3000, 4000, 5432, 8333],
"portsAttributes": {
"3000": { "label": "Reactive Resume", "onAutoForward": "openBrowser" },
"4000": { "label": "Browserless (Printer)" },
"5432": { "label": "PostgreSQL" },
"8333": { "label": "SeaweedFS (S3)" }
},
"customizations": {
"vscode": {
"extensions": ["biomejs.biome", "bradlc.vscode-tailwindcss", "lokalise.i18n-ally"],
"settings": {
"biome.enabled": true,
"editor.codeActionsOnSave": {
"source.biome": "explicit",
"source.fixAll.biome": "explicit",
"source.organizeImports.biome": "explicit"
},
"editor.defaultFormatter": "biomejs.biome",
"typescript.tsdk": "node_modules/typescript/lib"
}
}
},
"customizations": {
"vscode": {
"extensions": [
"oxc.oxc-vscode",
"bradlc.vscode-tailwindcss",
"lokalise.i18n-ally",
"typescriptteam.native-preview"
],
"settings": {
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.oxc": "always"
}
}
}
},
"postCreateCommand": "corepack enable && pnpm install"
"postCreateCommand": "corepack enable && pnpm install"
}
+1 -2
View File
@@ -54,8 +54,7 @@ services:
CONCURRENT: "5"
TOKEN: "1234567890"
healthcheck:
test:
["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
test: ["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
interval: 10s
timeout: 5s
retries: 10
+3 -3
View File
@@ -19,6 +19,9 @@ DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"
# Generated using `openssl rand -hex 32`
AUTH_SECRET="change-me-to-a-secure-secret-key-in-production"
# Better Auth Dashboard (optional)
BETTER_AUTH_API_KEY=""
# Social Auth (Google, optional)
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
@@ -34,9 +37,6 @@ OAUTH_CLIENT_SECRET=""
OAUTH_DISCOVERY_URL=""
OAUTH_AUTHORIZATION_URL=""
# Better Auth Dashboard (optional)
BETTER_AUTH_API_KEY=""
# --- Email (optional) ---
# If all keys are disabled, the app logs the email to be sent to the console instead.
SMTP_HOST="localhost"
+66 -66
View File
@@ -1,68 +1,68 @@
{
"$schema": "https://fundingjson.org/schema/v1.1.0.json",
"version": "v1.1.0",
"entity": {
"type": "individual",
"role": "maintainer",
"name": "Amruth Pillai",
"email": "im.amruth@gmail.com",
"description": "Software Engineer",
"webpageUrl": {
"url": "https://rxresu.me/funding.json"
}
},
"projects": [
{
"guid": "reactive-resume",
"name": "Reactive Resume",
"description": "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.",
"webpageUrl": {
"url": "https://rxresu.me"
},
"repositoryUrl": {
"url": "https://github.com/amruthpillai/reactive-resume",
"wellKnown": "https://github.com/amruthpillai/reactive-resume/blob/main/.github/.well-known/funding-manifest-urls"
},
"licenses": ["spdx:MIT"],
"tags": ["data", "design", "productivity", "resume-builder"]
}
],
"funding": {
"plans": [
{
"guid": "sponsor",
"status": "active",
"name": "Sponsor",
"description": "Support the project on a recurring basis by becoming a sponsor.",
"amount": 10,
"currency": "EUR",
"frequency": "monthly",
"channels": ["github", "open-collective"]
},
{
"guid": "donation",
"status": "active",
"name": "Donation",
"description": "Show your support for the project by making a one-time donation.",
"amount": 0,
"currency": "EUR",
"frequency": "one-time",
"channels": ["github", "open-collective"]
}
],
"channels": [
{
"guid": "github",
"type": "payment-provider",
"description": "GitHub Sponsors",
"address": "https://github.com/sponsors/AmruthPillai"
},
{
"guid": "open-collective",
"type": "payment-provider",
"description": "Open Collective",
"address": "https://opencollective.com/reactive-resume"
}
]
}
"$schema": "https://fundingjson.org/schema/v1.1.0.json",
"version": "v1.1.0",
"entity": {
"type": "individual",
"role": "maintainer",
"name": "Amruth Pillai",
"email": "im.amruth@gmail.com",
"description": "Software Engineer",
"webpageUrl": {
"url": "https://rxresu.me/funding.json"
}
},
"projects": [
{
"guid": "reactive-resume",
"name": "Reactive Resume",
"description": "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.",
"webpageUrl": {
"url": "https://rxresu.me"
},
"repositoryUrl": {
"url": "https://github.com/amruthpillai/reactive-resume",
"wellKnown": "https://github.com/amruthpillai/reactive-resume/blob/main/.github/.well-known/funding-manifest-urls"
},
"licenses": ["spdx:MIT"],
"tags": ["data", "design", "productivity", "resume-builder"]
}
],
"funding": {
"plans": [
{
"guid": "sponsor",
"status": "active",
"name": "Sponsor",
"description": "Support the project on a recurring basis by becoming a sponsor.",
"amount": 10,
"currency": "EUR",
"frequency": "monthly",
"channels": ["github", "open-collective"]
},
{
"guid": "donation",
"status": "active",
"name": "Donation",
"description": "Show your support for the project by making a one-time donation.",
"amount": 0,
"currency": "EUR",
"frequency": "one-time",
"channels": ["github", "open-collective"]
}
],
"channels": [
{
"guid": "github",
"type": "payment-provider",
"description": "GitHub Sponsors",
"address": "https://github.com/sponsors/AmruthPillai"
},
{
"guid": "open-collective",
"type": "payment-provider",
"description": "Open Collective",
"address": "https://opencollective.com/reactive-resume"
}
]
}
}
+1 -1
View File
@@ -1,2 +1,2 @@
github: AmruthPillai
open_collective: reactive-resume
open_collective: reactive-resume
+1 -1
View File
@@ -20,4 +20,4 @@ body:
label: Feature Description
description: A detailed description of the feature you would like to see in Reactive Resume. Please provide as much detail as possible as it will help me implement the feature faster.
validations:
required: true
required: true
+1 -1
View File
@@ -1 +1 @@
blank_issues_enabled: false
blank_issues_enabled: false
+28
View File
@@ -0,0 +1,28 @@
name: autofix.ci
on:
pull_request:
push:
branches: ["main"]
permissions:
contents: read
jobs:
autofix:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: voidzero-dev/setup-vp@v1
with:
node-version: "24"
cache: true
- run: vp install
- run: vp test
- run: vp check --fix
- uses: autofix-ci/action@7a166d7532b277f34e16238930461bf77f9d7ed8
+4 -4
View File
@@ -146,7 +146,7 @@ jobs:
VERSION="${{ steps.version.outputs.version }}"
MAJOR=$(echo "$VERSION" | cut -d. -f1)
MINOR=$(echo "$VERSION" | cut -d. -f2)
echo "major=$MAJOR" >> "$GITHUB_OUTPUT"
echo "minor=$MINOR" >> "$GITHUB_OUTPUT"
@@ -181,7 +181,7 @@ jobs:
--annotation "index:org.opencontainers.image.version=${{ steps.version.outputs.version }}" \
$(printf 'ghcr.io/${{ env.IMAGE }}@sha256:%s ' *) \
$(printf 'docker.io/${{ env.IMAGE }}@sha256:%s ' *)
# Get the digest of the multi-arch manifest
GHCR_DIGEST=$(docker buildx imagetools inspect ghcr.io/${{ env.IMAGE }}:v${{ steps.version.outputs.version }} --format '{{json .Manifest.Digest}}' | tr -d '"')
DOCKER_DIGEST=$(docker buildx imagetools inspect docker.io/${{ env.IMAGE }}:v${{ steps.version.outputs.version }} --format '{{json .Manifest.Digest}}' | tr -d '"')
@@ -195,7 +195,7 @@ jobs:
run: |
# Sign GHCR image
cosign sign --yes ghcr.io/${{ env.IMAGE }}@${{ steps.manifest.outputs.ghcr_digest }}
# Sign Docker Hub image
cosign sign --yes docker.io/${{ env.IMAGE }}@${{ steps.manifest.outputs.docker_digest }}
@@ -212,4 +212,4 @@ jobs:
username: ${{ secrets.SSH_USER }}
script: |
cd docker
./manage_stack.sh up reactive_resume
./manage_stack.sh up reactive_resume
+1
View File
@@ -5,6 +5,7 @@ dist
.output
.vercel
.cursor
.claude
TODO.md
coverage
.netlify
+9 -9
View File
@@ -2,16 +2,16 @@
const nextPackages = ["@monaco-editor/react"];
const betaPackages = ["drizzle-orm", "drizzle-kit"];
const betaPackages = ["drizzle-orm", "drizzle-kit", "drizzle-zod"];
/** @type {import('npm-check-updates').RunOptions} */
module.exports = {
upgrade: true,
install: "always",
packageManager: "pnpm",
target: (packageName) => {
if (nextPackages.includes(packageName)) return "@next";
if (betaPackages.includes(packageName)) return "@beta";
return "latest";
},
upgrade: true,
install: "always",
packageManager: "pnpm",
target: (packageName) => {
if (nextPackages.includes(packageName)) return "@next";
if (betaPackages.includes(packageName)) return "@beta";
return "latest";
},
};
+1
View File
@@ -0,0 +1 @@
vp staged
+7 -1
View File
@@ -1,3 +1,9 @@
{
"recommendations": ["biomejs.biome", "bradlc.vscode-tailwindcss", "lokalise.i18n-ally"]
"recommendations": [
"oxc.oxc-vscode",
"bradlc.vscode-tailwindcss",
"lokalise.i18n-ally",
"typescriptteam.native-preview",
"VoidZero.vite-plus-extension-pack"
]
}
+42 -38
View File
@@ -1,40 +1,44 @@
{
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"biome.enabled": true,
"editor.codeActionsOnSave": {
"source.biome": "explicit",
"source.fixAll.biome": "explicit",
"source.organizeImports.biome": "explicit"
},
"editor.defaultFormatter": "biomejs.biome",
"files.associations": {
"*.css": "tailwindcss"
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true,
"pnpm-lock.yaml": true
},
"files.watcherExclude": {
"**/routeTree.gen.ts": true,
"locales/**.po": true,
"pnpm-lock.yaml": true
},
"i18n-ally.enabledParsers": ["po"],
"i18n-ally.localesPaths": ["locales"],
"i18n-ally.sourceLanguage": "en-US",
"js/ts.experimental.useTsgo": true,
"search.exclude": {
"**/routeTree.gen.ts": true,
"locales/**.po": true,
"pnpm-lock.yaml": true
},
"tailwindCSS.classFunctions": ["cn", "cva"],
"tailwindCSS.experimental.classRegex": [
["class:\\s*?[\"'`]([^\"'`]*).*?,"],
["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
],
"tailwindCSS.experimental.configFile": "src/styles/globals.css"
"[typescript]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit",
"source.fixAll.oxc": "explicit"
},
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"files.associations": {
"*.css": "tailwindcss"
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true,
"pnpm-lock.yaml": true
},
"files.watcherExclude": {
"**/routeTree.gen.ts": true,
"locales/**.po": true,
"pnpm-lock.yaml": true
},
"i18n-ally.enabledParsers": ["po"],
"i18n-ally.localesPaths": ["locales"],
"i18n-ally.sourceLanguage": "en-US",
"oxc.enable.oxfmt": true,
"oxc.enable.oxlint": true,
"oxc.configPath": "./vite.config.ts",
"oxc.fmt.configPath": "./vite.config.ts",
"search.exclude": {
"**/routeTree.gen.ts": true,
"locales/**.po": true,
"pnpm-lock.yaml": true
},
"tailwindCSS.classFunctions": ["cn", "cva"],
"tailwindCSS.experimental.classRegex": [
["class:\\s*?[\"'`]([^\"'`]*).*?,"],
["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
],
"tailwindCSS.experimental.configFile": "src/styles/globals.css",
"typescript.experimental.useTsgo": true
}
+101 -15
View File
@@ -1,12 +1,71 @@
# AGENTS.md
## Cursor Cloud specific instructions
## Overview
### Overview
Reactive Resume is a single-package full-stack TypeScript app (not a monorepo) built with [TanStack Start](https://tanstack.com/start/latest/docs/framework/react/overview) (React, Vite, Nitro). It serves both frontend and API on port 3000.
Reactive Resume is a single-package full-stack TypeScript app (not a monorepo) built with TanStack Start (React 19, Vite, Nitro). It serves both frontend and API on port 3000.
This project uses [Vite+](https://vite.dev/blog/announcing-viteplus), a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. All modules should be imported from the `vite-plus` dependency (e.g., `import { defineConfig } from 'vite-plus'` or `import { expect, test, vi } from 'vite-plus/test'`).
### Infrastructure services
## Key Libraries
| Area | Library | Docs |
| -------------------- | ------------------------------------------------------------------------ | ---------------------------------- |
| Frontend framework | React | https://react.dev |
| Full-stack framework | TanStack Start | https://tanstack.com/start/latest |
| Router | TanStack React Router | https://tanstack.com/router/latest |
| Server state | TanStack React Query | https://tanstack.com/query/latest |
| Client state | Zustand (+ Zundo for undo/redo, Immer for immutable updates) | https://zustand.docs.pmnd.rs |
| Type-safe API | oRPC | https://orpc.unnoq.com |
| Database ORM | Drizzle ORM (PostgreSQL) | https://orm.drizzle.team |
| Authentication | Better Auth (+ Drizzle adapter, OAuth provider, API keys, 2FA, Passkeys) | https://www.better-auth.com |
| Styling | Tailwind CSS | https://tailwindcss.com |
| UI Components | shadcn/ui (built on Base UI) | https://ui.shadcn.com |
| Icons | Phosphor Icons | https://phosphoricons.com |
| Forms | React Hook Form (+ Zod resolvers) | https://react-hook-form.com |
| Rich text editor | Tiptap | https://tiptap.dev |
| Validation | Zod | https://zod.dev |
| AI | Vercel AI SDK (OpenAI, Anthropic, Google, Ollama providers) | https://ai-sdk.dev |
| MCP | Model Context Protocol SDK | https://modelcontextprotocol.io |
| i18n | Lingui | https://lingui.dev |
| Animations | Motion (Framer Motion) | https://motion.dev |
| PDF export | Puppeteer Core (via Browserless) | https://pptr.dev |
| Drag and drop | dnd-kit | https://dndkit.com |
| Server engine | Nitro | https://nitro.build |
| PWA | Vite PWA Plugin | https://vite-pwa-org.netlify.app |
| Unused deps | Knip | https://knip.dev |
## Project Structure
```
src/
components/ UI, resume, layout, animation, theme, locale components
routes/ File-based routing (TanStack React Router)
integrations/ Feature modules (auth, drizzle, orpc, ai, email, jobs, mcp, storage)
schema/ Zod schemas for resume data validation
utils/ Utility functions (locale, theme, env, resume processing)
dialogs/ Modal/dialog components
hooks/ Custom React hooks
styles/ CSS and Tailwind configuration
stores/ Zustand stores (resume, AI, dialog, command palette)
migrations/ Drizzle database migrations
locales/ Lingui i18n message catalogs (47+ locales)
```
### Key Config Files
- `vite.config.ts` — Vite + Nitro + TanStack Start + PWA + Tailwind + Lingui
- `drizzle.config.ts` — PostgreSQL dialect, schema at `./src/integrations/drizzle/schema.ts`
- `tsconfig.json` — ES2022, strict mode, path alias `@/*` → `./src/*`
- `lingui.config.ts` — i18n extraction and locale configuration
- `components.json` — shadcn CLI configuration
### API Architecture
- **oRPC API** (`/api/rpc/*`) — Type-safe RPC with routers for: `ai`, `auth`, `resume`, `storage`, `printer`, `jobs`, `statistics`, `flags`. Three procedure types: `publicProcedure`, `protectedProcedure`, `serverOnlyProcedure`.
- **Better Auth API** (`/api/auth/*`) — OAuth, session management, social provider callbacks.
- **MCP Server** (`/mcp/`) — Model Context Protocol with OAuth Bearer tokens and API key auth. Exposes resumes as resources and tools for resume CRUD.
## Infrastructure Services
Before running the dev server, Docker must be running with at least PostgreSQL. Start services via `compose.dev.yml`:
@@ -18,7 +77,7 @@ sudo docker compose -f compose.dev.yml up -d postgres browserless
- **PostgreSQL** (port 5432) — required. The app auto-runs Drizzle migrations on startup via a Nitro plugin.
- **Browserless** (port 4000) — required for PDF export. Maps container port 3000 to host port 4000.
### Environment variables
## Environment Variables
Copy `.env.example` to `.env` if not present. Key notes for local dev:
@@ -28,20 +87,47 @@ Copy `.env.example` to `.env` if not present. Key notes for local dev:
- `DATABASE_URL` — PostgreSQL connection using `postgres:postgres` credentials on localhost:5432.
- S3/Storage and SMTP vars can be left empty — the app falls back to local filesystem and console-logged emails.
### Common commands
## Common Commands
See `scripts` in `package.json`. Key ones:
`vp` is the global CLI for Vite+. Do not use pnpm/npm/yarn directly — Vite+ wraps the underlying package manager.
| Task | Command |
|---|---|
| Dev server | `pnpm dev` (port 3000) |
| Lint (Biome) | `pnpm lint` |
| Typecheck | `pnpm typecheck` |
| DB migrations | `pnpm db:generate` / `pnpm db:migrate` (auto-runs on dev start) |
| Task | Command |
| -------------------------- | --------------------------------------------------------------- |
| Install dependencies | `vp install` |
| Dev server (port 3000) | `vp dev` |
| Lint (Oxlint, type-aware) | `vp lint --type-aware` |
| Format (Oxfmt) | `vp fmt` |
| Check (lint + fmt + types) | `vp check` |
| Typecheck | `pnpm typecheck` (uses tsgo) |
| Run tests | `vp test` |
| DB migrations | `pnpm db:generate` / `pnpm db:migrate` (auto-runs on dev start) |
| DB studio | `pnpm db:studio` |
| i18n extraction | `pnpm lingui:extract` |
| Add a dependency | `vp add <package>` |
| Remove a dependency | `vp remove <package>` |
| One-off binary | `vp dlx <package>` |
| Build for production | `vp build` |
| Preview production build | `vp preview` |
| Start production server | `pnpm start` |
### Gotchas
## Vite+ Pitfalls
- **Do not use pnpm/npm/yarn directly** for package operations — use `vp add`, `vp remove`, `vp install`, etc.
- **Do not run `vp vitest` or `vp oxlint`** — they don't exist. Use `vp test` and `vp lint`.
- **Do not install Vitest, Oxlint, Oxfmt, or tsdown directly** — Vite+ bundles them.
- **Import from `vite-plus`**, not from `vite` or `vitest` directly (e.g., `import { defineConfig } from 'vite-plus'`).
- **Vite+ commands take precedence** over `package.json` scripts. If there's a naming conflict, use `vp run <script>`.
- **Use `vp dlx`** instead of `npx` or `pnpm dlx`.
- **Type-aware linting** works out of the box with `vp lint --type-aware` — no need to install `oxlint-tsgolint`.
## Gotchas
- The Docker daemon needs `fuse-overlayfs` storage driver and `iptables-legacy` in the cloud VM (nested container environment).
- `pnpm.onlyBuiltDependencies` in `package.json` controls which packages are allowed to run install scripts — no interactive `pnpm approve-builds` needed.
- Email verification is optional in dev — after signup, click "Continue" to skip.
- Vite 8 is beta (`^8.0.0-beta.15`); Nitro uses a nightly build. Occasional upstream issues may occur.
- Vite and Nitro use beta/nightly builds. Occasional upstream issues may occur.
## Review Checklist for Agents
- [ ] Run `vp install` after pulling remote changes and before getting started.
- [ ] Run `vp check` and `vp test` to validate changes.
+18 -18
View File
@@ -151,29 +151,29 @@ For detailed setup instructions, environment configuration, and self-hosting gui
## Tech Stack
| Category | Technology |
| ---------------- | ------------------------------------ |
| Framework | TanStack Start (React 19, Vite) |
| Runtime | Node.js |
| Language | TypeScript |
| Database | PostgreSQL with Drizzle ORM |
| API | ORPC (Type-safe RPC) |
| Auth | Better Auth |
| Styling | Tailwind CSS |
| UI Components | Radix UI |
| State Management | Zustand + TanStack Query |
| Category | Technology |
| ---------------- | ------------------------------- |
| Framework | TanStack Start (React 19, Vite) |
| Runtime | Node.js |
| Language | TypeScript |
| Database | PostgreSQL with Drizzle ORM |
| API | ORPC (Type-safe RPC) |
| Auth | Better Auth |
| Styling | Tailwind CSS |
| UI Components | Radix UI |
| State Management | Zustand + TanStack Query |
## Documentation
Comprehensive guides are available at [docs.rxresu.me](https://docs.rxresu.me):
| Guide | Description |
| --------------------------------------------------------------------------- | --------------------------------- |
| [Getting Started](https://docs.rxresu.me/getting-started) | First-time setup and basic usage |
| [Self-Hosting](https://docs.rxresu.me/self-hosting/docker) | Deploy on your own server |
| [Development Setup](https://docs.rxresu.me/contributing/development) | Local development environment |
| [Project Architecture](https://docs.rxresu.me/contributing/architecture) | Codebase structure and patterns |
| [Exporting Your Resume](https://docs.rxresu.me/guides/exporting-your-resume)| PDF and JSON export options |
| Guide | Description |
| ---------------------------------------------------------------------------- | -------------------------------- |
| [Getting Started](https://docs.rxresu.me/getting-started) | First-time setup and basic usage |
| [Self-Hosting](https://docs.rxresu.me/self-hosting/docker) | Deploy on your own server |
| [Development Setup](https://docs.rxresu.me/contributing/development) | Local development environment |
| [Project Architecture](https://docs.rxresu.me/contributing/architecture) | Codebase structure and patterns |
| [Exporting Your Resume](https://docs.rxresu.me/guides/exporting-your-resume) | PDF and JSON export options |
## Self-Hosting
-69
View File
@@ -1,69 +0,0 @@
{
"$schema": "node_modules/@biomejs/biome/configuration_schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true,
"defaultBranch": "main"
},
"files": {
"ignoreUnknown": true,
"includes": [
"**",
"!**/docs/spec.json",
"!**/webfontlist.json",
"!**/schema/schema.json",
"!**/src/routeTree.gen.ts"
]
},
"formatter": {
"lineWidth": 120,
"indentStyle": "tab"
},
"assist": {
"actions": {
"recommended": true,
"source": {
"organizeImports": "on"
}
}
},
"linter": {
"rules": {
"a11y": "off",
"recommended": true,
"suspicious": {
"noArrayIndexKey": "off"
},
"correctness": {
"noUnknownTypeSelector": "off",
"useExhaustiveDependencies": "off",
"noUnusedImports": {
"fix": "safe",
"level": "error",
"options": {}
}
},
"nursery": {
"useSortedClasses": {
"fix": "safe",
"level": "warn",
"options": {
"functions": ["cn", "cva"],
"attributes": ["class", "className"]
}
}
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "double"
}
},
"css": {
"parser": {
"tailwindDirectives": true
}
}
}
+24 -24
View File
@@ -1,26 +1,26 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "base-vega",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/styles.css",
"baseColor": "zinc",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "phosphor",
"menuColor": "default",
"menuAccent": "bold",
"aliases": {
"components": "@/components",
"utils": "@/utils/style",
"ui": "@/components/ui",
"lib": "@/utils",
"hooks": "@/hooks"
},
"registries": {
"@animate-ui": "https://animate-ui.com/r/{name}.json"
}
"$schema": "https://ui.shadcn.com/schema.json",
"style": "base-vega",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/styles.css",
"baseColor": "zinc",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "phosphor",
"menuColor": "default",
"menuAccent": "bold",
"aliases": {
"components": "@/components",
"utils": "@/utils/style",
"ui": "@/components/ui",
"lib": "@/utils",
"hooks": "@/hooks"
},
"registries": {
"@animate-ui": "https://animate-ui.com/r/{name}.json"
}
}
+1 -2
View File
@@ -45,8 +45,7 @@ services:
- CONCURRENT=5
- TOKEN=1234567890
healthcheck:
test:
["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
test: ["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
interval: 10s
timeout: 5s
retries: 10
+1 -2
View File
@@ -26,8 +26,7 @@ services:
- CONCURRENT=5
- TOKEN=1234567890
healthcheck:
test:
["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
test: ["CMD", "curl", "-f", "http://localhost:3000/pressure?token=1234567890"]
interval: 10s
timeout: 5s
retries: 10
+195 -121
View File
@@ -4,164 +4,238 @@ description: "List of all notable changes and updates to Reactive Resume"
rss: true
---
<Update label="v5.0.14" description="24th March 2026">
## Features
- Implemented OAuth 2.1 support for MCP authentication, thanks to @5queezer. [#2829](https://github.com/amruthpillai/reactive-resume/pull/2829)
- Migrated from using Biome to Oxlint/Oxfmt for linting and formatting, with a new autofix CI workflow. [#2822](https://github.com/amruthpillai/reactive-resume/pull/2822)
## Fixes
- Fixed an issue with the slider component for "Sidebar Width" in the resume builder. [#2830](https://github.com/amruthpillai/reactive-resume/issues/2830)
</Update>
<Update label="v5.0.13" description="19th March 2026">
## Features & Improvements
- Added **Job Listings with AI-Powered Resume Tailoring**, a major new feature that integrates job search (via JSearch API) directly into the dashboard with AI-driven resume tailoring to match job descriptions. [#2788](https://github.com/amruthpillai/reactive-resume/pull/2788)
- Search for jobs with filters for location (city, state, country), employment type, remote status, and more.
- View detailed job listings in a slide-out panel with apply links and tags.
- Tailor your resume to a specific job posting using AI — rewrites skills, experience, and references for optimal fit.
- Per-user API quota management with usage tracking in settings.
- Pagination with 30 results per page.
- Added **DOCX resume export** — generate and download tailored resumes as Word documents. [#2788](https://github.com/amruthpillai/reactive-resume/pull/2788)
- Migrated the entire project toolchain to **Vite+** (`vp` CLI), unifying Vite, Vitest, Oxlint, and Oxfmt under a single developer experience.
- Migrated from **Biome to Oxlint/Oxfmt** for linting and formatting, with a new autofix CI workflow. [#2822](https://github.com/amruthpillai/reactive-resume/pull/2822)
- Added **Slovenian** locale support.
- Added a new `Progress` UI component.
## Fixes
- Fixed type issues in auth client and configuration.
- Used RTL-friendly CSS classes across the app for improved bidirectional layout support.
- Removed dead code and unused imports.
- Updated route tree generation and added `routeTree.gen.ts` to `.gitignore`.
- Improved animation performance with `willChange` styles on animation components.
## Maintenance & Dependencies
- Updated dependencies across the board, including `@typescript/native-preview`, `vite-plus`, and others.
- Added database migrations for missing indexes.
- Synced translations from Crowdin. [#2820](https://github.com/amruthpillai/reactive-resume/pull/2820), [#2824](https://github.com/amruthpillai/reactive-resume/pull/2824)
- Updated French translation for 'Volunteer' to 'Bénévolat'. [#2823](https://github.com/amruthpillai/reactive-resume/pull/2823)
- Multiple translation and language updates across all locales.
## New Contributors
- @lukadfagundes
- @Hephaisto-dev
</Update>
<Update label="v5.0.12" description="17th March 2026">
- **Features & Improvements**
- Refactor the component system to `@base-ui/react` across the app, replacing older primitive wrappers and standardizing interactive UI behavior (dialogs, menus, accordions, comboboxes, switches, and more).
- Improve auth infrastructure with Better Auth dashboard/sentinel integration and expanded IP/header handling for proxied deployments.
- Add a dedicated `src/server.ts` server entry using `FastResponse` to improve runtime compatibility for server responses.
## Features & Improvements
- Refactored the component system to `@base-ui/react` across the app for standardized UI behavior (dialogs, menus, accordions, comboboxes, switches, etc.).
- Improved auth infrastructure with Better Auth dashboard/sentinel integration and expanded IP/header handling for proxied deployments.
- Added a dedicated `src/server.ts` server entry using `FastResponse` for better runtime compatibility.
- Sidebar button list now scrolls internally on overflow.
- **Fixes**
- Normalize printer endpoint to use IP address when using chromedp, fixing issues with proxied deployments.
- Switch OpenAI integration to the `chat/completions` flow for resume import and AI features, reducing provider compatibility issues.
- Improve AI PDF/DOCX resume parsing by sending files directly to models (multimodal input), removing fragile local text extraction.
- Harden AI resume import normalization: merge section defaults, enforce required fields, and auto-generate missing IDs/flags so parsed resumes validate reliably.
- Fix regressions introduced during the UI migration, including accordion behavior and button styling/interaction edge cases.
## Fixes
- Printer endpoint now resolves to IP when using chromedp, improving compatibility with proxied deployments.
- Switched OpenAI integration to `chat/completions` for resume import and AI features.
- AI PDF/DOCX resume parsing is now more robust via direct file send (multimodal input).
- Resume import normalization hardened: section defaults merged, required fields enforced, missing IDs/flags autogenerated.
- Fixed UI migration regressions (accordion behavior, button interaction, right sidebar scrollbar).
- Fixed multi-page PDF crashes and Gemini API ingestion errors.
- Fixed role title styling, role spacing, and issues with skills item rendering and template headings.
- **Other**
- Update dependencies and lockfile.
- Sync translation strings across locales.
## Maintenance & Dependencies
- Updated dependencies and lockfile.
- Synced translation strings across locales, including multiple contributions from Crowdin.
- General dependency and code style improvements, plus removal of redundant indexes and plugins.
## New Contributors
- @yang-summer
- @FrancocDev
- @obitton
- @jondycz
</Update>
<Update label="v5.0.10" description="24th February 2026">
- **Fixes**
- Show section titles for summary-type custom sections in the resume builder. [#2744](https://github.com/amruthpillai/reactive-resume/pull/2744)
- Prevent browser password managers and Edge autofill/save prompts from appearing on AI settings API key fields. [#2719](https://github.com/amruthpillai/reactive-resume/pull/2719)
- Replace deprecated Tailwind CSS classes: use `inset-s-*`/`inset-e-*` instead of `start-*`/`end-*`.
- Fix PDF downloader to work correctly in offline mode. [#2743](https://github.com/amruthpillai/reactive-resume/pull/2743)
- Make bold formatting visible for `<strong>` in the resume rich text editor (uses plain `font-weight: bold` fallback if the CSS variable is unset). Fixes [#2730](https://github.com/amruthpillai/reactive-resume/issues/2730)
- Prevent credentials sign-in from dropping `session_token` Set-Cookie, improves login reliability. [#2718](https://github.com/amruthpillai/reactive-resume/pull/2718)
- Remove redundant `resume-` prefix from download filename; add spacing between pages in shared view. [#2709](https://github.com/amruthpillai/reactive-resume/pull/2709)
- Normalize autocomplete tokens for login and register forms. [#2714](https://github.com/amruthpillai/reactive-resume/pull/2714)
- Fix improper chips reordering and update dependency/translations. [#2711](https://github.com/amruthpillai/reactive-resume/issues/2711)
- Fix issue with clipping of heading in Lapras resume template.
- Remove error-causing plugins in oRPC integration.
- Remove duplicate database indexes; add index for `created_at` on user and resume tables.
## Fixes
- Show section titles for summary-type custom sections in the resume builder. [#2744](https://github.com/amruthpillai/reactive-resume/pull/2744)
- Prevent browser password managers and Edge autofill/save prompts from appearing on AI settings API key fields. [#2719](https://github.com/amruthpillai/reactive-resume/pull/2719)
- Replace deprecated Tailwind CSS classes: use `inset-s-*`/`inset-e-*` instead of `start-*`/`end-*`.
- Fix PDF downloader to work correctly in offline mode. [#2743](https://github.com/amruthpillai/reactive-resume/pull/2743)
- Make bold formatting visible for `<strong>` in the resume rich text editor (uses plain `font-weight: bold` fallback if the CSS variable is unset). Fixes [#2730](https://github.com/amruthpillai/reactive-resume/issues/2730)
- Prevent credentials sign-in from dropping `session_token` Set-Cookie, improves login reliability. [#2718](https://github.com/amruthpillai/reactive-resume/pull/2718)
- Remove redundant `resume-` prefix from download filename; add spacing between pages in shared view. [#2709](https://github.com/amruthpillai/reactive-resume/pull/2709)
- Normalize autocomplete tokens for login and register forms. [#2714](https://github.com/amruthpillai/reactive-resume/pull/2714)
- Fix improper chips reordering and update dependency/translations. [#2711](https://github.com/amruthpillai/reactive-resume/issues/2711)
- Fix clipping of heading in Lapras resume template.
- Remove error-causing plugins in oRPC integration.
- Remove duplicate database indexes; add index for `created_at` on user and resume tables.
- **Features & Improvements**
- Add new feature flag: `FLAG_DISABLE_IMAGE_PROCESSING` (allows disabling of image processing site-wide).
- Update Discord invite link in the app and documentation.
- Add comprehensive codebase and architecture documentation in `CLAUDE.md`.
- Sync latest translations from Crowdin (updated and added multiple languages).
## Features & Improvements
- Added feature flag: `FLAG_DISABLE_IMAGE_PROCESSING` (allows disabling image processing site-wide).
- Updated Discord invite link in the app and documentation.
- Added comprehensive codebase and architecture documentation in `CLAUDE.md`.
- Synced latest translations from Crowdin (multiple language updates and additions).
- **Other**
- Refactor: rename auth utility from `originWith` to `withHostname`, preserve localhost/127.0.0.1 sibling trust.
- General dependency updates and code style improvements.
- Documentation and README updates.
## Maintenance & Other
- Refactored auth utility from `originWith` to `withHostname` to preserve localhost/127.0.0.1 sibling trust.
- Updated dependencies and improved code style.
- Updated documentation and README files.
</Update>
<Update label="v5.0.9" description="9th February 2026">
- Add Computer Modern web fonts to the font selector, allowing the user to choose from a variety of "Computer Modern" (LaTeX) fonts.
- This lets you create a resume that looks just like a LaTeX document, with the same fonts and styles.
- Update dependencies to the latest versions.
## Features & Improvements
- Added Computer Modern web fonts to the font selector, allowing users to choose from LaTeX-style "Computer Modern" fonts for a classic scientific look.
- Updated dependencies to the latest versions.
</Update>
<Update label="v5.0.8" description="9th February 2026">
- Remove Passkey support from the authentication system, as it was causing issues with the authentication provider.
- Update dependencies to the latest versions.
## Fixes
- Removed Passkey support from the authentication system due to provider compatibility issues.
- Updated dependencies to the latest versions.
</Update>
<Update label="v5.0.7" description="9th February 2026">
- Introduce a new **MCP (Model Context Protocol) server** that lets you manage and edit resumes from any MCP-compatible AI tool — Claude Desktop, Cursor, Codex, and more. Supports listing, reading, creating, deleting, locking/unlocking, and patching resumes via natural language. [(guide)](/guides/using-the-mcp-server)
- Add an **AI Chat** panel to the resume builder, allowing you to modify your resume through conversational AI directly within the editor. The chat uses tool-calling to apply JSON Patch operations to your resume in real-time, with visual feedback for each change.
- Add a system prompt and `patch_resume` tool for the AI chat, enabling structured, minimal-diff resume edits following RFC 6902 JSON Patch operations.
- Chat history is now persisted per resume in localStorage, so conversations are preserved across sessions.
- Fix rendering issues in the Lapras and Onyx resume templates.
- Improvements to the Combobox and ScrollArea UI components.
- Fix an issue with skills item rendering in the shared resume components.
- Update authentication configuration and auth route handling.
- Update the JSON Schema to reflect the latest resume data model.
- Update dependencies to the latest versions.
## Features & Improvements
- Introduced a new **MCP (Model Context Protocol) server** for managing and editing resumes from MCP-compatible AI tools (Claude Desktop, Cursor, Codex, and others). Supports listing, reading, creating, deleting, locking/unlocking, and patching resumes via natural language. [(guide)](/guides/using-the-mcp-server)
- Added an **AI Chat** panel to the resume builder, allowing conversational resume modifications through tool-calling (JSON Patch operations applied to the resume in real time with visual feedback).
- Added a system prompt and `patch_resume` tool for structured, minimal-diff resume edits via RFC 6902 JSON Patch.
- Chat history is now persisted per resume in localStorage.
## Fixes
- Fixed rendering issues in the Lapras and Onyx resume templates.
- Improved Combobox and ScrollArea UI components.
- Fixed skills item rendering in shared resume components.
- Updated authentication configuration and route handling.
- Updated JSON Schema to match the latest resume data model.
## Maintenance
- Updated dependencies to latest versions.
</Update>
<Update label="v5.0.6" description="8th February 2026">
- Implement Atomic Resume Patching API for fine-grained resume updates, allowing partial, atomic updates to resumes via a new PATCH endpoint. [#2692](https://github.com/amruthpillai/reactive-resume/pull/2692)
- The API endpoint `PUT /resume/{id}` now returns the updated resume object instead of void. Also, resume routing/services now use explicit DTOs for input and output schemas. [#2688](https://github.com/amruthpillai/reactive-resume/pull/2688)
- Add error logging for API server errors (server-side only) to improve debugging and reliability.
- Refactor and clean up imports/exports for clarity and maintainability.
- Added `.devcontainer` configuration for improved contributor development environment.
- Update dependencies to the latest versions.
- Add build status badge and documentation link to README.
- Sync latest translations from Crowdin (notably: French, other languages).
- Other minor fixes and improvements.
## Features & Improvements
- Implemented Atomic Resume Patching API for fine-grained, partial updates to resumes via a new PATCH endpoint. [#2692](https://github.com/amruthpillai/reactive-resume/pull/2692)
- API endpoint `PUT /resume/{id}` now returns the updated resume object rather than void, with explicit DTOs for input/output. [#2688](https://github.com/amruthpillai/reactive-resume/pull/2688)
- Added error logging for API server errors (server-side only) to improve debugging and reliability.
- Refactored and cleaned up imports/exports for clarity and maintainability.
- Added `.devcontainer` configuration for improved contributor development environment.
- Added build status badge and documentation link to README.
## Fixes
- General bug fixes and minor improvements.
- Synced latest translations from Crowdin (notably: French, other languages).
- Updated dependencies to latest versions.
</Update>
<Update label="v5.0.5" description="31st January 2026">
- Implement Cover Letter functionality in the resume builder, allowing the user to create cover letters as custom sections. [(link)](/guides/adding-a-cover-letter)
- Implement full-screen mode for the rich text editor in the resume builder, allowing the user to write in a more focused environment.
- Implement a new custom section type: `summary`, which allows the user to add another "summary" like section to the resume.
- Implement a `useFormBlocker` hook to prevent the user from closing a dialog while the form has unsaved changes.
- Fix an issue where keywords spacing was not consistent in the interests section. [#2631](https://github.com/amruthpillai/reactive-resume/pull/2631)
- Fix an issue where the AI connection test was not working correctly, also return appropriate error messages for AI provider issues.
## Features & Improvements
- Implemented Cover Letter functionality as a custom section in the resume builder. [(link)](/guides/adding-a-cover-letter)
- Added full-screen mode to the rich text editor for distraction-free writing.
- Introduced a new custom section type: `summary`, enabling users to add extra summary sections.
- Added `useFormBlocker` hook to prevent dialogs from being closed with unsaved form changes.
## Fixes
- Fixed keyword spacing issue in the interests section. [#2631](https://github.com/amruthpillai/reactive-resume/pull/2631)
- Fixed AI connection test and improved error reporting for AI provider issues.
</Update>
<Update label="v5.0.4" description="28th January 2026">
- Bring back Undo/Redo functionality in the resume builder for improved editing experience.
- Arrange the sidebar builder dynamically based on the section type in each template. [#2564](https://github.com/amruthpillai/reactive-resume/pull/2603)
- Remove extra spacing when proficiency is empty. [#2607](https://github.com/amruthpillai/reactive-resume/pull/2626)
- Fix rendering in Pikachu template: conditionally render header and page picture using `isFirstPage`, and respect the `fullWidth` property for page layout.
- Fixes to templates to improve layout and rendering consistency.
- Fix GitHub OAuth login for users migrated from previous versions.
- Improve communication with the printer service and reduce resource usage for better PDF generation reliability.
- Update and sync translations from Crowdin (Afrikaans, Persian, Portuguese/Brazilian, and other languages).
- Update translation sources and configuration.
- Fix "empty" Git merge remnants in codebase.
- Update package dependencies and fix self-hosting guide links in README.
- Remove dead code, update screenshots, and add PWA (Progressive Web App) support.
- Update links to PDF example files in documentation.
- Other bug fixes and minor improvements (#2542, #2573, #2598).
## Features & Improvements
- Brought back Undo/Redo functionality in the resume builder for an improved editing experience.
- Sidebar builder now arranges dynamically based on the section type in each template. [#2564](https://github.com/amruthpillai/reactive-resume/pull/2603)
- Added PWA (Progressive Web App) support and updated PDF example file links in documentation.
## Fixes
- Removed extra spacing when proficiency is empty. [#2607](https://github.com/amruthpillai/reactive-resume/pull/2626)
- Fixed Pikachu template: header/page picture rendering, and respect for `fullWidth` property.
- General template improvements for layout and rendering consistency.
- Fixed GitHub OAuth login for users migrated from previous versions.
- Improved printer service communication and reduced resource usage for more reliable PDF generation.
- Fixed "empty" Git merge remnants in codebase.
## Maintenance
- Synced translations from Crowdin (Afrikaans, Persian, Portuguese/Brazilian, others).
- Updated translation sources and configuration.
- Updated package dependencies and fixed self-hosting guide links in README.
- Removed dead code and updated screenshots.
- Other bug fixes and minor improvements (#2542, #2573, #2598).
</Update>
<Update label="v5.0.3" description="25th January 2026">
- Implement the ability to print Free-Form PDFs which do not have a fixed page height, allowing the user to fit the content on a page as they see fit. [(link)](/guides/selecting-page-format)
- Allow the user to override the default endpoint for all AI providers, not just Ollama. Also display the default endpoint for each provider in the AI settings page.
- Updated the chip input component, to allow the user to add, edit, remove or reorder keywords for skills and other sections.
- Improved RTL support across the app, thanks to @obreo for the contribution. [(link)](https://github.com/amruthpillai/reactive-resume/pull/2583)
- Updates to the translation configuration to remove line numbers from the translation files, as this was causing unnecessary diffs.
- Updated the video on the homepage to be lighter and faster to load, while still maintaining the same quality.
- Increased the screenshot TTL for resumes, to avoid regenerating screenshots unnecessarily unless the resume has been updated recently (in the last hour).
- Update dependencies and translations to the latest versions.
## Features & Improvements
- Added support for printing Free-Form PDFs (no fixed page height), allowing for custom-fit page content. [(link)](/guides/selecting-page-format)
- Allow overriding the default endpoint for all AI providers, not just Ollama; default endpoint now visible in AI settings.
- Updated the chip input component: supports adding, editing, removing, and reordering keywords for skills and other sections.
- Improved RTL support across the app, thanks to @obreo. [(link)](https://github.com/amruthpillai/reactive-resume/pull/2583)
## Fixes
- Updated translation configuration to remove line numbers, reducing unnecessary diffs.
- Homepage video optimized for faster loading without quality loss.
- Increased screenshot TTL for resumes to reduce unnecessary regenerations.
- Updated dependencies and translations to latest versions.
</Update>
<Update label="v5.0.2" description="24th January 2026">
- Added an agent skill `skills/resume-builder` for agentic AI assistants to build resumes for Reactive Resume through conversational AI.
- Added a new guide on how to fit content on a page, to avoid issues when exporting to PDF. [(link)](/guides/fitting-content-on-a-page)
- Display an alert when the content is too tall for a page, to help the user fit the content on a page.
- Fix an issue with the Ditgar template, where the page was not respecting the `fullWidth` setting.
- Updated the JSON Schema to conform to a proper format.
- Updated the Discord Server invite link to a new one.
- Updated dependencies to the latest versions.
## Features & Improvements
- Added an agent skill `skills/resume-builder` for agentic AI assistants, enabling resume construction through conversational AI.
- Added a guide for how to fit content on a page when exporting to PDF. [(link)](/guides/fitting-content-on-a-page)
- Alert user when content is too tall for a page for easier export troubleshooting.
## Fixes
- Ditgar template now respects `fullWidth` setting.
- Updated JSON Schema for proper format.
- Updated Discord server invite link.
- Updated dependencies to latest versions.
</Update>
<Update label="v5.0.1" description="23th January 2026">
- Updated translations from Crowdin.
- Added a Community Spotlight section to the documentation.
- Remove `-r require-metadata` from the Dockerfile as it was not needed.
- Fixed inconsistencies in the docker compose examples in the documentation.
- Fixed an issue with usernames not allowing hyphens in them.
- Fixed issues with the printer service, when using the `getResumeScreenshot` or `printResumeAsPDF` endpoints.
## Maintenance & Fixes
- Updated translations from Crowdin.
- Added Community Spotlight section to the documentation.
- Removed `-r require-metadata` from the Dockerfile (was not needed).
- Fixed inconsistencies in Docker compose documentation examples.
- Fixed username validation to allow hyphens.
- Fixed issues with the printer service when using `getResumeScreenshot` or `printResumeAsPDF` endpoints.
</Update>
<Update label="v5.0.0" description="22th January 2026">
This has been a major overhaul from the previous version of Reactive Resume. The app has been completely redesigned and rebuilt from scratch, to be more intuitive and user-friendly.
This release is a major overhaul of Reactive Resume. The app has been completely redesigned and rebuilt from scratch for a more intuitive, user-friendly experience.
**Here are some of the key changes from the previous version:**
- 2 new templates: _Ditgar_ and _Lapras_
- Authentication via Passkeys
- New user interface and refreshed design
- API Access and Reference Documentation
- AI Integration with OpenAI, Google, Anthropic, and Ollama
- A better font selector, with real-time preview of the font
- More comprehensive documentation, with guides for specific features
- An improved templates gallery, with clear overview of each template
- Ability to import resumes from PDF or DOCX (requires AI Integration)
- Reliable server infrastructure, with improved performance and scalability
- Ability to move items between sections and pages, for better organization
- A more powerful CSS Editor, with better autocomplete and syntax highlighting
- Extended Custom Sections to include a type, for better customization and organization
- Ability to choose the kind of icons to display for level indicators (stars, circles, custom icons, etc.)
- Ability to resize how wide/narrow the sidebar should be on the resume, or convert a page to be full width
**Highlights:**
- 2 new resume templates: _Ditgar_ and _Lapras_
- Passkeys for authentication
- Entirely new user interface and refreshed design
- API access and reference docs
- AI Integration with OpenAI, Google, Anthropic, and Ollama
- Improved font selector with real-time preview
- Expanded and improved documentation, with more how-to guides
- Redesigned template gallery with detailed views
- Resume import from PDF/DOCX (requires AI Integration)
- Stronger infrastructure for better reliability and scalability
- Drag-and-drop for moving items between sections and pages
- Powerful new CSS Editor with autocompletion and highlighting
- Custom sections now support typed extension for finer control
- Icon style selector for indicators (stars, circles, custom, etc.)
- Sidebar width adjustment and full-width page support
There's still a lot more that I'm forgetting, but I'm sure you'll find out soon enough as you explore the new version. I hope you enjoy building your resume now, better than ever. If you have any feedback, please feel free to [contact me](https://amruthpillai.com/#contact) or [open an issue](https://github.com/amruthpillai/reactive-resume/issues) on GitHub.
</Update>
And much more! Explore the new version and share your feedback via [contact](https://amruthpillai.com/#contact) or [GitHub issues](https://github.com/amruthpillai/reactive-resume/issues).
</Update>
+14 -15
View File
@@ -4,7 +4,9 @@ description: "A showcase of articles, videos, and social media posts from the Re
---
<Note>
Have you created something that makes use of Reactive Resume, or spread the word about it in your own way? I'd love to feature it here! Send me an email at [hello@amruthpillai.com](mailto:hello@amruthpillai.com) and I'll make sure to add it to this page.
Have you created something that makes use of Reactive Resume, or spread the word about it in your own way? I'd love to
feature it here! Send me an email at [hello@amruthpillai.com](mailto:hello@amruthpillai.com) and I'll make sure to add
it to this page.
</Note>
---
@@ -16,16 +18,15 @@ A collection of blog posts and articles written by the community about Reactive
<CardGroup cols={2}>
{/* Add article cards here */}
{/* Example:
{/\* Example:
<Card title="Article Title" icon="newspaper" href="https://example.com/article">
A brief description of the article.
</Card>
*/}
</CardGroup>
<Info>
No articles have been featured yet. Be the first to contribute!
</Info>
<Info>No articles have been featured yet. Be the first to contribute!</Info>
---
@@ -36,16 +37,15 @@ Video tutorials, reviews, and walkthroughs created by the community.
<CardGroup cols={2}>
{/* Add video cards here */}
{/* Example:
{/\* Example:
<Card title="Video Title" icon="youtube" href="https://youtube.com/watch?v=...">
A brief description of the video.
</Card>
*/}
</CardGroup>
<Info>
No videos have been featured yet. Be the first to contribute!
</Info>
<Info>No videos have been featured yet. Be the first to contribute!</Info>
---
@@ -54,15 +54,14 @@ No videos have been featured yet. Be the first to contribute!
Posts and threads from social media platforms sharing experiences with Reactive Resume.
<CardGroup cols={2}>
{/* Add social media cards here */}
{/* Example:
{/* Add social media cards here */}
{/* Example:
<Card title="Post Title" icon="twitter" href="https://twitter.com/...">
A brief description of the post.
</Card>
*/}
</CardGroup>
<Info>
No social media posts have been featured yet. Be the first to contribute!
</Info>
<Info>No social media posts have been featured yet. Be the first to contribute!</Info>
+101 -159
View File
@@ -13,16 +13,12 @@ Reactive Resume is built with a modern, type-safe stack:
<CardGroup cols={2}>
<Card title="Frontend" icon="browser">
- **React 19** with TanStack Start
- **TypeScript** for type safety
- **Tailwind CSS** for styling
- **Radix UI** for accessible components
- **React 19** with TanStack Start - **TypeScript** for type safety - **Tailwind CSS** for styling - **Radix UI**
for accessible components
</Card>
<Card title="Backend" icon="server">
- **ORPC** for type-safe RPC
- **Drizzle ORM** with PostgreSQL
- **Better Auth** for authentication
- **Sharp** for image processing
- **ORPC** for type-safe RPC - **Drizzle ORM** with PostgreSQL - **Better Auth** for authentication - **Sharp** for
image processing
</Card>
</CardGroup>
@@ -70,89 +66,61 @@ flowchart TD
### Root Level
| Directory | Purpose |
|-----------|---------|
| `src/` | Main application source code |
| `public/` | Static assets served directly |
| `locales/` | Translation files (.po format) |
| `migrations/` | Database migration files |
| `docs/` | Mintlify documentation |
| `data/` | Local data storage (fonts, uploads) |
| `scripts/` | Utility scripts |
| Directory | Purpose |
| ------------- | ----------------------------------- |
| `src/` | Main application source code |
| `public/` | Static assets served directly |
| `locales/` | Translation files (.po format) |
| `migrations/` | Database migration files |
| `docs/` | Mintlify documentation |
| `data/` | Local data storage (fonts, uploads) |
| `scripts/` | Utility scripts |
### Source Code (`src/`)
<AccordionGroup>
<Accordion title="components/" icon="cube">
Reusable React components organized by category:
- **`ui/`** — Base UI components (Button, Card, Dialog, etc.)
- **`resume/`** — Resume-specific components (sections, templates)
- **`input/`** — Form input components (ColorPicker, RichInput)
- **`layout/`** — Layout components (Sidebar, LoadingScreen)
- **`animation/`** — Animation components (Spotlight, TextMask)
- **`theme/`** — Theme management components
- **`typography/`** — Font management components
</Accordion>
<Accordion title="routes/" icon="route">
File-based routing using TanStack Router:
- **`__root.tsx`** — Root layout with providers
- **`_home/`** — Public home page routes
- **`auth/`** — Authentication routes (login, register, etc.)
- **`dashboard/`** — User dashboard routes
- **`builder/`** — Resume builder routes (the main editor)
- **`printer/`** — PDF printing route
- **`api/`** — API routes
</Accordion>
<Accordion title="integrations/" icon="plug">
Third-party service integrations:
- **`auth/`** — Better Auth client configuration
- **`drizzle/`** — Database schema and utilities
- **`orpc/`** — API router, client, and services
- **`ai/`** — AI service integrations
- **`import/`** — Resume import utilities
</Accordion>
<Accordion title="dialogs/" icon="window-maximize">
Modal dialog components:
- **`auth/`** — Authentication dialogs
- **`resume/`** — Resume management dialogs
- **`api-key/`** — API key management dialogs
- **`manager.tsx`** — Dialog manager component
- **`store.ts`** — Dialog state management (Zustand)
</Accordion>
<Accordion title="schema/" icon="file-code">
Zod schemas for validation:
- **`resume/`** — Resume data schemas
- **`icons.ts`** — Icon definitions
- **`templates.ts`** — Template definitions
</Accordion>
<Accordion title="hooks/" icon="hook">
Custom React hooks:
- `use-confirm.tsx` — Confirmation dialog hook
- `use-prompt.tsx` — Prompt dialog hook
- `use-mobile.tsx` — Mobile detection hook
- `use-safe-context.tsx` — Safe context consumption
</Accordion>
<Accordion title="utils/" icon="wrench">
Utility functions:
- `env.ts` — Environment variable validation
- `locale.ts` — Locale utilities
- `theme.ts` — Theme utilities
- `string.ts` — String manipulation
- `file.ts` — File handling utilities
</Accordion>
<Accordion title="components/" icon="cube">
Reusable React components organized by category: - **`ui/`** — Base UI components (Button, Card, Dialog, etc.) -
**`resume/`** — Resume-specific components (sections, templates) - **`input/`** — Form input components
(ColorPicker, RichInput) - **`layout/`** — Layout components (Sidebar, LoadingScreen) - **`animation/`** — Animation
components (Spotlight, TextMask) - **`theme/`** — Theme management components - **`typography/`** — Font management
components
</Accordion>
<Accordion title="routes/" icon="route">
File-based routing using TanStack Router: - **`__root.tsx`** — Root layout with providers - **`_home/`** — Public
home page routes - **`auth/`** — Authentication routes (login, register, etc.) - **`dashboard/`** — User dashboard
routes - **`builder/`** — Resume builder routes (the main editor) - **`printer/`** — PDF printing route - **`api/`**
— API routes
</Accordion>
<Accordion title="integrations/" icon="plug">
Third-party service integrations: - **`auth/`** — Better Auth client configuration - **`drizzle/`** — Database
schema and utilities - **`orpc/`** — API router, client, and services - **`ai/`** — AI service integrations -
**`import/`** — Resume import utilities
</Accordion>
<Accordion title="dialogs/" icon="window-maximize">
Modal dialog components: - **`auth/`** — Authentication dialogs - **`resume/`** — Resume management dialogs -
**`api-key/`** — API key management dialogs - **`manager.tsx`** — Dialog manager component - **`store.ts`** — Dialog
state management (Zustand)
</Accordion>
<Accordion title="schema/" icon="file-code">
Zod schemas for validation: - **`resume/`** — Resume data schemas - **`icons.ts`** — Icon definitions -
**`templates.ts`** — Template definitions
</Accordion>
<Accordion title="hooks/" icon="hook">
Custom React hooks: - `use-confirm.tsx` — Confirmation dialog hook - `use-prompt.tsx` — Prompt dialog hook -
`use-mobile.tsx` — Mobile detection hook - `use-safe-context.tsx` — Safe context consumption
</Accordion>
<Accordion title="utils/" icon="wrench">
Utility functions: - `env.ts` — Environment variable validation - `locale.ts` — Locale utilities - `theme.ts` —
Theme utilities - `string.ts` — String manipulation - `file.ts` — File handling utilities
</Accordion>
</AccordionGroup>
---
@@ -163,16 +131,14 @@ flowchart TD
Routes are automatically generated from the file structure in `src/routes/`. TanStack Router conventions:
| Pattern | Description | Example |
|---------|-------------|---------|
| `index.tsx` | Index route | `/dashboard` |
| `$param.tsx` | Dynamic parameter | `/builder/$resumeId` |
| `_layout/` | Layout group (prefix) | `_home/` |
| `__root.tsx` | Root layout | Wraps all routes |
| Pattern | Description | Example |
| ------------ | --------------------- | -------------------- |
| `index.tsx` | Index route | `/dashboard` |
| `$param.tsx` | Dynamic parameter | `/builder/$resumeId` |
| `_layout/` | Layout group (prefix) | `_home/` |
| `__root.tsx` | Root layout | Wraps all routes |
<Warning>
Never edit `src/routeTree.gen.ts` manually — it's auto-generated when you run the dev server.
</Warning>
<Warning>Never edit `src/routeTree.gen.ts` manually — it's auto-generated when you run the dev server.</Warning>
### API Layer (ORPC)
@@ -203,11 +169,11 @@ const { data } = useQuery(orpc.resume.findMany.queryOptions());
Reactive Resume uses a hybrid approach:
| Type | Tool | Use Case |
|------|------|----------|
| Server State | TanStack Query | API data, caching, sync |
| Client State | Zustand | UI state, dialogs, preferences |
| Form State | React Hook Form | Form inputs and validation |
| Type | Tool | Use Case |
| ------------ | --------------- | ------------------------------ |
| Server State | TanStack Query | API data, caching, sync |
| Client State | Zustand | UI state, dialogs, preferences |
| Form State | React Hook Form | Form inputs and validation |
### Database Schema
@@ -280,11 +246,9 @@ import { z } from "zod";
import { publicProcedure, router } from "../server";
export const myRouter = router({
hello: publicProcedure
.input(z.object({ name: z.string() }))
.handler(async ({ input }) => {
return { message: `Hello, ${input.name}!` };
}),
hello: publicProcedure.input(z.object({ name: z.string() })).handler(async ({ input }) => {
return { message: `Hello, ${input.name}!` };
}),
});
```
@@ -300,81 +264,59 @@ import { Trans } from "@lingui/react/macro";
// In component
const title = t`Welcome`;
<Trans>Click here to continue</Trans>
<Trans>Click here to continue</Trans>;
```
---
## Configuration Files
| File | Purpose |
|------|---------|
| `vite.config.ts` | Vite bundler configuration |
| `tsconfig.json` | TypeScript configuration |
| `biome.json` | Linter and formatter settings |
| `drizzle.config.ts` | Drizzle ORM configuration |
| `lingui.config.ts` | Lingui i18n configuration |
| `components.json` | shadcn/ui component configuration |
| File | Purpose |
| ------------------- | --------------------------------- |
| `vite.config.ts` | Vite bundler configuration |
| `tsconfig.json` | TypeScript configuration |
| `.oxfmtrc.json` | Formatter settings |
| `.oxlintrc.json` | Linter settings |
| `drizzle.config.ts` | Drizzle ORM configuration |
| `lingui.config.ts` | Lingui i18n configuration |
| `components.json` | shadcn/ui component configuration |
---
## Contributing Guidelines
<Steps>
<Step title="Fork & Clone">
Fork the repository on GitHub and clone your fork locally.
</Step>
<Step title="Create a Branch">
Create a feature branch from `main`:
```bash
git checkout -b feature/my-feature
```
</Step>
<Step title="Make Changes">
Implement your changes following the patterns described above.
</Step>
<Step title="Test Locally">
Ensure the app works correctly with your changes:
```bash
pnpm run dev
pnpm run lint
pnpm run typecheck
```
</Step>
<Step title="Commit & Push">
Write clear commit messages and push to your fork.
</Step>
<Step title="Open a Pull Request">
Open a PR against the main repository with a clear description of your changes.
</Step>
<Step title="Fork & Clone">Fork the repository on GitHub and clone your fork locally.</Step>
<Step title="Create a Branch">
Create a feature branch from `main`: ```bash git checkout -b feature/my-feature ```
</Step>
<Step title="Make Changes">Implement your changes following the patterns described above.</Step>
<Step title="Test Locally">
Ensure the app works correctly with your changes: ```bash pnpm run dev pnpm run lint pnpm run typecheck ```
</Step>
<Step title="Commit & Push">Write clear commit messages and push to your fork.</Step>
<Step title="Open a Pull Request">
Open a PR against the main repository with a clear description of your changes.
</Step>
</Steps>
<Note>
Make sure to read any `CONTRIBUTING.md` file in the repository for additional guidelines.
</Note>
<Note>Make sure to read any `CONTRIBUTING.md` file in the repository for additional guidelines.</Note>
---
## Need Help?
<CardGroup cols={2}>
<Card
title="GitHub Discussions"
icon="comments"
href="https://github.com/amruthpillai/reactive-resume/discussions"
>
<Card title="GitHub Discussions" icon="comments" href="https://github.com/amruthpillai/reactive-resume/discussions">
Ask questions and discuss ideas with the community.
</Card>
<Card
title="GitHub Issues"
icon="bug"
href="https://github.com/amruthpillai/reactive-resume/issues"
>
<Card title="GitHub Issues" icon="bug" href="https://github.com/amruthpillai/reactive-resume/issues">
Report bugs or request features.
</Card>
</CardGroup>
+51 -85
View File
@@ -4,11 +4,8 @@ description: "Set up a local development environment for Reactive Resume"
---
<Info>
**Prerequisites**:
- [Node.js](https://nodejs.org/) v20 or higher
- [pnpm](https://pnpm.io/) v10.28.0 or higher (package manager)
- [Docker](https://docs.docker.com/get-docker/) and Docker Compose
- [Git](https://git-scm.com/)
**Prerequisites**: - [Node.js](https://nodejs.org/) v20 or higher - [pnpm](https://pnpm.io/) v10.28.0 or higher
(package manager) - [Docker](https://docs.docker.com/get-docker/) and Docker Compose - [Git](https://git-scm.com/)
</Info>
This guide walks you through setting up Reactive Resume for local development. Whether you're contributing to the project or customizing it for your needs, these steps will get you up and running.
@@ -87,14 +84,15 @@ This guide walks you through setting up Reactive Resume for local development. W
SMTP_HOST=localhost
SMTP_PORT=1025
```
<Note>
**PDF Generation Note**: The `PRINTER_APP_URL` variable is required when running Reactive Resume outside of Docker while the printer service is running inside Docker (which is the case when using `compose.dev.yml`). The printer needs to reach your local app to render resumes for PDF generation. Since Docker containers cannot access `localhost` on your host machine directly, you must set `PRINTER_APP_URL` to `http://host.docker.internal:3000`. This special hostname allows Docker containers to communicate with services running on your host machine.
</Note>
<Tip>
**Email Testing**: The development stack includes [Mailpit](https://mailpit.axllent.org/), an email testing tool. All emails sent by the application will be captured and viewable at [http://localhost:8025](http://localhost:8025). No emails will actually be sent to real addresses during development.
</Tip>
</Step>
<Step title="Run Database Migrations">
@@ -122,32 +120,33 @@ Here are the most commonly used scripts during development:
### Development
| Command | Description |
|---------|-------------|
| `pnpm run dev` | Start the development server with hot reload |
| `pnpm run build` | Build the application for production |
| `pnpm run start` | Start the production server |
| `pnpm run lint` | Run Biome linter and formatter |
| `pnpm run typecheck` | Run TypeScript type checking |
| Command | Description |
| -------------------- | -------------------------------------------- |
| `pnpm run dev` | Start the development server with hot reload |
| `pnpm run build` | Build the application for production |
| `pnpm run start` | Start the production server |
| `pnpm run lint` | Run Oxlint linter and formatter |
| `pnpm run fmt` | Run Oxfmt formatter |
| `pnpm run typecheck` | Run TypeScript type checking |
### Database
| Command | Description |
|---------|-------------|
| Command | Description |
| ---------------------- | -------------------------------------------- |
| `pnpm run db:generate` | Generate migration files from schema changes |
| `pnpm run db:migrate` | Apply pending migrations |
| `pnpm run db:studio` | Open Drizzle Studio (database GUI) |
| `pnpm run db:migrate` | Apply pending migrations |
| `pnpm run db:studio` | Open Drizzle Studio (database GUI) |
### Internationalization
| Command | Description |
|---------|-------------|
| Command | Description |
| ------------------------- | -------------------------------------- |
| `pnpm run lingui:extract` | Extract translatable strings from code |
### Documentation
| Command | Description |
|---------|-------------|
| Command | Description |
| ------------------- | ------------------------------------------ |
| `pnpm run docs:dev` | Start the Mintlify docs development server |
---
@@ -210,9 +209,7 @@ This opens a web-based GUI at [https://local.drizzle.studio](https://local.drizz
pnpm run db:migrate
```
<Warning>
Always review generated migrations before applying them, especially when working with existing data.
</Warning>
<Warning>Always review generated migrations before applying them, especially when working with existing data.</Warning>
---
@@ -232,7 +229,7 @@ import { Trans } from "@lingui/react/macro";
const message = t`Hello, World!`;
// For JSX content
<Trans>Welcome to Reactive Resume</Trans>
<Trans>Welcome to Reactive Resume</Trans>;
```
### Extracting Translations
@@ -251,11 +248,12 @@ Translation files are located in the `locales/` directory in `.po` format.
### Linting & Formatting
Uses [Biome](https://biomejs.dev/) for linting and formatting:
Uses [Oxlint](https://oxlint.dev/) for linting and [Oxfmt](https://oxfmt.dev/) for formatting:
```bash
# Check and auto-fix issues
pnpm run lint
pnpm run fmt
```
### Type Checking
@@ -267,7 +265,9 @@ pnpm run typecheck
```
<Tip>
Configure your IDE to use Biome for automatic formatting on save. For VS Code, install the [Biome extension](https://marketplace.visualstudio.com/items?itemName=biomejs.biome).
Configure your IDE to use Oxlint for automatic linting and Oxfmt for automatic formatting on save. For VS Code,
install the [Oxlint extension](https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode) and configure the
settings in `.vscode/settings.json`.
</Tip>
---
@@ -275,53 +275,27 @@ pnpm run typecheck
## Troubleshooting
<AccordionGroup>
<Accordion title="Port 3000 is already in use">
Another process is using port 3000. Either stop that process or start the dev server on a different port:
```bash
PORT=3001 pnpm run dev
```
</Accordion>
<Accordion title="Database connection refused">
Ensure Docker containers are running:
```bash
docker compose -f compose.dev.yml ps
docker compose -f compose.dev.yml up -d
```
Check that PostgreSQL is healthy and accessible on port 5432.
</Accordion>
<Accordion title="S3/Storage errors">
Verify SeaweedFS is running and the bucket exists:
```bash
docker compose -f compose.dev.yml logs seaweedfs
docker compose -f compose.dev.yml logs seaweedfs_create_bucket
```
If the bucket wasn't created, restart the bucket creation service:
```bash
docker compose -f compose.dev.yml restart seaweedfs_create_bucket
```
</Accordion>
<Accordion title="Type errors after pulling changes">
The route tree may need regeneration. Run the dev server which auto-generates routes:
```bash
pnpm run dev
```
Or run type checking to see specific errors:
```bash
pnpm run typecheck
```
</Accordion>
<Accordion title="Port 3000 is already in use">
Another process is using port 3000. Either stop that process or start the dev server on a different port: ```bash
PORT=3001 pnpm run dev ```
</Accordion>
<Accordion title="Database connection refused">
Ensure Docker containers are running: ```bash docker compose -f compose.dev.yml ps docker compose -f compose.dev.yml
up -d ``` Check that PostgreSQL is healthy and accessible on port 5432.
</Accordion>
<Accordion title="S3/Storage errors">
Verify SeaweedFS is running and the bucket exists: ```bash docker compose -f compose.dev.yml logs seaweedfs docker
compose -f compose.dev.yml logs seaweedfs_create_bucket ``` If the bucket wasn't created, restart the bucket
creation service: ```bash docker compose -f compose.dev.yml restart seaweedfs_create_bucket ```
</Accordion>
<Accordion title="Type errors after pulling changes">
The route tree may need regeneration. Run the dev server which auto-generates routes: ```bash pnpm run dev ``` Or
run type checking to see specific errors: ```bash pnpm run typecheck ```
</Accordion>
</AccordionGroup>
---
@@ -329,18 +303,10 @@ pnpm run typecheck
## Next Steps
<CardGroup cols={2}>
<Card
title="Project Architecture"
icon="folder-open"
href="/contributing/architecture"
>
<Card title="Project Architecture" icon="folder-open" href="/contributing/architecture">
Deep dive into the project architecture and codebase structure.
</Card>
<Card
title="GitHub Repository"
icon="github"
href="https://github.com/amruthpillai/reactive-resume"
>
<Card title="GitHub Repository" icon="github" href="https://github.com/amruthpillai/reactive-resume">
View the source code and contribute to the project.
</Card>
</CardGroup>
+38 -40
View File
@@ -12,7 +12,8 @@ Reactive Resume is used by people all around the world, and translations help ma
Reactive Resume uses [Crowdin](https://crowdin.com/) as its localization management platform. Crowdin provides a user-friendly interface where translators can contribute translations without needing to write code or work with files directly.
<Info>
The Reactive Resume Crowdin project is available at [https://crowdin.com/project/reactive-resume](https://crowdin.com/project/reactive-resume).
The Reactive Resume Crowdin project is available at
[https://crowdin.com/project/reactive-resume](https://crowdin.com/project/reactive-resume).
</Info>
Once translations are submitted and approved on Crowdin, they are automatically synced to the codebase and will be available in the next release of the app.
@@ -22,33 +23,36 @@ Once translations are submitted and approved on Crowdin, they are automatically
## Getting Started
<Steps>
<Step title="Create a Crowdin Account">
If you don't already have an account, sign up at [crowdin.com](https://crowdin.com/). You can register using your email or sign up with Google, Facebook, Twitter, GitHub, or GitLab.
<Tip>
For detailed instructions on creating an account and getting started, see Crowdin's official [For Translators](https://support.crowdin.com/for-translators/) documentation.
</Tip>
</Step>
<Step title="Join the Reactive Resume Project">
Navigate to the [Reactive Resume project on Crowdin](https://crowdin.com/project/reactive-resume) and click **Join** to become a contributor.
</Step>
<Step title="Select Your Language">
From the project dashboard, click on the language you want to translate. You'll see a list of files that need translation along with the progress for each.
</Step>
<Step title="Start Translating">
Click on a file to open the Crowdin Editor. You'll see the source text (English) on the left and a text field for your translation on the right.
- Translate the text accurately while preserving any placeholders or formatting
- Use the suggestions from Translation Memory and Machine Translation as a starting point
- Vote on existing translations if you agree with them
</Step>
<Step title="Save Your Translations">
Your translations are saved automatically as you work. Once reviewed, they'll be included in the next app release.
</Step>
<Step title="Create a Crowdin Account">
If you don't already have an account, sign up at [crowdin.com](https://crowdin.com/). You can register using your
email or sign up with Google, Facebook, Twitter, GitHub, or GitLab.
<Tip>
For detailed instructions on creating an account and getting started, see Crowdin's official [For
Translators](https://support.crowdin.com/for-translators/) documentation.
</Tip>
</Step>
<Step title="Join the Reactive Resume Project">
Navigate to the [Reactive Resume project on Crowdin](https://crowdin.com/project/reactive-resume) and click **Join**
to become a contributor.
</Step>
<Step title="Select Your Language">
From the project dashboard, click on the language you want to translate. You'll see a list of files that need
translation along with the progress for each.
</Step>
<Step title="Start Translating">
Click on a file to open the Crowdin Editor. You'll see the source text (English) on the left and a text field for
your translation on the right. - Translate the text accurately while preserving any placeholders or formatting - Use
the suggestions from Translation Memory and Machine Translation as a starting point - Vote on existing translations
if you agree with them
</Step>
<Step title="Save Your Translations">
Your translations are saved automatically as you work. Once reviewed, they'll be included in the next app release.
</Step>
</Steps>
---
@@ -90,7 +94,8 @@ Some technical terms (like "PDF", "URL", "JSON") are often kept in English acros
If your language is not listed in the Crowdin project, you can request it to be added.
<Warning>
Before requesting a new language, please check if it's already available in the [Crowdin project](https://crowdin.com/project/reactive-resume).
Before requesting a new language, please check if it's already available in the [Crowdin
project](https://crowdin.com/project/reactive-resume).
</Warning>
To request a new language:
@@ -110,7 +115,8 @@ Once approved, the language will be added to Crowdin and you can begin translati
Translations submitted on Crowdin are synced to the codebase periodically. Once merged, they will be included in the next release of Reactive Resume.
<Info>
There may be a delay between submitting translations and seeing them live in the app. This is normal and depends on the release cycle.
There may be a delay between submitting translations and seeing them live in the app. This is normal and depends on
the release cycle.
</Info>
---
@@ -137,18 +143,10 @@ Translations submitted on Crowdin are synced to the codebase periodically. Once
## Need Help?
<CardGroup cols={2}>
<Card
icon="book-open"
title="Crowdin Translator Docs"
href="https://support.crowdin.com/for-translators/"
>
<Card icon="book-open" title="Crowdin Translator Docs" href="https://support.crowdin.com/for-translators/">
Official Crowdin documentation for translators.
</Card>
<Card
icon="github"
title="GitHub Issues"
href="https://github.com/amruthpillai/reactive-resume/issues"
>
<Card icon="github" title="GitHub Issues" href="https://github.com/amruthpillai/reactive-resume/issues">
Report issues or request new languages.
</Card>
</CardGroup>
+148 -148
View File
@@ -1,150 +1,150 @@
{
"$schema": "https://mintlify.com/docs.json",
"theme": "mint",
"name": "Reactive Resume",
"favicon": "/favicon.svg",
"description": "A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!",
"seo": {
"indexing": "all",
"metatags": {
"canonical": "https://docs.rxresu.me",
"og:image": "https://rxresu.me/opengraph/banner.jpg"
}
},
"fonts": {
"heading": {
"family": "IBM Plex Sans"
},
"body": {
"family": "IBM Plex Sans"
}
},
"colors": {
"primary": "#166534",
"light": "#07C983",
"dark": "#15803D"
},
"navigation": {
"tabs": [
{
"icon": "book",
"tab": "Documentation",
"groups": [
{
"group": "Getting Started",
"pages": [
"getting-started/index",
"getting-started/quickstart",
"guides/checking-service-status",
"guides/accessing-the-previous-version"
]
},
{
"group": "Account",
"pages": [
"guides/creating-an-account",
"guides/updating-your-profile",
"guides/linking-social-accounts",
"guides/deleting-your-account"
]
},
{
"group": "Resume Builder",
"pages": [
"guides/creating-your-first-resume",
"guides/choosing-a-template",
"guides/selecting-page-format",
"guides/moving-items-between-sections",
"guides/fitting-content-on-a-page",
"guides/adding-a-cover-letter",
"guides/exporting-your-resume",
"guides/sharing-your-resume-publicly",
"guides/using-private-notes",
"guides/using-custom-css"
]
},
{
"group": "Security",
"pages": ["guides/setting-up-two-factor-authentication", "guides/setting-up-passkeys"]
},
{
"group": "Integrations",
"pages": [
"guides/using-the-api",
"guides/using-the-patch-api",
"guides/using-the-mcp-server",
"guides/using-ai",
"guides/json-resume-schema"
]
},
{
"group": "Self-Hosting",
"pages": ["self-hosting/docker", "self-hosting/examples", "self-hosting/sso", "self-hosting/migration"]
},
{
"group": "Contributing",
"pages": ["contributing/architecture", "contributing/development", "contributing/translations"]
},
{
"group": "Community",
"pages": ["community/spotlight"]
},
{
"group": "Legal",
"pages": ["legal/license", "legal/privacy-policy", "legal/terms-of-service"]
}
]
},
{
"icon": "clock",
"tab": "Changelog",
"pages": ["changelog/index"]
},
{
"icon": "code",
"tab": "API Reference",
"openapi": "/spec.json"
}
],
"global": {
"anchors": [
{
"icon": "link",
"anchor": "Reactive Resume",
"href": "https://rxresu.me"
},
{
"icon": "github",
"anchor": "Source Code",
"href": "https://github.com/amruthpillai/reactive-resume"
}
]
}
},
"logo": {
"light": "/logo/light.svg",
"dark": "/logo/dark.svg"
},
"navbar": {
"links": [
{
"label": "Support",
"href": "https://github.com/amruthpillai/reactive-resume/issues"
}
],
"primary": {
"type": "button",
"label": "Get Started",
"href": "https://rxresu.me"
}
},
"contextual": {
"options": ["copy", "view"]
},
"footer": {
"socials": {
"website": "https://rxresu.me",
"github": "https://github.com/amruthpillai/reactive-resume"
}
}
"$schema": "https://mintlify.com/docs.json",
"theme": "mint",
"name": "Reactive Resume",
"favicon": "/favicon.svg",
"description": "A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!",
"seo": {
"indexing": "all",
"metatags": {
"canonical": "https://docs.rxresu.me",
"og:image": "https://rxresu.me/opengraph/banner.jpg"
}
},
"fonts": {
"heading": {
"family": "IBM Plex Sans"
},
"body": {
"family": "IBM Plex Sans"
}
},
"colors": {
"primary": "#166534",
"light": "#07C983",
"dark": "#15803D"
},
"navigation": {
"tabs": [
{
"icon": "book",
"tab": "Documentation",
"groups": [
{
"group": "Getting Started",
"pages": [
"getting-started/index",
"getting-started/quickstart",
"guides/checking-service-status",
"guides/accessing-the-previous-version"
]
},
{
"group": "Account",
"pages": [
"guides/creating-an-account",
"guides/updating-your-profile",
"guides/linking-social-accounts",
"guides/deleting-your-account"
]
},
{
"group": "Resume Builder",
"pages": [
"guides/creating-your-first-resume",
"guides/choosing-a-template",
"guides/selecting-page-format",
"guides/moving-items-between-sections",
"guides/fitting-content-on-a-page",
"guides/adding-a-cover-letter",
"guides/exporting-your-resume",
"guides/sharing-your-resume-publicly",
"guides/using-private-notes",
"guides/using-custom-css"
]
},
{
"group": "Security",
"pages": ["guides/setting-up-two-factor-authentication", "guides/setting-up-passkeys"]
},
{
"group": "Integrations",
"pages": [
"guides/using-the-api",
"guides/using-the-patch-api",
"guides/using-the-mcp-server",
"guides/using-ai",
"guides/json-resume-schema"
]
},
{
"group": "Self-Hosting",
"pages": ["self-hosting/docker", "self-hosting/examples", "self-hosting/sso", "self-hosting/migration"]
},
{
"group": "Contributing",
"pages": ["contributing/architecture", "contributing/development", "contributing/translations"]
},
{
"group": "Community",
"pages": ["community/spotlight"]
},
{
"group": "Legal",
"pages": ["legal/license", "legal/privacy-policy", "legal/terms-of-service"]
}
]
},
{
"icon": "clock",
"tab": "Changelog",
"pages": ["changelog/index"]
},
{
"icon": "code",
"tab": "API Reference",
"openapi": "/spec.json"
}
],
"global": {
"anchors": [
{
"icon": "link",
"anchor": "Reactive Resume",
"href": "https://rxresu.me"
},
{
"icon": "github",
"anchor": "Source Code",
"href": "https://github.com/amruthpillai/reactive-resume"
}
]
}
},
"logo": {
"light": "/logo/light.svg",
"dark": "/logo/dark.svg"
},
"navbar": {
"links": [
{
"label": "Support",
"href": "https://github.com/amruthpillai/reactive-resume/issues"
}
],
"primary": {
"type": "button",
"label": "Get Started",
"href": "https://rxresu.me"
}
},
"contextual": {
"options": ["copy", "view"]
},
"footer": {
"socials": {
"website": "https://rxresu.me",
"github": "https://github.com/amruthpillai/reactive-resume"
}
}
}
+42 -45
View File
@@ -4,7 +4,7 @@ description: "Welcome to the documentation for Reactive Resume, a free and open-
---
<Frame>
<img src="/images/getting-started/banner.webp" alt="Reactive Resume Banner" />
<img src="/images/getting-started/banner.webp" alt="Reactive Resume Banner" />
</Frame>
## What is Reactive Resume?
@@ -33,29 +33,34 @@ description: "Welcome to the documentation for Reactive Resume, a free and open-
</Frame>
<AccordionGroup>
<Accordion title="Completely Free & Open Source" icon="code-branch">
Reactive Resume is licensed under MIT. You can use it for free, modify it, and even host your own instance. The entire codebase is available on [GitHub](https://github.com/amruthpillai/reactive-resume).
</Accordion>
<Accordion title="Multiple Templates" icon="grid-2">
Choose from a variety of professionally designed templates including Azurill, Bronzor, Chikorita, Ditto, Gengar, Glalie, Kakuna, Lapras, Leafish, Onyx, Pikachu, and Rhyhorn - each with unique layouts and styles.
</Accordion>
<Accordion title="Rich Text Editor" icon="text">
Format your content with bold, italic, links, lists, and more using our intuitive rich text editor powered by Tiptap.
</Accordion>
<Accordion title="Multi-language Support" icon="globe">
Reactive Resume supports multiple languages, making it accessible to users worldwide. Contribute translations to help us reach more people.
</Accordion>
<Accordion title="Dark Mode" icon="moon">
Work comfortably in any lighting condition with built-in dark mode support that's easy on your eyes.
</Accordion>
<Accordion title="Self-hosting Ready" icon="server">
Deploy your own instance of Reactive Resume using Docker. Keep complete control over your data and infrastructure.
</Accordion>
<Accordion title="Completely Free & Open Source" icon="code-branch">
Reactive Resume is licensed under MIT. You can use it for free, modify it, and even host your own instance. The
entire codebase is available on [GitHub](https://github.com/amruthpillai/reactive-resume).
</Accordion>
<Accordion title="Multiple Templates" icon="grid-2">
Choose from a variety of professionally designed templates including Azurill, Bronzor, Chikorita, Ditto, Gengar,
Glalie, Kakuna, Lapras, Leafish, Onyx, Pikachu, and Rhyhorn - each with unique layouts and styles.
</Accordion>
<Accordion title="Rich Text Editor" icon="text">
Format your content with bold, italic, links, lists, and more using our intuitive rich text editor powered by
Tiptap.
</Accordion>
<Accordion title="Multi-language Support" icon="globe">
Reactive Resume supports multiple languages, making it accessible to users worldwide. Contribute translations to
help us reach more people.
</Accordion>
<Accordion title="Dark Mode" icon="moon">
Work comfortably in any lighting condition with built-in dark mode support that's easy on your eyes.
</Accordion>
<Accordion title="Self-hosting Ready" icon="server">
Deploy your own instance of Reactive Resume using Docker. Keep complete control over your data and infrastructure.
</Accordion>
</AccordionGroup>
## Getting Started
@@ -63,18 +68,10 @@ description: "Welcome to the documentation for Reactive Resume, a free and open-
Whether you want to use our hosted version or run your own instance, Reactive Resume has got you covered.
<CardGroup cols={2}>
<Card
title="Quickstart"
icon="rocket"
href="/getting-started/quickstart"
>
<Card title="Quickstart" icon="rocket" href="/getting-started/quickstart">
Get up and running in minutes with our hosted version or deploy your own instance.
</Card>
<Card
title="Development Setup"
icon="code"
href="/contributing/development"
>
<Card title="Development Setup" icon="code" href="/contributing/development">
Set up a local development environment to contribute or customize Reactive Resume.
</Card>
</CardGroup>
@@ -83,17 +80,17 @@ Whether you want to use our hosted version or run your own instance, Reactive Re
Reactive Resume is built with modern web technologies:
| Category | Technology |
|-------------------|------------|
| Framework | TanStack Start (React 19, Vite) |
| Runtime | Node.js |
| Language | TypeScript |
| Database | PostgreSQL with Drizzle ORM |
| API | ORPC (Type-safe RPC) |
| Auth | Better Auth |
| Styling | Tailwind CSS |
| UI Components | Radix UI |
| State Management | Zustand + TanStack Query |
| Category | Technology |
| ---------------- | ------------------------------- |
| Framework | TanStack Start (React 19, Vite) |
| Runtime | Node.js |
| Language | TypeScript |
| Database | PostgreSQL with Drizzle ORM |
| API | ORPC (Type-safe RPC) |
| Auth | Better Auth |
| Styling | Tailwind CSS |
| UI Components | Radix UI |
| State Management | Zustand + TanStack Query |
## Community & Support
+101 -134
View File
@@ -23,32 +23,27 @@ Reactive Resume offers flexibility in how you want to use it. Choose the option
The easiest way to use Reactive Resume is through our cloud version at [rxresu.me](https://rxresu.me). **This service is completely free and will always remain free.**
<Steps>
<Step title="Create an Account">
Visit [rxresu.me](https://rxresu.me) and sign up for free using your email, or sign in with your GitHub or Google account.
</Step>
<Step title="Create Your First Resume">
Click the **Create Resume** button on your dashboard. Give your resume a name and select a template to get started.
</Step>
<Step title="Fill in Your Details">
Use our intuitive builder to add your:
- Personal information
- Work experience
- Education
- Skills
- Projects
- And more...
</Step>
<Step title="Export & Share">
When you're ready, export your resume as a PDF or share it via a unique public link.
</Step>
<Step title="Create an Account">
Visit [rxresu.me](https://rxresu.me) and sign up for free using your email, or sign in with your GitHub or Google
account.
</Step>
<Step title="Create Your First Resume">
Click the **Create Resume** button on your dashboard. Give your resume a name and select a template to get started.
</Step>
<Step title="Fill in Your Details">
Use our intuitive builder to add your: - Personal information - Work experience - Education - Skills - Projects -
And more...
</Step>
<Step title="Export & Share">
When you're ready, export your resume as a PDF or share it via a unique public link.
</Step>
</Steps>
<Tip>
Your resume updates in real-time as you type. The preview panel shows exactly how your final PDF will look.
</Tip>
<Tip>Your resume updates in real-time as you type. The preview panel shows exactly how your final PDF will look.</Tip>
---
@@ -64,77 +59,50 @@ Before you begin, ensure you have the following installed:
- [Docker Compose](https://docs.docker.com/compose/install/) (v2.0 or higher)
<Info>
There is <strong>no difference in features</strong> between the cloud-hosted version and the self-hosted option. Both provide the same privacy, customization, and functionality. Choose whichever deployment type suits your needs!
There is <strong>no difference in features</strong> between the cloud-hosted version and the self-hosted option. Both
provide the same privacy, customization, and functionality. Choose whichever deployment type suits your needs!
</Info>
### Quick Deployment
<Steps>
<Step title="Clone the Repository">
```bash
git clone https://github.com/amruthpillai/reactive-resume.git
cd Reactive-Resume
```
</Step>
<Step title="Configure Environment Variables">
Create a `.env` file in the root directory with the following variables:
```bash
# Application
APP_URL=http://localhost:3000
# Database
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/postgres
# Authentication (generate a secure secret)
AUTH_SECRET=your-secure-secret-key-here
# Storage (S3-compatible)
S3_ACCESS_KEY_ID=seaweedfs
S3_SECRET_ACCESS_KEY=seaweedfs
S3_ENDPOINT=http://seaweedfs:8333
S3_BUCKET=reactive-resume
S3_FORCE_PATH_STYLE=true
```
<Warning>
For production deployments, always use strong, unique values for `AUTH_SECRET` and database credentials.
</Warning>
</Step>
<Step title="Start the Services">
```bash
docker compose up -d
```
This will start:
- **PostgreSQL** — Database for storing user data and resumes
- **SeaweedFS** — S3-compatible storage for file uploads
- **Printer** — PDF and screenshot generation service (browserless/chromium)
- **Reactive Resume** — The main application
</Step>
<Step title="Access Your Instance">
Once all services are running, access your Reactive Resume instance at:
```
http://localhost:3000
```
</Step>
<Step title="Clone the Repository">
```bash git clone https://github.com/amruthpillai/reactive-resume.git cd Reactive-Resume ```
</Step>
<Step title="Configure Environment Variables">
Create a `.env` file in the root directory with the following variables: ```bash # Application
APP_URL=http://localhost:3000 # Database DATABASE_URL=postgresql://postgres:postgres@postgres:5432/postgres #
Authentication (generate a secure secret) AUTH_SECRET=your-secure-secret-key-here # Storage (S3-compatible)
S3_ACCESS_KEY_ID=seaweedfs S3_SECRET_ACCESS_KEY=seaweedfs S3_ENDPOINT=http://seaweedfs:8333
S3_BUCKET=reactive-resume S3_FORCE_PATH_STYLE=true ```
<Warning>
For production deployments, always use strong, unique values for `AUTH_SECRET` and database credentials.
</Warning>
</Step>
<Step title="Start the Services">
```bash docker compose up -d ``` This will start: - **PostgreSQL** — Database for storing user data and resumes -
**SeaweedFS** — S3-compatible storage for file uploads - **Printer** — PDF and screenshot generation service
(browserless/chromium) - **Reactive Resume** — The main application
</Step>
<Step title="Access Your Instance">
Once all services are running, access your Reactive Resume instance at: ``` http://localhost:3000 ```
</Step>
</Steps>
### Docker Compose Services
Here's what each service in the stack does:
| Service | Port | Description |
|---------|------|-------------|
| `postgres` | 5432 | PostgreSQL database for storing all application data |
| `seaweedfs` | 8333 | S3-compatible object storage for file uploads |
| `printer` | 4000 | Headless Chromium service for PDF and screenshot generation |
| `app` | 3000 | The main Reactive Resume application |
| Service | Port | Description |
| ----------- | ---- | ----------------------------------------------------------- |
| `postgres` | 5432 | PostgreSQL database for storing all application data |
| `seaweedfs` | 8333 | S3-compatible object storage for file uploads |
| `printer` | 4000 | Headless Chromium service for PDF and screenshot generation |
| `app` | 3000 | The main Reactive Resume application |
### Health Checks
@@ -154,55 +122,61 @@ Here's a complete list of environment variables you can configure:
### Required Variables
| Variable | Description | Example |
|----------|-------------|---------|
| `DATABASE_URL` | PostgreSQL connection string | `postgresql://user:pass@host:5432/db` |
| `AUTH_SECRET` | Secret key for authentication | Generate with `openssl rand -base64 32` |
| `APP_URL` | Public URL of your Application | `https://rxresu.me` |
| `PRINTER_ENDPOINT` | URL of the printer service | `http://printer:3000` |
| Variable | Description | Example |
| ------------------ | ------------------------------ | --------------------------------------- |
| `DATABASE_URL` | PostgreSQL connection string | `postgresql://user:pass@host:5432/db` |
| `AUTH_SECRET` | Secret key for authentication | Generate with `openssl rand -base64 32` |
| `APP_URL` | Public URL of your Application | `https://rxresu.me` |
| `PRINTER_ENDPOINT` | URL of the printer service | `http://printer:3000` |
### Optional Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `PRINTER_APP_URL` | Public URL for the printer to access the Application | — |
| `GOOGLE_CLIENT_ID` | Google OAuth Client ID | — |
| `GOOGLE_CLIENT_SECRET` | Google OAuth Client Secret | — |
| `GITHUB_CLIENT_ID` | GitHub OAuth Client ID | — |
| `GITHUB_CLIENT_SECRET` | GitHub OAuth Client Secret | — |
| `OAUTH_PROVIDER_NAME` | Custom OAuth Provider Name | — |
| `OAUTH_CLIENT_ID` | Custom OAuth Client ID | — |
| `OAUTH_CLIENT_SECRET` | Custom OAuth Client Secret | — |
| `OAUTH_DISCOVERY_URL` | OIDC Discovery URL (use this OR manual URLs below) | — |
| `OAUTH_AUTHORIZATION_URL` | OAuth Authorization URL (manual config) | — |
| `OAUTH_TOKEN_URL` | OAuth Token URL (manual config) | — |
| `OAUTH_USER_INFO_URL` | OAuth User Info URL (manual config) | — |
| `OAUTH_SCOPES` | OAuth Scopes (space-separated) | `openid profile email` |
| `SMTP_HOST` | SMTP Server Host (for email features) | — |
| `SMTP_PORT` | SMTP Server Port | `587` |
| `SMTP_USER` | SMTP Username | — |
| `SMTP_PASS` | SMTP Password | — |
| `SMTP_FROM` | Default FROM address for emails | — |
| `SMTP_SECURE` | Use secure SMTP connection (`true` or `false`) | `false` |
| `S3_ACCESS_KEY_ID` | S3 Access Key | — |
| `S3_SECRET_ACCESS_KEY` | S3 Secret Key | — |
| `S3_REGION` | S3 Region | `us-east-1` |
| `S3_ENDPOINT` | S3-compatible Endpoint URL | — |
| `S3_BUCKET` | S3 Bucket Name | — |
| `S3_FORCE_PATH_STYLE` | Use path-style URLs for S3 (set `true` for MinIO/SeaweedFS) | `false` |
| `FLAG_DEBUG_PRINTER` | Used for debugging the printer route | `false` |
| `FLAG_DISABLE_SIGNUPS` | Disables new user signups | `false` |
| `FLAG_DISABLE_EMAIL_AUTH` | Disables email/password login (SSO only) | `false` |
| `FLAG_DISABLE_IMAGE_PROCESSING` | Disables image processing | `false` |
| Variable | Description | Default |
| ------------------------------- | ----------------------------------------------------------- | ---------------------- |
| `PRINTER_APP_URL` | Public URL for the printer to access the Application | — |
| `GOOGLE_CLIENT_ID` | Google OAuth Client ID | — |
| `GOOGLE_CLIENT_SECRET` | Google OAuth Client Secret | — |
| `GITHUB_CLIENT_ID` | GitHub OAuth Client ID | — |
| `GITHUB_CLIENT_SECRET` | GitHub OAuth Client Secret | — |
| `OAUTH_PROVIDER_NAME` | Custom OAuth Provider Name | — |
| `OAUTH_CLIENT_ID` | Custom OAuth Client ID | — |
| `OAUTH_CLIENT_SECRET` | Custom OAuth Client Secret | — |
| `OAUTH_DISCOVERY_URL` | OIDC Discovery URL (use this OR manual URLs below) | — |
| `OAUTH_AUTHORIZATION_URL` | OAuth Authorization URL (manual config) | — |
| `OAUTH_TOKEN_URL` | OAuth Token URL (manual config) | — |
| `OAUTH_USER_INFO_URL` | OAuth User Info URL (manual config) | — |
| `OAUTH_SCOPES` | OAuth Scopes (space-separated) | `openid profile email` |
| `SMTP_HOST` | SMTP Server Host (for email features) | — |
| `SMTP_PORT` | SMTP Server Port | `587` |
| `SMTP_USER` | SMTP Username | — |
| `SMTP_PASS` | SMTP Password | — |
| `SMTP_FROM` | Default FROM address for emails | — |
| `SMTP_SECURE` | Use secure SMTP connection (`true` or `false`) | `false` |
| `S3_ACCESS_KEY_ID` | S3 Access Key | — |
| `S3_SECRET_ACCESS_KEY` | S3 Secret Key | — |
| `S3_REGION` | S3 Region | `us-east-1` |
| `S3_ENDPOINT` | S3-compatible Endpoint URL | — |
| `S3_BUCKET` | S3 Bucket Name | — |
| `S3_FORCE_PATH_STYLE` | Use path-style URLs for S3 (set `true` for MinIO/SeaweedFS) | `false` |
| `FLAG_DEBUG_PRINTER` | Used for debugging the printer route | `false` |
| `FLAG_DISABLE_SIGNUPS` | Disables new user signups | `false` |
| `FLAG_DISABLE_EMAIL_AUTH` | Disables email/password login (SSO only) | `false` |
| `FLAG_DISABLE_IMAGE_PROCESSING` | Disables image processing | `false` |
> **Note:** Some variables are only required for using related features (OAuth, SMTP, S3, etc.) and can be left unset if unused.
<Note>
**Hybrid Setup Note**: The `PRINTER_APP_URL` variable is required when running Reactive Resume outside of Docker while the printer service is running inside Docker. In this scenario, the printer needs to reach your local app to render resumes for PDF generation. Since Docker containers cannot access `localhost` on your host machine directly, you must set `PRINTER_APP_URL` to `http://host.docker.internal:3000`. This special hostname allows Docker containers to communicate with services running on your host machine.
**Hybrid Setup Note**: The `PRINTER_APP_URL` variable is required when running Reactive Resume outside of Docker while
the printer service is running inside Docker. In this scenario, the printer needs to reach your local app to render
resumes for PDF generation. Since Docker containers cannot access `localhost` on your host machine directly, you must
set `PRINTER_APP_URL` to `http://host.docker.internal:3000`. This special hostname allows Docker containers to
communicate with services running on your host machine.
</Note>
<Note>
**Alternative Printer Options**: If you don't want to use browserless, you can use any headless Chrome/Chromium instance with its remote debugging port open. For example, run `chromium --remote-debugging-port=9222` and point `PRINTER_ENDPOINT` to that instance.
**Alternative Printer Options**: If you don't want to use browserless, you can use any headless Chrome/Chromium
instance with its remote debugging port open. For example, run `chromium --remote-debugging-port=9222` and point
`PRINTER_ENDPOINT` to that instance.
</Note>
---
@@ -210,22 +184,15 @@ Here's a complete list of environment variables you can configure:
## Next Steps
<CardGroup cols={2}>
<Card
title="Development Setup"
icon="code"
href="/contributing/development"
>
<Card title="Development Setup" icon="code" href="/contributing/development">
Set up a development environment to contribute or customize Reactive Resume.
</Card>
<Card
title="Project Architecture"
icon="folder-open"
href="/contributing/architecture"
>
<Card title="Project Architecture" icon="folder-open" href="/contributing/architecture">
Learn about the project structure and architecture.
</Card>
</CardGroup>
<Note>
**Having trouble?** Check our [GitHub Issues](https://github.com/amruthpillai/reactive-resume/issues) or reach out via [email](mailto:hello@amruthpillai.com).
**Having trouble?** Check our [GitHub Issues](https://github.com/amruthpillai/reactive-resume/issues) or reach out via
[email](mailto:hello@amruthpillai.com).
</Note>
@@ -7,9 +7,7 @@ description: "Learn how to access the previous version (v4) of Reactive Resume i
If you've been using Reactive Resume for a while, you may have resumes saved in the previous version of the application. The good news is that **version 4 (v4) is still fully accessible** and will remain online for the foreseeable future.
<Info>
The previous version of Reactive Resume is available at [https://v4.rxresu.me](https://v4.rxresu.me).
</Info>
<Info>The previous version of Reactive Resume is available at [https://v4.rxresu.me](https://v4.rxresu.me).</Info>
## Why keep the old version running?
@@ -24,7 +22,8 @@ There are several reasons why v4 remains available:
The previous version will continue to run for as long as possible—until the maintainer runs out of breath or funds to keep the server active. There are no immediate plans to shut it down.
<Warning>
While v4 will remain accessible for the foreseeable future, I recommend gradually transitioning to the latest version to benefit from new features, improvements, and ongoing support.
While v4 will remain accessible for the foreseeable future, I recommend gradually transitioning to the latest version
to benefit from new features, improvements, and ongoing support.
</Warning>
## Accessing your v4 resumes
@@ -40,6 +39,7 @@ The previous version will continue to run for as long as possible—until the ma
<Tip>
If you used social login (Google, GitHub, etc.) in v4, use the same method to sign in.
</Tip>
</Step>
<Step title="Access your resumes">
@@ -57,7 +57,8 @@ If you'd like to move your resumes to the latest version of Reactive Resume, you
4. Use the import feature to upload your JSON file (select the "Reactive Resume v4 (JSON)" option)
<Info>
Your existing resumes should already be available in the new version. If you don't see them, you can manually import them using the steps above.
Your existing resumes should already be available in the new version. If you don't see them, you can manually import
them using the steps above.
</Info>
## Questions or issues?
+42 -35
View File
@@ -19,20 +19,18 @@ A cover letter is a personalized document that accompanies your resume when appl
Navigate to your resume and open it in the builder.
</Step>
<Step title="Scroll to Custom Sections">
In the left sidebar, scroll down to find the **Custom Sections** area at the bottom.
</Step>
<Step title="Scroll to Custom Sections">
In the left sidebar, scroll down to find the **Custom Sections** area at the bottom.
</Step>
<Step title="Add a new custom section">
Click <Badge>Add a new custom section</Badge> to open the section creation dialog.
</Step>
<Step title="Add a new custom section">
Click <Badge>Add a new custom section</Badge> to open the section creation dialog.
</Step>
<Step title="Select 'Cover Letter' as the type">
In the dialog:
- Enter a **Title** for your section (e.g., "Cover Letter" or "Cover Letter - [Company Name]")
- Select **Cover Letter** from the **Type** dropdown
- Click **Create** to add the section
</Step>
<Step title="Select 'Cover Letter' as the type">
In the dialog: - Enter a **Title** for your section (e.g., "Cover Letter" or "Cover Letter - [Company Name]") - Select
**Cover Letter** from the **Type** dropdown - Click **Create** to add the section
</Step>
<Step title="Add a cover letter item">
In your new cover letter section, click <Badge>Add a new item</Badge> to create your cover letter.
@@ -46,6 +44,7 @@ A cover letter has two main fields:
### Recipient field
The **Recipient** field is where you enter the recipient's information. This typically includes:
- Date (optional)
- Hiring manager's name
- Their job title
@@ -55,20 +54,22 @@ The **Recipient** field is where you enter the recipient's information. This typ
<Tip>
Use line breaks to format the address block. For example:
```
January 31, 2026
```
January 31, 2026
Jane Smith
Senior Hiring Manager
Acme Corporation
123 Main Street, Suite 400
New York, NY 10001
```
Jane Smith
Senior Hiring Manager
Acme Corporation
123 Main Street, Suite 400
New York, NY 10001
```
</Tip>
### Content field
The **Content** field is where you write the body of your cover letter. Include:
- **Salutation**: "Dear Ms. Smith," or "Dear Hiring Team,"
- **Opening paragraph**: State the position you're applying for and how you learned about it
- **Body paragraphs**: Highlight relevant experience, skills, and achievements
@@ -76,7 +77,8 @@ The **Content** field is where you write the body of your cover letter. Include:
- **Sign-off**: "Sincerely," followed by your name
<Info>
The recipient and content are both rendered directly on your resume without a section header, giving your cover letter a clean, professional appearance.
The recipient and content are both rendered directly on your resume without a section header, giving your cover letter
a clean, professional appearance.
</Info>
## Using fullscreen mode for writing
@@ -88,13 +90,15 @@ For a distraction-free writing experience, use the fullscreen mode in the rich t
Click on your cover letter item in the sidebar to open the edit dialog.
</Step>
<Step title="Expand the editor">
In either the Recipient or Content field, click the **expand icon** (arrows pointing outward) in the bottom-right corner of the editor.
</Step>
<Step title="Expand the editor">
In either the Recipient or Content field, click the **expand icon** (arrows pointing outward) in the bottom-right
corner of the editor.
</Step>
<Step title="Write in fullscreen">
The editor will expand to nearly fill your screen, giving you a focused writing environment with all formatting tools available.
</Step>
<Step title="Write in fullscreen">
The editor will expand to nearly fill your screen, giving you a focused writing environment with all formatting tools
available.
</Step>
<Step title="Exit fullscreen">
Click the **collapse icon** or press **Escape** to return to the normal view.
@@ -126,6 +130,7 @@ Cover letters are typically on their own page, separate from the resume content.
<Tip>
See [Moving items between sections](/guides/moving-items-between-sections) for detailed instructions on how to move sections between pages.
</Tip>
</Step>
<Step title="Verify the layout">
@@ -134,25 +139,27 @@ Cover letters are typically on their own page, separate from the resume content.
</Steps>
<Warning>
When exporting as PDF, pages are rendered in order. If you want the cover letter first, place it on page 1 and move your resume content to subsequent pages.
When exporting as PDF, pages are rendered in order. If you want the cover letter first, place it on page 1 and move
your resume content to subsequent pages.
</Warning>
## Tips for effective cover letters
<Tip>**Keep it concise**: Aim for 250-400 words. Recruiters spend about one minute reading cover letters.</Tip>
<Tip>
**Keep it concise**: Aim for 250-400 words. Recruiters spend about one minute reading cover letters.
**Tailor each letter**: Customize your cover letter for each application. Reference specific job requirements and
company values.
</Tip>
<Tip>
**Tailor each letter**: Customize your cover letter for each application. Reference specific job requirements and company values.
**Use the same styling**: Your cover letter will inherit the fonts and colors from your resume template, ensuring a
cohesive look.
</Tip>
<Tip>
**Use the same styling**: Your cover letter will inherit the fonts and colors from your resume template, ensuring a cohesive look.
</Tip>
<Tip>
**Proofread carefully**: Spelling and grammar errors can disqualify your application. Review your letter before exporting.
**Proofread carefully**: Spelling and grammar errors can disqualify your application. Review your letter before
exporting.
</Tip>
## Managing multiple cover letters
+5 -2
View File
@@ -35,6 +35,7 @@ If you notice the servers are experiencing high load or downtime, here are some
<Info>
Reactive Resume is a **free, open-source service** used by thousands of people worldwide. During peak times, the servers may experience higher than usual load.
</Info>
</Step>
<Step title="Check for announcements">
@@ -47,7 +48,8 @@ If you notice the servers are experiencing high load or downtime, here are some
## A Note on Server Capacity
<Warning>
Reactive Resume is a **free service** that runs on limited server resources. As an open-source project maintained by a single developer, it's not feasible to invest in powerful dedicated servers without community support.
Reactive Resume is a **free service** that runs on limited server resources. As an open-source project maintained by a
single developer, it's not feasible to invest in powerful dedicated servers without community support.
</Warning>
The reality is:
@@ -65,7 +67,8 @@ If you find Reactive Resume valuable and want to help keep the servers running s
Your donations directly help cover server costs, improve infrastructure, and keep Reactive Resume free for everyone.
<Card title="Donate on Open Collective" icon="heart" href="https://opencollective.com/reactive-resume">
Support Reactive Resume's development and server costs through Open Collective. Every contribution helps keep the service running.
Support Reactive Resume's development and server costs through Open Collective. Every contribution helps keep the
service running.
</Card>
<CardGroup cols={2}>
+57 -52
View File
@@ -16,11 +16,12 @@ Changing your resume template is simple and can be done at any time without losi
<Frame caption="Screenshot of your resumes dashboard showing all your resume">
<img src="/images/guides/choosing-a-template/screenshot-1.webp" alt="Screenshot of your resumes dashboard showing all your resume" />
</Frame>
</Step>
<Step title="Open the right sidebar">
In the resume builder, look for the right sidebar. This is where you'll find all the design and layout options.
</Step>
<Step title="Open the right sidebar">
In the resume builder, look for the right sidebar. This is where you'll find all the design and layout options.
</Step>
<Step title="Navigate to the Template section">
In the right sidebar, find and click on the **Template** section to expand it.
@@ -28,6 +29,7 @@ Changing your resume template is simple and can be done at any time without losi
<Frame caption="Screenshot of the template section in the right sidebar">
<img src="/images/guides/choosing-a-template/screenshot-2.webp" alt="Screenshot of the template section in the right sidebar" />
</Frame>
</Step>
<Step title="Select your new template">
@@ -36,6 +38,7 @@ Changing your resume template is simple and can be done at any time without losi
<Frame caption="Screenshot of selecting a new template from the gallery">
<img src="/images/guides/choosing-a-template/screenshot-3.webp" alt="Screenshot of selecting a new template from the gallery" />
</Frame>
</Step>
<Step title="Review and adjust">
@@ -48,6 +51,7 @@ Changing your resume template is simple and can be done at any time without losi
<Tip>
Different templates may display your content differently. Some templates work better with shorter content, while others are designed to handle more detailed information.
</Tip>
</Step>
</Steps>
@@ -61,13 +65,15 @@ Changing your resume template is simple and can be done at any time without losi
- **Tech/Startups**: Modern, balanced templates like Chikorita or Leafish
</Accordion>
<Accordion title="Think about content length" icon="ruler">
If you have a lot of experience to showcase, choose a template with efficient space usage. For shorter resumes, templates with more white space can make your content feel more substantial.
</Accordion>
<Accordion title="Think about content length" icon="ruler">
If you have a lot of experience to showcase, choose a template with efficient space usage. For shorter resumes,
templates with more white space can make your content feel more substantial.
</Accordion>
<Accordion title="Match your personal brand" icon="palette">
Your resume is part of your personal brand. Choose a template that reflects your personality while remaining professional and appropriate for your target roles.
</Accordion>
<Accordion title="Match your personal brand" icon="palette">
Your resume is part of your personal brand. Choose a template that reflects your personality while remaining
professional and appropriate for your target roles.
</Accordion>
<Accordion title="Test with real content" icon="file-lines">
Don't choose a template based on how it looks empty. Fill in your actual content and see how it flows across pages. What looks great with sample data might not work as well with your specific information.
@@ -81,7 +87,8 @@ Changing your resume template is simple and can be done at any time without losi
Reactive Resume includes a variety of professionally designed templates. Each template can be further customized with your choice of colors, fonts, and layout options.
<Info>
All templates support the same features and sections. The difference is purely in how they present your information visually.
All templates support the same features and sections. The difference is purely in how they present your information
visually.
</Info>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
@@ -89,49 +96,49 @@ Reactive Resume includes a variety of professionally designed templates. Each te
<img src="/images/templates/azurill.webp" alt="Azurill template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Bronzor">
<img src="/images/templates/bronzor.webp" alt="Bronzor template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Bronzor">
<img src="/images/templates/bronzor.webp" alt="Bronzor template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Chikorita">
<img src="/images/templates/chikorita.webp" alt="Chikorita template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Chikorita">
<img src="/images/templates/chikorita.webp" alt="Chikorita template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Ditto">
<img src="/images/templates/ditto.webp" alt="Ditto template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Ditto">
<img src="/images/templates/ditto.webp" alt="Ditto template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Ditgar">
<img src="/images/templates/ditgar.webp" alt="Ditgar template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Ditgar">
<img src="/images/templates/ditgar.webp" alt="Ditgar template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Gengar">
<img src="/images/templates/gengar.webp" alt="Gengar template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Gengar">
<img src="/images/templates/gengar.webp" alt="Gengar template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Glalie">
<img src="/images/templates/glalie.webp" alt="Glalie template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Glalie">
<img src="/images/templates/glalie.webp" alt="Glalie template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Kakuna">
<img src="/images/templates/kakuna.webp" alt="Kakuna template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Kakuna">
<img src="/images/templates/kakuna.webp" alt="Kakuna template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Lapras">
<img src="/images/templates/lapras.webp" alt="Lapras template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Lapras">
<img src="/images/templates/lapras.webp" alt="Lapras template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Leafish">
<img src="/images/templates/leafish.webp" alt="Leafish template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Leafish">
<img src="/images/templates/leafish.webp" alt="Leafish template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Onyx">
<img src="/images/templates/onyx.webp" alt="Onyx template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Onyx">
<img src="/images/templates/onyx.webp" alt="Onyx template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Pikachu">
<img src="/images/templates/pikachu.webp" alt="Pikachu template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Pikachu">
<img src="/images/templates/pikachu.webp" alt="Pikachu template preview" style={{ aspectRatio: "210/297" }} />
</Frame>
<Frame caption="Rhyhorn">
<img src="/images/templates/rhyhorn.webp" alt="Rhyhorn template preview" style={{ aspectRatio: "210/297" }} />
@@ -144,13 +151,11 @@ Reactive Resume includes a variety of professionally designed templates. Each te
After selecting a template, you can customize it further:
| Setting | Description |
|---------|-------------|
| **Colors** | Change the primary color scheme to match your personal brand |
| **Typography** | Choose from various Google Fonts for headings and body text |
| **Layout** | Adjust sidebar width, section order, and page margins |
| **Spacing** | Fine-tune gaps between sections and elements |
| Setting | Description |
| -------------- | ------------------------------------------------------------ |
| **Colors** | Change the primary color scheme to match your personal brand |
| **Typography** | Choose from various Google Fonts for headings and body text |
| **Layout** | Adjust sidebar width, section order, and page margins |
| **Spacing** | Fine-tune gaps between sections and elements |
<Tip>
For more advanced customization options, check out [Using Custom CSS](/guides/using-custom-css).
</Tip>
<Tip>For more advanced customization options, check out [Using Custom CSS](/guides/using-custom-css).</Tip>
+16 -11
View File
@@ -23,6 +23,7 @@ description: "Learn how to create an account on Reactive Resume and get started
<Warning>
Make sure to choose a username you're happy with, as it will be part of your public resume URL (e.g., `rxresu.me/your-username/resume-slug`).
</Warning>
</Step>
<Step title="Sign up and log in">
@@ -71,15 +72,19 @@ description: "Learn how to create an account on Reactive Resume and get started
## Troubleshooting
<AccordionGroup>
<Accordion title="Username Already Taken">
If you see an error that your username is already taken, try a different variation. Usernames must be unique across all users.
</Accordion>
<Accordion title="Email Already Registered">
If your email is already registered, you can use the **Forgot Password** link on the login page to reset your password and regain access to your account.
</Accordion>
<Accordion title="Didn't Receive Verification Email">
Check your spam folder first. If you still don't see it, you can request a new verification email from your account settings.
</Accordion>
<Accordion title="Username Already Taken">
If you see an error that your username is already taken, try a different variation. Usernames must be unique across
all users.
</Accordion>
<Accordion title="Email Already Registered">
If your email is already registered, you can use the **Forgot Password** link on the login page to reset your
password and regain access to your account.
</Accordion>
<Accordion title="Didn't Receive Verification Email">
Check your spam folder first. If you still don't see it, you can request a new verification email from your account
settings.
</Accordion>
</AccordionGroup>
+8 -3
View File
@@ -10,6 +10,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
<Tip>
If you haven't created an account yet, follow the guide on [Creating an Account](/guides/creating-an-account).
</Tip>
</Step>
<Step title="Open the Resumes Dashboard">
@@ -18,11 +19,12 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
<Info>
This is where you can create, organize, and manage multiple resumes for different roles or versions.
</Info>
</Step>
<Step title="Click “Create a new resume”">
In the Resumes Dashboard, click on the <Badge>Create a new resume</Badge> card to open the creation form.
</Step>
<Step title="Click “Create a new resume”">
In the Resumes Dashboard, click on the <Badge>Create a new resume</Badge> card to open the creation form.
</Step>
<Step title="Name your resume">
Fill in the resume name. This can be a generic name (e.g., “General Resume”) or something tied to the position you’re applying for.
@@ -30,6 +32,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
<Tip>
If you can’t think of a name yet, click the <Badge>Magic Wand</Badge> button to generate a random name for you.
</Tip>
</Step>
<Step title="Review (or edit) the slug">
@@ -38,6 +41,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
<Warning>
If you choose to publicly share your resume, it will be accessible at `https://rxresu.me/{username}/{slug}`.
</Warning>
</Step>
<Step title="Add tags (optional)">
@@ -46,6 +50,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
<Info>
You can filter resumes by tags later from the Dashboard.
</Info>
</Step>
<Step title="Open the resume in the builder">
+6 -4
View File
@@ -8,9 +8,10 @@ description: "Learn how to permanently delete your Reactive Resume account and a
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
</Step>
<Step title="Navigate to Danger Zone">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on <Badge>Danger Zone</Badge>.
</Step>
<Step title="Navigate to Danger Zone">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on <Badge>Danger Zone</Badge>.
</Step>
<Step title="Type the confirmation text">
On the Danger Zone page, type <Badge>delete</Badge> into the confirmation input.
@@ -18,6 +19,7 @@ description: "Learn how to permanently delete your Reactive Resume account and a
<Info>
The <Badge>Delete Account</Badge> button will stay disabled until the confirmation text matches exactly.
</Info>
</Step>
<Step title="Delete your account">
@@ -26,10 +28,10 @@ description: "Learn how to permanently delete your Reactive Resume account and a
<Warning>
This action cannot be undone. All your data will be permanently deleted.
</Warning>
</Step>
<Step title="You will be signed out">
After deletion completes, you will be signed out and redirected to the homepage.
</Step>
</Steps>
File diff suppressed because one or more lines are too long
+38 -26
View File
@@ -6,11 +6,16 @@ description: "Learn how to reorganize and format your resume content to fit with
When your resume content overflows the page, Reactive Resume displays a warning just below the page. This guide explains how to reorganize and adjust your content so everything fits within your chosen page format.
<Frame caption="Screenshot of the overflow warning message in the resume builder">
<img src="/images/guides/fitting-content-on-a-page/screenshot-1.webp" alt="Screenshot of the overflow warning message in the resume builder" />
<img
src="/images/guides/fitting-content-on-a-page/screenshot-1.webp"
alt="Screenshot of the overflow warning message in the resume builder"
/>
</Frame>
<Warning>
While Reactive Resume supports multi-page resumes, each page has a fixed height based on your chosen format (A4 or Letter). If a single page's content exceeds this height, parts of your resume may be rendered improperly when printed or exported.
While Reactive Resume supports multi-page resumes, each page has a fixed height based on your chosen format (A4 or
Letter). If a single page's content exceeds this height, parts of your resume may be rendered improperly when printed
or exported.
</Warning>
## Quick fixes
@@ -31,7 +36,8 @@ With Free-Form:
To switch formats, go to the **Page** section in the right sidebar and change the **Format** to Free-Form. For more details, see [Selecting the right page format](/guides/selecting-page-format).
<Tip>
Since most resumes are viewed digitally today, Free-Form is often the best choice unless you specifically need to print physical copies.
Since most resumes are viewed digitally today, Free-Form is often the best choice unless you specifically need to
print physical copies.
</Tip>
### 2. Shorten text blocks
@@ -43,9 +49,7 @@ Long paragraphs take up space without adding proportional value. Review each sec
- **Focus on impact.** Keep measurable achievements; cut generic descriptions.
- **Limit bullets per entry.** Three to five bullets per job is usually enough.
<Tip>
Read each bullet point and ask: "Does this help me get an interview?" If not, cut it.
</Tip>
<Tip>Read each bullet point and ask: "Does this help me get an interview?" If not, cut it.</Tip>
### 3. Use multi-column layouts
@@ -54,21 +58,25 @@ Some sections work better in multiple columns, especially lists of short items.
In the left sidebar, find the section you want to adjust, click on the section heading (not an item), and change the **Columns** setting.
<Frame caption="Screenshot of the columns setting for a section">
<img src="/images/guides/fitting-content-on-a-page/screenshot-2.webp" alt="Screenshot of the columns setting for a section" />
<img
src="/images/guides/fitting-content-on-a-page/screenshot-2.webp"
alt="Screenshot of the columns setting for a section"
/>
</Frame>
Good candidates for multi-column layouts:
| Section | Recommended Columns |
|---------|---------------------|
| Skills | > 2 columns |
| Languages | > 3 columns |
| Interests | > 2 columns |
| Profiles | > 3 columns |
| Certifications (if brief) | > 2 columns |
| Section | Recommended Columns |
| ------------------------- | ------------------- |
| Skills | > 2 columns |
| Languages | > 3 columns |
| Interests | > 2 columns |
| Profiles | > 3 columns |
| Certifications (if brief) | > 2 columns |
<Info>
Multi-column layouts work best for sections with short, uniform items. Sections with long descriptions (like Experience or Projects) usually work better in a single column.
Multi-column layouts work best for sections with short, uniform items. Sections with long descriptions (like
Experience or Projects) usually work better in a single column.
</Info>
### 4. Move items to another page
@@ -84,7 +92,8 @@ Use the **Move to** feature to relocate items:
For detailed instructions, see [Moving items between sections](/guides/moving-items-between-sections).
<Tip>
Keep your most recent and relevant experience on page one. Move older positions or less critical sections (like older projects or volunteer work) to subsequent pages.
Keep your most recent and relevant experience on page one. Move older positions or less critical sections (like older
projects or volunteer work) to subsequent pages.
</Tip>
### 5. Adjust layout and design settings
@@ -93,17 +102,19 @@ The right sidebar contains settings that control how much space your content use
Open the right sidebar and explore these options:
| Setting | Where to find it | Effect |
|---------|------------------|--------|
| **Font size** | Typography | Smaller fonts fit more text per line and per page |
| **Line height** | Typography | Tighter line spacing reduces vertical space |
| **Margins** | Page | Smaller margins give you more usable area |
| **Section gaps** | Page | Reducing gaps between sections saves space |
| **Sidebar width** | Layout | Adjusting the sidebar ratio can balance content better |
| **Picture size** | Picture (left sidebar) | A smaller photo leaves more room for text |
| Setting | Where to find it | Effect |
| ----------------- | ---------------------- | ------------------------------------------------------ |
| **Font size** | Typography | Smaller fonts fit more text per line and per page |
| **Line height** | Typography | Tighter line spacing reduces vertical space |
| **Margins** | Page | Smaller margins give you more usable area |
| **Section gaps** | Page | Reducing gaps between sections saves space |
| **Sidebar width** | Layout | Adjusting the sidebar ratio can balance content better |
| **Picture size** | Picture (left sidebar) | A smaller photo leaves more room for text |
<Info>
**Reducing font size is the best option** when you need to fit more content while keeping A4 or Letter format. Reducing body font from 11pt to 10.5pt (or even 10pt) can free up significant space while remaining readable. The editor supports 0.1pt increments, so you can fine-tune precisely.
**Reducing font size is the best option** when you need to fit more content while keeping A4 or Letter format.
Reducing body font from 11pt to 10.5pt (or even 10pt) can free up significant space while remaining readable. The
editor supports 0.1pt increments, so you can fine-tune precisely.
</Info>
### 6. Hide less important sections
@@ -130,7 +141,8 @@ Try this order:
5. Fine-tune font size and spacing last
<Tip>
Use the live preview to see changes as you make them. Small adjustments add up—reducing font size by 0.5pt combined with slightly smaller margins can recover enough space for several lines of content.
Use the live preview to see changes as you make them. Small adjustments add up—reducing font size by 0.5pt combined
with slightly smaller margins can recover enough space for several lines of content.
</Tip>
## Troubleshooting
File diff suppressed because it is too large Load Diff
+10 -7
View File
@@ -8,13 +8,15 @@ description: "Learn how to connect or disconnect social sign-in providers like G
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
</Step>
<Step title="Navigate to Authentication settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Authentication</Badge> link.
</Step>
<Step title="Navigate to Authentication settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on the <Badge>Authentication</Badge> link.
</Step>
<Step title="Find the social provider you want to link">
On the Authentication page, you may see sections for one or more providers (for example, <Badge>Google</Badge> or <Badge>GitHub</Badge>), depending on what is enabled on your instance.
</Step>
<Step title="Find the social provider you want to link">
On the Authentication page, you may see sections for one or more providers (for example, <Badge>Google</Badge> or{" "}
<Badge>GitHub</Badge>), depending on what is enabled on your instance.
</Step>
<Step title="Connect your account">
Click the <Badge>Connect</Badge> button for the provider you want to link. You'll be redirected to the provider to authorize access, then returned to the Authentication settings page.
@@ -22,6 +24,7 @@ description: "Learn how to connect or disconnect social sign-in providers like G
<Info>
After a successful link, the button will change to <Badge>Disconnect</Badge>.
</Info>
</Step>
<Step title="Disconnect a provider (optional)">
@@ -30,6 +33,6 @@ description: "Learn how to connect or disconnect social sign-in providers like G
<Warning>
Before disconnecting, make sure you still have another way to sign in (for example, a password or another linked provider) so you don't get locked out.
</Warning>
</Step>
</Steps>
+18 -7
View File
@@ -20,6 +20,7 @@ If you have a long work history or extensive project list, you may want to split
<Info>
Make sure you have at least one item in a section (e.g., an experience entry, project, or skill) before proceeding.
</Info>
</Step>
<Step title="Locate the item you want to move">
@@ -28,6 +29,7 @@ If you have a long work history or extensive project list, you may want to split
<Frame caption="Screenshot of the left sidebar with an expanded section containing multiple items">
<img src="/images/guides/moving-items-between-sections/screenshot-1.webp" alt="Screenshot of the left sidebar with an expanded section containing multiple items" />
</Frame>
</Step>
<Step title="Open the item dropdown menu">
@@ -36,11 +38,13 @@ If you have a long work history or extensive project list, you may want to split
<Frame caption="Screenshot of the dropdown menu icon on a section item">
<img src="/images/guides/moving-items-between-sections/screenshot-2.webp" alt="Screenshot of the dropdown menu icon on a section item" />
</Frame>
</Step>
<Step title="Hover over 'Move to'">
In the dropdown menu, hover over or click the <Badge>Move to</Badge> option. This will open a submenu showing all available destinations.
</Step>
<Step title="Hover over 'Move to'">
In the dropdown menu, hover over or click the <Badge>Move to</Badge> option. This will open a submenu showing all
available destinations.
</Step>
<Step title="Select a destination">
The submenu displays available destinations organized by:
@@ -54,10 +58,11 @@ If you have a long work history or extensive project list, you may want to split
<Frame caption="Screenshot of the 'Move to' submenu with destination options">
<img src="/images/guides/moving-items-between-sections/screenshot-3.webp" alt="Screenshot of the 'Move to' submenu with destination options" />
</Frame>
<Tip>
If a custom section of the same type doesn't exist on your target page, Reactive Resume will **automatically create one** for you. This makes it easy to split sections across pages without manual setup.
</Tip>
</Step>
<Step title="Verify the move">
@@ -69,6 +74,7 @@ If you have a long work history or extensive project list, you may want to split
<Frame caption="Screenshot of the item in its new location">
<img src="/images/guides/moving-items-between-sections/screenshot-4.webp" alt="Screenshot of the item in its new location" />
</Frame>
</Step>
</Steps>
@@ -91,6 +97,7 @@ A common use case is when your work history is too long to fit on a single page.
<Info>
If no Experience section exists on page 2, a new custom section will be created automatically with the same type, so your formatting stays consistent.
</Info>
</Step>
<Step title="Review the result">
@@ -101,21 +108,25 @@ A common use case is when your work history is too long to fit on a single page.
- The section headings and styling remain consistent
{/* TODO: Add screenshot showing a resume with Experience split across page 1 and page 2 */}
</Step>
</Steps>
## Tips for organizing multi-page resumes
<Tip>
**Keep it logical**: Maintain chronological order within each page. Move complete job entries rather than splitting a single role across pages.
**Keep it logical**: Maintain chronological order within each page. Move complete job entries rather than splitting a
single role across pages.
</Tip>
<Tip>
**Use custom section names**: After moving items to a new custom section, you can rename it (e.g., "Earlier Experience" or "Additional Projects") to provide context for recruiters.
**Use custom section names**: After moving items to a new custom section, you can rename it (e.g., "Earlier
Experience" or "Additional Projects") to provide context for recruiters.
</Tip>
<Warning>
Moving items reorganizes your content but doesn't affect the data itself. You can always move items back or to different sections as needed.
Moving items reorganizes your content but doesn't affect the data itself. You can always move items back or to
different sections as needed.
</Warning>
## Troubleshooting
+60 -41
View File
@@ -11,10 +11,10 @@ Reactive Resume offers three page format options: **A4**, **Letter**, and **Free
A4 is the international standard paper size used in most countries outside North America. When you select A4, your resume pages conform to these dimensions:
| Property | Value |
|----------|-------|
| Width | 210mm (794px) |
| Height | 297mm (1123px) |
| Property | Value |
| -------- | -------------- |
| Width | 210mm (794px) |
| Height | 297mm (1123px) |
Choose A4 if you're applying to jobs internationally or in regions that use the metric system.
@@ -22,10 +22,10 @@ Choose A4 if you're applying to jobs internationally or in regions that use the
Letter is the standard paper size in the United States and Canada. When you select Letter, your resume pages conform to these dimensions:
| Property | Value |
|----------|-------|
| Width | 216mm (816px) |
| Height | 279mm (1056px) |
| Property | Value |
| -------- | -------------- |
| Width | 216mm (816px) |
| Height | 279mm (1056px) |
Choose Letter if you're applying to jobs in North America.
@@ -33,13 +33,14 @@ Choose Letter if you're applying to jobs in North America.
Free-Form is a modern format designed for digital-first resumes. Instead of conforming to a physical page size, Free-Form produces a **single continuous page** with no height limit. The width matches A4 (210mm), but the height extends as needed to fit all your content.
| Property | Value |
|----------|-------|
| Width | 210mm (794px) |
| Height | Unlimited |
| Property | Value |
| -------- | ------------- |
| Width | 210mm (794px) |
| Height | Unlimited |
<Info>
With Free-Form, there are no page breaks. Your entire resume renders as one seamless document, regardless of how much content you have.
With Free-Form, there are no page breaks. Your entire resume renders as one seamless document, regardless of how much
content you have.
</Info>
## Why Free-Form exists
@@ -56,7 +57,8 @@ When your resume is processed digitally:
Since physical page constraints no longer matter for most use cases, Free-Form lets you focus on content rather than worrying about fitting everything into arbitrary page limits.
<Tip>
If you don't plan on printing your resume, Free-Form is often the simplest choice. You never have to worry about content overflowing or awkward page breaks.
If you don't plan on printing your resume, Free-Form is often the simplest choice. You never have to worry about
content overflowing or awkward page breaks.
</Tip>
## How to change your page format
@@ -66,13 +68,13 @@ Since physical page constraints no longer matter for most use cases, Free-Form l
Navigate to your Dashboard and click on the resume you want to edit.
</Step>
<Step title="Open the right sidebar">
In the resume builder, look for the right sidebar on the right side of the screen.
</Step>
<Step title="Open the right sidebar">
In the resume builder, look for the right sidebar on the right side of the screen.
</Step>
<Step title="Navigate to the Page section">
In the right sidebar, find and click on the **Page** section to expand it.
</Step>
<Step title="Navigate to the Page section">
In the right sidebar, find and click on the **Page** section to expand it.
</Step>
<Step title="Select your format">
Find the **Format** dropdown and select your preferred option: A4, Letter, or Free-Form.
@@ -80,6 +82,7 @@ Since physical page constraints no longer matter for most use cases, Free-Form l
<Frame caption="Screenshot of the Format dropdown in the Page section">
<img src="/images/guides/selecting-page-format/screenshot-1.webp" alt="Screenshot of the Format dropdown in the Page section" />
</Frame>
</Step>
<Step title="Review the preview">
@@ -91,18 +94,19 @@ Since physical page constraints no longer matter for most use cases, Free-Form l
Use this quick reference to decide which format fits your needs:
| Situation | Recommended Format |
|-----------|-------------------|
| Applying to jobs in North America | Letter |
| Applying to jobs internationally | A4 |
| Digital-only applications (no printing) | Free-Form |
| Uploading to ATS or job portals | Free-Form |
| Need to print physical copies | A4 or Letter |
| Long resume with lots of content | Free-Form |
| Traditional industries (law, finance) | A4 or Letter |
| Situation | Recommended Format |
| --------------------------------------- | ------------------ |
| Applying to jobs in North America | Letter |
| Applying to jobs internationally | A4 |
| Digital-only applications (no printing) | Free-Form |
| Uploading to ATS or job portals | Free-Form |
| Need to print physical copies | A4 or Letter |
| Long resume with lots of content | Free-Form |
| Traditional industries (law, finance) | A4 or Letter |
<Warning>
If you switch from Free-Form to A4 or Letter, your content will be split across multiple pages. Review the result carefully to ensure page breaks don't occur in awkward places.
If you switch from Free-Form to A4 or Letter, your content will be split across multiple pages. Review the result
carefully to ensure page breaks don't occur in awkward places.
</Warning>
## Example PDFs
@@ -110,10 +114,22 @@ Use this quick reference to decide which format fits your needs:
Download these sample resumes to see how different formats affect the final PDF output:
<CardGroup cols={1}>
<Card arrow horizontal title="A4 Format Example" icon="file-pdf" href="https://github.com/user-attachments/files/24849548/a4.pdf">
<Card
arrow
horizontal
title="A4 Format Example"
icon="file-pdf"
href="https://github.com/user-attachments/files/24849548/a4.pdf"
>
A sample resume in A4 format showing traditional page breaks and constraints.
</Card>
<Card arrow horizontal title="Free-Form Example" icon="file-lines" href="https://github.com/user-attachments/files/24849552/free-form.pdf">
<Card
arrow
horizontal
title="Free-Form Example"
icon="file-lines"
href="https://github.com/user-attachments/files/24849552/free-form.pdf"
>
A sample resume in Free-Form format showing a continuous single-page layout.
</Card>
</CardGroup>
@@ -125,17 +141,20 @@ Download these sample resumes to see how different formats affect the final PDF
Yes. ATS systems parse the text content of your PDF, not the page dimensions. Free-Form resumes are fully compatible with applicant tracking systems.
</Accordion>
<Accordion title="Can I switch formats after creating my resume?">
Absolutely. You can change the format at any time from the Page section in the right sidebar. Your content is preserved—only the layout changes.
</Accordion>
<Accordion title="Can I switch formats after creating my resume?">
Absolutely. You can change the format at any time from the Page section in the right sidebar. Your content is
preserved—only the layout changes.
</Accordion>
<Accordion title="What if a job posting asks for a 'one-page resume'?">
If the employer specifically requests a one-page resume and expects a traditional format, use A4 or Letter and ensure your content fits within a single page. See [Fitting content on a page](/guides/fitting-content-on-a-page) for tips.
</Accordion>
<Accordion title="What if a job posting asks for a 'one-page resume'?">
If the employer specifically requests a one-page resume and expects a traditional format, use A4 or Letter and ensure
your content fits within a single page. See [Fitting content on a page](/guides/fitting-content-on-a-page) for tips.
</Accordion>
<Accordion title="Does Free-Form affect the file size?">
Slightly. A longer single page may produce a marginally larger PDF than a paginated version of the same content, but the difference is negligible for typical resume lengths.
</Accordion>
<Accordion title="Does Free-Form affect the file size?">
Slightly. A longer single page may produce a marginally larger PDF than a paginated version of the same content, but
the difference is negligible for typical resume lengths.
</Accordion>
<Accordion title="Which format should I use for LinkedIn?">
LinkedIn doesn't display uploaded resumes in their original format—it extracts the content. Free-Form works perfectly for LinkedIn uploads.
+15 -11
View File
@@ -6,7 +6,8 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
<Warning>
<strong>Passkeys Temporarily Disabled:</strong> Passkey registration and sign-in are currently unavailable in Reactive Resume due to an upstream issue with our authentication provider. We are closely monitoring the situation and will re-enable passkeys once it is resolved.
For more details and technical updates, see the <a href="https://github.com/better-auth/better-auth/issues/7463" target="_blank" rel="noopener">GitHub issue #7463</a>.
For more details and technical updates, see the <a href="https://github.com/better-auth/better-auth/issues/7463" target="_blank" rel="noopener">GitHub issue #7463</a>.
</Warning>
---
@@ -16,17 +17,19 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
</Step>
<Step title="Navigate to Authentication settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Authentication</Badge> link.
</Step>
<Step title="Navigate to Authentication settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on the <Badge>Authentication</Badge> link.
</Step>
<Step title="Register a new device">
In the <Badge>Passkeys</Badge> section, click on the <Badge>Register New Device</Badge> button.
</Step>
<Step title="Register a new device">
In the <Badge>Passkeys</Badge> section, click on the <Badge>Register New Device</Badge> button.
</Step>
<Step title="Name your passkey">
You'll be prompted to enter a name for the passkey. Use something descriptive so you can recognize it later (for example, “MacBook Touch ID” or “iPhone Face ID”).
</Step>
<Step title="Name your passkey">
You'll be prompted to enter a name for the passkey. Use something descriptive so you can recognize it later (for
example, “MacBook Touch ID” or “iPhone Face ID”).
</Step>
<Step title="Complete the passkey prompt">
Your browser or device will show a passkey prompt (WebAuthn). Follow the on-screen instructions to register your passkey using your biometric (Face ID / Touch ID / fingerprint) or device PIN.
@@ -34,6 +37,7 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
<Info>
Passkeys are tied to your device (or password manager) and are a more secure alternative to passwords.
</Info>
</Step>
<Step title="Manage passkeys (optional)">
@@ -42,6 +46,6 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
<Warning>
Deleting a passkey cannot be undone. After deletion, you won't be able to sign in using that passkey anymore.
</Warning>
</Step>
</Steps>
@@ -10,6 +10,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
<Warning>
Two-factor authentication requires a password to be set on your account. If you signed up using a social provider (Google or GitHub), you'll need to set a password first from the Authentication settings page.
</Warning>
</Step>
<Step title="Sign in to the dashboard">
@@ -18,15 +19,18 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
<Tip>
If you haven't created an account yet, follow the guide on [Creating an Account](/guides/creating-an-account).
</Tip>
</Step>
<Step title="Navigate to Authentication settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Authentication</Badge> link.
</Step>
<Step title="Navigate to Authentication settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on the <Badge>Authentication</Badge> link.
</Step>
<Step title="Click on Enable 2FA">
On the Authentication page, find the <Badge>Two-Factor Authentication</Badge> section and click on the <Badge>Enable 2FA</Badge> button.
</Step>
<Step title="Click on Enable 2FA">
On the Authentication page, find the <Badge>Two-Factor Authentication</Badge> section and click on the{" "}
<Badge>Enable 2FA</Badge> button.
</Step>
<Step title="Enter your password">
You will be asked to re-enter your password to authenticate that it's really you. Enter your password and click continue.
@@ -34,6 +38,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
<Info>
This password verification step ensures that only authorized users can enable two-factor authentication on your account.
</Info>
</Step>
<Step title="Scan the QR code">
@@ -51,6 +56,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
<Info>
You can also copy the secret key above the QR code and paste it into your authenticator app if you prefer manual entry.
</Info>
</Step>
<Step title="Save your backup codes">
@@ -59,6 +65,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
<Warning>
Make sure to copy and store these backup codes in a safe place. If you lose your authenticator device and don't have backup codes, you may lose access to your account.
</Warning>
</Step>
<Step title="Sign in with 2FA">
@@ -67,5 +74,6 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
<Tip>
If you've lost access to your authenticator device, you can use one of your backup codes to sign in. Remember that each backup code can only be used once.
</Tip>
</Step>
</Steps>
+48 -44
View File
@@ -29,13 +29,11 @@ Reactive Resume lets you share your resume via a **public URL** that anyone can
Navigate to your resume in the resume builder.
</Step>
<Step title="Go to the Sharing section">
In the **right sidebar**, select **Sharing**.
</Step>
<Step title="Go to the Sharing section">In the **right sidebar**, select **Sharing**.</Step>
<Step title="Toggle 'Allow Public Access'">
Turn on the **Allow Public Access** switch. Once enabled, your resume will be accessible via its public URL.
</Step>
<Step title="Toggle 'Allow Public Access'">
Turn on the **Allow Public Access** switch. Once enabled, your resume will be accessible via its public URL.
</Step>
<Step title="Copy your public URL">
Your public URL is displayed below the toggle. It follows this format:
@@ -45,11 +43,13 @@ Reactive Resume lets you share your resume via a **public URL** that anyone can
```
Click the **copy** button to copy the URL to your clipboard.
</Step>
</Steps>
<Tip>
The `{slug}` is the unique, URL-safe name you assign to your resume when you create it. If you want to change your slug, go to the dashboard, right-click your resume card, and choose "Update" to edit its details.
The `{slug}` is the unique, URL-safe name you assign to your resume when you create it. If you want to change your
slug, go to the dashboard, right-click your resume card, and choose "Update" to edit its details.
</Tip>
## How the public URL works
@@ -62,7 +62,8 @@ When someone visits your public resume URL:
4. **Views are tracked** - Each visit is counted in your resume statistics (see below)
<Info>
Changes you make in the builder are reflected immediately on the public URL. There's no separate "publish" step—your public resume is always in sync.
Changes you make in the builder are reflected immediately on the public URL. There's no separate "publish" step—your
public resume is always in sync.
</Info>
## Tracking views and downloads
@@ -75,15 +76,16 @@ In the resume builder, open the **right sidebar** and select **Statistics**.
You'll see:
| Metric | Description |
|--------|-------------|
| **Views** | Number of times your public resume page was visited |
| **Last viewed** | The date when your resume was last viewed |
| **Downloads** | Number of times your resume was downloaded (via the public page) |
| **Last downloaded** | The date when your resume was last downloaded |
| Metric | Description |
| ------------------- | ---------------------------------------------------------------- |
| **Views** | Number of times your public resume page was visited |
| **Last viewed** | The date when your resume was last viewed |
| **Downloads** | Number of times your resume was downloaded (via the public page) |
| **Last downloaded** | The date when your resume was last downloaded |
<Info>
Statistics are only tracked when your resume is **public**. If you turn off public access, tracking pauses but your existing stats are preserved.
Statistics are only tracked when your resume is **public**. If you turn off public access, tracking pauses but your
existing stats are preserved.
</Info>
### What counts as a view?
@@ -95,7 +97,8 @@ A view is counted each time someone loads your public resume page. This includes
- Search engine visits (if your resume is indexed)
<Note>
Only **you** can see your resume's statistics. Visitors to your public URL cannot see how many views or downloads your resume has.
Only **you** can see your resume's statistics. Visitors to your public URL cannot see how many views or downloads your
resume has.
</Note>
## Password protecting your resume
@@ -115,13 +118,11 @@ When password protection is enabled:
First, make sure **Allow Public Access** is turned on in the **Sharing** section.
</Step>
<Step title="Click 'Set Password'">
Below the public URL, click the **Set Password** button.
</Step>
<Step title="Click 'Set Password'">Below the public URL, click the **Set Password** button.</Step>
<Step title="Enter your password">
Type a password (6-64 characters) and confirm. This password will be required to view your resume.
</Step>
<Step title="Enter your password">
Type a password (6-64 characters) and confirm. This password will be required to view your resume.
</Step>
<Step title="Share the password separately">
Share the password with your intended audience through a secure channel (e.g., direct message, email).
@@ -149,21 +150,21 @@ Your resume will become accessible to anyone with the public URL.
Add your public resume URL to your LinkedIn profile's **Featured** section or **Contact Info**. Recruiters can view your detailed resume directly.
</Accordion>
<Accordion title="Email signature" icon="envelope">
Include your resume link in your email signature. Anyone you correspond with can quickly access your resume.
</Accordion>
<Accordion title="Email signature" icon="envelope">
Include your resume link in your email signature. Anyone you correspond with can quickly access your resume.
</Accordion>
<Accordion title="Portfolio website" icon="globe">
Embed or link to your resume from your personal website. The link always shows your latest resume.
</Accordion>
<Accordion title="Portfolio website" icon="globe">
Embed or link to your resume from your personal website. The link always shows your latest resume.
</Accordion>
<Accordion title="Job applications" icon="briefcase">
Some applications ask for a link to your resume. Your public URL is a professional alternative to file uploads.
</Accordion>
<Accordion title="Job applications" icon="briefcase">
Some applications ask for a link to your resume. Your public URL is a professional alternative to file uploads.
</Accordion>
<Accordion title="Networking events" icon="users">
Share your resume URL via QR code or NFC. Update your resume before the event and everyone gets the latest version.
</Accordion>
<Accordion title="Networking events" icon="users">
Share your resume URL via QR code or NFC. Update your resume before the event and everyone gets the latest version.
</Accordion>
<Accordion title="Confidential job search" icon="lock">
Use password protection to share your resume only with specific recruiters while keeping it hidden from your current employer.
@@ -185,7 +186,8 @@ When public access is disabled:
- Password protection settings are preserved
<Tip>
If you only want to temporarily hide your resume, consider using password protection instead of disabling public access entirely. This way, your URL remains active for people who have the password.
If you only want to temporarily hide your resume, consider using password protection instead of disabling public
access entirely. This way, your URL remains active for people who have the password.
</Tip>
## Frequently asked questions
@@ -195,17 +197,19 @@ When public access is disabled:
Yes! The URL is based on your **username** and the resume's **slug**. You can change the slug in the **Update Resume** dialog. To open it, right-click on your resume card in the dashboard and select "Update". The username is set in your account settings.
</Accordion>
<Accordion title="Will search engines index my public resume?">
Public resumes may be indexed by search engines. If you want to prevent indexing, use password protection or keep your resume private.
</Accordion>
<Accordion title="Will search engines index my public resume?">
Public resumes may be indexed by search engines. If you want to prevent indexing, use password protection or keep your
resume private.
</Accordion>
<Accordion title="Do views from my own visits count?">
Views are only counted when someone visits your public resume URL while not logged in. Visits made while you're logged in to your account are not included in the view statistics.
</Accordion>
<Accordion title="Do views from my own visits count?">
Views are only counted when someone visits your public resume URL while not logged in. Visits made while you're logged
in to your account are not included in the view statistics.
</Accordion>
<Accordion title="Can I see who viewed my resume?">
No, Reactive Resume only tracks view and download counts, not the identity of visitors. This protects visitor privacy.
</Accordion>
<Accordion title="Can I see who viewed my resume?">
No, Reactive Resume only tracks view and download counts, not the identity of visitors. This protects visitor privacy.
</Accordion>
<Accordion title="What happens if I change my username?">
Your public URL will change to reflect the new username. Old URLs will stop working immediately. You might need to update any links you've shared.
+7 -3
View File
@@ -10,11 +10,13 @@ description: "Learn how to update your profile information including your name,
<Tip>
If you haven't created an account yet, follow the guide on [Creating an Account](/guides/creating-an-account).
</Tip>
</Step>
<Step title="Navigate to Profile settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Profile</Badge> link.
</Step>
<Step title="Navigate to Profile settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on the <Badge>Profile</Badge> link.
</Step>
<Step title="Update your information">
On the Profile page, you can update the following information:
@@ -26,6 +28,7 @@ description: "Learn how to update your profile information including your name,
<Warning>
If you update your email address, you will receive a verification link on your current email address. The change will only be accepted after you click on the verification link.
</Warning>
</Step>
<Step title="Verify email changes (if applicable)">
@@ -34,5 +37,6 @@ description: "Learn how to update your profile information including your name,
<Tip>
Make sure to check your spam folder if you don't see the verification email in your inbox. The verification link is required to complete the email address change.
</Tip>
</Step>
</Steps>
+15 -10
View File
@@ -8,9 +8,10 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
</Step>
<Step title="Navigate to Artificial Intelligence settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on <Badge>Artificial Intelligence</Badge>.
</Step>
<Step title="Navigate to Artificial Intelligence settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on <Badge>Artificial Intelligence</Badge>.
</Step>
<Step title="How your data is stored and sent">
When you configure your AI provider settings on this page, all information (such as the API key and model) is stored locally in your browser and **not** in our database.
@@ -20,6 +21,7 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
</Info>
However, whenever you use an AI-assisted feature (such as text generation), these credentials need to be sent to the server **temporarily and only for the duration of your request**. This is required to connect with the AI provider on your behalf. See below for a deeper explanation.
</Step>
<Step title="Choose a provider">
@@ -29,11 +31,13 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
- **Google Gemini**
- **Anthropic Claude**
- **Ollama** (coming soon)
</Step>
<Step title="Enter a model name">
In the <Badge>Model</Badge> field, enter the model you want to use (for example, <code>gpt-5.2</code>, <code>claude-4.5-opus</code>, or <code>gemini-3-flash</code>).
</Step>
<Step title="Enter a model name">
In the <Badge>Model</Badge> field, enter the model you want to use (for example, <code>gpt-5.2</code>,{" "}
<code>claude-4.5-opus</code>, or <code>gemini-3-flash</code>).
</Step>
<Step title="Paste your API key">
In the <Badge>API Key</Badge> field, paste your provider API key.
@@ -41,6 +45,7 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
<Warning>
Treat this key like a password. Anyone with it can use your provider account and may incur costs.
</Warning>
</Step>
<Step title="Verify it's enabled">
@@ -49,12 +54,13 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
<Tip>
If the status shows <Badge>Disabled</Badge>, double-check that all three fields are filled in.
</Tip>
</Step>
</Steps>
## Why AI requests are sent through our server
Most AI providers (like OpenAI, Gemini, or Anthropic) block requests that come directly from the browser due to something called **CORS** ("Cross-Origin Resource Sharing"), a security mechanism built into web browsers.
Most AI providers (like OpenAI, Gemini, or Anthropic) block requests that come directly from the browser due to something called **CORS** ("Cross-Origin Resource Sharing"), a security mechanism built into web browsers.
**What is CORS?**
CORS is a browser feature that prevents web pages from making requests to a different domain than the one that served the web page, unless that domain explicitly allows it. Most AI providers do not allow browser-based requests from random websites, primarily for security and abuse prevention.
@@ -62,11 +68,10 @@ CORS is a browser feature that prevents web pages from making requests to a diff
Because of this restriction, the app has to **forward your AI requests (along with your credentials) through our server**, which then contacts the AI provider and returns the response to your browser. **Your credentials are not stored on our server; they are only used to make the request you initiated, and are not logged or retained.**
<Info>
If you're curious or would like to audit how your AI requests are forwarded, you can review the code yourself.
See the relevant implementation in <code>src/integrations/orpc/router/ai.ts</code> within the codebase.
If you're curious or would like to audit how your AI requests are forwarded, you can review the code yourself. See the
relevant implementation in <code>src/integrations/orpc/router/ai.ts</code> within the codebase.
</Info>
---
### Do you know a workaround?
+8 -4
View File
@@ -9,10 +9,13 @@ The **Custom CSS** panel lets you write your own CSS rules to change how your re
- **Live updates**: your changes are applied immediately as you type.
- **Auto-save**: there is no “Save” button—your CSS is saved automatically when it changes.
- **Scoped styling (mostly)**: to avoid affecting the rest of the app, your CSS is *usually* scoped to the resume preview.
- **Scoped styling (mostly)**: to avoid affecting the rest of the app, your CSS is _usually_ scoped to the resume preview.
<Frame caption="Screenshot of the Custom CSS section in the right sidebar">
<img src="/images/guides/using-custom-css/screenshot-1.webp" alt="Screenshot of the Custom CSS section in the right sidebar" />
<img
src="/images/guides/using-custom-css/screenshot-1.webp"
alt="Screenshot of the Custom CSS section in the right sidebar"
/>
</Frame>
## Where to find it
@@ -61,7 +64,9 @@ Example:
Keep each rule's selector on **one line**, for example:
```css
.page-section-experience .section-item-title { font-weight: 700; }
.page-section-experience .section-item-title {
font-weight: 700;
}
```
Avoid splitting a selector across multiple lines unless you've confirmed it behaves as expected.
@@ -266,4 +271,3 @@ Example (tighten spacing without changing your layout settings):
### My `@media` rules affect the whole app / don't apply
At-rules aren't auto-scoped. Prefix selectors inside them with `.resume-preview-container` as shown above.
+11 -9
View File
@@ -18,7 +18,10 @@ Think of it as a built-in notebook attached to each resume where you can jot dow
In the resume builder, open the **right sidebar** and select **Notes** from the available sections.
<Frame caption="Screenshot of the Notes section in the right sidebar">
<img src="/images/guides/using-private-notes/screenshot-1.webp" alt="Screenshot of the Notes section in the right sidebar" />
<img
src="/images/guides/using-private-notes/screenshot-1.webp"
alt="Screenshot of the Notes section in the right sidebar"
/>
</Frame>
## Use cases
@@ -39,7 +42,8 @@ Keep a record of where you've sent this particular resume:
Paste links to the original job postings so you can quickly reference them when preparing for interviews or following up.
<Tip>
Job postings often get taken down after a position is filled. Consider copying key requirements or responsibilities into your notes as a backup.
Job postings often get taken down after a position is filled. Consider copying key requirements or responsibilities
into your notes as a backup.
</Tip>
### Interview preparation
@@ -74,9 +78,9 @@ Track your follow-up schedule:
In the resume builder, click on **Notes** in the right sidebar to expand the section.
</Step>
<Step title="Write your notes">
Use the rich text editor to add your notes. You can format text with bold, italics, bullet points, and more.
</Step>
<Step title="Write your notes">
Use the rich text editor to add your notes. You can format text with bold, italics, bullet points, and more.
</Step>
<Step title="Notes save automatically">
Your notes are saved automatically as you type—there's no need to click a save button.
@@ -86,10 +90,8 @@ Track your follow-up schedule:
## Privacy guarantee
<Warning>
Private Notes are for your eyes only. They will **never** appear on:
- Your exported PDF or other file formats
- Your publicly shared resume link
- Any printed version of your resume
Private Notes are for your eyes only. They will **never** appear on: - Your exported PDF or other file formats - Your
publicly shared resume link - Any printed version of your resume
</Warning>
This makes it safe to store sensitive information like salary expectations, candid thoughts about opportunities, or personal reminders that you wouldn't want an employer to see.
+9 -4
View File
@@ -8,9 +8,10 @@ description: "Learn how to create API keys and authenticate requests to the Reac
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
</Step>
<Step title="Navigate to API Keys settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>API Keys</Badge> link.
</Step>
<Step title="Navigate to API Keys settings">
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
click on the <Badge>API Keys</Badge> link.
</Step>
<Step title="Open the API reference">
On the API Keys page, click <Badge>API Documentation</Badge> to view the API reference.
@@ -18,6 +19,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
<Tip>
You can also open it directly here: [API Reference](https://docs.rxresu.me/api-reference).
</Tip>
</Step>
<Step title="Create a new API key">
@@ -25,6 +27,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
- **Name**: A label to help you identify what you use this key for
- **Expires in**: How long the key should remain valid
</Step>
<Step title="Copy the API key (important)">
@@ -33,6 +36,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
<Warning>
For security reasons, your API key is only displayed once. If you lose it, you must create a new one.
</Warning>
</Step>
<Step title="Authenticate requests with x-api-key">
@@ -46,6 +50,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
curl "https://rxresu.me/api/openapi/resumes" \
-H "x-api-key: YOUR_API_KEY"
```
</Step>
<Step title="Delete an API key (optional)">
@@ -54,6 +59,6 @@ description: "Learn how to create API keys and authenticate requests to the Reac
<Warning>
Deleted API keys stop working immediately, and the action cannot be undone.
</Warning>
</Step>
</Steps>
+170 -47
View File
@@ -12,20 +12,51 @@ The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is a standar
## Prerequisites
<Steps>
<Step title="Create an API key">
<Step title="Choose your authentication method">
Reactive Resume MCP supports two authentication methods:
- **OAuth2 (recommended):** best user experience for clients that support MCP OAuth.
- **API key (fallback):** works in all clients that can send custom headers.
Use OAuth2 whenever your MCP client supports it. Use API key only when OAuth is unavailable in that client.
</Step>
<Step title="If using API key, create one">
Head over to [https://rxresu.me](https://rxresu.me) (or your self-hosted instance), sign in, and navigate to **Settings → API Keys**. Click **Create a new API key**, give it a name, and copy the secret — it's only shown once.
For the full walkthrough, see [Using the API](/guides/using-the-api).
</Step>
</Steps>
## Configuration
There are two ways to connect, depending on whether your MCP client supports the Streamable HTTP transport natively.
There are two transport options, and each can use either OAuth2 or API key depending on your client capabilities.
### Method 1: Streamable HTTP (recommended)
If your client supports the `url` field (e.g. **Cursor**), use this — no extra dependencies required:
If your client supports the `url` field (e.g. **Cursor**, **Codex**, Claude custom connectors), use this.
#### Option A: OAuth2 (recommended)
Most OAuth-capable clients only need the MCP URL:
```json
{
"mcpServers": {
"reactive-resume": {
"url": "https://rxresu.me/mcp"
}
}
}
```
Then connect/sign in from the client UI (or with the client's OAuth login command).
#### Option B: API key (fallback)
If OAuth is not supported in your client, send `x-api-key`:
```json
{
@@ -42,35 +73,124 @@ If your client supports the `url` field (e.g. **Cursor**), use this — no extra
### Method 2: mcp-remote
If your client only supports `command` / `args` (e.g. **Claude Desktop**), use [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) as a bridge. This requires [Node.js](https://nodejs.org) **20 or later**.
If your client only supports `command` / `args` (for example, local-only Claude Desktop config), use [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) as a bridge. This requires [Node.js](https://nodejs.org) **20 or later**.
`mcp-remote` is most commonly used with API keys:
```json
{
"mcpServers": {
"reactive-resume": {
"command": "npx",
"args": [
"mcp-remote",
"https://rxresu.me/mcp",
"--header",
"x-api-key:your-api-key"
]
"args": ["mcp-remote", "https://rxresu.me/mcp", "--header", "x-api-key:your-api-key"]
}
}
}
```
<Info>
Replace `your-api-key` with the API key you created in the prerequisites step.
</Info>
<Info>Replace `your-api-key` with the API key you created in the prerequisites step.</Info>
### Where to put the config
| Client | Config file |
| --- | --- |
| Cursor | `.cursor/mcp.json` in your project or home directory |
| Claude Desktop | `claude_desktop_config.json` ([docs](https://modelcontextprotocol.io/docs/tools/claude-desktop)) |
| Other MCP clients | Refer to the client's documentation |
| Client | Config file |
| ----------------- | ------------------------------------------------------------------------------------------------ |
| Cursor | `.cursor/mcp.json` in your project or home directory |
| Claude Desktop | `claude_desktop_config.json` ([docs](https://modelcontextprotocol.io/quickstart/user)) |
| Codex | `~/.codex/config.toml` or `.codex/config.toml` ([docs](https://developers.openai.com/codex/mcp)) |
| Other MCP clients | Refer to the client's documentation |
## Authentication Details (How Reactive Resume MCP Works)
Reactive Resume MCP accepts authentication in this order:
1. **Bearer token (OAuth2 access token)** via `Authorization: Bearer <token>`
2. **API key fallback** via `x-api-key: <key>`
If neither is valid, the MCP endpoint responds with `401` and advertises OAuth metadata using:
- `WWW-Authenticate: Bearer resource_metadata="<instance>/.well-known/oauth-protected-resource"`
This lets OAuth-capable MCP clients discover and complete the OAuth flow automatically.
### OAuth2 flow used by this server
Reactive Resume is configured as an OAuth authorization server for MCP clients:
- The MCP endpoint is `https://rxresu.me/mcp`.
- OAuth discovery metadata is exposed under `/.well-known/*` endpoints.
- The login/authorization route is `/auth/oauth`.
- If the user is not signed in, `/auth/oauth` redirects to `/auth/login`, then resumes OAuth.
- If the user is signed in, `/auth/oauth` validates `client_id` and `redirect_uri`, issues an authorization code, and redirects back to the client.
- PKCE parameters (`code_challenge`, `code_challenge_method`) are preserved in the authorization flow.
## Popular Client Setup
### Cursor
**OAuth2 (recommended):**
```json
{
"mcpServers": {
"reactive-resume": {
"url": "https://rxresu.me/mcp"
}
}
}
```
**API key fallback:**
```json
{
"mcpServers": {
"reactive-resume": {
"url": "https://rxresu.me/mcp",
"headers": {
"x-api-key": "your-api-key"
}
}
}
}
```
### Codex (CLI / IDE extension)
Add server:
```bash
codex mcp add reactive-resume --url https://rxresu.me/mcp
```
Then log in with OAuth:
```bash
codex mcp login reactive-resume
```
API key fallback (`config.toml`):
```toml
[mcp_servers."reactive-resume"]
url = "https://rxresu.me/mcp"
http_headers = { "x-api-key" = "your-api-key" }
```
### Claude (web app custom connector)
Add `https://rxresu.me/mcp` as a custom remote MCP connector, then connect with OAuth in Claude's connector UI.
### Claude Desktop (local config file)
Use `mcp-remote` bridge with API key (example shown above in **Method 2**).
## External References
- [Cursor MCP docs](https://cursor.sh/docs/mcp)
- [MCP quickstart for users (Claude Desktop example)](https://modelcontextprotocol.io/quickstart/user)
- [OpenAI Codex MCP docs](https://developers.openai.com/codex/mcp)
- [Claude custom connectors (remote MCP)](https://claude.com/docs/connectors/custom/remote-mcp)
- [MCP Authorization spec](https://modelcontextprotocol.io/specification/latest/basic/authorization)
## Self-Hosting
@@ -89,37 +209,37 @@ If you're running a self-hosted Reactive Resume instance, replace `https://rxres
The MCP server exposes the following tools:
| Tool | Description |
| --- | --- |
| `list_resumes` | List all resumes with IDs, names, tags, and status. Supports filtering by tags and sorting by last updated, creation date, or name |
| `get_resume` | Get the full data of a specific resume by ID |
| `create_resume` | Create a new, empty resume with a name and slug. Optionally pre-fill with sample data |
| `duplicate_resume` | Create a copy of an existing resume with a new name and slug |
| `patch_resume` | Apply JSON Patch (RFC 6902) operations to modify a resume's data |
| `delete_resume` | Permanently delete a resume and all associated files. **Irreversible** |
| `lock_resume` | Lock a resume to prevent edits, patches, and deletion |
| `unlock_resume` | Unlock a previously locked resume to re-enable editing |
| `export_resume_pdf` | Generate a PDF from the resume and return a download URL |
| `get_resume_screenshot` | Get a visual preview of the resume's first page as a WebP image URL |
| `get_resume_statistics` | Get view and download statistics for a resume |
| Tool | Description |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `list_resumes` | List all resumes with IDs, names, tags, and status. Supports filtering by tags and sorting by last updated, creation date, or name |
| `get_resume` | Get the full data of a specific resume by ID |
| `create_resume` | Create a new, empty resume with a name and slug. Optionally pre-fill with sample data |
| `duplicate_resume` | Create a copy of an existing resume with a new name and slug |
| `patch_resume` | Apply JSON Patch (RFC 6902) operations to modify a resume's data |
| `delete_resume` | Permanently delete a resume and all associated files. **Irreversible** |
| `lock_resume` | Lock a resume to prevent edits, patches, and deletion |
| `unlock_resume` | Unlock a previously locked resume to re-enable editing |
| `export_resume_pdf` | Generate a PDF from the resume and return a download URL |
| `get_resume_screenshot` | Get a visual preview of the resume's first page as a WebP image URL |
| `get_resume_statistics` | Get view and download statistics for a resume |
## Available Resources
| Resource | Description |
| --- | --- |
| `resume://{id}` | The full resume data as a readable JSON resource. Lists all resumes and supports reading individual ones by ID |
| Resource | Description |
| ----------------- | --------------------------------------------------------------------------------------------------------------- |
| `resume://{id}` | The full resume data as a readable JSON resource. Lists all resumes and supports reading individual ones by ID |
| `resume://schema` | The ResumeData JSON Schema — reference this to understand valid paths and value types for JSON Patch operations |
## Available Prompts
Prompts are pre-built workflows that provide the AI with structured instructions and context. Each prompt embeds the resume data and schema automatically.
| Prompt | Description |
| --- | --- |
| `build_resume` | Guide you step-by-step through building a resume from scratch — basics, summary, experience, education, skills, and design |
| `improve_resume` | Review your resume and suggest concrete improvements to wording, impact, metrics, and structure |
| `tailor_resume` | Adapt your resume to match a specific job description with keyword optimization and ATS targeting. Requires the job description as input |
| `review_resume` | Get a structured, professional critique with a scorecard (1–10 across seven dimensions) and prioritized recommendations. **Read-only** — no changes are made |
| Prompt | Description |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `build_resume` | Guide you step-by-step through building a resume from scratch — basics, summary, experience, education, skills, and design |
| `improve_resume` | Review your resume and suggest concrete improvements to wording, impact, metrics, and structure |
| `tailor_resume` | Adapt your resume to match a specific job description with keyword optimization and ATS targeting. Requires the job description as input |
| `review_resume` | Get a structured, professional critique with a scorecard (1–10 across seven dimensions) and prioritized recommendations. **Read-only** — no changes are made |
## Usage Examples
@@ -166,15 +286,18 @@ Once your MCP client is connected, you can use natural language to interact with
- "Tailor my resume for this job description: ..." (uses `tailor_resume`)
<Tip>
The AI will use `get_resume` to inspect your current resume before making changes with `patch_resume`. This ensures the correct JSON paths are used.
The AI will use `get_resume` to inspect your current resume before making changes with `patch_resume`. This ensures
the correct JSON paths are used.
</Tip>
## Troubleshooting
| Issue | Solution |
| --- | --- |
| "API error (401)" | Your API key is invalid or expired. Create a new one in **Settings → API Keys** |
| "API error (404)" | The resume ID doesn't exist. Use `list_resumes` to find valid IDs |
| "API error (403)" | The resume is locked. Unlock it in the Reactive Resume dashboard |
| Connection refused | Check that the URL is correct and the instance is running |
| Issue | Solution |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| "Unauthorized" with no login prompt | Your client may not support MCP OAuth discovery. Use API key mode (`x-api-key`) |
| OAuth login opens but fails redirect/callback | Confirm your client's MCP OAuth callback settings and retry the connection |
| "API error (401)" | Your API key is invalid or expired. Create a new one in **Settings → API Keys** |
| "API error (404)" | The resume ID doesn't exist. Use `list_resumes` to find valid IDs |
| "API error (403)" | The resume is locked. Unlock it in the Reactive Resume dashboard |
| Connection refused | Check that the URL is correct and the instance is running |
| "ReferenceError: File is not defined" when using `mcp-remote` | You're running Node.js 18. `mcp-remote` requires **Node.js 20 or later** — upgrade with `nvm use 20` or `nvm alias default 20` |
+24 -24
View File
@@ -9,15 +9,16 @@ This is based on the [JSON Patch (RFC 6902)](https://datatracker.ietf.org/doc/ht
## When to Use PATCH vs PUT
| Use case | Method |
| --- | --- |
| Use case | Method |
| -------------------------------------------- | --------- |
| Update a single field (e.g., name, headline) | **PATCH** |
| Add or remove an item in a section | **PATCH** |
| Change template, colors, or fonts | **PATCH** |
| Replace the entire resume data at once | **PUT** |
| Add or remove an item in a section | **PATCH** |
| Change template, colors, or fonts | **PATCH** |
| Replace the entire resume data at once | **PUT** |
<Info>
The PATCH endpoint only modifies the resume `data` (the JSONB column). To update top-level resume properties like `name`, `slug`, `tags`, or `isPublic`, use the existing `PUT /resume/{id}` endpoint.
The PATCH endpoint only modifies the resume `data` (the JSONB column). To update top-level resume properties like
`name`, `slug`, `tags`, or `isPublic`, use the existing `PUT /resume/{id}` endpoint.
</Info>
## Authentication
@@ -40,20 +41,18 @@ The resume ID is taken from the URL path, so the request body only requires the
```json
{
"operations": [
{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" }
]
"operations": [{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" }]
}
```
Each operation is an object with the following properties:
| Property | Required | Description |
| --- | --- | --- |
| `op` | Yes | The operation to perform: `add`, `remove`, `replace`, `move`, `copy`, or `test` |
| `path` | Yes | A JSON Pointer (RFC 6901) to the target location in the resume data |
| `value` | For `add`, `replace`, `test` | The value to use for the operation |
| `from` | For `move`, `copy` | A JSON Pointer to the source location |
| Property | Required | Description |
| -------- | ---------------------------- | ------------------------------------------------------------------------------- |
| `op` | Yes | The operation to perform: `add`, `remove`, `replace`, `move`, `copy`, or `test` |
| `path` | Yes | A JSON Pointer (RFC 6901) to the target location in the resume data |
| `value` | For `add`, `replace`, `test` | The value to use for the operation |
| `from` | For `move`, `copy` | A JSON Pointer to the source location |
## Examples
@@ -102,8 +101,8 @@ curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
```
<Tip>
The path `/sections/experience/items/-` uses the special `-` index, which means "append to the end of the array".
To insert at a specific position, use a numeric index like `/sections/experience/items/0` for the beginning.
The path `/sections/experience/items/-` uses the special `-` index, which means "append to the end of the array". To
insert at a specific position, use a numeric index like `/sections/experience/items/0` for the beginning.
</Tip>
### Remove an Item from a Section
@@ -172,15 +171,16 @@ curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
## Error Handling
| Status | Error Code | Description |
| --- | --- | --- |
| `400` | `INVALID_PATCH_OPERATIONS` | The operations are structurally invalid, target a non-existent path, or produce resume data that fails schema validation. |
| `401` | `UNAUTHORIZED` | Missing or invalid API key. |
| `404` | `NOT_FOUND` | The resume does not exist or does not belong to the authenticated user. |
| `403` | `RESUME_LOCKED` | The resume is locked and cannot be modified. Unlock it first. |
| Status | Error Code | Description |
| ------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `400` | `INVALID_PATCH_OPERATIONS` | The operations are structurally invalid, target a non-existent path, or produce resume data that fails schema validation. |
| `401` | `UNAUTHORIZED` | Missing or invalid API key. |
| `404` | `NOT_FOUND` | The resume does not exist or does not belong to the authenticated user. |
| `403` | `RESUME_LOCKED` | The resume is locked and cannot be modified. Unlock it first. |
<Warning>
All operations in a single request are applied atomically. If any operation fails (including a `test`), none of the operations are applied.
All operations in a single request are applied atomically. If any operation fails (including a `test`), none of the
operations are applied.
</Warning>
## Tips
-1
View File
@@ -36,4 +36,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+14 -2
View File
@@ -17,7 +17,9 @@ Reactive Resume is open-source and can be operated in different ways (for exampl
If you are self-hosting, **you** are the Service Operator and responsible for compliance (including configuring email delivery, storage, and logging appropriately).
<Note>
**Note for self-hosted deployments:** If you are using the official hosted service at <code>rxresu.me</code>, the project's published support contact is <code>hello@amruthpillai.com</code>. Replace the placeholders above with the correct operator details for your deployment if you are self-hosting.
**Note for self-hosted deployments:** If you are using the official hosted service at <code>rxresu.me</code>, the
project's published support contact is <code>hello@amruthpillai.com</code>. Replace the placeholders above with the
correct operator details for your deployment if you are self-hosting.
</Note>
---
@@ -37,6 +39,7 @@ Reactive Resume is a resume builder that lets you:
## Information We Collect
### Account information
When you create an account or sign in, the Service stores:
- **Identity and profile**: name, email address, username/display username, optional profile image
@@ -45,6 +48,7 @@ When you create an account or sign in, the Service stores:
If you use social sign-in (e.g., Google, GitHub, or a custom OAuth provider), the Service stores identifiers and tokens needed to link and maintain that login.
### Authentication and security data
To keep your account secure and keep you signed in, the Service stores:
- **Session data**: session token, session expiry, and (if provided) IP address and user agent
@@ -55,6 +59,7 @@ To keep your account secure and keep you signed in, the Service stores:
The Service Operator may also send **transactional emails** (for example, password reset or email verification). Depending on deployment, these emails may be delivered via an email provider or (in development/testing) the links may be logged to server output.
### Resume content
When you create or import a resume, the Service stores the resume data you provide, which may include personal data such as:
- Contact details, location, summary
@@ -64,12 +69,14 @@ When you create or import a resume, the Service stores the resume data you provi
Resumes may also have metadata such as tags, a slug, visibility (public/private), and an optional resume password (if you lock a resume).
### Public resume access and statistics
If you publish a resume, other users may access it via its public link. The Service may also maintain simple statistics such as:
- View count and download count
- Last viewed/downloaded timestamps
### Uploaded files (e.g., profile pictures)
If you upload files, the Service stores them either:
- On the **local filesystem** of the server (default: under a `data/` directory), or
@@ -78,12 +85,14 @@ If you upload files, the Service stores them either:
Depending on configuration, uploaded files may be publicly accessible (for example, some S3 configurations may default to public read access for uploaded objects). The Service Operator is responsible for selecting appropriate access controls for uploads.
### API keys created in the Service
If the Service Operator enables API key functionality, the Service can store:
- API key metadata and rate limit counters
- The API key value itself (as stored by the Service)
### Local-only preferences and settings
Some settings are stored on your device:
- **Cookies**: UI preferences such as `theme` and `locale`
@@ -121,6 +130,7 @@ The Service does not include built-in behavioral advertising or third-party anal
We share information only as needed to provide the Service:
### PDF generation and screenshots (Printer)
When you export to PDF or request a screenshot, the Service sends a request to a configured printer endpoint (a headless Chromium browser) to render a resume URL.
Depending on your deployment, the printer may be:
@@ -129,12 +139,15 @@ Depending on your deployment, the printer may be:
- Operated by a third party (in which case the third party will process the resume content for rendering)
### Storage providers (optional)
If configured, uploaded files may be stored in an S3-compatible provider. In that case, the storage provider processes and stores file data on behalf of the Service Operator.
### OAuth providers (optional)
If you sign in via OAuth (Google/GitHub/custom), those providers receive authentication requests and return profile information (such as email/name) to the Service, as permitted by your provider settings.
### AI providers (optional, user-supplied)
If you enable AI features and provide your own API key, prompts and generated content may be sent to your selected AI provider (OpenAI, Google, Anthropic), according to your use of those features and the provider's policies.
---
@@ -196,4 +209,3 @@ For privacy requests or questions, contact:
- **Service Operator**: Amruth Pillai
- **Email**: hello@amruthpillai.com
+7 -2
View File
@@ -15,7 +15,9 @@ These Terms of Service (the “Terms”) govern your access to and use of **Reac
If you do not agree, do not use the Service.
<Note>
Replace the placeholders above with the correct operator details for your deployment. If you are using the official hosted service at <code>rxresu.me</code>, the project's published support contact is <code>hello@amruthpillai.com</code>.
Replace the placeholders above with the correct operator details for your deployment. If you are using the official
hosted service at <code>rxresu.me</code>, the project's published support contact is{" "}
<code>hello@amruthpillai.com</code>.
</Note>
---
@@ -45,15 +47,19 @@ The Service Operator may suspend or terminate accounts to protect the Service, o
## Your Content
### What you provide
“Content” includes the resume data you enter or import (text, links, personal details, etc.) and any files you upload (e.g., profile pictures).
### Ownership
You retain ownership of your Content.
### License to operate the Service
You grant the Service Operator a limited license to host, store, process, and display your Content **only as necessary** to provide the Service (for example, to render your resume in the builder, generate PDFs, serve uploaded images, or show a public resume page you publish).
### Public resumes and sharing
If you set a resume as **public** or share a link, you understand that anyone with access to that link may view (and potentially copy) the content you make available. You are responsible for what you choose to publish.
If you password-protect a resume, you are responsible for controlling distribution of that password.
@@ -183,4 +189,3 @@ Questions about these Terms can be sent to:
- **Service Operator**: Amruth Pillai
- **Email**: hello@amruthpillai.com
+79 -63
View File
@@ -8,12 +8,8 @@ description: "A comprehensive guide to self-host Reactive Resume with Docker (Po
Reactive Resume can be self-hosted using Docker in a matter of minutes, and this guide will walk you through the process. Here are some of the services you'll need to get started:
<CardGroup cols={2}>
<Card title="PostgreSQL">
Stores accounts, resumes, and application data.
</Card>
<Card title="Printer">
Generates PDFs and screenshots using a headless Chromium browser.
</Card>
<Card title="PostgreSQL">Stores accounts, resumes, and application data.</Card>
<Card title="Printer">Generates PDFs and screenshots using a headless Chromium browser.</Card>
<Card title="Email (optional)">
SMTP for verification emails, password reset, etc. If not configured, emails are logged to the server console.
</Card>
@@ -30,15 +26,9 @@ You can pull the latest app image from:
## Minimum requirements
<CardGroup cols={1}>
<Card title="Docker + Docker Compose">
Docker Engine + Docker Compose plugin (or Docker Desktop).
</Card>
<Card title="Compute">
2 vCPU / 2 GB RAM minimum (4 GB recommended if Postgres + Printer run on the same host).
</Card>
<Card title="Storage">
Enough for Postgres + uploads (start with 10-20 GB and scale as needed).
</Card>
<Card title="Docker + Docker Compose">Docker Engine + Docker Compose plugin (or Docker Desktop).</Card>
<Card title="Compute">2 vCPU / 2 GB RAM minimum (4 GB recommended if Postgres + Printer run on the same host).</Card>
<Card title="Storage">Enough for Postgres + uploads (start with 10-20 GB and scale as needed).</Card>
</CardGroup>
## Quickstart using Docker Compose
@@ -122,6 +112,7 @@ FLAG_DEBUG_PRINTER="false"
FLAG_DISABLE_SIGNUPS="false"
FLAG_DISABLE_EMAIL_AUTH="false"
```
</Step>
<Step title="Generate AUTH_SECRET">
@@ -143,6 +134,7 @@ FLAG_DISABLE_EMAIL_AUTH="false"
certutil -generateSRS 32 | findstr /r /v "^$" | findstr /v ":" | findstr /v " " | findstr /v "-" | findstr /v "certutil"
```
</CodeGroup>
</Step>
<Step title="Create compose.yml">
@@ -229,6 +221,7 @@ volumes:
<Tip>
Prefer pulling from Docker Hub? Keep <code>amruthpillai/reactive-resume:latest</code>. Prefer GHCR? Swap it to <code>ghcr.io/amruthpillai/reactive-resume:latest</code>.
</Tip>
</Step>
<Step title="Start the stack">
@@ -249,13 +242,15 @@ docker compose logs -f reactive-resume
</CodeGroup>
Reactive Resume should now be available at your `APP_URL` (for the example above: `http://localhost:3000`).
</Step>
</Steps>
## How startup works (database migrations)
<Info>
On every start, the server <b>automatically runs database migrations</b> before serving traffic. If migrations fail (usually due to a DB connection issue), the container will exit with an error.
On every start, the server <b>automatically runs database migrations</b> before serving traffic. If migrations fail
(usually due to a DB connection issue), the container will exit with an error.
</Info>
## Environment variables
@@ -263,18 +258,34 @@ docker compose logs -f reactive-resume
<CardGroup cols={2}>
<Card title="Required">
<ul>
<li><code>APP_URL</code></li>
<li><code>DATABASE_URL</code></li>
<li><code>PRINTER_ENDPOINT</code></li>
<li><code>AUTH_SECRET</code></li>
<li>
<code>APP_URL</code>
</li>
<li>
<code>DATABASE_URL</code>
</li>
<li>
<code>PRINTER_ENDPOINT</code>
</li>
<li>
<code>AUTH_SECRET</code>
</li>
</ul>
</Card>
<Card title="Optional">
<ul>
<li>SMTP (<code>SMTP_&#42;</code>)</li>
<li>Social auth (<code>GOOGLE_&#42;</code>, <code>GITHUB_&#42;</code>)</li>
<li>S3 storage (<code>S3_&#42;</code>)</li>
<li>Feature flags (<code>FLAG_&#42;</code>)</li>
<li>
SMTP (<code>SMTP_&#42;</code>)
</li>
<li>
Social auth (<code>GOOGLE_&#42;</code>, <code>GITHUB_&#42;</code>)
</li>
<li>
S3 storage (<code>S3_&#42;</code>)
</li>
<li>
Feature flags (<code>FLAG_&#42;</code>)
</li>
</ul>
</Card>
</CardGroup>
@@ -302,12 +313,13 @@ docker compose logs -f reactive-resume
Set `PRINTER_ENDPOINT` to `http://chrome:9222` (in Docker Compose) or `http://localhost:9222` (if running externally). This provides the same PDF/screenshot generation with a smaller image footprint.
</Note>
</Accordion>
<Accordion title="Database (PostgreSQL)">
- **`DATABASE_URL`**: Postgres connection string in the format `postgresql://USER:PASSWORD@HOST:PORT/DATABASE`.
- In Docker Compose, set `HOST` to the Postgres service name (e.g. `postgres`), not `localhost`.
</Accordion>
<Accordion title="Database (PostgreSQL)">
- **`DATABASE_URL`**: Postgres connection string in the format `postgresql://USER:PASSWORD@HOST:PORT/DATABASE`. - In
Docker Compose, set `HOST` to the Postgres service name (e.g. `postgres`), not `localhost`.
</Accordion>
<Accordion title="Authentication">
**`AUTH_SECRET`**: Secret used to secure authentication. Changing it invalidates existing sessions.
@@ -330,10 +342,11 @@ openssl rand -hex 32
- **`OAUTH_PROVIDER_NAME`**: Display name in the UI
- **`OAUTH_CLIENT_ID`** / **`OAUTH_CLIENT_SECRET`**: Required for any custom OAuth provider
- **`OAUTH_SCOPES`**: Space-separated scopes (defaults to `openid profile email`)
Configure endpoints using **one** of these methods:
- **Option A — OIDC Discovery (preferred)**: Set `OAUTH_DISCOVERY_URL` to your provider's `.well-known/openid-configuration` URL
- **Option B — Manual URLs**: Set all three: `OAUTH_AUTHORIZATION_URL`, `OAUTH_TOKEN_URL`, and `OAUTH_USER_INFO_URL`
</Accordion>
<Accordion title="Email (SMTP, optional)">
@@ -344,20 +357,20 @@ openssl rand -hex 32
- **`SMTP_USER`** / **`SMTP_PASS`**: SMTP credentials.
- **`SMTP_FROM`**: Default from address (for example, `Reactive Resume <noreply@rxresu.me>`).
- **`SMTP_SECURE`**: `"true"` or `"false"` (string). Match your provider settings.
</Accordion>
<Accordion title="Storage (S3 or local)">
- **Default (local)**: If all `S3_*` values are empty, uploads are stored under `/app/data`. Mount it to persistent storage (for example `./data:/app/data`) or uploads can be lost on container recreation.
- **S3/S3-compatible**: Configure these to store uploads in an S3-compatible service (SeaweedFS, MinIO, AWS S3, etc.):
- **`S3_ACCESS_KEY_ID`**
- **`S3_SECRET_ACCESS_KEY`**
- **`S3_REGION`**
- **`S3_ENDPOINT`** (for S3-compatible providers; may be blank for AWS depending on your setup)
- **`S3_BUCKET`**
- **`S3_FORCE_PATH_STYLE`**: Controls how the bucket is addressed in URLs. Defaults to `"false"`.
- Set to `"true"` for **path-style** URLs (`https://s3-server.com/bucket`). Common with **MinIO**, **SeaweedFS**, and other self-hosted S3-compatible services.
- Set to `"false"` for **virtual-hosted-style** URLs (`https://bucket.s3-server.com`). Common with **AWS S3**, **Cloudflare R2**, and most cloud providers.
</Accordion>
<Accordion title="Storage (S3 or local)">
- **Default (local)**: If all `S3_*` values are empty, uploads are stored under `/app/data`. Mount it to persistent
storage (for example `./data:/app/data`) or uploads can be lost on container recreation. - **S3/S3-compatible**:
Configure these to store uploads in an S3-compatible service (SeaweedFS, MinIO, AWS S3, etc.): -
**`S3_ACCESS_KEY_ID`** - **`S3_SECRET_ACCESS_KEY`** - **`S3_REGION`** - **`S3_ENDPOINT`** (for S3-compatible
providers; may be blank for AWS depending on your setup) - **`S3_BUCKET`** - **`S3_FORCE_PATH_STYLE`**: Controls how
the bucket is addressed in URLs. Defaults to `"false"`. - Set to `"true"` for **path-style** URLs
(`https://s3-server.com/bucket`). Common with **MinIO**, **SeaweedFS**, and other self-hosted S3-compatible services.
- Set to `"false"` for **virtual-hosted-style** URLs (`https://bucket.s3-server.com`). Common with **AWS S3**,
**Cloudflare R2**, and most cloud providers.
</Accordion>
<Accordion title="Feature Flags">
- **`FLAG_DEBUG_PRINTER`**: Bypasses the printer-only access restriction (useful when debugging `/printer/{resumeId}`). Recommended: keep `"false"` in production.
@@ -371,17 +384,19 @@ openssl rand -hex 32
To update your Reactive Resume installation to the latest available version, follow these steps:
1. **Pull the latest images** for all services defined in your Docker Compose file.
1. **Pull the latest images** for all services defined in your Docker Compose file.
```bash
docker compose pull
```
2. **Restart the containers** to run the new images.
2. **Restart the containers** to run the new images.
```bash
docker compose up -d
```
3. **(Optional) Remove old, unused Docker images** to free up disk space.
3. **(Optional) Remove old, unused Docker images** to free up disk space.
```bash
docker image prune -f
```
@@ -430,7 +445,8 @@ Most reverse proxies (such as **Traefik**, **Caddy**, or **nginx** with upstream
This is particularly useful in high-availability setups where you have multiple instances of Reactive Resume. If one instance becomes unhealthy (for example, it loses its database connection), the reverse proxy will stop routing traffic to it until it recovers.
<Tip>
If you're using **Traefik**, it automatically respects Docker health checks when using the Docker provider. Unhealthy containers are excluded from routing without any additional configuration.
If you're using **Traefik**, it automatically respects Docker health checks when using the Docker provider. Unhealthy
containers are excluded from routing without any additional configuration.
</Tip>
### Manually checking health
@@ -459,27 +475,27 @@ A healthy response returns HTTP 200. Any other response (or a connection failure
```
</Accordion>
<Accordion title="Can't sign in / redirects loop / cookies don't stick">
- **Common cause**: `APP_URL` doesn't match the URL you're actually using (especially behind a reverse proxy).
- **Fix**: set `APP_URL` to the public URL (preferably HTTPS) and restart the container.
</Accordion>
<Accordion title="Can't sign in / redirects loop / cookies don't stick">
- **Common cause**: `APP_URL` doesn't match the URL you're actually using (especially behind a reverse proxy). -
**Fix**: set `APP_URL` to the public URL (preferably HTTPS) and restart the container.
</Accordion>
<Accordion title="PDF export fails / printing is stuck">
- **Common cause**: Reactive Resume can't reach the printer or the printer can't reach your app.
- **Checks**:
- `PRINTER_ENDPOINT` should usually be `http://printer:3000` in Compose.
- If you use `PRINTER_APP_URL="http://host.docker.internal:3000"`, ensure `extra_hosts: host-gateway` is present for the printer service.
</Accordion>
<Accordion title="PDF export fails / printing is stuck">
- **Common cause**: Reactive Resume can't reach the printer or the printer can't reach your app. - **Checks**: -
`PRINTER_ENDPOINT` should usually be `http://printer:3000` in Compose. - If you use
`PRINTER_APP_URL="http://host.docker.internal:3000"`, ensure `extra_hosts: host-gateway` is present for the printer
service.
</Accordion>
<Accordion title="Uploads disappear after restart">
- **Cause**: you didn't mount persistent storage for `/app/data` (when not using S3).
- **Fix**: add a volume mount like `./data:/app/data` and redeploy.
</Accordion>
<Accordion title="Uploads disappear after restart">
- **Cause**: you didn't mount persistent storage for `/app/data` (when not using S3). - **Fix**: add a volume mount
like `./data:/app/data` and redeploy.
</Accordion>
<Accordion title="Emails aren't being delivered">
- **Expected behavior**: if SMTP vars are empty, the app logs emails to the console instead.
- **Fix**: configure SMTP and verify your provider's TLS/port settings.
</Accordion>
<Accordion title="Emails aren't being delivered">
- **Expected behavior**: if SMTP vars are empty, the app logs emails to the console instead. - **Fix**: configure SMTP
and verify your provider's TLS/port settings.
</Accordion>
<Accordion title="S3 storage error: ENOTFOUND bucket.endpoint">
- **Common cause**: The S3 client is using virtual-hosted-style addressing (prepending the bucket name to the endpoint), but your S3-compatible storage expects path-style addressing.
+12 -6
View File
@@ -10,7 +10,9 @@ Every self-hosted setup is unique. You might be running on a single VPS, a Kuber
These examples go beyond the basic setup in the [Self-Hosting with Docker](/self-hosting/docker) guide, showing production-ready configurations with reverse proxies, SSL termination, and other common patterns.
<Info>
**Help others by sharing your setup!** If you have a working configuration that isn't covered here, I'd love to include it. Simply [open a pull request](https://github.com/amruthpillai/reactive-resume) with your example added to this page. Your contribution helps the community and makes self-hosting easier for everyone.
**Help others by sharing your setup!** If you have a working configuration that isn't covered here, I'd love to
include it. Simply [open a pull request](https://github.com/amruthpillai/reactive-resume) with your example added to
this page. Your contribution helps the community and makes self-hosting easier for everyone.
</Info>
---
@@ -20,7 +22,8 @@ These examples go beyond the basic setup in the [Self-Hosting with Docker](/self
This example uses [Traefik](https://traefik.io/) as a reverse proxy with automatic SSL certificate management via Let's Encrypt. Only the Reactive Resume app is exposed through Traefik—Postgres and the printer remain on an internal network.
<Tip>
Traefik automatically discovers services via Docker labels and handles SSL certificates, making it ideal for setups where you want minimal configuration.
Traefik automatically discovers services via Docker labels and handles SSL certificates, making it ideal for setups
where you want minimal configuration.
</Tip>
```yaml compose-traefik.yml lines expandable
@@ -291,7 +294,8 @@ http {
```
<Tip>
For automatic SSL certificates with nginx, consider using [certbot](https://certbot.eff.org/) with the `--nginx` plugin, or a companion container like [nginx-proxy-acme](https://github.com/nginx-proxy/acme-companion).
For automatic SSL certificates with nginx, consider using [certbot](https://certbot.eff.org/) with the `--nginx`
plugin, or a companion container like [nginx-proxy-acme](https://github.com/nginx-proxy/acme-companion).
</Tip>
---
@@ -301,7 +305,8 @@ http {
This example demonstrates a production-grade Docker Swarm deployment with multiple replicas, health checks, rolling updates, and Traefik integration. It includes SeaweedFS for S3-compatible storage and a PostgreSQL database with custom configuration.
<Tip>
Docker Swarm is great for multi-node deployments where you need high availability and easy scaling. The app service is configured with 2 replicas and rolling update strategy.
Docker Swarm is great for multi-node deployments where you need high availability and easy scaling. The app service is
configured with 2 replicas and rolling update strategy.
</Tip>
```yaml compose-swarm.yml lines expandable
@@ -472,7 +477,8 @@ docker stack rm reactive_resume
```
<Note>
This example assumes you have an external Traefik network already set up. Adjust the `traefik_network` reference and labels based on your Traefik configuration.
This example assumes you have an external Traefik network already set up. Adjust the `traefik_network` reference and
labels based on your Traefik configuration.
</Note>
---
@@ -493,4 +499,4 @@ To contribute, [open a pull request](https://github.com/amruthpillai/reactive-re
1. A brief description of when/why someone would use this setup
2. The complete Docker Compose (or equivalent) configuration
3. Any additional configuration files (nginx.conf, etc.)
4. Required environment variables
4. Required environment variables
+59 -78
View File
@@ -8,7 +8,8 @@ description: "A step-by-step guide to migrate your Reactive Resume instance from
This guide walks you through migrating your Reactive Resume installation from **v4 to v5**. The migration process involves setting up a new v5 instance alongside your existing v4 instance, then transferring your users and resumes to the new system.
<Warning>
**Keep your v4 instance running** until you have successfully migrated all data to v5 and verified everything works correctly. This ensures you have a fallback in case anything goes wrong during the migration.
**Keep your v4 instance running** until you have successfully migrated all data to v5 and verified everything works
correctly. This ensures you have a fallback in case anything goes wrong during the migration.
</Warning>
## Prerequisites
@@ -16,18 +17,15 @@ This guide walks you through migrating your Reactive Resume installation from **
Before starting the migration, ensure you have:
<CardGroup cols={2}>
<Card title="Running v4 Instance">
Your existing Reactive Resume v4 instance should be running and accessible.
</Card>
<Card title="Running v4 Instance">Your existing Reactive Resume v4 instance should be running and accessible.</Card>
<Card title="New v5 Instance">
A fresh Reactive Resume v5 instance set up and running. Follow the [Self-Hosting with Docker](/self-hosting/docker) guide if you haven't done this yet.
A fresh Reactive Resume v5 instance set up and running. Follow the [Self-Hosting with Docker](/self-hosting/docker)
guide if you haven't done this yet.
</Card>
<Card title="Database Access">
Access to both your v4 PostgreSQL database (source) and v5 PostgreSQL database (target).
</Card>
<Card title="Backup">
A recent backup of your v4 database. Always backup before any migration.
</Card>
<Card title="Backup">A recent backup of your v4 database. Always backup before any migration.</Card>
</CardGroup>
## Choosing a Migration Method
@@ -36,14 +34,12 @@ The best migration approach depends on the size of your instance:
<CardGroup cols={2}>
<Card title="Manual Migration" icon="hand">
**Best for**: Small instances with a handful of resumes.
Uses the built-in Import Dialog to manually convert resumes one at a time.
**Best for**: Small instances with a handful of resumes. Uses the built-in Import Dialog to manually convert resumes
one at a time.
</Card>
<Card title="Automated Migration" icon="robot">
**Best for**: Large instances with many users and resumes.
Uses migration scripts to batch-process all users and resumes automatically.
**Best for**: Large instances with many users and resumes. Uses migration scripts to batch-process all users and
resumes automatically.
</Card>
</CardGroup>
@@ -56,15 +52,11 @@ If you have only a few resumes to migrate, the simplest approach is to use the *
In your v4 instance, go to each resume and export it as JSON. This creates a portable file containing all your resume data.
</Step>
<Step title="Import into v5">
In your new v5 instance:
1. Log in or create a new account
2. Click **Create Resume** or use the **Import** option
3. Select the **Reactive Resume v4** format
4. Upload your exported JSON file
The import process automatically converts the v4 format to v5.
</Step>
<Step title="Import into v5">
In your new v5 instance: 1. Log in or create a new account 2. Click **Create Resume** or use the **Import** option 3.
Select the **Reactive Resume v4** format 4. Upload your exported JSON file The import process automatically converts
the v4 format to v5.
</Step>
<Step title="Verify and repeat">
Review the imported resume to ensure all data transferred correctly. Repeat for each resume you need to migrate.
@@ -72,7 +64,8 @@ If you have only a few resumes to migrate, the simplest approach is to use the *
</Steps>
<Tip>
The Import Dialog handles the schema conversion automatically, so you don't need to worry about format differences between v4 and v5.
The Import Dialog handles the schema conversion automatically, so you don't need to worry about format differences
between v4 and v5.
</Tip>
## Automated Migration (Large Instances)
@@ -85,25 +78,15 @@ To run the migration scripts, you need the following installed on your host mach
<CardGroup cols={1}>
<Card title="Node.js Runtime">
**tsx** - TypeScript execution environment. Install globally with:
```bash
npm install -g tsx
```
**tsx** - TypeScript execution environment. Install globally with: ```bash npm install -g tsx ```
</Card>
<Card title="Environment Loader">
**dotenvx** (or any tool to load `.env` files). Install globally with:
```bash
npm install -g @dotenvx/dotenvx
```
**dotenvx** (or any tool to load `.env` files). Install globally with: ```bash npm install -g @dotenvx/dotenvx ```
Alternatively, you can use `dotenv`, `direnv`, or export the variables manually.
</Card>
<Card title="Reactive Resume Source Code">
Clone the Reactive Resume repository to access the migration scripts:
```bash
git clone https://github.com/amruthpillai/reactive-resume.git
cd reactive-resume
pnpm install
```
Clone the Reactive Resume repository to access the migration scripts: ```bash git clone
https://github.com/amruthpillai/reactive-resume.git cd reactive-resume pnpm install ```
</Card>
</CardGroup>
@@ -120,7 +103,8 @@ PRODUCTION_DATABASE_URL="postgresql://user:password@localhost:5432/reactive_resu
```
<Warning>
Double-check your connection strings! `DATABASE_URL` should point to your **new v5 database** and `PRODUCTION_DATABASE_URL` should point to your **old v4 database**. Mixing these up could cause data loss.
Double-check your connection strings! `DATABASE_URL` should point to your **new v5 database** and
`PRODUCTION_DATABASE_URL` should point to your **old v4 database**. Mixing these up could cause data loss.
</Warning>
### Step 1: Migrate Users
@@ -140,7 +124,8 @@ dotenvx run -- tsx scripts/migration/user.ts
- Creates a mapping file (`scripts/migration/user-id-map.json`) that links old user IDs to new ones
<Info>
The script saves progress automatically. If interrupted (Ctrl+C), you can run it again and it will resume from where it left off.
The script saves progress automatically. If interrupted (Ctrl+C), you can run it again and it will resume from where
it left off.
</Info>
**Expected output:**
@@ -179,9 +164,7 @@ dotenvx run -- tsx scripts/migration/resume.ts
- Migrates resume statistics (views, downloads)
- Preserves visibility settings (public/private) and lock status
<Info>
Like the user script, the resume migration also saves progress and can be resumed if interrupted.
</Info>
<Info>Like the user script, the resume migration also saves progress and can be resumed if interrupted.</Info>
**Expected output:**
@@ -213,7 +196,8 @@ Both migration scripts support graceful shutdown and resume:
- **Resume migration**: Run the script again to continue from where you left off
<Tip>
If you need to restart the migration from scratch, delete the progress files and the user ID mapping file before running the scripts again.
If you need to restart the migration from scratch, delete the progress files and the user ID mapping file before
running the scripts again.
</Tip>
## Post-Migration Steps
@@ -225,15 +209,14 @@ After completing the migration:
Log into your v5 instance and spot-check several user accounts and resumes to ensure data transferred correctly.
</Step>
<Step title="Test functionality">
- Create a test resume and export it as PDF
- Verify social logins work (if configured)
- Check that two-factor authentication works for migrated users
</Step>
<Step title="Test functionality">
- Create a test resume and export it as PDF - Verify social logins work (if configured) - Check that two-factor
authentication works for migrated users
</Step>
<Step title="Update DNS/Proxy">
Once verified, update your DNS records or reverse proxy to point to the new v5 instance.
</Step>
<Step title="Update DNS/Proxy">
Once verified, update your DNS records or reverse proxy to point to the new v5 instance.
</Step>
<Step title="Decommission v4">
After confirming everything works and allowing a grace period, you can safely shut down your v4 instance.
@@ -247,17 +230,20 @@ After completing the migration:
Users who signed up with email/password can continue using their existing passwords. No password reset is required after migration.
</Accordion>
<Accordion title="Profile pictures are not migrated">
User profile pictures (avatars) are stored as references in the database. If you were using S3 storage, ensure your v5 instance has access to the same bucket, or users may need to re-upload their avatars.
</Accordion>
<Accordion title="Profile pictures are not migrated">
User profile pictures (avatars) are stored as references in the database. If you were using S3 storage, ensure your v5
instance has access to the same bucket, or users may need to re-upload their avatars.
</Accordion>
<Accordion title="Resume images and uploads">
Similar to profile pictures, any images embedded in resumes need to be accessible from your v5 instance. Consider migrating your storage bucket or updating references as needed.
</Accordion>
<Accordion title="Resume images and uploads">
Similar to profile pictures, any images embedded in resumes need to be accessible from your v5 instance. Consider
migrating your storage bucket or updating references as needed.
</Accordion>
<Accordion title="OAuth provider changes">
If you're using custom OAuth providers, ensure the same providers are configured in v5 with matching client IDs. Users authenticate with the same provider ID, so mismatched configurations will cause login failures.
</Accordion>
<Accordion title="OAuth provider changes">
If you're using custom OAuth providers, ensure the same providers are configured in v5 with matching client IDs. Users
authenticate with the same provider ID, so mismatched configurations will cause login failures.
</Accordion>
<Accordion title="Schema differences">
The v5 schema has some changes from v4:
@@ -276,25 +262,20 @@ After completing the migration:
Ensure your `.env` file contains both `DATABASE_URL` and `PRODUCTION_DATABASE_URL`, and that you're using a tool like `dotenvx` to load them before running the script.
</Accordion>
<Accordion title="Users are skipped during migration">
Users are skipped if:
- Their email already exists in the v5 database
- Their username already exists in the v5 database
- They were already migrated in a previous run
Check the console output for skip reasons.
</Accordion>
<Accordion title="Users are skipped during migration">
Users are skipped if: - Their email already exists in the v5 database - Their username already exists in the v5
database - They were already migrated in a previous run Check the console output for skip reasons.
</Accordion>
<Accordion title="Resumes are skipped during migration">
Resumes are skipped if:
- The associated user wasn't migrated (user ID not in mapping file)
- A resume with the same slug already exists for that user
- They were already migrated in a previous run
</Accordion>
<Accordion title="Resumes are skipped during migration">
Resumes are skipped if: - The associated user wasn't migrated (user ID not in mapping file) - A resume with the same
slug already exists for that user - They were already migrated in a previous run
</Accordion>
<Accordion title="Resume data parsing fails">
If a resume can't be parsed from v4 format, it will be created with default empty data. Check the console output for warnings about specific resumes, and consider manually importing those using the Import Dialog.
</Accordion>
<Accordion title="Resume data parsing fails">
If a resume can't be parsed from v4 format, it will be created with default empty data. Check the console output for
warnings about specific resumes, and consider manually importing those using the Import Dialog.
</Accordion>
<Accordion title="Migration is slow">
The scripts process data in batches to avoid overwhelming the database. For very large instances:
+42 -40
View File
@@ -12,7 +12,8 @@ Reactive Resume supports custom OAuth providers, allowing you to integrate with
- Integrate with existing LDAP/Active Directory infrastructure
<Info>
Custom OAuth is designed for **self-hosted instances**. If you're using the hosted version at [rxresu.me](https://rxresu.me), you can use the built-in Google and GitHub sign-in options.
Custom OAuth is designed for **self-hosted instances**. If you're using the hosted version at
[rxresu.me](https://rxresu.me), you can use the built-in Google and GitHub sign-in options.
</Info>
## Environment Variables
@@ -21,9 +22,9 @@ To enable a custom OAuth provider, you need to configure the following environme
### Required Variables
| Variable | Description |
|----------|-------------|
| `OAUTH_CLIENT_ID` | The client ID provided by your OAuth provider |
| Variable | Description |
| --------------------- | ------------------------------------------------- |
| `OAUTH_CLIENT_ID` | The client ID provided by your OAuth provider |
| `OAUTH_CLIENT_SECRET` | The client secret provided by your OAuth provider |
### Endpoint Configuration
@@ -44,6 +45,7 @@ You must configure endpoints using **one** of these two methods:
- Authentik: `https://auth.example.com/application/o/reactive-resume/.well-known/openid-configuration`
- Keycloak: `https://keycloak.example.com/realms/myrealm/.well-known/openid-configuration`
- Authelia: `https://auth.example.com/.well-known/openid-configuration`
</Tab>
<Tab title="Option B: Manual URLs">
@@ -54,15 +56,16 @@ You must configure endpoints using **one** of these two methods:
| `OAUTH_AUTHORIZATION_URL` | The URL where users are redirected to authorize |
| `OAUTH_TOKEN_URL` | The URL to exchange authorization codes for tokens |
| `OAUTH_USER_INFO_URL` | The URL to fetch user profile information |
</Tab>
</Tabs>
### Optional Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `OAUTH_PROVIDER_NAME` | Display name shown on the sign-in button | `Custom OAuth` |
| `OAUTH_SCOPES` | Space-separated list of OAuth scopes | `openid profile email` |
| Variable | Description | Default |
| --------------------- | ---------------------------------------- | ---------------------- |
| `OAUTH_PROVIDER_NAME` | Display name shown on the sign-in button | `Custom OAuth` |
| `OAUTH_SCOPES` | Space-separated list of OAuth scopes | `openid profile email` |
## Callback URL
@@ -79,7 +82,8 @@ https://resume.example.com/api/auth/oauth2/callback/custom
```
<Warning>
Make sure the callback URL exactly matches what you configure in your OAuth provider. A mismatch will cause authentication to fail.
Make sure the callback URL exactly matches what you configure in your OAuth provider. A mismatch will cause
authentication to fail.
</Warning>
## Profile Mapping
@@ -87,11 +91,11 @@ https://resume.example.com/api/auth/oauth2/callback/custom
Reactive Resume automatically maps user profile data from the OAuth provider. The following fields are used:
| Reactive Resume Field | OAuth Profile Fields (in order of preference) |
|-----------------------|-----------------------------------------------|
| **Email** (required) | `email` |
| **Name** | `name` → `preferred_username` → email prefix |
| **Username** | `preferred_username` → email prefix |
| **Avatar** | `image` → `picture` → `avatar_url` |
| --------------------- | --------------------------------------------- |
| **Email** (required) | `email` |
| **Name** | `name` → `preferred_username` → email prefix |
| **Username** | `preferred_username` → email prefix |
| **Avatar** | `image` → `picture` → `avatar_url` |
<Info>
The OAuth provider **must** return an email address. If no email is provided, authentication will fail with an error.
@@ -109,6 +113,7 @@ Reactive Resume automatically maps user profile data from the OAuth provider. Th
- **Authorization flow**: Use your preferred authorization flow
- **Client type**: Confidential
- **Redirect URIs**: `https://resume.example.com/api/auth/oauth2/callback/custom`
</Step>
<Step title="Create an Application">
@@ -117,11 +122,10 @@ Reactive Resume automatically maps user profile data from the OAuth provider. Th
- **Name**: Reactive Resume
- **Slug**: `reactive-resume`
- **Provider**: Select the provider you just created
</Step>
<Step title="Copy credentials">
From the provider settings, copy the **Client ID** and **Client Secret**.
</Step>
<Step title="Copy credentials">From the provider settings, copy the **Client ID** and **Client Secret**.</Step>
<Step title="Configure environment variables">
```bash .env
@@ -145,9 +149,9 @@ identity_providers:
clients:
- client_id: reactive-resume
client_name: Reactive Resume
client_secret: 'your-hashed-secret' # Use authelia hash-password to generate
client_secret: "your-hashed-secret" # Use authelia hash-password to generate
public: false
authorization_policy: two_factor # or one_factor
authorization_policy: two_factor # or one_factor
redirect_uris:
- https://resume.example.com/api/auth/oauth2/callback/custom
scopes:
@@ -160,6 +164,7 @@ identity_providers:
<Info>
Generate the hashed secret using: `authelia crypto hash generate pbkdf2 --variant sha512`
</Info>
</Step>
<Step title="Configure environment variables">
@@ -173,6 +178,7 @@ OAUTH_DISCOVERY_URL="https://auth.example.com/.well-known/openid-configuration"
<Warning>
Use the **plain text** secret in Reactive Resume's environment, not the hashed version used in Authelia's configuration.
</Warning>
</Step>
</Steps>
@@ -187,17 +193,17 @@ OAUTH_DISCOVERY_URL="https://auth.example.com/.well-known/openid-configuration"
3. Set **Client ID** (e.g., `reactive-resume`)
4. Set **Client authentication** to **On**
5. Enable **Standard flow**
</Step>
<Step title="Configure redirect URI">
In the client settings, add the redirect URI:
- **Valid redirect URIs**: `https://resume.example.com/api/auth/oauth2/callback/custom`
</Step>
<Step title="Copy credentials">
Go to the **Credentials** tab and copy the **Client secret**.
</Step>
<Step title="Copy credentials">Go to the **Credentials** tab and copy the **Client secret**.</Step>
<Step title="Configure environment variables">
```bash .env
@@ -266,17 +272,11 @@ OAUTH_DISCOVERY_URL="https://auth.company.com/application/o/reactive-resume/.wel
- The user has an email address set in the identity provider
</Accordion>
<Accordion title="Redirect URI mismatch error">
The callback URL configured in your OAuth provider must exactly match:
```
{APP_URL}/api/auth/oauth2/callback/custom
```
Common issues:
- Trailing slash mismatch
- HTTP vs HTTPS mismatch
- Port number differences
- Path case sensitivity
</Accordion>
<Accordion title="Redirect URI mismatch error">
The callback URL configured in your OAuth provider must exactly match: ```
{APP_URL}/api/auth/oauth2/callback/custom ``` Common issues: - Trailing slash mismatch - HTTP vs HTTPS mismatch - Port
number differences - Path case sensitivity
</Accordion>
<Accordion title="Custom OAuth button not appearing">
The custom OAuth option only appears if both `OAUTH_CLIENT_ID` and `OAUTH_CLIENT_SECRET` are set, **and** either:
@@ -284,14 +284,14 @@ OAUTH_DISCOVERY_URL="https://auth.company.com/application/o/reactive-resume/.wel
- All three manual URLs are set (`OAUTH_AUTHORIZATION_URL`, `OAUTH_TOKEN_URL`, `OAUTH_USER_INFO_URL`)
Double-check your environment variables and restart the container.
</Accordion>
<Accordion title="CORS or network errors during authentication">
If running behind a reverse proxy:
- Ensure `APP_URL` matches your public URL
- Verify the proxy passes the correct headers (`X-Forwarded-Proto`, `X-Forwarded-Host`)
- Check that your OAuth provider allows the redirect URI from your domain
</Accordion>
<Accordion title="CORS or network errors during authentication">
If running behind a reverse proxy: - Ensure `APP_URL` matches your public URL - Verify the proxy passes the correct
headers (`X-Forwarded-Proto`, `X-Forwarded-Host`) - Check that your OAuth provider allows the redirect URI from your
domain
</Accordion>
<Accordion title="User profile data is missing or incorrect">
The profile mapping depends on your provider returning standard claims:
@@ -300,6 +300,7 @@ OAUTH_DISCOVERY_URL="https://auth.company.com/application/o/reactive-resume/.wel
- `picture`, `image`, or `avatar_url` for avatar
Check your provider's documentation to ensure these claims are included in the ID token or userinfo response.
</Accordion>
</AccordionGroup>
@@ -307,7 +308,8 @@ OAUTH_DISCOVERY_URL="https://auth.company.com/application/o/reactive-resume/.wel
<CardGroup cols={2}>
<Card title="Use HTTPS" icon="lock">
Always use HTTPS for both your Reactive Resume instance and OAuth provider in production. OAuth tokens should never be transmitted over unencrypted connections.
Always use HTTPS for both your Reactive Resume instance and OAuth provider in production. OAuth tokens should never
be transmitted over unencrypted connections.
</Card>
<Card title="Protect secrets" icon="key">
Never commit `OAUTH_CLIENT_SECRET` to version control. Use environment variables or a secrets manager.
+16696 -1
View File
File diff suppressed because one or more lines are too long
+6 -6
View File
@@ -1,10 +1,10 @@
import { defineConfig } from "drizzle-kit";
export default defineConfig({
out: "./migrations",
dialect: "postgresql",
schema: "./src/integrations/drizzle/schema.ts",
dbCredentials: {
url: process.env.DATABASE_URL,
},
out: "./migrations",
dialect: "postgresql",
schema: "./src/integrations/drizzle/schema.ts",
dbCredentials: {
url: process.env.DATABASE_URL,
},
});
+7 -7
View File
@@ -1,9 +1,9 @@
{
"$schema": "https://unpkg.com/knip@5/schema.json",
"entry": ["src/router.tsx"],
"tailwind": { "entry": ["src/styles.css"] },
"project": ["src/**/*.{js,jsx,ts,tsx,mdx,css}"],
"ignoreBinaries": ["mint"],
"ignoreDependencies": ["npm-check-updates", "node-addon-api", "node-gyp"],
"ignore": ["src/schema/**/*.ts", "src/components/**/*.{ts,tsx}"]
"$schema": "https://unpkg.com/knip@5/schema.json",
"entry": ["src/server.ts", "src/router.tsx"],
"tailwind": { "entry": ["src/styles.css"] },
"project": ["src/**/*.{js,jsx,ts,tsx,mdx,css}"],
"ignoreBinaries": ["mint"],
"ignoreDependencies": ["npm-check-updates", "node-addon-api", "node-gyp"],
"ignore": ["src/schema/**/*.ts", "src/components/ui/**/*.{ts,tsx}"]
}
+72 -71
View File
@@ -1,75 +1,76 @@
import { defineConfig } from "@lingui/cli";
export default defineConfig({
sourceLocale: "en-US",
pseudoLocale: "zu-ZA",
locales: [
"af-ZA",
"am-ET",
"ar-SA",
"az-AZ",
"bg-BG",
"bn-BD",
"ca-ES",
"cs-CZ",
"da-DK",
"de-DE",
"el-GR",
"en-US",
"en-GB",
"es-ES",
"fa-IR",
"fi-FI",
"fr-FR",
"he-IL",
"hi-IN",
"hu-HU",
"id-ID",
"it-IT",
"ja-JP",
"km-KH",
"kn-IN",
"ko-KR",
"lt-LT",
"lv-LV",
"ml-IN",
"mr-IN",
"ms-MY",
"ne-NP",
"nl-NL",
"no-NO",
"or-IN",
"pl-PL",
"pt-BR",
"pt-PT",
"ro-RO",
"ru-RU",
"sk-SK",
"sq-AL",
"sr-SP",
"sv-SE",
"ta-IN",
"te-IN",
"th-TH",
"tr-TR",
"uk-UA",
"uz-UZ",
"vi-VN",
"zh-CN",
"zh-TW",
"zu-ZA",
],
fallbackLocales: {
"zu-ZA": "en-US",
default: "en-US",
},
formatOptions: {
lineNumbers: false,
},
catalogs: [
{
path: "<rootDir>/locales/{locale}",
include: ["src"],
},
],
sourceLocale: "en-US",
pseudoLocale: "zu-ZA",
locales: [
"af-ZA",
"am-ET",
"ar-SA",
"az-AZ",
"bg-BG",
"bn-BD",
"ca-ES",
"cs-CZ",
"da-DK",
"de-DE",
"el-GR",
"en-US",
"en-GB",
"es-ES",
"fa-IR",
"fi-FI",
"fr-FR",
"he-IL",
"hi-IN",
"hu-HU",
"id-ID",
"it-IT",
"ja-JP",
"km-KH",
"kn-IN",
"ko-KR",
"lt-LT",
"lv-LV",
"ml-IN",
"mr-IN",
"ms-MY",
"ne-NP",
"nl-NL",
"no-NO",
"or-IN",
"pl-PL",
"pt-BR",
"pt-PT",
"ro-RO",
"ru-RU",
"sk-SK",
"sl-SI",
"sq-AL",
"sr-SP",
"sv-SE",
"ta-IN",
"te-IN",
"th-TH",
"tr-TR",
"uk-UA",
"uz-UZ",
"vi-VN",
"zh-CN",
"zh-TW",
"zu-ZA",
],
fallbackLocales: {
"zu-ZA": "en-US",
default: "en-US",
},
formatOptions: {
lineNumbers: false,
},
catalogs: [
{
path: "<rootDir>/locales/{locale}",
include: ["src"],
},
],
});
BIN
View File
Binary file not shown.
+397 -53
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:08\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -45,6 +45,22 @@ msgstr "{0, plural, one {# ንጥል} other {# ንጥሎች}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ሚና} other {# ሚናዎች}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
@@ -52,6 +68,14 @@ msgstr ""
msgid "{column, plural, one {# Column} other {# Columns}}"
msgstr "{column, plural, one {# አምድ} other {# አምዶች}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr ""
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>በመጨረሻ፣</0><1>ነፃ እና ክፍት ምንጭ የሆነ የየታሪክ ማቅረቢያ መገንቢያ</1>"
@@ -202,7 +226,7 @@ msgstr "ከዚህ በፊት አምድ ያክሉ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "በተመሳሳይ ኩባንያ ውስጥ የስራ እድገትን ለማሳየት ብዙ ሚናዎችን ያክሉ።"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "ገጽ ያክሉ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "ሚና ጨምር"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,8 +244,13 @@ msgstr "ከዚህ በኋላ ረድፍ ያክሉ"
msgid "Add Row Before"
msgstr "ከዚህ በፊት ረድፍ ያክሉ"
#: src/components/ai/chat.tsx
msgid "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr ""
#: src/utils/locale.ts
@@ -233,8 +262,8 @@ msgstr "አፍሪካንስ"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr ""
#: src/utils/locale.ts
@@ -247,7 +276,7 @@ msgstr "ለሁሉም ይገናኛል"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "ቀድሞ መለያ አለዎት? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "የየታሪክዎን ማምጣት ላይ ሳለ ያልታወቀ ስህ
msgid "And many more..."
msgstr "እና ሌሎችም ብዙ…"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "የየታሪክ የህዝብ አገናኙን የሚጎበኙ ማንኛውም ሰው ለመድረስ ይህን የይለፍ ቃል መግባት ይኖርበታል።"
@@ -297,6 +339,10 @@ msgstr "API ቁልፎች"
msgid "API Reference"
msgstr "API ማጣቀሻ"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "መተግበሪያ"
@@ -305,13 +351,25 @@ msgstr "መተግበሪያ"
msgid "Application Statistics"
msgstr "የመተግበሪያ ስታቲስቲክስ"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr ""
#: src/utils/locale.ts
msgid "Arabic"
msgstr "ዓረብኛ"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "ይህን ውይይት መዝጋት እንደሚፈልጉ እርግጠኛ ነዎት?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -348,10 +406,6 @@ msgstr "የስልጠና መስክ"
msgid "Artificial Intelligence"
msgstr "አርቲፊሻል ኢንተለጀንስ"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "የመገናኛ መጠን"
@@ -405,6 +459,10 @@ msgstr "መሰረታዊ"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ውብ ቴምፕሌቶችን ይመርጡ፣ ተጨማሪዎችም በመንገድ ላይ ናቸው።"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr ""
#: src/utils/locale.ts
msgid "Bengali"
msgstr "ቤንጋሊኛ"
@@ -485,6 +543,7 @@ msgstr "የየታሪክዬን ወደ PDF ልላክ እችላለሁ?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "መመለሻን ወደ መሀከል አድርግ"
msgid "Certifications"
msgstr "የማረጋገጫዎች"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "ቋንቋ ቀይር"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "ቋንቋን ወደ ... ቀይር"
@@ -544,8 +607,8 @@ msgstr "ቻይንኛ (ባለባለት)"
msgid "Circle"
msgstr "ክብ"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr ""
#: src/dialogs/resume/import.tsx
@@ -555,7 +618,7 @@ msgstr "ፋይል ለማምጣት ለመምረጥ እዚህ ጠቅ ያድርጉ"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "ዝጋ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "ኩባንያ"
msgid "Completely free, forever, no hidden costs."
msgstr "ፍጹም ነፃ፣ ለዘላለም፣ ምንም የተደበቀ ወጪ የለም።"
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr ""
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -592,7 +659,7 @@ msgstr "አገናኝ"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "ይዘት"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -610,6 +677,10 @@ msgstr "ትቆሙበት ቦታ ከዚያ ይቀጥሉ"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "ትቆሙበት ቦታ በመውሰድ በ Reactive Resume ወይም በሌላ የየታሪክ ማቅረቢያ የፈጠራችሁትን ያለ የየታሪክ መረጃ ያስመጡ። የሚደገፉ ቅርጸ ፋይሎች PDF፣ Microsoft Word እና ከ Reactive Resume የ JSON ፋይሎችን ያካትታሉ።"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "ድጋፎች የስህተት እርማቶችን፣ የደህንነት ዝመናዎችን እና መተግበሪያው በማለፊያ እንዲሰራ የሚረዱ ቀጣይ ማሻሻያዎችን ይደግፋሉ።"
@@ -634,10 +705,18 @@ msgstr "ይህንን ሚስጥራዊ ቁልፍ ቅጂ አድርጉ እና ውስ
msgid "Copy URL"
msgstr "URL ቅጂ አድርግ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "ማመልከቻ ደብዳቤ"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -678,7 +757,7 @@ msgstr "አዲስ ማረጋገጫ ፍጠር"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "አዲስ ማመልከቻ ደብዳቤ ፍጠር"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -729,7 +808,7 @@ msgstr "አዲስ ችሎታ ፍጠር"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "አዲስ ማጠቃለያ ንጥል ፍጠር"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -799,6 +878,10 @@ msgstr "የመረጃ ደህንነት"
msgid "Date"
msgstr "ቀን"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr ""
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "ዲግሪ"
@@ -855,6 +938,7 @@ msgstr "የየታሪክዎን በመሰረዝ ላይ…"
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "መግለጫ"
@@ -862,6 +946,18 @@ msgstr "መግለጫ"
msgid "Design"
msgstr "ዲዛይን"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr ""
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "ሰነዶች"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "መለያ የለዎትም? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "ለ Reactive Resume መዋጮ አድርግ"
msgid "Download"
msgstr "አውርድ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "የየታሪክዎን ቅጂ በ JSON ቅርጸ ፋይል ያውርዱ። ይህንን ፋይል ለመመዝገብ ወይም የየታሪክዎን ወደ AI አጋር ጨምሮ በሌሎች መተግበሪያዎች ለማስመጣት ይጠቀሙበት።"
@@ -913,6 +1013,10 @@ msgstr "የየታሪክዎን ቅጂ በ JSON ቅርጸ ፋይል ያውርዱ
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "የየታሪክዎን ቅጂ በ PDF ቅርጽ ያውርዱ። ይህንን ፋይል ለህትመት ወይም የየታሪክዎን ለማስተዋወቅ በቀላሉ ለመካፈል ይጠቀሙበት።"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "JSON አውርድ"
@@ -958,8 +1062,16 @@ msgstr "የየታሪክዎን ቅጂ በመፍጠር ላይ…"
msgid "Dutch"
msgstr "ደች"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
@@ -1013,7 +1125,7 @@ msgstr "እንግሊዝኛ"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "እንግሊዝኛ (ዩናይትድ ኪንግደም)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "ሁለት-ደረጃ ማረጋገጫን ስትቆጣጠሩ የሚሆን
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ሁለት-ደረጃ ማረጋገጫን ለማቦዘን የይለፍ ቃልዎን ያስገቡ። 2FA ባቦዘነ ጊዜ መለያዎ ያነሰ ደህንነት ይኖረዋል።"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "እያንዳንዱ መዋጮ፣ ትልቅ ወይም ትንሽ፣ በፕሮጀክቱ ላይ ትልቅ ልዩነት ያመጣል።<0/>ስለ ድጋፍዎ እናመሰግናለን!"
@@ -1055,11 +1171,24 @@ 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/components/input/rich-input.tsx
msgid "Exit Fullscreen"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ሙሉ ስክሪን ውጣ"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "ልምድ"
@@ -1085,12 +1214,20 @@ msgstr "Reactive Resumeን ከመተግበሪያዎቻችሁ ጋር እንዴት
msgid "Export"
msgstr "ወደ ውጪ አስመጣ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr ""
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "ሁለት-ደረጃ ማረጋገጫን ማሰናዳት አልተሳካም።"
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr "መግባት አልተሳካም። እባክዎ እንደገና ይሞክሩ።"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr ""
#: src/routes/_home/-sections/features.tsx
@@ -1172,9 +1309,13 @@ msgstr "ፈረንሳይኛ"
msgid "Full Width"
msgstr "ሙሉ ወፍር "
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "ሙሉ ስክሪን"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1188,6 +1329,10 @@ msgstr "ጀርመንኛ"
msgid "Get Started"
msgstr "ጀምር"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr ""
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "ተመለስ"
msgid "Go to dashboard"
msgstr "ወደ ዳሽቦርዱ ሂድ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "ወደ ... ሂድ"
@@ -1338,6 +1487,10 @@ msgstr "የየታሪክዎን በመጫን ላይ…"
msgid "Importing..."
msgstr "በመጫን ላይ…"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr ""
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "ኢንዶኔዥኛ"
@@ -1359,6 +1512,10 @@ msgstr "ሰንጠረዥ አስገባ"
msgid "Interests"
msgstr "ፍላጎቶች"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Reactive Resume በብዙ ቋንቋዎች ይገኛል?"
@@ -1383,6 +1540,24 @@ msgstr "ግዕዝ"
msgid "Japanese"
msgstr "ጃፓንኛ"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "ሙሉ ማሰለፊያ"
@@ -1425,6 +1600,10 @@ msgstr "ቋንቋ"
msgid "Languages"
msgstr "ቋንቋዎች"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr ""
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1458,7 +1637,7 @@ msgstr "ይህን ገፅ ላይ ይዘቱን እንዴት እንደሚስት ተ
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "ውጣ"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1573,10 +1752,22 @@ msgstr "ማርጂን (አግድም)"
msgid "Margin (Vertical)"
msgstr "ማርጂን (አቀባዊ)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr ""
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "ሞዴል"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "አንቀሳቅስ ወደ"
@@ -1626,14 +1817,38 @@ msgstr "አዲስ የይለፍ ቃል"
msgid "New Section"
msgstr "አዲስ ክፍል"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ምንም ማስታወቂያ የለም፣ ምንም መከታተያ የለም"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr ""
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "ምንም ውጤት አልተገኘም።"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr ""
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "ኖርዌጂያንኛ"
@@ -1674,6 +1889,11 @@ msgstr "ክፍት ምንጭ"
msgid "opens in new tab"
msgstr "በአዲስ ታብ ይከፈታል"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "በፈቃድ የይለፍ ቃል በመቀበል ብቻ እንዲመለከቱት ለምታስችላቸው ሰዎች የይለፍ ቃል ያቀናብሩ።"
@@ -1693,11 +1913,11 @@ msgstr "ድርጅት"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "አጠቃላይ ጊዜ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "አጠቃላይ ርዕስ (አማራጭ)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "ገጽ"
msgid "Page {0}"
msgstr "ገጽ {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr ""
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "ገጽ {pageNumber} ከ {totalNumberOfPages} ውስጥ"
@@ -1717,6 +1941,10 @@ msgstr "ገጽ {pageNumber} ከ {totalNumberOfPages} ውስጥ"
msgid "Paragraph"
msgstr "አንቀጽ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "ፓስኪዎች እና 2FA"
@@ -1822,6 +2050,10 @@ msgstr "ምርጫዎች"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "የአሁኑን ቁልፍ ቃል ለማከል ወይም ለማስቀመጥ <0>{RETURN_KEY}</0> ወይም <1>{COMMA_KEY}</1> ይጫኑ።"
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ዋና ቀለም"
@@ -1872,6 +2104,15 @@ msgstr "ህትመቶች"
msgid "Publisher"
msgstr "አታሚ"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr ""
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ወደ መነሻ ገጽ ሂድ"
@@ -1898,7 +2139,7 @@ msgstr "Reactive Resume ክፍት ምንጭ፣ ግላዊነትን የሚመር
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "ተቀባይ"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1924,20 +2165,26 @@ msgstr "ዳስ አድርግ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "የይለፍ ቃልዎን ያስታውሳሉ? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr ""
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "አስወግድ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "የይለፍ ቃል አስወግድ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "የይለፍ ቃል ጥበቃን በማስወገድ ላይ…"
@@ -1948,7 +2195,7 @@ msgstr "ስም ቀይር"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "ዳግም አስተካክል"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "ስህተት ሪፖርት አድርግ"
msgid "Report an issue"
msgstr "ችግኝት ሪፖርት አድርግ"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr ""
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "የማረጋገጫ ኢሜልን እንደገና ላክ"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "የማረጋገጫ ኢሜልን እንደገና በመላክ ላይ…"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "ዳግም ለመጀመር"
@@ -1986,6 +2238,12 @@ msgstr "የይለፍ ቃልዎን በመዳግም ላይ…"
msgid "Resources"
msgstr "ሀብቶች"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "ሀብቶች"
msgid "Resumes"
msgstr "የየታሪክ ማቅረቢያዎች"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "በቀኝ ማሰለፊያ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "የሚና እድገት"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "ማሽከርከር"
msgid "Russian"
msgstr "ሩስኛ"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "በታች ያለውን QR ኮድ በሚፈልጉት የማረጋገጫ
msgid "School"
msgstr "ት/ቤት"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr ""
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "ፈልግ..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "ፈልግ..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "ሚስጥሩ ወደ ቅንጥብ ሰሌዳ ተገልብጧል።"
msgid "Section Type"
msgstr "የክፍል ዓይነት"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr ""
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "ምረጥ..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2139,7 +2426,7 @@ msgstr "አሳይ"
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
msgstr "ርዕስ ውስጥ ማገናኛ አሳይ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
@@ -2204,6 +2491,10 @@ msgstr "መጠን"
msgid "Skills"
msgstr "ችሎታዎች"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr ""
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "ወደ ዋና ይዘት ዝለል"
@@ -2212,6 +2503,10 @@ msgstr "ወደ ዋና ይዘት ዝለል"
msgid "Slovak"
msgstr "ስሎቫክኛ"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2280,7 +2575,7 @@ msgstr "ስታቲስቲክስ"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "ቆይ"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2327,6 +2622,19 @@ msgstr "መለያ መለያዎች"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "መለያዎች በአርእስት መሰረት የየታሪክዎን ማቅረቢያ ለመመደብ ሊውሉ ይችላሉ።"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr ""
#: src/utils/locale.ts
msgid "Tamil"
msgstr "ታሚልኛ"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "ቴምፕሌቶች"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "ግንኙነት መሞከር"
@@ -2363,6 +2672,10 @@ msgstr "የጽሁፍ ቀለም"
msgid "Thai"
msgstr "ታይኛ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr ""
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "API ቁልፉ በተሳካ ሁኔታ ተሰርዟል።"
@@ -2401,15 +2714,16 @@ msgstr "ገጽታ"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "ከዚያም መተግበሪያው ሰጥቶት የ 6 አሃዝ ኮድ ያስገቡ ለመቀጠል።"
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF በማመንጨት ጊዜ ችግኝ ተፈጥሯል፣ እባክዎን ጥቂት ጊዜ በኋላ ደግመው ይሞክሩ።"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "ይህ በ AI አቅራቢው ምላሽ ላይ በመመርኮዝ ጥቂ
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "ይህ በሰርቨሩ አቅም ላይ በመመርኮዝ ጥቂት ጊዜ ሊወስድ ይችላል። እባክዎ መስኮቱን አትዘጉ ወይም ገጹን አታሻሽሉ።"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr ""
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "ይህ የየታሪክ ማቅረቢያ ተቆልፏል እና ማዘመን አይቻልም።"
@@ -2450,6 +2768,10 @@ msgstr "ይህ ክፍል ለይዘት የተለየ የየታሪክዎ ማስታ
msgid "This step is optional, but recommended."
msgstr "ይህ እርስዎ መፈለጌ ቢሆንም የሚመከር ደረጃ ነው።"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "ይህ አዲስ API ቁልፍ የ Reactive Resume API ጋር እንዲገናኝ ያስችላል ማሽኖችም ከየታሪክ መረጃዎ ጋር እንዲያወያዩ ያደርጋል።"
@@ -2477,6 +2799,15 @@ msgstr "ርዕስ"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "መለያዎን ለመሰረዝ የማረጋገጫ ጽሑፍን ያስገቡ እና ከታች ያለውን አዝራር ይጫኑ።"
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr ""
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "የየታሪክዎን ተመልካቶች እና ዝቅተኛ የወረዱ ቁጥር ይከታተሉ"
@@ -2545,6 +2876,7 @@ msgstr "ሁለት-ደረጃ ማረጋገጫ በተሳካ ሁኔታ ተቋቅሯ
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "ዓይነት"
@@ -2564,6 +2896,10 @@ msgstr "ታይፖግራፊ"
msgid "Ukrainian"
msgstr "ዩክሬንኛ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "ነጥብ ተስማሚ"
@@ -2610,7 +2946,7 @@ msgstr "ያለ የቀድሞ ማረጋገጫን አዘምን"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "ነባር ማመልከቻ ደብዳቤ አዘምን"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2654,7 +2990,7 @@ msgstr "ያለ የቀድሞ ችሎታን አዘምን"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "ነባር ማጠቃለያ ንጥል አዘምን"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "የየታሪክ ማቅረቢያን አዘምን"
msgid "Update your password"
msgstr "የይለፍ ቃልዎን አዘምኑ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "የይለፍ ቃልዎን በመዘመን ላይ…"
@@ -2771,6 +3103,10 @@ msgstr "ድር ገጽ"
msgid "What do you want to rename this section to?"
msgstr "ይህን ክፍል ምን ልትሉት ትፈልጋለህ?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Reactive Resumeን ከሌሎች የየታሪክ ማቅረቢያዎች የሚለዩት ምንድን ነገሮች ናቸው?"
@@ -2801,6 +3137,10 @@ msgstr "አዎ! ሁሉም ቴምፕሌቶች ሙሉ በሙሉ የሚቀየሩ
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 ፍጹም ነፃ ለመጠቀም ይችላሉ፣ የተደበቁ ወጪዎች፣ የፕሪሚየም ደረጃዎች ወይም ክፍያ መመዝገብ የለም። ክፍት ምንጭ ነው እና ሁልጊዜም ነፃ ይቆያል።"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "በ Docker ምስል በመጠቀም በራስዎ ሰርቨሮች ላይ ማስጀመር አማራጭ ያላችሁ ነው።"
@@ -2815,7 +3155,7 @@ msgstr "የየታሪክዎን በተለየ የህዝብ አገናኝ ይካፈ
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "ያልተቀመጡ ለውጦች አሉዎት።"
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
@@ -2858,6 +3198,10 @@ msgstr "የይለፍ ቃልዎ በተሳካ ሁኔታ ታዘመነ።"
msgid "Your profile has been updated successfully."
msgstr "መገለጫዎ በተሳካ ሁኔታ ታዘመነ።"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+405 -61
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+404 -60
View File
File diff suppressed because it is too large Load Diff
+390 -46
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-03-12 11:46\n"
"PO-Revision-Date: 2026-03-19 09:07\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -47,11 +47,35 @@ msgstr "{0, plural, one {# Element} other {# Elemente}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# Rolle} other {# Rollen}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} verwendete Anfragen"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} vor Monaten"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} vor Wochen"
#: 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}}"
msgstr "{column, plural, one {# Spalte} other {# Spalten}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} vor Tagen"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} der {limit} Anfragen verwendet ({remaining} verbleibend)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Endlich,</0><1>ein kostenloser und quelloffener Lebenslauf-Builder</1>"
@@ -202,7 +226,7 @@ msgstr "Spalte davor einfügen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "Fügen Sie mehrere Positionen hinzu, um den Karriereverlauf im gleichen Unternehmen darzustellen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "Seite hinzufügen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "Position hinzufügen"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,9 +244,14 @@ msgstr "Zeile danach einfügen"
msgid "Add Row Before"
msgstr "Zeile davor einfügen"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Hinzugefügt"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "{0} neue Fähigkeiten zu Ihrem ursprünglichen Lebenslauf hinzugefügt"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Erweiterte Filter"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "KI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "KI-Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI hat einige ungültige Referenzen zurückgegeben"
#: src/utils/locale.ts
msgid "Albanian"
@@ -247,7 +276,7 @@ msgstr "Öffentlichen Zugriff erlauben"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "Sie haben bereits ein Konto? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "Beim Importieren deines Lebenslaufs ist ein unbekannter Fehler aufgetret
msgid "And many more..."
msgstr "Und viele weitere ..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Jedes Niveau"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "Jederzeit"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Jeder Typ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Jeder, der die öffentliche URL des Lebenslaufs besucht, muss dieses Passwort eingeben, um darauf zuzugreifen."
@@ -297,6 +339,10 @@ msgstr "API-Schlüssel"
msgid "API Reference"
msgstr "API-Referenz"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "API-Verwendung"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -305,6 +351,18 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Anwendungsstatistiken"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Anwenden"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Link anwenden"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Bewerben über"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabisch"
@@ -348,10 +406,6 @@ msgstr "Studienfach"
msgid "Artificial Intelligence"
msgstr "Künstliche Intelligenz"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Fragen Sie mich, Ihren Lebenslauf zu aktualisieren..."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Seitenverhältnis"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Vorteile"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengalisch"
@@ -485,6 +543,7 @@ msgstr "Kann ich meinen Lebenslauf als PDF exportieren?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Ansicht zentrieren"
msgid "Certifications"
msgstr "Zertifizierungen"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Sprache ändern"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Sprache ändern zu..."
@@ -544,9 +607,9 @@ msgstr "Chinesisch (traditionell)"
msgid "Circle"
msgstr "Kreis"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Chatverlauf löschen"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Alles löschen"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Hier klicken, um eine Datei zum Importieren auszuwählen"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Schließen"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Unternehmen"
msgid "Completely free, forever, no hidden costs."
msgstr "Vollständig kostenlos, für immer, ohne versteckte Kosten."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Jobsuche konfigurieren"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -610,6 +677,10 @@ msgstr "Dort weitermachen, wo du aufgehört hast"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Mach genau dort weiter, wo du aufgehört hast, indem du einen vorhandenen Lebenslauf importierst, den du mit Reactive Resume oder einem anderen Lebenslauf-Builder erstellt hast. Unterstützte Formate sind PDF, Microsoft Word sowie JSON-Dateien von Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Bauunternehmer"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Beiträge finanzieren Fehlerbehebungen, Sicherheitsupdates und kontinuierliche Verbesserungen, damit die App reibungslos läuft."
@@ -634,6 +705,14 @@ msgstr "Kopiere diesen geheimen Schlüssel und verwende ihn in deinen Anwendunge
msgid "Copy URL"
msgstr "URL kopieren"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Konnte keine Aufträge abrufen"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Land"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -799,6 +878,10 @@ msgstr "Datensicherheit"
msgid "Date"
msgstr "Datum"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Datum veröffentlicht"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Abschluss"
@@ -855,6 +938,7 @@ msgstr "Ihr Lebenslauf wird gelöscht..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Beschreibung"
@@ -862,6 +946,18 @@ msgstr "Beschreibung"
msgid "Design"
msgstr "Design"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Direkt"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Direkt bewerben"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Nur direkt anwenden"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Dokumentation"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "Sie haben noch kein Konto? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "An Reactive Resume spenden"
msgid "Download"
msgstr "Herunterladen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Laden Sie eine Kopie Ihres Lebenslaufs als Word-Dokument herunter. Verwenden Sie diese Datei, um Ihren Lebenslauf in Microsoft Word oder Google Docs weiter zu bearbeiten."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Laden Sie eine Kopie Ihres Lebenslaufs im JSON-Format herunter. Nutzen Sie diese Datei für Backups oder zum Importieren in andere Anwendungen, einschließlich KI-Assistenten."
@@ -913,6 +1013,10 @@ msgstr "Laden Sie eine Kopie Ihres Lebenslaufs im JSON-Format herunter. Nutzen S
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Laden Sie eine Kopie Ihres Lebenslaufs im PDF-Format herunter. Nutzen Sie diese Datei zum Drucken oder zum einfachen Teilen mit Personalvermittlern."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "DOCX herunterladen"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "JSON herunterladen"
@@ -958,9 +1062,17 @@ msgstr "Ihr Lebenslauf wird dupliziert..."
msgid "Dutch"
msgstr "Niederländisch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "z. B. meinen Namen ändern zu..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "z.B. 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "z.B. 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "z.B. Frontend Entwickler Jobs in Berlin"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "Englisch"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Englisch (Vereinigtes Königreich)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Geben Sie Ihr Passwort ein, um die Einrichtung der Zwei-Faktor-Authentif
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Geben Sie Ihr Passwort ein, um die Zwei-Faktor-Authentifizierung zu deaktivieren. Ihr Konto ist ohne 2FA weniger sicher."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Geben Sie Ihren RapidAPI-Schlüssel ein"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Jeder Beitrag, ob groß oder klein, macht einen riesigen Unterschied für das Projekt.<0/>Vielen Dank für deine Unterstützung!"
@@ -1055,11 +1171,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Schließen Sie {value} aus."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Unternehmen ausschließen"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Schlüsselwörter ausschließen"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Vollbild schließen"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Erfahrung"
@@ -1085,13 +1214,21 @@ msgstr "Sieh dir die API-Dokumentation an, um zu erfahren, wie du Reactive Resum
msgid "Export"
msgstr "Exportieren"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Lebenslauf konnte nicht dupliziert werden"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Die Einrichtung der Zwei-Faktor-Authentifizierung ist fehlgeschlagen."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr ""
msgstr "Anmeldung fehlgeschlagen. Bitte versuchen Sie es erneut."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Synchronisierung der Fähigkeiten fehlgeschlagen"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
@@ -1172,6 +1309,10 @@ msgstr "Französisch"
msgid "Full Width"
msgstr "Volle Breite"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "Ganztags"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr "Vollbild"
@@ -1188,6 +1329,10 @@ msgstr "Deutsch"
msgid "Get Started"
msgstr "Jetzt starten"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Holen Sie sich Ihren API-Schlüssel von RapidAPI, indem Sie sich bei der JSearch-API anmelden."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Zurück"
msgid "Go to dashboard"
msgstr "Weiter zum Dashboard"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Gehen Sie zu Einstellungen"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Gehe zu..."
@@ -1248,7 +1397,7 @@ msgstr "Überschrift 6"
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
msgid "Headline"
msgstr "Überschrift"
msgstr "Berufsbezeichnung"
#: src/utils/locale.ts
msgid "Hebrew"
@@ -1338,6 +1487,10 @@ msgstr "Dein Lebenslauf wird importiert ..."
msgid "Importing..."
msgstr "Importieren ..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Schlüsselwörter einbeziehen"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesisch"
@@ -1359,6 +1512,10 @@ msgstr "Tabelle einfügen"
msgid "Interests"
msgstr "Interessen"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Praktikant"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Ist Reactive Resume in mehreren Sprachen verfügbar?"
@@ -1383,6 +1540,24 @@ msgstr "Kursiv"
msgid "Japanese"
msgstr "Japanisch"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Jobsuche"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "Jobsuche API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch sammelt Stellenanzeigen von mehreren Stellenbörsen mit Hilfe von Google for Jobs. Sie können nach Land (ISO-Alpha-2-Code), Datum der Veröffentlichung, Art der Stelle, Remote-Optionen und Erfahrungsniveau filtern."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "JSearch API-Dokumentation"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Blocksatz"
@@ -1425,6 +1600,10 @@ msgstr "Sprache"
msgid "Languages"
msgstr "Sprachen"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Letzte 3 Tage"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1462,7 +1641,7 @@ msgstr "Verlassen"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
msgstr "Leer lassen, um den Titel auf den Original zurückzusetzen."
msgstr "Leer lassen, um den Titel auf das Original zurückzusetzen."
#: src/components/input/rich-input.tsx
msgid "Left Align"
@@ -1573,10 +1752,22 @@ msgstr "Rand (horizontal)"
msgid "Margin (Vertical)"
msgstr "Rand (vertikal)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Maximales Gehalt"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Mindestgehalt"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Modell"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "Mehr als 3 Jahre"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Verschieben nach"
@@ -1626,14 +1817,38 @@ msgstr "Neues Passwort"
msgid "New Section"
msgstr "Neuer Abschnitt"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "Neue Fertigkeiten entdeckt"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Nächste"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Keine Werbung, kein Tracking"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "Kein Abschluss erforderlich"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "Keine Erfahrung"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "Keine Jobs gefunden. Versuchen Sie eine andere Suchanfrage."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "Keine Ergebnisse gefunden."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "Keine Lebensläufe gefunden. Erstellen Sie zuerst einen Lebenslauf."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norwegisch"
@@ -1674,6 +1889,11 @@ msgstr "Open Source"
msgid "opens in new tab"
msgstr "öffnet in neuem Tab"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Optimierung von Zusammenfassung, Erfahrung und Fähigkeiten für {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Optional können Sie ein Passwort festlegen, damit nur Personen mit dem Passwort Ihren Lebenslauf über den Link ansehen können."
@@ -1693,11 +1913,11 @@ msgstr "Organisation"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "Gesamtzeitraum"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "Gesamttitel (optional)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "Seite"
msgid "Page {0}"
msgstr "Seite {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Seite {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Seite {pageNumber} von {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Seite {pageNumber} von {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Absatz"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Teilzeit"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkeys & 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Einstellungen"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Drücken Sie <0>{RETURN_KEY}</0> oder <1>{COMMA_KEY}</1>, um das aktuelle Schlüsselwort hinzuzufügen oder zu speichern."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Vorherige"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primärfarbe"
@@ -1872,6 +2104,15 @@ msgstr "Veröffentlichungen"
msgid "Publisher"
msgstr "Verlag"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Quote: {0} verbleibend"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "RapidAPI-Schlüssel"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume – Zur Startseite gehen"
@@ -1924,20 +2165,26 @@ msgstr "Aktualisieren"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
msgstr "Passwort noch parat? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Fernbedienung"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Nur Fernbedienung"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "Entfernen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "Passwort entfernen"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Entfernt"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Passwortschutz wird entfernt..."
@@ -1948,7 +2195,7 @@ msgstr "Umbenennen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "Neu anordnen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "Fehler melden"
msgid "Report an issue"
msgstr "Problem melden"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Erforderliche Fertigkeiten"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Verifizierungs-E-Mail erneut senden"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Verifizierungs-E-Mail wird erneut gesendet..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Zurücksetzen"
@@ -1986,6 +2238,12 @@ msgstr "Ihr Passwort wird zurückgesetzt..."
msgid "Resources"
msgstr "Ressourcen"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Lebenslauf erfolgreich zugeschnitten"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "Ressourcen"
msgid "Resumes"
msgstr "Lebensläufe"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Wiederholen Sie"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rechtsbündig"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "Karriereverlauf"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "Drehung"
msgid "Russian"
msgstr "Russisch"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Speichern {0} Fertigkeiten"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Scannen Sie den QR-Code unten mit Ihrer bevorzugten Authenticator-App. S
msgid "School"
msgstr "Schule"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Suche"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Länder suchen"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Suchen nach..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Suchen..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Geheimnis wurde in die Zwischenablage kopiert."
msgid "Section Type"
msgstr "Abschnittstyp"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Wählen Sie unter {1}einen Lebenslauf aus, den Sie für \"{0}\" anpassen möchten. Es wird eine Kopie erstellt{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Land auswählen"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Auswählen..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2204,6 +2491,10 @@ msgstr "Größe"
msgid "Skills"
msgstr "Fähigkeiten"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Überspringen Sie"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Zum Hauptinhalt springen"
@@ -2212,6 +2503,10 @@ msgstr "Zum Hauptinhalt springen"
msgid "Slovak"
msgstr "Slowakisch"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2327,6 +2622,19 @@ msgstr "Stichwörter"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Stichwörter können genutzt werden, um Ihren Lebenslauf nach Schlüsselwörtern zu kategorisieren."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Lebenslauf schneidern"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Schneidern fehlgeschlagen"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Ihr Lebenslauf ist maßgeschneidert..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Vorlagen"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Verbindung testen"
@@ -2363,6 +2672,10 @@ msgstr "Textfarbe"
msgid "Thai"
msgstr "Thailändisch"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "Die KI hat neue Fähigkeiten aus Ihrer Erfahrung identifiziert, die zu dieser Stelle passen. Wählen Sie aus, welche davon Sie für zukünftige Bewerbungen in Ihrem ursprünglichen Lebenslauf speichern möchten. Dadurch wird Ihr ursprünglicher Lebenslauf dauerhaft geändert und kann nicht rückgängig gemacht werden."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "Der API-Schlüssel wurde erfolgreich gelöscht."
@@ -2401,15 +2714,16 @@ msgstr "Design"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Geben Sie dann den 6-stelligen Code ein, den die App bereitstellt, um fortzufahren."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "Bei der Erstellung der DOCX-Datei ist ein Problem aufgetreten. Bitte versuchen Sie es erneut."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Beim Erzeugen des PDFs ist ein Problem aufgetreten, bitte versuche es in einiger Zeit erneut."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Denkt nach..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Dies kann einige Minuten dauern, abhängig von der Antwort des KI-Anbiet
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "Dies kann eine Weile dauern, abhängig von der Serverkapazität. Bitte schließe das Fenster nicht und lade die Seite nicht neu."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "Diesen Monat"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Dieser Lebenslauf ist gesperrt und kann nicht aktualisiert werden."
@@ -2450,6 +2768,10 @@ msgstr "Dieser Abschnitt ist für Ihre persönlichen Notizen zu diesem Lebenslau
msgid "This step is optional, but recommended."
msgstr "Dieser Schritt ist optional, aber empfohlen."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "Diese Woche"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Damit wird ein neuer API-Schlüssel für den Zugriff auf die Reactive-Resume-API erzeugt, sodass Maschinen mit deinen Lebenslaufdaten interagieren können."
@@ -2477,6 +2799,15 @@ msgstr "Titel"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "Um Ihr Konto zu löschen, müssen Sie den Bestätigungstext eingeben und unten auf die Schaltfläche klicken."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "Um nach Stellenangeboten zu suchen, müssen Sie Ihren RapidAPI-Schlüssel in den Einstellungen konfigurieren."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Heute"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Verfolgen Sie die Aufrufe und Downloads Ihres Lebenslaufs"
@@ -2545,6 +2876,7 @@ msgstr "Die Zwei-Faktor-Authentifizierung wurde erfolgreich eingerichtet."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Typ"
@@ -2564,6 +2896,10 @@ msgstr "Typografie"
msgid "Ukrainian"
msgstr "Ukrainisch"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Unter 3 Jahren"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Unterstreichen"
@@ -2673,10 +3009,6 @@ msgstr "Lebenslauf aktualisieren"
msgid "Update your password"
msgstr "Aktualisieren Sie Ihr Passwort"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Aktualisiert"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Ihr Passwort wird aktualisiert..."
@@ -2771,6 +3103,10 @@ msgstr "Webseite"
msgid "What do you want to rename this section to?"
msgstr "Wie möchten Sie diesen Abschnitt umbenennen?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "Was ist JSearch API?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Wodurch unterscheidet sich Reactive Resume von anderen Lebenslauf-Buildern?"
@@ -2801,6 +3137,10 @@ msgstr "Ja! Jede Vorlage ist vollständig anpassbar. Du kannst Farben, Schriften
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Gestern"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "Du kannst Reactive Resume auch mit dem Docker-Image auf deinen eigenen Servern bereitstellen."
@@ -2858,6 +3198,10 @@ msgstr "Ihr Passwort wurde erfolgreich aktualisiert."
msgid "Your profile has been updated successfully."
msgstr "Ihr Profil wurde erfolgreich aktualisiert."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Ihr RapidAPI-Schlüssel wird lokal in Ihrem Browser gespeichert. Er wird nur an den Server gesendet, wenn Sie eine Anfrage zur Stellensuche stellen, und wird niemals auf unseren Servern gespeichert oder protokolliert."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+404 -60
View File
File diff suppressed because it is too large Load Diff
+394 -50
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-03-17 14:55\n"
"PO-Revision-Date: 2026-03-19 09:08\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -21,7 +21,7 @@ msgstr ""
#. js-lingui-explicit-id
#: src/routes/dashboard/resumes/index.tsx
msgid "Last Updated"
msgstr "Last Updated"
msgstr "Last updated"
#. js-lingui-explicit-id
#: src/routes/dashboard/resumes/index.tsx
@@ -47,11 +47,35 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# role} other {# roles}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} requests used"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} months ago"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} weeks ago"
#: 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}}"
msgstr "{column, plural, one {# Column} other {# Columns}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} days ago"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} of {limit} requests used ({remaining} remaining)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Finally,</0><1>A free and open-source resume builder</1>"
@@ -220,9 +244,14 @@ msgstr "Add Row After"
msgid "Add Row Before"
msgstr "Add Row Before"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "Added {0} new skills to your original resume"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Advanced Filters"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI returned some invalid references"
#: src/utils/locale.ts
msgid "Albanian"
@@ -266,6 +295,19 @@ msgstr "An unknown error occurred while importing your resume."
msgid "And many more..."
msgstr "And many more..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Any level"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "Any time"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Any type"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Anyone visiting the resume's public URL must enter this password to access it."
@@ -297,6 +339,10 @@ msgstr "API Keys"
msgid "API Reference"
msgstr "API Reference"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "API Usage"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -305,6 +351,18 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Application Statistics"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Apply"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Apply Link"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Apply Via"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabic"
@@ -348,10 +406,6 @@ msgstr "Area of Study"
msgid "Artificial Intelligence"
msgstr "Artificial Intelligence"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Ask me to update your resume..."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
@@ -387,7 +441,7 @@ msgstr "Back to Login"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Background Color"
msgstr "Background Color"
msgstr "Background Colour"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Backup codes copied to clipboard."
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Benefits"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -446,7 +504,7 @@ 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?"
msgstr "Can I customise the templates?"
#: src/routes/_home/-sections/faq.tsx
msgid "Can I export my resume to PDF?"
@@ -485,6 +543,7 @@ msgstr "Can I export my resume to PDF?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Center view"
msgid "Certifications"
msgstr "Certifications"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Change language"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Change language to..."
@@ -544,9 +607,9 @@ msgstr "Chinese (Traditional)"
msgid "Circle"
msgstr "Circle"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Clear all"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Click here to select a file to import"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Close"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Company"
msgid "Completely free, forever, no hidden costs."
msgstr "Completely free, forever, no hidden costs."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Configure Job Search"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -610,6 +677,10 @@ msgstr "Continue where you left off"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Contractor"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
@@ -634,6 +705,14 @@ msgstr "Copy this secret key and use it in your applications to access your data
msgid "Copy URL"
msgstr "Copy URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Could not fetch jobs"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Country"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -666,7 +745,7 @@ msgstr "Create a new account"
#: src/dialogs/api-key/create.tsx
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Create a new API key"
msgstr "Create a new API key"
msgstr "Create new API key"
#: src/dialogs/resume/sections/award.tsx
msgid "Create a new award"
@@ -799,6 +878,10 @@ msgstr "Data Security"
msgid "Date"
msgstr "Date"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Date Posted"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Degree"
@@ -855,6 +938,7 @@ msgstr "Deleting your resume..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Description"
@@ -862,6 +946,18 @@ msgstr "Description"
msgid "Design"
msgstr "Design"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Direct"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Direct Apply"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Direct apply only"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -905,6 +1001,10 @@ msgstr "Donate to Reactive Resume"
msgid "Download"
msgstr "Download"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
@@ -913,6 +1013,10 @@ msgstr "Download a copy of your resume in JSON format. Use this file for backup
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Download DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Download JSON"
@@ -958,9 +1062,17 @@ msgstr "Duplicating your resume..."
msgid "Dutch"
msgstr "Dutch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "e.g. 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "e.g. 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "e.g. frontend developer jobs in Berlin"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "English"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "English (United Kingdom)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Enter your password to confirm setting up two-factor authentication. Whe
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Enter your RapidAPI key"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
@@ -1053,13 +1169,26 @@ msgstr "Everything entered here is stored locally on your browser. Your data is
#: src/routes/_home/-sections/features.tsx
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."
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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Exclude {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Exclude Companies"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Exclude Keywords"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit Fullscreen"
msgstr "Exit fullscreen"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Experience"
@@ -1085,6 +1214,10 @@ msgstr "Explore the API documentation to learn how to integrate Reactive Resume
msgid "Export"
msgstr "Export"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Failed to duplicate resume"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Failed to setup two-factor authentication."
@@ -1093,6 +1226,10 @@ msgstr "Failed to setup two-factor authentication."
msgid "Failed to sign in. Please try again."
msgstr "Failed to sign in. Please try again."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Failed to sync skills"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
msgstr "Features"
@@ -1170,7 +1307,11 @@ msgstr "French"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Full Width"
msgstr "Full Width"
msgstr "Full width"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "Full-time"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
@@ -1188,6 +1329,10 @@ msgstr "German"
msgid "Get Started"
msgstr "Get Started"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Get your API key from RapidAPI by subscribing to the JSearch API."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Go Back"
msgid "Go to dashboard"
msgstr "Go to dashboard"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Go to Settings"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Go to..."
@@ -1338,6 +1487,10 @@ msgstr "Importing your resume..."
msgid "Importing..."
msgstr "Importing..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Include Keywords"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesian"
@@ -1359,6 +1512,10 @@ msgstr "Insert Table"
msgid "Interests"
msgstr "Interests"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Intern"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Is Reactive Resume available in multiple languages?"
@@ -1383,6 +1540,24 @@ msgstr "Italic"
msgid "Japanese"
msgstr "Japanese"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Job Search"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "Job Search API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "JSearch API Documentation"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Justify Align"
@@ -1425,6 +1600,10 @@ msgstr "Language"
msgid "Languages"
msgstr "Languages"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Last 3 days"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1573,10 +1752,22 @@ msgstr "Margin (Horizontal)"
msgid "Margin (Vertical)"
msgstr "Margin (Vertical)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Maximum Salary"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Minimum Salary"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Model"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "More than 3 years"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Move to"
@@ -1626,14 +1817,38 @@ msgstr "New Password"
msgid "New Section"
msgstr "New Section"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "New Skills Detected"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Next"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "No Advertising, No Tracking"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "No degree required"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "No experience"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "No jobs found. Try a different search query."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "No results found."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "No resumes found. Create a resume first."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norwegian"
@@ -1674,6 +1889,11 @@ msgstr "Open Source"
msgid "opens in new tab"
msgstr "opens in new tab"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Optimizing summary, experience, and skills for {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Optionally, set a password so that only people with the password can view your resume through the link."
@@ -1689,7 +1909,7 @@ msgstr "Ordered List"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Organization"
msgstr "Organization"
msgstr "Organisation"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
@@ -1709,6 +1929,10 @@ msgstr "Page"
msgid "Page {0}"
msgstr "Page {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Page {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Page {pageNumber} of {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Page {pageNumber} of {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Paragraph"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Part-time"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkeys & 2FA"
@@ -1760,7 +1988,7 @@ msgstr "Persian"
#: src/routes/_home/-sections/features.tsx
msgid "Personalize your resume with any colors, fonts or designs, and make it your own."
msgstr "Personalize your resume with any colors, fonts or designs, and make it your own."
msgstr "Personalise your resume with any colours, fonts or designs, and make it your own."
#: src/dialogs/resume/sections/reference.tsx
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
@@ -1822,9 +2050,13 @@ msgstr "Preferences"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Previous"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Color"
msgstr "Primary Colour"
#: src/dialogs/resume/sections/skill.tsx
msgid "Proficiency"
@@ -1853,7 +2085,7 @@ msgstr "Projects"
#: 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"
msgstr "Protect your resume from unauthorised access with a password"
#: src/routes/_home/-sections/features.tsx
msgid "Protect your resume with a password, and let only people with the password view it."
@@ -1872,6 +2104,15 @@ msgstr "Publications"
msgid "Publisher"
msgstr "Publisher"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Quota: {0} remaining"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "RapidAPI Key"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Go to homepage"
@@ -1926,6 +2167,16 @@ msgstr "Refresh"
msgid "Remember your password? <0/>"
msgstr "Remember your password? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Remote"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Remote only"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr "Remove"
@@ -1934,10 +2185,6 @@ msgstr "Remove"
msgid "Remove Password"
msgstr "Remove Password"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Removed"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Removing password protection..."
@@ -1958,6 +2205,10 @@ msgstr "Report a Bug"
msgid "Report an issue"
msgstr "Report an issue"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Required Skills"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Resend verification email"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Resending verification email..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Reset"
@@ -1986,6 +2238,12 @@ msgstr "Resetting your password..."
msgid "Resources"
msgstr "Resources"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Resume tailored successfully"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,6 +2255,10 @@ msgstr "Resources"
msgid "Resumes"
msgstr "Resumes"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Retry"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Right Align"
@@ -2017,6 +2279,11 @@ msgstr "Rotation"
msgid "Russian"
msgstr "Russian"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Save {0} Skills"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Scan the QR code below with your preferred authenticator app. You can al
msgid "School"
msgstr "School"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Search"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Search countries"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Search for..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Search..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Secret copied to clipboard."
msgid "Section Type"
msgstr "Section Type"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Select country"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Select..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2204,6 +2491,10 @@ msgstr "Size"
msgid "Skills"
msgstr "Skills"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Skip"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Skip to main content"
@@ -2212,6 +2503,10 @@ msgstr "Skip to main content"
msgid "Slovak"
msgstr "Slovak"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2325,7 +2620,20 @@ msgstr "Tags"
#: src/dialogs/resume/index.tsx
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Tags can be used to categorize your resume by keywords."
msgstr "Tags can be used to categorise your resume by keywords."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Tailor Resume"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Tailoring failed"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Tailoring your resume..."
#: src/utils/locale.ts
msgid "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Templates"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Test Connection"
@@ -2357,12 +2666,16 @@ msgstr "Testimonials"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Text Color"
msgstr "Text Color"
msgstr "Text Colour"
#: src/utils/locale.ts
msgid "Thai"
msgstr "Thai"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "The API key has been deleted successfully."
@@ -2401,15 +2714,16 @@ msgstr "Theme"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Then, enter the 6 digit code that the app provides to continue."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "There was a problem while generating the DOCX, please try again."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "There was a problem while generating the PDF, please try again in some time."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Thinking..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "This may take a few minutes, depending on the response of the AI provide
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "This month"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "This resume is locked and cannot be updated."
@@ -2450,6 +2768,10 @@ msgstr "This section is reserved for your personal notes specific to this resume
msgid "This step is optional, but recommended."
msgstr "This step is optional, but recommended."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "This week"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
@@ -2477,6 +2799,15 @@ msgstr "Title"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "To delete your account, you need to enter the confirmation text and click the button below."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "To search for job listings, you need to configure your RapidAPI key in settings."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Today"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Track your resume's views and downloads"
@@ -2496,7 +2827,7 @@ msgstr "Turn on public sharing to track how many times your resume has been view
#: src/dialogs/resume/template/data.ts
msgid "Two-column with a bold colored sidebar and skill bars; great for creative or tech roles where visual flair is welcome."
msgstr "Two-column with a bold colored sidebar and skill bars; great for creative or tech roles where visual flair is welcome."
msgstr "Two-column with a bold coloured sidebar and skill bars; great for creative or tech roles where visual flair is welcome."
#: src/dialogs/resume/template/data.ts
msgid "Two-column with a dark teal sidebar and skills grid; modern feel for developers, data scientists, or technical PMs."
@@ -2516,7 +2847,7 @@ msgstr "Two-column with a soft header accent and circular profile photo; ideal f
#: src/dialogs/resume/template/data.ts
msgid "Two-column with accent colors and clean typography; balanced choice for business analysts or operations roles."
msgstr "Two-column with accent colors and clean typography; balanced choice for business analysts or operations roles."
msgstr "Two-column with accent colours and clean typography; balanced choice for business analysts or operations roles."
#: src/dialogs/resume/template/data.ts
msgid "Two-column, clean and professional with subtle section dividers; suits corporate, finance, or consulting positions."
@@ -2545,6 +2876,7 @@ msgstr "Two-factor authentication has been setup successfully."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Type"
@@ -2564,6 +2896,10 @@ msgstr "Typography"
msgid "Ukrainian"
msgstr "Ukrainian"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Under 3 years"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Underline"
@@ -2673,10 +3009,6 @@ msgstr "Update Resume"
msgid "Update your password"
msgstr "Update your password"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Updated"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Updating your password..."
@@ -2771,6 +3103,10 @@ msgstr "Website"
msgid "What do you want to rename this section to?"
msgstr "What do you want to rename this section to?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "What is JSearch API?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "What makes Reactive Resume different from other resume builders?"
@@ -2787,7 +3123,7 @@ msgstr "When locked, the resume cannot be updated or deleted."
#: src/routes/_home/-sections/features.tsx
msgid "Write your own CSS (or use an AI to generate it for you) to customize your resume to the fullest."
msgstr "Write your own CSS (or use an AI to generate it for you) to customize your resume to the fullest."
msgstr "Write your own CSS (or use an AI to generate it for you) to customise your resume to the fullest."
#: src/routes/_home/-sections/faq.tsx
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>."
@@ -2795,12 +3131,16 @@ msgstr "Yes, Reactive Resume is available in multiple languages. You can choose
#: 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."
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Yesterday"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "You also have the option to deploy on your own servers using the Docker image."
@@ -2858,6 +3198,10 @@ msgstr "Your password has been updated successfully."
msgid "Your profile has been updated successfully."
msgstr "Your profile has been updated successfully."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+372 -28
View File
@@ -42,11 +42,35 @@ msgstr "{0, plural, one {# item} other {# items}}"
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# role} other {# roles}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} requests used"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} months ago"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} weeks ago"
#: 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}}"
msgstr "{column, plural, one {# Column} other {# Columns}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} days ago"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} of {limit} requests used ({remaining} remaining)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Finally,</0><1>A free and open-source resume builder</1>"
@@ -215,9 +239,14 @@ msgstr "Add Row After"
msgid "Add Row Before"
msgstr "Add Row Before"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "Added {0} new skills to your original resume"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Advanced Filters"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -228,9 +257,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI returned some invalid references"
#: src/utils/locale.ts
msgid "Albanian"
@@ -261,6 +290,19 @@ msgstr "An unknown error occurred while importing your resume."
msgid "And many more..."
msgstr "And many more..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Any level"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "Any time"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Any type"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Anyone visiting the resume's public URL must enter this password to access it."
@@ -292,6 +334,10 @@ msgstr "API Keys"
msgid "API Reference"
msgstr "API Reference"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "API Usage"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -300,6 +346,18 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Application Statistics"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Apply"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Apply Link"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Apply Via"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabic"
@@ -343,10 +401,6 @@ msgstr "Area of Study"
msgid "Artificial Intelligence"
msgstr "Artificial Intelligence"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Ask me to update your resume..."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Aspect Ratio"
@@ -400,6 +454,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Benefits"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -480,6 +538,7 @@ msgstr "Can I export my resume to PDF?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -503,6 +562,10 @@ msgstr "Center view"
msgid "Certifications"
msgstr "Certifications"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Change language"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Change language to..."
@@ -539,9 +602,9 @@ msgstr "Chinese (Traditional)"
msgid "Circle"
msgstr "Circle"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Clear all"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -573,6 +636,10 @@ msgstr "Company"
msgid "Completely free, forever, no hidden costs."
msgstr "Completely free, forever, no hidden costs."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Configure Job Search"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -605,6 +672,10 @@ msgstr "Continue where you left off"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Contractor"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
@@ -629,6 +700,14 @@ msgstr "Copy this secret key and use it in your applications to access your data
msgid "Copy URL"
msgstr "Copy URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Could not fetch jobs"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Country"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -794,6 +873,10 @@ msgstr "Data Security"
msgid "Date"
msgstr "Date"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Date Posted"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Degree"
@@ -850,6 +933,7 @@ msgstr "Deleting your resume..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Description"
@@ -857,6 +941,18 @@ msgstr "Description"
msgid "Design"
msgstr "Design"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Direct"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Direct Apply"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Direct apply only"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -900,6 +996,10 @@ msgstr "Donate to Reactive Resume"
msgid "Download"
msgstr "Download"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
@@ -908,6 +1008,10 @@ msgstr "Download a copy of your resume in JSON format. Use this file for backup
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Download DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Download JSON"
@@ -953,9 +1057,17 @@ msgstr "Duplicating your resume..."
msgid "Dutch"
msgstr "Dutch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "e.g. 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "e.g. 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "e.g. frontend developer jobs in Berlin"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1038,6 +1150,10 @@ msgstr "Enter your password to confirm setting up two-factor authentication. Whe
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Enter your RapidAPI key"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
@@ -1050,11 +1166,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Exclude {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Exclude Companies"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Exclude Keywords"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Exit Fullscreen"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Experience"
@@ -1080,6 +1209,10 @@ msgstr "Explore the API documentation to learn how to integrate Reactive Resume
msgid "Export"
msgstr "Export"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Failed to duplicate resume"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Failed to setup two-factor authentication."
@@ -1088,6 +1221,10 @@ msgstr "Failed to setup two-factor authentication."
msgid "Failed to sign in. Please try again."
msgstr "Failed to sign in. Please try again."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Failed to sync skills"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
msgstr "Features"
@@ -1167,6 +1304,10 @@ msgstr "French"
msgid "Full Width"
msgstr "Full Width"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "Full-time"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr "Fullscreen"
@@ -1183,6 +1324,10 @@ msgstr "German"
msgid "Get Started"
msgstr "Get Started"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Get your API key from RapidAPI by subscribing to the JSearch API."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1192,6 +1337,10 @@ msgstr "Go Back"
msgid "Go to dashboard"
msgstr "Go to dashboard"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Go to Settings"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Go to..."
@@ -1333,6 +1482,10 @@ msgstr "Importing your resume..."
msgid "Importing..."
msgstr "Importing..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Include Keywords"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesian"
@@ -1354,6 +1507,10 @@ msgstr "Insert Table"
msgid "Interests"
msgstr "Interests"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Intern"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Is Reactive Resume available in multiple languages?"
@@ -1378,6 +1535,24 @@ msgstr "Italic"
msgid "Japanese"
msgstr "Japanese"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Job Search"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "Job Search API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "JSearch API Documentation"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Justify Align"
@@ -1420,6 +1595,10 @@ msgstr "Language"
msgid "Languages"
msgstr "Languages"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Last 3 days"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1568,10 +1747,22 @@ msgstr "Margin (Horizontal)"
msgid "Margin (Vertical)"
msgstr "Margin (Vertical)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Maximum Salary"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Minimum Salary"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Model"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "More than 3 years"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Move to"
@@ -1621,14 +1812,38 @@ msgstr "New Password"
msgid "New Section"
msgstr "New Section"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "New Skills Detected"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Next"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "No Advertising, No Tracking"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "No degree required"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "No experience"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "No jobs found. Try a different search query."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "No results found."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "No resumes found. Create a resume first."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norwegian"
@@ -1669,6 +1884,11 @@ msgstr "Open Source"
msgid "opens in new tab"
msgstr "opens in new tab"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Optimizing summary, experience, and skills for {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Optionally, set a password so that only people with the password can view your resume through the link."
@@ -1704,6 +1924,10 @@ msgstr "Page"
msgid "Page {0}"
msgstr "Page {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Page {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Page {pageNumber} of {totalNumberOfPages}"
@@ -1712,6 +1936,10 @@ msgstr "Page {pageNumber} of {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Paragraph"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Part-time"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkeys & 2FA"
@@ -1817,6 +2045,10 @@ msgstr "Preferences"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Previous"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primary Color"
@@ -1867,6 +2099,15 @@ msgstr "Publications"
msgid "Publisher"
msgstr "Publisher"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Quota: {0} remaining"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "RapidAPI Key"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Go to homepage"
@@ -1921,6 +2162,16 @@ msgstr "Refresh"
msgid "Remember your password? <0/>"
msgstr "Remember your password? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Remote"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Remote only"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr "Remove"
@@ -1929,10 +2180,6 @@ msgstr "Remove"
msgid "Remove Password"
msgstr "Remove Password"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Removed"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Removing password protection..."
@@ -1953,6 +2200,10 @@ msgstr "Report a Bug"
msgid "Report an issue"
msgstr "Report an issue"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Required Skills"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Resend verification email"
@@ -1962,6 +2213,7 @@ msgid "Resending verification email..."
msgstr "Resending verification email..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Reset"
@@ -1981,6 +2233,12 @@ msgstr "Resetting your password..."
msgid "Resources"
msgstr "Resources"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Resume tailored successfully"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1992,6 +2250,10 @@ msgstr "Resources"
msgid "Resumes"
msgstr "Resumes"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Retry"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Right Align"
@@ -2012,6 +2274,11 @@ msgstr "Rotation"
msgid "Russian"
msgstr "Russian"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Save {0} Skills"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2040,6 +2307,15 @@ msgstr "Scan the QR code below with your preferred authenticator app. You can al
msgid "School"
msgstr "School"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Search"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Search countries"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2061,6 +2337,17 @@ msgstr "Secret copied to clipboard."
msgid "Section Type"
msgstr "Section Type"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Select country"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr "Select..."
@@ -2199,6 +2486,10 @@ msgstr "Size"
msgid "Skills"
msgstr "Skills"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Skip"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Skip to main content"
@@ -2207,6 +2498,10 @@ msgstr "Skip to main content"
msgid "Slovak"
msgstr "Slovak"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr "Slovenian"
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2322,6 +2617,19 @@ msgstr "Tags"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Tags can be used to categorize your resume by keywords."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Tailor Resume"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Tailoring failed"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Tailoring your resume..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2343,6 +2651,7 @@ msgid "Templates"
msgstr "Templates"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Test Connection"
@@ -2358,6 +2667,10 @@ msgstr "Text Color"
msgid "Thai"
msgstr "Thai"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "The API key has been deleted successfully."
@@ -2396,15 +2709,16 @@ msgstr "Theme"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Then, enter the 6 digit code that the app provides to continue."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "There was a problem while generating the DOCX, please try again."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "There was a problem while generating the PDF, please try again in some time."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Thinking..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2433,6 +2747,10 @@ msgstr "This may take a few minutes, depending on the response of the AI provide
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "This month"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "This resume is locked and cannot be updated."
@@ -2445,6 +2763,10 @@ msgstr "This section is reserved for your personal notes specific to this resume
msgid "This step is optional, but recommended."
msgstr "This step is optional, but recommended."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "This week"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
@@ -2472,6 +2794,15 @@ msgstr "Title"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "To delete your account, you need to enter the confirmation text and click the button below."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "To search for job listings, you need to configure your RapidAPI key in settings."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Today"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Track your resume's views and downloads"
@@ -2540,6 +2871,7 @@ msgstr "Two-factor authentication has been setup successfully."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Type"
@@ -2559,6 +2891,10 @@ msgstr "Typography"
msgid "Ukrainian"
msgstr "Ukrainian"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Under 3 years"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Underline"
@@ -2668,10 +3004,6 @@ msgstr "Update Resume"
msgid "Update your password"
msgstr "Update your password"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Updated"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Updating your password..."
@@ -2766,6 +3098,10 @@ msgstr "Website"
msgid "What do you want to rename this section to?"
msgstr "What do you want to rename this section to?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "What is JSearch API?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "What makes Reactive Resume different from other resume builders?"
@@ -2796,6 +3132,10 @@ msgstr "Yes! Every template is fully customizable. You can change colors, fonts,
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Yesterday"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "You also have the option to deploy on your own servers using the Docker image."
@@ -2853,6 +3193,10 @@ msgstr "Your password has been updated successfully."
msgid "Your profile has been updated successfully."
msgstr "Your profile has been updated successfully."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+389 -45
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-03-05 10:45\n"
"PO-Revision-Date: 2026-03-19 09:07\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -45,13 +45,37 @@ msgstr "{0, plural, one {# elemento} other {# elementos}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr ""
msgstr "{0, plural, one {# puesto} other {# puestos}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} solicitudes utilizadas"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} hace meses"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} semanas atrás"
#: 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}}"
msgstr "{column, plural, one {# columna} other {# columnas}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} días atrás"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} de solicitudes {limit} utilizadas ({remaining} restantes)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Por fin,</0><1>un creador de currículums gratuito y de código abierto</1>"
@@ -202,7 +226,7 @@ msgstr "Añadir columna antes"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "Añade varios puestos para mostrar la progresión profesional en la misma empresa."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "Añadir página"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "Añadir puesto"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,9 +244,14 @@ msgstr "Añadir fila después"
msgid "Add Row Before"
msgstr "Añadir fila antes"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Añadido"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "Añadió {0} nuevas habilidades a su currículum original"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Filtros avanzados"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikáans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "Chat con IA"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI devolvió algunas referencias no válidas"
#: src/utils/locale.ts
msgid "Albanian"
@@ -247,7 +276,7 @@ msgstr "Permitir acceso público"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "¿Ya tienes una cuenta? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "Se ha producido un error desconocido al importar tu currículum."
msgid "And many more..."
msgstr "Y mucho más..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Cualquier nivel"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "En cualquier momento"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Cualquier tipo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Cualquier persona que visite la URL pública del currículum deberá introducir esta contraseña para acceder a él."
@@ -297,6 +339,10 @@ msgstr "Claves API"
msgid "API Reference"
msgstr "Referencia de la API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "Uso de la API"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "Aplicación"
@@ -305,6 +351,18 @@ msgstr "Aplicación"
msgid "Application Statistics"
msgstr "Estadísticas de la aplicación"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Aplique"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Aplicar enlace"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Solicitar vía"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Árabe"
@@ -348,10 +406,6 @@ msgstr "Área de estudio"
msgid "Artificial Intelligence"
msgstr "Inteligencia artificial"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Pídame que actualice su currículum..."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Relación de aspecto"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Beneficios"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengalí"
@@ -485,6 +543,7 @@ msgstr "¿Puedo exportar mi currículum a PDF?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Centrar vista"
msgid "Certifications"
msgstr "Certificaciones"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Cambiar idioma"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Cambiar idioma a..."
@@ -544,9 +607,9 @@ msgstr "Chino (tradicional)"
msgid "Circle"
msgstr "Círculo"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Limpiar historial del chat"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Borrar todo"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Haz clic aquí para seleccionar un archivo para importar"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Cerrar"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Empresa"
msgid "Completely free, forever, no hidden costs."
msgstr "Completamente gratis, para siempre, sin costes ocultos."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Configurar la búsqueda de empleo"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -610,6 +677,10 @@ msgstr "Continúa donde lo dejaste"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Continúa donde lo dejaste importando un currículum existente que creaste con Reactive Resume o con cualquier otro creador de currículums. Los formatos compatibles incluyen PDF, Microsoft Word, así como archivos JSON de Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Contratista"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Las contribuciones financian correcciones de errores, actualizaciones de seguridad y mejoras continuas para que la aplicación funcione sin problemas."
@@ -634,6 +705,14 @@ msgstr "Copia esta clave secreta y úsala en tus aplicaciones para acceder a tus
msgid "Copy URL"
msgstr "Copiar URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "No se han podido recuperar los trabajos"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "País"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -799,6 +878,10 @@ msgstr "Seguridad de los datos"
msgid "Date"
msgstr "Fecha"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Fecha de publicación"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Título académico"
@@ -855,6 +938,7 @@ msgstr "Eliminando tu currículum..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Descripción"
@@ -862,6 +946,18 @@ msgstr "Descripción"
msgid "Design"
msgstr "Diseño"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Direct"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Solicitud directa"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Sólo aplicación directa"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Documentación"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "¿No tienes una cuenta? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Donar a Reactive Resume"
msgid "Download"
msgstr "Descargar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Descargue una copia de su currículum como documento de Word. Utilice este archivo para personalizar aún más su currículum en Microsoft Word o Google Docs."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Descarga una copia de tu currículum en formato JSON. Usa este archivo como copia de seguridad o para importar tu currículum en otras aplicaciones, incluidos asistentes de IA."
@@ -913,6 +1013,10 @@ msgstr "Descarga una copia de tu currículum en formato JSON. Usa este archivo c
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Descarga una copia de tu currículum en formato PDF. Usa este archivo para imprimir o para compartir fácilmente tu currículum con reclutadores."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Descargar DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Descargar JSON"
@@ -958,9 +1062,17 @@ msgstr "Duplicando tu currículum..."
msgid "Dutch"
msgstr "Neerlandés"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "ej. Cambiar mi nombre a..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "por ejemplo, 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "por ejemplo, 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "p.ej. trabajos de desarrollador frontend en Berlín"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "Inglés"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Inglés (Reino Unido)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Introduce tu contraseña para confirmar la configuración de la autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Introduce tu contraseña para deshabilitar la autenticación de doble factor. Tu cuenta será menos segura sin 2FA habilitada."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Introduzca su clave RapidAPI"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Cada contribución, grande o pequeña, marca una gran diferencia para el proyecto.<0/>¡Gracias por tu apoyo!"
@@ -1055,11 +1171,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Excluya {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Excluir empresas"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Excluir palabras clave"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Salir de pantalla completa"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Experiencia"
@@ -1085,13 +1214,21 @@ msgstr "Explora la documentación de la API para aprender a integrar Reactive Re
msgid "Export"
msgstr "Exportar"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Fallo al duplicar el currículum"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "No se pudo configurar la autenticación de doble factor."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr ""
msgstr "No se pudo iniciar sesión. Inténtalo de nuevo."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Fallo en la sincronización de habilidades"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
@@ -1172,6 +1309,10 @@ msgstr "Francés"
msgid "Full Width"
msgstr "Ancho completo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "A tiempo completo"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr "Pantalla completa"
@@ -1188,6 +1329,10 @@ msgstr "Alemán"
msgid "Get Started"
msgstr "Primeros pasos"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Obtenga su clave API de RapidAPI suscribiéndose a la API JSearch."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Volver"
msgid "Go to dashboard"
msgstr "Ir al panel"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Ir a Ajustes"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Ir a..."
@@ -1338,6 +1487,10 @@ msgstr "Importando tu currículum..."
msgid "Importing..."
msgstr "Importando..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Incluir palabras clave"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesio"
@@ -1359,6 +1512,10 @@ msgstr "Insertar tabla"
msgid "Interests"
msgstr "Intereses"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Becario"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "¿Reactive Resume está disponible en varios idiomas?"
@@ -1383,6 +1540,24 @@ msgstr "Cursiva"
msgid "Japanese"
msgstr "Japonés"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Búsqueda de empleo"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "API de búsqueda de empleo"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch agrega ofertas de empleo de múltiples bolsas de trabajo utilizando Google for Jobs. Puede filtrar por país (código ISO alfa-2), fecha de publicación, tipo de empleo, opciones remotas y nivel de experiencia."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "Documentación de la API JSearch"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Justificar"
@@ -1425,6 +1600,10 @@ msgstr "Idioma"
msgid "Languages"
msgstr "Idiomas"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Últimos 3 días"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1573,10 +1752,22 @@ msgstr "Margen (horizontal)"
msgid "Margin (Vertical)"
msgstr "Margen (vertical)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Salario máximo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Salario mínimo"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Modelo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "Más de 3 años"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Mover a"
@@ -1626,14 +1817,38 @@ msgstr "Nueva contraseña"
msgid "New Section"
msgstr "Nueva sección"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "Nuevas habilidades detectadas"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Siguiente"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Sin publicidad, sin rastreo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "No se requiere titulación"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "Sin experiencia"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "No se han encontrado empleos. Pruebe con otra consulta de búsqueda."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "No se han encontrado resultados."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "No se han encontrado currículos. Cree primero un currículum."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Noruego"
@@ -1674,6 +1889,11 @@ msgstr "Código abierto"
msgid "opens in new tab"
msgstr "abrir en una nueva pestaña"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Optimizar el resumen, la experiencia y las habilidades para {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Opcionalmente, establece una contraseña para que solo las personas que la tengan puedan ver tu currículum a través del enlace."
@@ -1693,11 +1913,11 @@ msgstr "Organización"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "Periodo general"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "Título general (opcional)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "Página"
msgid "Page {0}"
msgstr "Página {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Página {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Página {pageNumber} de {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Página {pageNumber} de {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Párrafo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "A tiempo parcial"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Claves de acceso y 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Preferencias"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Presiona <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> para agregar o guardar la palabra clave actual."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Anterior"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Color primario"
@@ -1872,6 +2104,15 @@ msgstr "Publicaciones"
msgid "Publisher"
msgstr "Editor"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Cuota: {0} restante"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "Clave RapidAPI"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ir a la página de inicio"
@@ -1924,20 +2165,26 @@ msgstr "Actualizar"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
msgstr "¿Recuerdas tu contraseña? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Remoto"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Sólo a distancia"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "Eliminar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "Quitar contraseña"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Eliminado"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Quitando la protección con contraseña..."
@@ -1948,7 +2195,7 @@ msgstr "Renombrar"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "Reordenar"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "Informar de un error"
msgid "Report an issue"
msgstr "Informar de un problema"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Habilidades requeridas"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Reenviar correo de verificación"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Reenviando correo de verificación..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Restablecer"
@@ -1986,6 +2238,12 @@ msgstr "Restableciendo tu contraseña..."
msgid "Resources"
msgstr "Recursos"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Currículum vitae adaptado con éxito"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "Recursos"
msgid "Resumes"
msgstr "Currículums"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Vuelva a intentarlo"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alinear a la derecha"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "Progresión de puestos"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "Rotación"
msgid "Russian"
msgstr "Ruso"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Guardar {0} Habilidades"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Escanea el código QR de abajo con tu aplicación de autenticación pref
msgid "School"
msgstr "Centro educativo"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Busque en"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Buscar países"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Buscar..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Buscar..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Secreto copiado al portapapeles."
msgid "Section Type"
msgstr "Tipo de sección"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Seleccione un currículum a medida para \"{0}\" en {1}. Se creará una copia{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Seleccione el país"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Seleccionar..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2204,6 +2491,10 @@ msgstr "Tamaño"
msgid "Skills"
msgstr "Habilidades"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Saltar"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Saltar al contenido principal"
@@ -2212,6 +2503,10 @@ msgstr "Saltar al contenido principal"
msgid "Slovak"
msgstr "Eslovaco"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2327,6 +2622,19 @@ msgstr "Etiquetas"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Las etiquetas pueden utilizarse para clasificar tu currículum por palabras clave."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Currículum a medida"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Falló la sastrería"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Adaptar su currículum..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Plantillas"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Probar conexión"
@@ -2363,6 +2672,10 @@ msgstr "Color del texto"
msgid "Thai"
msgstr "Tailandés"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "La IA ha identificado nuevas habilidades de su experiencia que encajan con este puesto de trabajo. Seleccione cuáles desea guardar en su currículum original para futuras solicitudes. Esto modificará permanentemente su currículum original y no podrá deshacerse."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "La clave API se ha eliminado correctamente."
@@ -2401,15 +2714,16 @@ msgstr "Tema"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Luego, introduce el código de 6 dígitos que te proporciona la aplicación para continuar."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "Se ha producido un problema al generar el DOCX, inténtelo de nuevo."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Ha habido un problema al generar el PDF, inténtalo de nuevo dentro de un rato."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Pensando..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Esto puede tardar unos minutos, dependiendo de la respuesta del proveedo
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "Esto puede tardar un poco dependiendo de la capacidad del servidor. No cierres la ventana ni recargues la página."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "Este mes"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Este currículum está bloqueado y no se puede actualizar."
@@ -2450,6 +2768,10 @@ msgstr "Esta sección está reservada para tus notas personales específicas de
msgid "This step is optional, but recommended."
msgstr "Este paso es opcional, pero recomendable."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "Esta semana"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Esto generará una nueva clave API para acceder a la API de Reactive Resume y permitir que las máquinas interactúen con los datos de tu currículum."
@@ -2477,6 +2799,15 @@ msgstr "Título"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "Para eliminar tu cuenta, debes introducir el texto de confirmación y hacer clic en el botón de abajo."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "Para buscar ofertas de empleo, debe configurar su clave RapidAPI en los ajustes."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Hoy"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Haz un seguimiento de las visualizaciones y descargas de tu currículum"
@@ -2545,6 +2876,7 @@ msgstr "La autenticación de doble factor se ha configurado correctamente."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Tipo"
@@ -2564,6 +2896,10 @@ msgstr "Tipografía"
msgid "Ukrainian"
msgstr "Ucraniano"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Menos de 3 años"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Subrayado"
@@ -2673,10 +3009,6 @@ msgstr "Actualizar currículum"
msgid "Update your password"
msgstr "Actualiza tu contraseña"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Actualizado"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Actualizando tu contraseña..."
@@ -2771,6 +3103,10 @@ msgstr "Sitio web"
msgid "What do you want to rename this section to?"
msgstr "¿Cómo quieres renombrar esta sección?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "¿Qué es la API JSearch?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "¿Qué hace que Reactive Resume sea diferente de otros creadores de currículums?"
@@ -2801,6 +3137,10 @@ msgstr "Sí. Todas las plantillas son totalmente personalizables. Puedes cambiar
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Ayer"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "También tienes la opción de desplegarlo en tus propios servidores usando la imagen de Docker."
@@ -2858,6 +3198,10 @@ msgstr "Tu contraseña se ha actualizado con éxito."
msgid "Your profile has been updated successfully."
msgstr "Tu perfil se ha actualizado correctamente."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Su clave RapidAPI se almacena localmente en su navegador. Sólo se envía al servidor al realizar una solicitud de búsqueda de empleo, y nunca se almacena ni se registra en nuestros servidores."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+404 -60
View File
File diff suppressed because it is too large Load Diff
+404 -60
View File
File diff suppressed because it is too large Load Diff
+387 -43
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-03-10 15:31\n"
"PO-Revision-Date: 2026-03-22 11:27\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -47,11 +47,35 @@ 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}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} requêtes utilisées"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} il y a quelques mois"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} il y a quelques semaines"
#: 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}}"
msgstr "{column, plural, one {# Colonne} other {# Colonnes}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} il y a quelques jours"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} de demandes {limit} utilisées ({remaining} restantes)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Enfin,</0><1>Un outil de création de CV gratuit et open-source</1>"
@@ -220,9 +244,14 @@ msgstr "Ajouter une ligne après"
msgid "Add Row Before"
msgstr "Ajouter une ligne avant"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Ajouté"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "Ajout de {0} nouvelles compétences à votre CV original"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Filtres avancés"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "Chat avec l'IA"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "L'IA a renvoyé des références non valides"
#: src/utils/locale.ts
msgid "Albanian"
@@ -247,7 +276,7 @@ msgstr "Autoriser l'accès public"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "Vous avez déjà un compte ? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "Une erreur inconnue s'est produite lors de l'importation de votre CV."
msgid "And many more..."
msgstr "Et bien d'autres..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Tout niveau"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "A tout moment"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Tout type"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Toute personne visitant l'URL public du CV doit saisir ce mot de passe pour y accéder."
@@ -297,6 +339,10 @@ msgstr "Clés API"
msgid "API Reference"
msgstr "Référence de l'API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "Utilisation de l'API"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -305,13 +351,25 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Statistiques d'application"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Appliquer"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Appliquer le lien"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Postulez via"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabe"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr "Êtes-vous sûr de vouloir supprimer cet élément ?"
msgstr "Êtes-vous sûr de vouloir fermer cette fenêtre ?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -348,10 +406,6 @@ msgstr "Domaine d'étude"
msgid "Artificial Intelligence"
msgstr "Intelligence artificielle"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Demandez-moi de mettre à jour votre CV."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Format d'image"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Avantages"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -485,6 +543,7 @@ msgstr "Puis-je exporter mon CV au format PDF ?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Centrer la vue"
msgid "Certifications"
msgstr "Certifications"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Changer la langue"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Changer la langue en..."
@@ -544,9 +607,9 @@ msgstr "Chinois (traditionnel)"
msgid "Circle"
msgstr "Cercle"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Effacer l'historique de chat"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Tout effacer"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Cliquez ici pour sélectionner un fichier à importer"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Fermer"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Entreprise"
msgid "Completely free, forever, no hidden costs."
msgstr "Entièrement gratuit, pour toujours, sans frais cachés."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Configurer la recherche d'emploi"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -610,6 +677,10 @@ msgstr "Continuez là où vous vous êtes arrêté"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Reprenez là où vous vous étiez arrêté en important un CV que vous avez créé à l'aide de Reactive Resume ou d'un autre outil de création de CV. Les formats pris en charge sont les suivants : PDF, Microsoft Word, ainsi que les fichiers JSON de Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Entrepreneur"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Les contributions financent les corrections de bogues, les mises à jour de sécurité et les améliorations continues pour assurer le bon fonctionnement de l'application."
@@ -634,6 +705,14 @@ msgstr "Copiez cette clé secrète et utilisez-la dans vos applications pour acc
msgid "Copy URL"
msgstr "Copier l'URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Impossible de récupérer les emplois"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Pays"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -710,7 +789,7 @@ msgstr "Créer un nouveau projet"
#: src/dialogs/resume/sections/publication.tsx
msgid "Create a new publication"
msgstr "Crer une nouvelle publication"
msgstr "Créer une nouvelle publication"
#: src/dialogs/resume/sections/reference.tsx
msgid "Create a new reference"
@@ -799,6 +878,10 @@ msgstr "Sécurité des données"
msgid "Date"
msgstr "Date"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Date de publication"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Diplôme"
@@ -855,6 +938,7 @@ msgstr "Suppression de votre CV en cours..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Description"
@@ -862,6 +946,18 @@ msgstr "Description"
msgid "Design"
msgstr "Apparence"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Direct"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Postuler directement"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Application directe uniquement"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Documentation"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "Vous n'avez pas de compte ? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Faire un don à Reactive Resume"
msgid "Download"
msgstr "Télécharger"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Téléchargez une copie de votre CV sous forme de document Word. Utilisez ce fichier pour personnaliser davantage votre CV dans Microsoft Word ou Google Docs."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Téléchargez un exemplaire de votre CV au format JSON. Utilisez ce fichier comme sauvegarde ou pour importer votre CV dans d'autres applications, y compris les assistants IA."
@@ -913,6 +1013,10 @@ msgstr "Téléchargez un exemplaire de votre CV au format JSON. Utilisez ce fich
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Téléchargez un exemplaire de votre CV au format PDF. Utilisez ce fichier pour l'imprimer ou pour partager facilement votre CV avec les recruteurs."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Télécharger DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Télécharger le JSON"
@@ -958,9 +1062,17 @@ msgstr "Duplication de votre CV..."
msgid "Dutch"
msgstr "Néerlandais"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "Par ex. : Changer mon nom en"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "par exemple 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "par exemple 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "par exemple, les emplois de développeur frontend à Berlin"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "Anglais"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Anglais (Royaume-Uni)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Saisissez votre mot de passe pour confirmer la configuration de l'authen
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Saisissez votre mot de passe pour désactiver l'authentification à deux facteurs. Votre compte sera moins sécurisé si l'authentification à deux facteurs n'est pas activée."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Saisissez votre clé RapidAPI"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Chaque contribution, petite ou grande, fait une énorme différence pour le projet.<0/>Merci pour votre soutien !"
@@ -1055,11 +1171,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Exclure {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Exclure les entreprises"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Exclure des mots-clés"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Quitter le mode plein écran"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Expérience"
@@ -1085,6 +1214,10 @@ msgstr "Explorez la documentation de l'API pour apprendre à intégrer Reactive
msgid "Export"
msgstr "Exporter"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Échec de la duplication du CV"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Échec de la configuration de l'authentification à deux facteurs."
@@ -1093,6 +1226,10 @@ msgstr "Échec de la configuration de l'authentification à deux facteurs."
msgid "Failed to sign in. Please try again."
msgstr "Échec de la connexion. Veuillez réessayer."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Échec de la synchronisation des compétences"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
msgstr "Fonctionnalités"
@@ -1129,7 +1266,7 @@ msgstr "Poids de la police"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgid "Font Weights"
msgstr "Poids de la police"
msgstr "Graisses de police"
#: src/routes/_home/-sections/features.tsx
msgid "For a secure and distraction-free experience."
@@ -1172,6 +1309,10 @@ msgstr "Français"
msgid "Full Width"
msgstr "Pleine largeur"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "Temps plein"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr "Plein écran"
@@ -1188,6 +1329,10 @@ msgstr "Allemand"
msgid "Get Started"
msgstr "Pour commencer"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Obtenez votre clé API auprès de RapidAPI en vous abonnant à l'API JSearch."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Revenir en arrière"
msgid "Go to dashboard"
msgstr "Aller au tableau de bord"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Accédez à la rubrique Paramètres"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Aller vers..."
@@ -1248,7 +1397,7 @@ msgstr "Titre 6"
#: src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
msgid "Headline"
msgstr "Titre"
msgstr "Titre professionnel"
#: src/utils/locale.ts
msgid "Hebrew"
@@ -1338,6 +1487,10 @@ msgstr "Importation de votre CV en cours..."
msgid "Importing..."
msgstr "Importation en cours..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Inclure des mots-clés"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonésien"
@@ -1359,6 +1512,10 @@ msgstr "Insérer un tableau"
msgid "Interests"
msgstr "Centres d'intérêt"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Stagiaire"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Reactive Resume est-il disponible en plusieurs langues ?"
@@ -1383,6 +1540,24 @@ msgstr "Italique"
msgid "Japanese"
msgstr "Japonais"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Recherche d'emploi"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "API de recherche d'emploi"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch regroupe les offres d'emploi de plusieurs sites d'emploi à l'aide de Google for Jobs. Vous pouvez filtrer par pays (code ISO alpha-2), date de publication, type d'emploi, options de travail à distance et niveau d'expérience."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "Documentation de l'API JSearch"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Alignement justifié"
@@ -1425,6 +1600,10 @@ msgstr "Langue"
msgid "Languages"
msgstr "Langues"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Les 3 derniers jours"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1573,10 +1752,22 @@ msgstr "Marge (horizontale)"
msgid "Margin (Vertical)"
msgstr "Marge (verticale)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Salaire maximum"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Salaire minimum"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Modèle"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "Plus de 3 ans"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Déplacer vers"
@@ -1626,14 +1817,38 @@ msgstr "Nouveau mot de passe"
msgid "New Section"
msgstr "Nouvelle section"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "Nouvelles compétences détectées"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Suivant"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Pas de publicité, pas de suivi"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "Aucun diplôme n'est requis"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "Aucune expérience"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "Aucun emploi n'a été trouvé. Essayez une autre recherche."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "Aucun résultat trouvé."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "Aucun CV n'a été trouvé. Créez d'abord un CV."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norvégien"
@@ -1674,6 +1889,11 @@ msgstr "Open Source"
msgid "opens in new tab"
msgstr "s'ouvre dans un nouvel onglet"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Optimiser la synthèse, l'expérience et les compétences pour {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Eventuellement, définissez un mot de passe pour que seules les personnes ayant le mot de passe puissent consulter votre CV par le biais du lien."
@@ -1709,6 +1929,10 @@ msgstr "Page"
msgid "Page {0}"
msgstr "Page {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Page {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Page {pageNumber} sur {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Page {pageNumber} sur {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Paragraphe"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Temps partiel"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Clés d'accès et 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Préférences"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Appuyez sur <0>{RETURN_KEY}</0> ou sur <1>{COMMA_KEY}</1> pour ajouter ou enregistrer le mot-clé actuel."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Précédent"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Couleur principale"
@@ -1872,6 +2104,15 @@ msgstr "Publications"
msgid "Publisher"
msgstr "Éditeur"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Quota : {0} restant"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "Clé RapidAPI"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Aller à la page d'accueil"
@@ -1924,7 +2165,17 @@ msgstr "Actualiser"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
msgstr "Vous vous souvenez de votre mot de passe ? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "A distance"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Télécommande uniquement"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
@@ -1934,10 +2185,6 @@ msgstr "Supprimer"
msgid "Remove Password"
msgstr "Supprimer le mot de passe"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Supprimé"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Suppression de la protection par mot de passe..."
@@ -1958,6 +2205,10 @@ msgstr "Signaler un bug"
msgid "Report an issue"
msgstr "Signaler un problème"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Compétences requises"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Renvoyer l'email de vérification"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Renvoi de l'e-mail de vérification..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Réinitialiser"
@@ -1986,6 +2238,12 @@ msgstr "Réinitialisation de votre mot de passe..."
msgid "Resources"
msgstr "Ressources"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Un curriculum vitae adapté avec succès"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,6 +2255,10 @@ msgstr "Ressources"
msgid "Resumes"
msgstr "CVs"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Réessayer"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Alignement à droite"
@@ -2017,6 +2279,11 @@ msgstr "Rotation"
msgid "Russian"
msgstr "Russe"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Sauvegarder les compétences {0}"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Scannez le code QR ci-dessous avec votre application d'authentification
msgid "School"
msgstr "École"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Recherche"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Recherche de pays"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Rechercher..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Rechercher..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Secret copié dans le presse-papiers."
msgid "Section Type"
msgstr "Type de section"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Sélectionnez un CV à adapter à \"{0}\" à l'adresse {1}. Une copie sera créée{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Sélectionnez un pays"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Sélectionner..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2204,6 +2491,10 @@ msgstr "Taille"
msgid "Skills"
msgstr "Compétences"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Sauter"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Passer au contenu principal"
@@ -2212,6 +2503,10 @@ msgstr "Passer au contenu principal"
msgid "Slovak"
msgstr "Slovaque"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr "Slovène"
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2327,6 +2622,19 @@ msgstr "Mots-clés"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Les mots-clés peuvent être utilisés pour catégoriser vos CVs."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "CV sur mesure"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Le tailleur a échoué"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Adapter votre CV..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamoul"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Modèles"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Tester la connexion"
@@ -2363,6 +2672,10 @@ msgstr "Couleur du texte"
msgid "Thai"
msgstr "Thaïlandais"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "L'IA a identifié de nouvelles compétences issues de votre expérience qui correspondent à ce poste. Sélectionnez celles que vous souhaitez sauvegarder dans votre CV d'origine pour de futures candidatures. Cette opération modifie de manière permanente votre CV original et ne peut être annulée."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "La clé API a été supprimée avec succès."
@@ -2401,15 +2714,16 @@ msgstr "Thème"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Ensuite, entrez le code à 6 chiffres fourni par l'application pour continuer."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "Il y a eu un problème lors de la génération du DOCX, veuillez réessayer."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Un problème est survenu lors de la génération du PDF, veuillez réessayer dans quelque temps."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Réflexion..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Cela peut prendre quelques minutes, en fonction de la réponse du fourni
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "Cela peut prendre un certain temps, selon la capacité du serveur. Ne fermez pas la fenêtre et n’actualisez pas la page."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "Ce mois-ci"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Ce CV est verrouillé et ne peut pas être modifié."
@@ -2450,6 +2768,10 @@ msgstr "Cette section est réservée à vos notes personnelles spécifiques à c
msgid "This step is optional, but recommended."
msgstr "Cette étape est facultative, mais recommandée."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "Cette semaine"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Cela générera une nouvelle clé API pour accéder à l'API Reactive Resume afin de permettre aux machines d'interagir avec les données de votre CV."
@@ -2477,6 +2799,15 @@ msgstr "Titre"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "Pour supprimer votre compte, vous devez saisir le texte de confirmation et cliquer sur le bouton ci-dessous."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "Pour rechercher des offres d'emploi, vous devez configurer votre clé RapidAPI dans les paramètres."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Aujourd'hui"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Suivez les consultations et les téléchargements de votre CV"
@@ -2545,8 +2876,9 @@ msgstr "L'authentification à deux facteurs a été mise en place avec succès."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Taper"
msgstr "Type"
#: src/routes/dashboard/settings/danger-zone.tsx
msgid "Type \"{CONFIRMATION_TEXT}\" to confirm"
@@ -2564,6 +2896,10 @@ msgstr "Typographie"
msgid "Ukrainian"
msgstr "Ukrainien"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Moins de 3 ans"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Souligner"
@@ -2654,7 +2990,7 @@ msgstr "Modifier une compétence existante"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr "Mise à jour d'un élément de synthèse existant"
msgstr "Modifier un élément de synthèse existant"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "Modifier le CV"
msgid "Update your password"
msgstr "Modifier votre mot de passe"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Mis à jour"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Mise à jour de votre mot de passe..."
@@ -2752,7 +3084,7 @@ msgstr "Vues"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Volunteer"
msgstr "Bénévole"
msgstr "Bénévolat"
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2771,6 +3103,10 @@ msgstr "Site web"
msgid "What do you want to rename this section to?"
msgstr "Comment voulez-vous renommer cette section ?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "Qu'est-ce que l'API JSearch ?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Qu'est-ce qui différencie Reactive Resume des autres outils de création de CV ?"
@@ -2801,6 +3137,10 @@ msgstr "Oui ! Chaque modèle est entièrement personnalisable. Vous pouvez modif
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Hier"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "Vous avez également la possibilité de déployer sur vos propres serveurs en utilisant l'image Docker."
@@ -2858,6 +3198,10 @@ msgstr "Votre mot de passe a été mis à jour avec succès."
msgid "Your profile has been updated successfully."
msgstr "Votre profil a été mis à jour avec succès."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Votre clé RapidAPI est stockée localement dans votre navigateur. Elle n'est envoyée au serveur que lors d'une demande de recherche d'emploi et n'est jamais stockée ou enregistrée sur nos serveurs."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+407 -63
View File
File diff suppressed because it is too large Load Diff
+402 -58
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:07\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -45,13 +45,37 @@ msgstr "{0, plural, other {# item}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr ""
msgstr "{0, plural, one {# peran} other {# peran}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} permintaan yang digunakan"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} bulan yang lalu"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} minggu yang lalu"
#: 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}}"
msgstr "{column, plural, other {# Kolom}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} beberapa hari yang lalu"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} dari {limit} permintaan yang digunakan ({remaining} tersisa)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Akhirnya,</0><1>Pembuat resume gratis dan sumber terbuka</1>"
@@ -202,7 +226,7 @@ msgstr "Tambah Kolom Sebelum"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "Tambahkan beberapa peran untuk menunjukkan perkembangan karier di perusahaan yang sama."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "Tambah Halaman"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "Tambah Peran"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,9 +244,14 @@ msgstr "Tambah Baris Setelah"
msgid "Add Row Before"
msgstr "Tambah Baris Sebelum"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Ditambahkan"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "Menambahkan {0} keterampilan baru ke resume asli Anda"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Filter Tingkat Lanjut"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "Kecerdasan Buatan"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "Chat AI"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI mengembalikan beberapa referensi yang tidak valid"
#: src/utils/locale.ts
msgid "Albanian"
@@ -247,7 +276,7 @@ msgstr "Izinkan Akses Publik"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "Sudah punya akun? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "Terjadi kesalahan yang tidak diketahui saat mengimpor resume Anda."
msgid "And many more..."
msgstr "Dan masih banyak lagi..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Tingkat apa pun"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "Kapan saja"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Jenis apa saja"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Siapa pun yang mengunjungi URL publik resume harus memasukkan kata sandi ini untuk mengaksesnya."
@@ -297,6 +339,10 @@ msgstr "API Key"
msgid "API Reference"
msgstr "Referensi API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "Penggunaan API"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "Aplikasi"
@@ -305,6 +351,18 @@ msgstr "Aplikasi"
msgid "Application Statistics"
msgstr "Statistik Aplikasi"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Menerapkan"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Terapkan Tautan"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Ajukan melalui"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arab"
@@ -348,10 +406,6 @@ msgstr "Bidang Studi"
msgid "Artificial Intelligence"
msgstr "Kecerdasan Buatan"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Rasio Aspek"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Manfaat"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -485,6 +543,7 @@ msgstr "Bisakah saya mengekspor resume saya ke PDF?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Pusatkan tampilan"
msgid "Certifications"
msgstr "Sertifikasi"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Ubah bahasa"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Ubah bahasa ke..."
@@ -544,9 +607,9 @@ msgstr "Cina (Tradisional)"
msgid "Circle"
msgstr "Lingkaran"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Hapus semua"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Klik di sini untuk memilih file yang akan diimpor"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Tutup"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Perusahaan"
msgid "Completely free, forever, no hidden costs."
msgstr "Sepenuhnya gratis, selamanya, tanpa biaya tersembunyi."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Mengonfigurasi Pencarian Pekerjaan"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -592,7 +659,7 @@ msgstr "Hubungkan"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "Konten"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -610,6 +677,10 @@ msgstr "Lanjutkan dari tempat terakhir Anda berhenti"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Lanjutkan dari tempat terakhir Anda berhenti dengan mengimpor resume yang sudah ada yang Anda buat menggunakan Reactive Resume atau pembuat resume lainnya. Format yang didukung termasuk PDF, Microsoft Word, serta file JSON dari Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Kontraktor"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Kontribusi mendanai perbaikan bug, pembaruan keamanan, dan peningkatan berkelanjutan agar aplikasi tetap berjalan dengan lancar."
@@ -634,10 +705,18 @@ msgstr "Salin kunci rahasia ini dan gunakan di aplikasi Anda untuk mengakses dat
msgid "Copy URL"
msgstr "Salin URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Tidak dapat mengambil pekerjaan"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Negara"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "Surat Lamaran"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -678,7 +757,7 @@ msgstr "Buat sertifikasi baru"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "Buat surat lamaran baru"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -729,7 +808,7 @@ msgstr "Buat keahlian baru"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "Buat item ringkasan baru"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -799,6 +878,10 @@ msgstr "Keamanan Data"
msgid "Date"
msgstr "Tanggal"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Tanggal Diposting"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Gelar"
@@ -855,6 +938,7 @@ msgstr "Menghapus resume Anda..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Deskripsi"
@@ -862,6 +946,18 @@ msgstr "Deskripsi"
msgid "Design"
msgstr "Desain"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Langsung"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Terapkan Langsung"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Hanya berlaku langsung"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Dokumentasi"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "Belum punya akun? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Donasi ke Reactive Resume"
msgid "Download"
msgstr "Unduh"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Unduh salinan resume Anda sebagai dokumen Word. Gunakan file ini untuk menyesuaikan resume Anda lebih lanjut di Microsoft Word atau Google Documents."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Unduh salinan resume Anda dalam format JSON. Gunakan file ini untuk cadangan atau untuk mengimpor resume Anda ke aplikasi lain, termasuk asisten AI."
@@ -913,6 +1013,10 @@ msgstr "Unduh salinan resume Anda dalam format JSON. Gunakan file ini untuk cada
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Unduh salinan resume Anda dalam format PDF. Gunakan file ini untuk mencetak atau dengan mudah membagikan resume Anda kepada perekrut."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Unduh DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Unduh JSON"
@@ -958,9 +1062,17 @@ msgstr "Menduplikasi resume Anda..."
msgid "Dutch"
msgstr "Belanda"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "misalnya 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "misalnya 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "mis. pekerjaan pengembang frontend di Berlin"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "Inggris"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Inggris (Britania Raya)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Masukkan kata sandi Anda untuk mengonfirmasi penyiapan autentikasi dua f
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Masukkan kata sandi Anda untuk menonaktifkan autentikasi dua faktor. Akun Anda akan menjadi kurang aman tanpa 2FA diaktifkan."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Masukkan kunci RapidAPI Anda"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Setiap kontribusi, besar atau kecil, membuat perbedaan besar bagi proyek ini.<0/>Terima kasih atas dukungan Anda!"
@@ -1055,11 +1171,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Kecualikan {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Mengecualikan Perusahaan"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Kecualikan Kata Kunci"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr ""
msgstr "Keluar dari Layar Penuh"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Pengalaman"
@@ -1085,13 +1214,21 @@ msgstr "Jelajahi dokumentasi API untuk mempelajari cara mengintegrasikan Reactiv
msgid "Export"
msgstr "Ekspor"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Gagal menduplikasi resume"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Gagal menyiapkan autentikasi dua faktor."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr ""
msgstr "Gagal masuk. Silakan coba lagi."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Gagal menyinkronkan keterampilan"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
@@ -1172,9 +1309,13 @@ msgstr "Prancis"
msgid "Full Width"
msgstr "Lebar Penuh"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "Penuh waktu"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "Layar Penuh"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1188,6 +1329,10 @@ msgstr "Jerman"
msgid "Get Started"
msgstr "Mulai"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Dapatkan kunci API Anda dari RapidAPI dengan berlangganan API JSearch."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Kembali"
msgid "Go to dashboard"
msgstr "Pergi ke dasbor"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Buka Pengaturan"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Pergi ke..."
@@ -1338,6 +1487,10 @@ msgstr "Mengimpor resume Anda..."
msgid "Importing..."
msgstr "Mengimpor..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Sertakan Kata Kunci"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesia"
@@ -1359,6 +1512,10 @@ msgstr "Sisipkan Tabel"
msgid "Interests"
msgstr "Minat"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Magang"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Apakah Reactive Resume tersedia dalam banyak bahasa?"
@@ -1383,6 +1540,24 @@ msgstr "Miring"
msgid "Japanese"
msgstr "Jepang"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Pencarian Pekerjaan"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "API Pencarian Pekerjaan"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch mengumpulkan daftar lowongan kerja dari berbagai papan lowongan kerja menggunakan Google for Jobs. Anda dapat memfilter berdasarkan negara (kode ISO alpha-2), tanggal diposting, jenis pekerjaan, opsi jarak jauh, dan tingkat pengalaman."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "Dokumentasi API JSearch"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Rata Kanan-Kiri"
@@ -1425,6 +1600,10 @@ msgstr "Bahasa"
msgid "Languages"
msgstr "Bahasa"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "3 hari terakhir"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1458,7 +1637,7 @@ msgstr "Pelajari lebih lanjut tentang cara menyesuaikan konten pada halaman"
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "Tinggalkan"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1573,10 +1752,22 @@ msgstr "Margin (Horizontal)"
msgid "Margin (Vertical)"
msgstr "Margin (Vertikal)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Gaji Maksimum"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Gaji Minimum"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Model"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "Lebih dari 3 tahun"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Pindahkan ke"
@@ -1626,14 +1817,38 @@ msgstr "Kata Sandi Baru"
msgid "New Section"
msgstr "Bagian Baru"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "Keterampilan Baru Terdeteksi"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Berikutnya"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Tanpa Iklan, Tanpa Pelacakan"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "Tidak diperlukan gelar"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "Tidak ada pengalaman"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "Tidak ada pekerjaan yang ditemukan. Coba permintaan pencarian yang berbeda."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "Tidak ada hasil."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "Tidak ada resume yang ditemukan. Buat resume terlebih dahulu."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norwegia"
@@ -1674,6 +1889,11 @@ msgstr "Sumber Terbuka"
msgid "opens in new tab"
msgstr "terbuka di tab baru"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Mengoptimalkan ringkasan, pengalaman, dan keterampilan untuk {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Secara opsional, atur kata sandi sehingga hanya orang yang memiliki kata sandi yang dapat melihat resume Anda melalui tautan."
@@ -1693,11 +1913,11 @@ msgstr "Organisasi"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "Periode Keseluruhan"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "Judul Keseluruhan (opsional)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "Halaman"
msgid "Page {0}"
msgstr "Halaman {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Halaman {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Halaman {pageNumber} dari {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Halaman {pageNumber} dari {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Paragraf"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Paruh waktu"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkey & 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Preferensi"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Tekan <0>{RETURN_KEY}</0> atau <1>{COMMA_KEY}</1> untuk menambah atau menyimpan kata kunci saat ini."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Sebelumnya"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Warna Utama"
@@ -1872,6 +2104,15 @@ msgstr "Publikasi"
msgid "Publisher"
msgstr "Penerbit"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Sisa kuota: {0}"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "Kunci RapidAPI"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Pergi ke beranda"
@@ -1898,7 +2139,7 @@ msgstr "Reactive Resume bersifat sumber terbuka, berfokus pada privasi, dan sepe
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "Penerima"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1924,20 +2165,26 @@ msgstr "Muat Ulang"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
msgstr "Ingat kata sandi Anda? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Jarak jauh"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Hanya untuk jarak jauh"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "Hapus"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "Hapus Kata Sandi"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Menghapus perlindungan kata sandi..."
@@ -1948,7 +2195,7 @@ msgstr "Ganti Nama"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "Urutkan ulang"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "Laporkan Bug"
msgid "Report an issue"
msgstr "Laporkan masalah"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Keahlian yang dibutuhkan"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Kirim ulang email verifikasi"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Mengirim ulang email verifikasi..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Atur Ulang"
@@ -1986,6 +2238,12 @@ msgstr "Mengatur ulang kata sandi Anda..."
msgid "Resources"
msgstr "Sumber Daya"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Melanjutkan yang berhasil disesuaikan"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "Sumber Daya"
msgid "Resumes"
msgstr "Resume"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Coba lagi."
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rata Kanan"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "Perkembangan Peran"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "Rotasi"
msgid "Russian"
msgstr "Rusia"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Simpan {0} Keterampilan"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Pindai kode QR di bawah ini dengan aplikasi autentikator pilihan Anda. A
msgid "School"
msgstr "Sekolah"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Pencarian"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Cari negara"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Cari..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Cari..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Rahasia disalin ke papan klip."
msgid "Section Type"
msgstr "Tipe Bagian"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Pilih resume yang akan disesuaikan untuk \"{0}\" di {1}. Salinan akan dibuat{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Pilih negara"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Pilih..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2139,7 +2426,7 @@ msgstr "Tampilkan"
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
msgstr "Tampilkan tautan di judul"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
@@ -2204,6 +2491,10 @@ msgstr "Ukuran"
msgid "Skills"
msgstr "Keahlian"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Lewati"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Lewati ke konten utama"
@@ -2212,6 +2503,10 @@ msgstr "Lewati ke konten utama"
msgid "Slovak"
msgstr "Slovak"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2280,7 +2575,7 @@ msgstr "Statistik"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "Tetap"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2327,6 +2622,19 @@ msgstr "Tag"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Tag dapat digunakan untuk mengkategorikan resume Anda dengan kata kunci."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Resume Penjahit"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Menjahit gagal"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Menyesuaikan resume Anda..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Template"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Uji Koneksi"
@@ -2363,6 +2672,10 @@ msgstr "Warna Teks"
msgid "Thai"
msgstr "Thai"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "AI mengidentifikasi keterampilan baru dari pengalaman Anda yang sesuai dengan pekerjaan ini. Pilih yang mana yang akan disimpan kembali ke resume asli Anda untuk lamaran di masa mendatang. Ini akan mengubah resume asli Anda secara permanen dan tidak dapat dibatalkan."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "API key telah berhasil dihapus."
@@ -2401,15 +2714,16 @@ msgstr "Tema"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Lalu, masukkan kode 6 digit yang diberikan aplikasi untuk melanjutkan."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "Ada masalah saat membuat DOCX, silakan coba lagi."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Terjadi masalah saat membuat PDF, silakan coba lagi nanti."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Ini mungkin memakan waktu beberapa menit, tergantung respons penyedia AI
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "Ini mungkin memakan waktu tergantung kapasitas server. Harap jangan menutup jendela atau memuat ulang halaman."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "Bulan ini"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Resume ini dikunci dan tidak dapat diperbarui."
@@ -2450,6 +2768,10 @@ msgstr "Bagian ini disediakan untuk catatan pribadi Anda yang khusus untuk resum
msgid "This step is optional, but recommended."
msgstr "Langkah ini opsional, tetapi direkomendasikan."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "Minggu ini"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Ini akan menghasilkan API key baru untuk mengakses API Reactive Resume agar mesin dapat berinteraksi dengan data resume Anda."
@@ -2477,6 +2799,15 @@ msgstr "Judul"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "Untuk menghapus akun Anda, Anda perlu memasukkan teks konfirmasi dan klik tombol di bawah."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "Untuk mencari daftar pekerjaan, Anda perlu mengonfigurasi kunci RapidAPI Anda dalam pengaturan."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Hari ini"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Lacak tampilan dan unduhan resume Anda"
@@ -2545,6 +2876,7 @@ msgstr "Autentikasi dua faktor telah berhasil disiapkan."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Tipe"
@@ -2564,6 +2896,10 @@ msgstr "Tipografi"
msgid "Ukrainian"
msgstr "Ukraina"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Di bawah 3 tahun"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Garis Bawah"
@@ -2610,7 +2946,7 @@ msgstr "Perbarui sertifikasi yang sudah ada"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "Perbarui surat lamaran yang ada"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2654,7 +2990,7 @@ msgstr "Perbarui keahlian yang sudah ada"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "Perbarui item ringkasan yang ada"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "Perbarui Resume"
msgid "Update your password"
msgstr "Perbarui kata sandi Anda"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Memperbarui kata sandi Anda..."
@@ -2771,6 +3103,10 @@ msgstr "Situs Web"
msgid "What do you want to rename this section to?"
msgstr "Apa yang ingin Anda ganti nama bagian ini menjadi?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "Apa yang dimaksud dengan JSearch API?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Apa yang membuat Reactive Resume berbeda dari pembuat resume lainnya?"
@@ -2801,6 +3137,10 @@ msgstr "Ya! Setiap template sepenuhnya dapat disesuaikan. Anda dapat mengubah wa
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Kemarin"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "Anda juga dapat memilih untuk menerapkan di server Anda sendiri menggunakan image Docker."
@@ -2815,7 +3155,7 @@ msgstr "Anda dapat membagikan resume Anda melalui URL publik unik, melindunginya
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "Anda memiliki perubahan yang belum disimpan yang akan hilang."
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
@@ -2858,6 +3198,10 @@ msgstr "Kata sandi Anda telah berhasil diperbarui."
msgid "Your profile has been updated successfully."
msgstr "Profil Anda telah berhasil diperbarui."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Kunci RapidAPI Anda disimpan secara lokal di browser Anda. Kunci ini hanya dikirim ke server ketika membuat permintaan untuk mencari pekerjaan, dan tidak pernah disimpan atau dicatat di server kami."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+389 -45
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:07\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -45,13 +45,37 @@ msgstr "{0, plural, one {# elemento} other {# elementi}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr ""
msgstr "{0, plural, one {# ruolo} other {# ruoli}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} richieste utilizzate"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} mesi fa"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} settimane fa"
#: 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}}"
msgstr "{column, plural, one {# colonna} other {# colonne}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} giorni fa"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} di richieste {limit} utilizzate ({remaining} rimanenti)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Finalmente,</0><1>un generatore di curriculum gratuito e open source</1>"
@@ -202,7 +226,7 @@ msgstr "Aggiungi colonna prima"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "Aggiungi più ruoli per mostrare la progressione di carriera nella stessa azienda."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "Aggiungi pagina"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "Aggiungi ruolo"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,9 +244,14 @@ msgstr "Aggiungi riga dopo"
msgid "Add Row Before"
msgstr "Aggiungi riga prima"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr ""
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "Aggiunge {0} nuove competenze al suo curriculum originale"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Filtri avanzati"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "IA"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI ha restituito alcuni riferimenti non validi"
#: src/utils/locale.ts
msgid "Albanian"
@@ -247,7 +276,7 @@ msgstr "Consenti accesso pubblico"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "Hai già un account? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "Si è verificato un errore sconosciuto durante l'importazione del tuo cu
msgid "And many more..."
msgstr "E molti altri..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Qualsiasi livello"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "In qualsiasi momento"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Qualsiasi tipo"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Chiunque visiti l'URL pubblico del curriculum deve inserire questa password per accedervi."
@@ -297,6 +339,10 @@ msgstr "Chiavi API"
msgid "API Reference"
msgstr "Riferimento API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "Uso dell'API"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -305,6 +351,18 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Statistiche dell'applicazione"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Applicare"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Applica il link"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Applica via"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabo"
@@ -348,10 +406,6 @@ msgstr "Area di studio"
msgid "Artificial Intelligence"
msgstr "Intelligenza artificiale"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Proporzioni"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Benefici"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengalese"
@@ -485,6 +543,7 @@ msgstr "Posso esportare il mio curriculum in PDF?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Centra vista"
msgid "Certifications"
msgstr "Certificazioni"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Cambia lingua"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Cambia lingua in..."
@@ -544,9 +607,9 @@ msgstr "Cinese (tradizionale)"
msgid "Circle"
msgstr "Cerchio"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Cancella tutto"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Fai clic qui per selezionare un file da importare"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Chiudi"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Azienda"
msgid "Completely free, forever, no hidden costs."
msgstr "Completamente gratuito, per sempre, senza costi nascosti."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Configurare la ricerca di lavoro"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -610,6 +677,10 @@ msgstr "Continua da dove avevi interrotto"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Continua da dove avevi interrotto importando un curriculum esistente che hai creato con Reactive Resume o con qualsiasi altro generatore di curriculum. I formati supportati includono PDF, Microsoft Word e file JSON di Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Contraente"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "I contributi finanziano la correzione di bug, gli aggiornamenti di sicurezza e i miglioramenti continui per mantenere l'app sempre efficiente."
@@ -634,6 +705,14 @@ msgstr "Copia questa chiave segreta e usala nelle tue applicazioni per accedere
msgid "Copy URL"
msgstr "Copia URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Impossibile recuperare i lavori"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Paese"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -799,6 +878,10 @@ msgstr "Sicurezza dei dati"
msgid "Date"
msgstr "Data"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Data di pubblicazione"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Titolo di studio"
@@ -855,6 +938,7 @@ msgstr "Eliminazione del tuo curriculum in corso..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Descrizione"
@@ -862,6 +946,18 @@ msgstr "Descrizione"
msgid "Design"
msgstr "Design"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Diretto"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Applicare direttamente"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Solo applicazione diretta"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Documentazione"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "Non hai un account? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Fai una donazione a Reactive Resume"
msgid "Download"
msgstr "Download"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Scarichi una copia del suo curriculum come documento Word. Utilizzi questo file per personalizzare ulteriormente il suo curriculum in Microsoft Word o Google Docs."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Scarica una copia del tuo curriculum in formato JSON. Usa questo file per il backup o per importare il tuo curriculum in altre applicazioni, inclusi gli assistenti IA."
@@ -913,6 +1013,10 @@ msgstr "Scarica una copia del tuo curriculum in formato JSON. Usa questo file pe
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Scarica una copia del tuo curriculum in formato PDF. Usa questo file per la stampa o per condividere facilmente il tuo curriculum con i recruiter."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Scaricare DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Scarica JSON"
@@ -958,9 +1062,17 @@ msgstr "Duplicazione del tuo curriculum in corso..."
msgid "Dutch"
msgstr "Olandese"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "Ad esempio, 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "ad esempio 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "Ad esempio, lavori come sviluppatore frontend a Berlino"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "Inglese"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Inglese (Regno Unito)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Inserisci la tua password per confermare la configurazione dell'autentic
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Inserisci la tua password per disabilitare l'autenticazione a due fattori. Il tuo account sarà meno sicuro senza 2FA attiva."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Inserisca la sua chiave RapidAPI"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Ogni contributo, grande o piccolo, fa una grande differenza per il progetto.<0/>Grazie per il tuo supporto!"
@@ -1055,11 +1171,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Escludere {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Escludere le aziende"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Escludere le parole chiave"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Esci dalla modalità a schermo intero"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Esperienza"
@@ -1085,13 +1214,21 @@ msgstr "Consulta la documentazione dell'API per imparare a integrare Reactive Re
msgid "Export"
msgstr "Esporta"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Impossibile duplicare il curriculum"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Impossibile configurare l'autenticazione a due fattori."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr ""
msgstr "Accesso non riuscito. Riprova."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Impossibile sincronizzare le competenze"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
@@ -1172,6 +1309,10 @@ msgstr "Francese"
msgid "Full Width"
msgstr "Larghezza completa"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "A tempo pieno"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr "A schermo intero"
@@ -1188,6 +1329,10 @@ msgstr "Tedesco"
msgid "Get Started"
msgstr "Per iniziare"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Ottenga la sua chiave API da RapidAPI iscrivendosi all'API JSearch."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Torna indietro"
msgid "Go to dashboard"
msgstr "Vai alla dashboard"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Vada alle Impostazioni"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Vai a..."
@@ -1338,6 +1487,10 @@ msgstr "Importazione del tuo curriculum in corso..."
msgid "Importing..."
msgstr "Importazione..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Includere le parole chiave"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesiano"
@@ -1359,6 +1512,10 @@ msgstr "Inserisci tabella"
msgid "Interests"
msgstr "Interessi"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Stagista"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Reactive Resume è disponibile in più lingue?"
@@ -1383,6 +1540,24 @@ msgstr "Corsivo"
msgid "Japanese"
msgstr "Giapponese"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Ricerca di lavoro"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "Ricerca di lavoro API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch aggrega annunci di lavoro da diverse agenzie di lavoro utilizzando Google for Jobs. Può filtrare per Paese (codice ISO alpha-2), data di pubblicazione, tipo di lavoro, opzioni remote e livello di esperienza."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "Documentazione API JSearch"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Giustifica"
@@ -1425,6 +1600,10 @@ msgstr "Lingua"
msgid "Languages"
msgstr "Lingue"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Ultimi 3 giorni"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1573,10 +1752,22 @@ msgstr "Margine (orizzontale)"
msgid "Margin (Vertical)"
msgstr "Margine (verticale)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Stipendio massimo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Stipendio minimo"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Modello"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "Più di 3 anni"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Sposta in"
@@ -1626,14 +1817,38 @@ msgstr "Nuova password"
msgid "New Section"
msgstr "Nuova sezione"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "Nuove competenze rilevate"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Avanti"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Nessuna pubblicità, nessun tracciamento"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "Non è richiesta una laurea"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "Nessuna esperienza"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "Non sono stati trovati lavori. Provi a effettuare un'altra ricerca."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "Nessun risultato trovato."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "Nessun curriculum trovato. Crei prima un curriculum."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norvegese"
@@ -1674,6 +1889,11 @@ msgstr "Open Source"
msgid "opens in new tab"
msgstr "apre in una nuova scheda"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Ottimizzazione di sintesi, esperienza e competenze per {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Facoltativamente, imposta una password affinché solo le persone che la conoscono possano visualizzare il tuo curriculum tramite il link."
@@ -1693,11 +1913,11 @@ msgstr "Organizzazione"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "Periodo complessivo"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "Titolo complessivo (opzionale)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "Pagina"
msgid "Page {0}"
msgstr "Pagina {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Pagina {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Pagina {pageNumber} di {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Pagina {pageNumber} di {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Paragrafo"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Part-time"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkey e 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Preferenze"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Premi <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> per aggiungere o salvare la parola chiave corrente."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Precedente"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Colore primario"
@@ -1872,6 +2104,15 @@ msgstr "Pubblicazioni"
msgid "Publisher"
msgstr "Editore"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Quota: {0} rimanente"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "Chiave RapidAPI"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Vai alla homepage"
@@ -1924,20 +2165,26 @@ msgstr "Aggiorna"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
msgstr "Ricordi la tua password? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Remoto"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Solo a distanza"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "Rimuovi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "Rimuovi password"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Rimozione della protezione tramite password..."
@@ -1948,7 +2195,7 @@ msgstr "Rinomina"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "Riordina"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "Segnala un bug"
msgid "Report an issue"
msgstr "Segnala un problema"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Competenze richieste"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Invia di nuovo email di verifica"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Invio dell'email di verifica in corso..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Ripristina"
@@ -1986,6 +2238,12 @@ msgstr "Reimpostazione della tua password in corso..."
msgid "Resources"
msgstr "Risorse"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Il curriculum vitae è stato personalizzato con successo"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "Risorse"
msgid "Resumes"
msgstr "Curricula"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Riprova"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Allinea a destra"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "Progressione di ruolo"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "Rotazione"
msgid "Russian"
msgstr "Russo"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Salva le abilità di {0}"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Scansiona il codice QR qui sotto con la tua app di autenticazione prefer
msgid "School"
msgstr "Scuola"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Ricerca"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Ricerca Paesi"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Cerca..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Cerca..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Segreto copiato negli appunti."
msgid "Section Type"
msgstr "Tipo di sezione"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Selezioni un curriculum da personalizzare per \"{0}\" su {1}. Verrà creata una copia{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Selezionare il Paese"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Seleziona..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2204,6 +2491,10 @@ msgstr "Dimensione"
msgid "Skills"
msgstr "Competenze"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Salta"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Salta al contenuto principale"
@@ -2212,6 +2503,10 @@ msgstr "Salta al contenuto principale"
msgid "Slovak"
msgstr "Slovacco"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2327,6 +2622,19 @@ msgstr "Tag"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "I tag possono essere usati per categorizzare il tuo curriculum tramite parole chiave."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Curriculum sartoriale"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "La sartoria è fallita"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Personalizzare il suo curriculum..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Modelli"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Testa connessione"
@@ -2363,6 +2672,10 @@ msgstr "Colore del testo"
msgid "Thai"
msgstr "Thai"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "L'AI ha identificato nuove competenze dalla sua esperienza che corrispondono a questo lavoro. Selezioni quali salvare nel suo curriculum originale per le future candidature. Questa operazione modificherà in modo permanente il suo curriculum originale e non potrà essere annullata."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "La chiave API è stata eliminata correttamente."
@@ -2401,15 +2714,16 @@ msgstr "Tema"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Quindi inserisci il codice a 6 cifre fornito dall'app per continuare."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "Si è verificato un problema durante la generazione del DOCX, la preghiamo di riprovare."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Si è verificato un problema durante la generazione del PDF, riprova tra qualche istante."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Potrebbero essere necessari alcuni minuti, a seconda della risposta del
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "L'operazione potrebbe richiedere del tempo a seconda della capacità del server. Non chiudere la finestra e non aggiornare la pagina."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "Questo mese"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Questo curriculum è bloccato e non può essere aggiornato."
@@ -2450,6 +2768,10 @@ msgstr "Questa sezione è riservata alle tue note personali specifiche per quest
msgid "This step is optional, but recommended."
msgstr "Questo passaggio è facoltativo, ma consigliato."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "Questa settimana"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Questo genererà una nuova chiave API per accedere all'API di Reactive Resume e consentire alle macchine di interagire con i dati del tuo curriculum."
@@ -2477,6 +2799,15 @@ msgstr "Titolo"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "Per eliminare il tuo account devi inserire il testo di conferma e fare clic sul pulsante qui sotto."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "Per cercare gli annunci di lavoro, deve configurare la chiave RapidAPI nelle impostazioni."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Oggi"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Tieni traccia delle visualizzazioni e dei download del tuo curriculum"
@@ -2545,6 +2876,7 @@ msgstr "L'autenticazione a due fattori è stata configurata correttamente."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Tipo"
@@ -2564,6 +2896,10 @@ msgstr "Tipografia"
msgid "Ukrainian"
msgstr "Ucraino"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Sotto i 3 anni"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Sottolinea"
@@ -2673,10 +3009,6 @@ msgstr "Aggiorna curriculum"
msgid "Update your password"
msgstr "Aggiorna la tua password"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Aggiornamento della tua password in corso..."
@@ -2771,6 +3103,10 @@ msgstr "Sito Web"
msgid "What do you want to rename this section to?"
msgstr "Come vuoi rinominare questa sezione?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "Che cos'è JSearch API?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Cosa rende Reactive Resume diverso dagli altri generatori di curriculum?"
@@ -2801,6 +3137,10 @@ msgstr "Sì! Ogni modello è completamente personalizzabile. Puoi cambiare color
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Ieri"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "Hai anche la possibilità di distribuirlo sui tuoi server usando l'immagine Docker."
@@ -2858,6 +3198,10 @@ msgstr "L'aggiornamento della password è stato completato con successo."
msgid "Your profile has been updated successfully."
msgstr "Il tuo profilo è stato aggiornato correttamente."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "La sua chiave RapidAPI viene memorizzata localmente sul suo browser. Viene inviata al server solo quando effettua una richiesta di ricerca di lavoro e non viene mai memorizzata o registrata sui nostri server."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+403 -59
View File
File diff suppressed because it is too large Load Diff
+397 -53
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:08\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -45,6 +45,22 @@ msgstr "{0, plural, other {# ធាតុ}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# តួនាទី} other {# តួនាទី}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
@@ -52,6 +68,14 @@ msgstr ""
msgid "{column, plural, one {# Column} other {# Columns}}"
msgstr "{column, plural, other {# ជួរឈរ}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr ""
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>ចុងក្រោយនេះ</0><1>កម្មវិធីបង្កើតប្រវត្តិរូបឥតគិតថ្លៃ និងបើកប្រភព</1>"
@@ -202,7 +226,7 @@ msgstr "បន្ថែម​ជួរឈរ​នៅ​មុខ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "បន្ថែមតួនាទីច្រើនដើម្បីបង្ហាញការរីកចម្រើនអាជីពនៅក្រុមហ៊ុនដដែល។"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "បន្ថែម​ទំព័រ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "បន្ថែមតួនាទី"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,8 +244,13 @@ msgstr "បន្ថែម​ជួរដេក​នៅ​ក្រោយ"
msgid "Add Row Before"
msgstr "បន្ថែម​ជួរដេក​នៅ​មុខ"
#: src/components/ai/chat.tsx
msgid "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr ""
#: src/utils/locale.ts
@@ -233,8 +262,8 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr ""
#: src/utils/locale.ts
@@ -247,7 +276,7 @@ msgstr "អនុញ្ញាត​ឱ្យ​ចូល​ដំណើរកា
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "មានគណនីរួចហើយ? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "មានកំហុសមិនស្គាល់មួយបាន​
msgid "And many more..."
msgstr "ហើយ​មាន​ច្រើន​ទៀត..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "អ្នក​ណាដែល​ចូលមើល URL សាធារណៈ​របស់​ប្រវត្តិរូប​នេះ ត្រូវតែ​បញ្ចូល​ពាក្យសម្ងាត់​នេះ​សិន ទើប​អាច​ចូល​មើល​បាន។"
@@ -297,6 +339,10 @@ msgstr "កូនសោ API"
msgid "API Reference"
msgstr "ឯកសារ​យោង API"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "កម្មវិធី"
@@ -305,13 +351,25 @@ msgstr "កម្មវិធី"
msgid "Application Statistics"
msgstr "ស្ថិតិ​កម្មវិធី"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr ""
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabic"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "តើអ្នកប្រាកដថាចង់បិទប្រអប់នេះមែនទេ?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -348,10 +406,6 @@ msgstr "ជំនាញ​រៀន"
msgid "Artificial Intelligence"
msgstr "បញ្ញាសិប្បនិម្មិត"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "សមាមាត្រទ្រង់ទ្រាយ"
@@ -405,6 +459,10 @@ msgstr "មូលដ្ឋាន"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "គំរូ​ស្អាតៗ​ឲ្យ​ជ្រើសរើស ហើយ​នៅមាន​បន្ថែម​ទៀត​កំពុងមកដល់។"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr ""
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -485,6 +543,7 @@ msgstr "តើ​ខ្ញុំ​អាច​នាំចេញ​ប្រវ
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "ផ្ដោត​ទិដ្ឋភាព​ទៅ​កណ្ដាល
msgid "Certifications"
msgstr "វិញ្ញាបនបត្រ"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "ប្តូរភាសា"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "ប្តូរ​ភាសា​ទៅ..."
@@ -544,8 +607,8 @@ msgstr "Chinese (Traditional)"
msgid "Circle"
msgstr "រង្វង់"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr ""
#: src/dialogs/resume/import.tsx
@@ -555,7 +618,7 @@ msgstr "ចុច​ទីនេះ​ដើម្បី​ជ្រើស​ឯ
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "បិទ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "ក្រុមហ៊ុន"
msgid "Completely free, forever, no hidden costs."
msgstr "ឥតគិតថ្លៃ​ពេញលេញ ជារៀងរហូត គ្មាន​ចំនាយ​លាក់​កំបាំង។"
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr ""
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -592,7 +659,7 @@ msgstr "តភ្ជាប់"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "មាតិកា"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -610,6 +677,10 @@ msgstr "បន្ត​ពី​កន្លែង​ដែល​អ្នក​
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "បន្ត​ពី​កន្លែង​ដែល​អ្នក​បាន​ឈប់ ដោយ​នាំចូល​ប្រវត្តិរូប​មាន​ស្រាប់​មួយ ដែល​អ្នក​បាន​បង្កើត​ដោយ​ប្រើ Reactive Resume ឬ​កម្មវិធី​បង្កើត​ប្រវត្តិរូប​ផ្សេង​ទៀត។ ទ្រង់ទ្រាយ​ដែល​គាំទ្រ​រួមមាន PDF, Microsoft Word និង​ឯកសារ JSON ពី Reactive Resume។"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "ការរួមចំណែក​នានា​ជួយ​ផ្តល់​ថវិកា​សម្រាប់​ការ​ជួសជុល​កំហុស បច្ចុប្បន្នភាព​សុវត្ថិភាព និង​ការ​ធ្វើឱ្យ​ប្រសើរឡើង​ជាបន្តបន្ទាប់ ដើម្បី​ឱ្យ​កម្មវិធីដំណើរការ​បាន​រលូន។"
@@ -634,10 +705,18 @@ msgstr "ចម្លង​កូនសោ​សម្ងាត់​នេះ
msgid "Copy URL"
msgstr "ចម្លង URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "លិខិតសម្រាប់ដាក់ពាក្យ"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -678,7 +757,7 @@ msgstr "បង្កើត​វិញ្ញាបនបត្រ​ថ្មី
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "បង្កើតលិខិតសម្រាប់ដាក់ពាក្យថ្មី"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -729,7 +808,7 @@ msgstr "បង្កើត​ជំនាញ​ថ្មី"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "បង្កើតធាតុសង្ខេបថ្មី"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -799,6 +878,10 @@ msgstr "សុវត្ថិភាព​ទិន្នន័យ"
msgid "Date"
msgstr "កាលបរិច្ឆេទ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr ""
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "សញ្ញាប័ត្រ"
@@ -855,6 +938,7 @@ msgstr "កំពុង​លុប​ប្រវត្តិរូប​រប
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "សេចក្ដី​ពិពណ៌នា"
@@ -862,6 +946,18 @@ msgstr "សេចក្ដី​ពិពណ៌នា"
msgid "Design"
msgstr "រចនា"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr ""
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "ឯកសារ"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "មិនមានគណនី? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "បរិច្ចាគ​ឲ្យ Reactive Resume"
msgid "Download"
msgstr "ទាញយក"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "ទាញយក​ច្បាប់ចម្លង​មួយ​នៃ​ប្រវត្តិរូប​របស់​អ្នក​ជា​ទ្រង់ទ្រាយ JSON។ ប្រើ​ឯកសារ​នេះ​សម្រាប់​បម្រុងទុក ឬ​ដើម្បី​នាំចូល​ប្រវត្តិរូប​របស់​អ្នក​ទៅ​កម្មវិធី​ផ្សេងៗ រួមទាំង​អ្នកជំនួយការ AI ផងដែរ។"
@@ -913,6 +1013,10 @@ msgstr "ទាញយក​ច្បាប់ចម្លង​មួយ​នៃ
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "ទាញយក​ច្បាប់ចម្លង​មួយ​នៃ​ប្រវត្តិរូប​របស់​អ្នក​ជា​ទ្រង់ទ្រាយ PDF។ ប្រើ​ឯកសារ​នេះ​សម្រាប់​បោះពុម្ព ឬ​ដើម្បី​ចែករំលែក​ប្រវត្តិរូប​របស់​អ្នក​ដល់​អ្នក​ជ្រើសរើសបុគ្គលិក​បាន​យ៉ាង​ងាយស្រួល។"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "ទាញយក JSON"
@@ -958,8 +1062,16 @@ msgstr "កំពុង​ស្ទួន​ប្រវត្តិរូប​
msgid "Dutch"
msgstr "Dutch"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
@@ -1013,7 +1125,7 @@ msgstr "ភាសា​អង់គ្លេស"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "អង់គ្លេស (ចក្រភពអង់គ្លេស)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "បញ្ចូល​ពាក្យសម្ងាត់​របស់
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "បញ្ចូល​ពាក្យសម្ងាត់​របស់​អ្នក ដើម្បី​បិទ​ការ​ផ្ទៀងផ្ទាត់​ពីរ​ជាន់។ គណនី​របស់​អ្នក​នឹង​កាន់តែ​មាន​ហានិភ័យ​នៅពេល​មិន​បាន​បើក 2FA ទៀត។"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "រាល់​ការរួមចំណែក មួយ​ធំនោ ឬ​តូច ក៏​មាន​ឥទ្ធិពល​យ៉ាង​ច្រើន​លើ​គម្រោង​នេះ។<0/>សូម​អរគុណ​ចំពោះ​ការគាំទ្រ​របស់​អ្នក!"
@@ -1055,11 +1171,24 @@ 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/components/input/rich-input.tsx
msgid "Exit Fullscreen"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ចេញពីអេក្រង់ពេញ"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "បទពិសោធន៍"
@@ -1085,12 +1214,20 @@ msgstr "ស្វែងរក​ឯកសារ​អំពី API ដើម្
msgid "Export"
msgstr "នាំចេញ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr ""
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "បានបរាជ័យ​ក្នុងការ​រៀបចំ​ការ​ផ្ទៀងផ្ទាត់​ពីរ​ជាន់។"
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr "ការចូលបានបរាជ័យ។ សូមព្យាយាមម្ដងទៀត។"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr ""
#: src/routes/_home/-sections/features.tsx
@@ -1172,9 +1309,13 @@ msgstr "French"
msgid "Full Width"
msgstr "ទទឹង​ពេញ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "អេក្រង់ពេញ"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1188,6 +1329,10 @@ msgstr "ភាសាអាល្លឺម៉ង់"
msgid "Get Started"
msgstr "ចាប់ផ្តើម"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr ""
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "ត្រឡប់​ក្រោយ"
msgid "Go to dashboard"
msgstr "ទៅ​កាន់​ផ្ទាំង​គ្រប់គ្រង"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "ទៅកាន់..."
@@ -1338,6 +1487,10 @@ msgstr "កំពុង​នាំចូល​ប្រវត្តិរូប
msgid "Importing..."
msgstr "កំពុង​នាំចូល..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr ""
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesian"
@@ -1359,6 +1512,10 @@ msgstr "បញ្ចូល​តារាង"
msgid "Interests"
msgstr "ចំណាប់អារម្មណ៍"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "តើ Reactive Resume អាច​ប្រើ​បាន​ជា​ភាសា​ច្រើន​ទេ?"
@@ -1383,6 +1540,24 @@ msgstr "អក្សរ​ទ្រេត"
msgid "Japanese"
msgstr "Japanese"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "តម្រង់​សមរម្យ​ទាំង​ផ្នែកស្តាំ និង​ឆ្វេង"
@@ -1425,6 +1600,10 @@ msgstr "ភាសា"
msgid "Languages"
msgstr "ភាសា"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr ""
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1458,7 +1637,7 @@ msgstr "ស្វែងយល់បន្ថែមអំពីរបៀបសម
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "ចាកចេញ"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1573,10 +1752,22 @@ msgstr "រឹម (ផ្ដេក)"
msgid "Margin (Vertical)"
msgstr "រឹម (បញ្ឈរ)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr ""
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "ម៉ូដែល"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ផ្លាស់ទី​ទៅ"
@@ -1626,14 +1817,38 @@ msgstr "ពាក្យសម្ងាត់​ថ្មី"
msgid "New Section"
msgstr "ផ្នែក​ថ្មី"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "គ្មាន​ការ​ផ្សពាណិជ្ជកម្ម គ្មាន​ការ​តាមដាន"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr ""
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "រក​មិន​ឃើញ​លទ្ធផល។"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr ""
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norwegian"
@@ -1674,6 +1889,11 @@ msgstr "បើក​ប្រភព"
msgid "opens in new tab"
msgstr "បើក​ក្នុង​ផ្ទាំង​ថ្មី"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ជា​ជម្រើស អ្នក​អាច​កំណត់​ពាក្យសម្ងាត់​មួយ ដូច្នេះ​តែ​មនុស្ស​ដែល​មាន​ពាក្យសម្ងាត់​ប៉ុណ្ណោះ អាច​មើល​ប្រវត្តិរូប​របស់​អ្នក​តាម​តំណ​បាន។"
@@ -1693,11 +1913,11 @@ msgstr "អង្គការ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "រយៈពេលទាំងមូល"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "ចំណងជើងទាំងមូល (ជាជម្រើស)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "ទំព័រ"
msgid "Page {0}"
msgstr "ទំព័រ {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr ""
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "ទំព័រ {pageNumber} ក្នុងចំណោម {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "ទំព័រ {pageNumber} ក្នុងចំណោម {totalNumber
msgid "Paragraph"
msgstr "កថាខណ្ឌ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "កូនសោ​កំណត់​អត្តសញ្ញាណ & 2FA"
@@ -1822,6 +2050,10 @@ msgstr "ចំណង់ចំណូលចិត្ត"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "ចុច <0>{RETURN_KEY}</0> ឬ <1>{COMMA_KEY}</1> ដើម្បីបន្ថែម ឬរក្សាទុកពាក្យគន្លឹះបច្ចុប្បន្ន។"
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ពណ៌​មូលដ្ឋាន"
@@ -1872,6 +2104,15 @@ msgstr "អត្ថបទផ្សព្វផ្សាយ"
msgid "Publisher"
msgstr "អ្នកបោះពុម្ពផ្សាយ"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr ""
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ទៅ​កាន់​ទំព័រ​ដើម"
@@ -1898,7 +2139,7 @@ msgstr "Reactive Resume គឺ​បើក​ប្រភព ផ្តោតល
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "អ្នកទទួល"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1924,20 +2165,26 @@ msgstr "ផ្ទៀងផ្ទាត់​ម្ដងទៀត"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "ចាំពាក្យសម្ងាត់របស់អ្នក? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr ""
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "លុបចេញ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "ដក​ពាក្យសម្ងាត់"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "កំពុង​ដក​ការ​ការពារ​ដោយ​ពាក្យសម្ងាត់..."
@@ -1948,7 +2195,7 @@ msgstr "ប្ដូរ​ឈ្មោះ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "រៀបចំឡើងវិញ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "រាយការណ៍​កំហុស"
msgid "Report an issue"
msgstr "រាយការណ៍បញ្ហា"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr ""
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "ផ្ញើ​អ៊ីមែល​ផ្ទៀងផ្ទាត់​ម្តងទៀត"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "កំពុង​ផ្ញើ​អ៊ីមែល​ផ្ទៀងផ្ទាត់​ម្តងទៀត..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "កំណត់​ឡើងវិញ"
@@ -1986,6 +2238,12 @@ msgstr "កំពុង​កំណត់​ពាក្យសម្ងាត់
msgid "Resources"
msgstr "ធនធាន"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "ធនធាន"
msgid "Resumes"
msgstr "ប្រវត្តិរូប"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "តម្រង់​ស្ដាំ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "ការរីកចម្រើនតួនាទី"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "មុំ​បង្វែរ"
msgid "Russian"
msgstr "Russian"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "ស្កេន​កូដ QR ខាងក្រោម​ដោយ​
msgid "School"
msgstr "សាលា"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr ""
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "ស្វែងរក​ប្រវត្តិរូប..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "ស្វែងរក..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "កូនសោ​សម្ងាត់​ត្រូវ​បាន​
msgid "Section Type"
msgstr "ប្រភេទ​ផ្នែក"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr ""
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "ជ្រើសរើស..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2139,7 +2426,7 @@ msgstr "បង្ហាញ"
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
msgstr "បង្ហាញតំណភ្ជាប់ក្នុងចំណងជើង"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
@@ -2204,6 +2491,10 @@ msgstr "ទំហំ"
msgid "Skills"
msgstr "ជំនាញ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr ""
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "រំលង​ទៅ​មាតិកា​មេ"
@@ -2212,6 +2503,10 @@ msgstr "រំលង​ទៅ​មាតិកា​មេ"
msgid "Slovak"
msgstr "Slovak"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
@@ -2280,7 +2575,7 @@ msgstr "ស្ថិតិ"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "ស្ថិត"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2327,6 +2622,19 @@ msgstr "ស្លាក"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "ស្លាក​អាច​ត្រូវ​បាន​ប្រើ ដើម្បី​ចាត់ថ្នាក់​ប្រវត្តិរូប​របស់​អ្នក​តាម​ពាក្យ​គន្លឹះ។"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr ""
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "គំរូ"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "សាក​ល្បង​តភ្ជាប់"
@@ -2363,6 +2672,10 @@ msgstr "ពណ៌​អត្ថបទ"
msgid "Thai"
msgstr "Thai"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr ""
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "កូនសោ API ត្រូវ​បាន​លុប​ដោយ​ជោគជ័យ។"
@@ -2401,15 +2714,16 @@ msgstr "ស្បែក"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "បន្ទាប់មក បញ្ចូល​កូដ ៦ ខ្ទង់ ដែល​កម្មវិធី​ផ្តល់​ឲ្យ ដើម្បី​បន្ត។"
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "មាន​បញ្ហា​មួយ​កើតឡើង ខណៈពេល​កំពុង​បង្កើត PDF សូម​ព្យាយាម​ម្ដង​ទៀត​ក្រោយ​មក។"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "វា​អាច​ចំណាយ​ពេល​ពីរ​នាទ
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "វា​អាច​ចំណាយ​ពេល​បន្តិច អាស្រ័យ​លើ​សមត្ថភាព​ម៉ាស៊ីន​បម្រើ។ សូម​កុំ​បិទ​បង្អួច​នេះ ឬ​ផ្ទុក​ទំព័រ​ឡើងវិញ។"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr ""
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "ប្រវត្តិរូប​នេះ​ត្រូវ​បាន​ចាក់សោ ហើយ​មិន​អាច​បច្ចុប្បន្នភាព​បាន​ទេ។"
@@ -2450,6 +2768,10 @@ msgstr "ផ្នែក​នេះ​ត្រូវបាន​បម្រុ
msgid "This step is optional, but recommended."
msgstr "ជំហាន​នេះ​ជា​ជម្រើស ប៉ុន្តែ​បាន​ផ្ដល់​អនុសាសន៍។"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "វា​នឹង​បង្កើត​កូនសោ API ថ្មី​មួយ ដើម្បី​ចូល​ដំណើរការ Reactive Resume API ហើយ​អនុញ្ញាត​ឱ្យ​យន្តចលនា​អន្តរកម្ម​ជាមួយ​ទិន្នន័យ​ប្រវត្តិរូប​របស់​អ្នក។"
@@ -2477,6 +2799,15 @@ msgstr "ចំណងជើង"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "ដើម្បី​លុប​គណនី​របស់​អ្នក អ្នក​ត្រូវ​បញ្ចូល​អក្សរ​បញ្ជាក់ ហើយ​ចុច​ប៊ូតុង​ខាងក្រោម។"
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr ""
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "តាមដាន​ចំនួន​មើល និង​ចំនួន​ទាញយក​ប្រវត្តិរូប​របស់​អ្នក"
@@ -2545,6 +2876,7 @@ msgstr "ការ​ផ្ទៀងផ្ទាត់​ពីរ​ជាន់
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "ប្រភេទ"
@@ -2564,6 +2896,10 @@ msgstr "រចនាប័ទ្ម​អក្សរ"
msgid "Ukrainian"
msgstr "Ukrainian"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "គូស​បន្ទាត់​ក្រោម"
@@ -2610,7 +2946,7 @@ msgstr "បច្ចុប្បន្នភាព​វិញ្ញាបនប
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "ធ្វើបច្ចុប្បន្នភាពលិខិតសម្រាប់ដាក់ពាក្យដែលមាន"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2654,7 +2990,7 @@ msgstr "បច្ចុប្បន្នភាព​ជំនាញ​មាន
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "ធ្វើបច្ចុប្បន្នភាពធាតុសង្ខេបដែលមាន"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "បច្ចុប្បន្នភាព​ប្រវត្តិរ
msgid "Update your password"
msgstr "បច្ចុប្បន្នភាព​ពាក្យសម្ងាត់​របស់​អ្នក"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "កំពុង​បច្ចុប្បន្នភាព​ពាក្យសម្ងាត់​របស់​អ្នក..."
@@ -2771,6 +3103,10 @@ msgstr "គេហទំព័រ"
msgid "What do you want to rename this section to?"
msgstr "តើ​អ្នក​ចង់​ប្ដូរ​ឈ្មោះ​ផ្នែក​នេះ​ទៅ​ជា​អ្វី?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "អ្វី​ដែល​ធ្វើ​ឲ្យ Reactive Resume ខុស​ពី​កម្មវិធី​បង្កើត​ប្រវត្តិរូប​ផ្សេងទៀត?"
@@ -2801,6 +3137,10 @@ msgstr "បាទ! គំរូ​នីមួយៗ​អាច​ប្ដូ
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 គឺ​ឥតគិតថ្លៃ​ទាំងស្រុង គ្មាន​ចំនាយ​លាក់កំបាំង កម្រិត​ពិសេស ឬ​កម្រៃ​ជាវ​ប្រចាំខែ​ទេ។ វា​បើក​ប្រភព ហើយ​នឹង​នៅ​តែ​ឥតគិតថ្លៃ​ជា​រៀងរហូត។"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "អ្នក​ក៏​មាន​ជម្រើស​ដំឡើង​លើ​ម៉ាស៊ីន​បម្រើ​ផ្ទាល់​ខ្លួន​របស់​អ្នក ដោយ​ប្រើ​រូបភាព Docker ផង​ដែរ។"
@@ -2815,7 +3155,7 @@ msgstr "អ្នក​អាច​ចែករំលែក​ប្រវត្
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "អ្នកមានការផ្លាស់ប្តូរដែលមិនបានរក្សាទុកដែលនឹងបាត់បង់។"
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
@@ -2858,6 +3198,10 @@ msgstr "ពាក្យសម្ងាត់​របស់​អ្នក​ត
msgid "Your profile has been updated successfully."
msgstr "ប្រវត្តិ​សង្ខេប​របស់​អ្នក​ត្រូវ​បាន​បច្ចុប្បន្នភាព​ដោយ​ជោគជ័យ។"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+397 -53
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:08\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -45,6 +45,22 @@ msgstr "{0, plural, one {# ಐಟಂ} other {# ಐಟಂಗಳು}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ಪಾತ್ರ} other {# ಪಾತ್ರಗಳು}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
@@ -52,6 +68,14 @@ msgstr ""
msgid "{column, plural, one {# Column} other {# Columns}}"
msgstr "{column, plural, one {# ಕಾಲಮ್} other {# ಕಾಲಮ್‌ಗಳು}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr ""
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>ಕೊನೆಗೂ,</0><1>ಉಚಿತ ಮತ್ತು ಮುಕ್ತ-ಮೂಲ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕ</1>"
@@ -202,7 +226,7 @@ msgstr "ಕಾಲಮ್ ಅನ್ನು ಮೊದಲು ಸೇರಿಸಿ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "ಅದೇ ಕಂಪನಿಯಲ್ಲಿ ವೃತ್ತಿಜೀವನದ ಪ್ರಗತಿಯನ್ನು ತೋರಿಸಲು ಹಲವು ಪಾತ್ರಗಳನ್ನು ಸೇರಿಸಿ."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "ಪುಟವನ್ನು ಸೇರಿಸಿ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "ಪಾತ್ರ ಸೇರಿಸಿ"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,8 +244,13 @@ msgstr "ಸಾಲನ್ನು ನಂತರ ಸೇರಿಸಿ"
msgid "Add Row Before"
msgstr "ಸಾಲನ್ನು ಮೊದಲು ಸೇರಿಸಿ"
#: src/components/ai/chat.tsx
msgid "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr ""
#: src/utils/locale.ts
@@ -233,8 +262,8 @@ msgstr "ಆಫ್ರಿಕಾನ್ಸ್"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr ""
#: src/utils/locale.ts
@@ -247,7 +276,7 @@ msgstr "ಸಾರ್ವಜನಿಕ ಪ್ರವೇಶಕ್ಕೆ ಅನುಮ
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "ಈಗಾಗಲೇ ಖಾತೆ ಇದೆಯೇ? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಆಮದು
msgid "And many more..."
msgstr "ಮತ್ತು ಇನ್ನೂ ಅನೇಕ..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "ರೆಸ್ಯೂಮ್‌ನ ಸಾರ್ವಜನಿಕ URL ಅನ್ನು ಭೇಟಿ ಮಾಡುವ ಯಾರೇ ಆಗಿರಲಿ, ಅದನ್ನು ಪ್ರವೇಶಿಸಲು ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಬೇಕು."
@@ -297,6 +339,10 @@ msgstr "API ಕೀಲಿಗಳು"
msgid "API Reference"
msgstr "API ಉಲ್ಲೇಖ"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "ಆ್ಯಪ್"
@@ -305,13 +351,25 @@ msgstr "ಆ್ಯಪ್"
msgid "Application Statistics"
msgstr "ಅಪ್ಲಿಕೇಶನ್ ಅಂಕಿಅಂಶಗಳು"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr ""
#: src/utils/locale.ts
msgid "Arabic"
msgstr "ಅರೇಬಿಕ್"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "ನೀವು ಈ ಸಂವಾದವನ್ನು ಮುಚ್ಚಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -348,10 +406,6 @@ msgstr "ಅಧ್ಯಯನದ ಕ್ಷೇತ್ರ"
msgid "Artificial Intelligence"
msgstr "ಕೃತಕ ಬುದ್ಧಿವಂತಿಕೆ"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ಆಕಾರ ಅನುಪಾತ"
@@ -405,6 +459,10 @@ msgstr "ಮೂಲಭೂತಗಳು"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ಆಯ್ಕೆ ಮಾಡಲು ಸುಂದರವಾದ ಮಾದರಿಗಳು, ಇನ್ನೂ ಬಹಳ ಬೇಗ ಬರುತ್ತಿವೆ."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr ""
#: src/utils/locale.ts
msgid "Bengali"
msgstr "ಬೆಂಗಾಲಿ"
@@ -485,6 +543,7 @@ msgstr "ನಾನು ನನ್ನ ರೆಸ್ಯೂಮ್ ಅನ್ನು PDF
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "ಮಧ್ಯದಲ್ಲಿ ವೀಕ್ಷಿಸಿ"
msgid "Certifications"
msgstr "ಪ್ರಮಾಣಪತ್ರಗಳು"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "ಭಾಷೆ ಬದಲಿಸಿ"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "ಭಾಷೆಯನ್ನು ಈ ಕೆಳಗಿನದಕ್ಕೆ ಬದಲಾಯಿಸಿ..."
@@ -544,8 +607,8 @@ msgstr "ಚೈನೀಸ್ (ಸಾಂಪ್ರದಾಯಿಕ)"
msgid "Circle"
msgstr "ವೃತ್ತ"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr ""
#: src/dialogs/resume/import.tsx
@@ -555,7 +618,7 @@ msgstr "ಆಮದು ಮಾಡಲು ಕಡತವನ್ನು ಆಯ್ಕೆ
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "ಮುಚ್ಚಿ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "ಕಂಪನಿ"
msgid "Completely free, forever, no hidden costs."
msgstr "ಪೂರ್ಣವಾಗಿ ಉಚಿತ, ಯಾವಾಗಲೂ, ಯಾವುದೇ ಅಡಕ ವೆಚ್ಚಗಳಿಲ್ಲ."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr ""
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -592,7 +659,7 @@ msgstr "ಕನೆಕ್ಟ್ ಮಾಡಿ"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "ವಿಷಯ"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -610,6 +677,10 @@ msgstr "ನೀವು ನಿಲ್ಲಿಸಿದ ಜಾಗದಿಂದ ಮುಂ
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Reactive Resume ಅಥವಾ ಯಾವುದೇ ಇತರ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕ ಬಳಸಿ ರಚಿಸಿದ ಈಗಿನ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಆಮದು ಮಾಡುವ ಮೂಲಕ ನೀವು ನಿಲ್ಲಿಸಿದ ಜಾಗದಿಂದ ಮುಂದುವರಿಸಿ. ಬೆಂಬಲಿತ ಸ್ವರೂಪಗಳಲ್ಲಿ PDF, Microsoft Word ಹಾಗು Reactive Resume ನ JSON ಕಡತಗಳು ಒಳಗೊಂಡಿವೆ."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "ಕೊಡುಗೆಗಳು ದೋಷ ಸರಿಪಡಿಕೆ, ಭದ್ರತಾ ನವೀಕರಣಗಳು ಮತ್ತು ಆ್ಯಪ್ ನಿರಂತರವಾಗಿ ಸರಾಗವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ನಿರಂತರ ಸುಧಾರಣೆಗಳಿಗೆ ಹಣಕಾಸು ಒದಗಿಸುತ್ತವೆ."
@@ -634,10 +705,18 @@ msgstr "ಈ ಸೀಕ್ರೆಟ್ ಕೀ ಅನ್ನು ನಕಲಿಸಿ
msgid "Copy URL"
msgstr "URL ನಕಲಿಸಿ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "ಕವರ್ ಲೆಟರ್"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -678,7 +757,7 @@ msgstr "ಹೊಸ ಪ್ರಮಾಣಪತ್ರವನ್ನು ರಚಿಸಿ"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "ಹೊಸ ಕವರ್ ಲೆಟರ್ ರಚಿಸಿ"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -729,7 +808,7 @@ msgstr "ಹೊಸ ಕೌಶಲ್ಯವನ್ನು ರಚಿಸಿ"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "ಹೊಸ ಸಾರಾಂಶ ಐಟಂ ರಚಿಸಿ"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -799,6 +878,10 @@ msgstr "ಡೇಟಾ ಭದ್ರತೆ"
msgid "Date"
msgstr "ದಿನಾಂಕ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr ""
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "ಪದವಿ"
@@ -855,6 +938,7 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅಳಿಸಲಾಗುತ್
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "ವಿವರಣೆ"
@@ -862,6 +946,18 @@ msgstr "ವಿವರಣೆ"
msgid "Design"
msgstr "ಡಿಸೈನ್"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr ""
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "ದಾಖಲೀಕರಣ"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "ಖಾತೆ ಇಲ್ಲವೇ? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್‌ಗೆ ದೇ
msgid "Download"
msgstr "ಡೌನ್‌ಲೋಡ್"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ನ JSON ಸ್ವರೂಪದ ಪ್ರತಿ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ. ಈ ಕಡತವನ್ನು ಬ್ಯಾಕಪ್‌ಗಾಗಿ ಅಥವಾ AI ಸಹಾಯಕರು ಸೇರಿದಂತೆ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಆಮದು ಮಾಡಲು ಬಳಿಸಿ."
@@ -913,6 +1013,10 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ನ JSON ಸ್ವರೂಪ
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ನ PDF ಸ್ವರೂಪದ ಪ್ರತಿ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ. ಮುದ್ರಣಕ್ಕಾಗಿ ಅಥವಾ ನೇಮಕಾತಿದಾರರೊಂದಿಗೆ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಹಂಚಿಕೊಳ್ಳಲು ಈ ಕಡತವನ್ನು ಬಳಸಿ."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "JSON ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ"
@@ -958,8 +1062,16 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ನಕಲಿಸಲಾಗುತ
msgid "Dutch"
msgstr "ಡಚ್"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
@@ -1013,7 +1125,7 @@ msgstr "ಆಂಗ್ಲ"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "ಇಂಗ್ಲಿಷ್ (ಯುನೈಟೆಡ್ ಕಿಂಗ್ಡಮ್)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಹೊ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ. 2FA ಸಕ್ರಿಯಗೊಳಿಸದಿದ್ದರೆ ನಿಮ್ಮ ಖಾತೆ ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿರುತ್ತದೆ."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ಪ್ರತಿ ಕೊಡುಗೆ, ದೊಡ್ಡದಾಗಲಿ ಸಣ್ಣದಾಗಲಿ, ಯೋಜನೆಗೆ ಮಹತ್ತರವಾದ ಬದಲಾವಣೆಯನ್ನು ತರುತ್ತದೆ.<0/>ನಿಮ್ಮ ಬೆಂಬಲಕ್ಕೆ ಧನ್ಯವಾದಗಳು!"
@@ -1055,11 +1171,24 @@ 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/components/input/rich-input.tsx
msgid "Exit Fullscreen"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ಪೂರ್ಣ ಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "ಅನುಭವ"
@@ -1085,12 +1214,20 @@ msgstr "Reactive Resume ಅನ್ನು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶ
msgid "Export"
msgstr "ರಫ್ತು ಮಾಡು"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr ""
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr "ಸೈನ್ ಇನ್ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr ""
#: src/routes/_home/-sections/features.tsx
@@ -1172,9 +1309,13 @@ msgstr "ಫ್ರೆಂಚ್"
msgid "Full Width"
msgstr "ಪೂರ್ಣ ಅಗಲ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "ಪೂರ್ಣ ಪರದೆ"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1188,6 +1329,10 @@ msgstr "ಜರ್ಮನ್"
msgid "Get Started"
msgstr "ಪ್ರಾರಂಭಿಸಿ"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr ""
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "ಹಿಂದೆ ಹೋಗಿ"
msgid "Go to dashboard"
msgstr "ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗೆ ಹೋಗಿ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಹೋಗಿ..."
@@ -1338,6 +1487,10 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಆಮದು
msgid "Importing..."
msgstr "ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr ""
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "ಇಂಡೋನೇಷಿಯನ್"
@@ -1359,6 +1512,10 @@ msgstr "ಟೇಬಲ್ ಸೇರಿಸಿ"
msgid "Interests"
msgstr "ಆಸಕ್ತಿಗಳು"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Reactive Resume ಅನೇಕ ಭಾಷೆಗಳಲ್ಲೂ ಲಭ್ಯವಿದೆ?"
@@ -1383,6 +1540,24 @@ msgstr "ಇಟಾಲಿಕ್"
msgid "Japanese"
msgstr "ಜಾಪನೀಸ್"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "ಜಸ್ಟಿಫೈ ಅಲೈನ್"
@@ -1425,6 +1600,10 @@ msgstr "ಭಾಷೆ"
msgid "Languages"
msgstr "ಭಾಷೆಗಳು"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr ""
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1458,7 +1637,7 @@ msgstr "ಒಂದು ಪುಟದಲ್ಲಿ ವಿಷಯವನ್ನು ಹೇ
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "ಬಿಡಿ"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1573,10 +1752,22 @@ msgstr "ಮಾರ್ಜಿನ್ (ಅಡ್ಡ)"
msgid "Margin (Vertical)"
msgstr "ಮಾರ್ಜಿನ್ (ಲಂಬ)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr ""
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "ಮಾದರಿ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ಸ್ಥಳಾಂತರಿಸಿ"
@@ -1626,14 +1817,38 @@ msgstr "ಹೊಸ ಪಾಸ್ವರ್ಡ್"
msgid "New Section"
msgstr "ಹೊಸ ವಿಭಾಗ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ಯಾವುದೇ ಜಾಹೀರಾತುಗಳಿಲ್ಲ, ಯಾವುದೇ ಟ್ರ್ಯಾಕಿಂಗ್ ಇಲ್ಲ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr ""
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "ಯಾವುದೇ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬರಲಿಲ್ಲ."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr ""
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "ನಾರ್ವೇಜಿಯನ್"
@@ -1674,6 +1889,11 @@ msgstr "ಮುಕ್ತ ಸಂಪನ್ಮೂಲ"
msgid "opens in new tab"
msgstr "ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ಐಚ್ಛಿಕವಾಗಿ, ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ, ಆಗ ಪಾಸ್‌ವರ್ಡ್ ಹೊಂದಿರುವವರಿಗಷ್ಟೇ ಲಿಂಕ್ ಮೂಲಕ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ."
@@ -1693,11 +1913,11 @@ msgstr "ಸಂಸ್ಥೆ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "ಒಟ್ಟಾರೆ ಅವಧಿ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "ಒಟ್ಟಾರೆ ಶೀರ್ಷಿಕೆ (ಐಚ್ಛಿಕ)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "ಪುಟ"
msgid "Page {0}"
msgstr "ಪುಟ {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr ""
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "ಒಟ್ಟು {totalNumberOfPages} ಪುಟಗಳಲ್ಲಿ ಪುಟ {pageNumber}"
@@ -1717,6 +1941,10 @@ msgstr "ಒಟ್ಟು {totalNumberOfPages} ಪುಟಗಳಲ್ಲಿ ಪು
msgid "Paragraph"
msgstr "ಪ್ಯಾರಾಗ್ರಾಫ್"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "ಪಾಸ್‌ಕೀಗಳು ಹಾಗೂ 2FA"
@@ -1822,6 +2050,10 @@ msgstr "ಆದ್ಯತೆಗಳು"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "ಮುಖ್ಯವಚನವನ್ನಾ ಸೇರಿಸಲು ಅಥವಾ ಉಳಿಸಲು <0>{RETURN_KEY}</0> ಅಥವಾ <1>{COMMA_KEY}</1> ಒತ್ತಿ."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ಪ್ರಾಥಮಿಕ ಬಣ್ಣ"
@@ -1872,6 +2104,15 @@ msgstr "ಪ್ರಕಟನೆಗಳು"
msgid "Publisher"
msgstr "ಪ್ರಕಾಶಕರು"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr ""
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ಮುಖ್ಯ ಪುಟಕ್ಕೆ ಹೋಗಿ"
@@ -1898,7 +2139,7 @@ msgstr "Reactive Resume ಮುಕ್ತ-ಮೂಲ, ಗೌಪ್ಯತಿಗೆ
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "ಸ್ವೀಕೃತದಾರ"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1924,20 +2165,26 @@ msgstr "ರಿಫ್ರೆಶ್ ಮಾಡಿ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನೆನಪಿದೆಯೇ? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr ""
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "ತೆಗೆದುಹಾಕಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "ಪಾಸ್‌ವರ್ಡ್ ತೆಗೆದುಹಾಕಿ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "ಪಾಸ್‌ವರ್ಡ್ ರಕ್ಷಣೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತಿದೆ..."
@@ -1948,7 +2195,7 @@ msgstr "ಮರುಹೆಸರಿಸಿ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "ಮರುಕ್ರಮಗೊಳಿಸಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "ದೋಷವನ್ನು ವರದಿ ಮಾಡಿ"
msgid "Report an issue"
msgstr "ಪ್ರಶ್ನೆಯನ್ನು ವರದಿ ಮಾಡಿ"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr ""
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "ಪರಿಶೀಲನಾ ಇಮೇಲ್ ಅನ್ನು ಮರುಕಳುಹಿಸಿ"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "ಪರಿಶೀಲನಾ ಇಮೇಲ್ ಅನ್ನು ಮರುಕಳುಹಿಸಲಾಗುತ್ತಿದೆ..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "ಮರುಹೊಂದಿಸಿ"
@@ -1986,6 +2238,12 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರು
msgid "Resources"
msgstr "ಸಂಪನ್ಮೂಲಗಳು"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "ಸಂಪನ್ಮೂಲಗಳು"
msgid "Resumes"
msgstr "ರೆಸ್ಯೂಮೇ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "ಬಲ ಸರಿಸು"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "ಪಾತ್ರ ಪ್ರಗತಿ"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "ಭ್ರಮನ"
msgid "Russian"
msgstr "ರಷಿಯನ್"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "ನಿಮ್ಮ ಇಷ್ಟದ ದೃಢೀಕರಣ ಆ್ಯಪ್‌
msgid "School"
msgstr "ಶಾಲೆ"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr ""
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "ಹುಡುಕಿ..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "ಹುಡುಕಿ..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "ಸೀಕ್ರೆಟ್ ಅನ್ನು ಕ್ಲಿಪ್‌ಬೋರ
msgid "Section Type"
msgstr "ವಿಭಾಗದ ಪ್ರಕಾರ"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr ""
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "ಆಯ್ಕೆಮಾಡಿ..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2139,7 +2426,7 @@ msgstr "ತೋರಿಸು"
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
msgstr "ಶೀರ್ಷಿಕೆಯಲ್ಲಿ ಲಿಂಕ್ ತೋರಿಸಿ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
@@ -2204,6 +2491,10 @@ msgstr "ಗಾತ್ರ"
msgid "Skills"
msgstr "ಕೌಶಲ್ಯಗಳು"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr ""
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "ಮುಖ್ಯ ವಿಷಯಕ್ಕೆ ತೆರಳಿರಿ"
@@ -2212,6 +2503,10 @@ msgstr "ಮುಖ್ಯ ವಿಷಯಕ್ಕೆ ತೆರಳಿರಿ"
msgid "Slovak"
msgstr "ಸ್ಲೋವಾಕ್"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "ಸ್ಲಗ್"
@@ -2280,7 +2575,7 @@ msgstr "ಅಂಕಿಅಂಶಗಳು"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "ಇರಿ"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2327,6 +2622,19 @@ msgstr "ಟ್ಯಾಗ್‌ಗಳು"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "ಟ್ಯಾಗ್‌ಗಳನ್ನು ಕೀವರ್ಡ್‌ಗಳ ಮೂಲಕ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ವರ್ಗೀಕರಿಸಲು ಬಳಸಬಹುದು."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr ""
#: src/utils/locale.ts
msgid "Tamil"
msgstr "ತಮಿಳು"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "ಮಾದರಿಗಳು"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "ಕನೆಕ್ಷನ್ ಪರೀಕ್ಷಿಸಿ"
@@ -2363,6 +2672,10 @@ msgstr "ಅಕ್ಷರದ ಬಣ್ಣ"
msgid "Thai"
msgstr "ಥಾಯ್"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr ""
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "API ಕೀಲಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ."
@@ -2401,15 +2714,16 @@ msgstr "ಥೀಮ್"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "ನಂತರ, ಆ್ಯಪ್ ನೀಡುವ 6 ಅಂಕಿಯ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF ರಚಿಸುವಾಗ ಒಂದು ಸಮಸ್ಯೆ ಉಂಟಾಯಿತು, ದಯವಿಟ್ಟು ಸ್ವಲ್ಪ ಸಮಯದ ಬಳಿಕ ಮರುಪ್ರಯತ್ನಿಸಿ."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "ಇದು AI ಪ್ರೊವೈಡರ್‌ನ ಪ್ರತಿಕ್ರ
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "ಇದು ಸರ್ವರ್ ಸಾಮರ್ಥ್ಯದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿ ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ದಯವಿಟ್ಟು ವಿಂಡೋ ಅನ್ನು ಮುಚ್ಚಬೇಡಿ ಅಥವಾ ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಬೇಡಿ."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr ""
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "ಈ ರೆಸ್ಯೂಮ್ ಲಾಕ್ ಆಗಿದೆ ಮತ್ತು ಅದನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
@@ -2450,6 +2768,10 @@ msgstr "ಈ ವಿಭಾಗವನ್ನೂ ನಿರ್ದಿಷ್ಟವಾದ
msgid "This step is optional, but recommended."
msgstr "ಈ ಹಂತ ಐಚ್ಛಿಕ, ಆದರೆ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Reactive Resume API ಗೆ ಪ್ರವೇಶಿಸಲು ಹೊಸ API ಕೀಲಿಯನ್ನು ಇದು ರಚಿಸುತ್ತದೆ, ಇದರಿಂದ ಯಂತ್ರಗಳು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಡೇಟಾದೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು."
@@ -2477,6 +2799,15 @@ msgstr "ಶೀರ್ಷಿಕೆ"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲು, ನೀವು ದೃಢೀಕರಣ ಪಠ್ಯವನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಕೆಳಗಿನ ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಬೇಕು."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr ""
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ನ ವೀಕ್ಷಣೆಗಳು ಮತ್ತು ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"
@@ -2545,6 +2876,7 @@ msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಯಶ
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "ಟೈಪ್"
@@ -2564,6 +2896,10 @@ msgstr "ಮುದ್ರಣಕಲೆ"
msgid "Ukrainian"
msgstr "ಉಕ್ರೇನಿಯನ್"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "ಅಂಡರ್‌ಲೈನ್"
@@ -2610,7 +2946,7 @@ msgstr "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ರಮಾಣಪ
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕವರ್ ಲೆಟರ್ ನವೀಕರಿಸಿ"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2654,7 +2990,7 @@ msgstr "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೌಶಲ್ಯವ
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಾರಾಂಶ ಐಟಂ ನವೀಕರಿಸಿ"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "ರೆಸ್ಯೂಮ್ ನವೀಕರಿಸಿ"
msgid "Update your password"
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಿ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ..."
@@ -2771,6 +3103,10 @@ msgstr "ಜಾಲತಾಣ"
msgid "What do you want to rename this section to?"
msgstr "ಈ ವಿಭಾಗವನ್ನು ನೀವು ಯಾವ ಹೆಸರಿಗೆ ಮರುಹೆಸರಿಸಲು ಬಯಸುತ್ತೀರಿ?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Reactive Resume ಅನ್ನು ಇತರ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕರಿಗಿಂತ ವಿಭಿನ್ನವಾಗಿಸುವುದು ಏನು?"
@@ -2801,6 +3137,10 @@ msgstr "ಹೌದು! ಪ್ರತಿ ಮಾದರಿಯು ಸಂಪೂರ್
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 ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿ ಬಳಸಬಹುದು, ಯಾವುದೇ ಅಡಕ ವೆಚ್ಚಗಳು, ಪ್ರೀಮಿಯಂ ಹಂತಗಳು ಅಥವಾ ಚಂದಾ ಶುಲ್ಕಗಳಿಲ್ಲದೇ. ಇದು ಮುಕ್ತ-ಮೂಲವಾಗಿದ್ದು ಯಾವಾಗಲೂ ಉಚಿತವಾಗಿಯೇ ಉಳಿಯುತ್ತದೆ."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "Docker ಇಮೇಜ್ ಬಳಸಿ ನಿಮ್ಮದೇ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಇದನ್ನು ಅಳವಡಿಸುವ ಆಯ್ಕೆಯೂ ನಿಮಗೆ ಇದೆ."
@@ -2815,7 +3155,7 @@ msgstr "ನೀವು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "ನೀವು ಉಳಿಸದ ಬದಲಾವಣೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುವಿರಿ."
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
@@ -2858,6 +3198,10 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಯಶಸ
msgid "Your profile has been updated successfully."
msgstr "ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+389 -45
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:07\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -45,13 +45,37 @@ msgstr "{0, plural, one {# item} other {# items}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr ""
msgstr "{0, plural, one {# functie} other {# functies}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr "{0} / {1} gebruikte verzoeken"
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr "{0} maanden geleden"
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr "{0} weken geleden"
#: 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}}"
msgstr "{column, plural, one {# kolom} other {# kolommen}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr "{diffDays} dagen geleden"
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr "{used} van {limit} verzoeken gebruikt ({remaining} resterend)"
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Eindelijk,</0><1>Een gratis en open-source cv-bouwer</1>"
@@ -202,7 +226,7 @@ msgstr "Kolom ervoor toevoegen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "Voeg meerdere functies toe om loopbaanontwikkeling bij hetzelfde bedrijf te tonen."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "Pagina toevoegen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "Functie toevoegen"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,9 +244,14 @@ msgstr "Rij erna toevoegen"
msgid "Add Row Before"
msgstr "Rij ervoor toevoegen"
#: src/components/ai/chat.tsx
msgid "Added"
msgstr "Toegevoegd"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr "{0} nieuwe vaardigheden aan uw oorspronkelijke cv hebt toegevoegd"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr "Geavanceerde filters"
#: src/utils/locale.ts
msgid "Afrikaans"
@@ -233,9 +262,9 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
msgstr "AI Chatten"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr "AI retourneerde enkele ongeldige referenties"
#: src/utils/locale.ts
msgid "Albanian"
@@ -247,7 +276,7 @@ msgstr "Openbare toegang toestaan"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "Heb je al een account? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "Er is een onbekende fout opgetreden tijdens het importeren van uw cv."
msgid "And many more..."
msgstr "En nog veel meer..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr "Elk niveau"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr "Elk moment"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr "Elk type"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Iedereen die de openbare URL van het cv bezoekt, moet dit wachtwoord invoeren om het te kunnen openen."
@@ -297,6 +339,10 @@ msgstr "API-sleutels"
msgid "API Reference"
msgstr "API-referentie"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr "API-gebruik"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -305,6 +351,18 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Applicatiestatistieken"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr "Toepassen"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr "Link toepassen"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr "Solliciteer via"
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabisch"
@@ -348,10 +406,6 @@ msgstr "Studierichting"
msgid "Artificial Intelligence"
msgstr "Kunstmatige intelligentie"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr "Vraag me om uw cv bij te werken..."
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Beeldverhouding"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr "Voordelen"
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengaals"
@@ -485,6 +543,7 @@ msgstr "Kan ik mijn cv naar PDF exporteren?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Weergave centreren"
msgid "Certifications"
msgstr "Certificeringen"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Taal wijzigen"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Taal wijzigen naar..."
@@ -544,9 +607,9 @@ msgstr "Chinees (traditioneel)"
msgid "Circle"
msgstr "Cirkel"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
msgstr "Chatgeschiedenis verwijderen"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr "Alles wissen"
#: src/dialogs/resume/import.tsx
msgid "Click here to select a file to import"
@@ -555,7 +618,7 @@ msgstr "Klik hier om een bestand te selecteren om te importeren"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Sluiten"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Bedrijf"
msgid "Completely free, forever, no hidden costs."
msgstr "Volledig gratis, voor altijd, zonder verborgen kosten."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr "Vacatures zoeken configureren"
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -610,6 +677,10 @@ msgstr "Ga verder waar u was gebleven"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Ga verder waar u was gebleven door een bestaand cv te importeren dat u met Reactive Resume of een andere cv-bouwer hebt gemaakt. Ondersteunde formaten zijn onder andere PDF, Microsoft Word en JSON-bestanden van Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr "Aannemer"
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Bijdragen financieren bugfixes, beveiligingsupdates en continue verbeteringen om de app soepel te laten draaien."
@@ -634,6 +705,14 @@ msgstr "Kopieer deze geheime sleutel en gebruik deze in uw applicaties om toegan
msgid "Copy URL"
msgstr "URL kopiëren"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr "Kan taken niet ophalen"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr "Land"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
@@ -799,6 +878,10 @@ msgstr "Gegevensbeveiliging"
msgid "Date"
msgstr "Datum"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr "Datum geplaatst"
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Graad"
@@ -855,6 +938,7 @@ msgstr "Uw cv wordt verwijderd..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Beschrijving"
@@ -862,6 +946,18 @@ msgstr "Beschrijving"
msgid "Design"
msgstr "Ontwerp"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr "Direct"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr "Direct aanvragen"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr "Alleen direct van toepassing"
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Documentatie"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "Heb je nog geen account? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Doneer aan Reactive Resume"
msgid "Download"
msgstr "Downloaden"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr "Download een kopie van uw cv als Word-document. Gebruik dit bestand om uw cv verder aan te passen in Microsoft Word of Google Docs."
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Download een kopie van uw cv in JSON-indeling. Gebruik dit bestand als back-up of om uw cv te importeren in andere applicaties, waaronder AI-assistenten."
@@ -913,6 +1013,10 @@ msgstr "Download een kopie van uw cv in JSON-indeling. Gebruik dit bestand als b
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Download een kopie van uw cv in PDF-indeling. Gebruik dit bestand om te printen of om uw cv eenvoudig te delen met recruiters."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr "Downloaden DOCX"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "JSON downloaden"
@@ -958,9 +1062,17 @@ msgstr "Uw cv wordt gedupliceerd..."
msgid "Dutch"
msgstr "Nederlands"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
msgstr "bijv. Wijzig mijn naam naar..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr "bijv. 150000"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr "bijv. 50000"
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr "Banen als frontend ontwikkelaar in Berlijn"
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
@@ -1013,7 +1125,7 @@ msgstr "Engels"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Engels (Verenigd Koninkrijk)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Voer uw wachtwoord in om het instellen van tweestapsverificatie te beves
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Voer uw wachtwoord in om tweestapsverificatie uit te schakelen. Uw account is minder goed beveiligd zonder 2FA."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr "Voer uw RapidAPI-sleutel in"
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Elke bijdrage, groot of klein, maakt een enorm verschil voor het project.<0/>Bedankt voor uw steun!"
@@ -1055,11 +1171,24 @@ 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/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr "Exclusief {value}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr "Bedrijven uitsluiten"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr "Trefwoorden uitsluiten"
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Volledig scherm afsluiten"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Ervaring"
@@ -1085,13 +1214,21 @@ msgstr "Bekijk de API-documentatie om te leren hoe u Reactive Resume met uw appl
msgid "Export"
msgstr "Exporteren"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr "Duplicaat van cv mislukt"
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Het instellen van tweestapsverificatie is mislukt."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr ""
msgstr "Aanmelden mislukt. Probeer het opnieuw."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr "Synchronisatie van vaardigheden mislukt"
#: src/routes/_home/-sections/features.tsx
msgid "Features"
@@ -1172,6 +1309,10 @@ msgstr "Frans"
msgid "Full Width"
msgstr "Volledige breedte"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr "Voltijd"
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr "Volledig Scherm"
@@ -1188,6 +1329,10 @@ msgstr "Duits"
msgid "Get Started"
msgstr "Aan de slag"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr "Ontvang uw API-sleutel van RapidAPI door u aan te melden voor de JSearch API."
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Ga terug"
msgid "Go to dashboard"
msgstr "Ga naar het dashboard"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr "Ga naar Instellingen"
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Ga naar..."
@@ -1338,6 +1487,10 @@ msgstr "Uw cv wordt geïmporteerd..."
msgid "Importing..."
msgstr "Importeren..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr "Trefwoorden opnemen"
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesisch"
@@ -1359,6 +1512,10 @@ msgstr "Tabel invoegen"
msgid "Interests"
msgstr "Interesses"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr "Stagiair"
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Is Reactive Resume beschikbaar in meerdere talen?"
@@ -1383,6 +1540,24 @@ msgstr "Cursief"
msgid "Japanese"
msgstr "Japans"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr "Werk zoeken"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr "API voor het zoeken van vacatures"
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr "JSearch verzamelt vacatures van meerdere vacaturebanken met behulp van Google for Jobs. U kunt filteren op land (ISO alpha-2 code), datum van plaatsing, functietype, afstandsopties en ervaringsniveau."
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr "JSearch API-documentatie"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Uitlijnen als blok"
@@ -1425,6 +1600,10 @@ msgstr "Taal"
msgid "Languages"
msgstr "Talen"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr "Laatste 3 dagen"
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1573,10 +1752,22 @@ msgstr "Marge (horizontaal)"
msgid "Margin (Vertical)"
msgstr "Marge (verticaal)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr "Maximum salaris"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr "Minimum salaris"
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Model"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr "Meer dan 3 jaar"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Verplaatsen naar"
@@ -1626,14 +1817,38 @@ msgstr "Nieuw wachtwoord"
msgid "New Section"
msgstr "Nieuwe sectie"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr "Nieuwe vaardigheden gedetecteerd"
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr "Volgende"
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Geen advertenties, geen tracking"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr "Geen diploma vereist"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr "Geen ervaring"
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr "Geen vacatures gevonden. Probeer een andere zoekopdracht."
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "Geen resultaten gevonden."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr "Geen cv's gevonden. Maak eerst een cv."
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Noors"
@@ -1674,6 +1889,11 @@ msgstr "Open Source"
msgid "opens in new tab"
msgstr "opent in nieuw tabblad"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr "Samenvatting, ervaring en vaardigheden optimaliseren voor {0}"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "U kunt optioneel een wachtwoord instellen zodat alleen mensen met het wachtwoord uw cv via de link kunnen bekijken."
@@ -1693,11 +1913,11 @@ msgstr "Organisatie"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "Totale periode"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "Algemene titel (optioneel)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "Pagina"
msgid "Page {0}"
msgstr "Pagina {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr "Pagina {currentPage}"
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Pagina {pageNumber} van {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Pagina {pageNumber} van {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Paragraaf"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr "Deeltijd"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkeys & 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Voorkeuren"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Druk op <0>{RETURN_KEY}</0> of <1>{COMMA_KEY}</1> om het huidige trefwoord toe te voegen of op te slaan."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr "Vorige"
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Primaire kleur"
@@ -1872,6 +2104,15 @@ msgstr "Publicaties"
msgid "Publisher"
msgstr "Uitgever"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr "Quota: {0} resterend"
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr "RapidAPI-sleutel"
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Ga naar de startpagina"
@@ -1924,20 +2165,26 @@ msgstr "Vernieuwen"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr ""
msgstr "Wachtwoord nog weten? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr "Op afstand"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr "Alleen afstandsbediening"
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "Verwijderen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "Wachtwoord verwijderen"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr "Verwijderd"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Wachtwoordbeveiliging wordt verwijderd..."
@@ -1948,7 +2195,7 @@ msgstr "Hernoemen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "Herordenen"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "Meld een bug"
msgid "Report an issue"
msgstr "Een probleem melden"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr "Vereiste vaardigheden"
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Verificatie-e-mail opnieuw verzenden"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Verificatie-e-mail wordt opnieuw verzonden..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Resetten"
@@ -1986,6 +2238,12 @@ msgstr "Uw wachtwoord wordt gereset..."
msgid "Resources"
msgstr "Bronnen"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr "Succesvol cv op maat"
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "Bronnen"
msgid "Resumes"
msgstr "Cv's"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr "Opnieuw proberen"
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Rechts uitlijnen"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "Loopbaanontwikkeling"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "Rotatie"
msgid "Russian"
msgstr "Russisch"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr "Opslaan {0} Vaardigheden"
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Scan de QR-code hieronder met uw voorkeursauthenticator-app. U kunt het
msgid "School"
msgstr "School"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr "Zoeken op"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr "Landen zoeken"
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Zoeken naar..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Zoeken..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "Geheim gekopieerd naar klembord."
msgid "Section Type"
msgstr "Sectietype"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr "Selecteer een cv op maat voor \"{0}\" op {1}. Er wordt een kopie gemaakt{2}"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr "Selecteer land"
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Selecteren..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2204,6 +2491,10 @@ msgstr "Grootte"
msgid "Skills"
msgstr "Vaardigheden"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr "Skip"
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Ga naar hoofdinhoud"
@@ -2212,6 +2503,10 @@ msgstr "Ga naar hoofdinhoud"
msgid "Slovak"
msgstr "Slowaaks"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Korte naam"
@@ -2327,6 +2622,19 @@ msgstr "Tags"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Tags kunnen worden gebruikt om uw cv te categoriseren op trefwoorden."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr "Resumé op maat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr "Tailoring mislukt"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr "Uw cv op maat maken..."
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Sjablonen"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Verbinding testen"
@@ -2363,6 +2672,10 @@ msgstr "Tekstkleur"
msgid "Thai"
msgstr "Thais"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr "De AI heeft nieuwe vaardigheden uit uw ervaring geïdentificeerd die bij deze baan passen. Selecteer welke u wilt opslaan in uw originele cv voor toekomstige sollicitaties. Dit zal uw originele cv permanent wijzigen en kan niet ongedaan worden gemaakt."
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "De API-sleutel is succesvol verwijderd."
@@ -2401,15 +2714,16 @@ msgstr "Thema"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Voer vervolgens de 6-cijferige code in die de app geeft om door te gaan."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr "Er is een probleem opgetreden tijdens het genereren van de DOCX, probeer het opnieuw."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Er is een probleem opgetreden bij het genereren van de PDF, probeer het over enige tijd opnieuw."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr "Even nadenken..."
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Dit kan enkele minuten duren, afhankelijk van de reactie van de AI-provi
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "Dit kan even duren, afhankelijk van de servercapaciteit. Sluit het venster niet en ververs de pagina niet."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr "Deze maand"
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Dit cv is vergrendeld en kan niet worden bijgewerkt."
@@ -2450,6 +2768,10 @@ msgstr "Dit gedeelte is gereserveerd voor uw persoonlijke aantekeningen die spec
msgid "This step is optional, but recommended."
msgstr "Deze stap is optioneel, maar wel aanbevolen."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr "Deze week"
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Hiermee wordt een nieuwe API-sleutel gegenereerd voor toegang tot de Reactive Resume API, zodat machines met uw cv-gegevens kunnen communiceren."
@@ -2477,6 +2799,15 @@ msgstr "Titel"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "Om uw account te verwijderen, moet u de bevestigingstekst invoeren en op de knop hieronder klikken."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr "Om naar vacatures te zoeken, moet u uw RapidAPI-sleutel in de instellingen configureren."
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr "Vandaag"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Houd de weergaven en downloads van uw cv bij"
@@ -2545,6 +2876,7 @@ msgstr "Tweestapsverificatie is succesvol ingesteld."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Type"
@@ -2564,6 +2896,10 @@ msgstr "Typografie"
msgid "Ukrainian"
msgstr "Oekraïens"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr "Tot 3 jaar"
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Onderstrepen"
@@ -2673,10 +3009,6 @@ msgstr "Cv bijwerken"
msgid "Update your password"
msgstr "Werk uw wachtwoord bij"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr "Bijgewerkt"
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Uw wachtwoord wordt bijgewerkt..."
@@ -2771,6 +3103,10 @@ msgstr "Website"
msgid "What do you want to rename this section to?"
msgstr "Hoe wilt u deze sectie hernoemen?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr "Wat is JSearch API?"
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Wat maakt Reactive Resume anders dan andere cv-bouwers?"
@@ -2801,6 +3137,10 @@ msgstr "Ja! Elk sjabloon is volledig aanpasbaar. U kunt kleuren, lettertypen en
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr "Gisteren"
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "U heeft ook de mogelijkheid om het op uw eigen servers te implementeren met behulp van de Docker-image."
@@ -2858,6 +3198,10 @@ msgstr "Je wachtwoord is bijgewerkt."
msgid "Your profile has been updated successfully."
msgstr "Uw profiel is succesvol bijgewerkt."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr "Uw RapidAPI-sleutel wordt lokaal in uw browser opgeslagen. De sleutel wordt alleen naar de server gestuurd wanneer u een aanvraag doet om vacatures te zoeken, en wordt nooit opgeslagen of bewaard op onze servers."
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+398 -54
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:07\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -45,6 +45,22 @@ msgstr "{0, plural, one {# element} other {# elementer}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# rolle} other {# roller}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
@@ -52,6 +68,14 @@ msgstr ""
msgid "{column, plural, one {# Column} other {# Columns}}"
msgstr "{column, plural, one {# kolonne} other {# kolonner}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr ""
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>Endelig</0><1>En gratis og åpen kildekode CV-bygger</1>"
@@ -202,7 +226,7 @@ msgstr "Legg til kolonne før"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "Legg til flere roller for å vise karriereutvikling i samme selskap."
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "Legg til side"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "Legg til rolle"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,8 +244,13 @@ msgstr "Legg til rad etter"
msgid "Add Row Before"
msgstr "Legg til rad før"
#: src/components/ai/chat.tsx
msgid "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr ""
#: src/utils/locale.ts
@@ -233,8 +262,8 @@ msgstr "Afrikaans"
msgid "AI"
msgstr "KI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr ""
#: src/utils/locale.ts
@@ -247,7 +276,7 @@ msgstr "Tillat offentlig tilgang"
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "Har du allerede en konto? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "En ukjent feil oppstod under import av CV-en din."
msgid "And many more..."
msgstr "Og mange flere..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "Alle som besøker CV-ens offentlige URL må skrive inn dette passordet for å få tilgang."
@@ -297,6 +339,10 @@ msgstr "API-nøkler"
msgid "API Reference"
msgstr "API-dokumentasjon"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "App"
@@ -305,13 +351,25 @@ msgstr "App"
msgid "Application Statistics"
msgstr "Applikasjonsstatistikk"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr ""
#: src/utils/locale.ts
msgid "Arabic"
msgstr "Arabisk"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "Er du sikker på at du vil lukke denne dialogen?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -348,10 +406,6 @@ msgstr "Studiefelt"
msgid "Artificial Intelligence"
msgstr "Kunstig intelligens"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "Størrelsesforhold"
@@ -405,6 +459,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/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr ""
#: src/utils/locale.ts
msgid "Bengali"
msgstr "Bengali"
@@ -485,6 +543,7 @@ msgstr "Kan jeg eksportere CV-en min til PDF?"
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "Sentrer visning"
msgid "Certifications"
msgstr "Sertifiseringer"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "Endre språk"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "Endre språk til..."
@@ -544,8 +607,8 @@ msgstr "Kinesisk (tradisjonell)"
msgid "Circle"
msgstr "Sirkel"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr ""
#: src/dialogs/resume/import.tsx
@@ -555,7 +618,7 @@ msgstr "Klikk her for å velge en fil å importere"
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "Lukk"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "Firma"
msgid "Completely free, forever, no hidden costs."
msgstr "Helt gratis, for alltid, uten skjulte kostnader."
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr ""
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -592,7 +659,7 @@ msgstr "Koble til"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "Innhold"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -610,6 +677,10 @@ msgstr "Fortsett der du slapp"
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Fortsett der du slapp ved å importere en eksisterende CV du har laget med Reactive Resume eller en annen CV-bygger. Støttede formater inkluderer PDF, Microsoft Word og JSON-filer fra Reactive Resume."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "Bidrag finansierer feilrettinger, sikkerhetsoppdateringer og kontinuerlige forbedringer som holder appen i gang uten problemer."
@@ -634,10 +705,18 @@ msgstr "Kopier denne hemmelige nøkkelen og bruk den i applikasjonene dine for
msgid "Copy URL"
msgstr "Kopier URL"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "Følgebrev"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -678,7 +757,7 @@ msgstr "Opprett en ny sertifisering"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "Opprett et nytt følgebrev"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -729,7 +808,7 @@ msgstr "Opprett en ny ferdighet"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "Opprett et nytt sammendragspunkt"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -799,6 +878,10 @@ msgstr "Datasikkerhet"
msgid "Date"
msgstr "Dato"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr ""
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "Grad"
@@ -855,6 +938,7 @@ msgstr "Sletter CV-en din..."
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "Beskrivelse"
@@ -862,6 +946,18 @@ msgstr "Beskrivelse"
msgid "Design"
msgstr "Design"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr ""
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "Dokumentasjon"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "Har du ikke en konto? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Doner til Reactive Resume"
msgid "Download"
msgstr "Last ned"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "Last ned en kopi av CV-en din i JSON-format. Bruk denne filen som sikkerhetskopi eller for å importere CV-en din til andre applikasjoner, inkludert KI-assistenter."
@@ -913,6 +1013,10 @@ msgstr "Last ned en kopi av CV-en din i JSON-format. Bruk denne filen som sikker
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "Last ned en kopi av CV-en din i PDF-format. Bruk denne filen til utskrift eller for enkelt å dele CV-en din med rekrutterere."
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "Last ned JSON"
@@ -958,8 +1062,16 @@ msgstr "Dupliserer CV-en din..."
msgid "Dutch"
msgstr "Nederlandsk"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
@@ -1013,7 +1125,7 @@ msgstr "Engelsk"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "Engelsk (Storbritannia)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "Skriv inn passordet ditt for å bekrefte at du vil sette opp tofaktoraut
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "Skriv inn passordet ditt for å deaktivere tofaktorautentisering. Kontoen din vil være mindre sikker uten aktivert 2FA."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "Hvert bidrag, stort eller lite, gjør en enorm forskjell for prosjektet.<0/>Takk for støtten!"
@@ -1055,11 +1171,24 @@ 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/components/input/rich-input.tsx
msgid "Exit Fullscreen"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "Avslutt fullskjerm"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "Erfaring"
@@ -1085,12 +1214,20 @@ msgstr "Utforsk API-dokumentasjonen for å lære hvordan du integrerer Reactive
msgid "Export"
msgstr "Eksporter"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr ""
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "Kunne ikke sette opp tofaktorautentisering."
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr "Innlogging mislyktes. Vennligst prøv igjen."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr ""
#: src/routes/_home/-sections/features.tsx
@@ -1172,9 +1309,13 @@ msgstr "Fransk"
msgid "Full Width"
msgstr "Full bredde"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "Fullskjerm"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1188,6 +1329,10 @@ msgstr "Tysk"
msgid "Get Started"
msgstr "Kom i gang"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr ""
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "Gå tilbake"
msgid "Go to dashboard"
msgstr "Gå til kontrollpanelet"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "Gå til..."
@@ -1338,6 +1487,10 @@ msgstr "Importerer CV-en din..."
msgid "Importing..."
msgstr "Importerer..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr ""
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "Indonesisk"
@@ -1359,6 +1512,10 @@ msgstr "Sett inn tabell"
msgid "Interests"
msgstr "Interesser"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Er Reactive Resume tilgjengelig på flere språk?"
@@ -1383,6 +1540,24 @@ msgstr "Kursiv"
msgid "Japanese"
msgstr "Japansk"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "Blokkjuster"
@@ -1425,6 +1600,10 @@ msgstr "Språk"
msgid "Languages"
msgstr "Språk"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr ""
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1458,7 +1637,7 @@ msgstr "Lær mer om hvordan du får innhold til å passe på en side"
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "Forlat"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1573,10 +1752,22 @@ msgstr "Marg (horisontal)"
msgid "Margin (Vertical)"
msgstr "Marg (vertikal)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr ""
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "Modell"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "Flytt til"
@@ -1626,14 +1817,38 @@ msgstr "Nytt passord"
msgid "New Section"
msgstr "Ny seksjon"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "Ingen annonser, ingen sporing"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr ""
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "Ingen resultater funnet."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr ""
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "Norsk"
@@ -1674,6 +1889,11 @@ msgstr "Åpen kildekode"
msgid "opens in new tab"
msgstr "åpnes i ny fane"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "Du kan eventuelt angi et passord slik at bare personer med passordet kan se CV-en din via lenken."
@@ -1693,11 +1913,11 @@ msgstr "Organisasjon"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "Samlet periode"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "Overordnet tittel (valgfritt)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "Side"
msgid "Page {0}"
msgstr "Side {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr ""
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "Side {pageNumber} av {totalNumberOfPages}"
@@ -1717,6 +1941,10 @@ msgstr "Side {pageNumber} av {totalNumberOfPages}"
msgid "Paragraph"
msgstr "Avsnitt"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passnøkler og 2FA"
@@ -1822,6 +2050,10 @@ msgstr "Preferanser"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "Trykk <0>{RETURN_KEY}</0> eller <1>{COMMA_KEY}</1> for å legge til eller lagre det nåværende nøkkelordet."
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "Hovedfarge"
@@ -1872,6 +2104,15 @@ msgstr "Publikasjoner"
msgid "Publisher"
msgstr "Utgiver"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr ""
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - Gå til startsiden"
@@ -1898,7 +2139,7 @@ msgstr "Reactive Resume er åpen kildekode, personvernfokusert og helt gratis. I
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "Mottaker"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1924,20 +2165,26 @@ msgstr "Oppdater"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "Husker du passordet ditt? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr ""
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "Fjern"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "Fjern passord"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "Fjerner passordbeskyttelse..."
@@ -1948,7 +2195,7 @@ msgstr "Endre navn"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "Omorganiser"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "Rapporter en feil"
msgid "Report an issue"
msgstr "Rapporter et problem"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr ""
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "Send verifiserings-e-post på nytt"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "Sender verifiserings-e-post på nytt..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "Tilbakestill"
@@ -1986,6 +2238,12 @@ msgstr "Tilbakestiller passordet ditt..."
msgid "Resources"
msgstr "Ressurser"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "Ressurser"
msgid "Resumes"
msgstr "CV-er"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "Høyrejuster"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "Rolleutvikling"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "Rotasjon"
msgid "Russian"
msgstr "Russisk"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "Skann QR-koden nedenfor med den foretrukne autentiseringsappen din. Du k
msgid "School"
msgstr "Skole"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr ""
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "Søk etter..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "Søk..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,13 +2342,24 @@ msgstr "Hemmelighet kopiert til utklippstavlen."
msgid "Section Type"
msgstr "Seksjonstype"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr ""
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "Velg..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
msgstr "Selv-vert med Docker"
msgstr "Selvhosting med Docker"
#: src/routes/auth/forgot-password.tsx
msgid "Send Password Reset Email"
@@ -2139,7 +2426,7 @@ msgstr "Vis"
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
msgstr "Vis lenke i tittel"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
@@ -2204,6 +2491,10 @@ msgstr "Størrelse"
msgid "Skills"
msgstr "Ferdigheter"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr ""
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "Hopp til hovedinnhold"
@@ -2212,6 +2503,10 @@ msgstr "Hopp til hovedinnhold"
msgid "Slovak"
msgstr "Slovakisk"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Forkortelse"
@@ -2280,7 +2575,7 @@ msgstr "Statistikk"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "Bli"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2327,6 +2622,19 @@ msgstr "Tagger"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "Tagger kan brukes til å kategorisere CV-en din etter nøkkelord."
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr ""
#: src/utils/locale.ts
msgid "Tamil"
msgstr "Tamil"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "Maler"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "Test tilkobling"
@@ -2363,6 +2672,10 @@ msgstr "Tekstfarge"
msgid "Thai"
msgstr "Thai"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr ""
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "API-nøkkelen er slettet."
@@ -2401,15 +2714,16 @@ msgstr "Tema"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "Skriv deretter inn den 6-sifrede koden som appen gir deg for å fortsette."
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "Det oppstod et problem under generering av PDF-en, prøv igjen om en stund."
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "Dette kan ta noen minutter, avhengig av responsen fra KI-leverandøren.
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "Dette kan ta en stund, avhengig av serverkapasitet. Ikke lukk vinduet eller oppdater siden."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr ""
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "Denne CV-en er låst og kan ikke oppdateres."
@@ -2450,6 +2768,10 @@ msgstr "Denne delen er reservert for dine personlige notater som er spesifikke f
msgid "This step is optional, but recommended."
msgstr "Dette trinnet er valgfritt, men anbefalt."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "Dette vil generere en ny API-nøkkel for tilgang til Reactive Resume API-et slik at maskiner kan samhandle med CV-dataene dine."
@@ -2477,6 +2799,15 @@ msgstr "Tittel"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "For å slette kontoen din må du skrive inn bekreftelsesteksten og klikke på knappen nedenfor."
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr ""
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "Spor visninger og nedlastinger av CV-en din"
@@ -2545,6 +2876,7 @@ msgstr "Tofaktorautentisering er satt opp."
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "Type"
@@ -2564,6 +2896,10 @@ msgstr "Typografi"
msgid "Ukrainian"
msgstr "Ukrainsk"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "Understrek"
@@ -2610,7 +2946,7 @@ msgstr "Oppdater en eksisterende sertifisering"
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "Oppdater et eksisterende følgebrev"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2654,7 +2990,7 @@ msgstr "Oppdater en eksisterende ferdighet"
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "Oppdater et eksisterende sammendragspunkt"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "Oppdater CV"
msgid "Update your password"
msgstr "Oppdater passordet ditt"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "Oppdaterer passordet ditt..."
@@ -2771,6 +3103,10 @@ msgstr "Nettsted"
msgid "What do you want to rename this section to?"
msgstr "Hva vil du endre navnet på denne seksjonen til?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Hva gjør Reactive Resume annerledes enn andre CV-byggere?"
@@ -2801,6 +3137,10 @@ msgstr "Ja! Hver mal er fullt ut tilpassbar. Du kan endre farger, skrifttyper, a
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."
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "Du kan også velge å distribuere på egne servere ved å bruke Docker-imaget."
@@ -2815,7 +3155,7 @@ msgstr "Du kan dele CV-en din via en unik offentlig URL, beskytte den med et pas
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "Du har ulagrede endringer som vil gå tapt."
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
@@ -2858,6 +3198,10 @@ msgstr "Passordet ditt har blitt oppdatert."
msgid "Your profile has been updated successfully."
msgstr "Profilen din er oppdatert."
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+397 -53
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-03-05 10:46\n"
"PO-Revision-Date: 2026-03-19 09:08\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -45,6 +45,22 @@ msgstr "{0, plural, one {# ଆଇଟମ୍} other {# ଆଇଟମ୍}}"
#. placeholder {0}: item.roles.length
#: src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
msgid "{0, plural, one {# role} other {# roles}}"
msgstr "{0, plural, one {# ଭୂମିକା} other {# ଭୂମିକା}}"
#. placeholder {0}: quota.used
#. placeholder {1}: quota.limit
#: src/routes/dashboard/job-search/index.tsx
msgid "{0} / {1} requests used"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 30)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} months ago"
msgstr ""
#. placeholder {0}: Math.floor(diffDays / 7)
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{0} weeks ago"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
@@ -52,6 +68,14 @@ msgstr ""
msgid "{column, plural, one {# Column} other {# Columns}}"
msgstr "{column, plural, one {# କଲମ୍} other {# କଲମ୍}}"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "{diffDays} days ago"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "{used} of {limit} requests used ({remaining} remaining)"
msgstr ""
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
msgstr "<0>ଶେଷରେ,</0><1>ଏକ ନିଶୁଳ୍କ ଏବଂ ଖୋଲା-ମୂଳ ରେଜ୍ୟୁମେ ବିଲ୍ଡର</1>"
@@ -202,7 +226,7 @@ msgstr "ପୂର୍ବେ କଲମ୍ ଯୋଡନ୍ତୁ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add multiple roles to show career progression at the same company."
msgstr ""
msgstr "ଗୋଟିଏ କମ୍ପାନୀରେ କ୍ୟାରିଅର ଅଗ୍ରଗତି ଦେଖାଇବା ପାଇଁ ଏକାଧିକ ଭୂମିକା ଯୋଡ଼ନ୍ତୁ।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Add Page"
@@ -210,7 +234,7 @@ msgstr "ପେଜ୍ ଯୋଡନ୍ତୁ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Add Role"
msgstr ""
msgstr "ଭୂମିକା ଯୋଡ଼ନ୍ତୁ"
#: src/components/input/rich-input.tsx
msgid "Add Row After"
@@ -220,8 +244,13 @@ msgstr "ପରେ ପଙ୍କ୍ତି ଯୋଡନ୍ତୁ"
msgid "Add Row Before"
msgstr "ପୂର୍ବେ ପଙ୍କ୍ତି ଯୋଡନ୍ତୁ"
#: src/components/ai/chat.tsx
msgid "Added"
#. placeholder {0}: skillsToSync.length
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Added {0} new skills to your original resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Advanced Filters"
msgstr ""
#: src/utils/locale.ts
@@ -233,8 +262,8 @@ msgstr "ଆଫ୍ରିକାନ୍ସ"
msgid "AI"
msgstr "AI"
#: src/components/ai/chat.tsx
msgid "AI Chat"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "AI returned some invalid references"
msgstr ""
#: src/utils/locale.ts
@@ -247,7 +276,7 @@ msgstr "ସାର୍ବଜନିକ ଆକ୍ସେସ୍ ଅନୁମତି ଦ
#: src/routes/auth/register.tsx
msgid "Already have an account? <0/>"
msgstr ""
msgstr "ପୂର୍ବରୁ ଖାତା ଅଛି? <0/>"
#: src/utils/locale.ts
msgid "Amharic"
@@ -266,6 +295,19 @@ msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେକୁ ଆୟାତ କରି
msgid "And many more..."
msgstr "ଏବଂ ଅନେକ ଅଧିକ..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any level"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any time"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Any type"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone visiting the resume's public URL must enter this password to access it."
msgstr "ଯେଉଁ କଣ ଲୋକ ରେଜ୍ୟୁମେର ସାର୍ବଜନିକ URL ଦେଖୁଛନ୍ତି ସେମାନେ ଏହାକୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଏହି ପାସୱାର୍ଡ ଦିଅ ଉଚିତ।"
@@ -297,6 +339,10 @@ msgstr "API କିଗୁଡିକ"
msgid "API Reference"
msgstr "API ସନ୍ଦର୍ଭ"
#: src/routes/dashboard/settings/job-search.tsx
msgid "API Usage"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
msgid "App"
msgstr "ଆପ୍"
@@ -305,13 +351,25 @@ msgstr "ଆପ୍"
msgid "Application Statistics"
msgstr "ଆପ୍ଲିକେସନ୍ ସଂଖ୍ୟାତ୍ମକ ତଥ୍ୟ"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Link"
msgstr ""
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Apply Via"
msgstr ""
#: src/utils/locale.ts
msgid "Arabic"
msgstr "ଆରବୀ"
#: src/hooks/use-form-blocker.tsx
msgid "Are you sure you want to close this dialog?"
msgstr ""
msgstr "ଆପଣ ଏହି ଡାଇଲଗ୍ ବନ୍ଦ କରିବାକୁ ନିଶ୍ଚିତ କି?"
#: src/routes/dashboard/settings/api-keys.tsx
msgid "Are you sure you want to delete this API key?"
@@ -348,10 +406,6 @@ msgstr "ଅଧ୍ୟୟନ କ୍ଷେତ୍ର"
msgid "Artificial Intelligence"
msgstr "କୃତ୍ରିମ ବୁଦ୍ଧିମତ୍ତା"
#: src/components/ai/chat.tsx
msgid "Ask me to update your resume..."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
msgstr "ଆସ୍ପେକ୍ଟ ଅନୁପାତ"
@@ -405,6 +459,10 @@ msgstr "ମୌଳିକତା"
msgid "Beautiful templates to choose from, with more on the way."
msgstr "ଚୟନ କରିବା ପାଇଁ ସୁନ୍ଦର ଟେମ୍ପ୍ଲେଟ୍‌, ଆଉ ଅଧିକ ଆସୁଛି।"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Benefits"
msgstr ""
#: src/utils/locale.ts
msgid "Bengali"
msgstr "ବଙ୍ଗାଳୀ"
@@ -485,6 +543,7 @@ msgstr "ମୁଁ ମୋର ରେଜ୍ୟୁମେକୁ PDF କୁ ନିର
#: src/dialogs/resume/sections/volunteer.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/settings/api-keys.tsx
#: src/routes/dashboard/settings/danger-zone.tsx
#: src/routes/dashboard/settings/profile.tsx
@@ -508,6 +567,10 @@ msgstr "ଭ୍ୟୁକୁ ମଧ୍ୟରେ ରଖନ୍ତୁ"
msgid "Certifications"
msgstr "ପ୍ରମାଣପତ୍ରଗୁଡିକ"
#: src/routes/_home/-sections/header.tsx
msgid "Change language"
msgstr "ଭାଷା ବଦଳାନ୍ତୁ"
#: src/components/command-palette/pages/preferences/index.tsx
msgid "Change language to..."
msgstr "ଭାଷାକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ..."
@@ -544,8 +607,8 @@ msgstr "ଚାଇନିଜ୍ (ପାରମ୍ପରିକ)"
msgid "Circle"
msgstr "ବୃତ୍ତ"
#: src/components/ai/chat.tsx
msgid "Clear chat history"
#: src/routes/dashboard/job-search/index.tsx
msgid "Clear all"
msgstr ""
#: src/dialogs/resume/import.tsx
@@ -555,7 +618,7 @@ msgstr "ଆୟାତ କରିବା ପାଇଁ ଫାଇଲ୍ ଚୟନ କ
#: src/components/ui/dialog.tsx
#: src/components/ui/sheet.tsx
msgid "Close"
msgstr ""
msgstr "ବନ୍ଦ କରନ୍ତୁ"
#: src/components/input/rich-input.tsx
msgid "Code Block"
@@ -578,6 +641,10 @@ msgstr "କମ୍ପାନୀ"
msgid "Completely free, forever, no hidden costs."
msgstr "ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ନିଶୁଳ୍କ, ସଦା ପାଇଁ, କୌଣସି ଲୁଚା ଖର୍ଚ୍ଚ ନାହିଁ।"
#: src/routes/dashboard/job-search/index.tsx
msgid "Configure Job Search"
msgstr ""
#: src/dialogs/api-key/create.tsx
#: src/hooks/use-prompt.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -592,7 +659,7 @@ msgstr "ଯୋଡନ୍ତୁ"
#: src/dialogs/resume/sections/cover-letter.tsx
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Content"
msgstr ""
msgstr "ବିଷୟବସ୍ତୁ"
#: src/dialogs/auth/enable-two-factor.tsx
#: src/dialogs/auth/enable-two-factor.tsx
@@ -610,6 +677,10 @@ msgstr "ଯେଉଁଠାରୁ ଛାଡିଥିଲେ ସେଠାରୁ ଜ
msgid "Continue where you left off by importing an existing resume you created using Reactive Resume or any another resume builder. Supported formats include PDF, Microsoft Word, as well as JSON files from Reactive Resume."
msgstr "Reactive Resume କିମ୍ବା ଅନ୍ୟ କୌଣସି ରେଜ୍ୟୁମେ ବିଲ୍ଡର ବ୍ୟବହାର କରି ଆପଣ ଯେତେବେଳେ ତିଆରି କରିଥିବା ଏକ ଅବସ୍ଥିତ ରେଜ୍ୟୁମେକୁ ଆୟାତ କରି, ଯେଉଁଠାରୁ ଛାଡିଥିଲେ ସେଠାରୁ ଜାରି ରଖନ୍ତୁ। ସମର୍ଥିତ ଫର୍ମାଟ୍‌ଗୁଡିକରେ PDF, Microsoft Word, ଏବଂ Reactive Resume ରୁ JSON ଫାଇଲ୍ ଅନ୍ତର୍ଭୁକ୍ତ।"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Contractor"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Contributions fund bug fixes, security updates, and continuous improvements to keep the app running smoothly."
msgstr "ଅନୁଦାନଗୁଡିକ ଆପ୍‌କୁ ସୁଚାଳିତ ରଖିବା ପାଇଁ ବଗ୍ ସୁଧାର, ସୁରକ୍ଷା ଅଦ୍ୟତନ ଏବଂ ଅବିରତ ଉନ୍ନତିର ଅର୍ଥ ଯୋଗାଇ ଥାଏ।"
@@ -634,10 +705,18 @@ msgstr "ଏହି ଗୁପ୍ତ କିକୁ କପି କରନ୍ତୁ ଏ
msgid "Copy URL"
msgstr "URL କପି କରନ୍ତୁ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Could not fetch jobs"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Country"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
#: src/utils/resume/section.tsx
msgid "Cover Letter"
msgstr ""
msgstr "କଭର ଲେଟର"
#: src/dialogs/api-key/create.tsx
#: src/dialogs/resume/index.tsx
@@ -678,7 +757,7 @@ msgstr "ଗୋଟିଏ ନୂତନ ପ୍ରମାଣପତ୍ର ତିଆର
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Create a new cover letter"
msgstr ""
msgstr "ନୂଆ କଭର ଲେଟର ସୃଷ୍ଟି କରନ୍ତୁ"
#: src/dialogs/resume/sections/custom.tsx
msgid "Create a new custom section"
@@ -729,7 +808,7 @@ msgstr "ଗୋଟିଏ ନୂତନ କୌଶଳ ତିଆରି କରନ୍
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Create a new summary item"
msgstr ""
msgstr "ନୂଆ ସାରାଂଶ ଆଇଟମ୍ ସୃଷ୍ଟି କରନ୍ତୁ"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Create a new volunteer experience"
@@ -799,6 +878,10 @@ msgstr "ତଥ୍ୟ ସୁରକ୍ଷା"
msgid "Date"
msgstr "ତାରିଖ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Date Posted"
msgstr ""
#: src/dialogs/resume/sections/education.tsx
msgid "Degree"
msgstr "ଡିଗ୍ରୀ"
@@ -855,6 +938,7 @@ msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ବିଲୋପ ହୋଇଯ
#: src/dialogs/resume/sections/publication.tsx
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Description"
msgstr "ବର୍ଣ୍ଣନା"
@@ -862,6 +946,18 @@ msgstr "ବର୍ଣ୍ଣନା"
msgid "Design"
msgstr "ଡିଜାଇନ୍"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Direct"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Direct Apply"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Direct apply only"
msgstr ""
#: src/dialogs/auth/disable-two-factor.tsx
#: src/routes/dashboard/settings/authentication/-components/two-factor.tsx
msgid "Disable 2FA"
@@ -894,7 +990,7 @@ msgstr "ଦଳିଲପତ୍ର"
#: src/routes/auth/login.tsx
msgid "Don't have an account? <0/>"
msgstr ""
msgstr "ଖାତା ନାହିଁ? <0/>"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Donate to Reactive Resume"
@@ -905,6 +1001,10 @@ msgstr "Reactive Resume କୁ ଦାନ କରନ୍ତୁ"
msgid "Download"
msgstr "ଡାଉନଲୋଡ୍"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume as a Word document. Use this file to further customize your resume in Microsoft Word or Google Docs."
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Download a copy of your resume in JSON format. Use this file for backup or to import your resume into other applications, including AI assistants."
msgstr "JSON ଫର୍ମାଟ୍‌ରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେର ଗୋଟିଏ ନକଲି ଡାଉନଲୋଡ୍ କରନ୍ତୁ। ଏହି ଫାଇଲ୍‌କୁ ବ୍ୟାକଅପ୍ ପାଇଁ କିମ୍ବା AI ସହାୟକମାନଙ୍କୁ ସହିତ ସହ ଅନ୍ୟ ଆପ୍ଲିକେସନ୍‌ଗୁଡିକୁ ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଆୟାତ କରିବାକୁ ବ୍ୟବହାର କରନ୍ତୁ।"
@@ -913,6 +1013,10 @@ msgstr "JSON ଫର୍ମାଟ୍‌ରେ ଆପଣଙ୍କ ରେଜ୍ୟ
msgid "Download a copy of your resume in PDF format. Use this file for printing or to easily share your resume with recruiters."
msgstr "PDF ଫର୍ମାଟ୍‌ରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେର ଗୋଟିଏ ନକଲି ଡାଉନଲୋଡ୍ କରନ୍ତୁ। ଏହି ଫାଇଲ୍‌କୁ ପ୍ରିଣ୍ଟ କରିବାକୁ କିମ୍ବା ନିଯୁକ୍ତିକାରୀମାନଙ୍କ ସହ ସହଜରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ସେୟାର କରିବା ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ।"
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download DOCX"
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
msgid "Download JSON"
msgstr "JSON ଡାଉନଲୋଡ୍ କରନ୍ତୁ"
@@ -958,8 +1062,16 @@ msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ନକଲ ହେଉଛି...
msgid "Dutch"
msgstr "ଡଚ୍"
#: src/components/ai/chat.tsx
msgid "e.g. Change my name to..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 150000"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "e.g. 50000"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "e.g. frontend developer jobs in Berlin"
msgstr ""
#: src/dialogs/resume/sections/custom.tsx
@@ -1013,7 +1125,7 @@ msgstr "ଇଂରାଜୀ"
#: src/utils/locale.ts
msgid "English (United Kingdom)"
msgstr ""
msgstr "ଇଂରାଜୀ (ଯୁକ୍ତରାଜ୍ୟ)"
#: src/routes/_home/-sections/features.tsx
msgid "Enhance the security of your account with additional layers of protection."
@@ -1043,6 +1155,10 @@ msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ
msgid "Enter your password to disable two-factor authentication. Your account will be less secure without 2FA enabled."
msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ ଅସକ୍ରିୟ କରିବା ପାଇଁ ଆପଣଙ୍କ ପାସୱାର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ। 2FA ସକ୍ରିୟ ନ ଥିଲେ ଆପଣଙ୍କ ଆକାଉଣ୍ଟ କମ୍ ସୁରକ୍ଷିତ ହେବ।"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Enter your RapidAPI key"
msgstr ""
#: src/routes/_home/-sections/donate.tsx
msgid "Every contribution, big or small, makes a huge difference to the project.<0/>Thank you for your support!"
msgstr "ପ୍ରତ୍ୟେକ ଅବଦାନ, ବଡ଼ କିମ୍ବା ଛୋଟ, ପ୍ରକଳ୍ପ ପାଇଁ ବିଶେଷ ପରିବର୍ତ୍ତନ ଆଣେ।<0/>ଆପଣଙ୍କ ସମର୍ଥନ ପାଇଁ ଧନ୍ୟବାଦ!"
@@ -1055,11 +1171,24 @@ 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/components/input/rich-input.tsx
msgid "Exit Fullscreen"
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Exclude {value}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Companies"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Exclude Keywords"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Exit Fullscreen"
msgstr "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରୁ ବାହାରକୁ ଆସନ୍ତୁ"
#: src/dialogs/resume/sections/custom.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/utils/resume/section.tsx
msgid "Experience"
msgstr "ଅନୁଭବ"
@@ -1085,12 +1214,20 @@ msgstr "Reactive Resume କୁ ଆପଣଙ୍କ ଆପ୍ଲିକେସନ୍
msgid "Export"
msgstr "ନିର୍ଯ୍ୟାତ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to duplicate resume"
msgstr ""
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Failed to setup two-factor authentication."
msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ ସେଟ୍‌ଆପ୍ କରିବାରେ ବିଫଳ ହେଲା।"
#: src/routes/auth/login.tsx
msgid "Failed to sign in. Please try again."
msgstr "ସାଇନ୍ ଇନ୍ ବିଫଳ ହେଲା। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Failed to sync skills"
msgstr ""
#: src/routes/_home/-sections/features.tsx
@@ -1172,9 +1309,13 @@ msgstr "ଫ୍ରେଞ୍ଚ୍"
msgid "Full Width"
msgstr "ପୁରା ପ୍ରସ୍ଥ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Full-time"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Fullscreen"
msgstr ""
msgstr "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ"
#: src/dialogs/resume/index.tsx
msgid "Generate a random name"
@@ -1188,6 +1329,10 @@ msgstr "ଜର୍ମାନ୍"
msgid "Get Started"
msgstr "ଆରମ୍ଭ କରନ୍ତୁ"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Get your API key from RapidAPI by subscribing to the JSearch API."
msgstr ""
#: src/components/layout/not-found-screen.tsx
#: src/routes/auth/verify-2fa-backup.tsx
msgid "Go Back"
@@ -1197,6 +1342,10 @@ msgstr "ପଛକୁ ଯାଆନ୍ତୁ"
msgid "Go to dashboard"
msgstr "ଡ୍ୟାଶବୋର୍ଡକୁ ଯାଆନ୍ତୁ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Go to Settings"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
msgid "Go to..."
msgstr "ଯାଆନ୍ତୁ..."
@@ -1338,6 +1487,10 @@ msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଆୟାତ ହେଉଛି
msgid "Importing..."
msgstr "ଆୟାତ ହେଉଛି..."
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Include Keywords"
msgstr ""
#: src/utils/locale.ts
msgid "Indonesian"
msgstr "ଇଣ୍ଡୋନେସିଆନ୍"
@@ -1359,6 +1512,10 @@ msgstr "ଟେବୁଲ୍ ଲଗାନ୍ତୁ"
msgid "Interests"
msgstr "ରୁଚିଗୁଡିକ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Intern"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "Is Reactive Resume available in multiple languages?"
msgstr "Reactive Resume କି ଅନେକ ଭାଷାରେ ଉପଲବ୍ଧ?"
@@ -1383,6 +1540,24 @@ msgstr "ଇଟାଲିକ୍"
msgid "Japanese"
msgstr "ଜାପାନୀ"
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Job Search"
msgstr ""
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Job Search API"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch aggregates job listings from multiple job boards using Google for Jobs. You can filter by country (ISO alpha-2 code), date posted, job type, remote options, and experience level."
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "JSearch API Documentation"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Justify Align"
msgstr "ଜଷ୍ଟିଫାଇ ସଙ୍ଗୁଯୋଗ"
@@ -1425,6 +1600,10 @@ msgstr "ଭାଷା"
msgid "Languages"
msgstr "ଭାଷାଗୁଡିକ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Last 3 days"
msgstr ""
#. placeholder {0}: statistics.lastDownloadedAt.toDateString()
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Last downloaded on {0}"
@@ -1458,7 +1637,7 @@ msgstr "ଏହି ପୃଷ୍ଠାରେ ବିଷୟବସ୍ତୁ କିପ
#: src/hooks/use-form-blocker.tsx
msgid "Leave"
msgstr ""
msgstr "ଛାଡ଼ନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
msgid "Leave empty to reset the title to the original."
@@ -1573,10 +1752,22 @@ msgstr "ମାର୍ଜିନ୍ (ଅନୁପ୍ରାସ୍ଥିତ)"
msgid "Margin (Vertical)"
msgstr "ମାର୍ଜିନ୍ (ଉର୍ଦ୍ଧ୍ୱାଧର)"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Maximum Salary"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Minimum Salary"
msgstr ""
#: src/routes/dashboard/settings/ai.tsx
msgid "Model"
msgstr "ମଡେଲ୍"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "More than 3 years"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
msgid "Move to"
msgstr "ଏଠାକୁ ସଞ୍ଚାଳନ କରନ୍ତୁ"
@@ -1626,14 +1817,38 @@ msgstr "ନୂତନ ପାସୱାର୍ଡ"
msgid "New Section"
msgstr "ନୂତନ ବିଭାଗ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "New Skills Detected"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "Next"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "No Advertising, No Tracking"
msgstr "ବିଜ୍ଞାପନ ନାହିଁ, ଟ୍ରାକିଂ ନାହିଁ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No degree required"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "No experience"
msgstr ""
#: src/routes/dashboard/job-search/index.tsx
msgid "No jobs found. Try a different search query."
msgstr ""
#: src/components/ui/combobox.tsx
msgid "No results found."
msgstr "କୌଣସି ଫଳାଫଳ ମିଳିଲା ନାହିଁ।"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "No resumes found. Create a resume first."
msgstr ""
#: src/utils/locale.ts
msgid "Norwegian"
msgstr "ନରୱେଜିଆନ୍"
@@ -1674,6 +1889,11 @@ msgstr "ଖୋଲା‑ମୂଳ"
msgid "opens in new tab"
msgstr "ନୂତନ ଟାବ୍‌ରେ ଖୋଲେ"
#. placeholder {0}: job.job_title
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Optimizing summary, experience, and skills for {0}"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Optionally, set a password so that only people with the password can view your resume through the link."
msgstr "ଇଚ୍ଛାକୃତ ଭାବେ, ଏକ ପାସୱାର୍ଡ ସେଟ୍ କରନ୍ତୁ ଯାହାଦ୍ୱାରା କେବଳ ପାସୱାର୍ଡ ଥିବା ଲୋକମାନେ ଲିଙ୍କ ମାଧ୍ୟମରେ ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ଦେଖିପାରିବେ।"
@@ -1693,11 +1913,11 @@ msgstr "ସଂଗଠନ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Period"
msgstr ""
msgstr "ସାମଗ୍ରିକ ସମୟସୀମା"
#: src/dialogs/resume/sections/experience.tsx
msgid "Overall Title (optional)"
msgstr ""
msgstr "ସାମଗ୍ରିକ ଶୀର୍ଷକ (ଐଚ୍ଛିକ)"
#: src/utils/resume/section.tsx
msgid "Page"
@@ -1709,6 +1929,10 @@ msgstr "ପେଜ୍"
msgid "Page {0}"
msgstr "ପେଜ୍ {0}"
#: src/routes/dashboard/job-search/index.tsx
msgid "Page {currentPage}"
msgstr ""
#: src/components/resume/preview.tsx
msgid "Page {pageNumber} of {totalNumberOfPages}"
msgstr "ପେଜ୍ {totalNumberOfPages} ରୁ {pageNumber}"
@@ -1717,6 +1941,10 @@ msgstr "ପେଜ୍ {totalNumberOfPages} ରୁ {pageNumber}"
msgid "Paragraph"
msgstr "ଅନୁଚ୍ଛେଦ"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Part-time"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "ପାସକି ଏବଂ 2FA"
@@ -1822,6 +2050,10 @@ msgstr "ପସନ୍ଦ"
msgid "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the current keyword."
msgstr "ଏହି କୀୱାର୍ଡ ଯୋଡ଼ିବା କିମ୍ବା ସଂରକ୍ଷଣ କରିବା ପାଇଁ <0>{RETURN_KEY}</0> କିମ୍ବା <1>{COMMA_KEY}</1> ଦବାନ୍ତୁ।"
#: src/routes/dashboard/job-search/index.tsx
msgid "Previous"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
msgid "Primary Color"
msgstr "ମୁଖ୍ୟ ରଙ୍ଗ"
@@ -1872,6 +2104,15 @@ msgstr "ପ୍ରକାଶନଗୁଡିକ"
msgid "Publisher"
msgstr "ପ୍ରକାଶକ"
#. placeholder {0}: quota.remaining
#: src/routes/dashboard/job-search/index.tsx
msgid "Quota: {0} remaining"
msgstr ""
#: src/routes/dashboard/settings/job-search.tsx
msgid "RapidAPI Key"
msgstr ""
#: src/routes/_home/-sections/header.tsx
msgid "Reactive Resume - Go to homepage"
msgstr "Reactive Resume - ହୋମ୍ପେଜ୍‌କୁ ଯାଆନ୍ତୁ"
@@ -1898,7 +2139,7 @@ msgstr "Reactive Resume ଖୋଲା‑ମୂଳ, ଗୋପନୀୟତା‑କ
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Recipient"
msgstr ""
msgstr "ପ୍ରାପ୍ତକର୍ତ୍ତା"
#: src/components/level/combobox.tsx
msgid "Rectangle"
@@ -1924,20 +2165,26 @@ msgstr "ରିଫ୍ରେଶ କରନ୍ତୁ"
#: src/routes/auth/forgot-password.tsx
msgid "Remember your password? <0/>"
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ମନେ ଅଛି? <0/>"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Remote"
msgstr ""
#: src/routes/dashboard/job-search/-components/use-job-search.ts
msgid "Remote only"
msgstr ""
#: src/dialogs/resume/sections/experience.tsx
msgid "Remove"
msgstr ""
msgstr "ବାହାର କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Remove Password"
msgstr "ପାସୱାର୍ଡ ଅପସାରଣ କରନ୍ତୁ"
#: src/components/ai/chat.tsx
msgid "Removed"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Removing password protection..."
msgstr "ପାସୱାର୍ଡ ସୁରକ୍ଷା ଅପସାରଣ ହେଉଛି..."
@@ -1948,7 +2195,7 @@ msgstr "ପୁନଃନାମକରଣ କରନ୍ତୁ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Reorder"
msgstr ""
msgstr "ପୁନଃକ୍ରମ କରନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
msgid "Report a Bug"
@@ -1958,6 +2205,10 @@ msgstr "ଗୋଟିଏ ବଗ୍ ରିପୋର୍ଟ କରନ୍ତୁ"
msgid "Report an issue"
msgstr "ଏକ ସମସ୍ୟା ରିପୋର୍ଟ କରନ୍ତୁ"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
msgid "Required Skills"
msgstr ""
#: src/routes/dashboard/settings/profile.tsx
msgid "Resend verification email"
msgstr "ସତ୍ୟାପନ ଇମେଲ୍ ପୁନଃପଠାନ୍ତୁ"
@@ -1967,6 +2218,7 @@ msgid "Resending verification email..."
msgstr "ସତ୍ୟାପନ ଇମେଲ୍ ପୁନଃ ପଠାଯାଉଛି..."
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Reset"
msgstr "ରିସେଟ୍ କରନ୍ତୁ"
@@ -1986,6 +2238,12 @@ msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ରିସେଟ୍ ହେଉ
msgid "Resources"
msgstr "ସମ୍ପଦ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Resume tailored successfully"
msgstr ""
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/navigation.tsx
#: src/components/command-palette/pages/resumes.tsx
@@ -1997,13 +2255,17 @@ msgstr "ସମ୍ପଦ"
msgid "Resumes"
msgstr "ରେଜ୍ୟୁମେଗୁଡିକ"
#: src/routes/dashboard/job-search/index.tsx
msgid "Retry"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Right Align"
msgstr "ଡାହାଣ ସଙ୍ଗୁଯୋଗ"
#: src/dialogs/resume/sections/experience.tsx
msgid "Role Progression"
msgstr ""
msgstr "ଭୂମିକା ପ୍ରଗତି"
#: src/utils/locale.ts
msgid "Romanian"
@@ -2017,6 +2279,11 @@ msgstr "ଘୁର୍ଣ୍ଣନ"
msgid "Russian"
msgstr "ରୁଷିଆନ୍"
#. placeholder {0}: selectedSkills.size
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Save {0} Skills"
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/sections/award.tsx
#: src/dialogs/resume/sections/certification.tsx
@@ -2045,6 +2312,15 @@ msgstr "ତଳେ ଥିବା QR କୋଡ୍‌ଟିକୁ ଆପଣଙ୍କ
msgid "School"
msgstr "ବିଦ୍ୟାଳୟ"
#: src/routes/dashboard/job-search/index.tsx
#: src/routes/dashboard/job-search/index.tsx
msgid "Search"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Search countries"
msgstr ""
#: src/components/input/icon-picker.tsx
#: src/components/input/icon-picker.tsx
msgid "Search for an icon"
@@ -2056,7 +2332,7 @@ msgstr "ଖୋଜନ୍ତୁ..."
#: src/components/ui/combobox.tsx
msgid "Search..."
msgstr ""
msgstr "ଖୋଜନ୍ତୁ..."
#: src/dialogs/auth/enable-two-factor.tsx
msgid "Secret copied to clipboard."
@@ -2066,9 +2342,20 @@ msgstr "ଗୁପ୍ତ ସଙ୍କେତ କ୍ଲିପ୍‌ବୋର୍ଡ
msgid "Section Type"
msgstr "ବିଭାଗ ପ୍ରକାର"
#. placeholder {0}: job.job_title
#. placeholder {1}: job.employer_name
#. placeholder {2}: aiEnabled ? " and the AI will optimize it for this position." : "."
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Select a resume to tailor for \"{0}\" at {1}. A copy will be created{2}"
msgstr ""
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Select country"
msgstr ""
#: src/components/ui/combobox.tsx
msgid "Select..."
msgstr ""
msgstr "ବାଛନ୍ତୁ..."
#: src/routes/_home/-sections/features.tsx
msgid "Self-Host with Docker"
@@ -2139,7 +2426,7 @@ msgstr "ଦେଖାନ୍ତୁ"
#: src/dialogs/resume/sections/reference.tsx
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Show link in title"
msgstr ""
msgstr "ଶୀର୍ଷକରେ ଲିଙ୍କ ଦେଖାନ୍ତୁ"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Sidebar"
@@ -2204,6 +2491,10 @@ msgstr "ଆକାର"
msgid "Skills"
msgstr "କୌଶଳଗୁଡିକ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Skip"
msgstr ""
#: src/routes/_home/route.tsx
msgid "Skip to main content"
msgstr "ମୁଖ୍ୟ ବିଷୟବସ୍ତୁକୁ ଏଡ଼ାଇ ଯାଆନ୍ତୁ"
@@ -2212,6 +2503,10 @@ msgstr "ମୁଖ୍ୟ ବିଷୟବସ୍ତୁକୁ ଏଡ଼ାଇ ଯା
msgid "Slovak"
msgstr "ସ୍ଲୋଭାକ୍"
#: src/utils/locale.ts
msgid "Slovenian"
msgstr ""
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "ସ୍ଲଗ୍"
@@ -2280,7 +2575,7 @@ msgstr "ସଂଖ୍ୟାତ୍ମକ ତଥ୍ୟ"
#: src/hooks/use-form-blocker.tsx
msgid "Stay"
msgstr ""
msgstr "ରୁହନ୍ତୁ"
#: src/components/input/rich-input.tsx
msgid "Strike"
@@ -2327,6 +2622,19 @@ msgstr "ଟ୍ୟାଗଗୁଡିକ"
msgid "Tags can be used to categorize your resume by keywords."
msgstr "ଟ୍ୟାଗଗୁଡିକୁ ଆପଣଙ୍କ ରେଜ୍ୟୁମେକୁ କୀୱାର୍ଡ ଦ୍ୱାରା ବର୍ଗୀକୃତ କରିବାକୁ ବ୍ୟବହାର କରିହୋଇପାରେ।"
#: src/routes/dashboard/job-search/-components/job-detail.tsx
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailor Resume"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring failed"
msgstr ""
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "Tailoring your resume..."
msgstr ""
#: src/utils/locale.ts
msgid "Tamil"
msgstr "ତାମିଲ"
@@ -2348,6 +2656,7 @@ msgid "Templates"
msgstr "ଟେମ୍ପ୍ଲେଟ୍‌ଗୁଡିକ"
#: src/routes/dashboard/settings/ai.tsx
#: src/routes/dashboard/settings/job-search.tsx
msgid "Test Connection"
msgstr "ସଂଯୋଗ ପରୀକ୍ଷା କରନ୍ତୁ"
@@ -2363,6 +2672,10 @@ msgstr "ପାଠ୍ୟ ରଙ୍ଗ"
msgid "Thai"
msgstr "ଥାଇ"
#: src/routes/dashboard/job-search/-components/tailor-dialog.tsx
msgid "The AI identified new skills from your experience that match this job. Select which ones to save back to your original resume for future applications. This will permanently modify your original resume and cannot be undone."
msgstr ""
#: src/routes/dashboard/settings/api-keys.tsx
msgid "The API key has been deleted successfully."
msgstr "API କି ସଫଳତାର ସହ ବିଲୋପ କରାଯାଇଛି।"
@@ -2401,15 +2714,16 @@ msgstr "ଥିମ୍"
msgid "Then, enter the 6 digit code that the app provides to continue."
msgstr "ତାପରେ, ଆଗକୁ ବଢ଼ିବା ପାଇଁ ଆପ୍ ଯାହା 6 ଅଙ୍କର କୋଡ୍ ଯୋଗାଇ ଦେଉଛି ସେଥିରେ ପ୍ରବେଶ କରନ୍ତୁ।"
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the DOCX, please try again."
msgstr ""
#: src/routes/builder/$resumeId/-components/dock.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "There was a problem while generating the PDF, please try again in some time."
msgstr "PDF ସୃଷ୍ଟି କରୁଥିବା ସମୟରେ ସମସ୍ୟା ହୋଇଛି, ଦୟାକରି କିଛି ସମୟ ପରେ ପୁନଃ ଚେଷ୍ଟା କରନ୍ତୁ।"
#: src/components/ai/chat.tsx
msgid "Thinking..."
msgstr ""
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/context-menu.tsx
#: src/routes/dashboard/resumes/-components/menus/dropdown-menu.tsx
@@ -2438,6 +2752,10 @@ msgstr "AI ପ୍ରଦାନକାରୀଙ୍କ ପ୍ରତିକ୍ରି
msgid "This may take a while depending on the server capacity. Please do not close the window or refresh the page."
msgstr "ସର୍ଭରର କ୍ଷମତା ଉପରେ ନିର୍ଭର କରି, ଏହାକୁ କିଛି ସମୟ ଲାଗିପାରେ। ଦୟାକରି ଉଇଣ୍ଡୋଟିକୁ ବନ୍ଦ କରନ୍ତୁ ନାହିଁ କିମ୍ବା ପେଜ୍‌ଟିକୁ ରିଫ୍ରେଶ କରନ୍ତୁ ନାହିଁ।"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This month"
msgstr ""
#: src/components/resume/store/resume.ts
msgid "This resume is locked and cannot be updated."
msgstr "ଏହି ରେଜ୍ୟୁମେଟି ଲକ୍ ହୋଇଛି ଏବଂ ଅଦ୍ୟତନ କରିହୋଇପାରିବ ନାହିଁ।"
@@ -2450,6 +2768,10 @@ msgstr "ଏହି ବିଭାଗଟି ଏହି ରେଜ୍ୟୁମେ ସ
msgid "This step is optional, but recommended."
msgstr "ଏହି ପର୍ଯ୍ୟାୟ ଇଚ୍ଛାକୃତ, କିନ୍ତୁ ସୁପାରିସ୍ କରାଯାଇଛି।"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "This week"
msgstr ""
#: src/dialogs/api-key/create.tsx
msgid "This will generate a new API key to access the Reactive Resume API to allow machines to interact with your resume data."
msgstr "ଏହାReactive Resume API କୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଏକ ନୂତନ API କି ସୃଷ୍ଟି କରିବ, ଯାହା ଯନ୍ତ୍ରଗୁଡିକୁ ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ତଥ୍ୟ ସହ ଓହ୍ଲାହଲା କରିବାକୁ ଅନୁମତି ଦେଉଛି।"
@@ -2477,6 +2799,15 @@ msgstr "ଶିରୋନାମା"
msgid "To delete your account, you need to enter the confirmation text and click the button below."
msgstr "ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ବିଲୋପ କରିବା ପାଇଁ, ଆପଣକୁ ନିଶ୍ଚିତିକରଣ ପାଠ୍ୟ ପ୍ରବେଶ କରି ତଳେ ଥିବା ବଟନ୍‌କୁ କ୍ଲିକ୍ କରିବାକୁ ପଡିବ।"
#: src/routes/dashboard/job-search/index.tsx
msgid "To search for job listings, you need to configure your RapidAPI key in settings."
msgstr ""
#: src/routes/dashboard/job-search/-components/job-utils.ts
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Today"
msgstr ""
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେର ଦେଖାଗଲା ଏବଂ ଡାଉନଲୋଡ୍‌ଗୁଡିକୁ ଟ୍ରାକ୍ କରନ୍ତୁ"
@@ -2545,6 +2876,7 @@ msgstr "ଦ୍ୱି-ଘଟକ ପରିଚୟ ପ୍ରମାଣିକରଣ
#: src/dialogs/resume/import.tsx
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Type"
msgstr "ପ୍ରକାର"
@@ -2564,6 +2896,10 @@ msgstr "ଟାଇପୋଗ୍ରାଫି"
msgid "Ukrainian"
msgstr "ୟୁକ୍ରେନିଆନ୍"
#: src/routes/dashboard/job-search/-components/search-filters.tsx
msgid "Under 3 years"
msgstr ""
#: src/components/input/rich-input.tsx
msgid "Underline"
msgstr "ଅଣ୍ଡର୍ଲାଇନ୍"
@@ -2610,7 +2946,7 @@ msgstr "ଏକ ଅବସ୍ଥିତ ପ୍ରମାଣପତ୍ରକୁ ଅଦ
#: src/dialogs/resume/sections/cover-letter.tsx
msgid "Update an existing cover letter"
msgstr ""
msgstr "ବିଦ୍ୟମାନ କଭର ଲେଟର ଅପଡେଟ୍ କରନ୍ତୁ"
#: src/dialogs/resume/sections/custom.tsx
msgid "Update an existing custom section"
@@ -2654,7 +2990,7 @@ msgstr "ଏକ ଅବସ୍ଥିତ କୌଶଳକୁ ଅଦ୍ୟତନ କ
#: src/dialogs/resume/sections/summary-item.tsx
msgid "Update an existing summary item"
msgstr ""
msgstr "ବିଦ୍ୟମାନ ସାରାଂଶ ଆଇଟମ୍ ଅପଡେଟ୍ କରନ୍ତୁ"
#: src/dialogs/resume/sections/volunteer.tsx
msgid "Update an existing volunteer experience"
@@ -2673,10 +3009,6 @@ msgstr "ରେଜ୍ୟୁମେ ଅଦ୍ୟତନ କରନ୍ତୁ"
msgid "Update your password"
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ଅଦ୍ୟତନ କରନ୍ତୁ"
#: src/components/ai/chat.tsx
msgid "Updated"
msgstr ""
#: src/dialogs/auth/change-password.tsx
msgid "Updating your password..."
msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ଅଦ୍ୟତନ ହେଉଛି..."
@@ -2771,6 +3103,10 @@ msgstr "ୱେବସାଇଟ୍"
msgid "What do you want to rename this section to?"
msgstr "ଏହି ବିଭାଗଟିକୁ କ’ଣ ନୂତନ ନାମ ଦେବାକୁ ଆପଣ ଚାହାଁନ୍ତି?"
#: src/routes/dashboard/settings/job-search.tsx
msgid "What is JSearch API?"
msgstr ""
#: src/routes/_home/-sections/faq.tsx
msgid "What makes Reactive Resume different from other resume builders?"
msgstr "Reactive Resume ଅନ୍ୟ ରେଜ୍ୟୁମେ ବିଲ୍ଡରଗୁଡିକଠୁ କଣ ଭିନ୍ନ କରେ?"
@@ -2801,6 +3137,10 @@ msgstr "ହଁ! ପ୍ରତ୍ୟେକ ଟେମ୍ପ୍ଲେଟ୍ ପ୍
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 ସଂପୂର୍ଣ୍ଣ ଭାବରେ ନିଶୁଳ୍କ, କୌଣସି ଲୁଚା ଖର୍ଚ୍ଚ, ପ୍ରିମିୟମ ସ୍ତର କିମ୍ବା ସବ୍ସକ୍ରିପ୍ସନ୍ ଶୁଳ୍କ ନାହିଁ। ଏହା ଖୋଲା‑ମୂଳ ଏବଂ ସଦା ପାଇଁ ନିଶୁଳ୍କ ରହିବ।"
#: src/routes/dashboard/job-search/-components/job-utils.ts
msgid "Yesterday"
msgstr ""
#: src/routes/_home/-sections/features.tsx
msgid "You also have the option to deploy on your own servers using the Docker image."
msgstr "ଆପଣ ମଧ୍ୟ Docker ଇମେଜ୍ ବ୍ୟବହାର କରି ଆପଣଙ୍କ ନିଜ ସର୍ଭରଗୁଡିକରେ ଡିପ୍ଲଏ କରିବାକୁ ବିକଳ୍ପ ରଖିଛନ୍ତି।"
@@ -2815,7 +3155,7 @@ msgstr "ଆପଣ ଏକ ଅଦ୍ୱିତୀୟ ସାର୍ବଜନିକ UR
#: src/hooks/use-form-blocker.tsx
msgid "You have unsaved changes that will be lost."
msgstr ""
msgstr "ଆପଣଙ୍କର ସଞ୍ଚୟ ନହୋଇଥିବା ପରିବର୍ତ୍ତନ ହରାଇ ଯିବ।"
#: src/routes/auth/forgot-password.tsx
#: src/routes/auth/register.tsx
@@ -2858,6 +3198,10 @@ msgstr "ଆପଣଙ୍କ ପାସୱାର୍ଡ ସଫଳତାର ସହ
msgid "Your profile has been updated successfully."
msgstr "ଆପଣଙ୍କ ପ୍ରୋଫାଇଲ୍ ସଫଳତାର ସହ ଅଦ୍ୟତନ କରାଯାଇଛି।"
#: src/routes/dashboard/settings/job-search.tsx
msgid "Your RapidAPI key is stored locally on your browser. It is only sent to the server when making a request to search for jobs, and is never stored or logged on our servers."
msgstr ""
#: src/dialogs/resume/index.tsx
#: src/dialogs/resume/index.tsx
msgid "Your resume has been created successfully."
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff
+403 -59
View File
File diff suppressed because it is too large Load Diff

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