mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-09-30 08:44:31 +10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa7af040fb | ||
|
|
5f63dc876b | ||
|
|
014ceee31f | ||
|
|
70dff5bf49 | ||
|
|
c5787fe155 | ||
|
|
286e165a60 | ||
|
|
00dafd0c68 | ||
|
|
d251d602fb | ||
|
|
e35ff83911 | ||
|
|
62b0a1d533 | ||
|
|
0a8fe05653 | ||
|
|
de7baa5faf | ||
|
|
48555f58e5 | ||
|
|
0daf868cd4 | ||
|
|
e574d4005f | ||
|
|
fda4e500b3 | ||
|
|
adfc9b527b | ||
|
|
71aadbd73d | ||
|
|
0713cf20d4 | ||
|
|
334ea48bc7 | ||
|
|
69c23211a0 | ||
|
|
143aaa741b | ||
|
|
e4cc6a8e57 | ||
|
|
92a0e3ddb8 | ||
|
|
4ebe9e5a67 | ||
|
|
0abee1048c | ||
|
|
83a407bc10 | ||
|
|
02973a1eb1 | ||
|
|
2e04e71f4a | ||
|
|
978cbaf1f3 | ||
|
|
3cd228bd84 | ||
|
|
64ac3ff328 | ||
|
|
846b7856a7 | ||
|
|
7a60a42a04 | ||
|
|
b0de64ad13 | ||
|
|
b321e01658 | ||
|
|
6a01207b6b | ||
|
|
2f6a8904e4 | ||
|
|
56c9eb2ff4 | ||
|
|
33103536ae | ||
|
|
a93e7bd190 | ||
|
|
4cd4b8c193 | ||
|
|
be9285aa33 | ||
|
|
6787175a8a | ||
|
|
42e83cc676 | ||
|
|
62f4532157 | ||
|
|
fabe22089d | ||
|
|
fa38f3e84a | ||
|
|
0606e0072b | ||
|
|
bdfb854602 | ||
|
|
05f094bd13 | ||
|
|
d1c301de83 | ||
|
|
e42af3cd04 | ||
|
|
f3375adecb | ||
|
|
d9e3289f69 | ||
|
|
7c08007a9d | ||
|
|
296f7951ec | ||
|
|
bf1a540fd1 | ||
|
|
e4a574ccd0 | ||
|
|
26ca5c29c3 | ||
|
|
2cd774dab7 | ||
|
|
9cbb30d3ba | ||
|
|
ed42f181ca | ||
|
|
21cadd76fe | ||
|
|
4c771307e0 | ||
|
|
6d54ffa88b | ||
|
|
5042ad9d1f | ||
|
|
3b82aa90f3 | ||
|
|
524a7a6f4e | ||
|
|
36a16f6483 | ||
|
|
e320f3a920 | ||
|
|
d5891ff035 | ||
|
|
891ce60270 | ||
|
|
1b0bb067b6 | ||
|
|
2b3af1f7b7 | ||
|
|
ced765e229 | ||
|
|
023cb4a594 |
+5
-2
@@ -63,8 +63,11 @@ SMTP_FROM="Reactive Resume <noreply@rxresu.me>"
|
||||
SMTP_SECURE="false"
|
||||
|
||||
# --- Storage (optional) ---
|
||||
# If all keys are disabled, the app uses local filesystem (/data) to store uploads instead.
|
||||
# If all S3 keys are disabled, the app uses local filesystem storage instead.
|
||||
# Make sure to mount this directory to a volume or the host filesystem to ensure data integrity.
|
||||
# LOCAL_STORAGE_PATH overrides where local uploads/cache are written.
|
||||
# Defaults to /app/data in the official Docker image; in dev, defaults to <workspace>/data.
|
||||
# LOCAL_STORAGE_PATH="/app/data"
|
||||
|
||||
# Seaweedfs
|
||||
S3_ACCESS_KEY_ID="seaweedfs"
|
||||
@@ -95,4 +98,4 @@ GOOGLE_CLOUD_API_KEY=""
|
||||
# Crowdin (optional)
|
||||
# For translation tooling.
|
||||
CROWDIN_PROJECT_ID=""
|
||||
CROWDIN_API_TOKEN=""
|
||||
CROWDIN_PERSONAL_TOKEN=""
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
"guid": "open-collective",
|
||||
"type": "payment-provider",
|
||||
"description": "Open Collective",
|
||||
"address": "https://opencollective.com/reactive-resume"
|
||||
"address": "https://opencollective.com/reactive-resume/donate"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ body:
|
||||
- Onyx
|
||||
- Pikachu
|
||||
- Rhyhorn
|
||||
- Scizor
|
||||
validations:
|
||||
required: false
|
||||
|
||||
|
||||
+5
-2
@@ -46,6 +46,9 @@ temp
|
||||
.codex
|
||||
.claude
|
||||
.cursor
|
||||
.superpowers
|
||||
docs/superpowers
|
||||
|
||||
# Data
|
||||
apps/web/data
|
||||
# Local Storage Data
|
||||
/data
|
||||
/apps/web/data
|
||||
|
||||
@@ -0,0 +1,332 @@
|
||||
<!-- refreshed: 2026-05-11 -->
|
||||
# Architecture
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
## System Overview
|
||||
|
||||
Reactive Resume is a single full-stack web application running as one Node.js process on port 3000. The web app is a TanStack Start application (Vite + React 19 + Nitro server) packaged in a pnpm/Turborepo monorepo. All API surface area, server-side rendering, file uploads, OAuth, OpenAPI, MCP, and PWA assets are served from the same process. Internal packages are consumed as TypeScript source through `package.json` `exports` maps that point directly at `src` files; there is no per-package `dist` output to depend on.
|
||||
|
||||
```text
|
||||
┌────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Browser (React 19) │
|
||||
│ TanStack Router · TanStack Query · Zustand stores · React PDF view │
|
||||
│ `apps/web/src/router.tsx` · `apps/web/src/routes/__root.tsx` │
|
||||
└──────────┬─────────────────────────────────────────────────────┬───────────┘
|
||||
│ HTTP / SSR hydration │ /api/rpc (RPCLink)
|
||||
▼ ▼
|
||||
┌────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Nitro server entry (TanStack Start) │
|
||||
│ `apps/web/src/server.ts` · Nitro plugins (`apps/web/plugins/`) │
|
||||
├──────────────────────────┬─────────────────────────────────────────────────┤
|
||||
│ File-based routes │ Route `server.handlers` blocks │
|
||||
│ `apps/web/src/routes/*` │ `api/rpc.$.ts` · `api/auth.$.ts` · `api/health.ts`│
|
||||
│ │ `api/openapi.$.ts` · `api/uploads/$userId.$.ts`│
|
||||
│ │ `mcp/index.ts` · `[.]well-known/*` · `schema.json.ts`│
|
||||
└──────────┬───────────────┴──────────────────────────────┬─────────────────┘
|
||||
│ in-process router client │ HTTP handler
|
||||
▼ ▼
|
||||
┌────────────────────────────────────────────────────────────────────────────┐
|
||||
│ oRPC routers │
|
||||
│ `packages/api/src/routers/{ai,auth,flags,resume,statistics,storage}.ts` │
|
||||
│ Procedures: `publicProcedure` / `protectedProcedure` │
|
||||
│ Middleware: `packages/api/src/middleware/rate-limit/index.ts` │
|
||||
└──────────┬─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Services & helpers │
|
||||
│ `packages/api/src/services/{resume,ai,auth,storage,flags,statistics}.ts` │
|
||||
│ `packages/api/src/helpers/{resume-access,resume-access-policy}.ts` │
|
||||
│ `packages/api/src/services/resume-events.ts` (Postgres LISTEN/NOTIFY) │
|
||||
│ `packages/auth/src/config.ts` (Better Auth) │
|
||||
└──────────┬──────────────────────────────────────┬──────────────────────────┘
|
||||
│ Drizzle ORM │ S3 / local FS
|
||||
▼ ▼
|
||||
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
|
||||
│ PostgreSQL (via `pg`) │ │ Storage (S3 or `<workspace>/data`)│
|
||||
│ `packages/db/src/client.ts` │ │ `packages/api/src/services/storage.ts`│
|
||||
│ schema: `packages/db/src/schema/*`│ │ served by `routes/uploads/$userId.$.tsx`│
|
||||
│ migrations: `migrations/` │ └──────────────────────────────────┘
|
||||
└──────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Component Responsibilities
|
||||
|
||||
| Component | Responsibility | File |
|
||||
|-----------|----------------|------|
|
||||
| Web app shell | TanStack Start app, route tree, SSR/CSR boundary, PWA, builder UI | `apps/web/src/router.tsx`, `apps/web/src/routes/__root.tsx` |
|
||||
| Server entry | Nitro fetch handler wrapping `react-start/server-entry` | `apps/web/src/server.ts` |
|
||||
| Migration plugin | Walks up to repo root, runs Drizzle migrations on boot | `apps/web/plugins/1.migrate.ts` |
|
||||
| Storage plugin | Validates `<workspace>/data` writability when S3 is unused | `apps/web/plugins/2.storage.ts` |
|
||||
| oRPC router root | Aggregates all sub-routers exposed at `/api/rpc` and OpenAPI | `packages/api/src/routers/index.ts` |
|
||||
| oRPC context | Header-based auth resolution, `publicProcedure`/`protectedProcedure` | `packages/api/src/context.ts` |
|
||||
| Resume service | CRUD, patch (RFC 6902), password, lock, statistics, analysis, events | `packages/api/src/services/resume.ts` |
|
||||
| Storage service | S3 + local FS abstraction, image processing via `sharp` | `packages/api/src/services/storage.ts` |
|
||||
| Resume access policy | Owner/viewer/redaction rules for `getBySlug` and statistics | `packages/api/src/helpers/resume-access-policy.ts` |
|
||||
| Resume events | Postgres `LISTEN/NOTIFY` channel for live updates | `packages/api/src/services/resume-events.ts` |
|
||||
| Auth | Better Auth config, OAuth provider, passkey, 2FA, API keys, JWKS | `packages/auth/src/config.ts` |
|
||||
| Database | Drizzle client singleton, schema, generated migrations | `packages/db/src/client.ts`, `packages/db/src/schema/*.ts`, `migrations/` |
|
||||
| Schema | Zod resume/page/template models shared across web + API + PDF + MCP | `packages/schema/src/resume/data.ts`, `packages/schema/src/templates.ts` |
|
||||
| PDF rendering | React PDF `Document`, font registration, 14 template implementations | `packages/pdf/src/document.tsx`, `packages/pdf/src/templates/index.ts`, `packages/pdf/src/hooks/use-register-fonts.ts` |
|
||||
| Shared UI | Base UI / shadcn-style component library and hooks | `packages/ui/src/components/*.tsx`, `packages/ui/src/hooks/*.tsx` |
|
||||
| MCP server | Model Context Protocol server backed by oRPC routers | `apps/web/src/routes/mcp/index.ts`, `apps/web/src/routes/mcp/-helpers/*` |
|
||||
|
||||
## Pattern Overview
|
||||
|
||||
**Overall:** Modular monolith. One deployable web app + a constellation of source-only TypeScript packages communicating through typed `package.json` `exports`. Browser ↔ server communication uses **oRPC** (typed RPC with REST/OpenAPI generation) instead of REST/tRPC. SSR and client share the same router/queryClient via TanStack Start.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Source-consumed workspace packages (no per-package `dist` build) keep types end-to-end.
|
||||
- The oRPC router is mounted twice: as a Fetch handler at `/api/rpc` and as an in-process `createRouterClient` for SSR/server functions, with identical types on both paths.
|
||||
- Browser-only code (React PDF preview, PDF.js, canvas) is isolated behind explicit `.browser.tsx` files and `ssr: false` / `ssr: "data-only"` route opts to keep SSR bundles small and safe.
|
||||
- Postgres is both the data store and the event bus (`pg_notify` channel `resume_updated` for live builder sync).
|
||||
- Shared concerns (auth, theme, locale, feature flags, oRPC client, query client) are loaded once and passed through TanStack Router `context` rather than fetched per-route.
|
||||
|
||||
## Layers
|
||||
|
||||
**Routes (`apps/web/src/routes/`):**
|
||||
- Purpose: File-based TanStack Router routes; some are pure UI, others embed `server.handlers` blocks that act as HTTP endpoints.
|
||||
- Location: `apps/web/src/routes/`
|
||||
- Contains: Page components, route loaders, server-only API handlers, layout wrappers.
|
||||
- Depends on: `packages/api/routers` (mounted at `/api/rpc`), `packages/auth/config` (mounted at `/api/auth`), `packages/db/client`, `packages/api/services/*`.
|
||||
- Used by: TanStack Router (route tree is regenerated into `apps/web/src/routeTree.gen.ts`).
|
||||
|
||||
**oRPC API layer (`packages/api/src/routers/`):**
|
||||
- Purpose: Public typed contract for the browser, in-process callers, and OpenAPI/MCP consumers.
|
||||
- Location: `packages/api/src/routers/{ai,auth,flags,resume,statistics,storage}.ts`, aggregated in `packages/api/src/routers/index.ts`.
|
||||
- Contains: Procedure definitions, Zod input/output schemas, REST metadata, rate-limit middleware bindings.
|
||||
- Depends on: `packages/api/src/context.ts`, `packages/api/src/dto/*`, `packages/api/src/services/*`.
|
||||
- Used by: `apps/web/src/routes/api/rpc.$.ts` (RPCHandler), `apps/web/src/routes/api/openapi.$.ts` (OpenAPIHandler), `apps/web/src/libs/orpc/client.ts` (isomorphic client), MCP tools in `apps/web/src/routes/mcp/-helpers/tools.ts`.
|
||||
|
||||
**Services / business logic (`packages/api/src/services/`):**
|
||||
- Purpose: All cross-cutting business rules — resume CRUD, statistics, AI orchestration, storage, feature flags, auth helpers, event publishing.
|
||||
- Location: `packages/api/src/services/*.ts`
|
||||
- Contains: Side-effecting functions with explicit `userId`-style inputs. No request/response coupling.
|
||||
- Depends on: `packages/db/client`, `packages/db/schema`, `packages/auth/config`, `packages/schema/resume/*`, `packages/utils/*`, `packages/email/transport`, AI SDKs.
|
||||
- Used by: Routers, MCP helpers, the `/api/health` route.
|
||||
|
||||
**Persistence (`packages/db/`):**
|
||||
- Purpose: Drizzle ORM client + schema definitions; the only place SQL is written.
|
||||
- Location: `packages/db/src/client.ts`, `packages/db/src/schema/{auth,resume,index}.ts`, `packages/db/src/relations.ts`.
|
||||
- Contains: Postgres `Pool` singleton (stored on `globalThis.__pool` to survive HMR), `drizzle()` client, table definitions, relations.
|
||||
- Depends on: `pg`, `drizzle-orm`, `packages/env/server`.
|
||||
- Migrations: Generated by `drizzle-kit` into the repo-root `migrations/` directory (see `packages/db/drizzle.config.ts`) and applied at startup by `apps/web/plugins/1.migrate.ts`.
|
||||
|
||||
**Auth (`packages/auth/`):**
|
||||
- Purpose: Better Auth instance with email/password, OAuth (Google/GitHub/LinkedIn + generic), passkey, 2FA, API keys, JWKS, and a JWT-issuing OAuth provider for MCP clients.
|
||||
- Location: `packages/auth/src/config.ts`, `packages/auth/src/functions.ts`, `packages/auth/src/types.ts`.
|
||||
- Mounted at: `apps/web/src/routes/api/auth.$.ts` (delegates `request → auth.handler(request)` after sanitizing OAuth params).
|
||||
- Verifies tokens for MCP at `apps/web/src/routes/mcp/index.ts` via `verifyOAuthToken`.
|
||||
|
||||
**PDF rendering (`packages/pdf/`):**
|
||||
- Purpose: React PDF document and 14 visual templates (named after Pokémon).
|
||||
- Location: `packages/pdf/src/document.tsx` mounts `getTemplatePage(template)`; templates live under `packages/pdf/src/templates/<name>/`.
|
||||
- Shared template primitives: `packages/pdf/src/templates/shared/{filtering,rich-text,sections,primitives,picture,page-size,columns}.ts(x)`.
|
||||
- Fonts: `packages/pdf/src/hooks/use-register-fonts.ts` owns React PDF font registration, standard PDF font handling, CJK fallback stacks, and global hyphenation.
|
||||
- Consumed by: Web builder preview (`apps/web/src/components/resume/preview*.tsx`, `pdf-canvas.tsx`), public resume page (`apps/web/src/routes/$username/$slug.tsx`), and the OpenAPI `/resumes/{id}/download` procedure (`apps/web/src/routes/api/-helpers/resume-pdf.ts`).
|
||||
|
||||
**Shared schemas (`packages/schema/`):**
|
||||
- Purpose: Zod source of truth for resume data, templates, page settings, and AI analysis.
|
||||
- Location: `packages/schema/src/resume/{data,default,sample,analysis}.ts`, `packages/schema/src/templates.ts`, `packages/schema/src/page.ts`, `packages/schema/src/icons.ts`.
|
||||
- Used by: API DTOs (`packages/api/src/dto/resume.ts`), DB column typing (`packages/db/src/schema/resume.ts`), import package, PDF rendering, web forms, MCP tool descriptions, and the public JSON schema at `/schema.json`.
|
||||
|
||||
**Shared UI (`packages/ui/`):**
|
||||
- Purpose: Headless/styled component library (Base UI + shadcn-style) used by `apps/web`.
|
||||
- Location: `packages/ui/src/components/*.tsx`, `packages/ui/src/hooks/*.tsx`.
|
||||
- Examples: `dialog`, `dropdown-menu`, `command`, `resizable`, `sonner`, `tooltip`, `form`, `direction`.
|
||||
- Styles: `packages/ui/src/styles/globals.css` (Tailwind v4 entry).
|
||||
|
||||
**Support packages:**
|
||||
- `packages/utils` — small focused helpers (`color`, `date`, `field`, `file`, `html`, `level`, `locale`, `network-icons`, `rate-limit`, `sanitize`, `string`, `style`, `url`, plus Node-only `monorepo.node`, `url-security.node`, and `resume/{docx,patch}`).
|
||||
- `packages/env` — `@t3-oss/env-core` server schema; `dotenv` loads the repo-root `.env` (`packages/env/src/server.ts`).
|
||||
- `packages/email` — `nodemailer` transport + `react-email` templates (`packages/email/src/transport.ts`, `packages/email/src/templates/*.tsx`).
|
||||
- `packages/import` — converters for JSON Resume, Reactive Resume v3/v4 JSON (`packages/import/src/*.tsx`).
|
||||
- `packages/ai` — Zustand store, AI prompts (`packages/ai/src/prompts/*.md`), patch-resume tool, sanitize/extraction helpers consumed by the AI router.
|
||||
- `packages/fonts` — generated Google Fonts metadata (`packages/fonts/src/webfontlist.json`, `packages/fonts/src/index.ts`).
|
||||
- `packages/scripts` — repo-level scripts (`packages/scripts/database/reset.ts`, `packages/scripts/fonts/generate.ts`).
|
||||
- `packages/config` — shared TypeScript/Vitest base configs (`packages/config/tsconfig.base.json`, `packages/config/vitest.config.ts`).
|
||||
- `packages/runtime-externals` — declares `bcrypt`, `sharp`, `@aws-sdk/client-s3` so they remain runtime-only (externalized in `apps/web/vite.config.ts`).
|
||||
|
||||
## Data Flow
|
||||
|
||||
### Primary Request Path (browser RPC call)
|
||||
|
||||
1. Browser route uses `orpc.resume.getById.queryOptions(...)` from `apps/web/src/libs/orpc/client.ts:84` to fetch data.
|
||||
2. The isomorphic oRPC client (`apps/web/src/libs/orpc/client.ts:28-47`) creates an `RPCLink` pointing at `${window.location.origin}/api/rpc` with `credentials: "include"` and a `BatchLinkPlugin`.
|
||||
3. Request hits the file route `apps/web/src/routes/api/rpc.$.ts`, where `RPCHandler` (line 9) dispatches with `BatchHandlerPlugin`, `RequestHeadersPlugin`, and `StrictGetMethodPlugin`.
|
||||
4. `publicProcedure` (`packages/api/src/context.ts:79`) resolves the user from headers (`x-api-key` → bearer JWT via JWKS → Better Auth session cookie).
|
||||
5. `protectedProcedure` (`packages/api/src/context.ts:90`) rejects unauthenticated callers with `ORPCError("UNAUTHORIZED")`.
|
||||
6. Router handler in `packages/api/src/routers/resume.ts` calls into `packages/api/src/services/resume.ts`, which queries Drizzle (`packages/db/src/client.ts:32`).
|
||||
7. Response is serialized back through oRPC and consumed by TanStack Query / the route component.
|
||||
|
||||
### SSR / Server-Side Path
|
||||
|
||||
1. During SSR, `apps/web/src/libs/orpc/client.ts:13-27` short-circuits the HTTP path via `createRouterClient(router, { context: async () => ({ locale, reqHeaders }) })`.
|
||||
2. The same `publicProcedure`/`protectedProcedure` middleware runs in-process — no socket hop — but still resolves auth from the original request headers via `getRequestHeaders()` from `@tanstack/react-start/server`.
|
||||
3. Route loaders (e.g. `apps/web/src/routes/builder/$resumeId/route.tsx:39-44`) populate the query cache via `context.queryClient.ensureQueryData(orpc.resume.getById.queryOptions(...))`.
|
||||
|
||||
### Resume Live-Update Flow
|
||||
|
||||
1. `subscribe` procedure in `packages/api/src/routers/resume.ts:76` returns an async generator.
|
||||
2. On any mutation, `packages/api/src/services/resume-events.ts:37` calls `pg_notify('resume_updated', JSON.stringify(event))`.
|
||||
3. Subscribing clients receive `resume.updated` SSE-style events via oRPC streaming (`apps/web/src/libs/orpc/client.ts:51-82`, `streamClient`).
|
||||
4. The builder route consumes them through `useResumeUpdateSubscription` (`apps/web/src/components/resume/builder-resume-draft.ts`).
|
||||
|
||||
### PDF Download Path
|
||||
|
||||
1. Web client requests `GET /api/openapi/resumes/{id}/download` (oRPC OpenAPI handler at `apps/web/src/routes/api/openapi.$.ts`).
|
||||
2. `downloadResumePdfProcedure` in `apps/web/src/routes/api/-helpers/resume-pdf.ts` loads the resume, renders `ResumeDocument` from `packages/pdf/src/document.tsx`, persists to storage via `getStorageService()`, and returns/streams the PDF.
|
||||
|
||||
### Public Resume Path
|
||||
|
||||
1. `apps/web/src/routes/$username/$slug.tsx` uses `ssr: "data-only"` — server fetches `resume.getBySlug` but renders the React PDF preview only on the client.
|
||||
2. `packages/api/src/helpers/resume-access-policy.ts` enforces visibility, redacts non-public fields, and throws `NEED_PASSWORD` for password-protected resumes (the route then redirects to `/auth/resume-password`).
|
||||
|
||||
**State Management:**
|
||||
- Server cache: TanStack Query (`apps/web/src/libs/query/client.ts`) wrapped by oRPC's `createTanstackQueryUtils`.
|
||||
- Local UI state: Zustand stores under `apps/web/src/routes/builder/$resumeId/-store/{section,sidebar}.ts`, `apps/web/src/dialogs/store.ts`, `apps/web/src/components/command-palette/store.ts`, `apps/web/src/components/resume/builder-resume-draft.ts`.
|
||||
- Router context: `theme`, `locale`, `session`, `flags`, `queryClient`, `orpc` are computed once in `apps/web/src/router.tsx` (and again in the root route `beforeLoad`) and reused by descendants.
|
||||
- Cookies: builder layout (`BUILDER_LAYOUT_COOKIE_NAME`), theme, and locale are persisted via `getCookie`/`setCookie` server functions.
|
||||
|
||||
## Key Abstractions
|
||||
|
||||
**oRPC procedures (`os.$context<ORPCContext>()`):**
|
||||
- Purpose: Typed RPC procedures that double as REST endpoints and MCP tool surfaces.
|
||||
- Examples: `publicProcedure` and `protectedProcedure` in `packages/api/src/context.ts:79`/`:90`.
|
||||
- Pattern: `procedure.route({...openapi metadata}).input(zodSchema).use(rateLimitMiddleware).output(zodSchema).handler(async ({ context, input }) => ...)`.
|
||||
|
||||
**Drizzle tables:**
|
||||
- Purpose: Strongly-typed Postgres schema; `.jsonb()` columns are typed against Zod-derived TypeScript (`ResumeData`, `StoredResumeAnalysis`).
|
||||
- Examples: `packages/db/src/schema/resume.ts` (resume, resumeStatistics, resumeAnalysis), `packages/db/src/schema/auth.ts` (Better Auth tables).
|
||||
- Pattern: `pg.pgTable("name", { ... }, (t) => [pg.index().on(...), pg.unique().on(...)])`.
|
||||
|
||||
**Template pages (React PDF):**
|
||||
- Purpose: One `TemplatePage` component per visual template, mapped by name in `packages/pdf/src/templates/index.ts`.
|
||||
- Examples: `packages/pdf/src/templates/azurill/AzurillPage.tsx`, `packages/pdf/src/templates/onyx/OnyxPage.tsx`.
|
||||
- Pattern: `(props: { page: LayoutPage; pageIndex: number }) => JSX`, consuming `RenderProvider` from `packages/pdf/src/context.tsx`.
|
||||
|
||||
**Base UI components:**
|
||||
- Purpose: Headless primitives styled with Tailwind v4 and exported as composable parts.
|
||||
- Examples: `packages/ui/src/components/dialog.tsx`, `packages/ui/src/components/command.tsx`, `packages/ui/src/components/resizable.tsx`.
|
||||
- Imported via deep paths: `import { Dialog } from "@reactive-resume/ui/components/dialog";`.
|
||||
|
||||
**TanStack Router file routes:**
|
||||
- Purpose: Page components, loaders, and optional `server.handlers` blocks per file.
|
||||
- Examples: `apps/web/src/routes/builder/$resumeId/route.tsx`, `apps/web/src/routes/api/rpc.$.ts`.
|
||||
- Pattern: `export const Route = createFileRoute("/path")({ component, loader, beforeLoad, server: { handlers: { GET, POST } }, ssr });`.
|
||||
|
||||
## Entry Points
|
||||
|
||||
**Vite + Nitro build entry:**
|
||||
- Location: `apps/web/vite.config.ts`
|
||||
- Triggers: `pnpm dev`, `pnpm build`. Wires TanStack Start, Tailwind v4, Lingui (i18n), Nitro plugins, and the Vite PWA plugin.
|
||||
- Externals: `bcrypt`, `sharp`, `@aws-sdk/client-s3` (declared in `packages/runtime-externals`).
|
||||
|
||||
**Server fetch entry:**
|
||||
- Location: `apps/web/src/server.ts`
|
||||
- Responsibilities: Wraps `@tanstack/react-start/server-entry` and substitutes `srvx`'s `FastResponse` as the global `Response`.
|
||||
|
||||
**Nitro startup plugins:**
|
||||
- `apps/web/plugins/1.migrate.ts` — resolves the repo-root `migrations/` folder, opens its own `pg.Pool`, runs Drizzle migrations on boot, then closes the pool.
|
||||
- `apps/web/plugins/2.storage.ts` — when S3 env vars are absent, ensures the local storage directory is writable before serving requests.
|
||||
|
||||
**Router entry:**
|
||||
- Location: `apps/web/src/router.tsx`
|
||||
- Responsibilities: Builds `queryClient`, loads `theme`/`locale`/`session`/`flags` in parallel, creates the TanStack Router with router context, registers SSR query integration.
|
||||
|
||||
**Root route:**
|
||||
- Location: `apps/web/src/routes/__root.tsx`
|
||||
- Responsibilities: HTML shell, providers (`I18nProvider`, `ThemeProvider`, `HotkeysProvider`, `DirectionProvider`, `TooltipProvider`, `ConfirmDialogProvider`, `PromptDialogProvider`), PWA head/scripts, `DialogManager`, `CommandPalette`, `Toaster`.
|
||||
|
||||
**HTTP endpoints (route `server.handlers`):**
|
||||
- `apps/web/src/routes/api/rpc.$.ts` — `/api/rpc/*` oRPC handler (browser RPC).
|
||||
- `apps/web/src/routes/api/auth.$.ts` — `/api/auth/*` Better Auth handler (with OAuth payload sanitization).
|
||||
- `apps/web/src/routes/api/health.ts` — `/api/health` JSON probe (db + storage with timeouts).
|
||||
- `apps/web/src/routes/api/openapi.$.ts` — `/api/openapi/*` OpenAPI handler + spec.
|
||||
- `apps/web/src/routes/api/uploads/$userId.$.ts` and `apps/web/src/routes/uploads/$userId.$.tsx` — signed/etagged static file serving from storage.
|
||||
- `apps/web/src/routes/mcp/index.ts` — `/mcp` Model Context Protocol server (OAuth-protected).
|
||||
- `apps/web/src/routes/[.]well-known/*` — `/.well-known/oauth-authorization-server`, `/.well-known/oauth-protected-resource`, `/.well-known/openid-configuration`, `/.well-known/mcp` discovery documents.
|
||||
- `apps/web/src/routes/schema[.]json.ts` — `/schema.json` public JSON Schema for `ResumeData`.
|
||||
|
||||
**Builder + public resume entry points:**
|
||||
- `apps/web/src/routes/builder/$resumeId/route.tsx` — authenticated builder shell (header + resizable left/right sidebars + artboard outlet + assistant).
|
||||
- `apps/web/src/routes/builder/$resumeId/index.tsx` — `ssr: false`; lazy-loaded `PreviewPage` running React PDF/canvas only in the browser.
|
||||
- `apps/web/src/routes/$username/$slug.tsx` — `ssr: "data-only"`; public/shared resume view (with password gating via `NEED_PASSWORD` ORPCError).
|
||||
|
||||
## Architectural Constraints
|
||||
|
||||
- **Single Node process:** Everything (web, oRPC, auth, MCP, OpenAPI, file serving) runs in one Node 24 process on port 3000. No separate API service.
|
||||
- **Source-only workspace packages:** `package.json` `exports` point at `src/*.ts(x)`; do not assume `dist` output exists. The Vite build externalizes `bcrypt`, `sharp`, `@aws-sdk/client-s3` (`apps/web/vite.config.ts:55`).
|
||||
- **Globals on `globalThis` for DB pool:** `packages/db/src/client.ts:8-11` caches the `pg.Pool` and Drizzle client on `globalThis.__pool` / `globalThis.__drizzle` to survive HMR reloads.
|
||||
- **Browser-only PDF rendering:** PDF.js, `@react-pdf/renderer` canvas, and the builder preview must stay off the SSR path. Use `.browser.tsx` suffix files and `ssr: false` (builder preview) or `ssr: "data-only"` (public resume).
|
||||
- **Generated route tree:** `apps/web/src/routeTree.gen.ts` is regenerated by TanStack Router tooling; never edit by hand.
|
||||
- **Migrations folder location:** `drizzle-kit` writes to `../../migrations` from `packages/db/drizzle.config.ts`, so all migration directories live at the repo root, not inside the package.
|
||||
- **DATABASE_URL not auto-loaded for drizzle-kit:** `pnpm db:migrate` / `pnpm db:generate` require `DATABASE_URL` exported in the shell; only the runtime Node code loads `.env` via `packages/env/src/server.ts`.
|
||||
- **Rate limiting is production-only:** `packages/api/src/middleware/rate-limit/index.ts:5` and the Better Auth config gate rate limits on `process.env.NODE_ENV === "production"`.
|
||||
- **OAuth audience binding:** `verifyOAuthToken` (`packages/auth/src/config.ts:40`) only accepts JWTs whose `aud` matches `${APP_URL}` (with/without trailing slash) or `${APP_URL}/mcp`.
|
||||
- **Postgres LISTEN/NOTIFY coupling:** Live resume updates depend on a single shared `pg.Pool` (`packages/db/src/client.ts:13`); scaling beyond one process requires replacing `pg_notify` with a broker.
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
### Ad-hoc fetching of router context
|
||||
|
||||
**What happens:** Components separately calling `getSession()`, `getTheme()`, or `getLocale()` instead of reading them from TanStack Router context.
|
||||
**Why it's wrong:** The root route's `beforeLoad` already loads these in parallel (`apps/web/src/routes/__root.tsx:82-93`) and exposes them via `Route.useRouteContext()`; duplicating the calls causes extra round-trips during SSR and triggers locale reloads.
|
||||
**Do this instead:** Use `Route.useRouteContext()` or read from a parent route loader, as `apps/web/src/routes/__root.tsx:101` does for theme/locale.
|
||||
|
||||
### Direct DB or storage imports in client code
|
||||
|
||||
**What happens:** Importing `@reactive-resume/db/client` or `@reactive-resume/api/services/storage` from a non-route component.
|
||||
**Why it's wrong:** Pulls `pg`, `sharp`, `bcrypt`, `@aws-sdk/client-s3` into the client bundle (which Vite externalizes — the build will fail or break at runtime).
|
||||
**Do this instead:** Call the corresponding oRPC procedure from `packages/api/src/routers/*`. Server-only imports belong inside route `server.handlers` blocks or `.server.tsx` files like `apps/web/src/libs/resume/pdf-document.server.tsx`.
|
||||
|
||||
### PDF/canvas code in shared modules
|
||||
|
||||
**What happens:** Importing `@react-pdf/renderer` or PDF.js from a file that participates in SSR.
|
||||
**Why it's wrong:** These libraries crash under Node SSR (canvas/DOM dependencies).
|
||||
**Do this instead:** Keep browser code in `*.browser.tsx` / `pdf-canvas.tsx` and gate with `ssr: false` (e.g. `apps/web/src/routes/builder/$resumeId/index.tsx:6`) or `ssr: "data-only"` (e.g. `apps/web/src/routes/$username/$slug.tsx:40`).
|
||||
|
||||
### Bypassing the resume access policy
|
||||
|
||||
**What happens:** Reading resume rows directly from Drizzle in a public procedure without applying redaction.
|
||||
**Why it's wrong:** Leaks owner-only fields (password hash, private flags, statistics) and breaks the password-gate flow that depends on `NEED_PASSWORD` errors.
|
||||
**Do this instead:** Route through `packages/api/src/helpers/resume-access-policy.ts` (`assertCanView`, `redactResumeForViewer`, `shouldCountForStatistics`) as `packages/api/src/services/resume.ts` does.
|
||||
|
||||
### Hand-editing generated files
|
||||
|
||||
**What happens:** Modifying `apps/web/src/routeTree.gen.ts` or migration SQL after Drizzle writes it.
|
||||
**Why it's wrong:** Edits are overwritten on the next `tanstack-router` regen or migration; data drift between snapshots and SQL breaks future migrations.
|
||||
**Do this instead:** Add a route file under `apps/web/src/routes/`, or change the Drizzle schema in `packages/db/src/schema/*.ts` and run `pnpm db:generate`.
|
||||
|
||||
## Error Handling
|
||||
|
||||
**Strategy:** Typed errors via `ORPCError` codes; HTTP responses for low-level handlers; route-level `defaultErrorComponent` and `onError` for UI fallbacks.
|
||||
|
||||
**Patterns:**
|
||||
- Procedures throw `ORPCError("UNAUTHORIZED"|"NOT_FOUND"|"NEED_PASSWORD"|...)` or use `.errors({ ... })` to declare typed application errors (e.g. `RESUME_SLUG_ALREADY_EXISTS`, `RESUME_VERSION_CONFLICT` in `packages/api/src/routers/resume.ts`).
|
||||
- The OAuth bearer / API key / session resolvers in `packages/api/src/context.ts:14-55` swallow verification errors and log via `console.warn` so unauthenticated requests fall through to the next strategy.
|
||||
- `apps/web/src/routes/api/rpc.$.ts` and `apps/web/src/routes/api/openapi.$.ts` install `onError` interceptors that log every server error with a tag (`[oRPC Server]`, `[OpenAPI]`).
|
||||
- Route-level `onError` (e.g. `apps/web/src/routes/$username/$slug.tsx:24`) translates `NEED_PASSWORD` into a redirect.
|
||||
- Top-level UI fallbacks: `apps/web/src/components/layout/error-screen.tsx`, `loading-screen.tsx`, `not-found-screen.tsx` (wired in `apps/web/src/router.tsx:30-32`).
|
||||
- Healthcheck uses a 1.5s timeout helper (`apps/web/src/routes/api/health.ts:22-34`) so a stuck dependency cannot stall the probe.
|
||||
|
||||
## Cross-Cutting Concerns
|
||||
|
||||
**Logging:** `console.info`/`console.warn`/`console.error` with bracketed prefixes (e.g. `[oRPC Server]`, `[Healthcheck]`, `[oRPC client]`). No external log shipping is wired.
|
||||
|
||||
**Validation:** Zod 4 everywhere — Drizzle column types (`packages/db/src/schema/resume.ts`), oRPC input/output schemas, AI tool inputs, environment variables (`packages/env/src/server.ts`), and the public `/schema.json` route.
|
||||
|
||||
**Authentication:** Better Auth in `packages/auth/src/config.ts` (Drizzle adapter, email/password + OAuth + passkey + 2FA + admin + API keys + JWT + generic OAuth + dynamic client registration + custom `oauthProvider` for MCP). The unified resolver in `packages/api/src/context.ts:64` is the only place that decides which credential wins.
|
||||
|
||||
**Internationalization:** Lingui — `apps/web/lingui.config.ts`, `apps/web/locales/*.po`, `apps/web/src/libs/locale.ts`, RTL toggling in `__root.tsx`.
|
||||
|
||||
**Theming:** `apps/web/src/libs/theme.ts` (cookie-backed), `apps/web/src/components/theme/provider.tsx` (`next-themes`).
|
||||
|
||||
**Rate limiting:** `@orpc/experimental-ratelimit` with an in-memory ratelimiter from `packages/api/src/middleware/rate-limit/index.ts`. Trusted IP headers come from `packages/utils/src/rate-limit.ts`.
|
||||
|
||||
**Feature flags:** Server-resolved at boot (`packages/api/src/routers/flags.ts` and `packages/api/src/services/flags.ts`), then carried in router context via `apps/web/src/router.tsx:20`.
|
||||
|
||||
---
|
||||
|
||||
*Architecture analysis: 2026-05-11*
|
||||
@@ -0,0 +1,393 @@
|
||||
# Codebase Concerns
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
## TODO / FIXME / HACK / XXX Comments
|
||||
|
||||
A repo-wide grep for `TODO`, `FIXME`, `HACK`, and `XXX` markers across `apps/web/src/**` and `packages/**` returned **zero hits** in source code. The team appears to track follow-ups in PRs/issues rather than inline. Two referenced issues remain anchored in inline comments:
|
||||
|
||||
- `packages/pdf/src/hooks/use-register-fonts.ts:22` — references issue `#2986` (CJK glyph-level font fallback).
|
||||
- `packages/pdf/src/hooks/use-register-fonts.ts:103` — references issue `#2986` again for CJK textkit substitution.
|
||||
|
||||
These are stable design references, not unresolved debt — included for traceability only.
|
||||
|
||||
The remaining inline-comment "concerns" found during exploration sit in the **Anti-debt narrative** below, derived from code shape rather than comment markers.
|
||||
|
||||
---
|
||||
|
||||
## High Severity
|
||||
|
||||
### Security: SMTP-disabled fallback logs full email bodies (incl. verification/reset links)
|
||||
|
||||
When `SMTP_HOST` / `SMTP_USER` / `SMTP_PASS` / `SMTP_FROM` are not all set, the email transport logs the entire payload — including `text` and `html` bodies — to `stdout`.
|
||||
|
||||
- File: `packages/email/src/transport.ts:59-66`
|
||||
|
||||
```ts
|
||||
console.info("SMTP not configured; skipping email send.", {
|
||||
to: payload.to,
|
||||
subject: payload.subject,
|
||||
text: payload.text,
|
||||
html: payload.html,
|
||||
});
|
||||
```
|
||||
|
||||
**Impact:**
|
||||
- Password reset, email verification, and email-change confirmation URLs (which are credential-equivalent bearer tokens) are written to server logs whenever SMTP is not fully configured.
|
||||
- In any shared-log / log-shipping environment (Docker, Kubernetes, journald, cloud logging) this is a credential leak.
|
||||
- The README and `AGENTS.md:101` describe this as a dev convenience; nothing prevents an operator from running production with partial SMTP config.
|
||||
|
||||
**Fix approach:**
|
||||
1. Add a server-startup assertion that, if `NODE_ENV === "production"`, `isSmtpEnabled()` must be true.
|
||||
2. Redact `text` / `html` from the `console.info` call — log only `to` and `subject`.
|
||||
3. Document the production SMTP requirement in `.env.example` alongside `AUTH_SECRET`.
|
||||
|
||||
### Security: rate limiting is silently disabled in non-production
|
||||
|
||||
Both the oRPC rate-limit middleware and Better Auth's rate-limit config gate on `process.env.NODE_ENV === "production"`. Anything that does not set `NODE_ENV=production` at runtime (default `node` invocation, custom Docker entrypoints that forget to set it, self-hosters running `pnpm start` without `NODE_ENV`) runs with **all rate limiting disabled**, including:
|
||||
- `/sign-in/email`, `/sign-up/email`, password-reset, OAuth `register`/`authorize`/`token` (`packages/auth/src/config.ts:30, :69-78, :249-251, :388-390`)
|
||||
- Resume password verification, AI calls, PDF export, storage uploads/deletes, resume mutations (`packages/api/src/middleware/rate-limit/index.ts:5, :75`)
|
||||
|
||||
**Impact:** brute-force-friendly. A self-hosted deployment that omits `NODE_ENV=production` is wide open on auth and resume-password endpoints.
|
||||
|
||||
**Fix approach:**
|
||||
- Either default `isRateLimitEnabled = true` and provide a `RATE_LIMIT_DISABLED` opt-out env var, or assert `NODE_ENV === "production"` at boot when not running tests.
|
||||
|
||||
### Security: rate limiter is in-process memory only — broken under horizontal scaling
|
||||
|
||||
`MemoryRatelimiter` is used for every oRPC rate limit (`packages/api/src/middleware/rate-limit/index.ts:59-66`). Better Auth's `rateLimit` and `apiKey.rateLimit` blocks (`packages/auth/src/config.ts:248-251, :387-391`) similarly do not configure a distributed store.
|
||||
|
||||
**Impact:** Running >1 Node instance behind a load balancer multiplies the effective rate limit by the instance count. Brute-force attacks bypass the limit by retrying until they hit a different replica.
|
||||
|
||||
**Fix approach:** Swap `MemoryRatelimiter` for a Redis-backed ratelimiter (the package supports it via `@orpc/experimental-ratelimit`) once a redis dependency is acceptable. Until then, document the single-instance constraint in the deployment docs.
|
||||
|
||||
### Security: file upload accepts arbitrary MIME with image processing disabled
|
||||
|
||||
`uploadFile` (`packages/api/src/routers/storage.ts:42-71`) only runs the sharp image-processing pipeline for files where `isImageFile(file.type)` returns true based on the **client-supplied `file.type`**, and even that pipeline is skipped if `FLAG_DISABLE_IMAGE_PROCESSING=true` (`packages/api/src/services/storage.ts:96-101`).
|
||||
|
||||
**Impact:**
|
||||
- A client can claim `content-type: text/html` (or any non-image MIME) on a 10 MB upload, and the file is stored verbatim into `uploads/{userId}/pictures/...` with the user-claimed content type.
|
||||
- Served back from `apps/web/src/routes/uploads/$userId.$.tsx`. `X-Content-Type-Options: nosniff` is set (`:159`) and the storage route forces `application/octet-stream` only for `.pdf` (`:39, :148-153`), so a stored HTML body could be served as HTML if the inferred extension matches. The picture key always ends in `.jpeg` (`storage.ts:60`), which mitigates this in the picture path, but there is no MIME allow-list enforced at upload time.
|
||||
- With `FLAG_DISABLE_IMAGE_PROCESSING` on, the same applies to genuine images (no resize/strip-metadata path), so EXIF data is preserved unredacted.
|
||||
|
||||
**Fix approach:**
|
||||
1. Add a strict allow-list at the router boundary (`packages/api/src/routers/storage.ts:9`) — `z.file().mime(["image/png", "image/jpeg", "image/webp", "image/gif"])` plus magic-byte validation.
|
||||
2. Reject upload if claimed MIME does not match the sharp-detected MIME; do not fall back to client claim.
|
||||
3. Surface a startup warning when `FLAG_DISABLE_IMAGE_PROCESSING=true` so it is not enabled in production unknowingly.
|
||||
|
||||
### Tech Debt: web app has near-zero test coverage
|
||||
|
||||
- `apps/web/src` has **11 test files** across **~224 source files** (~5%) — `find apps/web/src -name "*.test.*"`.
|
||||
- `apps/web/src/routes` has **1 test file** across **125 route files** (`apps/web/src/routes/builder/$resumeId/-components/donation-toast.test.tsx`).
|
||||
- Total repo: ~93 test files / ~385 source files (~24%). Most coverage lives in `packages/ui`, `packages/utils`, `packages/pdf/src/templates/shared`, and `packages/api` (5 tests).
|
||||
|
||||
**Impact:**
|
||||
- Refactors to routes, builder shell, sidebar forms, resume preview wiring, MCP tools, and uploads handler land without a regression net.
|
||||
- Particularly thin: `apps/web/src/routes/api/**` (rpc, auth, openapi, mcp, uploads) and `apps/web/src/routes/builder/$resumeId/**`.
|
||||
|
||||
**Fix approach:** Phase-by-phase, add server-handler integration tests for `api/health.ts`, `api/auth.$.ts` (registration-validation path), `uploads/$userId.$.tsx` (path traversal), and at least smoke tests around the builder store in `apps/web/src/components/resume/builder-resume-draft.ts`.
|
||||
|
||||
---
|
||||
|
||||
## Medium Severity
|
||||
|
||||
### Fragile: PDF.js / canvas SSR boundary is enforced by convention only
|
||||
|
||||
The SSR/CSR split for the resume preview is hand-maintained:
|
||||
|
||||
- `apps/web/src/components/resume/preview.tsx:14` returns `null` until `useIsClient()` resolves and then lazy-loads the browser bundle.
|
||||
- `apps/web/src/components/resume/preview.browser.tsx:2` imports `@react-pdf/renderer` (`pdf`).
|
||||
- `apps/web/src/components/resume/pdf-canvas.tsx:1, :4, :9` imports PDF.js types/runtime and sets a module-level `GlobalWorkerOptions.workerSrc`.
|
||||
- `apps/web/src/routes/templates/$.tsx:1` imports `PDFViewer` at the **top level** but the route component itself bails on `!isClient`. Top-level import means the bundle reaches the SSR chunk; correctness relies on the import being tree-shaken away when SSR runs.
|
||||
- `apps/web/src/routes/dashboard/resumes/-components/cards/resume-thumbnail.tsx` uses dynamic `await import("pdfjs-dist")` — a different convention from `pdf-canvas.tsx`'s static import.
|
||||
- SSR mode hints: `apps/web/src/routes/builder/$resumeId/index.tsx:4` (`ssr: false`), `apps/web/src/routes/$username/$slug.tsx` (`ssr: "data-only"`).
|
||||
|
||||
**Impact:** A future contributor adding a static PDF.js import inside a SSR-rendered route component will break SSR with a `window is not defined` error at build/run time. There is no lint rule or build-time guard enforcing this.
|
||||
|
||||
**Fix approach:**
|
||||
1. Document the boundary explicitly at the top of `apps/web/src/components/resume/preview.tsx` and `pdf-canvas.tsx` (currently only described in `AGENTS.md:35`).
|
||||
2. Consider a Vite SSR-externals config that aborts the build if `pdfjs-dist` / `@react-pdf/renderer` is reachable from an SSR-eligible route.
|
||||
3. Switch `apps/web/src/routes/templates/$.tsx:1` to a dynamic `import("@react-pdf/renderer")` inside the `useIsClient()` branch for consistency with the rest of the preview pipeline.
|
||||
|
||||
### Fragile: `getStorageService()` is captured at module load in router
|
||||
|
||||
`packages/api/src/routers/storage.ts:7` calls `getStorageService()` at module top level. Because `apps/web/src/routes/api/rpc.$.ts` constructs a new `RPCHandler` on every request, the router's storage reference is fixed for the lifetime of the Node process.
|
||||
|
||||
**Impact:** Switching backends (e.g. flipping S3 vars on at runtime) requires a process restart, which is normally fine — but the singleton is also held inside Nitro's HMR boundary in dev, so config changes during `pnpm dev` need a full restart (not just a save).
|
||||
|
||||
**Fix approach:** Call `getStorageService()` inside each handler instead, or invalidate the cached service when env values change.
|
||||
|
||||
### Fragile: `RPCHandler` instantiated per-request
|
||||
|
||||
`apps/web/src/routes/api/rpc.$.ts:8-16` creates a new `RPCHandler` (with plugins) for every incoming request. Each instance re-walks the router tree and re-constructs plugin pipelines.
|
||||
|
||||
**Impact:** Measurable per-request cost on high-RPS dashboards; not catastrophic but unnecessary.
|
||||
|
||||
**Fix approach:** Move `new RPCHandler(...)` out of the handler and reuse a module-level instance; only `getLocale()` should run per-request.
|
||||
|
||||
### Performance: PDF preview regenerates entire PDF on every change
|
||||
|
||||
`apps/web/src/components/resume/preview.browser.tsx:103-131` debounces PDF generation by 100ms and calls `pdf(resumeDocument).toBlob()` on every resume change. For multi-page resumes with images, this re-renders the full document and re-loads it into PDF.js.
|
||||
|
||||
**Impact:** Builder feels sluggish on slower hardware when typing into fields; CPU spikes on each keystroke after debounce.
|
||||
|
||||
**Mitigation in place:** `UPDATE_DEBOUNCE_MS = 100`, crossfade between staged/active layers (`:20-80`).
|
||||
|
||||
**Fix approach:** Long-term, switch to incremental rendering or page-level memoization keyed by section hash. Short-term, raise debounce to 200–300 ms while typing.
|
||||
|
||||
### Performance: font registration cost
|
||||
|
||||
`packages/pdf/src/hooks/use-register-fonts.ts:18, :86` keeps a module-level `registeredFontVariants` Set keyed by `family:weight:style`. Per-resume registration calls `Font.register` once per (family × weight × italic × CJK-fallback) combination, with web-font fetches resolved through `getWebFontSource`. This Set never expires — if many resumes with different typography are previewed in one session, the registered-font count grows for the page lifetime.
|
||||
|
||||
**Impact:** Memory grows in the builder for sessions that switch typography frequently. Not a leak in the GC sense, but bounded only by the size of the registered-font universe.
|
||||
|
||||
**Fix approach:** Acceptable for current usage. Document the cap and reconsider if typography switching becomes more common.
|
||||
|
||||
### Performance: large source files hint at oversized modules
|
||||
|
||||
Top offenders by line count (excluding generated/test fixtures):
|
||||
|
||||
| Lines | File |
|
||||
|------:|------|
|
||||
| 1535 | `packages/schema/src/icons.ts` (static data) |
|
||||
| 1088 | `apps/web/src/routes/builder/$resumeId/-components/assistant.tsx` |
|
||||
| 900 | `packages/pdf/src/templates/shared/sections.tsx` |
|
||||
| 789 | `apps/web/src/components/input/rich-input.tsx` |
|
||||
| 785 | `packages/import/src/reactive-resume-v4-json.tsx` |
|
||||
| 685 | `packages/ui/src/components/sidebar.tsx` |
|
||||
| 556 | `apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx` |
|
||||
| 543 | `packages/api/src/services/resume.ts` |
|
||||
|
||||
`assistant.tsx` (1088 lines) and `sections.tsx` (900 lines) are particularly likely to accumulate further complexity without splitting. `rich-input.tsx` (789 lines) is the rich-text editor — likely justifies its size but has zero direct tests.
|
||||
|
||||
**Fix approach:** Split `assistant.tsx` along tool boundaries; extract per-section renderers from `sections.tsx` if any individual section grows further.
|
||||
|
||||
### Security: `verifyPassword` rate limit keyed by `username:slug:ip`
|
||||
|
||||
`packages/api/src/middleware/rate-limit/index.ts:77-83` keys the resume-password limiter on `resume-password:{username}:{slug}:{clientKey}` where `clientKey` is the client IP. The window/max is 5 attempts per 10 minutes (`packages/utils/src/rate-limit.ts:43`). This is reasonable, but the global Better Auth global rule for `/two-factor/verify-otp` is also 5 per 600s. An attacker on a botnet (different IPs) is not blocked at the resource level — each IP gets its own 5/10min budget against the same resume.
|
||||
|
||||
**Impact:** Limited but present brute-force surface on password-protected public resumes.
|
||||
|
||||
**Fix approach:** Add a per-resume global cap on top of the per-IP limit (e.g. 50/hour per `username:slug` regardless of IP).
|
||||
|
||||
### Security: `as string` cast on password hash
|
||||
|
||||
`packages/api/src/services/resume.ts:487` casts `resume.password` to `string` after a `isNotNull(schema.resume.password)` WHERE clause. The cast is correct in context, but if a future refactor drops the `isNotNull` guard the cast silently allows `null` through `bcrypt.compare`.
|
||||
|
||||
**Fix approach:** Replace `as string` with a runtime `if (!resume.password) throw new ORPCError(...)` check.
|
||||
|
||||
### Security: trust of `TRUSTED_IP_HEADERS` is unconditional
|
||||
|
||||
`packages/utils/src/rate-limit.ts:1-7` defines a list of trusted IP headers (`CF-Connecting-IP`, `True-Client-IP`, `X-Forwarded-For`, etc.) that the rate limiter and Better Auth (`packages/auth/src/config.ts:276`) honour from any caller.
|
||||
|
||||
**Impact:** If the app is deployed without a proxy that strips client-supplied versions of these headers, any client can spoof their rate-limit identity by setting `X-Forwarded-For: 1.2.3.4`.
|
||||
|
||||
**Fix approach:** Document that operators **must** terminate at a trusted proxy (Cloudflare, nginx, Caddy) that strips inbound `X-Forwarded-For` / `X-Real-IP`. Optionally, add a `TRUST_PROXY` env flag and only honour those headers when set.
|
||||
|
||||
### Fragile: `cachedTransport` in `email/transport.ts` ignores env mutation
|
||||
|
||||
`packages/email/src/transport.ts:21-37` caches the nodemailer transport on first use. If SMTP creds change at runtime (e.g. credential rotation in a deployed instance), the cached transport keeps using the stale credentials until the process restarts.
|
||||
|
||||
**Fix approach:** Detect cred changes and rebuild, or document the restart-on-rotation behaviour.
|
||||
|
||||
### Storage gotcha: statistics cache is filesystem-bound even with S3 configured
|
||||
|
||||
`packages/api/src/services/statistics.ts:21-52` caches user/resume/star counts as files in `getLocalDataDirectory(env.LOCAL_STORAGE_PATH)` regardless of whether S3 is enabled.
|
||||
|
||||
**Impact:** When S3 is configured and `LOCAL_STORAGE_PATH` is on ephemeral storage (e.g. container scratch), the cache is recreated on every redeploy — meaning a cold start always queries the DB / GitHub API rather than re-using the cache. Also breaks horizontal scaling — each replica has its own cache file.
|
||||
|
||||
**Fix approach:** Cache via the configured storage service (`getStorageService`) instead of raw `fs`, or move to an in-memory + TTL cache.
|
||||
|
||||
---
|
||||
|
||||
## Low Severity
|
||||
|
||||
### Tech Debt: generated file you must not edit
|
||||
|
||||
`apps/web/src/routeTree.gen.ts` (983 lines, `eslint-disable`, `@ts-nocheck` at top) is auto-generated by TanStack Router. It is correctly excluded from Biome (`biome.json:14`) and noted in `AGENTS.md:31`.
|
||||
|
||||
**Action required of contributors:** Never hand-edit. Regenerate by running `pnpm dev` (TanStack tooling watches `apps/web/src/routes/**`).
|
||||
|
||||
### Tech Debt: dev workflow — `pnpm check` is write-capable
|
||||
|
||||
`package.json:20` defines `"check": "biome check --write --unsafe ."`. Running `pnpm check` will modify files. The lefthook pre-commit (`lefthook.yml:7-9`) runs the same command on staged files only, and `stage_fixed: true` re-stages them.
|
||||
|
||||
**Impact:** Surprise file modifications when a contributor runs `pnpm check` expecting a non-mutating audit.
|
||||
|
||||
**Fix approach:** Add a parallel `pnpm check:ci` (no `--write`) for inspection, and document the distinction (already covered in `AGENTS.md:103`).
|
||||
|
||||
### Tech Debt: dev gotcha — `drizzle-kit` does not auto-load `.env`
|
||||
|
||||
`packages/db/drizzle.config.ts:8` reads `process.env.DATABASE_URL || ""`. The `@reactive-resume/env` package auto-loads `.env` via dotenv (`packages/env/src/server.ts:9-11`), but `drizzle-kit` runs as a separate process that does not import `@reactive-resume/env`.
|
||||
|
||||
**Impact:** Fresh `pnpm db:migrate` silently fails with an empty connection string unless `DATABASE_URL` is exported in the shell. Documented in `AGENTS.md:58, :79-80`.
|
||||
|
||||
**Fix approach:** Either import the env package from `drizzle.config.ts` to inherit the `.env` load, or wrap the script with a one-liner that exports `DATABASE_URL`.
|
||||
|
||||
### Tech Debt: Nitro plugin auto-runs migrations on dev/prod boot
|
||||
|
||||
`apps/web/plugins/1.migrate.ts:23-40` runs migrations on every Nitro startup. This is convenient but couples app-boot health to migration health.
|
||||
|
||||
**Impact:**
|
||||
- A bad migration takes down the whole web service on boot, not just future migration runs.
|
||||
- Two app instances starting concurrently both call `migrate()`; Drizzle's `migrations` table uses transactions to avoid duplicate apply, but the race adds startup latency.
|
||||
- For prod self-hosters, there is no "boot-without-migrate" knob.
|
||||
|
||||
**Fix approach:** Gate on an env flag (e.g. `RUN_MIGRATIONS_ON_BOOT=true`, default true) and document running `pnpm db:migrate` separately in zero-downtime deploys.
|
||||
|
||||
### Tech Debt: S3 toggle is all-or-nothing
|
||||
|
||||
`packages/api/src/services/storage.ts:336` and `apps/web/plugins/2.storage.ts:7`: storage backend selection requires all three of `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET` to be set. Setting two of three silently falls back to local storage.
|
||||
|
||||
**Impact:** Operator misconfigures S3 (e.g. forgets `S3_BUCKET`), app silently writes to local FS — uploads disappear on next container restart on ephemeral disks.
|
||||
|
||||
**Fix approach:** Treat "any S3 var set" as "S3 intended" — throw on partial config rather than silently downgrading.
|
||||
|
||||
### Security: no global CSP / X-Frame-Options on HTML responses
|
||||
|
||||
A repo-wide grep for `Content-Security-Policy`, `X-Frame-Options`, `Strict-Transport-Security` finds them only in the uploads route (`apps/web/src/routes/uploads/$userId.$.tsx:159-165`) and the schema JSON route (`apps/web/src/routes/schema[.]json.ts`). The HTML shell (`apps/web/src/routes/__root.tsx`) sets no CSP, no HSTS, no `Permissions-Policy`, no `Referrer-Policy`.
|
||||
|
||||
**Impact:**
|
||||
- No clickjacking protection on the resume builder or public resume pages — they can be framed by any origin.
|
||||
- No CSP means an XSS through rich-text rendering (`packages/utils/src/sanitize.*`, `packages/pdf/src/templates/shared/rich-text-html.ts`) has no defence-in-depth.
|
||||
|
||||
**Fix approach:** Add a Nitro response hook that sets `Content-Security-Policy`, `Strict-Transport-Security`, `Referrer-Policy: strict-origin-when-cross-origin`, `X-Content-Type-Options: nosniff`, and `X-Frame-Options: SAMEORIGIN` on all HTML responses. Validate that the CSP allows `pdf.worker.min.mjs`, `@react-pdf/renderer` font fetches, and the configured S3/SeaweedFS origin.
|
||||
|
||||
### Security: OAuth dynamic-client registration allows unauthenticated callers
|
||||
|
||||
`packages/auth/src/config.ts:395-401` enables `allowDynamicClientRegistration: true` and `allowUnauthenticatedClientRegistration: true` on the oauthProvider plugin. The comment (`:397-399`) explicitly states this is required for MCP onboarding (RFC 7591) and that the phishing vector is closed by the redirect-URI allowlist in `hooks.before` (`:253-271`) and `apps/web/src/routes/api/auth.$.ts:97-111`.
|
||||
|
||||
**Impact:** Anyone can register an OAuth client. The protection depends entirely on the redirect-URI allowlist correctness in `parseAllowedHostList(env.OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS)` and `isAllowedOAuthRedirectUri`.
|
||||
|
||||
**Fix approach:** Already mitigated in code; the residual risk is operator misconfiguration of `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS`. Add a startup warning when `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS` is empty (i.e. allowlist is APP_URL-only).
|
||||
|
||||
### Tech Debt: log noise on auth fallthrough
|
||||
|
||||
`packages/api/src/context.ts:25, :37, :53` calls `console.warn` for every failed Bearer / session / API-key validation. In an unauthenticated user flow that hits the same route via Bearer-not-present → session-cookie path, no warning fires, but in an actual token-mismatch path the warning fires on every request.
|
||||
|
||||
**Impact:** Log volume in production when API keys expire or rotate. Logs may leak token shape information indirectly via repeated warnings.
|
||||
|
||||
**Fix approach:** Drop to `console.debug` (which is no-op in default Node), or rate-limit the warning per token-hash.
|
||||
|
||||
### Tech Debt: `getStorageService()` cached service singleton in module-load order
|
||||
|
||||
`packages/api/src/services/storage.ts:343-350` caches the service at first call. Combined with the `packages/api/src/routers/storage.ts:7` top-level call, if storage env vars are not present at module-load time (e.g. `.env` not loaded yet) the local backend is wired in permanently for the process.
|
||||
|
||||
**Fix approach:** Lazy-validate env on first use, not at module load.
|
||||
|
||||
### Anti-pattern: empty catch swallows preview generation errors
|
||||
|
||||
`apps/web/src/components/resume/preview.browser.tsx:120`:
|
||||
|
||||
```ts
|
||||
} catch {}
|
||||
```
|
||||
|
||||
A failed PDF generation in the builder preview is silently swallowed. The crossfade machinery keeps showing the previous preview, masking template bugs or runtime errors from contributors during development.
|
||||
|
||||
**Fix approach:** At minimum, `console.error` the failure (matching the pattern used in `pdf-canvas.tsx:68`). Better: surface a toast or banner so failed-preview state is visible.
|
||||
|
||||
### Anti-pattern: `console.warn`/`error` lacks structure
|
||||
|
||||
Every error log in `packages/api/src` uses `console.warn`/`console.error` with positional args (e.g. `services/resume.ts:158, :293, :363`, `context.ts:25, :37, :53`). There is no centralised logger, no structured fields, no request correlation ID.
|
||||
|
||||
**Fix approach:** Introduce a minimal logger (pino-light or a thin wrapper) with `level`, `event`, `userId`, `requestId` fields. Already partly done in the healthcheck (`apps/web/src/routes/api/health.ts:65, "[Healthcheck]"`).
|
||||
|
||||
### Fragile: in-process pub/sub for resume update events
|
||||
|
||||
`packages/api/src/services/resume-events.ts` (the subscribe path consumed by `packages/api/src/routers/resume.ts:99-103`'s `subscribeResumeUpdates`) is in-process. Two web replicas will not see each other's resume update events.
|
||||
|
||||
**Impact:** Multi-tab / multi-device builder sync across replicas does not work behind a load balancer.
|
||||
|
||||
**Fix approach:** Redis pub/sub or Postgres `LISTEN/NOTIFY` once distributed deployment becomes a target.
|
||||
|
||||
---
|
||||
|
||||
## Migration & Schema Concerns
|
||||
|
||||
### Migration count is small but each is unversioned in app
|
||||
|
||||
- 13 migration files in `migrations/` (`migrations/20260114102228_*` through `migrations/20260507144406_*`).
|
||||
- The Nitro plugin runs every pending migration on every boot (`apps/web/plugins/1.migrate.ts:23-40`).
|
||||
- There is no "down" / rollback story. Drizzle-kit generates forward-only migrations.
|
||||
|
||||
**Action:** Standard for drizzle workflows. Document that downgrade requires manual SQL.
|
||||
|
||||
### Schema notes
|
||||
|
||||
- `packages/db/src/schema/resume.ts:24` stores `password` as plaintext column type `text`, but content is always bcrypt-hashed at write (`packages/api/src/services/resume.ts:453`). Column name is misleading — should be `password_hash`. Renaming requires a non-trivial migration.
|
||||
|
||||
---
|
||||
|
||||
## Dependency Risk
|
||||
|
||||
### Pre-1.0 / preview dependencies in production critical path
|
||||
|
||||
| Package | Version | Risk |
|
||||
|---|---|---|
|
||||
| `drizzle-orm` | `1.0.0-beta.22` | Beta. Breaking changes possible until 1.0.0 stable. (`packages/api/package.json`, `packages/auth/package.json`, `packages/db/package.json`, `apps/web/package.json`) |
|
||||
| `drizzle-kit` | `1.0.0-beta.22` | Beta migrator. Snapshot format may change. (`packages/db/package.json`) |
|
||||
| `drizzle-zod` | `1.0.0-beta.14-a36c63d` | Beta + specific commit hash — version drift risk. (`packages/api/package.json`) |
|
||||
| `nitro` | `3.0.260429-beta` | Beta server runtime in the critical path. (`apps/web/package.json`) |
|
||||
| `@typescript/native-preview` | `7.0.0-dev.20260510.1` | Dev build of `tsgo`. All packages use it for `typecheck`. |
|
||||
| `typescript` | `^6.0.3` | TS 6 — recent major. |
|
||||
| `vite` | `^8.0.11` | Vite 8 — recent major. |
|
||||
| `react` / `react-dom` | `^19.2.6` | React 19. |
|
||||
| `@orpc/experimental-ratelimit` | `^1.14.2` | Explicitly experimental in the package name. (`packages/api/package.json`) |
|
||||
| `@tanstack/react-start` | `^1.167.65` | TanStack Start is pre-1.x semver but not labelled beta. |
|
||||
| `better-auth` | `1.6.10` (exact) | Pinned exact, not `^`. Manual upgrade required for security patches. |
|
||||
|
||||
**Impact:** Library upgrades in this stack are high-risk; the team must follow each upstream's release notes closely. The `BETA` / `DEV` versions also affect lockfile churn.
|
||||
|
||||
**Fix approach:**
|
||||
- Set up Renovate / Dependabot for the beta packages specifically, so security patches are caught.
|
||||
- Run `pnpm knip` and `pnpm dlx npm-check-updates` regularly (both are devDependencies, `package.json:34, :40`).
|
||||
|
||||
### Several heavy native dependencies are externalised at build time
|
||||
|
||||
`apps/web/vite.config.ts:55-57` externals `bcrypt`, `sharp`, `@aws-sdk/client-s3`. `packages/runtime-externals` is the workspace package that wraps these. Knip is configured to ignore them (`knip.json:14`).
|
||||
|
||||
**Risk:** Operators must ensure these are installed at runtime (covered in `Dockerfile`). Self-hosters using a Node base image without build-essentials may hit `bcrypt` build failures.
|
||||
|
||||
**Fix approach:** Mostly documented; consider switching `bcrypt` → `bcryptjs` (pure JS) to remove a build dependency.
|
||||
|
||||
---
|
||||
|
||||
## Cross-Cutting Hard-to-Find Logic
|
||||
|
||||
These are non-obvious surfaces that consumers of this map should know about before changing related code:
|
||||
|
||||
1. **PDF section filtering** — `packages/pdf/src/templates/shared/filtering.ts:25-60` decides which resume sections render in PDFs based on hidden flags and required title fields. Per-template visual exceptions live in each template directory; cross-template visual changes go here. Noted in `AGENTS.md:44`.
|
||||
|
||||
2. **React-PDF font registration & CJK fallback stack** — `packages/pdf/src/hooks/use-register-fonts.ts:68-133`. Owns standard-PDF-font handling (`isStandardPdfFontFamily`), CJK glyph-level fallback (#2986), and global hyphenation callback. Module-level registration cache (`:18`). Noted in `AGENTS.md:45`.
|
||||
|
||||
3. **Resume access policy** — `packages/api/src/helpers/resume-access-policy.ts`. Single source of truth for owner-vs-viewer redaction (`name` and `metadata.notes` stripped for non-owners), `NOT_FOUND`-vs-`FORBIDDEN` choice (not-found used to avoid existence disclosure), and self-view statistics exclusion. Owner-only mutations rely on SQL `WHERE userId =` clauses, not this policy — drift between SQL guards and policy is silent.
|
||||
|
||||
4. **Resume password cookie** — `packages/api/src/helpers/resume-access.ts`. Cookie name `resume_access_{resumeId}`, signed value is `sha256(resumeId:passwordHash)`, TTL 10 minutes, `httpOnly`, `sameSite: lax`, `secure` only when `APP_URL` starts with `https`. Forgetting to set `APP_URL=https://...` in production drops the secure flag.
|
||||
|
||||
5. **OAuth `authorize` request sanitization** — `apps/web/src/routes/api/auth.$.ts:6-51` strips control chars from OAuth parameters and decodes broken-but-decodable redirect URIs before passing to Better Auth. Easy to bypass if a new OAuth flow is added that does not route through this handler.
|
||||
|
||||
6. **Dynamic client registration coercion to public client** — `apps/web/src/routes/api/auth.$.ts:53-80` forces `token_endpoint_auth_method = "none"` for unauthenticated registrations (specifically for Claude.ai's MCP onboarding quirk). This is non-standard behaviour buried in a request preprocessor.
|
||||
|
||||
7. **Builder draft sync** — `apps/web/src/components/resume/builder-resume-draft.ts:46-100` manages per-resume zustand stores keyed by resume id, with debounced patch-and-resync. Failure to clean up `runtimes` Map on resume close = subscription/timer leaks.
|
||||
|
||||
---
|
||||
|
||||
## Test Coverage Gaps (Priority Map)
|
||||
|
||||
| Area | Source files | Test files | Priority |
|
||||
|------|-------------:|-----------:|----------|
|
||||
| `apps/web/src/routes/**` | 125 | 1 | **High** — covers all server handlers and the builder shell |
|
||||
| `apps/web/src/routes/api/**` (rpc/auth/uploads/openapi/mcp) | ~10 | 0 | **High** — security-sensitive route handlers |
|
||||
| `apps/web/src/components/resume/**` | 5 | 2 | Medium |
|
||||
| `apps/web/src/dialogs/**` | ~30 | 1 (`store.test.ts`) | Medium |
|
||||
| `packages/api/src/routers/**` | 7 | 0 (DTO test only) | **High** — auth-protected procedures |
|
||||
| `packages/api/src/services/**` | 8 | 1 (`ai.test.ts`) | High |
|
||||
| `packages/auth/src/**` | 3 | 0 | **High** — central auth config never directly tested |
|
||||
| `packages/email/src/**` | ~5 | 0 | Medium |
|
||||
| `packages/import/src/**` | several importers | 1 (v4) | Medium |
|
||||
| `packages/pdf/src/templates/shared/**` | ~20 | 11 | Low (well covered) |
|
||||
|
||||
---
|
||||
|
||||
*Concerns audit: 2026-05-11*
|
||||
@@ -0,0 +1,238 @@
|
||||
# Coding Conventions
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
This document is the canonical short-form reference for code style, structure, and feature-boundary rules in the Reactive Resume monorepo. The authoritative long-form reference lives in `AGENTS.md` at the repo root — when in doubt, defer to it.
|
||||
|
||||
## Tooling Stack
|
||||
|
||||
- **Formatter + linter:** Biome 2.x (`biome.json`). Pre-commit hook (`lefthook.yml`) runs `biome check --write --unsafe` on staged JS/TS/JSON files.
|
||||
- **Type checker:** `tsgo --noEmit` (the `@typescript/native-preview` TS implementation) in every workspace package and `apps/web`. Use `pnpm typecheck` at the root or `pnpm --filter <pkg> typecheck` per package.
|
||||
- **TypeScript base config:** `packages/config/tsconfig.base.json`, consumed by `tsconfig.json` at root and per-package `tsconfig.json` files.
|
||||
- **Commit hook:** commitlint with `@commitlint/config-conventional` (`commitlint.config.cjs`). `body-max-line-length` is disabled.
|
||||
- **Internal CLI:** `pnpm check` is **write-capable** (`biome check --write --unsafe .`). Use `biome check .` (no `--write`) for read-only inspection.
|
||||
|
||||
## Biome Configuration (`biome.json`)
|
||||
|
||||
**Formatter:**
|
||||
- `lineWidth: 120`
|
||||
- `indentStyle: "tab"`
|
||||
- `javascript.formatter.quoteStyle: "double"`
|
||||
- CSS parser has `tailwindDirectives: true`
|
||||
|
||||
**Linter rules (notable):**
|
||||
- `recommended: true`
|
||||
- `suspicious.noExplicitAny: "error"` — `any` is forbidden
|
||||
- `suspicious.noArrayIndexKey: "off"`
|
||||
- `correctness.useExhaustiveDependencies: "info"` (not an error)
|
||||
- `style.useImportType: { level: "on", options: { style: "separatedType" } }` — `import type` is required when an import is type-only and must be on its own line (not inlined per-specifier)
|
||||
- `style.noInferrableTypes: "error"` — drop redundant annotations like `const x: number = 1`
|
||||
- `style.noUselessElse: "error"`
|
||||
- `style.useSelfClosingElements: "error"`
|
||||
- `style.useSingleVarDeclarator: "error"`
|
||||
- `style.noParameterAssign: "error"`
|
||||
- `style.useDefaultParameterLast: "error"`
|
||||
- `nursery.useSortedClasses: { level: "warn", fix: "safe", functions: ["clsx", "cva", "cn"] }` — Tailwind class strings inside these wrappers are sorted automatically
|
||||
|
||||
**Import organization:** Biome's `assist.actions.source.organizeImports` is `on`, grouped in this order (`biome.json` lines 32-39):
|
||||
|
||||
1. Type-only imports (`{ "type": true }`)
|
||||
2. Node built-ins (`":NODE:"`, excluding Bun)
|
||||
3. Vitest + Testing Library (`vitest`, `vitest/**`, `@testing-library/**`)
|
||||
4. External npm packages (`:PACKAGE:`, excluding `@reactive-resume/**`)
|
||||
5. Internal workspace packages (`@reactive-resume/**`)
|
||||
6. App-local aliases / relative paths (`:ALIAS:`, `:PATH:`)
|
||||
|
||||
A representative file that demonstrates the order: `packages/api/src/services/resume.ts` (type imports → node-free externals → `@reactive-resume/*` → relatives).
|
||||
|
||||
**Biome ignores:** `**/.turbo`, `**/.output`, `**/.vercel`, `**/.wrangler`, `**/coverage`, `**/reports`, `**/routeTree.gen.ts`.
|
||||
|
||||
## TypeScript Conventions
|
||||
|
||||
**Strictness flags** in `packages/config/tsconfig.base.json` are intentionally aggressive:
|
||||
|
||||
- `strict: true`
|
||||
- `verbatimModuleSyntax: true` (pairs with Biome's `useImportType` enforcement)
|
||||
- `exactOptionalPropertyTypes: true`
|
||||
- `noUncheckedIndexedAccess: true`
|
||||
- `noUncheckedSideEffectImports: true`
|
||||
- `noUnusedLocals: true`, `noUnusedParameters: true`
|
||||
- `noFallthroughCasesInSwitch: true`
|
||||
- `isolatedModules: true`, `moduleResolution: "bundler"`
|
||||
- `target: "ESNext"`, `module: "ESNext"`
|
||||
|
||||
**Type-only imports:** Always use `import type { … }` on its own line when an import is only used in type positions. See `packages/api/src/services/resume.ts:1-5` and `packages/api/src/context.ts:1-2`.
|
||||
|
||||
**`any`:** Banned by Biome (`noExplicitAny: "error"`). Use `unknown` and narrow, or use a discriminated union.
|
||||
|
||||
**Path aliases (web app only):** `apps/web/tsconfig.json` declares:
|
||||
- `@/*` → `./src/*`
|
||||
- `@reactive-resume/ui/*` → `../../packages/ui/src/*` (build-time alias for direct source resolution)
|
||||
|
||||
Internal packages do NOT use `@/*` aliases — they import siblings via relative paths and cross-package code via the `@reactive-resume/*` export maps.
|
||||
|
||||
## Package Export Conventions (source-consumed packages)
|
||||
|
||||
**Internal packages export `src` files directly via `package.json` `exports`.** There is no per-package build step; consumers pick up the TS source through bundler/vitest resolution. Do not assume any `dist/` output.
|
||||
|
||||
Sample (`packages/utils/package.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "@reactive-resume/utils",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
"./color": "./src/color.ts",
|
||||
"./date": "./src/date.ts",
|
||||
"./resume/docx": "./src/resume/docx/index.ts",
|
||||
"./resume/patch": "./src/resume/patch.ts",
|
||||
"./url-security.node": "./src/url-security.node.ts"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Conventions when adding cross-package exports:**
|
||||
|
||||
- Use **explicit subpath exports**, not wildcards in `@reactive-resume/utils`/`@reactive-resume/db`. Some packages (`@reactive-resume/api`) do use wildcards like `"./services/*"` — match the style of the package you're editing.
|
||||
- Filenames ending in `.node.ts` (e.g. `packages/utils/src/url-security.node.ts`, `packages/utils/src/monorepo.node.ts`) are reserved for Node-only code that must not be imported from the browser bundle.
|
||||
- Filename suffixes `.browser.tsx` (e.g. `apps/web/src/components/resume/preview.browser.tsx`) mark code that must stay out of SSR paths.
|
||||
|
||||
## React & Web App Conventions
|
||||
|
||||
**Routing:** TanStack Router with file-based routes under `apps/web/src/routes`.
|
||||
- Each route file calls `createFileRoute("/path")({ … })` and exports `Route`. Example: `apps/web/src/routes/auth/login.tsx:18`.
|
||||
- `apps/web/src/routeTree.gen.ts` is generated — never hand-edit it (also Biome-ignored).
|
||||
- Server-only handlers live in `server.handlers` blocks on routes like `apps/web/src/routes/api/rpc.$.ts`, `apps/web/src/routes/api/auth.$.ts`, `apps/web/src/routes/api/health.ts`.
|
||||
- Public resume route `apps/web/src/routes/$username/$slug.tsx` is `ssr: "data-only"`; nested builder preview is `ssr: false`.
|
||||
|
||||
**Router context** (`apps/web/src/router.tsx`) provides `queryClient`, `orpc`, `theme`, `locale`, `session`, and `flags`. Read them via `Route.useRouteContext()` rather than refetching.
|
||||
|
||||
**Components:**
|
||||
- Functional components only. React 19.
|
||||
- File naming: **kebab-case** for files and directories (e.g. `apps/web/src/components/command-palette/`, `packages/ui/src/components/alert-dialog.tsx`, `apps/web/src/dialogs/api-key/create.tsx`).
|
||||
- Test file: `<name>.test.ts(x)` colocated with the implementation (e.g. `packages/ui/src/components/button.tsx` + `packages/ui/src/components/button.test.tsx`).
|
||||
- shadcn/Base UI primitive components in `packages/ui/src/components/*.tsx` are exported via the `./components/*` subpath. Hooks via `./hooks/*`.
|
||||
|
||||
**Tailwind class strings:** Always wrap in `clsx`, `cva`, or `cn` so Biome's `useSortedClasses` rule can sort them safely.
|
||||
|
||||
## oRPC Conventions (`packages/api`)
|
||||
|
||||
- **Procedures:** Build new procedures with `publicProcedure` or `protectedProcedure` from `packages/api/src/context.ts:79-99`. `protectedProcedure` adds the authenticated `User` to context and throws `ORPCError("UNAUTHORIZED")` otherwise; prefer it for anything authenticated.
|
||||
- **Routers** live in `packages/api/src/routers/*.ts` and are composed in `packages/api/src/routers/index.ts` (`ai`, `auth`, `flags`, `resume`, `statistics`, `storage`). Each router file may export sub-routers internally (see `tagsRouter`, `statisticsRouter`, `analysisRouter`, `updatesRouter` in `packages/api/src/routers/resume.ts`).
|
||||
- **Business logic** belongs in `packages/api/src/services/*.ts`. Handlers must stay thin: validate input, call a service, return its output. Example pattern: `packages/api/src/routers/resume.ts:24-26` calls `resumeService.tags.list(...)`.
|
||||
- **DTOs / IO schemas** live in `packages/api/src/dto/*.ts` and are imported as `resumeDto.<op>.input` / `resumeDto.<op>.output`.
|
||||
- **Errors:** Declare typed errors with `.errors({ CODE: { message, status } })` on the procedure (see `packages/api/src/routers/resume.ts:282-291`). Throw `new ORPCError("CODE")` inside services. The web side translates codes to user-facing strings in `apps/web/src/libs/error-message.ts`.
|
||||
- **Route metadata:** Every procedure declares `.route({ method, path, tags, operationId, summary, description, successDescription })` so the OpenAPI/MCP endpoints stay accurate.
|
||||
- **Rate limiting:** Apply via `.use(resumeMutationRateLimit)` / `.use(resumePasswordRateLimit)` from `packages/api/src/middleware/rate-limit`.
|
||||
- **Web exposure:** Routers are mounted at `/api/rpc` by `apps/web/src/routes/api/rpc.$.ts`. The isomorphic client lives at `apps/web/src/libs/orpc/client.ts` — server-side calls use the in-process router client and browser calls hit `/api/rpc` with credentials.
|
||||
|
||||
## Drizzle Conventions (`packages/db`)
|
||||
|
||||
- **Schema location:** `packages/db/src/schema/*.ts`. Tables exported from `packages/db/src/schema/index.ts`.
|
||||
- **Client:** `packages/db/src/client.ts`, exported as `@reactive-resume/db/client`.
|
||||
- **Migrations:** Generated to **`migrations/` at the repo root** by `drizzle-kit generate`. Use `pnpm db:generate` after schema changes.
|
||||
- **`DATABASE_URL` handling:** `drizzle-kit` does **not** auto-load `.env`. Always export `DATABASE_URL` in the shell (or prefix the command) before running `pnpm db:generate` / `pnpm db:migrate`.
|
||||
- **Runtime migration:** `apps/web/plugins/1.migrate.ts` runs migrations on Nitro startup, so `pnpm db:migrate` is mostly used for first-time setup or debugging.
|
||||
- **Patterns observed in `packages/db/src/schema/resume.ts`:**
|
||||
- Primary keys use `pg.text("id").$defaultFn(() => generateId())` (UUIDv7 from `@reactive-resume/utils/string`).
|
||||
- `createdAt` / `updatedAt` use `withTimezone: true`, `.defaultNow()`, and `$onUpdate(() => new Date())`.
|
||||
- JSONB columns get `.$type<T>()` for end-to-end typing.
|
||||
- Composite uniques/indexes are declared in the table's tuple callback.
|
||||
- Foreign keys use `onDelete: "cascade"`.
|
||||
|
||||
## Schema-First Change Workflow
|
||||
|
||||
When changing resume data shape, propagate in this order (per `AGENTS.md`):
|
||||
|
||||
1. **`packages/schema/src/resume/*.ts`** — Zod schemas and types (entry point).
|
||||
2. **`packages/api/src/dto/*.ts`** — API DTOs that re-use those schemas.
|
||||
3. **`packages/import/src/*.tsx`** — importers (`json-resume`, `reactive-resume-json`, `reactive-resume-v4-json`).
|
||||
4. **`packages/pdf/src/templates/**`** — PDF rendering for every template (`azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`). Shared filtering: `packages/pdf/src/templates/shared/filtering.ts`.
|
||||
5. **`apps/web/src/`** — builder forms and any consumer hooks.
|
||||
|
||||
Adding/renaming a template requires changes in `packages/schema/src/templates.ts`, `packages/pdf/src/templates/index.ts`, the template directory `packages/pdf/src/templates/<name>/`, and static previews under `apps/web/public/templates/{jpg,pdf}/`.
|
||||
|
||||
## Error Handling Patterns
|
||||
|
||||
- **Services:** Throw `new ORPCError("CODE")` (e.g. `NOT_FOUND`, `UNAUTHORIZED`, custom `RESUME_LOCKED`). Example: `packages/api/src/services/resume.ts:54`.
|
||||
- **Routers:** Declare expected codes via `.errors({ … })` so callers get typed error narrowing.
|
||||
- **Auth helpers** in `packages/api/src/context.ts:14-55` catch verification errors and `console.warn(...)` rather than throwing, returning `null` so the caller can fall through to the next auth method.
|
||||
- **Web side:** `apps/web/src/libs/error-message.ts` exposes `getReadableErrorMessage`, `getOrpcErrorMessage`, and `getResumeErrorMessage` for translating raw errors into UI-safe strings. Pair with `sonner` toasts (see `apps/web/src/routes/auth/login.tsx:45-64`).
|
||||
|
||||
## Logging
|
||||
|
||||
- No dedicated logging framework. Use `console.warn` / `console.error` for diagnostic output, scoped tightly (see `packages/api/src/context.ts:25`).
|
||||
- Server logs are also where dev-mode email verification links surface when SMTP is unconfigured.
|
||||
|
||||
## i18n & Translations (Lingui)
|
||||
|
||||
- **Library:** `@lingui/core`, `@lingui/react` with the babel macro plugin enabled in `apps/web/vitest.config.ts` and Vite config.
|
||||
- **Config:** `apps/web/lingui.config.ts` — source locale `en-US`, pseudo locale `zu-ZA`, 50+ supported locales. Catalogs live in `apps/web/locales/{locale}.po`.
|
||||
- **Usage:**
|
||||
- Import macros: `import { t } from "@lingui/core/macro"` and `import { Trans } from "@lingui/react/macro"` (`apps/web/src/routes/auth/login.tsx:1-2`).
|
||||
- Wrap displayed text in `<Trans>...</Trans>` for JSX or `` t`...` `` / `t({ message, comment })` for strings.
|
||||
- Provide `comment:` for ambiguous fallback strings (see `login.tsx:57-60`).
|
||||
- **Extraction:** `pnpm lingui:extract` (turbo task in `apps/web`). Crowdin sync runs via `.github/workflows/crowdin-sync.yml`.
|
||||
|
||||
## Comments Policy
|
||||
|
||||
Comments stay short and explain **why**, not what. Patterns observed:
|
||||
|
||||
- One-line `//` comments before a non-obvious decision (`vitest.setup.ts:5-7` explains why `cleanup()` is registered manually; `packages/utils/src/monorepo.node.test.ts:11` explains the `realpathSync` call).
|
||||
- JSDoc/TSDoc only on cross-package public functions where intent matters (e.g. `packages/api/src/context.ts:57-63` documents `resolveUserFromRequestHeaders`).
|
||||
- Inline `/* @__PURE__ */` annotations on `$onUpdate(() => new Date())` in Drizzle schemas (`packages/db/src/schema/resume.ts:36`).
|
||||
- No commented-out code in commits.
|
||||
|
||||
## Git Hooks & Commit Style
|
||||
|
||||
**Lefthook (`lefthook.yml`):**
|
||||
|
||||
```yaml
|
||||
pre-commit:
|
||||
parallel: true
|
||||
jobs:
|
||||
- name: lint and format
|
||||
glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}"
|
||||
run: pnpm biome check --write --unsafe --no-errors-on-unmatched --files-ignore-unknown=true {staged_files}
|
||||
stage_fixed: true
|
||||
|
||||
commit-msg:
|
||||
jobs:
|
||||
- name: commitlint
|
||||
run: pnpm commitlint --edit {1}
|
||||
```
|
||||
|
||||
The pre-commit hook **rewrites staged files** with Biome fixes (`stage_fixed: true`). Run `pnpm check` before staging to avoid surprises.
|
||||
|
||||
**Commit messages:** Conventional Commits (`commitlint.config.cjs` extends `@commitlint/config-conventional`). Examples from `git log`:
|
||||
|
||||
- `feat: implement an AI chat window for agentic resume building`
|
||||
- `fix(pdf): register CJK fallback font so Chinese/Japanese/Korean text renders correctly`
|
||||
- `fix(lapras): adjust lapras border color to fixed gray`
|
||||
- `chore: migrate from jsdom to happy-dom for testing environment`
|
||||
- `docs: update AGENTS.md with detailed codebase structure`
|
||||
- `test: add unit and component tests across the monorepo`
|
||||
- `chore(release): v5.1.2`
|
||||
|
||||
Allowed types: `feat`, `fix`, `chore`, `docs`, `test`, `refactor`, `style`, `perf`, `build`, `ci`, `revert`. Scope is optional and lowercase. `body-max-line-length` is disabled, so long PR bodies are fine.
|
||||
|
||||
## CI Workflows
|
||||
|
||||
- **`.github/workflows/autofix.yml`** runs on every PR and push to `main`: `pnpm install --frozen-lockfile` → `pnpm knip --fix` (prune unused deps) → `pnpm check` (Biome) → `autofix-ci/action` opens fix commits.
|
||||
- **`.github/workflows/docker-build.yml`** is `workflow_dispatch` only, builds multi-arch Docker images.
|
||||
- **`.github/workflows/crowdin-sync.yml`** syncs translation catalogs.
|
||||
- There is no CI workflow that runs `pnpm test` today. Tests run locally via `pnpm test` / `pnpm test:ci` and through turbo's `test:agent` reporter for agent-driven runs.
|
||||
|
||||
## Function & Module Design
|
||||
|
||||
- **Function size:** Most service functions stay under ~40 lines. Bigger flows (e.g. `resumeService.patch`) are decomposed into helpers in `packages/api/src/helpers/*` and `packages/api/src/services/resume-events.ts`.
|
||||
- **Parameters:** Service helpers consistently take a single object argument (`async ({ id, userId })`) rather than positional args. See `packages/api/src/services/resume.ts:27,41,65`.
|
||||
- **Return values:** Services return plain typed objects; routers shape the response via `.output(schema)` so Zod validates at the boundary.
|
||||
- **Module boundaries:**
|
||||
- Cross-package imports must go through declared `exports` subpaths. Reaching into `packages/<x>/src/internal-file` directly is not allowed.
|
||||
- `packages/utils` exports are narrowly scoped — if you need a new helper for another package, add a new explicit subpath in `packages/utils/package.json`.
|
||||
- `packages/runtime-externals` and `packages/scripts` are support packages; avoid importing them into runtime code.
|
||||
|
||||
---
|
||||
|
||||
*Convention analysis: 2026-05-11*
|
||||
@@ -0,0 +1,239 @@
|
||||
# External Integrations
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
## APIs & External Services
|
||||
|
||||
**AI Providers (user-supplied API keys, called per-request from `packages/api/src/services/ai.ts`):**
|
||||
- OpenAI — Default base URL `https://api.openai.com/v1` (`packages/ai/src/types.ts`)
|
||||
- SDK: `@ai-sdk/openai ^3.0.63` via `createOpenAI(...).chat(model)`
|
||||
- API key supplied per-call from the resume's `ai` config; not read from server env
|
||||
- Anthropic — Default base URL `https://api.anthropic.com/v1`
|
||||
- SDK: `@ai-sdk/anthropic ^3.0.76` via `createAnthropic(...).languageModel(model)`
|
||||
- Google Gemini — Default base URL `https://generativelanguage.googleapis.com/v1beta`
|
||||
- SDK: `@ai-sdk/google ^3.0.71` via `createGoogleGenerativeAI(...).languageModel(model)`
|
||||
- Vercel AI Gateway — Default base URL `https://ai-gateway.vercel.sh/v3/ai`
|
||||
- SDK: `ai ^6.0.177` via `createGateway(...).languageModel(model)`
|
||||
- OpenRouter — Default base URL `https://openrouter.ai/api/v1`
|
||||
- SDK: `@ai-sdk/openai-compatible ^2.0.47` via `createOpenAICompatible({ name: "openrouter", ... })`
|
||||
- Ollama — Default base URL `https://ollama.com/api`
|
||||
- SDK: `ollama-ai-provider-v2 ^3.5.0` via `createOllama(...)`
|
||||
- Security: `packages/api/src/services/ai.ts` `resolveBaseUrl` rejects non-HTTPS URLs, credentialed URLs, and private/loopback hosts (via `packages/utils/src/url-security.node.ts`).
|
||||
- File-input AI calls are capped at 10MB (`MAX_AI_FILE_BYTES`).
|
||||
|
||||
**OAuth Identity Providers (server-side env-configured, optional):**
|
||||
- Google — `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` (config in `packages/auth/src/config.ts`).
|
||||
- GitHub — `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET`.
|
||||
- LinkedIn — `LINKEDIN_CLIENT_ID` / `LINKEDIN_CLIENT_SECRET`.
|
||||
- Custom Generic OAuth — `OAUTH_PROVIDER_NAME`, `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, plus either `OAUTH_DISCOVERY_URL` or all three of `OAUTH_AUTHORIZATION_URL`/`OAUTH_TOKEN_URL`/`OAUTH_USER_INFO_URL`. Scopes from `OAUTH_SCOPES` (defaults `openid profile email`). Wired via Better Auth's `genericOAuth` plugin.
|
||||
- Trusted providers for account linking (`packages/auth/src/config.ts`): `google`, `github`, `linkedin`.
|
||||
|
||||
**Translation / Localization:**
|
||||
- Crowdin — `CROWDIN_PROJECT_ID`, `CROWDIN_PERSONAL_TOKEN`. Config in `crowdin.yml`; pull request automation labelled `l10n`. Source catalog `apps/web/locales/en-US.po`.
|
||||
|
||||
**Font Catalog Tooling:**
|
||||
- Google Fonts Developer API — `GOOGLE_CLOUD_API_KEY` consumed by `packages/scripts/fonts/generate.ts` hitting `https://www.googleapis.com/webfonts/v1/webfonts`. Output committed at `packages/fonts/src/webfontlist.json`.
|
||||
|
||||
## Data Storage
|
||||
|
||||
**Databases:**
|
||||
- PostgreSQL — Required relational database.
|
||||
- Connection env: `DATABASE_URL` (validated as `postgres(ql)://...` in `packages/env/src/server.ts`)
|
||||
- Client: `drizzle-orm 1.0.0-beta.22` with `pg ^8.20.0` Pool, instantiated in `packages/db/src/client.ts` (singleton via `globalThis.__pool` / `globalThis.__drizzle`).
|
||||
- Schema location: `packages/db/src/schema/index.ts` (auth + resume tables) with `packages/db/src/relations.ts`.
|
||||
- Migrations: generated by `drizzle-kit` into repo-root `migrations/` (e.g. `20260507144406_fast_nova/`). Generator config at `packages/db/drizzle.config.ts`.
|
||||
- Auto-migration on app start: `apps/web/plugins/1.migrate.ts` runs `drizzle-orm/node-postgres/migrator` against the resolved migrations folder.
|
||||
- `drizzle-kit` does NOT auto-load `.env` — `DATABASE_URL` must be exported before running `pnpm db:generate` / `pnpm db:migrate` (see `AGENTS.md` "Important" callout).
|
||||
- Health probe: `packages/api/src/services/storage.ts` healthcheck + `apps/web/src/routes/api/health.ts` runs `SELECT 1` through Drizzle (1.5s timeout).
|
||||
|
||||
**File Storage (selected at runtime in `packages/api/src/services/storage.ts`):**
|
||||
- S3-compatible object storage when all three of `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET` are set.
|
||||
- Client: `@aws-sdk/client-s3 ^3.1045.0` (`S3Client` constructed in `S3StorageService`).
|
||||
- Options: `S3_REGION` (default `us-east-1`), `S3_ENDPOINT` (for non-AWS), `S3_FORCE_PATH_STYLE`.
|
||||
- Tested compatible backends: AWS S3 and SeaweedFS (see `compose.dev.yml` / `compose.yml`).
|
||||
- All writes use `ACL: "public-read"` (consumed publicly from `/uploads/$userId/$` route, with path validation).
|
||||
- Local filesystem fallback (`LocalStorageService`) used when any of the three S3 vars is missing.
|
||||
- Path: `LOCAL_STORAGE_PATH` if set (must be absolute); otherwise `<workspace>/data` in dev or `/app/data` in the Docker image.
|
||||
- Validated at boot by `apps/web/plugins/2.storage.ts` (mkdir + access check).
|
||||
- Key layout (built in `packages/api/src/services/storage.ts`):
|
||||
- `uploads/{userId}/pictures/{timestamp}.jpeg`
|
||||
- `uploads/{userId}/screenshots/{resumeId}/{timestamp}.jpeg`
|
||||
- `uploads/{userId}/pdfs/{resumeId}/{timestamp}.pdf`
|
||||
- Public read route: `apps/web/src/routes/uploads/$userId.$.tsx` (ETag, content-type sniffing, path traversal protection).
|
||||
- Image preprocessing: `sharp ^0.34.5` resizes to 800x800 and re-encodes JPEG at quality 80, unless `FLAG_DISABLE_IMAGE_PROCESSING=true`.
|
||||
|
||||
**Caching:**
|
||||
- No external cache (Redis/Memcached) configured.
|
||||
- In-process rate limiter: `@orpc/experimental-ratelimit` `MemoryRatelimiter` (`packages/api/src/middleware/rate-limit/index.ts`).
|
||||
- Workbox precache in the service worker (PWA) — `apps/web/vite.config.ts` `VitePWA` setup (skipWaiting, clientsClaim, cleanupOutdatedCaches).
|
||||
|
||||
## Authentication & Identity
|
||||
|
||||
**Auth Provider:** Better Auth `1.6.10`, configured in `packages/auth/src/config.ts`.
|
||||
- Mounted as a TanStack Start server handler at `/api/auth/*` via `apps/web/src/routes/api/auth.$.ts`.
|
||||
- Drizzle adapter: `@better-auth/drizzle-adapter` bound to `db` + schema (provider `pg`).
|
||||
- Trusted origins: `http://localhost:3000`, `http://127.0.0.1:3000`, and the normalized origin of `APP_URL`.
|
||||
- Secure cookies enabled automatically when `APP_URL` is `https://`.
|
||||
- Trusted IP headers (used by both Better Auth `advanced.ipAddress.ipAddressHeaders` and the oRPC rate limiter): `CF-Connecting-IP`, `CF-Connecting-IPv6`, `True-Client-IP`, `X-Forwarded-For`, `X-Real-IP` (`packages/utils/src/rate-limit.ts`).
|
||||
- Telemetry: explicitly disabled.
|
||||
|
||||
**Email/Password:**
|
||||
- Enabled unless `FLAG_DISABLE_EMAIL_AUTH=true`.
|
||||
- Password hash: `bcrypt` (cost 10) via `hash` / `compare` from `bcrypt ^6.0.0`.
|
||||
- Min 8, max 64 char passwords.
|
||||
- Email verification: sent on signup using `VerifyEmail` template from `@reactive-resume/email/templates/auth`.
|
||||
- Reset password: `sendResetPassword` -> `ResetPasswordEmail` template.
|
||||
- Email change: `sendChangeEmailConfirmation` -> `VerifyEmailChange` template.
|
||||
|
||||
**Better Auth Plugins (in `packages/auth/src/config.ts`):**
|
||||
- `jwt()` — JWKS published at `/api/auth/jwks` (also referenced by `verifyOAuthToken`).
|
||||
- `admin()` — Admin operations.
|
||||
- `passkey()` (`@better-auth/passkey ^1.6.10`) — WebAuthn passkeys.
|
||||
- `genericOAuth({ config })` — Driven by `OAUTH_*` env vars when configured.
|
||||
- `twoFactor({ issuer: "Reactive Resume" })` — TOTP + backup codes; UI routes `/auth/verify-2fa` and `/auth/verify-2fa-backup`.
|
||||
- `apiKey()` (`@better-auth/api-key ^1.6.10`) — Header `x-api-key`; `enableSessionForAPIKeys: true`; per-key rate limit 1000 req/hour.
|
||||
- `oauthProvider()` (`@better-auth/oauth-provider ^1.6.10`) — Makes this app act as an OAuth 2.1 authorization server for MCP clients. Allows dynamic and unauthenticated client registration (RFC 7591) but redirect URIs are gated by an allowlist in the auth `hooks.before` middleware and `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS`. Audiences whitelist: `${APP_URL}`, `${APP_URL}/`, `${APP_URL}/mcp`, `${APP_URL}/mcp/`.
|
||||
- `username()` — Normalized lowercase usernames (`^[a-z0-9._-]+$`, length 3–64).
|
||||
- `dash({ apiKey: BETTER_AUTH_API_KEY })` — Better Auth Dashboard (only when `BETTER_AUTH_API_KEY` is set).
|
||||
|
||||
**Social Providers:**
|
||||
- Google, GitHub, LinkedIn — Each activates only when both `*_CLIENT_ID` and `*_CLIENT_SECRET` env vars are set (`packages/auth/src/config.ts`). `disableImplicitSignUp: true`; account linking enabled.
|
||||
|
||||
**Session / Access in API context:**
|
||||
- `packages/api/src/context.ts` exposes `protectedProcedure` (referenced in `AGENTS.md`) for authenticated procedures.
|
||||
- oRPC middleware reads request headers via `RequestHeadersPlugin` (`apps/web/src/routes/api/rpc.$.ts`, `apps/web/src/routes/api/openapi.$.ts`).
|
||||
|
||||
**API Key Auth for HTTP / MCP:**
|
||||
- `x-api-key` header recognised by Better Auth API Key plugin.
|
||||
- OpenAPI spec at `/api/openapi/spec.json` declares `apiKey` security scheme (`apps/web/src/routes/api/openapi.$.ts`).
|
||||
- MCP server first tries OAuth Bearer (`Authorization: Bearer ...`), then falls back to `x-api-key` (`apps/web/src/routes/mcp/index.ts`).
|
||||
|
||||
## Monitoring & Observability
|
||||
|
||||
**Error Tracking:**
|
||||
- None — no Sentry/Datadog/Rollbar SDK present.
|
||||
- Errors are logged via `console.error` (oRPC interceptors `onError` in `apps/web/src/routes/api/rpc.$.ts` and `apps/web/src/routes/api/openapi.$.ts`).
|
||||
|
||||
**Health Checks:**
|
||||
- `GET /api/health` — `apps/web/src/routes/api/health.ts` returns JSON with DB and storage status; 503 if unhealthy. Used by Docker `HEALTHCHECK`.
|
||||
|
||||
**Logs:**
|
||||
- `console.info`/`console.warn`/`console.error` only. SMTP failures, missing config, sanitization diagnostics, and migration progress are all written to stdout/stderr.
|
||||
|
||||
## CI/CD & Deployment
|
||||
|
||||
**Hosting / Distribution:**
|
||||
- Self-hosted Docker image — `Dockerfile` builds final image around `node:24-slim`, expose port 3000, default `LOCAL_STORAGE_PATH=/app/data`. Multi-stage uses `turbo prune` for both the web app and the `runtime-externals` package (which carries `bcrypt`, `sharp`, `@aws-sdk/client-s3` as native deps).
|
||||
- Container labels point to `https://rxresu.me` and `https://docs.rxresu.me`.
|
||||
|
||||
**CI Pipeline:**
|
||||
- Not present in this worktree (no `.github/workflows/` enumerated here). Scripts produce CI-friendly Vitest reports (`reports/vitest-junit.xml`, `reports/vitest-results.json`) via the `test:ci` task.
|
||||
|
||||
**Local Orchestration:**
|
||||
- `compose.dev.yml` — `postgres:latest`, `seaweedfs:latest`, `seaweedfs_create_bucket` (uses `quay.io/minio/mc:latest`).
|
||||
- `compose.yml` — Same services plus `reactive_resume` app container, networks `data_network` / `storage_network`.
|
||||
|
||||
**Git Hooks:**
|
||||
- Lefthook (`lefthook.yml`) — `pre-commit` runs `biome check --write --unsafe` on staged JS/TS/JSON files; `commit-msg` runs `commitlint --edit`.
|
||||
|
||||
## Environment Configuration
|
||||
|
||||
**Required env vars (validated by Zod in `packages/env/src/server.ts`):**
|
||||
- `APP_URL` — http(s) URL, used for auth base URL, OAuth audiences, OG metadata, and public upload URLs.
|
||||
- `DATABASE_URL` — `postgres(ql)://...`.
|
||||
- `AUTH_SECRET` — Better Auth signing secret (`openssl rand -hex 32`).
|
||||
|
||||
**Optional auth env vars:**
|
||||
- `BETTER_AUTH_API_KEY` — Enables Better Auth Dashboard plugin.
|
||||
- `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`.
|
||||
- `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET`.
|
||||
- `LINKEDIN_CLIENT_ID`, `LINKEDIN_CLIENT_SECRET`.
|
||||
- `OAUTH_PROVIDER_NAME`, `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, `OAUTH_DISCOVERY_URL`, `OAUTH_AUTHORIZATION_URL`, `OAUTH_TOKEN_URL`, `OAUTH_USER_INFO_URL`, `OAUTH_SCOPES`, `OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS`.
|
||||
|
||||
**Optional SMTP env vars (all required together to enable real sends):**
|
||||
- `SMTP_HOST`, `SMTP_PORT` (default 587), `SMTP_USER`, `SMTP_PASS`, `SMTP_FROM`, `SMTP_SECURE` (default false). Fallback in `packages/email/src/transport.ts`: log to console with subject/body when SMTP is not fully configured.
|
||||
|
||||
**Optional storage env vars:**
|
||||
- `LOCAL_STORAGE_PATH` — Must be absolute when set.
|
||||
- `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_REGION` (default `us-east-1`), `S3_ENDPOINT`, `S3_BUCKET`, `S3_FORCE_PATH_STYLE` (default false).
|
||||
|
||||
**Optional feature flags:**
|
||||
- `FLAG_DISABLE_SIGNUPS` — Disables signups across all providers.
|
||||
- `FLAG_DISABLE_EMAIL_AUTH` — Disables email/password auth and verification flows.
|
||||
- `FLAG_DISABLE_IMAGE_PROCESSING` — Skips Sharp resize/encode (useful on resource-constrained hardware).
|
||||
|
||||
**Optional tooling env vars:**
|
||||
- `CROWDIN_PROJECT_ID` and `CROWDIN_PERSONAL_TOKEN` for Crowdin translation sync.
|
||||
- `GOOGLE_CLOUD_API_KEY` — For `packages/scripts/fonts/generate.ts`.
|
||||
|
||||
**Secrets location:**
|
||||
- `.env` at the repo root (gitignored). `.env.example` provides documented defaults. Existence noted: `.env.local`, `.env.production` files present locally (contents not read; may contain secrets).
|
||||
- Turbo cache invalidation tied to env vars via `turbo.json` `globalEnv` whitelist.
|
||||
|
||||
## Webhooks & Callbacks
|
||||
|
||||
**Incoming:**
|
||||
- OAuth provider callbacks served by Better Auth: `/api/auth/oauth2/callback/{providerId}` (e.g. `/api/auth/oauth2/callback/custom` configured in `packages/auth/src/config.ts`).
|
||||
- OAuth Authorization Server endpoints (when this app acts as an OAuth provider for MCP clients): handled by Better Auth `oauthProvider` plugin under `/api/auth/oauth2/*`. Login/consent pages at `/auth/oauth` (`apps/web/src/routes/auth/oauth.ts`).
|
||||
- `.well-known` discovery routes:
|
||||
- `apps/web/src/routes/[.]well-known/oauth-authorization-server.ts` and `.../oauth-authorization-server.$.ts`
|
||||
- `apps/web/src/routes/[.]well-known/oauth-protected-resource.ts` and `.../oauth-protected-resource.$.ts`
|
||||
- `apps/web/src/routes/[.]well-known/openid-configuration.ts`
|
||||
- `apps/web/src/routes/[.]well-known/mcp/server-card[.]json.ts`
|
||||
- Generic catch-all: `apps/web/src/routes/[.]well-known/$.ts`
|
||||
- MCP Streamable HTTP transport: `apps/web/src/routes/mcp/index.ts` (uses `WebStandardStreamableHTTPServerTransport`). Authenticates via OAuth Bearer or `x-api-key`.
|
||||
|
||||
**Outgoing:**
|
||||
- AI provider HTTPS requests (see "AI Providers" above) — initiated per user request from `packages/api/src/services/ai.ts`.
|
||||
- SMTP outbound (`packages/email/src/transport.ts`) for verification, password reset, and email-change confirmations.
|
||||
- S3 PUT/GET/DELETE/LIST through `@aws-sdk/client-s3` when S3 storage is configured.
|
||||
- Crowdin and Google Fonts requests only from CI / scripts, not from the runtime web app.
|
||||
|
||||
## API Endpoints Exposed by the App
|
||||
|
||||
| Endpoint | Handler | Purpose |
|
||||
|----------|---------|---------|
|
||||
| `/api/health` | `apps/web/src/routes/api/health.ts` | Liveness/readiness JSON (DB + storage). |
|
||||
| `/api/auth/*` | `apps/web/src/routes/api/auth.$.ts` | Better Auth handler (sessions, OAuth, passkey, JWKS, etc.). |
|
||||
| `/api/rpc/*` | `apps/web/src/routes/api/rpc.$.ts` | oRPC server (`packages/api/src/routers/index.ts`: `ai`, `auth`, `flags`, `resume`, `statistics`, `storage`). |
|
||||
| `/api/openapi/*` | `apps/web/src/routes/api/openapi.$.ts` | OpenAPI-style REST wrapper of the oRPC router; spec at `/api/openapi/spec.json`. Auth via `x-api-key`. |
|
||||
| `/mcp` | `apps/web/src/routes/mcp/index.ts` | MCP Streamable HTTP server (`@modelcontextprotocol/sdk`). |
|
||||
| `/uploads/{userId}/...` | `apps/web/src/routes/uploads/$userId.$.tsx` | Public read of stored images/PDFs with ETag + path validation. |
|
||||
| `/schema.json` | `apps/web/src/routes/schema[.]json.ts` | Resume JSON schema. |
|
||||
| `/.well-known/...` | `apps/web/src/routes/[.]well-known/*` | OAuth/OIDC/MCP discovery documents. |
|
||||
|
||||
## Rate Limiting
|
||||
|
||||
**Better Auth (production only, see `packages/auth/src/config.ts` `isRateLimitEnabled`):**
|
||||
- Global default: 60 req / 60s.
|
||||
- `/sign-in/email`: 5/60s; `/sign-up/email`: 3/60s.
|
||||
- `/request-password-reset`, `/send-verification-email`: 3/600s.
|
||||
- `/two-factor/verify-otp`, `/verify-totp`, `/verify-backup-code`: 5/600s.
|
||||
- `/is-username-available`: 20/60s.
|
||||
- OAuth provider endpoints: `register` 5/60s, `authorize` 30/60s, `token` 20/60s, `introspect` 60/60s, `revoke` 30/60s, `userinfo` 60/60s.
|
||||
- API keys: 1000 req / hour per key.
|
||||
- Source: `packages/utils/src/rate-limit.ts`.
|
||||
|
||||
**oRPC procedure-level (in-memory, production only, see `packages/api/src/middleware/rate-limit/index.ts`):**
|
||||
- `resumePassword`: 5 / 10min.
|
||||
- `pdfExport`: 5 / 60s.
|
||||
- `aiRequest`: 20 / 60s.
|
||||
- `jobsSearch`: 30 / 60s.
|
||||
- `jobsTestConnection`: 10 / 60s.
|
||||
- `storageUpload`: 20 / 60s.
|
||||
- `storageDelete`: 30 / 60s.
|
||||
- `resumeMutations`: 60 / 60s.
|
||||
- Keys are derived from authenticated user id when present, otherwise from the first trusted-IP header or a UA+language fingerprint.
|
||||
|
||||
## Optional Services Declared in Compose Files
|
||||
|
||||
| Service | Image | Purpose | File |
|
||||
|---------|-------|---------|------|
|
||||
| `postgres` | `postgres:latest` | Required PostgreSQL DB | `compose.dev.yml`, `compose.yml` |
|
||||
| `seaweedfs` | `chrislusf/seaweedfs:latest` | Optional S3-compatible storage for dev/prod | `compose.dev.yml`, `compose.yml` |
|
||||
| `seaweedfs_create_bucket` | `quay.io/minio/mc:latest` | One-shot init that creates `reactive-resume` bucket | `compose.dev.yml`, `compose.yml` |
|
||||
| `reactive_resume` | Built from `Dockerfile` | The app itself in prod compose | `compose.yml` |
|
||||
|
||||
---
|
||||
|
||||
*Integration audit: 2026-05-11*
|
||||
@@ -0,0 +1,210 @@
|
||||
# Technology Stack
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
## Languages
|
||||
|
||||
**Primary:**
|
||||
- TypeScript `^6.0.3` — All workspace code under `apps/web/src` and `packages/*/src`. Typechecked with the experimental TS native compiler `@typescript/native-preview` (`7.0.0-dev.20260510.1`) via `tsgo --noEmit`.
|
||||
- TSX (React 19) — UI components in `apps/web/src`, `packages/ui/src/components`, `packages/pdf/src/templates`, and email templates in `packages/email/src/templates`.
|
||||
|
||||
**Secondary:**
|
||||
- JavaScript (ESM, `"type": "module"`) — A handful of config files such as `commitlint.config.cjs` and `apps/web/postcss.config` style snippets.
|
||||
- JSON / JSONC — `package.json`, `tsconfig.json`, `biome.json`, `turbo.json`, `knip.json`, `apps/web/components.json`, `packages/schema/schema.json`, locale and webfont metadata.
|
||||
- SQL — Drizzle-generated migrations under `migrations/` (e.g. `migrations/20260507144406_fast_nova/`).
|
||||
- YAML — `compose.yml`, `compose.dev.yml`, `lefthook.yml`, `crowdin.yml`, `pnpm-workspace.yaml`.
|
||||
- Markdown — `AGENTS.md`, `README.md`, `SECURITY.md`, `LICENSE`, docs under `docs/`.
|
||||
|
||||
## Runtime
|
||||
|
||||
**Environment:**
|
||||
- Node.js `24` — Pinned in `Dockerfile` via `ARG NODE_VERSION=24`. Single Node process exposes the web app on port `3000`.
|
||||
- Browser runtime — React 19 SSR + hydration via TanStack Start. PWA service worker registered from `apps/web/vite.config.ts`.
|
||||
|
||||
**Package Manager:**
|
||||
- pnpm `11.0.9` — Pinned in `package.json` `packageManager` field (with integrity hash). Managed via Corepack (`corepack enable`) per `AGENTS.md`.
|
||||
- Workspace topology: `pnpm-workspace.yaml` includes `apps/*` and `packages/*`.
|
||||
- Lockfile: `pnpm-lock.yaml` is present and committed at repo root.
|
||||
- `allowBuilds` in `pnpm-workspace.yaml`: `bcrypt`, `esbuild`, `lefthook`, `msw`, `sharp`.
|
||||
- `postcss` is pinned by an override to `^8.5.14` in `pnpm-workspace.yaml`.
|
||||
|
||||
**Build Orchestrator:**
|
||||
- Turborepo `^2.9.12` — `turbo.json` defines tasks (`build`, `dev`, `typecheck`, `test`, `db:generate`, `db:migrate`, `db:studio`, `lingui:extract`) and the `globalEnv` whitelist for cache invalidation.
|
||||
- The Docker build also pins `turbo@2.9.9` via `pnpm dlx` for the pruner stages.
|
||||
|
||||
## Frameworks
|
||||
|
||||
**Core (apps/web):**
|
||||
- React `^19.2.6` with `react-dom ^19.2.6` (from `apps/web/package.json`).
|
||||
- TanStack Start `^1.167.65` — Full-stack framework wiring Vite, Nitro, and React Router. Server handlers live in route files under `apps/web/src/routes`.
|
||||
- TanStack Router `^1.169.2` — File-based router. `apps/web/src/routeTree.gen.ts` is generated.
|
||||
- TanStack React Query `^5.100.9` with SSR bridge `@tanstack/react-router-ssr-query ^1.166.12`.
|
||||
- TanStack React Form `^1.32.0` and React Hotkeys `^0.10.0`.
|
||||
- Vite `^8.0.11` (rolldown-based) — `apps/web/vite.config.ts` orchestrates plugins.
|
||||
- Nitro `3.0.260429-beta` — Server framework used through `nitro/vite`. Plugins at `apps/web/plugins/1.migrate.ts` and `apps/web/plugins/2.storage.ts` run on Nitro startup.
|
||||
- `srvx ^0.11.15` — HTTP server runtime used by Nitro/TanStack Start.
|
||||
|
||||
**RPC / API:**
|
||||
- oRPC `^1.14.2` family — `@orpc/server`, `@orpc/client`, `@orpc/openapi`, `@orpc/json-schema`, `@orpc/zod`, `@orpc/tanstack-query`, `@orpc/experimental-ratelimit`.
|
||||
- `@modelcontextprotocol/sdk ^1.29.0` — MCP server exposed at `/mcp` via `apps/web/src/routes/mcp/index.ts`.
|
||||
|
||||
**Auth:**
|
||||
- Better Auth `1.6.10` — Core auth framework configured in `packages/auth/src/config.ts`.
|
||||
- Better Auth plugins: `@better-auth/api-key ^1.6.10`, `@better-auth/drizzle-adapter ^1.6.10`, `@better-auth/infra ^0.2.6` (dashboard), `@better-auth/oauth-provider ^1.6.10`, `@better-auth/passkey ^1.6.10`, plus built-ins (`admin`, `jwt`, `twoFactor`, `username`, `genericOAuth`).
|
||||
- `jose ^6.2.3` — JWT verification for OAuth tokens (MCP authentication).
|
||||
- `bcrypt ^6.0.0` — Password hashing (10 rounds in `packages/auth/src/config.ts`).
|
||||
|
||||
**Database & ORM:**
|
||||
- Drizzle ORM `1.0.0-beta.22` with PostgreSQL driver `pg ^8.20.0` (node-postgres).
|
||||
- `drizzle-kit 1.0.0-beta.22` — Migration tooling. Config at `packages/db/drizzle.config.ts` (dialect `postgresql`, schema `./src/schema/index.ts`, out `../../migrations`).
|
||||
- `drizzle-zod 1.0.0-beta.14-a36c63d` — Schema-derived Zod validators in `packages/api`.
|
||||
|
||||
**PDF / Rendering:**
|
||||
- `@react-pdf/renderer ^4.5.1` with types `@react-pdf/types ^2.11.1` — Used by `packages/pdf/src/document.tsx` and all templates under `packages/pdf/src/templates/<name>/`.
|
||||
- `pdfjs-dist 5.7.284` — Client-side PDF rendering and parsing (browser-only paths).
|
||||
- `react-pdf-html ^2.1.5`, `node-html-parser ^7.1.0`, `phosphor-icons-react-pdf ^0.1.3`, `cjk-regex ^3.4.0` — PDF helpers and CJK fallback.
|
||||
- Font registration owned by `packages/pdf/src/hooks/use-register-fonts.ts`; webfont catalog at `packages/fonts/src/webfontlist.json`.
|
||||
|
||||
**UI / Styling:**
|
||||
- Base UI / shadcn-style components — `@base-ui/react ^1.4.1`, `shadcn ^4.7.0` (CLI), components live in `packages/ui/src/components/*.tsx`. Config at `apps/web/components.json` (style `base-nova`, base color `zinc`, icon library `phosphor`).
|
||||
- Tailwind CSS `^4.3.0` via `@tailwindcss/vite ^4.3.0` and `@tailwindcss/postcss ^4.3.0`. Plugin `@tailwindcss/typography ^0.5.19`. Global stylesheet at `packages/ui/src/styles/globals.css`.
|
||||
- PostCSS `^8.5.14` and `tw-animate-css ^1.4.0`.
|
||||
- `class-variance-authority ^0.7.1`, `clsx ^2.1.1`, `tailwind-merge ^3.6.0`.
|
||||
- Icons: `@phosphor-icons/react ^2.1.10`, `@phosphor-icons/web ^2.1.2`.
|
||||
- Fonts: `@fontsource-variable/ibm-plex-sans ^5.2.8` (shipped with `packages/ui`).
|
||||
- Theming: `next-themes ^0.4.6`.
|
||||
- Animation: `motion ^12.38.0`.
|
||||
- Toasts: `sonner ^2.0.7`.
|
||||
- Command palette: `cmdk ^1.1.1`.
|
||||
- Misc UI: `react-resizable-panels ^4.11.0`, `react-window ^2.2.7`, `react-zoom-pan-pinch ^4.0.3`, `qrcode.react ^4.2.0`, `@uiw/color-convert ^2.10.1`, `@uiw/react-color-colorful ^2.10.1`.
|
||||
|
||||
**Drag & Drop and Editing:**
|
||||
- `@dnd-kit/core ^6.3.1`, `@dnd-kit/sortable ^10.0.0`, `@dnd-kit/utilities ^3.2.2`.
|
||||
- TipTap `^3.23.1` editor with `starter-kit`, `pm`, `react`, plus extensions `color`, `highlight`, `table`, `text-align`, `text-style`.
|
||||
|
||||
**State / Validation / Patterns:**
|
||||
- Zustand `^5.0.13` — Client and AI state stores (`packages/ai/src/store.ts`).
|
||||
- Immer `^11.1.8`.
|
||||
- Zod `^4.4.3` — Validators across schema, api, env, ai, import, utils packages.
|
||||
- `ts-pattern ^5.9.0` — Pattern matching in API services.
|
||||
- `es-toolkit ^1.46.1` and `fuse.js ^7.3.0`.
|
||||
|
||||
**Internationalization (i18n):**
|
||||
- Lingui `^6.0.1` family — `@lingui/core`, `@lingui/react`, `@lingui/cli`, `@lingui/format-po`, `@lingui/vite-plugin`, `@lingui/babel-plugin-lingui-macro`.
|
||||
- Babel transformer chain via `@rolldown/plugin-babel ^0.2.3` and `babel-plugin-macros ^3.1.0`.
|
||||
- Locale config at `apps/web/lingui.config.ts` (source locale `en-US`, ~55 target locales, pseudo-locale `zu-ZA`).
|
||||
- Translation catalogs at `apps/web/locales/{locale}.po`. Crowdin sync configured in `crowdin.yml`.
|
||||
|
||||
**Email:**
|
||||
- React Email `^6.1.1` with `@react-email/ui ^6.1.1` — Templates in `packages/email/src/templates/auth.tsx`.
|
||||
- Nodemailer `^8.0.7` SMTP transport — `packages/email/src/transport.ts`.
|
||||
|
||||
**AI:**
|
||||
- Vercel AI SDK `ai ^6.0.177` and `@ai-sdk/react ^3.0.179`.
|
||||
- Provider SDKs: `@ai-sdk/openai ^3.0.63`, `@ai-sdk/anthropic ^3.0.76`, `@ai-sdk/google ^3.0.71`, `@ai-sdk/openai-compatible ^2.0.47`, `ollama-ai-provider-v2 ^3.5.0`.
|
||||
- Supported providers enumerated at `packages/ai/src/types.ts`: `openai`, `anthropic`, `gemini`, `vercel-ai-gateway`, `openrouter`, `ollama`.
|
||||
- JSON patch / repair: `fast-json-patch ^3.1.1`, `jsonrepair ^3.14.0`, `deepmerge-ts ^7.1.5`.
|
||||
|
||||
**Storage:**
|
||||
- AWS SDK v3 — `@aws-sdk/client-s3 ^3.1045.0` used in `packages/api/src/services/storage.ts`. Marked external in the rolldown build (see `apps/web/vite.config.ts`) and isolated into `packages/runtime-externals` for Docker.
|
||||
|
||||
**Image Processing:**
|
||||
- Sharp `^0.34.5` — Used in `packages/api/src/services/storage.ts` `processImageForUpload`. Disabled when `FLAG_DISABLE_IMAGE_PROCESSING` is true.
|
||||
|
||||
**Document Generation / Import:**
|
||||
- `docx ^9.6.1` — DOCX export utilities in `packages/utils/src/resume/docx/`.
|
||||
- JSON Resume importers in `packages/import` (`json-resume`, `reactive-resume-json`, `reactive-resume-v4-json`).
|
||||
|
||||
**HTML Sanitization:**
|
||||
- `dompurify ^3.4.2` — Used in `packages/utils/src/sanitize.ts`.
|
||||
- `@sindresorhus/slugify ^3.0.0`, `unique-names-generator ^4.7.1`, `uuid ^14.0.0`.
|
||||
|
||||
**PWA:**
|
||||
- `vite-plugin-pwa ^1.3.0` — Workbox-based service worker, manifest defined in `apps/web/src/libs/pwa`.
|
||||
|
||||
**Testing:**
|
||||
- Vitest `^4.1.5` with `@vitest/coverage-v8 ^4.1.5` (provider `v8`).
|
||||
- Shared config in `vitest.shared.ts`; per-package configs at `<pkg>/vitest.config.ts`.
|
||||
- DOM: `happy-dom ^20.9.0` (`disableJavaScriptFileLoading`, `disableCSSFileLoading`, navigation disabled in `vitest.shared.ts`).
|
||||
- Testing Library: `@testing-library/react ^16.3.2`, `@testing-library/dom ^10.4.1`, `@testing-library/jest-dom ^6.9.1`, `@testing-library/user-event ^14.6.1`.
|
||||
- Tests are co-located in each package's `src/**/*.{test,spec}.{ts,tsx}` and discovered automatically.
|
||||
|
||||
**Lint / Format / Tooling:**
|
||||
- Biome `^2.4.15` — Sole linter + formatter (`biome.json`: tabs, double quotes, line width 120, organized import groups, `useSortedClasses` for `clsx`/`cva`/`cn`). Pre-commit runs through Lefthook.
|
||||
- Lefthook `^2.1.6` — Git hooks defined in `lefthook.yml` (`biome check --write --unsafe` on staged JS/TS/JSON files; `commitlint --edit` on commit messages).
|
||||
- Commitlint `^21.0.0` with `@commitlint/config-conventional` (see `commitlint.config.cjs`).
|
||||
- Knip `^6.12.2` — Dead-code/unused-deps detection (`knip.json`).
|
||||
- `npm-check-updates ^22.1.1`.
|
||||
- `tsx ^4.21.0` — Used by `packages/scripts` for ad hoc TS scripts.
|
||||
|
||||
## Key Dependencies
|
||||
|
||||
**Critical:**
|
||||
- `@tanstack/react-start ^1.167.65` — App framework boundary; route server handlers depend on it.
|
||||
- `@orpc/server ^1.14.2` — Type-safe RPC; backbone of `/api/rpc` and `/api/openapi`.
|
||||
- `better-auth 1.6.10` — Identity, sessions, OAuth provider, MCP auth.
|
||||
- `drizzle-orm 1.0.0-beta.22` + `pg ^8.20.0` — All DB access.
|
||||
- `@react-pdf/renderer ^4.5.1` — Resume PDF generation.
|
||||
- `@aws-sdk/client-s3 ^3.1045.0` — S3-compatible object storage.
|
||||
- `@modelcontextprotocol/sdk ^1.29.0` — MCP server endpoint.
|
||||
- `ai ^6.0.177` + `@ai-sdk/*` — Resume AI features (analysis, parsing, chat).
|
||||
|
||||
**Infrastructure:**
|
||||
- `vite ^8.0.11` + `nitro 3.0.260429-beta` — Build and server runtime.
|
||||
- `turbo ^2.9.12` — Workspace task graph and caching.
|
||||
- `dotenv ^17.4.2` — Loaded by `packages/env/src/server.ts` for app/server code (drizzle-kit does NOT auto-load).
|
||||
- `@t3-oss/env-core ^0.13.11` — Server env validation in `packages/env/src/server.ts`.
|
||||
|
||||
## Configuration
|
||||
|
||||
**TypeScript:**
|
||||
- Root `tsconfig.json` extends `@reactive-resume/config/tsconfig.base.json` (`packages/config/tsconfig.base.json`).
|
||||
- Each package has its own `tsconfig.json` and runs `tsgo --noEmit`.
|
||||
- Apps/packages export source from `src/*.ts` via package.json `exports` — no `dist/` artifacts unless explicitly built (e.g. `apps/web/.output`).
|
||||
|
||||
**Build:**
|
||||
- `apps/web/vite.config.ts` orchestrates `tailwindcss`, `tanstackStart`, `viteReact`, `lingui`, `babel` (Lingui macro preset), `nitro` (with `1.migrate.ts` and `2.storage.ts` plugins), and `VitePWA`.
|
||||
- Rolldown externals: `bcrypt`, `sharp`, `@aws-sdk/client-s3` (kept out of the client/server bundle and provided by `packages/runtime-externals` in Docker).
|
||||
- Output: `apps/web/.output/server/index.mjs` (Nitro), public assets in `apps/web/.output/public`.
|
||||
|
||||
**Database:**
|
||||
- Drizzle config: `packages/db/drizzle.config.ts` — `dialect: "postgresql"`, schema in `packages/db/src/schema/index.ts`, migrations written to repo-root `migrations/`.
|
||||
- Client: `packages/db/src/client.ts` exposes singleton `db` plus `Pool` via `pg`, using `env.DATABASE_URL`.
|
||||
- Startup auto-migration: `apps/web/plugins/1.migrate.ts` runs `drizzle-orm/node-postgres/migrator` against the resolved `migrations/` folder.
|
||||
|
||||
**Environment:**
|
||||
- Server env contract validated by Zod in `packages/env/src/server.ts` (via `@t3-oss/env-core`).
|
||||
- `dotenv` auto-loads root `.env` from `packages/env/src/server.ts` using `findWorkspaceRoot()`.
|
||||
- Required: `APP_URL`, `DATABASE_URL`, `AUTH_SECRET`.
|
||||
- Cache invalidation env vars listed in `turbo.json` `globalEnv`.
|
||||
- `.env.example` present at repo root; `.env.local` and `.env.production` exist locally (contents not read — may contain secrets).
|
||||
|
||||
**Linting / Formatting:**
|
||||
- `biome.json` — Tabs, 120-col, double quotes, sorted Tailwind classes for `clsx|cva|cn`, organized import groups (`type` imports first, then Node built-ins, test packages, third-party, `@reactive-resume/**`, then aliases/relative).
|
||||
- `lefthook.yml` — Pre-commit Biome on staged files; commit-msg Commitlint.
|
||||
- `commitlint.config.cjs` — Conventional commits.
|
||||
- `knip.json` — Workspace-level ignores for `runtime-externals` external deps.
|
||||
|
||||
**Container / Compose:**
|
||||
- `Dockerfile` (multi-stage): `base` (Node 24 slim + corepack), `pruner` (turbo prune), `builder` (frozen lockfile install + `pnpm turbo run build --filter=web --force`), `runtime-pruner` + `runtime-deps` (deploy `@reactive-resume/runtime-externals` with native deps), final `runtime` image running `node .output/server/index.mjs`, HEALTHCHECK on `/api/health`.
|
||||
- `compose.dev.yml` — Dev `postgres:latest` + `seaweedfs:latest` (S3 emulator) + `seaweedfs_create_bucket` init container using `quay.io/minio/mc:latest`.
|
||||
- `compose.yml` — Same services plus the app container `reactive_resume` built from `Dockerfile`, with `data_network`/`storage_network` and S3 env defaults pointing at SeaweedFS.
|
||||
|
||||
## Platform Requirements
|
||||
|
||||
**Development:**
|
||||
- Node.js 24, pnpm 11.0.9 (via Corepack), Docker (for Postgres / SeaweedFS).
|
||||
- Repo-local `data/` directory for local-storage mode (auto-created by `apps/web/plugins/2.storage.ts`).
|
||||
- `LOCAL_STORAGE_PATH` must be absolute when set.
|
||||
- SMTP optional; without it `packages/email/src/transport.ts` logs the email to console.
|
||||
|
||||
**Production:**
|
||||
- Single Node 24 process on port 3000 (`apps/web/.output/server/index.mjs`).
|
||||
- Official Docker image listed in `Dockerfile` labels (`org.opencontainers.image.url=https://rxresu.me`).
|
||||
- Production uses S3-compatible storage when all three of `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_BUCKET` are set; otherwise falls back to local filesystem under `/app/data` (per Dockerfile `ENV LOCAL_STORAGE_PATH=/app/data`).
|
||||
- HEALTHCHECK polls `GET /api/health` (handler at `apps/web/src/routes/api/health.ts` checks DB and storage with a 1.5s timeout).
|
||||
- Rate limiting only active when `NODE_ENV=production` (see `packages/auth/src/config.ts` and `packages/api/src/middleware/rate-limit/index.ts`).
|
||||
|
||||
---
|
||||
|
||||
*Stack analysis: 2026-05-11*
|
||||
@@ -0,0 +1,394 @@
|
||||
# Codebase Structure
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
## Directory Layout
|
||||
|
||||
```text
|
||||
reactive-resume/
|
||||
├── apps/
|
||||
│ └── web/ # Sole deployable application (TanStack Start / Vite / Nitro)
|
||||
│ ├── plugins/ # Nitro startup plugins (run on `pnpm dev` / `pnpm start`)
|
||||
│ ├── public/ # Static assets (PWA, opengraph, templates, screenshots)
|
||||
│ ├── locales/ # Lingui `.po` translation catalogs (~40 locales)
|
||||
│ ├── src/
|
||||
│ │ ├── components/ # Reusable web components grouped by feature
|
||||
│ │ ├── dialogs/ # Global dialog system + dialog implementations
|
||||
│ │ ├── hooks/ # App-level React hooks
|
||||
│ │ ├── libs/ # Browser/server glue (auth, orpc, query, resume, theme, locale, pwa)
|
||||
│ │ ├── routes/ # File-based TanStack Router routes (UI + `server.handlers`)
|
||||
│ │ ├── router.tsx # Router factory (builds query client, context, SSR query integration)
|
||||
│ │ ├── routeTree.gen.ts # GENERATED — do not hand-edit
|
||||
│ │ ├── server.ts # Nitro fetch entry (wraps `react-start/server-entry`)
|
||||
│ │ └── index.css # Tailwind v4 entry
|
||||
│ ├── components.json # shadcn config
|
||||
│ ├── lingui.config.ts # i18n extract config
|
||||
│ ├── vite.config.ts # Vite + TanStack Start + Nitro + PWA + Lingui
|
||||
│ └── vitest.config.ts
|
||||
├── packages/
|
||||
│ ├── ai/ # AI prompts, Zustand store, patch-resume tool
|
||||
│ ├── api/ # oRPC routers, services, helpers, DTOs, rate-limit middleware
|
||||
│ ├── auth/ # Better Auth config and helpers
|
||||
│ ├── config/ # Shared tsconfig + vitest base configs
|
||||
│ ├── db/ # Drizzle client + schema (Postgres)
|
||||
│ ├── email/ # Nodemailer transport + react-email templates
|
||||
│ ├── env/ # `@t3-oss/env-core` server env (auto-loads root `.env`)
|
||||
│ ├── fonts/ # Google Fonts metadata
|
||||
│ ├── import/ # JSON Resume / Reactive Resume v3/v4 importers
|
||||
│ ├── pdf/ # React PDF document, fonts, 14 templates, shared primitives
|
||||
│ ├── runtime-externals/ # Declares bcrypt, sharp, @aws-sdk/client-s3 as runtime-only
|
||||
│ ├── schema/ # Zod schemas (resume data, templates, page, analysis, icons)
|
||||
│ ├── scripts/ # Standalone tsx scripts (db reset, font generation)
|
||||
│ ├── ui/ # Shared Base UI + shadcn-style components
|
||||
│ └── utils/ # Small focused helpers (color, date, html, sanitize, etc.)
|
||||
├── migrations/ # Drizzle-generated SQL + snapshots (one folder per migration)
|
||||
├── docs/ # Project documentation
|
||||
├── skills/ # Internal agent skill definitions
|
||||
├── data/ # Local-FS storage root (when S3 is unset) — gitignored runtime data
|
||||
├── .vite-hooks/ # Lefthook-managed git hooks (commit-msg, pre-commit)
|
||||
├── .github/ # GitHub Actions / issue templates
|
||||
├── .claude/ # Project-local Claude/Codex agent assets
|
||||
├── .codex/
|
||||
├── .planning/ # GSD planning + codebase maps (this directory)
|
||||
├── .vscode/
|
||||
├── compose.dev.yml # Postgres + SeaweedFS for local dev
|
||||
├── compose.yml # Production-shaped compose
|
||||
├── Dockerfile # Node 24 multi-stage build
|
||||
├── AGENTS.md # Canonical agent guide (symlinked from CLAUDE.md)
|
||||
├── README.md
|
||||
├── SECURITY.md
|
||||
├── LICENSE
|
||||
├── package.json # Root scripts (turbo run …) + workspace devDeps
|
||||
├── pnpm-workspace.yaml # `apps/*` + `packages/*`
|
||||
├── pnpm-lock.yaml
|
||||
├── turbo.json # Pipeline + globalEnv allowlist
|
||||
├── biome.json # Biome (lint + format) config
|
||||
├── knip.json # Dead-code/dep analysis config
|
||||
├── lefthook.yml # Git hooks
|
||||
├── commitlint.config.cjs
|
||||
├── crowdin.yml # Translation sync config
|
||||
├── tsconfig.json # Root TS solution config
|
||||
├── vitest.shared.ts / vitest.setup.ts # Shared vitest config and global setup
|
||||
├── .ncurc.cjs # npm-check-updates ignore list
|
||||
├── .env.example # Documented env vars
|
||||
└── .gitignore / .dockerignore
|
||||
```
|
||||
|
||||
## Directory Purposes
|
||||
|
||||
**`apps/web/`:**
|
||||
- Purpose: The only deployed app — TanStack Start / React 19 / Vite / Nitro.
|
||||
- Contains: Routes, components, dialogs, hooks, libs, server entry, build config.
|
||||
- Key files: `apps/web/vite.config.ts`, `apps/web/src/router.tsx`, `apps/web/src/server.ts`, `apps/web/src/routes/__root.tsx`, `apps/web/plugins/1.migrate.ts`, `apps/web/plugins/2.storage.ts`.
|
||||
|
||||
**`apps/web/src/routes/`:**
|
||||
- Purpose: TanStack Router file-based route tree. Each file is either a UI route, a server-only endpoint (`server.handlers`), or both.
|
||||
- Notable subtrees:
|
||||
- `__root.tsx` — global HTML shell, providers, head/meta, PWA scripts.
|
||||
- `_home/` — public marketing layout (`route.tsx`, `index.tsx`, `-sections/{hero,features,faq,testimonials,...}.tsx`).
|
||||
- `auth/` — login/register/2FA/password flows and OAuth callback (`oauth.ts`).
|
||||
- `dashboard/` — authenticated dashboard (`route.tsx`, `index.tsx`, `resumes/`, `settings/{profile,preferences,api-keys,authentication,integrations,job-search,danger-zone}.tsx`, `-components/{header,sidebar,functions}.{ts,tsx}`).
|
||||
- `builder/$resumeId/` — resume builder (`route.tsx` shell, `index.tsx` browser-only preview, `-components/`, `-sidebar/{left,right}/`, `-store/{section,sidebar}.ts`).
|
||||
- `$username/$slug.tsx` — public/shared resume route (`ssr: "data-only"`).
|
||||
- `api/` — server-only endpoints (`rpc.$.ts`, `auth.$.ts`, `health.ts`, `openapi.$.ts`, `uploads/$userId.$.ts`, `-helpers/resume-pdf.ts`).
|
||||
- `mcp/` — Model Context Protocol server (`index.ts`, `-helpers/{tools,resources,prompts,mcp-server-card,mcp-tool-names,tool-annotations}.ts`).
|
||||
- `[.]well-known/` — OAuth/OIDC/MCP discovery documents.
|
||||
- `uploads/$userId.$.tsx` — etag/security-validated file serving.
|
||||
- `templates/$.tsx` — template preview/download.
|
||||
- `schema[.]json.ts` — `/schema.json` endpoint.
|
||||
|
||||
**`apps/web/src/components/`:**
|
||||
- Purpose: Reusable, app-scoped components organized by domain.
|
||||
- Subdirectories:
|
||||
- `animation/` — Motion-driven UI (`comet-card`, `count-up`, `spotlight`, `text-mask`).
|
||||
- `command-palette/` — Cmd-K UI (`index.tsx`, `store.ts`, `pages/`).
|
||||
- `input/` — Custom inputs (`chip-input`, `color-picker`, `github-stars-button`, `icon-picker`, `rich-input`, `url-input`).
|
||||
- `layout/` — Error/loading/not-found screens, breakpoint indicator.
|
||||
- `level/`, `locale/`, `theme/`, `typography/` — combobox/toggle utilities for those concerns.
|
||||
- `resume/` — Builder preview surface (`preview.tsx`, `preview.browser.tsx`, `preview.shared.tsx`, `pdf-canvas.tsx`, `builder-resume-draft.ts`).
|
||||
- `ui/` — App-level UI extensions (`combobox.tsx`, `copyright.tsx`).
|
||||
- `user/` — User dropdown menu.
|
||||
|
||||
**`apps/web/src/libs/`:**
|
||||
- Purpose: Glue between UI and external systems.
|
||||
- Contents:
|
||||
- `auth/{client.ts,session.ts}` — Better Auth browser client + SSR session getter.
|
||||
- `orpc/client.ts` — Isomorphic oRPC client (in-process server + RPCLink browser).
|
||||
- `query/client.ts` — TanStack Query client factory.
|
||||
- `resume/` — Section, PDF, and ordering helpers (`make-section-item.ts`, `move-item.ts`, `section-actions.ts`, `section-title.ts`, `section-title-locale.ts`, `pdf-document.tsx`, `pdf-document.server.tsx`, `section.tsx`).
|
||||
- `theme.ts`, `locale.ts`, `pwa.ts`, `error-message.ts`, `tanstack-form.tsx` — direct app utilities.
|
||||
|
||||
**`apps/web/src/dialogs/`:**
|
||||
- Purpose: Global imperative dialog system.
|
||||
- Contents: `manager.tsx` (renders open dialogs), `store.ts` (Zustand store), then domain dialogs under `auth/`, `resume/{sections,template,index.tsx,import.tsx}`, `api-key/`.
|
||||
|
||||
**`apps/web/src/hooks/`:**
|
||||
- Purpose: Web-app hooks. (Shared cross-package hooks live in `packages/ui/src/hooks/`.)
|
||||
- Contents: `use-confirm.tsx`, `use-controlled-state.tsx`, `use-form-blocker.tsx`, `use-mobile.tsx`, `use-prompt.tsx`, `use-sync-form-values.ts`.
|
||||
|
||||
**`apps/web/plugins/`:**
|
||||
- Purpose: Nitro startup plugins.
|
||||
- Contents: `1.migrate.ts` (runs Drizzle migrations on boot), `2.storage.ts` (validates the local data dir when S3 isn't configured).
|
||||
|
||||
**`apps/web/public/`:**
|
||||
- Purpose: Static assets served at the site root.
|
||||
- Notable subdirs: `templates/{jpg,pdf}/` (per-template previews), `screenshots/` (PWA + marketing), `opengraph/`, `icon/`, `logo/`, `fonts/`, `photos/`, `sounds/`, `videos/`. Top-level files include `favicon.{ico,svg}`, `apple-touch-icon-180x180.png`, `manifest.webmanifest`, `pwa-{64,192,512}x.png`, `maskable-icon-512x512.png`, `robots.txt`, `sitemap.xml`, `funding.json`.
|
||||
|
||||
**`apps/web/locales/`:**
|
||||
- Purpose: Lingui `.po` translation catalogs (~40 languages, `en-US` is source).
|
||||
- Synced via `crowdin.yml` and `pnpm lingui:extract`.
|
||||
|
||||
**`packages/ai/`:**
|
||||
- Purpose: AI prompt assets, patch-resume tool, sanitize/extraction helpers.
|
||||
- Key paths: `packages/ai/src/prompts/{chat,analyze-resume,docx-parser,pdf-parser}-*.md`, `packages/ai/src/store.ts`, `packages/ai/src/tools/{patch-resume,patch-proposal}.ts`, `packages/ai/src/resume/{extraction-template,sanitize}.ts`.
|
||||
|
||||
**`packages/api/`:**
|
||||
- Purpose: Server-side business logic exposed over oRPC. The only place oRPC procedures live.
|
||||
- Key paths: `packages/api/src/context.ts` (auth context + `publicProcedure`/`protectedProcedure`), `packages/api/src/routers/{ai,auth,flags,resume,statistics,storage,index}.ts`, `packages/api/src/services/{resume,resume-events,storage,ai,auth,flags,statistics}.ts`, `packages/api/src/dto/resume.ts`, `packages/api/src/helpers/{resume-access,resume-access-policy}.ts`, `packages/api/src/middleware/rate-limit/index.ts`.
|
||||
|
||||
**`packages/auth/`:**
|
||||
- Purpose: Better Auth instance and types reused by web routes and API context.
|
||||
- Key paths: `packages/auth/src/config.ts` (Drizzle adapter, OAuth/passkey/2FA/api-key/JWT/MCP OAuth provider), `packages/auth/src/functions.ts`, `packages/auth/src/types.ts`.
|
||||
|
||||
**`packages/config/`:**
|
||||
- Purpose: Shared tsconfig and vitest base configs consumed via workspace devDep.
|
||||
- Key paths: `packages/config/tsconfig.base.json`, `packages/config/vitest.config.ts`.
|
||||
|
||||
**`packages/db/`:**
|
||||
- Purpose: Drizzle client and schema. Migration tooling but **migrations live in repo-root `migrations/`** (`packages/db/drizzle.config.ts` → `out: "../../migrations"`).
|
||||
- Key paths: `packages/db/src/client.ts` (singleton `pg.Pool` + `drizzle()` on `globalThis`), `packages/db/src/schema/{auth,resume,index}.ts`, `packages/db/src/relations.ts`.
|
||||
|
||||
**`packages/email/`:**
|
||||
- Purpose: SMTP transport + react-email templates.
|
||||
- Key paths: `packages/email/src/transport.ts`, `packages/email/src/templates/{auth,reset-password,verify-email,verify-email-change}.tsx`.
|
||||
|
||||
**`packages/env/`:**
|
||||
- Purpose: Type-safe server environment variables. Auto-loads the repo-root `.env` for app/server callers (drizzle-kit must export `DATABASE_URL` manually).
|
||||
- Key paths: `packages/env/src/server.ts`.
|
||||
|
||||
**`packages/fonts/`:**
|
||||
- Purpose: Generated Google Fonts metadata used by the typography combobox and React PDF font registration.
|
||||
- Key paths: `packages/fonts/src/index.ts`, `packages/fonts/src/webfontlist.json` (regenerated by `packages/scripts/fonts/generate.ts`).
|
||||
|
||||
**`packages/import/`:**
|
||||
- Purpose: Importers that convert external resume formats into the shared `ResumeData` schema.
|
||||
- Key paths: `packages/import/src/{json-resume,reactive-resume-json,reactive-resume-v4-json}.tsx`.
|
||||
|
||||
**`packages/pdf/`:**
|
||||
- Purpose: React PDF rendering — the same code paths used by the browser preview and the server-side PDF download.
|
||||
- Key paths: `packages/pdf/src/document.tsx`, `packages/pdf/src/context.tsx`, `packages/pdf/src/section-title.ts`, `packages/pdf/src/hooks/use-register-fonts.ts`, `packages/pdf/src/templates/index.ts`, `packages/pdf/src/templates/<name>/<Name>Page.tsx` (14 templates: `azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`), shared primitives under `packages/pdf/src/templates/shared/` (`filtering.ts`, `rich-text.tsx`, `sections.tsx`, `primitives.tsx`, `picture.ts`, `page-size.ts`, `columns.ts`, `metrics.ts`, `meta-line.tsx`, `contact.ts`, `contact-item.tsx`, `level-display.tsx`, `section-links.ts`, `rich-text-html.ts`, `rich-text-spacing.ts`, `styles.ts`, `types.ts`, `context.tsx`).
|
||||
|
||||
**`packages/runtime-externals/`:**
|
||||
- Purpose: Vendors `bcrypt`, `sharp`, `@aws-sdk/client-s3` so they stay runtime-only (Vite externalizes them in `apps/web/vite.config.ts:55`).
|
||||
- No `src/` — `package.json` is the entire surface.
|
||||
|
||||
**`packages/schema/`:**
|
||||
- Purpose: Source-of-truth Zod schemas for resume data, templates, page settings, AI analysis, and icon catalog.
|
||||
- Key paths: `packages/schema/src/resume/{data,default,sample,analysis}.ts`, `packages/schema/src/templates.ts`, `packages/schema/src/page.ts`, `packages/schema/src/icons.ts`.
|
||||
|
||||
**`packages/scripts/`:**
|
||||
- Purpose: Standalone tsx scripts; no exports.
|
||||
- Key paths: `packages/scripts/database/reset.ts` (`pnpm --filter @reactive-resume/scripts db:reset`), `packages/scripts/fonts/generate.ts` (`pnpm --filter @reactive-resume/scripts fonts:generate`).
|
||||
|
||||
**`packages/ui/`:**
|
||||
- Purpose: Shared component library (Base UI primitives + shadcn-style wrappers, Tailwind v4 styles).
|
||||
- Key paths: `packages/ui/src/components/{dialog,dropdown-menu,command,resizable,form,tooltip,sonner,…}.tsx`, `packages/ui/src/hooks/{use-confirm,use-controlled-state,use-mobile,use-prompt}.tsx`, `packages/ui/src/styles/globals.css`.
|
||||
|
||||
**`packages/utils/`:**
|
||||
- Purpose: Pure utility functions used everywhere. Each helper has its own export path; do not import internal files.
|
||||
- Key paths: `packages/utils/src/{color,date,field,file,html,level,locale,network-icons,rate-limit,sanitize,string,style,url}.ts`, Node-only `packages/utils/src/{monorepo.node,url-security.node}.ts`, and `packages/utils/src/resume/{docx/index.ts,patch.ts}`.
|
||||
|
||||
**`migrations/`:**
|
||||
- Purpose: Drizzle-generated migration directories (one per migration), kept at the repo root.
|
||||
- Layout: each `YYYYMMDDhhmmss_<adjective>_<noun>/` contains `migration.sql` (the SQL Drizzle will apply) and `snapshot.json` (Drizzle's internal state).
|
||||
- Applied by `apps/web/plugins/1.migrate.ts` on every server boot, and manually by `pnpm db:migrate`. Generated by `pnpm db:generate` (which writes here because of `out: "../../migrations"` in `packages/db/drizzle.config.ts`). Do not hand-edit `migration.sql`/`snapshot.json`.
|
||||
|
||||
**`data/` (and `apps/web/data/`):**
|
||||
- Purpose: Default local-filesystem storage root when S3 vars are unset. `<workspace>/data` is validated/created at boot by `apps/web/plugins/2.storage.ts`. Override with `LOCAL_STORAGE_PATH` (must be absolute).
|
||||
- `data/statistics/` and `apps/web/data/statistics/` exist as runtime byproducts; treat as gitignored runtime state.
|
||||
|
||||
**`.vite-hooks/`:**
|
||||
- Purpose: Lefthook-managed git hooks (`pre-commit` runs `biome check`, `commit-msg` runs commitlint). Configured by `lefthook.yml` and `commitlint.config.cjs`.
|
||||
|
||||
**`.planning/`:**
|
||||
- Purpose: GSD planning artifacts.
|
||||
- Subdirectories: `.planning/codebase/` (this directory — analysis docs).
|
||||
|
||||
## Key File Locations
|
||||
|
||||
**Entry Points:**
|
||||
- `apps/web/src/server.ts` — Nitro fetch entry.
|
||||
- `apps/web/src/router.tsx` — Router factory.
|
||||
- `apps/web/src/routes/__root.tsx` — Root route + global providers.
|
||||
- `apps/web/plugins/1.migrate.ts` — Migration on boot.
|
||||
- `apps/web/plugins/2.storage.ts` — Local storage validation on boot.
|
||||
|
||||
**Configuration:**
|
||||
- `apps/web/vite.config.ts` — Vite + TanStack Start + Nitro + PWA + Lingui.
|
||||
- `turbo.json` — Pipeline + `globalEnv` allowlist.
|
||||
- `pnpm-workspace.yaml` — Workspaces (`apps/*` + `packages/*`).
|
||||
- `biome.json` — Lint + format rules.
|
||||
- `knip.json` — Dead-code analysis config.
|
||||
- `lefthook.yml` — Git hooks.
|
||||
- `packages/db/drizzle.config.ts` — Drizzle migration config (writes to `../../migrations`).
|
||||
- `packages/env/src/server.ts` — Server env schema + `.env` loader.
|
||||
- `apps/web/lingui.config.ts` — i18n extract config.
|
||||
- `compose.dev.yml` / `compose.yml` — Postgres + SeaweedFS (dev) and prod-shaped compose.
|
||||
|
||||
**Core API:**
|
||||
- `packages/api/src/routers/index.ts` — Router root.
|
||||
- `packages/api/src/context.ts` — Auth resolver + procedure factories.
|
||||
- `packages/api/src/services/resume.ts` — Resume CRUD/patch/lock/password/duplication.
|
||||
- `packages/api/src/services/storage.ts` — S3 + local FS storage abstraction.
|
||||
- `packages/api/src/helpers/resume-access-policy.ts` — Visibility/redaction policy.
|
||||
|
||||
**Core data:**
|
||||
- `packages/db/src/schema/resume.ts` — Resume, statistics, analysis tables.
|
||||
- `packages/db/src/schema/auth.ts` — Better Auth tables.
|
||||
- `packages/db/src/client.ts` — Singleton `pg.Pool` + `drizzle()` client.
|
||||
- `packages/schema/src/resume/data.ts` — Canonical Zod schema for `ResumeData`.
|
||||
- `packages/schema/src/templates.ts` — Enum of template names.
|
||||
|
||||
**Core PDF:**
|
||||
- `packages/pdf/src/document.tsx` — `ResumeDocument` root component.
|
||||
- `packages/pdf/src/templates/index.ts` — Template registry.
|
||||
- `packages/pdf/src/hooks/use-register-fonts.ts` — Font registration + CJK fallbacks.
|
||||
- `packages/pdf/src/templates/shared/filtering.ts` — Shared section filtering.
|
||||
|
||||
**Auth:**
|
||||
- `packages/auth/src/config.ts` — Better Auth instance.
|
||||
- `apps/web/src/routes/api/auth.$.ts` — `/api/auth/*` handler with OAuth sanitization.
|
||||
- `apps/web/src/libs/auth/{client.ts,session.ts}` — Browser client + SSR session helper.
|
||||
|
||||
**Testing:**
|
||||
- `vitest.shared.ts`, `vitest.setup.ts` — Repo-wide setup (Testing Library, jest-dom, happy-dom env).
|
||||
- `packages/config/vitest.config.ts` — Reusable Vitest base.
|
||||
- `apps/web/vitest.config.ts` — Web app Vitest config.
|
||||
|
||||
## Naming Conventions
|
||||
|
||||
**Files:**
|
||||
- Source files: `kebab-case.ts` / `kebab-case.tsx` (e.g. `resume-access-policy.ts`, `command-palette.tsx`).
|
||||
- Component PascalCase is reserved for component names *inside* files; filenames stay kebab-case (e.g. `Button` exported from `packages/ui/src/components/button.tsx`).
|
||||
- PDF template components are the one PascalCase exception: `packages/pdf/src/templates/azurill/AzurillPage.tsx` (kept that way because the directory name doubles as the template enum value).
|
||||
- Tests sit next to their subject: `foo.ts` ↔ `foo.test.ts`, `foo.tsx` ↔ `foo.test.tsx`.
|
||||
- Browser-only modules use a `.browser.tsx` suffix (e.g. `apps/web/src/components/resume/preview.browser.tsx`).
|
||||
- Server-only modules use a `.server.tsx` suffix when they live next to browser counterparts (e.g. `apps/web/src/libs/resume/pdf-document.server.tsx`).
|
||||
- Generated files use `.gen.ts` (e.g. `apps/web/src/routeTree.gen.ts`).
|
||||
- Node-only utilities use a `.node.ts` suffix (e.g. `packages/utils/src/monorepo.node.ts`, `packages/utils/src/url-security.node.ts`).
|
||||
|
||||
**Routes (TanStack Router file conventions):**
|
||||
- `$param.tsx` — dynamic path segment (e.g. `apps/web/src/routes/$username/$slug.tsx`).
|
||||
- `$.tsx` — splat (matches the rest of the path; used for `api/rpc/$`, `api/auth/$`, `[.]well-known/$`).
|
||||
- `_layout/` (underscore prefix) — pathless layout group (e.g. `apps/web/src/routes/_home/`).
|
||||
- `-folder/` (dash prefix) — colocated, non-route helpers (`-components/`, `-sidebar/`, `-store/`, `-sections/`, `-helpers/`). The router ignores these.
|
||||
- `[.]well-known` — escaped folder name for paths starting with a dot.
|
||||
- `name[.]json.ts` — escaped dot in a route filename (used for `/schema.json`).
|
||||
- `route.tsx` — layout/wrapper route at a directory level; `index.tsx` — index route inside it.
|
||||
|
||||
**Directories:**
|
||||
- `apps/<app>` and `packages/<name>` — kebab-case workspace members.
|
||||
- `packages/<name>/src/<subdomain>/<file>.ts` — every public path in `package.json` exports points into `src/`.
|
||||
|
||||
**Package names:** All workspace packages are scoped under `@reactive-resume/*` (`api`, `auth`, `db`, `ui`, etc.). The web app is just `web`.
|
||||
|
||||
## Where to Add New Code
|
||||
|
||||
**New oRPC procedure:**
|
||||
- Define in `packages/api/src/routers/<domain>.ts`, register it on the exported router map, and add corresponding business logic to `packages/api/src/services/<domain>.ts`.
|
||||
- If authenticated, prefer `protectedProcedure` from `packages/api/src/context.ts`.
|
||||
- If it mutates resumes, attach `resumeMutationRateLimit` from `packages/api/src/middleware/rate-limit/index.ts`.
|
||||
- Define input/output Zod schemas in `packages/api/src/dto/<domain>.ts` when reused.
|
||||
|
||||
**New database table or column:**
|
||||
- Add the table/column to `packages/db/src/schema/<file>.ts`, update `packages/db/src/relations.ts` if needed, re-export from `packages/db/src/schema/index.ts`.
|
||||
- Run `DATABASE_URL=... pnpm db:generate` to write a migration directory under `migrations/`.
|
||||
- Apply with `DATABASE_URL=... pnpm db:migrate` (or just start the app — `apps/web/plugins/1.migrate.ts` runs them on boot).
|
||||
|
||||
**New resume field or section:**
|
||||
- Update Zod first in `packages/schema/src/resume/data.ts` (and `default.ts` / `sample.ts` if applicable).
|
||||
- Adjust API DTOs (`packages/api/src/dto/resume.ts`), importers (`packages/import/src/*.tsx`), PDF templates and shared primitives (`packages/pdf/src/templates/...`), and the builder forms under `apps/web/src/routes/builder/$resumeId/-sidebar/`.
|
||||
|
||||
**New resume template:**
|
||||
- Add to the template enum in `packages/schema/src/templates.ts`.
|
||||
- Implement the page component at `packages/pdf/src/templates/<name>/<Name>Page.tsx` and register it in `packages/pdf/src/templates/index.ts`.
|
||||
- Drop static previews into `apps/web/public/templates/jpg/<name>.jpg` and `apps/web/public/templates/pdf/<name>.pdf`.
|
||||
|
||||
**New web route:**
|
||||
- Add the file under `apps/web/src/routes/...`. Use `$param.tsx` for dynamic segments, `_layout/` for pathless groups, and `-folder/` for colocated helpers.
|
||||
- The route tree regenerates into `apps/web/src/routeTree.gen.ts` — do not hand-edit.
|
||||
- For browser-only sub-routes, set `ssr: false` (see `apps/web/src/routes/builder/$resumeId/index.tsx`) or `ssr: "data-only"` (see `apps/web/src/routes/$username/$slug.tsx`).
|
||||
|
||||
**New server-only HTTP endpoint:**
|
||||
- Add a route file (typically under `apps/web/src/routes/api/`) and export `Route = createFileRoute(...)({ server: { handlers: { GET/POST/ANY: handler } } })`.
|
||||
- Import server-only deps (`@reactive-resume/db/client`, `@reactive-resume/api/services/*`) only inside the handler module so they stay out of the client bundle.
|
||||
|
||||
**New shared component:**
|
||||
- App-only: `apps/web/src/components/<group>/<name>.tsx` (with colocated test if behaviour is non-trivial).
|
||||
- Reused across packages: `packages/ui/src/components/<name>.tsx` (export via deep path `@reactive-resume/ui/components/<name>`).
|
||||
|
||||
**New shared utility:**
|
||||
- Add to `packages/utils/src/<topic>.ts` and an explicit `"./<topic>": "./src/<topic>.ts"` entry in `packages/utils/package.json` `exports`. Never import private files across packages.
|
||||
|
||||
**New dialog:**
|
||||
- Implement under `apps/web/src/dialogs/<group>/<name>.tsx`.
|
||||
- Register with the dialog store and ensure `apps/web/src/dialogs/manager.tsx` renders it.
|
||||
|
||||
**New AI prompt or tool:**
|
||||
- Prompts go in `packages/ai/src/prompts/<name>.md` (re-exported via `packages/ai/src/prompts.ts`).
|
||||
- Tools go in `packages/ai/src/tools/<name>.ts` and are exposed through the AI router in `packages/api/src/routers/ai.ts`.
|
||||
|
||||
**New MCP tool/resource/prompt:**
|
||||
- Register in `apps/web/src/routes/mcp/-helpers/{tools,resources,prompts}.ts`; reuse existing oRPC services for actual logic.
|
||||
|
||||
## Special Directories
|
||||
|
||||
**`apps/web/src/routes/`:**
|
||||
- Purpose: Source for the file-based route tree.
|
||||
- Generated artifact: `apps/web/src/routeTree.gen.ts`.
|
||||
- Committed: Yes (the tree file is committed; regenerated by TanStack Router tooling on dev/build).
|
||||
|
||||
**`migrations/`:**
|
||||
- Purpose: Drizzle-generated SQL + snapshots.
|
||||
- Generated: Yes (by `pnpm db:generate`).
|
||||
- Committed: Yes — do not hand-edit, but always commit new migration folders.
|
||||
|
||||
**`apps/web/.output/`:**
|
||||
- Purpose: Nitro/Vite production build output (server + client + PWA assets).
|
||||
- Generated: Yes (by `pnpm build`).
|
||||
- Committed: No (gitignored).
|
||||
|
||||
**`apps/web/locales/`:**
|
||||
- Purpose: Lingui `.po` catalogs.
|
||||
- Generated: `en-US.po` is the source; other locales are synced via Crowdin (`crowdin.yml`).
|
||||
- Committed: Yes.
|
||||
|
||||
**`data/` and `apps/web/data/`:**
|
||||
- Purpose: Default local storage root when S3 is unset (`<workspace>/data`).
|
||||
- Generated: Yes (at runtime by `apps/web/plugins/2.storage.ts` or service calls).
|
||||
- Committed: No (gitignored runtime state).
|
||||
|
||||
**`.turbo/`, `.pnpm-store/`, `node_modules/`:**
|
||||
- Purpose: Tool caches and dependency stores.
|
||||
- Committed: No.
|
||||
|
||||
**`.vite-hooks/`:**
|
||||
- Purpose: Lefthook-installed git hooks (`commit-msg`, `pre-commit`).
|
||||
- Committed: Yes (so contributors get hooks automatically), but the underlying behavior is defined by `lefthook.yml`.
|
||||
|
||||
**`packages/runtime-externals/`:**
|
||||
- Purpose: Marks `bcrypt`, `sharp`, `@aws-sdk/client-s3` as runtime dependencies that Vite externalizes.
|
||||
- No source files — package.json is the entire contract.
|
||||
|
||||
## Files / Locations to Avoid Hand-Editing
|
||||
|
||||
- `apps/web/src/routeTree.gen.ts` — regenerated by TanStack Router tooling.
|
||||
- `migrations/<timestamp>_<name>/migration.sql` and `snapshot.json` — generated by `drizzle-kit`. Add a new migration via `pnpm db:generate` instead of editing past ones.
|
||||
- `pnpm-lock.yaml` — managed by pnpm. Update via `pnpm install`.
|
||||
- `apps/web/.output/`, `apps/web/coverage/`, `packages/*/coverage/`, `packages/*/reports/` — build/test artifacts.
|
||||
- `apps/web/locales/*.po` (except `en-US.po`) — synced from Crowdin per `crowdin.yml`.
|
||||
- `apps/web/public/screenshots/`, `apps/web/public/opengraph/`, `apps/web/public/templates/{jpg,pdf}/` — regenerated assets; replace files wholesale rather than diff-editing.
|
||||
|
||||
---
|
||||
|
||||
*Structure analysis: 2026-05-11*
|
||||
@@ -0,0 +1,253 @@
|
||||
# Testing Patterns
|
||||
|
||||
**Analysis Date:** 2026-05-11
|
||||
|
||||
## Test Framework
|
||||
|
||||
**Runner:** Vitest 4.x.
|
||||
- Root devDependency in `package.json`: `"vitest": "^4.1.5"`, `"@vitest/coverage-v8": "^4.1.5"`.
|
||||
- Every workspace package and `apps/web` has its own `vitest.config.ts` that delegates to the shared factory at `vitest.shared.ts`.
|
||||
|
||||
**DOM environment:** `happy-dom` 20.x (migrated from jsdom in commit `7a60a42a0`). Default test environment per `vitest.shared.ts:19` is `"node"`; per-package configs opt into browser-like envs.
|
||||
|
||||
**Assertion / testing libraries** (root `package.json` devDependencies):
|
||||
|
||||
- `@testing-library/react` ^16.3.2
|
||||
- `@testing-library/dom` ^10.4.1
|
||||
- `@testing-library/jest-dom` ^6.9.1 — registered globally in `vitest.setup.ts:1`
|
||||
- `@testing-library/user-event` ^14.6.1
|
||||
|
||||
**Run commands** (root `package.json`):
|
||||
|
||||
```bash
|
||||
pnpm test # turbo run test → vitest run --passWithNoTests in every package
|
||||
pnpm test:coverage # turbo run test:coverage → adds --coverage flag
|
||||
pnpm test:ci # adds GitHub Actions, JSON, and JUnit reporters
|
||||
pnpm test:agent # agent-friendly reporter + JSON output for agentic runs
|
||||
```
|
||||
|
||||
Per-package commands (uniform across all packages, see `packages/api/package.json:13-19`):
|
||||
|
||||
```bash
|
||||
pnpm --filter @reactive-resume/utils test
|
||||
pnpm --filter @reactive-resume/api test
|
||||
pnpm --filter web test
|
||||
```
|
||||
|
||||
Vitest test paths are package-relative when filtering: `pnpm --filter @reactive-resume/utils test -- src/string.test.ts`.
|
||||
|
||||
## Shared Vitest Configuration
|
||||
|
||||
`vitest.shared.ts` exports `createVitestProjectConfig({ name, dirname, environment, plugins })`. Highlights:
|
||||
|
||||
- `root: dirname` — each package runs in isolation.
|
||||
- `envDir: workspaceRoot` — `.env` at repo root is loaded for every package.
|
||||
- `resolve: { tsconfigPaths: true }` — TS path aliases resolve from the package's own `tsconfig.json`.
|
||||
- `setupFiles: [./vitest.setup.ts]` — global hooks applied to all projects.
|
||||
- `include: ["src/**/*.{test,spec}.?(c|m)[jt]s?(x)"]` — both `.test.*` and `.spec.*` are picked up.
|
||||
- `exclude: ["node_modules", "dist", ".output", "coverage", "reports"]`.
|
||||
- `pool: "threads"`, `isolate: false` — fast threaded execution with shared module state inside a worker.
|
||||
- `passWithNoTests: true` — packages without tests don't fail CI.
|
||||
- `environmentOptions.happyDOM` disables JS/CSS file loading and navigation for safety.
|
||||
|
||||
Coverage is configured directly in `vitest.shared.ts:49-56`:
|
||||
|
||||
- Provider: `v8`
|
||||
- Output: `./coverage` per package
|
||||
- Reporters: `text`, `text-summary`, `json-summary`, `json`, `lcov`, `html`
|
||||
- Include: `src/**/*.{ts,tsx}`
|
||||
- Exclude: `src/**/*.{test,spec}.*`, `src/**/*.d.ts`, `src/routeTree.gen.ts`
|
||||
- `reportOnFailure: true`
|
||||
|
||||
No global coverage thresholds are enforced (no `thresholds: {...}` block). Per-package coverage HTML lives under each package's `coverage/` directory after `pnpm test:coverage`.
|
||||
|
||||
## Global Setup (`vitest.setup.ts`)
|
||||
|
||||
Applied to every project:
|
||||
|
||||
1. `import "@testing-library/jest-dom/vitest"` — registers `toBeInTheDocument`, `toHaveAttribute`, etc.
|
||||
2. `afterEach(() => cleanup())` — explicit RTL cleanup (Vitest doesn't expose `afterEach` globally without `test.globals: true`).
|
||||
3. Polyfills for jsdom/happy-dom gaps: `ResizeObserver`, `IntersectionObserver`, `Element.prototype.scrollIntoView`, `window.matchMedia` (used by `cmdk`, Base UI, `next-themes`).
|
||||
|
||||
## Per-Package Vitest Configs
|
||||
|
||||
All `vitest.config.ts` files reuse the shared factory. Notable variants:
|
||||
|
||||
- **Node default** (`packages/utils/vitest.config.ts`, `packages/api/vitest.config.ts`, `packages/db/vitest.config.ts`, `packages/schema/vitest.config.ts`, `packages/ai/vitest.config.ts`, `packages/email/vitest.config.ts`, `packages/fonts/vitest.config.ts`, `packages/env/vitest.config.ts`, `packages/auth/vitest.config.ts`, `packages/import/vitest.config.ts`, `packages/pdf/vitest.config.ts`, `packages/config/vitest.config.ts`) — `environment: "node"`.
|
||||
- **DOM** (`packages/ui/vitest.config.ts:7`) — `environment: "happy-dom"` for component tests.
|
||||
- **Web app** (`apps/web/vitest.config.ts`) — `environment: "node"` plus Vite plugins to mirror dev: `@tailwindcss/vite`, `@lingui/vite-plugin` (with `linguiTransformerBabelPreset`), and `@rolldown/plugin-babel`. Individual web tests opt into the DOM via the `@vitest-environment happy-dom` file-level comment.
|
||||
|
||||
Per-test environment overrides (declared at the top of the file as `// @vitest-environment happy-dom` or in a `/** @vitest-environment happy-dom */` block):
|
||||
|
||||
- `packages/utils/src/sanitize.test.ts`
|
||||
- `packages/utils/src/file.test.ts`
|
||||
- `apps/web/src/components/resume/preview.browser.test.tsx`
|
||||
- `apps/web/src/components/resume/preview.shared.test.tsx`
|
||||
- `apps/web/src/components/typography/combobox.test.tsx`
|
||||
|
||||
## Test File Organization
|
||||
|
||||
**Location:** Co-located with implementation. `foo.ts` lives next to `foo.test.ts` (or `foo.test.tsx` for React).
|
||||
|
||||
**Naming:**
|
||||
- `<name>.test.ts` — Node/pure logic (e.g. `packages/utils/src/string.test.ts`).
|
||||
- `<name>.test.tsx` — JSX/component tests (e.g. `packages/ui/src/components/button.test.tsx`).
|
||||
- `<name>.node.test.ts` — Node-only modules whose implementation is also `.node.ts` (e.g. `packages/utils/src/url-security.node.test.ts`, `packages/utils/src/monorepo.node.test.ts`).
|
||||
- No `.spec.*` files in the repo today, but the include pattern supports them.
|
||||
|
||||
**Test counts (current):** 127 `*.test.ts` files + 98 `*.test.tsx` files across `packages/` and `apps/web/src/`.
|
||||
|
||||
**Hot spots (where coverage is densest):**
|
||||
|
||||
- `packages/utils/src/*.test.ts` — string, color, html, date, level, locale, sanitize, rate-limit, field, file, network-icons, style, url, url-security.node, monorepo.node, plus `resume/patch.test.ts`.
|
||||
- `packages/ui/src/components/*.test.tsx` — ~30+ component tests (button, dialog, alert, badge, card, combobox, command, popover, scroll-area, sidebar, switch, tabs, textarea, toggle, tooltip, etc.).
|
||||
- `packages/pdf/src/templates/shared/*.test.ts` — columns, section-links, rich-text, metrics, picture, filtering.
|
||||
- `packages/pdf/src/section-title.test.ts` and `packages/pdf/src/hooks/use-register-fonts.test.ts`.
|
||||
- `packages/api/src/{dto,helpers,services}/*.test.ts` — `dto/resume`, `helpers/resume-access-policy`, `services/ai`.
|
||||
- `packages/schema/src/{templates,page}.test.ts` and `packages/schema/src/resume/{data,default}.test.ts`.
|
||||
- `packages/ai/src/{tools,resume}/*.test.ts` — patch-proposal, sanitize, extraction-template.
|
||||
- `packages/import/src/reactive-resume-v4-json.test.ts`, `packages/fonts/src/index.test.ts`.
|
||||
- `apps/web/src/libs/{pwa,locale,theme,error-message}.test.ts`, `apps/web/src/dialogs/store.test.ts`, `apps/web/src/components/resume/preview.{browser,shared}.test.tsx`, `apps/web/src/components/typography/combobox.test.tsx`.
|
||||
|
||||
## Test Structure Patterns
|
||||
|
||||
**Idiomatic skeleton** (from `packages/utils/src/string.test.ts:1-21` and `packages/api/src/helpers/resume-access-policy.test.ts:1-17`):
|
||||
|
||||
```typescript
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { thingUnderTest } from "./thing";
|
||||
|
||||
describe("thingUnderTest", () => {
|
||||
it("returns X for Y", () => {
|
||||
expect(thingUnderTest(input)).toBe(expected);
|
||||
});
|
||||
|
||||
it("returns Z for empty input", () => {
|
||||
expect(thingUnderTest("")).toBe("");
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
**Patterns observed:**
|
||||
|
||||
- Top-level `describe` per exported function; nested `describe` blocks group behaviors.
|
||||
- One assertion focus per `it` — short, declarative names ("returns X", "throws Y when Z", "does not mutate the input").
|
||||
- Negative cases are first-class — every helper has tests for `null`, empty string, unknown shapes, etc.
|
||||
- `it.each([...] as const)("variant=%s renders without throwing", (variant) => {...})` for matrix tests over discriminated union variants (see `packages/ui/src/components/button.test.tsx:55-79`).
|
||||
- Setup with `beforeEach` / `afterEach` is used only when needed (timers, temp dirs, store reset). Example: `apps/web/src/dialogs/store.test.ts:4-13` resets a Zustand store between tests with `useDialogStore.setState(...)`.
|
||||
- Temp directories use `fs.mkdtempSync` + `realpathSync` and are torn down in `afterEach` (`packages/utils/src/monorepo.node.test.ts:7-17`).
|
||||
- Fake timers via `vi.useFakeTimers()` / `vi.advanceTimersByTime(300)` for animation/transition assertions (`apps/web/src/dialogs/store.test.ts:54-65`).
|
||||
|
||||
## Mocking
|
||||
|
||||
**Library:** Vitest's built-in `vi` (no Jest). Used sparingly — most tests cover pure functions.
|
||||
|
||||
**Patterns:**
|
||||
|
||||
- `vi.fn()` for callback assertions: `expect(onClick).toHaveBeenCalledOnce()` (`packages/ui/src/components/button.test.tsx:32-37`).
|
||||
- `vi.fn().mockResolvedValue(true)` for async handlers (`apps/web/src/dialogs/store.test.ts:86-93`).
|
||||
- `vi.mock("module-path", () => ({ ... }))` for replacing modules. Heaviest example: `apps/web/src/components/resume/preview.browser.test.tsx:25-81` mocks `@react-pdf/renderer`, `@/libs/resume/pdf-document`, `./builder-resume-draft`, and `./pdf-canvas` so the preview component can be exercised without React PDF.
|
||||
- `vi.hoisted(() => ({ ... }))` to share mutable state with hoisted `vi.mock` factories (`apps/web/src/components/resume/preview.browser.test.tsx:8-12`). This is required because `vi.mock` calls are hoisted above imports.
|
||||
- Spies via `vi.spyOn` are rare; mock modules are preferred so the real implementation stays out of scope.
|
||||
|
||||
**Test data / fixtures:**
|
||||
|
||||
- No central `fixtures/` directory. Tests build minimal objects inline or extend canonical defaults from the schema package:
|
||||
- `import { defaultResumeData } from "@reactive-resume/schema/resume/default"` (used by `packages/api/src/helpers/resume-access-policy.test.ts:2`).
|
||||
- `import { sampleResumeData } from "@reactive-resume/schema/resume/sample"` (used by `apps/web/src/components/resume/preview.browser.test.tsx:5`).
|
||||
- Local helper builders are inlined per test file (e.g. the `resumeDataWithPageCount` helper at `apps/web/src/components/resume/preview.browser.test.tsx:14-23`).
|
||||
|
||||
## React Component Testing
|
||||
|
||||
**Render + query** via Testing Library (`packages/ui/src/components/button.test.tsx`):
|
||||
|
||||
```typescript
|
||||
import { render, screen } from "@testing-library/react";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
|
||||
render(<Button onClick={onClick}>Click</Button>);
|
||||
await userEvent.click(screen.getByRole("button"));
|
||||
```
|
||||
|
||||
**Accessibility-first queries:** `getByRole("button", { name: "..." })` is the default; `aria-label` is asserted explicitly (`packages/ui/src/components/button.test.tsx:81-84`).
|
||||
|
||||
**Slot / data-attr conventions:** Components expose `data-slot` for shadcn/Base UI slotting and tests assert it (`button.test.tsx:22-25`).
|
||||
|
||||
**Async UI:** Use `waitFor` from `@testing-library/react` and `await userEvent.*`. The `cleanup()` afterEach in `vitest.setup.ts` ensures DOM doesn't leak between tests despite `isolate: false`.
|
||||
|
||||
## Reporters
|
||||
|
||||
Per-package `package.json` scripts (uniform pattern, e.g. `packages/api/package.json:15-18`):
|
||||
|
||||
- `test` → `vitest run --passWithNoTests`
|
||||
- `test:coverage` → `vitest run --coverage --passWithNoTests`
|
||||
- `test:ci` → `vitest run --coverage --reporter=default --reporter=github-actions --reporter=json --reporter=junit --outputFile.json=reports/vitest-results.json --outputFile.junit=reports/vitest-junit.xml --passWithNoTests`
|
||||
- `test:agent` → `vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests`
|
||||
|
||||
The `agent` reporter is a Vitest 4 feature optimized for LLM-driven runs; `pnpm test:agent` is the canonical script to use when an agent needs structured pass/fail data.
|
||||
|
||||
JUnit + JSON outputs land in `reports/` inside each package (Biome-ignored).
|
||||
|
||||
## CI
|
||||
|
||||
- **`.github/workflows/autofix.yml`** — runs on every PR and push to `main`. It runs `pnpm knip --fix` and `pnpm check`. **It does NOT run `pnpm test`.** Tests are not currently gating CI.
|
||||
- **`.github/workflows/docker-build.yml`** — `workflow_dispatch` only; builds multi-arch images. No test step.
|
||||
- **`.github/workflows/crowdin-sync.yml`** — translation sync only.
|
||||
|
||||
Tests are run locally (`pnpm test`) or by agents via `pnpm test:agent` / `pnpm test:ci`. No PR is currently blocked by a failing test on GitHub Actions.
|
||||
|
||||
## Test Types
|
||||
|
||||
- **Unit tests** — Dominant. Pure functions in `packages/utils`, `packages/schema`, `packages/pdf/src/templates/shared`, `packages/api/src/{helpers,dto}` are exercised in isolation.
|
||||
- **Component tests** — `packages/ui/src/components/*.test.tsx` and a handful in `apps/web/src/components/`. Driven by `@testing-library/react` + `happy-dom` (file-level override) or `packages/ui`'s package-level `environment: "happy-dom"`.
|
||||
- **Integration tests** — None against the live Drizzle client or the running TanStack Start server. `apps/web/src/components/resume/preview.browser.test.tsx` is the closest, mocking React PDF and exercising the preview pipeline end-to-end in happy-dom.
|
||||
- **E2E / browser tests** — Not present. No Playwright, Cypress, or `vitest --browser` config.
|
||||
|
||||
## Common Patterns
|
||||
|
||||
**Async error testing:**
|
||||
|
||||
```typescript
|
||||
expect(() => assertCanView({ userId: "u1", isPublic: false }, null)).toThrow();
|
||||
try {
|
||||
assertCanView({ userId: "u1", isPublic: false }, null);
|
||||
expect.unreachable();
|
||||
} catch (error: unknown) {
|
||||
expect((error as { code?: string }).code).toBe("NOT_FOUND");
|
||||
}
|
||||
```
|
||||
(See `packages/api/src/helpers/resume-access-policy.test.ts:29-44`.)
|
||||
|
||||
**Immutability assertions:**
|
||||
|
||||
```typescript
|
||||
const before = JSON.stringify(resume);
|
||||
redactResumeForViewer(resume, false);
|
||||
expect(JSON.stringify(resume)).toBe(before);
|
||||
```
|
||||
(See `packages/api/src/helpers/resume-access-policy.test.ts:86-93`.)
|
||||
|
||||
**Time-sensitive logic:** UUIDv7 ordering is verified with a `setTimeout` and a string compare instead of mocking time (`packages/utils/src/string.test.ts:15-20`).
|
||||
|
||||
## Coverage Gaps Worth Flagging
|
||||
|
||||
These areas have implementation but no `*.test.*` files alongside them today — agents adding features here should consider adding tests.
|
||||
|
||||
- **`packages/email/src/transport.ts` and templates** — no tests. SMTP transport is untested.
|
||||
- **`packages/env/src/server.ts`** — no tests for env-var schema validation.
|
||||
- **`packages/auth/`** — no tests; Better Auth config and helpers are uncovered.
|
||||
- **`packages/api/src/services/{resume,storage,statistics,auth,flags,resume-events}.ts`** — only `ai.ts` has a service-level test (`ai.test.ts`). Most resume mutation flow logic is exercised only indirectly through `helpers/resume-access-policy.test.ts` and `dto/resume.test.ts`.
|
||||
- **`packages/api/src/routers/*`** — no router-level tests. End-to-end oRPC procedure behavior (auth + rate limit + service composition) is not asserted.
|
||||
- **`packages/api/src/middleware/rate-limit/*`** — no tests.
|
||||
- **`packages/db/src/schema/*`** — no tests (schema correctness is implicit, but no migration roundtrip tests).
|
||||
- **`packages/scripts/`** — no tests.
|
||||
- **`packages/runtime-externals/`** — no tests.
|
||||
- **`apps/web/src/routes/**`** — route handlers (`api/rpc.$.ts`, `api/auth.$.ts`, `api/health.ts`, `uploads/...`, `mcp/...`, `auth/oauth.ts`) and most builder UI under `routes/builder/$resumeId` are uncovered.
|
||||
- **`apps/web/src/dialogs/**`** — only `store.test.ts` covers the dialog store. Individual dialog components (resume create/update/import, two-factor, api-key) are uncovered.
|
||||
- **`packages/pdf/src/templates/{azurill,bronzor,...}`** — individual template renderers have no tests; only the shared primitives in `templates/shared/` are covered.
|
||||
|
||||
When adding tests in any of these areas, follow the colocation rule (`foo.ts` ↔ `foo.test.ts`) and reuse `defaultResumeData` / `sampleResumeData` from `@reactive-resume/schema/resume/*` instead of inventing new fixtures.
|
||||
|
||||
---
|
||||
|
||||
*Testing analysis: 2026-05-11*
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/utils/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158664889981519,"mode":420,"is_dir":false}},"order":["packages/utils/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"0c7a15dde9d26988","duration":955,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"hash":"18315d11067e0830","duration":9205,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"ee0217b2e9df145b45e6731ac512d88ad59406eee553ed1b197bdf1eef2d5689"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/env/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158665081126046,"mode":420,"is_dir":false}},"order":["packages/env/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"24552bdffdc5ebcb","duration":1146,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/fonts/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158665816497121,"mode":420,"is_dir":false}},"order":["packages/fonts/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"2c1f239ac1e9bd96","duration":1882,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/import/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158667091029787,"mode":420,"is_dir":false}},"order":["packages/import/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"5fff137e287b47d8","duration":3154,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"apps/web/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158668660018078,"mode":420,"is_dir":false}},"order":["apps/web/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"6711a052e760da9a","duration":3049,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/ui/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158666985313670,"mode":420,"is_dir":false}},"order":["packages/ui/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"72c3ccc9f2f5feed","duration":3048,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/scripts/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158665609656007,"mode":420,"is_dir":false}},"order":["packages/scripts/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"7ad6f44ecc30113b","duration":1673,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/schema/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158666036371217,"mode":420,"is_dir":false}},"order":["packages/schema/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"8ac845ee07e175fc","duration":2102,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/auth/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158667978449652,"mode":420,"is_dir":false}},"order":["packages/auth/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"a1fc5770a21706e7","duration":2896,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/email/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158665401936928,"mode":420,"is_dir":false}},"order":["packages/email/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"b5f38c54fffff57f","duration":1465,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/db/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158666974087786,"mode":420,"is_dir":false}},"order":["packages/db/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"b849023dfa3fccd9","duration":3037,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"hash":"baf3349509c6078b","duration":10422,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"d2396996b2d0bdfaf37211bb596304c9daba172ce6f30ef038c35f558dc27c1e"}
|
||||
BIN
Binary file not shown.
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"hash":"c747964dd160f1ea","duration":12224,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"e19f2793896093dc74f2a4eb044a4b4d3eb636c2509fb38e823941865cdf28e3"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/ai/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158666319285663,"mode":420,"is_dir":false}},"order":["packages/ai/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"e1524476910e6054","duration":2383,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/api/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158668358064434,"mode":420,"is_dir":false}},"order":["packages/api/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"e956e719e41d711e","duration":2955,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
{"files":{"packages/pdf/.turbo/turbo-typecheck.log":{"size":29,"mtime_nanos":1778158667367331180,"mode":420,"is_dir":false}},"order":["packages/pdf/.turbo/turbo-typecheck.log"]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"hash":"fe9e2236067e95bd","duration":2476,"sha":"1b345014be41f65c6fe7ac9f42ddef9ef3a8575c","dirty_hash":"5c14d1e7f0f28737d20df1e16b72d63386130eec2a28a7842a26eab88a949a82"}
|
||||
BIN
Binary file not shown.
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"is_task_list_visible": true,
|
||||
"active_task": null
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
# AGENTS.md
|
||||
|
||||
## Cursor Cloud specific instructions
|
||||
|
||||
### Overview
|
||||
|
||||
Reactive Resume is a pnpm monorepo (Turborepo) with a single full-stack web app at `apps/web` (TanStack Start / React 19 / Vite) and ~15 internal packages under `packages/`. It runs as a single Node.js process on port 3000.
|
||||
|
||||
Internal packages are source-consumed through `package.json` export maps that point at `src` files. Do not assume package-local `dist` output exists unless a package explicitly adds it.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **Node.js 24** (matches Dockerfile `ARG NODE_VERSION=24`). Use `nvm install 24 && nvm use 24` if needed.
|
||||
- **Docker** is required to run PostgreSQL. Start it with `sudo dockerd &` if the daemon isn't running.
|
||||
- **pnpm 11.0.9** is managed via corepack (`corepack enable`).
|
||||
|
||||
### Codebase map
|
||||
|
||||
- `apps/web` is the only app. It owns TanStack Start routes, Vite/Nitro config, PWA setup, oRPC client wiring, route-level server handlers, and the resume builder UI.
|
||||
- `packages/api` contains oRPC routers, services, DTOs, storage, resume access policy, statistics, AI services, and rate limiting. The web route `apps/web/src/routes/api/rpc.$.ts` exposes these routers at `/api/rpc`.
|
||||
- `packages/auth` contains Better Auth config, auth helper functions, and exported auth types. The web route `apps/web/src/routes/api/auth.$.ts` delegates to `auth.handler`.
|
||||
- `packages/db` contains the Drizzle client and schema. Migration files live at the repo root in `migrations/`.
|
||||
- `packages/env` defines server environment validation and auto-loads the root `.env` for app/server code.
|
||||
- `packages/schema` contains Zod schemas and typed resume/page/template models.
|
||||
- `packages/pdf` contains the React PDF document, font registration, shared template primitives, and template implementations.
|
||||
- `packages/ui` contains shared Base UI/shadcn-style components and hooks.
|
||||
- `packages/fonts`, `packages/email`, `packages/import`, `packages/ai`, `packages/utils`, `packages/scripts`, `packages/config`, and `packages/runtime-externals` provide focused support surfaces. Prefer their existing exports over adding cross-package shortcuts.
|
||||
|
||||
### Web app conventions
|
||||
|
||||
- Routes are file-based under `apps/web/src/routes`. Do not hand-edit `apps/web/src/routeTree.gen.ts`; it is generated by TanStack Router tooling.
|
||||
- Server-only route handlers use route `server.handlers` blocks, for example `api/rpc.$.ts`, `api/auth.$.ts`, `api/health.ts`, uploads, schema, OpenAPI, MCP, and `.well-known` routes.
|
||||
- `apps/web/src/router.tsx` initializes router context with `queryClient`, `orpc`, `theme`, `locale`, `session`, and `flags`. Reuse route context where possible instead of refetching these concerns ad hoc.
|
||||
- The builder shell lives under `apps/web/src/routes/builder/$resumeId`. The nested preview route is client-only (`ssr: false`), while the public resume route `apps/web/src/routes/$username/$slug.tsx` uses `ssr: "data-only"`.
|
||||
- Browser-only resume preview code is split across `apps/web/src/components/resume/preview.tsx`, `preview.browser.tsx`, `pdf-canvas.tsx`, and shared helpers. Keep PDF.js/canvas/browser APIs out of SSR paths.
|
||||
- The isomorphic oRPC client is in `apps/web/src/libs/orpc/client.ts`; server calls use an in-process router client and browser calls use `/api/rpc` with credentials included.
|
||||
|
||||
### Package and feature boundaries
|
||||
|
||||
- Add new API procedures in `packages/api/src/routers/*` and keep business logic in `packages/api/src/services/*` or helpers. Prefer `protectedProcedure` from `packages/api/src/context.ts` for authenticated procedures.
|
||||
- Add database columns/tables in `packages/db/src/schema/*`, then generate root-level migrations with `pnpm db:generate`.
|
||||
- Add or change resume data shape in `packages/schema/src/resume/*` first, then update API DTOs, importers, PDF rendering, and web forms that consume that shape.
|
||||
- Add or rename templates in all relevant places: `packages/schema/src/templates.ts`, `packages/pdf/src/templates/index.ts`, template source under `packages/pdf/src/templates/<name>/`, and static previews under `apps/web/public/templates/{jpg,pdf}`.
|
||||
- Shared PDF section filtering lives in `packages/pdf/src/templates/shared/filtering.ts`. Keep template-specific visual exceptions in the owning template directory unless multiple templates need the same behavior.
|
||||
- `packages/pdf/src/hooks/use-register-fonts.ts` owns React PDF font registration, standard PDF font handling, CJK fallback stacks, and global hyphenation behavior.
|
||||
- `packages/utils` has narrowly exported helpers. If another package needs a utility, add an explicit export path instead of importing private files.
|
||||
|
||||
### Database
|
||||
|
||||
PostgreSQL runs via Docker Compose:
|
||||
|
||||
```
|
||||
sudo docker compose -f compose.dev.yml up -d postgres
|
||||
```
|
||||
|
||||
The dev default connection string is `postgresql://postgres:postgres@localhost:5432/postgres`.
|
||||
|
||||
**Important**: `drizzle-kit` (used by `pnpm db:migrate`) reads `DATABASE_URL` from `process.env` directly — it does **not** auto-load the `.env` file. You must `export DATABASE_URL=...` before running migration commands, or set it in your shell profile.
|
||||
|
||||
The web app also runs migrations during Nitro startup via `apps/web/plugins/1.migrate.ts`. Manual `pnpm db:migrate` is mainly for first setup, migration debugging, or applying migrations without starting the app.
|
||||
|
||||
### Environment
|
||||
|
||||
Copy `.env.example` to `.env`. The three required variables are:
|
||||
|
||||
- `APP_URL` (default `http://localhost:3000`)
|
||||
- `DATABASE_URL` (default `postgresql://postgres:postgres@localhost:5432/postgres`)
|
||||
- `AUTH_SECRET` (any non-empty string)
|
||||
|
||||
S3/SeaweedFS is optional. If `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, and `S3_BUCKET` are all set, the app uses S3-compatible storage. The checked-in `.env.example` sets SeaweedFS defaults, so either start the `seaweedfs` compose service too or comment out those S3 vars to use local filesystem storage under `<workspace>/data`. `LOCAL_STORAGE_PATH` must be absolute when set.
|
||||
|
||||
### Common commands
|
||||
|
||||
| Task | Command |
|
||||
|------|---------|
|
||||
| Install deps | `pnpm install` |
|
||||
| Start Postgres only | `sudo docker compose -f compose.dev.yml up -d postgres` |
|
||||
| Start Postgres + SeaweedFS | `sudo docker compose -f compose.dev.yml up -d postgres seaweedfs seaweedfs_create_bucket` |
|
||||
| Generate migrations | `DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" pnpm db:generate` |
|
||||
| Run migrations | `DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" pnpm db:migrate` |
|
||||
| Dev server | `pnpm dev` (starts on port 3000) |
|
||||
| Web dev server only | `pnpm dev:web` |
|
||||
| Lint/format | `pnpm check` (Biome) |
|
||||
| Tests | `pnpm test` (Vitest) |
|
||||
| Build | `pnpm build` |
|
||||
| Typecheck | `pnpm typecheck` |
|
||||
|
||||
For focused validation, prefer package filters before repo-wide commands, for example:
|
||||
|
||||
```
|
||||
pnpm --filter web typecheck
|
||||
pnpm --filter @reactive-resume/pdf test
|
||||
pnpm --filter @reactive-resume/api test
|
||||
```
|
||||
|
||||
Vitest test paths are package-relative when running through `pnpm --filter <package> test -- <path>`.
|
||||
|
||||
### Gotchas
|
||||
|
||||
- The dev server (`pnpm dev`) auto-runs migrations on startup via Nitro, so `pnpm db:migrate` is only strictly needed for first-time setup or after pulling new migration files.
|
||||
- Email sending requires SMTP config; without it, emails are logged to console. This is fine for dev — the app still functions, but email verification links appear in server logs.
|
||||
- The `lefthook.yml` pre-commit hook runs `biome check` on staged files. Run `pnpm check` before committing to avoid hook failures.
|
||||
- `pnpm check` is write-capable (`biome check --write --unsafe .`). Call that out when using it, and use narrower Biome commands if you need a non-mutating inspection.
|
||||
- Biome uses tabs, double quotes, line width 120, organized import groups, and sorted Tailwind classes for `clsx`, `cva`, and `cn`.
|
||||
- Most packages use `tsgo --noEmit` for typechecking and `vitest run --passWithNoTests` for tests.
|
||||
- There may be unrelated local edits in the worktree. Inspect `git status --short` first and avoid reverting files you did not touch.
|
||||
+3
-2
@@ -25,7 +25,7 @@ RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store,sharing=locked \
|
||||
pnpm install --frozen-lockfile
|
||||
|
||||
COPY --from=pruner /app/out/full/ ./
|
||||
RUN pnpm turbo run build --filter=web
|
||||
RUN rm -rf apps/web/.output && pnpm turbo run build --filter=web --force
|
||||
|
||||
FROM base AS runtime-pruner
|
||||
COPY . .
|
||||
@@ -50,7 +50,8 @@ LABEL org.opencontainers.image.documentation="https://docs.rxresu.me"
|
||||
LABEL org.opencontainers.image.source="https://github.com/amruthpillai/reactive-resume"
|
||||
|
||||
ENV NODE_ENV="production" \
|
||||
PORT=3000
|
||||
PORT=3000 \
|
||||
LOCAL_STORAGE_PATH=/app/data
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<a href="https://discord.gg/aSyA5ZSxpb"><img src="https://img.shields.io/discord/1173518977851473940?style=flat-square&label=discord" alt="Discord" /></a>
|
||||
<a href="https://crowdin.com/project/reactive-resume"><img src="https://badges.crowdin.net/reactive-resume/localized.svg?style=flat-square" alt="Crowdin" /></a>
|
||||
<a href="https://github.com/sponsors/AmruthPillai"><img src="https://img.shields.io/github/sponsors/AmruthPillai?style=flat-square&label=sponsors" alt="Sponsors" /></a>
|
||||
<a href="https://opencollective.com/reactive-resume"><img src="https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square&label=donations" alt="Donations" /></a>
|
||||
<a href="https://opencollective.com/reactive-resume/donate"><img src="https://img.shields.io/opencollective/backers/reactive-resume?style=flat-square&label=donations" alt="Donations" /></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -36,7 +36,7 @@ Built with privacy as a core principle, Reactive Resume gives you complete owner
|
||||
**Resume Building**
|
||||
|
||||
- Real-time preview as you type
|
||||
- Multiple export formats (PDF, JSON)
|
||||
- Multiple export formats (PDF, JSON, DOCX)
|
||||
- Drag-and-drop section ordering
|
||||
- Custom sections for any content type
|
||||
- Rich text editor with formatting support
|
||||
@@ -130,6 +130,10 @@ Built with privacy as a core principle, Reactive Resume gives you complete owner
|
||||
<img src="apps/web/public/templates/jpg/meowth.jpg" alt="Meowth" width="150" />
|
||||
<br /><sub><b>Meowth</b></sub>
|
||||
</td>
|
||||
<td align="center">
|
||||
<img src="apps/web/public/templates/jpg/scizor.jpg" alt="Scizor" width="150" />
|
||||
<br /><sub><b>Scizor</b></sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -208,7 +212,7 @@ Reactive Resume is and always will be free and open-source. If it has helped you
|
||||
<a href="https://github.com/sponsors/AmruthPillai">
|
||||
<img src="https://img.shields.io/badge/GitHub%20Sponsors-Support-ea4aaa?style=flat-square&logo=github-sponsors" alt="GitHub Sponsors" />
|
||||
</a>
|
||||
<a href="https://opencollective.com/reactive-resume">
|
||||
<a href="https://opencollective.com/reactive-resume/donate">
|
||||
<img src="https://img.shields.io/badge/Open%20Collective-Contribute-7FADF2?style=flat-square&logo=open-collective" alt="Open Collective" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
|
||||
[2m$ tsgo --noEmit[22m
|
||||
@@ -1 +0,0 @@
|
||||
2
|
||||
@@ -1 +0,0 @@
|
||||
36670
|
||||
@@ -1 +0,0 @@
|
||||
1
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: af\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# rol} other {# rolle}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} voorstelle hersien"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Beslis! Jy kan jou CV met 'n enkele klik na PDF uitvoer. Die uitgevoerde PDF behou al jou uitleg en styl perfek."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Aanvaar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Aanvaar alles"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Aanvaarde voorstel"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Verkry programmatiese toegang tot jou CV's en data deur die API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Voeg ry voor by"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Na"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "KI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "KI-integrasie gedeaktiveer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "KI-voorstel toegepas."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "KI-voorstel verwerp."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "KI-voorstelle toegepas."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "KI-voorstelle verwerp."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "KI CV-assistent"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanees"
|
||||
@@ -367,10 +412,22 @@ msgstr "Studierigting"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Kunsmatige Intelligensie"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Vra vir 'n gerigte CV-verandering..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Vra vir 'n inkrementele verandering"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Aspekverhouding"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Assistent-versoek het misluk"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Basies"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Pragtige sjablone om van te kies, met meer op pad."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Voorheen"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengaals"
|
||||
@@ -462,10 +523,6 @@ msgstr "Kolpuntlys"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Deur die gemeenskap, vir die gemeenskap."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Kan ek die sjablone pasmaak?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Kan ek my CV na PDF uitvoer?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Klaar"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Klik hier om 'n lêer te kies om in te voer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Maak toe"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Maak KI-assistent toe"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Kodeblok"
|
||||
@@ -622,6 +687,10 @@ msgstr "Bevestig"
|
||||
msgid "Connect"
|
||||
msgstr "Koppel"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Koppel en verifieer 'n KI-verskaffer voordat u CV-redigeringsvoorstelle gebruik."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Kopieer hierdie geheime sleutel en gebruik dit in jou toepassings om toe
|
||||
msgid "Copy URL"
|
||||
msgstr "Kopieer URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Kon nie die KI-voorstel toepas nie."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Ontkoppel"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Maak toe"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentasie"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Het jy nie 'n rekening nie? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Skenk"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Skenk aan Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Aktiveer 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Aktiveer KI-funksies"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Aktiveer KI-integrasie"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Aktiveer twee-faktor-magtiging"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Alles wat hier ingevoer word, word plaaslik in jou blaaier gestoor. Jou
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Alles wat jy nodig het om professionele CV's te skep, te pasmaak en te deel. Gebou met privaatheid in gedagte, aangedryf deur oopbron, en heeltemal gratis vir altyd."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Voorbeelde: herskryf die opsomming, verskerp een ervaringskoeël, voeg statistieke by, of pas die CV aan vir 'n posbeskrywing."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Verlaat volskerm"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Het jy jou wagwoord vergeet?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formaat"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formaat"
|
||||
msgid "Free"
|
||||
msgstr "Gratis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Vrye vorm"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Frans"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Meer voorstelaksies"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Skuif na"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Moet begin met https://"
|
||||
msgid "Name"
|
||||
msgstr "Naam"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Benodig hersiening"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalees"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Nuwe wagwoord"
|
||||
msgid "New Section"
|
||||
msgstr "Nuwe afdeling"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Geen advertensies, geen dop nie"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Deurlopende instandhouding"
|
||||
msgid "Open"
|
||||
msgstr "Maak oop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Maak KI-assistent oop"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Maak e-posklient oop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Oop Integrasies"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Maak integrasiesinstellings oop"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Voer asseblief die wagwoord in wat deur die eienaar van die CV met jou g
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Voer asseblief die URL in waarheen jy wil skakel:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Ondersteun asseblief die projek"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Posisie"
|
||||
msgid "Preferences"
|
||||
msgstr "Voorkeure"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Voorbereiding van veranderinge"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Voorgestelde instellings"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Druk <0>{RETURN_KEY}</0> of <1>{COMMA_KEY}</1> om die huidige sleutelwoo
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Druk <0>Enter</0> om oop te maak"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Vorige"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Primêre kleur"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Vorderingsbalk"
|
||||
msgid "Projects"
|
||||
msgstr "Projektte"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Voorstel {0} van {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Beskerm jou CV teen ongemagtigde toegang met 'n wagwoord"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikasies"
|
||||
msgid "Publisher"
|
||||
msgstr "Uitgewer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Rou JSON-pleister"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Gaan na tuisblad"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume is 'n gratis en oopbronprojek, met liefde gebou en deur
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume is 'n gratis en oopbron-hervatbouer wat die proses om jou CV te skep, by te werk en te deel, vereenvoudig."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reaktiewe CV is gratis en oopbron. As dit jou gehelp het, oorweeg dit asseblief om te skenk."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume is oopbron, privaatheid-gefokus en heeltemal gratis. Anders as ander hervatbouers, wys dit nie advertensies nie, spoor nie jou data na nie en sluit nie funksies agter 'n betaalmuur nie."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Reghoek"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Reghoek (volle breedte)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Herdoen (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Verfris"
|
||||
msgid "Register New Device"
|
||||
msgstr "Registreer nuwe toestel"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Verwerp"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Verwerp alles"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Verwerpte voorstel"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Onthou jy jou wagwoord? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Stuur tans verifikasie-e-pos weer..."
|
||||
msgid "Reset"
|
||||
msgstr "Herstel"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Stel klets terug"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Herstel jou wagwoord"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Besig om jou wagwoord te herstel..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Verander grootte van KI-assistent"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Hulpbronne"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "CV-analise voltooi."
|
||||
msgid "Resumes"
|
||||
msgstr "CV's"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Hersiening vereis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Hersiene voorstelle"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Regs belyn"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Kies..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Self-aanbieding met Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Stuur"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Stuur e-pos om wagwoord te herstel"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Stuur tans e-pos om wagwoord te herstel..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Stuur versoek"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Skeier"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Enkelkolom met 'n sybalk en skoon roostruitleg; veelsydig vir enige pro
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Enkelkolom met 'n inlyn drie-kolom-inskrywingsopskrif (posisie · organisasie · tydperk); kompak en ATS-vriendelik, goed geskik vir Asiatiese CV-konvensies (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Enkelkolom met hoofletter-afdelingopskrifte en 'n primêre kleur boonste reël op elke bladsy; gepoleer vir uitvoerende, konsulterende of opstart-CV's."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Enkelkolom; gepoleer en ernstig vir senior- of ondernemingsvlakposte."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistiek"
|
||||
msgid "Stay"
|
||||
msgstr "Bly"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Sterktes"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Tekskleur"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Die KI het 'n verandering voorgestel wat nie meer op hierdie CV van toepassing is nie."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Die KI het 'n voorstel terugbesorg wat nie voorbeskou kon word nie."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "Die API-sleutel is suksesvol uitgevee."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Die API-sleutel sal nie meer jou data kan toegang nadat dit uitgevee is nie. Hierdie aksie kan nie ongedaan gemaak word nie."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Die assistent het gestop voordat hy 'n voorstel teruggegee het."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Dit is 'n URL-vriendelike naam vir jou CV."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Dit kan 'n paar minute neem, afhangend van die reaksie van die KI-verskaffer. Moet asseblief nie die venster sluit of die bladsy herlaai nie."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Hierdie voorstel is verouderd. Vra die assistent om dit vanaf die nuutste CV te hergenereer."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Hierdie CV is gesluit en kan nie bygewerk word nie."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Om jou rekening uit te vee, moet jy die bevestigingstekst invoer en die
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Skakel die linkerkantbalk aan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Wissel bladsystapeling"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Oekraïens"
|
||||
msgid "Underline"
|
||||
msgstr "Onderstreep"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Ontdoen (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Onbeperkte CV's"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Ja, Reactive Resume is in verskeie tale beskikbaar. Jy kan jou voorkeurtaal kies op die instellingsbladsy, of deur die taalwisselaar regs bo te gebruik. As jy jou taal nie sien nie, of as jy die bestaande vertalings wil verbeter, kan jy <0>bydra tot die vertalings op Crowdin<1> (maak in nuwe oortjie oop)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Ja! Elke sjabloon is heeltemal aanpasbaar. Jy kan kleure, lettertipes, spasiëring verander en selfs pasgemaakte CSS skryf vir volledige beheer oor jou CV se voorkoms."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Ja! Reactive Resume is heeltemal gratis om te gebruik, sonder versteekte koste, premiemvlakke of intekengelde. Dit is oopbron en sal altyd gratis bly."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Jou data word plaaslik gestoor"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Jou data word veilig gestoor en nooit met derde partye gedeel nie. Jy kan ook Reactive Resume self-host op jou eie bedieners vir volledige beheer oor jou data."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Jou jongste veranderinge kon nie gestoor word nie."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: am\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Amharic\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ንጥል} other {# ንጥሎች}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# ሚና} other {# ሚናዎች}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} የተገመገሙ ሀሳቦች"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "ፍጹም! የየታሪክዎን ወደ PDF በአንድ ጠቅታ መላክ ትችላላችሁ። የተላከው የ PDF ፋይል ሁሉንም ቅርጸትና ዲዛይን በትክክል ይጠብቃል።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "ተቀበል"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "ሁሉንም ተቀበል"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "ተቀባይነት ያገኘ ሀሳብ"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "በ API በመጠቀም የየታሪኮችዎን እና መረጃዎን ፕሮግራማዊ መዳረስ።"
|
||||
@@ -229,10 +246,38 @@ msgstr "ከዚህ በፊት ረድፍ ያክሉ"
|
||||
msgid "Afrikaans"
|
||||
msgstr "አፍሪካንስ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "በኋላ"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "የ AI ውህደት ተሰናክሏል"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "የAI ፕሮፖዛል ተተግብሯል።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "የ AI ፕሮፖዛል ውድቅ ተደርጓል።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "የአዕምሮ ህክምና ፕሮፖዛሎች ተግባራዊ ሆነዋል።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "የ AI ፕሮፖዛሎች ውድቅ ተደርገዋል።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "የ AI ሪቪው ረዳት"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "አልባኒኛ"
|
||||
@@ -367,10 +412,22 @@ msgstr "የስልጠና መስክ"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "አርቲፊሻል ኢንተለጀንስ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "የታለመ የስራ ልምድ ለውጥ ጠይቅ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "ቀስ በቀስ ለውጥ ይጠይቁ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "የመገናኛ መጠን"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "የረዳት ጥያቄ አልተሳካም"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "መሰረታዊ"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "ውብ ቴምፕሌቶችን ይመርጡ፣ ተጨማሪዎችም በመንገድ ላይ ናቸው።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "ከዚህ በፊት"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "ቤንጋሊኛ"
|
||||
@@ -462,10 +523,6 @@ msgstr "የነጥብ ዝርዝር"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "በማህበረሰቡ፣ ለማህበረሰቡ።"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "ቴምፕሌቶቹን ልገምግሙ እችላለሁ?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "የየታሪክዬን ወደ PDF ልላክ እችላለሁ?"
|
||||
@@ -576,6 +633,14 @@ msgstr "አጽዳ"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "ፋይል ለማምጣት ለመምረጥ እዚህ ጠቅ ያድርጉ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "ዝጋ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "የ AI ረዳትን ዝጋ"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "የኮድ ብሎክ"
|
||||
@@ -622,6 +687,10 @@ msgstr "አረጋግጥ"
|
||||
msgid "Connect"
|
||||
msgstr "አገናኝ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "የሪዚሜ አርትዖት ፕሮፖዛሎችን ከመጠቀምዎ በፊት የAI አቅራቢን ያገናኙ እና ያረጋግጡ።"
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "ይህንን ሚስጥራዊ ቁልፍ ቅጂ አድርጉ እና ውስ
|
||||
msgid "Copy URL"
|
||||
msgstr "URL ቅጂ አድርግ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "የAI ፕሮፖዛሉን መተግበር አልተቻለም።"
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "ግንኙነትን ቁርጥ"
|
||||
msgid "Discord"
|
||||
msgstr "ዲስኮርድ"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "አሰናብት"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "ሰነዶች"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "መለያ የለዎትም? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "ይለግሱ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "ለ Reactive Resume መዋጮ አድርግ"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FAን አንቃ"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "የ AI ባህሪዎችን አንቃ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "የAI ውህደትን አንቃ"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "ሁለት-ደረጃ ማረጋገጫን አንቃ"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "እዚህ የሚገባው ሁሉ በአካባቢዎ አሳሽ ውስጥ
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "ሙያዊ የየታሪክ ማቅረቢያዎችን ለመፍጠር፣ ለማበጀት እና ለመካፈል ያስፈልግዎትን ሁሉ ይዟል። የግላዊነትን ጥበቃ በማስቡ፣ በክፍት ምንጭ የሚነቃቃ፣ ፍጹም ነፃ የሆነ ነው።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "ምሳሌዎች፡ ማጠቃለያውን እንደገና ይፃፉ፣ የአንድ ልምድ ነጥብ ያጥብቁ፣ መለኪያዎችን ያክሉ ወይም የስራ መግለጫውን (ሲቪ) ያስተካክሉ።"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "ሙሉ ስክሪን ውጣ"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "የይለፍ ቃልዎን ረስተዋል?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "ቅርጸት"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "ቅርጸት"
|
||||
msgid "Free"
|
||||
msgstr "ነፃ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "ነፃ-ፎርም"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "ፈረንሳይኛ"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "ሞዴል"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "ተጨማሪ የፕሮፖዛል እርምጃዎች"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "አንቀሳቅስ ወደ"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "በhttps:// መጀመር አለበት"
|
||||
msgid "Name"
|
||||
msgstr "ስም"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "ግምገማ ያስፈልገዋል"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "ኔፓሊኛ"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "አዲስ የይለፍ ቃል"
|
||||
msgid "New Section"
|
||||
msgstr "አዲስ ክፍል"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "ቀጣይ"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "ምንም ማስታወቂያ የለም፣ ምንም መከታተያ የለም"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "የቀጣይ ጥገና"
|
||||
msgid "Open"
|
||||
msgstr "ክፈት"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "ክፍት የ AI ረዳት"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "የኢሜል ደንበኛን ክፈት"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "ክፍት ውህደቶች"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "የውህደቶች ቅንብሮችን ክፈት"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "ወደ የየታሪክው ባለቤት በተካፈለዎት የይለ
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "ሊያገናኙት የሚፈልጉትን URL እባክዎን ያስገቡ፡"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "እባክዎን ፕሮጀክቱን ይደግፉ"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "አቀማመጥ"
|
||||
msgid "Preferences"
|
||||
msgstr "ምርጫዎች"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "ለውጦችን በማዘጋጀት ላይ"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "ቀድሞ የተዘጋጁ"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "የአሁኑን ቁልፍ ቃል ለማከል ወይም ለማስቀመ
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "ለመክፈት <0>Enter</0>ን ይጫኑ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "ቀዳሚ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "ዋና ቀለም"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "የሂደት አሰሳ ማስመሪያ"
|
||||
msgid "Projects"
|
||||
msgstr "ፕሮጀክቶች"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "ሀሳብ {0} የ {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "የየታሪክዎን ከፍተኛ ያልተፈቀደ መዳረስ በይለፍ ቃል ይከላከሉት"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "ህትመቶች"
|
||||
msgid "Publisher"
|
||||
msgstr "አታሚ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "ጥሬ JSON ፓች"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - ወደ መነሻ ገጽ ሂድ"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume ነፃ እና ክፍት ምንጭ ፕሮጀክት ሲሆ
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume የየታሪክ መፍጠር፣ ማዘመን እና መካፈል ሂደትን የሚቀላቅል ነፃ እና ክፍት ምንጭ የየታሪክ ማቅረቢያ መገንቢያ ነው።"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "ምላሽ ሰጪ የስራ ልምድ (Reactive) ነፃ እና ክፍት ምንጭ ነው። ከረዳዎት፣ እባክዎን መለገስን ያስቡበት።"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume ክፍት ምንጭ፣ ግላዊነትን የሚመርጥ እና ፍጹም ነፃ ነው። ከሌሎች የየታሪክ ማቅረቢያዎች የተለየ ምክንያቱ ማስታወቂያ አያሳይም፣ መረጃዎን አይከታተልም፣ ባህሪዎችንም በክፍያ ግድግዳ አያስገባም።"
|
||||
@@ -2362,11 +2500,6 @@ msgstr "አክታ"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "አክታ (ሙሉ ወፍር)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "ደግመው አድርጉ (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "ዳስ አድርግ"
|
||||
msgid "Register New Device"
|
||||
msgstr "አዲስ መሣሪያ መመዝገብ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "ውድቅ አድርግ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "ሁሉንም ውድቅ አድርግ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "ውድቅ የተደረገ ሀሳብ"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "የይለፍ ቃልዎን ያስታውሳሉ? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "የማረጋገጫ ኢሜልን እንደገና በመላክ ላይ…"
|
||||
msgid "Reset"
|
||||
msgstr "ዳግም ለመጀመር"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "ውይይትን ዳግም አስጀምር"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "የይለፍ ቃልዎን ዳግም ያስጀምሩ"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "የይለፍ ቃልዎን በመዳግም ላይ…"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "የAI ረዳት መጠን ቀይር"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "ሀብቶች"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "የሥራ ማመልከቻ ሰነድ ትንተና ተጠናቋል።"
|
||||
msgid "Resumes"
|
||||
msgstr "የየታሪክ ማቅረቢያዎች"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "ግምገማ ያስፈልጋል"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "የተገመገሙ ፕሮፖዛሎችን"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "በቀኝ ማሰለፊያ"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "ምረጥ..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "በ Docker ራስህን አስተናግድ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "ላክ"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "የይለፍ ቃል ዳግም እንዲታወቅ ኢሜል ላክ"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "የይለፍ ቃል ዳግም እንዲታወቅ ኢሜል በመላክ ላይ…"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "ጥያቄ በመላክ ላይ"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "መለያ መለያ"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "አንድ-አምድ የሆነ ከጎን አሞሌ እና ንፁህ የ
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "ነጠላ አምድ ከውስጠ-መስመር ሶስት-አምድ የመግቢያ ራስጌ ጋር (ቦታ · ድርጅት · ጊዜ)፤ የታመቀ እና ለATS ተስማሚ ሲሆን ለእስያ የሥራ ማመልከቻ ሰነድ ልማዶች (CN/JP/KR) በጣም የሚስማማ ነው።"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "በእያንዳንዱ ገጽ ላይ አቢይ ሆሄ ያለው የክፍል ርዕሶች እና ዋና ቀለም ያለው የላይኛው ደንብ ያለው ነጠላ-አምድ፤ ለአስፈፃሚ፣ ለምክር ወይም ለጀማሪ የስራ ልምድ የተወለወለ።"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "አንድ-አምድ የሆነ፣ የታማኝ እና ኃላፊነት ያለው ለከፍተኛ ወይም ለድርጅታዊ ደረጃ ሚናዎች የሚስማማ።"
|
||||
@@ -2809,6 +2982,10 @@ msgstr "ስታቲስቲክስ"
|
||||
msgid "Stay"
|
||||
msgstr "ቆይ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "ተወ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "ጥንካሬዎች"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "የጽሁፍ ቀለም"
|
||||
msgid "Thai"
|
||||
msgstr "ታይኛ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "የአይአይ (AI) ከዚህ የስራ ልምድ መግለጫ ጋር የማይተገበር ለውጥ አቅርቧል።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "የአይአርአይ ቅድመ እይታ ሊደረግበት የማይችል ሀሳብ መልሷል።"
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API ቁልፉ በተሳካ ሁኔታ ተሰርዟል።"
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API ቁልፉ ከተሰረዘ በኋላ ለመረጃዎ መዳረስ አይችልም። ይህ ሥራ መቀለብ አይቻልም።"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "ረዳቱ አንድ ሀሳብ ከመመለሱ በፊት ቆመ።"
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "ይህ ለየታሪክዎ ተመቻቹ የ URL ስም ነው።"
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "ይህ በ AI አቅራቢው ምላሽ ላይ በመመርኮዝ ጥቂት ደቂቃዎች ሊወስድ ይችላል። እባክዎ መስኮቱን አትዘጉ ወይም ገጹን አታሻሽሉ።"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "ይህ ሀሳብ ጊዜው ያለፈበት ነው። ረዳቱን ከአዲሱ የስራ ልምድ (ሲቪ) እንደገና እንዲያድስለት ይጠይቁት።"
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "ይህ የየታሪክ ማቅረቢያ ተቆልፏል እና ማዘመን አይቻልም።"
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "መለያዎን ለመሰረዝ የማረጋገጫ ጽሑፍን ያስ
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "የግራ የጎን አሞሌን ቀያይር"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "የገጽ መደራረብን ቀያይር"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "ዩክሬንኛ"
|
||||
msgid "Underline"
|
||||
msgstr "ነጥብ ተስማሚ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "ይመልሱ (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "ያለ ገደብ የየታሪክ ማቅረቢያዎች"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "ኤክስ (ትዊተር)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "አዎ፣ Reactive Resume በብዙ ቋንቋዎች ላይ ይገኛል። የምትመርጡትን ቋንቋ በቅንብሮች ገጽ ውስጥ ወይም በላይኛው ቀኝ ጠርዝ ያለውን የቋንቋ መቀየሪያ በመጠቀም መምረጥ ትችላላችሁ። ቋንቋዎን ካላያችሁ፣ ወይም ቀረውን ትርጉም ለማሻሻል ከፈለጉ፣ በ<0> Crowdin ላይ ትርጉሞችን በማሻሻል መዋኛ ለመያዝ ትችላላችሁ<1> (በአዲስ ታብ ይከፈታል)</1></0>።"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "አዎ! ሁሉም ቴምፕሌቶች ሙሉ በሙሉ የሚቀየሩ ናቸው። ቀለሞችን፣ ፊደሎችን፣ ክፍተቶችን መቀየር ትችላላችሁ፣ ደግሞም ለየታሪክዎ መልክ ፍጹም መቆጣጠር ለማግኘት ብጁ CSS መጻፍ ትችላላችሁ።"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "አዎ! Reactive Resume ፍጹም ነፃ ለመጠቀም ይችላሉ፣ የተደበቁ ወጪዎች፣ የፕሪሚየም ደረጃዎች ወይም ክፍያ መመዝገብ የለም። ክፍት ምንጭ ነው እና ሁልጊዜም ነፃ ይቆያል።"
|
||||
@@ -3440,7 +3629,7 @@ msgstr "መረጃዎ በአካባቢዎ መሣሪያ ላይ ይቀመጣል"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "መረጃዎ በደህና ይከማቻል እና ከሶስተኛ ወገኖች ጋር አይተካፈልም። ደግሞም በራስዎ ሰርቨር ላይ Reactive Resumeን በመጫን በመረጃዎ ላይ ሙሉ ቁጥጥር ማግኘት ትችላላችሁ።"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "የቅርብ ጊዜ ለውጦችዎ ሊቀመጡ አልቻሉም።"
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ar\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Arabic\n"
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, zero {# عنصر} one {# عنصر} two {# عنصران} few
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, zero {# أدوار} one {# دور} two {# دوران} few {# أدوار} many {# دورًا} other {# أدوار}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "تمت مراجعة المقترحات {0}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "حجم الورق A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "بكل تأكيد! يمكنك تصدير سيرتك الذاتية إلى PDF بنقرة واحدة فقط. يحافظ ملف PDF المُصدَّر على جميع التنسيقات والأنماط الخاصة بك بشكل مثالي."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "يقبل"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "قبول الكل"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "الاقتراح المقبول"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "يمكنك الوصول إلى سيرك الذاتية وبياناتك برمجيًا باستخدام واجهة برمجة التطبيقات (API)."
|
||||
@@ -229,10 +246,38 @@ msgstr "إضافة صف قبل"
|
||||
msgid "Afrikaans"
|
||||
msgstr "الأفريقانس"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "بعد"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "الذكاء الاصطناعي"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "تم تعطيل تكامل الذكاء الاصطناعي"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "تم تقديم اقتراح الذكاء الاصطناعي."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "تم رفض اقتراح الذكاء الاصطناعي."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "تم تطبيق مقترحات الذكاء الاصطناعي."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "تم رفض مقترحات الذكاء الاصطناعي."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "مساعد كتابة السيرة الذاتية المدعوم بالذكاء الاصطناعي"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "الألبانية"
|
||||
@@ -367,10 +412,22 @@ msgstr "مجال الدراسة"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "الذكاء الاصطناعي"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "اطلب تعديلاً مُحدداً لسيرتك الذاتية..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "اطلب تغييرًا تدريجيًا"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "نسبة الأبعاد"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "فشل طلب المساعد"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "الأساسيات"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "قوالب جميلة للاختيار من بينها، مع المزيد في الطريق."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "قبل"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "البنغالية"
|
||||
@@ -462,10 +523,6 @@ msgstr "قائمة نقطية"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "من قبل المجتمع، من أجل المجتمع."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "هل يمكنني تخصيص القوالب؟"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "هل يمكنني تصدير سيرتي الذاتية إلى PDF؟"
|
||||
@@ -576,6 +633,14 @@ msgstr "واضح"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "انقر هنا لتحديد ملف لاستيراده"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "إغلاق"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "مساعد الذكاء الاصطناعي للإغلاق"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "كتلة برمجية"
|
||||
@@ -622,6 +687,10 @@ msgstr "تأكيد"
|
||||
msgid "Connect"
|
||||
msgstr "اتصال"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "قم بالتواصل مع مزود خدمة الذكاء الاصطناعي والتحقق منه قبل استخدام مقترحات تحرير السيرة الذاتية."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "انسخ مفتاحك السري هذا واستخدمه في تطبيق
|
||||
msgid "Copy URL"
|
||||
msgstr "نسخ عنوان URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "تعذر تطبيق اقتراح الذكاء الاصطناعي."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "قطع الاتصال"
|
||||
msgid "Discord"
|
||||
msgstr "ديسكورد"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "رفض"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "إرشادات الاستخدام"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "ليس لديك حساب؟ <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "يتبرع"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "تبرع لـReactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "تمكين المصادقة الثنائية (2FA)"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "تمكين ميزات الذكاء الاصطناعي"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "تفعيل تكامل الذكاء الاصطناعي"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "تمكين المصادقة الثنائية"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "كل ما يتم إدخاله هنا يُخزَّن محليًا في م
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "كل ما تحتاجه لإنشاء سير ذاتية احترافية وتخصيصها ومشاركتها. بُني مع مراعاة الخصوصية، ومدعوم بالمصدر المفتوح، ومجاني تمامًا إلى الأبد."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "أمثلة: إعادة كتابة الملخص، أو تحسين إحدى نقاط الخبرة، أو إضافة مقاييس، أو تعديل السيرة الذاتية لتناسب وصف الوظيفة."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "الخروج من وضع ملء الشاشة"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "أنسيت كلمة مرورك؟"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "الصيغة"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "الصيغة"
|
||||
msgid "Free"
|
||||
msgstr "مجاني"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "حر الشكل"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "الفرنسية"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "مايكروسوفت وورد"
|
||||
msgid "Model"
|
||||
msgstr "النموذج"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "المزيد من إجراءات الاقتراح"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "نقل إلى"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "يجب أن تبدأ بـ https://"
|
||||
msgid "Name"
|
||||
msgstr "الاسم"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "يحتاج إلى مراجعة"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "النيبالية"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "كلمة مرور جديدة"
|
||||
msgid "New Section"
|
||||
msgstr "قسم جديد"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "التالي"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "بدون إعلانات، بدون تتبّع"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "صيانة مستمرة"
|
||||
msgid "Open"
|
||||
msgstr "افتح"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "مساعد الذكاء الاصطناعي المفتوح"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "فتح عميل البريد الإلكتروني"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "التكاملات المفتوحة"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "فتح إعدادات التكامل"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "يُرجى إدخال كلمة المرور التي تمت مشاركت
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "يُرجى إدخال عنوان URL الذي تريد الربط به:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "يرجى دعم المشروع"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "المنصب"
|
||||
msgid "Preferences"
|
||||
msgstr "التفضيلات"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "إعداد التغييرات"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "الإعدادات المسبقة"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "اضغط على <0>{RETURN_KEY}</0> أو <1>{COMMA_KEY}</1> لإضافة
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "اضغط على <0>Enter</0> لفتح"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "السابق"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "اللون الأساسي"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "شريط التقدّم"
|
||||
msgid "Projects"
|
||||
msgstr "المشاريع"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "الاقتراح {0} من {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "احمِ سيرتك الذاتية من الوصول غير المصرّح به باستخدام كلمة مرور"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "المنشورات"
|
||||
msgid "Publisher"
|
||||
msgstr "الناشر"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "رقعة JSON الخام"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - الانتقال إلى الصفحة الرئيسية"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume هو مشروع مجاني ومفتوح المصدر،
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume هي أداة إنشاء سيرة ذاتية مجانية ومفتوحة المصدر تعمل على تبسيط عملية إنشاء سيرتك الذاتية وتحديثها ومشاركتها."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "برنامج Reactive Resume مجاني ومفتوح المصدر. إذا أفادك، يُرجى التفكير في التبرع."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume مفتوح المصدر ويركز على الخصوصية ومجاني تمامًا. وعلى عكس أدوات إنشاء السير الذاتية الأخرى، لا يعرض إعلانات، ولا يتتبع بياناتك، ولا يقيّد ميزاتك خلف جدار دفع."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "مستطيل"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "مستطيل (عرض كامل)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "إعادة (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "تحديث"
|
||||
msgid "Register New Device"
|
||||
msgstr "تسجيل جهاز جديد"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "يرفض"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "رفض الكل"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "اقتراح مرفوض"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "تتذكر كلمة المرور؟ <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "جاري إعادة إرسال رسالة التحقق..."
|
||||
msgid "Reset"
|
||||
msgstr "إعادة تعيين"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "إعادة ضبط المحادثة"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "إعادة تعيين كلمة المرور"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "جاري إعادة تعيين كلمة المرور..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "مساعد الذكاء الاصطناعي لتغيير الحجم"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "الموارد"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "اكتمل تحليل السيرة الذاتية."
|
||||
msgid "Resumes"
|
||||
msgstr "السير الذاتية"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "مراجعة مطلوبة"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "المقترحات التي تمت مراجعتها"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "محاذاة لليمين"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "تحديد..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "الاستضافة الذاتية مع Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "يرسل"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "إرسال رسالة إعادة تعيين كلمة المرور"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "جاري إرسال رسالة إعادة تعيين كلمة المرور..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "إرسال الطلب"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "فاصل"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "عمود واحد مع شريط جانبي وتخطيط شبكي نظي
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "عمود واحد مع رأس إدخال مضمن من ثلاثة أعمدة (الموضع - المؤسسة - الفترة)؛ مدمج وملائم لـ ATS، ومناسب تمامًا للسيرة الذاتية الآسيوية (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "تصميم ذو عمود واحد مع عناوين أقسام بأحرف كبيرة وخطوط علوية بلون أساسي في كل صفحة؛ مصمم خصيصًا للسير الذاتية التنفيذية أو الاستشارية أو للشركات الناشئة."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "عمود واحد؛ مصقول ورسمي للوظائف العليا أو مناصب الشركات الكبرى."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "الإحصاءات"
|
||||
msgid "Stay"
|
||||
msgstr "البقاء"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "قف"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "نقاط القوة"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "لون النص"
|
||||
msgid "Thai"
|
||||
msgstr "التايلاندية"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "اقترح الذكاء الاصطناعي تغييرًا لم يعد ينطبق على هذه السيرة الذاتية."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "أعاد الذكاء الاصطناعي اقتراحًا لا يمكن معاينته."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "تم حذف مفتاح واجهة برمجة التطبيقات (API) ب
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "لن يتمكن مفتاح واجهة برمجة التطبيقات هذا من الوصول إلى بياناتك بعد حذفه. لا يمكن التراجع عن هذا الإجراء."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "توقف المساعد قبل أن يعيد الاقتراح."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "هذا اسم مناسب لعناوين URL لسيرتك الذاتية.
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "قد يستغرق هذا بضع دقائق اعتمادًا على استجابة مزوّد الذكاء الاصطناعي. يُرجى عدم إغلاق النافذة أو تحديث الصفحة."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "هذا الاقتراح قديم. اطلب من المساعد إعادة إنشائه من أحدث سيرة ذاتية."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "هذه السيرة الذاتية مقفلة ولا يمكن تحديثها."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "لحذف حسابك، تحتاج إلى إدخال نص التأكيد
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "تبديل الشريط الجانبي الأيسر"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "تبديل تكديس الصفحات"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "الأوكرانية"
|
||||
msgid "Underline"
|
||||
msgstr "تسطير"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "تراجع (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "سير ذاتية غير محدودة"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (تويتر)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "نعم، يتوفر Reactive Resume بعدة لغات. يمكنك اختيار لغتك المفضلة في صفحة الإعدادات، أو باستخدام مبدّل اللغة في الزاوية العلوية اليمنى. إذا لم ترَ لغتك، أو كنت ترغب في تحسين الترجمات الموجودة، يمكنك <0>المساهمة في الترجمات على Crowdin<1> (يفتح في علامة تبويب جديدة)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "نعم! كل قالب قابل للتخصيص بالكامل. يمكنك تغيير الألوان والخطوط والتباعد، وحتى كتابة CSS مخصص للتحكم الكامل في مظهر سيرتك الذاتية."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "نعم! Reactive Resume مجاني تمامًا للاستخدام، بدون تكاليف خفية أو مستويات مدفوعة أو رسوم اشتراك. إنه مفتوح المصدر وسيظل مجانيًا دائمًا."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "تُخزَّن بياناتك محليًا"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "تُخزَّن بياناتك بأمان ولا تتم مشاركتها أبدًا مع أطراف ثالثة. يمكنك أيضًا استضافة Reactive Resume ذاتيًا على خوادمك الخاصة للتحكم الكامل في بياناتك."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "لم يتم حفظ آخر التغييرات التي أجريتها."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: az\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Azerbaijani\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# element}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# rol} other {# rol}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} təkliflər nəzərdən keçirildi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Əlbəttə! Özgeçmişinizi cəmi bir kliklə PDF formatına ixrac edə bilərsiniz. İxrac olunmuş PDF bütün formatlaşdırmanı və tərtibatı mükəmməl şəkildə saxlayır."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Qəbul et"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Hamısını qəbul edin"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Qəbul edilmiş təklif"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "API vasitəsilə özgeçmişlərinizi və məlumatlarınızı proqramlı şəkildə idarə edin."
|
||||
@@ -229,10 +246,38 @@ msgstr "Əvvəl Sətir əlavə et"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Sonra"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "Süni İntellekt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Süni intellekt inteqrasiyası deaktiv edildi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Süni intellekt təklifi tətbiq edildi."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Süni intellekt təklifi rədd edildi."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Süni intellekt təklifləri tətbiq olundu."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Süni intellekt təklifləri rədd edildi."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Süni intellekt CV köməkçisi"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanca"
|
||||
@@ -367,10 +412,22 @@ msgstr "Təhsil sahəsi"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Süni İntellekt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Hədəfli CV dəyişikliyi istəyin..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Artan dəyişiklik tələb edin"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Proporsiya"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Köməkçi sorğusu uğursuz oldu"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Əsas məlumatlar"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Seçmək üçün gözəl şablonlar, yolda olan yeniləri ilə."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Əvvəl"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Benqal"
|
||||
@@ -462,10 +523,6 @@ msgstr "Markerlə Siyahı"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "İcma tərəfindən, icma üçün."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Şablonları fərdiləşdirə bilərəm?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Özgeçmişimi PDF‑ə ixrac edə bilərəm?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Açıq"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "İdxal üçün fayl seçmək üçün bura klikləyin"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Bağla"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Süni intellekt köməkçisini bağlayın"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Kod Bloku"
|
||||
@@ -622,6 +687,10 @@ msgstr "Təsdiqlə"
|
||||
msgid "Connect"
|
||||
msgstr "Qoşul"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "CV redaktə təkliflərindən istifadə etməzdən əvvəl süni intellekt provayderinə qoşulun və təsdiqləyin."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Bu gizli açarı kopyalayın və verilənlərinizə daxil olmaq üçün
|
||||
msgid "Copy URL"
|
||||
msgstr "URL‑i kopyala"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Süni intellekt təklifini tətbiq etmək mümkün olmadı."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Ayır"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Ləğv et"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Sənədləşmə"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Hesabınız yoxdur? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Bağışlayın"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Reactive Resume‑yə ianə et"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA‑nı Aktiv et"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Süni İntellekt Xüsusiyyətlərini Aktiv et"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Süni intellekt inteqrasiyasını aktivləşdirin"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "İki Mərhələli Autentifikasiyanı Aktiv et"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Buraya daxil etdiyiniz hər şey brauzerinizdə lokal olaraq saxlanılı
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Peşəkar özgeçmişlər yaratmaq, fərdiləşdirmək və paylaşmaq üçün lazım olan hər şey. Məxfilik nəzərə alınaraq qurulub, açıq mənbə ilə işləyir və tamamilə pulsuzdur."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Nümunələr: xülasənin yenidən yazılması, təcrübə siyahısından birinin qısaldılması, metriklər əlavə edilməsi və ya CV-ni iş təsviri üçün uyğunlaşdırmaq."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Tam ekrandan çıx"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Parolunuzu unutmusunuz?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Pulsuz"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Sərbəst forma"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Fransız"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Daha çox təklif hərəkəti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Keçir"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "https:// ilə başlamalıdır"
|
||||
msgid "Name"
|
||||
msgstr "Ad"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Baxışa ehtiyac var"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepal"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Yeni Parol"
|
||||
msgid "New Section"
|
||||
msgstr "Yeni Bölmə"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Sonrakı"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Reklam yoxdur, İzləmə yoxdur"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Davamlı Baxım"
|
||||
msgid "Open"
|
||||
msgstr "Aç"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Açıq süni intellekt köməkçisi"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "E‑poçt müştərisini aç"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Açıq İnteqrasiyalar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "İnteqrasiyalar parametrlərini açın"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Davam etmək üçün, özgeçmiş sahibi tərəfindən sizinlə paylaş
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Link vermək istədiyiniz URL‑i daxil edin:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Layihəni dəstəkləyin"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Vəzifə"
|
||||
msgid "Preferences"
|
||||
msgstr "Parametrlər"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Dəyişikliklərin hazırlanması"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Qabaqcadan təyin olunmuş parametrlər"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Hazırkı açar sözü əlavə etmək və ya saxlamaq üçün <0>{RETURN
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Açmaq üçün <0>Enter düyməsini</0> basın"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Əvvəlki"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Əsas Rəng"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Proqres Zolağı"
|
||||
msgid "Projects"
|
||||
msgstr "Layihələr"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Təklif {total} / {0}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Özgeçmişinizi parol ilə icazəsiz girişdən qoruyun"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Nəşrlər"
|
||||
msgid "Publisher"
|
||||
msgstr "Nəşriyyatçı"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Xam JSON Yamağı"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Ana səhifəyə keç"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume pulsuz və açıq mənbə layihəsidir; sevgi ilə yarad
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume özgeçmişinizi yaratma, yeniləmə və paylaşma prosesini sadələşdirən pulsuz və açıq mənbə özgeçmiş qurucusudur."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume pulsuz və açıq mənbəlidir. Əgər sizə kömək edibsə, zəhmət olmasa, ianə etməyi düşünün."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume açıq mənbəlidir, məxfilik yönümlüdür və tamamilə pulsuzdur. Digər özgeçmiş qurucularından fərqli olaraq, o reklamlara yer vermir, məlumatınızı izləmir və funksiyaları ödəniş divarının arxasında məhdudlaşdırmır."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Düzbucaqlı"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Düzbucaqlı (Tam En)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Təkrarla (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Yenilə"
|
||||
msgid "Register New Device"
|
||||
msgstr "Yeni cihazı qeydiyyatdan keçirin"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Rədd et"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Hamısını rədd et"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Rədd edilmiş təklif"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Şifrənizi xatırlayırsınız? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Təsdiq e‑poçtu yenidən göndərilir..."
|
||||
msgid "Reset"
|
||||
msgstr "Sıfırla"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Söhbəti sıfırlayın"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Parolunuzu sıfırlayın"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Parolunuz sıfırlanır..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Süni intellekt köməkçisinin ölçüsünü dəyişin"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Resurslar"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Təcrübə təhlili tamamlandı."
|
||||
msgid "Resumes"
|
||||
msgstr "Özgeçmişlər"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Baxış tələb olunur"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Təkliflər nəzərdən keçirildi"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Sağdan Sətirlə"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Seçin..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Docker ilə Özün‑host et"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Göndər"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Parol Sıfırlama E‑poçtu Göndər"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Parol sıfırlama e‑poçtu göndərilir..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Sorğu göndərilir"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Ayırıcı"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Tək sütunlu, yan panel və təmiz şəbəkə maketi ilə; istənilən
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Tək sütunlu, xətti üçsütunlu giriş başlığı (vəzifə · təşkilat · dövr); yığcam və ATS-ə uyğun, Asiya tərcümeyi-hal konvensiyalarına (Çin/Yaponiya/Koreya) uyğundur."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Hər səhifədə böyük hərflərlə bölmə başlıqları və əsas rəng üst qaydası olan tək sütunlu; rəhbər, konsaltinq və ya startap tərcümeyi-halları üçün cilalanmış."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Tək sütunlu; yüksək vəzifəli və ya müəssisə səviyyəli vəzifələr üçün cilalanmış və ciddi üslub."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistika"
|
||||
msgid "Stay"
|
||||
msgstr "Qal"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Dayan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Güclü tərəflər"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Mətn Rəngi"
|
||||
msgid "Thai"
|
||||
msgstr "Tay"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Süni intellekt artıq bu CV-yə aid olmayan bir dəyişiklik təklif etdi."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Süni intellekt, önizləməsi mümkün olmayan bir təklifi geri qaytardı."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API açarı uğurla silindi."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Silindikdən sonra bu API açarı məlumatlarınıza daha çıxış əldə edə bilməyəcək. Bu əməliyyat geri qaytarıla bilməz."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Köməkçi təklifi cavablandırmadan əvvəl dayandı."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Bu, özgeçmişiniz üçün URL‑ə uyğun bir addır."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Bu, Süni İntellekt provayderinin cavabından asılı olaraq bir neçə dəqiqə çəkə bilər. Zəhmət olmasa, pəncərəni bağlamayın və ya səhifəni yeniləməyin."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Bu təklif köhnəlib. Köməkçidən onu ən son CV-dən yenidən yaratmasını xahiş edin."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Bu özgeçmiş kilidlənib və yenilənə bilməz."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Hesabınızı silmək üçün təsdiq mətnini daxil etməli və aşağ
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Sol yan panelin açılıb-bağlanmasını təmin edin"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Səhifə yığılmasını dəyiş/dəyişdir"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrayn"
|
||||
msgid "Underline"
|
||||
msgstr "Altını Xətlə"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Geri al (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Limitsiz Özgeçmişlər"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Bəli, Reactive Resume bir neçə dildə mövcuddur. Seçim etdiyiniz dili parametrlər səhifəsindən və ya sağ yuxarı küncdəki dil dəyişdiricisindən seçə bilərsiniz. Əgər dilinizi görmürsünüzsə və ya mövcud tərcümələri yaxşılaşdırmaq istəyirsinizsə, <0>Crowdin‑də tərcümələrə töhfə verə bilərsiniz<1> (yeni vərəqdə açılır)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Bəli! Hər bir şablon tam fərdiləşdirilə bilər. Rəngləri, şriftləri, aralıqları dəyişə və hətta özgeçmişinizin görünüşünə tam nəzarət üçün xüsusi CSS yaza bilərsiniz."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Bəli! Reactive Resume heç bir gizli xərc, premium səviyyə və ya abunə haqqı olmadan tamamilə pulsuzdur. O, açıq mənbəlidir və həmişə pulsuz qalacaq."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Məlumatlarınız lokal olaraq saxlanılır"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Məlumatlarınız təhlükəsiz şəkildə saxlanılır və heç vaxt üçüncü tərəflərlə paylaşılmır. Məlumatlarınıza tam nəzarət üçün Reactive Resume‑ni öz serverlərinizdə də host edə bilərsiniz."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Son dəyişiklikləriniz yadda saxlanıla bilmədi."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: bg\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# елемент} other {# елемента}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# роля} other {# роли}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} прегледани предложения"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Абсолютно! Можете да експортирате автобиографията си в PDF само с едно кликване. Експортираният PDF файл запазва перфектно всички ваши форматирания и стилове."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Приемам"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Приемане на всички"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Прието предложение"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Получете програмен достъп до автобиографиите и данните си чрез API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Добавяне на ред преди"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Африканс"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "След"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Интеграцията с изкуствен интелект е деактивирана"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Предложението за изкуствен интелект е приложено."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Предложението за изкуствен интелект е отхвърлено."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Приложени са предложения за ИИ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Предложенията за изкуствен интелект са отхвърлени."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Асистент за автобиография с изкуствен интелект"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Албански"
|
||||
@@ -367,10 +412,22 @@ msgstr "Област на обучение"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Изкуствен интелект"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Поискайте целенасочена промяна в автобиографията си..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Поискайте постепенна промяна"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Съотношение на страните"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Заявката за Асистент не беше успешна"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Основна информация"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Красиви шаблони, от които да избирате, с още по пътя."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Преди"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Бенгалски"
|
||||
@@ -462,10 +523,6 @@ msgstr "Точков списък"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "От общността, за общността."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Мога ли да персонализирам шаблоните?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Мога ли да експортирам автобиографията си в PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Clear"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Кликнете тук, за да изберете файл за импортиране"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Затвори"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Затвори асистента с изкуствен интелект"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Блок с код"
|
||||
@@ -622,6 +687,10 @@ msgstr "Потвърждаване"
|
||||
msgid "Connect"
|
||||
msgstr "Свързване"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Свържете се и проверете доставчик на изкуствен интелект, преди да използвате предложения за редактиране на автобиографии."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Копирайте този таен ключ и го използвай
|
||||
msgid "Copy URL"
|
||||
msgstr "Копиране на URL адрес"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Не можа да се приложи предложението за изкуствен интелект."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Прекъсване на връзката"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Отхвърляне"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Документация"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Нямате акаунт? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Дарете"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Дарете на Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Активиране на 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Активиране на AI функциите"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Активиране на интеграция с изкуствен интелект"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Активиране на двуфакторно удостоверяване"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Всичко, въведено тук, се съхранява лока
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Всичко, от което се нуждаете, за да създавате, персонализирате и споделяте професионални автобиографии. Създадено с мисъл за поверителността, базирано на отворен код и напълно безплатно завинаги."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Примери: пренаписване на резюмето, стесняване на един от елементите за опит, добавяне на показатели или адаптиране на автобиографията към описанието на длъжността."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Излизане от цял екран"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Забравихте паролата си?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Формат"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Формат"
|
||||
msgid "Free"
|
||||
msgstr "Безплатно"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Свободна форма"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Френски"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Модел"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Още действия за предложението"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Преместване в"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Трябва да започне с https://"
|
||||
msgid "Name"
|
||||
msgstr "Име"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Необходим е преглед"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Непалски"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Нова парола"
|
||||
msgid "New Section"
|
||||
msgstr "Нов раздел"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Следваща"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Без реклами, без проследяване"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Текуща поддръжка"
|
||||
msgid "Open"
|
||||
msgstr "Отвори"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Отворете AI асистент"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Отваряне на имейл клиент"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Отворени интеграции"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Отворете Настройки на интеграциите"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Моля, въведете паролата, която ви е спод
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Моля, въведете URL адреса, към който искате да създадете връзка:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Моля, подкрепете проекта"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Позиция"
|
||||
msgid "Preferences"
|
||||
msgstr "Предпочитания"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Подготовка на промени"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Предварителни настройки"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Натиснете <0>{RETURN_KEY}</0> или <1>{COMMA_KEY}</1>, за
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Натиснете <0>Enter</0>, за да отворите"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Предишна"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Основен цвят"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Лента за напредък"
|
||||
msgid "Projects"
|
||||
msgstr "Проекти"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Предложение {0} от {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Защитете автобиографията си от неоторизиран достъп с парола"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Публикации"
|
||||
msgid "Publisher"
|
||||
msgstr "Издател"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Кръпка за суров JSON"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Отиване към началната страница"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume е безплатен проект с отворен к
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume е безплатен конструктор на автобиографии с отворен код, който опростява процеса на създаване, актуализиране и споделяне на автобиографията ви."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume е безплатен и с отворен код. Ако ви е помогнал, моля, помислете за дарение."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume е с отворен код, фокусиран върху поверителността и напълно безплатен. За разлика от други конструктори на автобиографии, той не показва реклами, не проследява данните ви и не ограничава функциите зад платена стена."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Правоъгълник"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Правоъгълник (пълна ширина)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Повтори (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Опресняване"
|
||||
msgid "Register New Device"
|
||||
msgstr "Регистрация на ново устройство"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Отхвърляне"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Отхвърляне на всички"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Отхвърлено предложение"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Спомняте ли си паролата? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Повторно изпращане на имейл за потвърж
|
||||
msgid "Reset"
|
||||
msgstr "Нулиране"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Нулиране на чата"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Нулирайте паролата си"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Нулиране на паролата ви..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Преоразмеряване на асистента с изкуствен интелект"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Ресурси"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Анализът на автобиографията е завършен
|
||||
msgid "Resumes"
|
||||
msgstr "Автобиографии"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Изисква се преглед"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Прегледани предложения"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Подравняване вдясно"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Изберете..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Самостоятелно хостване с Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Изпрати"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Изпращане на имейл за нулиране на парол
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Изпращане на имейл за нулиране на парола..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Изпращане на заявка"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Разделител"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Една колона със странична лента и изчис
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Единична колона с вградено заглавие в три колони (длъжност - организация - точка); компактен и удобен за ATS, подходящ за азиатските конвенции за автобиографии (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Едноколона с главни букви в заглавията на секциите и линия с основен цвят на горната част на всяка страница; изпипано за автобиографии на ръководители, консултанти или стартиращи компании."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Една колона; изпипан и сериозен за старши или корпоративни позиции."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Статистика"
|
||||
msgid "Stay"
|
||||
msgstr "Остани"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Спри"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Силни страни"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Цвят на текста"
|
||||
msgid "Thai"
|
||||
msgstr "Тайландски"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Изкуственият интелект предложи промяна, която вече не се отнася за това резюме."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Изкуственият интелект върна предложение, което не можеше да бъде прегледано предварително."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API ключът беше изтрит успешно."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "След изтриване този API ключ вече няма да може да получава достъп до данните ви. Това действие е необратимо."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Асистентът спря, преди да върне предложението."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Това е име, подходящо за URL, за вашата ав
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Това може да отнеме няколко минути в зависимост от отговора на AI доставчика. Моля, не затваряйте прозореца и не опреснявайте страницата."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Това предложение е остаряло. Помолете асистента да го генерира отново от най-новата автобиография."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Тази автобиография е заключена и не може да бъде актуализирана."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "За да изтриете профила си, трябва да във
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Превключване на лявата странична лента"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Превключване на подреждането на страници"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Украински"
|
||||
msgid "Underline"
|
||||
msgstr "Подчертаване"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Отмени (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Неограничен брой автобиографии"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Туитър)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Да, Reactive Resume е наличен на множество езици. Можете да изберете предпочитания от вас език от страницата с настройки или чрез превключвателя за език в горния десен ъгъл. Ако не виждате вашия език или искате да подобрите съществуващите преводи, можете да <0>допринесете към преводите в Crowdin<1> (отваря се в нов раздел)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Да! Всеки шаблон е напълно персонализируем. Можете да променяте цветове, шрифтове, разстояния и дори да пишете потребителски CSS за пълен контрол върху външния вид на автобиографията."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Да! Reactive Resume е напълно безплатен за ползване, без скрити разходи, премиум нива или абонаментни такси. Той е с отворен код и винаги ще остане безплатен."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Вашите данни се съхраняват локално"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Вашите данни се съхраняват сигурно и никога не се споделят с трети страни. Можете също да хоствате Reactive Resume самостоятелно на свои сървъри за пълен контрол върху данните си."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Последните ви промени не можаха да бъдат запазени."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: bn\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bengali\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {#টি আইটেম} other {#টি আইটেম
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# ভূমিকা} other {# ভূমিকা}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} প্রস্তাবনা পর্যালোচনা করা হয়েছে"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "অবশ্যই! আপনি এক ক্লিকেই আপনার জীবনবৃত্তান্তকে PDF আকারে এক্সপোর্ট করতে পারবেন। এক্সপোর্ট করা PDF-এ আপনার সব ফরম্যাটিং ও স্টাইলিং ঠিক যেমন আছে তেমনই থাকবে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "গ্রহণ করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "সব গ্রহণ করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "গৃহীত প্রস্তাব"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "API ব্যবহার করে প্রোগ্রামেটিক ভাবে আপনার জীবনবৃত্তান্ত ও ডেটায় প্রবেশ করুন।"
|
||||
@@ -229,10 +246,38 @@ msgstr "আগের দিকে সারি যোগ করুন"
|
||||
msgid "Afrikaans"
|
||||
msgstr "আফ্রিকান্স"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "পরে"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "এআই"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "এআই ইন্টিগ্রেশন নিষ্ক্রিয় করা হয়েছে"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "এআই প্রস্তাব প্রয়োগ করা হয়েছে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "এআই প্রস্তাব প্রত্যাখ্যাত হয়েছে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "এআই প্রস্তাবনাগুলো প্রয়োগ করা হয়েছে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "এআই প্রস্তাবগুলো প্রত্যাখ্যাত হয়েছে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "এআই রেজ্যুমে অ্যাসিস্ট্যান্ট"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "আলবেনিয়ান"
|
||||
@@ -367,10 +412,22 @@ msgstr "অধ্যয়নের এলাকা"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "কৃত্রিম বুদ্ধিমত্তা"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "নির্দিষ্ট জীবনবৃত্তান্ত পরিবর্তনের জন্য অনুরোধ করুন..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "ধাপে ধাপে পরিবর্তনের জন্য অনুরোধ করুন।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "আকারের অনুপাত"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "সহকারীর অনুরোধ ব্যর্থ হয়েছে"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "বেসিক"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "পছন্দ করার জন্য সুন্দর সুন্দর টেমপ্লেট, আরও অনেক টেমপ্লেট শিগগিরই আসছে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "আগে"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "বাংলা"
|
||||
@@ -462,10 +523,6 @@ msgstr "বুলেট লিস্ট"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "সম্প্রদায়ের দ্বারা, সম্প্রদায়ের জন্য।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "আমি কি টেমপ্লেটগুলো কাস্টমাইজ করতে পারি?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "আমি কি আমার জীবনবৃত্তান্তকে PDF-এ এক্সপোর্ট করতে পারি?"
|
||||
@@ -576,6 +633,14 @@ msgstr "স্বচ্ছ"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "ইমপোর্ট করার জন্য এখান ক্লিক করে একটি ফাইল নির্বাচন করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "বন্ধ করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "এআই সহকারী বন্ধ করুন"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "কোড ব্লক"
|
||||
@@ -622,6 +687,10 @@ msgstr "নিশ্চিত করুন"
|
||||
msgid "Connect"
|
||||
msgstr "কনেক্ট করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "রেজ্যুমে সম্পাদনার প্রস্তাবগুলো ব্যবহার করার আগে একজন এআই প্রদানকারীর সাথে সংযোগ স্থাপন করুন এবং তাকে যাচাই করে নিন।"
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "এই সিক্রেট কী কপি করে আপনার
|
||||
msgid "Copy URL"
|
||||
msgstr "URL কপি করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "এআই প্রস্তাবটি প্রয়োগ করা যায়নি।"
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "ডিসকনেক্ট করুন"
|
||||
msgid "Discord"
|
||||
msgstr "ডিসকর্ড"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "খারিজ করুন"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "ডকুমেন্টেশন"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "অ্যাকাউন্ট নেই? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "দান করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Reactive Resume-এ অনুদান দিন"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA চালু করুন"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "এআই ফিচারগুলো চালু করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "এআই ইন্টিগ্রেশন সক্ষম করুন"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "টু‑ফ্যাক্টর প্রমাণীকরণ চালু করুন"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "এখানে যা কিছু লিখবেন সব আপন
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "পেশাদার জীবনবৃত্তান্ত তৈরি, কাস্টমাইজ এবং শেয়ার করার জন্য যা যা প্রয়োজন সবই এখানে আছে। গোপনীয়তা মাথায় রেখে তৈরি, মুক্ত উৎস দ্বারা চালিত এবং চিরদিনের জন্য সম্পূর্ণ বিনামূল্যে।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "উদাহরণস্বরূপ: সারাংশটি নতুন করে লিখুন, অভিজ্ঞতার একটি বুলেট পয়েন্ট সংক্ষিপ্ত করুন, পরিমাপক যোগ করুন, অথবা চাকরির বিবরণের জন্য জীবনবৃত্তান্তটি সাজিয়ে নিন।"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "পূর্ণ স্ক্রীন থেকে বের হন"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "আপনি কি পাসওয়ার্ড ভুলে গিয়েছেন?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "রূপ"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "রূপ"
|
||||
msgid "Free"
|
||||
msgstr "বিনামূল্যে"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "মুক্ত-ফর্ম"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "ফরাসি"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "মাইক্রোসফট ওয়ার্ড"
|
||||
msgid "Model"
|
||||
msgstr "মডেল"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "আরও প্রস্তাবনা কার্যক্রম"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "এখানে সরান"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "https:// দিয়ে শুরু করতে হবে।"
|
||||
msgid "Name"
|
||||
msgstr "নাম"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "পর্যালোচনা প্রয়োজন"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "নেপালি"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "নতুন পাসওয়ার্ড"
|
||||
msgid "New Section"
|
||||
msgstr "নতুন বিভাগ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "পরবর্তী"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "কোনো বিজ্ঞাপন নয়, কোনো ট্র্যাকিং নয়"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "চলমান রক্ষণাবেক্ষণ"
|
||||
msgid "Open"
|
||||
msgstr "খুলুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "ওপেন এআই অ্যাসিস্ট্যান্ট"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "ইমেইল ক্লায়েন্ট খুলুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "ওপেন ইন্টিগ্রেশন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "ইন্টিগ্রেশন সেটিংস খুলুন"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "অবিরত থাকতে জীবনবৃত্তান্ত
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "যে URL‑এ লিংক করতে চান অনুগ্রহ করে সেটি লিখুন:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "প্রকল্পটি সমর্থন করুন।"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "পদবি"
|
||||
msgid "Preferences"
|
||||
msgstr "পছন্দসমূহ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "পরিবর্তন প্রস্তুত করা"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "প্রিসেটসমূহ"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "বর্তমান কীওয়ার্ড যোগ বা স
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "খুলতে <0>এন্টার</0> চাপুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "পূর্ববর্তী"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "প্রাথমিক রঙ"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "প্রগতি নির্দেশক বার"
|
||||
msgid "Projects"
|
||||
msgstr "প্রোজেক্টসমূহ"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "{0} এর {total} প্রস্তাব"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "একটি পাসওয়ার্ড দিয়ে আপনার জীবনবৃত্তান্তকে অননুমোদিত প্রবেশ থেকে সুরক্ষিত রাখুন"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "প্রকাশনাসমূহ"
|
||||
msgid "Publisher"
|
||||
msgstr "প্রকাশক"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "কাঁচা JSON প্যাচ"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - হোমপেইজে যান"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume একটি বিনামূল্যের ও ম
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume একটি বিনামূল্যের এবং মুক্ত উৎস জীবনবৃত্তান্ত নির্মাতা, যা আপনার জীবনবৃত্তান্ত তৈরি, আপডেট ও শেয়ার করার প্রক্রিয়াকে সহজ করে।"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "রিঅ্যাক্টিভ রেজ্যুমে বিনামূল্যে এবং ওপেন সোর্স। যদি এটি আপনাকে সাহায্য করে থাকে, তবে অনুগ্রহ করে অনুদান দেওয়ার কথা বিবেচনা করুন।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume মুক্ত উৎস, গোপনীয়তা-কেন্দ্রিক এবং সম্পূর্ণ বিনামূল্যে। অন্য জীবনবৃত্তান্ত নির্মাতাদের মতো এটি কোনো বিজ্ঞাপন দেখায় না, আপনার ডেটা ট্র্যাক করে না, বা ফিচারগুলো পেওয়ালের আড়ালে আটকে রাখে না।"
|
||||
@@ -2362,11 +2500,6 @@ msgstr "আয়তক্ষেত্র"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "আয়তক্ষেত্র (পূর্ণ প্রস্থ)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "রি-ডু (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "রিফ্রেশ"
|
||||
msgid "Register New Device"
|
||||
msgstr "নতুন ডিভাইস নিবন্ধন করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "প্রত্যাখ্যান করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "সব প্রত্যাখ্যান করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "প্রত্যাখ্যাত প্রস্তাব"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "আপনার পাসওয়ার্ড মনে আছে? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "যাচাইকরণের ইমেইল পুনরায় প
|
||||
msgid "Reset"
|
||||
msgstr "রিসেট"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "চ্যাট রিসেট করুন"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "আপনার পাসওয়ার্ড রিসেট করু
|
||||
msgid "Resetting your password..."
|
||||
msgstr "আপনার পাসওয়ার্ড রিসেট করা হচ্ছে..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "আকার পরিবর্তন করুন এআই সহকারী"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "রিসোর্সসমূহ"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "রিজিউমে বিশ্লেষণ সম্পন্ন।"
|
||||
msgid "Resumes"
|
||||
msgstr "জীবনবৃত্তান্তসমূহ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "পর্যালোচনা প্রয়োজন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "পর্যালোচিত প্রস্তাবনা"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "ডান দিকে অ্যালাইন"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "নির্বাচন করুন..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "ডকার দিয়ে নিজে হোস্ট করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "পাঠান"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "পাসওয়ার্ড রিসেটের ইমেইল প
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "পাসওয়ার্ড রিসেটের ইমেইল পাঠানো হচ্ছে..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "অনুরোধ পাঠানো হচ্ছে"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "সেপারেটর"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "এক কলামের লেআউট, সাইডবার এব
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "একক-কলাম, ইনলাইন তিন-কলাম এন্ট্রি হেডার (পদ · প্রতিষ্ঠান · সময়কাল); সংক্ষিপ্ত এবং ATS-বান্ধব, এশীয় রিজিউমে রীতি (CN/JP/KR)-এর জন্য উপযুক্ত।"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "প্রতিটি পৃষ্ঠায় বড় হাতের অক্ষরে বিভাগীয় শিরোনাম এবং প্রাথমিক রঙের একটি শীর্ষরেখা সহ এক-কলাম বিন্যাস; নির্বাহী, পরামর্শক বা স্টার্টআপ জীবনবৃত্তান্তের জন্য পরিমার্জিত।"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "এক কলামের লেআউট; প্রাজ্ঞ ও গম্ভীর ধরন, সিনিয়র বা এন্টারপ্রাইজ‑লেভেলের পদের জন্য উপযোগী।"
|
||||
@@ -2809,6 +2982,10 @@ msgstr "পরিসংখ্যান"
|
||||
msgid "Stay"
|
||||
msgstr "থাকুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "থামুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "শক্তি"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "টেক্সটের রঙ"
|
||||
msgid "Thai"
|
||||
msgstr "থাই"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "এআই এমন একটি পরিবর্তনের প্রস্তাব করেছিল যা এখন এই জীবনবৃত্তান্তের ক্ষেত্রে আর প্রযোজ্য নয়।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "এআই এমন একটি প্রস্তাবনা ফেরত দিয়েছে যা প্রিভিউ করা সম্ভব ছিল না।"
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API কী সফলভাবে মুছে ফেলা হয়ে
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API কী মুছে ফেলার পর আর আপনার ডেটায় প্রবেশ করতে পারবে না। এই কাজটি ফিরিয়ে নেওয়া যাবে না।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "সহকারী প্রস্তাবটি ফেরত দেওয়ার আগে থেমে গেল।"
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "এটি আপনার জীবনবৃত্তান্তের
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "AI প্রদানকারীর রেসপন্সের ওপর নির্ভর করে এতে কয়েক মিনিট সময় লাগতে পারে। অনুগ্রহ করে উইন্ডো বন্ধ বা পৃষ্ঠা রিফ্রেশ করবেন না।"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "এই প্রস্তাবনাটি পুরনো হয়ে গেছে। সহকারীকে সর্বশেষ জীবনবৃত্তান্ত থেকে এটি পুনরায় তৈরি করতে বলুন।"
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "এই জীবনবৃত্তান্তটি লক করা আছে এবং হালনাগাদ করা যাবে না।"
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "আপনার অ্যাকাউন্ট মুছে ফেলত
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "বাম পাশের সাইডবার টগল করুন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "পৃষ্ঠা স্ট্যাকিং টগল করুন"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "ইউক্রেনীয়"
|
||||
msgid "Underline"
|
||||
msgstr "আন্ডারলাইন"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "আনডু (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "আনলিমিটেড জীবনবৃত্তান্ত"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "এক্স (টুইটার)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "হ্যাঁ, Reactive Resume একাধিক ভাষায় উপলভ্য। আপনি সেটিংস পেজ থেকে বা ডান দিকের উপরের কোণের ভাষা পরিবর্তনকারী ব্যবহার করে নিজের পছন্দের ভাষা বেছে নিতে পারেন। যদি আপনার ভাষা তালিকায় না থাকে, বা আপনি বিদ্যমান অনুবাদ উন্নত করতে চান, তাহলে আপনি <0>Crowdin‑এ অনুবাদে অবদান রাখতে পারেন<1> (নতুন ট্যাবে খুলবে)</1></0>।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "হ্যাঁ! প্রতিটি টেমপ্লেটই পুরোপুরি কাস্টমাইজযোগ্য। আপনি রঙ, ফন্ট, স্পেসিং পরিবর্তন করতে পারবেন, এমনকি আপনার জীবনবৃত্তান্তের চেহারার পূর্ণ নিয়ন্ত্রণের জন্য কাস্টম CSS-ও লিখতে পারবেন।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "হ্যাঁ! Reactive Resume সম্পূর্ণ বিনামূল্যে ব্যবহারের জন্য, কোনো গোপন খরচ, প্রিমিয়াম স্তর বা সাবস্ক্রিপশন ফি নেই। এটি মুক্ত উৎস এবং সবসময়ই বিনামূল্যে থাকবে।"
|
||||
@@ -3440,7 +3629,7 @@ msgstr "আপনার ডেটা স্থানীয়ভাবে সং
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "আপনার ডেটা নিরাপদভাবে সংরক্ষিত হয় এবং কখনোই তৃতীয় পক্ষের সঙ্গে শেয়ার করা হয় না। চাইলে আপনি নিজের সার্ভারে Reactive Resume নিজে হোস্ট করেও ডেটার পূর্ণ নিয়ন্ত্রণ রাখতে পারেন।"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "আপনার সর্বশেষ পরিবর্তনগুলো সংরক্ষণ করা যায়নি।"
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ca\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Catalan\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elements}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# càrrec} other {# càrrecs}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} propostes revisades"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "I tant! Pots exportar el teu currículum a PDF amb un sol clic. El PDF exportat manté perfectament tot el format i l’estil."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Accepta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Accepta-ho tot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Proposta acceptada"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Accedeix als teus currículums i dades de manera programàtica mitjançant l’API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Afegeix una fila abans"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Després"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Integració d'IA desactivada"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Proposta d'IA aplicada."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Proposta d'IA rebutjada."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Propostes d'IA aplicades."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Propostes d'IA rebutjades."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Assistent de currículum amb IA"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanès"
|
||||
@@ -367,10 +412,22 @@ msgstr "Àrea d’estudi"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Intel·ligència artificial"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Demana un canvi de currículum específic..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Demanar un canvi incremental"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Relació d’aspecte"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "La sol·licitud de l'assistent ha fallat"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Bàsic"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Plantilles boniques per triar, amb més en camí."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Abans"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengalí"
|
||||
@@ -462,10 +523,6 @@ msgstr "Llista amb pics"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "De la comunitat i per a la comunitat."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Puc personalitzar les plantilles?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Puc exportar el meu currículum a PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Clar"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Fes clic aquí per seleccionar un fitxer per importar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Tanca l'assistent d'IA"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Bloc de codi"
|
||||
@@ -622,6 +687,10 @@ msgstr "Confirma"
|
||||
msgid "Connect"
|
||||
msgstr "Connecta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Connecta't i verifica un proveïdor d'IA abans d'utilitzar propostes d'edició de currículums."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Copia aquesta clau secreta i utilitza-la a les aplicacions per accedir a
|
||||
msgid "Copy URL"
|
||||
msgstr "Copia l’URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "No s'ha pogut aplicar la proposta d'IA."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Desconnecta"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Ignora"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Documentació"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "No teniu compte? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Fes una donació a Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Activa l’A2F"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Activa les funcions d’IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Habilita la integració de la IA"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Activa l’autenticació en dos passos"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Tot el que introdueixis aquí es desa localment al navegador. Les dades
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Tot el que necessites per crear, personalitzar i compartir currículums professionals. Creat amb la privadesa en ment, impulsat per codi obert i completament gratuït per sempre."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Exemples: reescriure el resum, ajustar un punt d'experiència, afegir mètriques o adaptar el currículum a una descripció del lloc de treball."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Surt de la pantalla completa"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Has oblidat la contrasenya?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Gratuït"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Forma lliure"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Francès"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Més accions de proposta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Mou a"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Ha de començar amb https://"
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Cal revisió"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalès"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Contrasenya nova"
|
||||
msgid "New Section"
|
||||
msgstr "Secció nova"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Següent"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Sense publicitat, sense seguiment"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Manteniment continu"
|
||||
msgid "Open"
|
||||
msgstr "Obre"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Assistent d'IA oberta"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Obre el client de correu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Integracions obertes"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Obre la configuració d'integracions"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Introdueix la contrasenya que t’ha compartit el propietari del curríc
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Introdueix l’URL al qual vols enllaçar:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Si us plau, doneu suport al projecte"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Càrrec"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferències"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Preparació de canvis"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Preajustaments"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Prem <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> per afegir o desar la para
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Premeu <0>Intro</0> per obrir"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Color principal"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Barra de progrés"
|
||||
msgid "Projects"
|
||||
msgstr "Projectes"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Proposta {0} de {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Protegeix el currículum contra accessos no autoritzats amb una contrasenya"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publicacions"
|
||||
msgid "Publisher"
|
||||
msgstr "Editor"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Pegat JSON en brut"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Ves a la pàgina inicial"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume és un projecte gratuït i de codi obert, creat amb amor
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume és un creador de currículums gratuït i de codi obert que simplifica el procés de crear, actualitzar i compartir el teu currículum."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume és gratuït i de codi obert. Si t'ha ajudat, considera fer una donació."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume és de codi obert, centrat en la privadesa i completament gratuït. A diferència d’altres creadors de currículums, no mostra anuncis, no rastreja les dades ni limita les funcions darrere d’un mur de pagament."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rectangle"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rectangle (amplada completa)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Repetir (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Actualitza"
|
||||
msgid "Register New Device"
|
||||
msgstr "Registra un dispositiu nou"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Rebutja"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Rebutja-ho tot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Proposta rebutjada"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Recordeu la contrasenya? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "S’està tornant a enviar el correu de verificació..."
|
||||
msgid "Reset"
|
||||
msgstr "Restableix"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Restableix el xat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Restableix la contrasenya"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "S’està restablint la contrasenya..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Assistent d'IA per canviar la mida"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Recursos"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Anàlisi del currículum completada."
|
||||
msgid "Resumes"
|
||||
msgstr "Currículums"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Revisió obligatòria"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Propostes revisades"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Alinea a la dreta"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Selecciona..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Allotjament propi amb Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Envia el correu per restablir la contrasenya"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "S’està enviant el correu per restablir la contrasenya..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Enviant la sol·licitud"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Separador"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Una sola columna amb barra lateral i disposició en quadrícula neta; ve
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "D'una sola columna amb un encapçalament d'entrada de tres columnes en línia (posició · organització · període); compacte i adaptat a ATS, molt adequat per a les convencions de currículum asiàtiques (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Una sola columna amb encapçalaments de secció en majúscules i un fil superior de color primari a cada pàgina; polit per a currículums executius, de consultoria o d'empreses emergents."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Una sola columna; polit i seriós per a posicions sènior o d’àmbit corporatiu."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Estadístiques"
|
||||
msgid "Stay"
|
||||
msgstr "Queda't"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Atura"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Fortaleses"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Color del text"
|
||||
msgid "Thai"
|
||||
msgstr "Tai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "La IA va proposar un canvi que ja no s'aplica a aquest currículum."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "La IA ha retornat una proposta que no es va poder previsualitzar."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "La clau API s’ha suprimit correctament."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Després de la supressió, la clau API ja no podrà accedir a les dades. Aquesta acció no es pot desfer."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "L'assistent es va aturar abans de retornar una proposta."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Aquest és un nom d’URL fàcil d’utilitzar per al currículum."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Això pot trigar uns minuts, segons la resposta del proveïdor d’IA. No tanquis la finestra ni actualitzis la pàgina."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Aquesta proposta està obsoleta. Demana a l'assistent que la generi a partir del currículum més recent."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Aquest currículum està bloquejat i no es pot actualitzar."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Per suprimir el compte, has d’introduir el text de confirmació i fer
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Canvia la barra lateral esquerra"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Activa/desactiva l'apilament de pàgines"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ucraïnès"
|
||||
msgid "Underline"
|
||||
msgstr "Subratllat"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Desfer (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Currículums il·limitats"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Sí, Reactive Resume està disponible en múltiples idiomes. Pots triar l’idioma preferit a la pàgina de configuració o utilitzant el selector d’idioma a l’angle superior dret. Si no hi veus el teu idioma o vols millorar les traduccions existents, pots <0>contribuir a les traduccions a Crowdin<1> (s’obre en una pestanya nova)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Sí. Cada plantilla és completament personalitzable. Pots canviar colors, lletres, espaiat i fins i tot escriure CSS personalitzat per tenir un control total sobre l’aparença del currículum."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Sí. Reactive Resume és completament gratuït d’utilitzar, sense costos ocults, nivells premium ni subscripcions. És de codi obert i sempre serà gratuït."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Les dades es desen localment"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Les dades s’emmagatzemen de manera segura i mai no es comparteixen amb tercers. També pots autoallotjar Reactive Resume als teus propis servidors per tenir un control total sobre les dades."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "No s'han pogut desar els darrers canvis."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: cs\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Czech\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# položka} few {# položky} many {# položek} other {#
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# role} few {# role} many {# rolí} other {# rolí}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} návrhů zkontrolováno"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Ano! Svůj životopis můžete exportovat do PDF jedním kliknutím. Exportované PDF dokonale zachová veškeré vaše formátování a styl."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Přijmout"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Přijmout vše"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Přijatý návrh"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Přistupujte ke svým životopisům a datům programově pomocí API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Přidat řádek před"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikánština"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Po"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Integrace umělé inteligence zakázána"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Návrh umělé inteligence byl použit."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Návrh na umělou inteligenci byl zamítnut."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Použité návrhy umělé inteligence."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Návrhy na umělou inteligenci byly zamítnuty."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Asistent životopisů s umělou inteligencí"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albánština"
|
||||
@@ -367,10 +412,22 @@ msgstr "Studijní obor"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Umělá inteligence"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Požádejte o cílenou změnu životopisu..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Požádejte o postupnou změnu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Poměr stran"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Žádost o pomoc selhala"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Základy"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Krásné šablony, ze kterých můžete vybírat, a další jsou na cestě."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Před"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengálština"
|
||||
@@ -462,10 +523,6 @@ msgstr "Odrážkový seznam"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Vytvořeno komunitou pro komunitu."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Mohu si šablony přizpůsobit?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Mohu svůj životopis exportovat do PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Přehledně"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Kliknutím zde vyberte soubor k importu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Zavřít asistenta s umělou inteligencí"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Blok kódu"
|
||||
@@ -622,6 +687,10 @@ msgstr "Potvrdit"
|
||||
msgid "Connect"
|
||||
msgstr "Připojit"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Před použitím návrhů na úpravu životopisů se připojte a ověřte poskytovatele umělé inteligence."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Zkopírujte tento tajný klíč a použijte ho ve svých aplikacích pro
|
||||
msgid "Copy URL"
|
||||
msgstr "Kopírovat URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Nelze použít návrh umělé inteligence."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Odpojit"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Propustit"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentace"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Nemáte účet? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Darovat"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Přispět na Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Aktivovat 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Povolit funkce AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Povolit integraci umělé inteligence"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Aktivovat dvoufázové ověření"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Vše, co zde zadáte, je ukládáno lokálně ve vašem prohlížeči. V
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Vše, co potřebujete k vytvoření, přizpůsobení a sdílení profesionálních životopisů. Vytvořeno s ohledem na soukromí, poháněno open source a zcela zdarma, navždy."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Příklady: přepsat shrnutí, zúžit jednu odrážku zkušeností, přidat metriky nebo upravit životopis pro popis práce."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Ukončit celou obrazovku"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Zapomněli jste heslo?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formát"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formát"
|
||||
msgid "Free"
|
||||
msgstr "Zdarma"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Volný formát"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Francouzština"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Další akce s návrhem"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Přesunout do"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Musí začít na https://"
|
||||
msgid "Name"
|
||||
msgstr "Název"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Vyžaduje kontrolu"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepálština"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Nové heslo"
|
||||
msgid "New Section"
|
||||
msgstr "Nová sekce"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Další"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Bez reklam, bez sledování"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Průběžná údržba"
|
||||
msgid "Open"
|
||||
msgstr "Otevřít"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Otevřený asistent s umělou inteligencí"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Otevřít e-mailového klienta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Otevřené integrace"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Otevřít Nastavení integrace"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Zadejte prosím heslo, které vám sdílel vlastník životopisu, abyste
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Zadejte prosím URL, na kterou chcete odkazovat:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Prosím, podpořte projekt"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Pozice"
|
||||
msgid "Preferences"
|
||||
msgstr "Předvolby"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Příprava změn"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Předvolby"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Stiskněte <0>{RETURN_KEY}</0> nebo <1>{COMMA_KEY}</1> pro přidání ne
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Stisknutím klávesy <0>Enter</0> otevřete"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Předchozí"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Hlavní barva"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Ukazatel průběhu"
|
||||
msgid "Projects"
|
||||
msgstr "Projekty"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Návrh {0} z {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Chraňte svůj životopis heslem před neoprávněným přístupem"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikace"
|
||||
msgid "Publisher"
|
||||
msgstr "Vydavatel"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Patch pro surový JSON"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume – přejít na domovskou stránku"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume je bezplatný open source projekt, vytvořený z lásky
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume je bezplatný nástroj pro tvorbu životopisů s otevřeným zdrojovým kódem, který zjednodušuje proces vytváření, aktualizace a sdílení životopisů."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume je zdarma a má otevřený zdrojový kód. Pokud vám pomohl, zvažte prosím dar."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume je open source, zaměřené na soukromí a zcela zdarma. Na rozdíl od jiných nástrojů pro tvorbu životopisů nezobrazuje reklamy, nesleduje vaše data a neomezuje funkce za paywallem."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Obdélník"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Obdélník (plná šířka)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Znovu (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Obnovit"
|
||||
msgid "Register New Device"
|
||||
msgstr "Registrace nového zařízení"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Odmítnout"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Odmítnout vše"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Zamítnutý návrh"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Vzpomínáte si na heslo? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Opětovné odesílání ověřovacího e-mailu…"
|
||||
msgid "Reset"
|
||||
msgstr "Resetovat"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Obnovit chat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Obnovte své heslo"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Obnovování hesla…"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Změna velikosti asistenta s umělou inteligencí"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Zdroje"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Analýza životopisu dokončena."
|
||||
msgid "Resumes"
|
||||
msgstr "Životopisy"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Vyžaduje se kontrola"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Zkontrolované návrhy"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Zarovnat vpravo"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Vybrat..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Vlastní hosting pomocí Dockeru"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Poslat"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Odeslat e-mail pro obnovení hesla"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Odesílání e-mailu pro obnovení hesla…"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Odesílání požadavku"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Oddělovač"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Jednosloupcové s postranním panelem a čistým mřížkovým rozložen
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Jednosloupcový s inline třísloupcovým záhlavím (pozice - organizace - tečka); kompaktní a vhodný pro ATS, vhodný pro asijské konvence životopisů (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Jednosloupcový s velkými písmeny nadpisů sekcí a horní linií v základní barvě na každé stránce; vybroušené pro životopisy vedoucích pracovníků, konzultantů nebo startupů."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Jednosloupcové; uhlazené a seriózní pro seniorské nebo enterprise pozice."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistiky"
|
||||
msgid "Stay"
|
||||
msgstr "Zůstat"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Zastávka"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Silné stránky"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Barva textu"
|
||||
msgid "Thai"
|
||||
msgstr "Thajština"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Umělá inteligence navrhla změnu, která se na tento životopis již nevztahuje."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Umělá inteligence vrátila návrh, jehož náhled nebylo možné zobrazit."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API klíč byl úspěšně smazán."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API klíč po smazání již nebude mít přístup k vašim datům. Tuto akci nelze vrátit zpět."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Asistent se zastavil, než vrátil návrh."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Toto je název vašeho životopisu vhodný pro URL adresu."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Může to trvat několik minut v závislosti na odezvě poskytovatele AI. Nezavírejte prosím okno ani neobnovujte stránku."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Tento návrh je zastaralý. Požádejte asistenta, aby jej znovu vytvořil z nejnovějšího životopisu."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Tento životopis je uzamčen a nelze ho aktualizovat."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Pro smazání účtu musíte zadat potvrzovací text a kliknout na tlač
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Přepínání levého postranního panelu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Přepnout stohování stránek"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrajinština"
|
||||
msgid "Underline"
|
||||
msgstr "Podtržení"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Zpět (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Neomezené životopisy"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Ano, Reactive Resume je dostupné ve více jazycích. Svůj preferovaný jazyk si můžete vybrat na stránce nastavení nebo pomocí přepínače jazyka v pravém horním rohu. Pokud svůj jazyk nevidíte nebo chcete vylepšit existující překlady, můžete <0>přispět k překladům na Crowdin<1> (otevře se na nové kartě)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Ano! Každá šablona je plně přizpůsobitelná. Můžete měnit barvy, písma, rozestupy a dokonce psát vlastní CSS pro úplnou kontrolu nad vzhledem svého životopisu."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Ano! Reactive Resume je zcela zdarma k použití, bez skrytých poplatků, prémiových úrovní nebo předplatného. Je open source a vždy zdarma zůstane."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Vaše data jsou ukládána lokálně"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Vaše data jsou ukládána bezpečně a nikdy nejsou sdílena s třetími stranami. Reactive Resume si můžete také hostovat sami na vlastních serverech a mít tak nad svými daty plnou kontrolu."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Vaše poslední změny se nepodařilo uložit."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: da\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Danish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# element} other {# elementer}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# rolle} other {# roller}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} forslag gennemgået"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Ja, selvfølgelig! Du kan eksportere dit CV til PDF med ét klik. Den eksporterede PDF bevarer al din formatering og styling perfekt."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Acceptere"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Accepter alle"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Accepteret forslag"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Få programmatisk adgang til dine CV'er og data ved hjælp af API'et."
|
||||
@@ -229,10 +246,38 @@ msgstr "Tilføj række før"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Efter"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI-integration deaktiveret"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI-forslag anvendt."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AI-forslag afvist."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "AI-forslag anvendt."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "AI-forslag afvist."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI CV-assistent"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albansk"
|
||||
@@ -367,10 +412,22 @@ msgstr "Studieområde"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Kunstig intelligens"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Bed om en målrettet CV-ændring..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Bed om en trinvis ændring"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Billedformat"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Assistent-anmodning mislykkedes"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Grundlæggende"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Smukke skabeloner at vælge imellem, med flere på vej."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Før"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengali"
|
||||
@@ -462,10 +523,6 @@ msgstr "Punktliste"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Af fællesskabet, for fællesskabet."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Kan jeg tilpasse skabelonerne?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Kan jeg eksportere mit CV til PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Klar"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Klik her for at vælge en fil, der skal importeres"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Luk AI-assistent"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Kodeblok"
|
||||
@@ -622,6 +687,10 @@ msgstr "Bekræft"
|
||||
msgid "Connect"
|
||||
msgstr "Forbind"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Opret forbindelse til og bekræft en AI-udbyder, før du bruger forslag til redigering af CV'er."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Kopiér denne hemmelige nøgle og brug den i dine applikationer for at f
|
||||
msgid "Copy URL"
|
||||
msgstr "Kopiér URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Kunne ikke anvende AI-forslaget."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Afbryd forbindelse"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Afskedige"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentation"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Har du ikke en konto? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donér"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Donér til Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Aktivér 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Aktivér AI-funktioner"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Aktivér AI-integration"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Aktivér to-faktor-godkendelse"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Alt hvad du indtaster her, gemmes lokalt i din browser. Dine data sendes
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Alt hvad du behøver for at oprette, tilpasse og dele professionelle CV'er. Bygget med fokus på privatliv, drevet af open source og helt gratis for altid."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Eksempler: omskriv resuméet, stram ét erfaringspunkt, tilføj målinger eller tilpas CV'et til en jobbeskrivelse."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Afslut fuldskærm"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Har du glemt din adgangskode?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Gratis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Frit format"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Fransk"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Flere forslagshandlinger"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Flyt til"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Skal starte med https://"
|
||||
msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Skal gennemgås"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalesisk"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Ny adgangskode"
|
||||
msgid "New Section"
|
||||
msgstr "Nyt afsnit"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Næste"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Ingen reklamer, ingen sporing"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Løbende vedligeholdelse"
|
||||
msgid "Open"
|
||||
msgstr "Åbn"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Åbn AI-assistent"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Åbn e-mailklient"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Åbne integrationer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Åbn indstillinger for integrationer"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Indtast adgangskoden, som ejeren af CV'et har delt med dig, for at forts
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Angiv den URL, du vil oprette et link til:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Støt venligst projektet"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Stilling"
|
||||
msgid "Preferences"
|
||||
msgstr "Præferencer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Forbereder ændringer"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Forudindstillinger"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Tryk på <0>{RETURN_KEY}</0> eller <1>{COMMA_KEY}</1> for at tilføje el
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Tryk på <0>Enter</0> for at åbne"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Forrige"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Primær farve"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Statuslinje"
|
||||
msgid "Projects"
|
||||
msgstr "Projekter"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Forslag {0} af {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Beskyt dit CV mod uautoriseret adgang med en adgangskode"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikationer"
|
||||
msgid "Publisher"
|
||||
msgstr "Udgiver"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Rå JSON-patch"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Gå til startside"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume er et gratis og open-source projekt, bygget med kærligh
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume er en gratis og open-source CV-bygger, der forenkler processen med at oprette, opdatere og dele dit CV."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume er gratis og open source. Hvis det har hjulpet dig, så overvej venligst at donere."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume er open-source, fokuserer på privatliv og er helt gratis. I modsætning til andre CV-byggere viser det ingen reklamer, sporer ikke dine data og begrænser ikke funktioner bag en betalingsmur."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rektangel"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rektangel (fuld bredde)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Gentag (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Opdater"
|
||||
msgid "Register New Device"
|
||||
msgstr "Registrer ny enhed"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Afvise"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Afvis alle"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Afvist forslag"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Husker du din adgangskode? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Gensender bekræftelsesmail..."
|
||||
msgid "Reset"
|
||||
msgstr "Nulstil"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Nulstil chatten"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Nulstil din adgangskode"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Nulstiller din adgangskode..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Ændre størrelse på AI-assistenten"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Ressourcer"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "CV-analysen er færdig."
|
||||
msgid "Resumes"
|
||||
msgstr "CV'er"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Gennemgang påkrævet"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Gennemgåede forslag"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Højrejustér"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Vælg..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Selvhostning med Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Sende"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Send e-mail til nulstilling af adgangskode"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Sender e-mail til nulstilling af adgangskode..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Sender anmodning"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Skillelinje"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Enkeltkolonne med sidebjælke og rent gitterlayout; alsidig til enhver p
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Enspaltet med en inline-overskrift på tre spalter (position - organisation - periode); kompakt og ATS-venlig, velegnet til asiatiske CV-konventioner (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Enkelt kolonne med sektionsoverskrifter med store bogstaver og en primærfarvet toplinje på hver side; poleret til CV'er for ledere, konsulenter eller startups."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Enkeltkolonne; poleret og seriøs til senior- eller enterprise-stillinger."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistik"
|
||||
msgid "Stay"
|
||||
msgstr "Bliv"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Styrker"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Tekstfarve"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "AI'en har foreslået en ændring, der ikke længere gælder for dette CV."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "AI'en returnerede et forslag, der ikke kunne forhåndsvises."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API-nøglen er blevet slettet."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API-nøglen vil ikke længere kunne få adgang til dine data efter sletning. Denne handling kan ikke fortrydes."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Assistenten stoppede, før han gentog et forslag."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Dette er et URL-venligt navn til dit CV."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Dette kan tage et par minutter afhængigt af svaret fra AI-udbyderen. Luk venligst ikke vinduet og genindlæs ikke siden."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Dette forslag er forældet. Bed assistenten om at generere det fra det seneste CV."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Dette CV er låst og kan ikke opdateres."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "For at slette din konto skal du indtaste bekræftelsesteksten og klikke
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Skift til venstre sidepanel"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Slå sidestabling til/fra"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrainsk"
|
||||
msgid "Underline"
|
||||
msgstr "Understreg"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Fortryd (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Ubegrænsede CV'er"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Ja, Reactive Resume er tilgængelig på flere sprog. Du kan vælge dit foretrukne sprog på indstillingssiden eller ved hjælp af sprogvælgeren i øverste højre hjørne. Hvis du ikke kan se dit sprog, eller hvis du gerne vil forbedre de eksisterende oversættelser, kan du <0>bidrage til oversættelserne på Crowdin<1> (åbner i ny fane)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Ja! Hver skabelon er fuldt ud til at tilpasse. Du kan ændre farver, skrifttyper, mellemrum og endda skrive brugerdefineret CSS for fuld kontrol over dit CV's udseende."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Ja! Reactive Resume er helt gratis at bruge, uden skjulte omkostninger, premium-niveauer eller abonnementsgebyrer. Det er open-source og vil altid forblive gratis."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Dine data gemmes lokalt"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Dine data lagres sikkert og deles aldrig med tredjeparter. Du kan også selv-hoste Reactive Resume på dine egne servere for fuld kontrol over dine data."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Dine seneste ændringer kunne ikke gemmes."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: de\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# Element} other {# Elemente}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# Rolle} other {# Rollen}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} geprüfte Vorschläge"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Auf jeden Fall! Du kannst deinen Lebenslauf mit einem einzigen Klick als PDF exportieren. Das exportierte PDF übernimmt all deine Formatierungen und dein Styling perfekt."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Akzeptieren"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Alle akzeptieren"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Angenommener Vorschlag"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Greife mit der API programmgesteuert auf deine Lebensläufe und Daten zu."
|
||||
@@ -229,10 +246,38 @@ msgstr "Zeile davor einfügen"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Nach"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "KI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "KI-Integration deaktiviert"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "KI-Vorschlag eingereicht."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "KI-Vorschlag abgelehnt."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "KI-Vorschläge wurden eingereicht."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "KI-Vorschläge abgelehnt."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "KI-Lebenslaufassistent"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanisch"
|
||||
@@ -367,10 +412,22 @@ msgstr "Studienfach"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Künstliche Intelligenz"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Bitten Sie um eine gezielte Lebenslaufänderung..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Bitten Sie um eine schrittweise Änderung"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Seitenverhältnis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Assistentenanfrage fehlgeschlagen"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Grundlagen"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Schöne Vorlagen zur Auswahl – und es kommen laufend weitere hinzu."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Vor"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengalisch"
|
||||
@@ -462,10 +523,6 @@ msgstr "Aufzählungsliste"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Von der Gemeinschaft, für die Gemeinschaft."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Kann ich die Vorlagen anpassen?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Kann ich meinen Lebenslauf als PDF exportieren?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Klar"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Hier klicken, um eine Datei zum Importieren auszuwählen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Schließen Sie den KI-Assistenten"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Code-Block"
|
||||
@@ -622,6 +687,10 @@ msgstr "Bestätigen"
|
||||
msgid "Connect"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Bevor Sie Vorschläge zur Lebenslaufbearbeitung nutzen, sollten Sie einen KI-Anbieter kontaktieren und dessen Eignung überprüfen."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Kopiere diesen geheimen Schlüssel und verwende ihn in deinen Anwendunge
|
||||
msgid "Copy URL"
|
||||
msgstr "URL kopieren"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Der KI-Vorschlag konnte nicht angewendet werden."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Trennen"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Zurückweisen"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentation"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Sie haben noch kein Konto? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Spenden"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "An Reactive Resume spenden"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA aktivieren"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "KI-Funktionen aktivieren"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "KI-Integration aktivieren"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Zwei-Faktor-Authentifizierung aktivieren"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Alles, was du hier eingibst, wird lokal in deinem Browser gespeichert. D
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Alles, was du brauchst, um professionelle Lebensläufe zu erstellen, anzupassen und zu teilen. Mit Blick auf Datenschutz entwickelt, von Open Source angetrieben und für immer komplett kostenlos."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Beispiele: die Zusammenfassung überarbeiten, einen Erfahrungspunkt präzisieren, Kennzahlen hinzufügen oder den Lebenslauf an eine Stellenbeschreibung anpassen."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Vollbild schließen"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Passwort vergessen?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Seitenformat"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Seitenformat"
|
||||
msgid "Free"
|
||||
msgstr "Kostenlos"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Freiform"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Französisch"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modell"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Weitere Aktionsvorschläge"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Verschieben nach"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Muss mit https:// beginnen."
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Überprüfung erforderlich"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalesisch"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Neues Passwort"
|
||||
msgid "New Section"
|
||||
msgstr "Neuer Abschnitt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Nächste"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Keine Werbung, kein Tracking"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Laufende Wartung"
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Offener KI-Assistent"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "E-Mail-Programm öffnen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Offene Integrationen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Integrationseinstellungen öffnen"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Bitte geben Sie das Passwort ein, das Ihnen vom Besitzer des Lebenslaufs
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Bitte geben Sie die URL ein, zu der Sie verlinken möchten:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Bitte unterstützen Sie das Projekt."
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Position"
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Änderungen vorbereiten"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Voreinstellungen"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Drücken Sie <0>{RETURN_KEY}</0> oder <1>{COMMA_KEY}</1>, um das aktuell
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Drücken Sie <0>Enter</0> zum Öffnen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Primärfarbe"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Fortschrittsbalken"
|
||||
msgid "Projects"
|
||||
msgstr "Projekte"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Vorschlag {0} von {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Schützen Sie Ihren Lebenslauf mit einem Passwort vor unbefugtem Zugriff"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Veröffentlichungen"
|
||||
msgid "Publisher"
|
||||
msgstr "Verlag"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Raw JSON Patch"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume – Zur Startseite gehen"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume ist ein kostenloses Open-Source-Projekt, mit viel Liebe
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume ist ein kostenloser und quelloffener Lebenslauf-Builder, der das Erstellen, Aktualisieren und Teilen Ihres Lebenslaufs vereinfacht."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume ist kostenlos und Open Source. Wenn es Ihnen geholfen hat, würden wir uns über eine Spende freuen."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume ist Open Source, datenschutzorientiert und vollständig kostenlos. Anders als andere Lebenslauf-Builder zeigt es keine Werbung an, trackt deine Daten nicht und versteckt keine Funktionen hinter einer Bezahlschranke."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rechteck"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rechteck (volle Breite)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Wiederholen (Strg+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Aktualisieren"
|
||||
msgid "Register New Device"
|
||||
msgstr "Neues Gerät registrieren"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Ablehnen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Alle ablehnen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Abgelehnter Vorschlag"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Passwort noch parat? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Verifizierungs-E-Mail wird erneut gesendet..."
|
||||
msgid "Reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Chat zurücksetzen"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Setzen Sie Ihr Passwort zurück"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Ihr Passwort wird zurückgesetzt..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "KI-Assistenten zur Größenänderung"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Ressourcen"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Analyse des Lebenslaufs abgeschlossen."
|
||||
msgid "Resumes"
|
||||
msgstr "Lebensläufe"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Überprüfung erforderlich"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Geprüfte Vorschläge"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Rechtsbündig"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Auswählen..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Selbst hosten mit Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Schicken"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "E-Mail zum Zurücksetzen des Passworts senden"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "E-Mail zum Zurücksetzen des Passworts wird gesendet..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Anfrage senden"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Trennzeichen"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Einspaltig mit Seitenleiste und sauberem Rasterlayout; vielseitig für j
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Einspaltig mit einer dreispaltigen Kopfzeile (Position - Organisation - Punkt); kompakt und ATS-freundlich, gut geeignet für asiatische Lebenslaufkonventionen (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Einspaltig mit in Großbuchstaben geschriebenen Abschnittsüberschriften und einer farbigen Trennlinie am oberen Rand jeder Seite; optimiert für Lebensläufe von Führungskräften, Beratern oder Startups."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Einspaltig; seriös und ausgefeilt für Senior- oder Enterprise-Positionen."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistiken"
|
||||
msgid "Stay"
|
||||
msgstr "Hier bleiben"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stoppen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Stärken"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Textfarbe"
|
||||
msgid "Thai"
|
||||
msgstr "Thailändisch"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Die KI hat eine Änderung vorgeschlagen, die auf diesen Lebenslauf nicht mehr zutrifft."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Die KI hat einen Vorschlag zurückgegeben, der nicht in der Vorschau angezeigt werden konnte."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "Der API-Schlüssel wurde erfolgreich gelöscht."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Der API-Schlüssel kann nach dem Löschen nicht mehr auf deine Daten zugreifen. Diese Aktion kann nicht rückgängig gemacht werden."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Der Assistent hielt inne, bevor er einen Vorschlag zurückgeben konnte."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Dies ist ein URL-freundlicher Name für Ihren Lebenslauf."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Dies kann einige Minuten dauern, abhängig von der Antwort des KI-Anbieters. Bitte schließe das Fenster nicht und lade die Seite nicht neu."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Dieser Vorschlag ist veraltet. Bitten Sie Ihren Assistenten, ihn anhand des aktuellen Lebenslaufs neu zu erstellen."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Dieser Lebenslauf ist gesperrt und kann nicht aktualisiert werden."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Um Ihr Konto zu löschen, müssen Sie den Bestätigungstext eingeben und
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Linke Seitenleiste umschalten"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Seitenstapelung umschalten"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrainisch"
|
||||
msgid "Underline"
|
||||
msgstr "Unterstreichen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Rückgängig (Strg+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Unbegrenzte Lebensläufe"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Ja, Reactive Resume ist in mehreren Sprachen verfügbar. Du kannst deine bevorzugte Sprache auf der Einstellungsseite oder über den Sprachumschalter in der oberen rechten Ecke auswählen. Wenn du deine Sprache nicht findest oder die bestehenden Übersetzungen verbessern möchtest, kannst du <0>auf Crowdin zu den Übersetzungen beitragen<1> (öffnet in neuem Tab)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Ja! Jede Vorlage ist vollständig anpassbar. Du kannst Farben, Schriften und Abstände ändern und sogar eigenes CSS schreiben, um die Darstellung deines Lebenslaufs vollständig zu kontrollieren."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Ja! Reactive Resume ist völlig kostenlos nutzbar, ohne versteckte Kosten, Premium-Stufen oder Abonnementgebühren. Es ist Open Source und wird immer kostenlos bleiben."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Deine Daten werden lokal gespeichert"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Deine Daten werden sicher gespeichert und niemals an Dritte weitergegeben. Du kannst Reactive Resume außerdem auf deinen eigenen Servern selbst hosten, um die vollständige Kontrolle über deine Daten zu behalten."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Ihre letzten Änderungen konnten nicht gespeichert werden."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: el\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Greek\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# στοιχείο} other {# στοιχεία}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# ρόλος} other {# ρόλοι}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} προτάσεις που εξετάστηκαν"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "Α4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Φυσικά! Μπορείτε να εξαγάγετε το βιογραφικό σας σημείωμα σε PDF με ένα μόνο κλικ. Το εξαγόμενο PDF διατηρεί άψογα όλη τη μορφοποίηση και το στυλ σας."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Αποδέχομαι"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Αποδοχή όλων"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Αποδεκτή πρόταση"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Αποκτήστε πρόσβαση στα βιογραφικά σημειώματά σας και στα δεδομένα σας προγραμματιστικά χρησιμοποιώντας το API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Προσθήκη γραμμής πριν"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Αφρικάανς"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Μετά"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "ΤΝ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Η ενσωμάτωση τεχνητής νοημοσύνης απενεργοποιήθηκε"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Η πρόταση τεχνητής νοημοσύνης εφαρμόστηκε."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Η πρόταση για την Τεχνητή Νοημοσύνη απορρίφθηκε."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Εφαρμόστηκαν προτάσεις για την Τεχνητή Νοημοσύνη."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Οι προτάσεις για τεχνητή νοημοσύνη απορρίφθηκαν."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Βοηθός βιογραφικού AI"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Αλβανικά"
|
||||
@@ -367,10 +412,22 @@ msgstr "Τομέας σπουδών"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Τεχνητή Νοημοσύνη"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Ζητήστε μια στοχευμένη αλλαγή βιογραφικού..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Ζητήστε μια σταδιακή αλλαγή"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Αναλογία διαστάσεων"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Το αίτημα του Βοηθού απέτυχε"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Βασικά στοιχεία"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Όμορφα πρότυπα για να επιλέξετε, με ακόμα περισσότερα καθ’ οδόν."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Προτού"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Μπενγκάλι"
|
||||
@@ -462,10 +523,6 @@ msgstr "Λίστα κουκκίδων"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Από την κοινότητα, για την κοινότητα."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Μπορώ να προσαρμόσω τα πρότυπα;"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Μπορώ να εξαγάγω το βιογραφικό μου σημείωμα σε PDF;"
|
||||
@@ -576,6 +633,14 @@ msgstr "Σαφής"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Κάντε κλικ εδώ για να επιλέξετε ένα αρχείο προς εισαγωγή"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Κλείσιμο βοηθού τεχνητής νοημοσύνης"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Μπλοκ κώδικα"
|
||||
@@ -622,6 +687,10 @@ msgstr "Επιβεβαίωση"
|
||||
msgid "Connect"
|
||||
msgstr "Σύνδεση"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Συνδεθείτε και επαληθεύστε έναν πάροχο τεχνητής νοημοσύνης πριν χρησιμοποιήσετε προτάσεις επεξεργασίας βιογραφικού."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Αντιγράψτε αυτό το μυστικό κλειδί και χ
|
||||
msgid "Copy URL"
|
||||
msgstr "Αντιγραφή URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Δεν ήταν δυνατή η εφαρμογή της πρότασης τεχνητής νοημοσύνης."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Αποσύνδεση"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Απολύω"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Τεκμηρίωση"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Δεν έχετε λογαριασμό; <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Προσφέρω"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Κάντε μία δωρεά στο Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Ενεργοποίηση 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Ενεργοποίηση λειτουργιών ΤΝ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Ενεργοποίηση ενσωμάτωσης τεχνητής νοημοσύνης"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Ενεργοποίηση ελέγχου ταυτότητας δυο σταδίων"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Οτιδήποτε εισάγετε εδώ αποθηκεύεται το
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Όλα όσα χρειάζεστε για να δημιουργήσετε, να προσαρμόσετε και να μοιραστείτε επαγγελματικά βιογραφικά σημειώματα. Δημιουργήθηκε με γνώμονα το απόρρητο, βασισμένο σε ανοικτό κώδικα και εντελώς δωρεάν για πάντα."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Παραδείγματα: ξαναγράψτε την περίληψη, περιορίστε ένα σημείο εμπειρίας, προσθέστε μετρήσεις ή προσαρμόστε το βιογραφικό σημείωμα για μια περιγραφή θέσης εργασίας."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Έξοδος από πλήρη οθόνη"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Ξεχάσατε τον κωδικό πρόσβασής σας;"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Μορφή"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Μορφή"
|
||||
msgid "Free"
|
||||
msgstr "Δωρεάν"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Ελεύθερη μορφή"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Γαλλικά"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Μοντέλο"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Περισσότερες ενέργειες πρότασης"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Μετακίνηση σε"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Πρέπει να αρχίζει με https://"
|
||||
msgid "Name"
|
||||
msgstr "Όνομα"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Χρειάζεται αναθεώρηση"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Νεπάλι"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Νέος κωδικός πρόσβασης"
|
||||
msgid "New Section"
|
||||
msgstr "Νέα ενότητα"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Επόμενο"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Χωρίς διαφημίσεις, χωρίς παρακολούθηση"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Συνεχής συντήρηση"
|
||||
msgid "Open"
|
||||
msgstr "Άνοιγμα"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Ανοιχτός βοηθός τεχνητής νοημοσύνης"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Άνοιγμα προγράμματος email"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Ανοιχτές Ενοποιήσεις"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Ανοίξτε τις Ρυθμίσεις Ολοκληρώσεων"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Εισαγάγετε τον κωδικό πρόσβασης που μο
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Εισαγάγετε το URL στο οποίο θέλετε να γίνεται ο σύνδεσμος:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Παρακαλώ υποστηρίξτε το έργο"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Θέση"
|
||||
msgid "Preferences"
|
||||
msgstr "Προτιμήσεις"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Προετοιμασία αλλαγών"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Προεπιλογές"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Πατήστε <0>{RETURN_KEY}</0> ή <1>{COMMA_KEY}</1> για να π
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Πατήστε <0>Enter</0> για να ανοίξετε"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Προηγούμενο"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Βασικό χρώμα"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Γραμμή προόδου"
|
||||
msgid "Projects"
|
||||
msgstr "Έργα"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Πρόταση {0} από {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Προστατέψτε το βιογραφικό σας σημείωμα από μη εξουσιοδοτημένη πρόσβαση με έναν κωδικό πρόσβασης"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Δημοσιεύσεις"
|
||||
msgid "Publisher"
|
||||
msgstr "Εκδότης"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Ακατέργαστη ενημέρωση κώδικα JSON"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Μετάβαση στην αρχική σελίδα"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Το Reactive Resume είναι ένα δωρεάν έργο ανοικ
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Το Reactive Resume είναι ένας δωρεάν κατασκευαστής βιογραφικών σημειωμάτων ανοικτού κώδικα που απλοποιεί τη διαδικασία δημιουργίας, ενημέρωσης και κοινοποίησης του βιογραφικού σας σημειώματος."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Το Reactive Resume είναι δωρεάν και ανοιχτού κώδικα. Αν σας έχει βοηθήσει, σκεφτείτε να κάνετε μια δωρεά."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Το Reactive Resume είναι ανοικτού κώδικα, με έμφαση στο απόρρητο και εντελώς δωρεάν. Σε αντίθεση με άλλους κατασκευαστές βιογραφικών σημειωμάτων, δεν εμφανίζει διαφημίσεις, δεν παρακολουθεί τα δεδομένα σας και δεν περιορίζει τις λειτουργίες του πίσω από paywall."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Ορθογώνιο"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Ορθογώνιο (πλήρους πλάτους)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Επανάληψη (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Ανανέωση"
|
||||
msgid "Register New Device"
|
||||
msgstr "Εγγραφή νέας συσκευής"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Απορρίπτω"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Απόρριψη όλων"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Απορρίφθηκε η πρόταση"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Θυμάστε τον κωδικό σας; <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Επαναποστολή email επαλήθευσης..."
|
||||
msgid "Reset"
|
||||
msgstr "Επαναφορά"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Επαναφορά συνομιλίας"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Επαναφορά κωδικού πρόσβασης"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Επαναφορά κωδικού πρόσβασης..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Αλλαγή μεγέθους βοηθού τεχνητής νοημοσύνης"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Πόροι"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Η ανάλυση του βιογραφικού ολοκληρώθηκε
|
||||
msgid "Resumes"
|
||||
msgstr "Βιογραφικά σημειώματα"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Απαιτείται έλεγχος"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Εξετασμένες προτάσεις"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Στοίχιση δεξιά"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Επιλογή..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Αυτο-φιλοξενία με Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Στέλνω"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Αποστολή email επαναφοράς κωδικού πρόσβα
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Αποστολή email επαναφοράς κωδικού πρόσβασης..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Αποστολή αιτήματος"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Διαχωριστικό"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Μονή στήλη με πλαϊνή μπάρα και καθαρή δ
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Μονόστηλο με γραμμική κεφαλίδα εισόδου τριών στηλών (θέση - οργάνωση - περίοδος)- συμπαγές και φιλικό προς την ATS, κατάλληλο για τις ασιατικές συμβάσεις βιογραφικού σημειώματος (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Μονόστηλο με κεφαλαία γράμματα στις επικεφαλίδες και κύριο χρώμα στο πάνω μέρος σε κάθε σελίδα. Βελτιωμένο για βιογραφικά στελεχών, συμβούλων ή νεοσύστατων επιχειρήσεων."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Μονή στήλη· προσεγμένο και σοβαρό για ανώτερες ή θέσεις εταιρικού επιπέδου."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Στατιστικά"
|
||||
msgid "Stay"
|
||||
msgstr "Παραμονή"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Στάση"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Δυνατά σημεία"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Χρώμα κειμένου"
|
||||
msgid "Thai"
|
||||
msgstr "Ταϊλανδικά"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Η Τεχνητή Νοημοσύνη πρότεινε μια αλλαγή που δεν ισχύει πλέον για αυτό το βιογραφικό."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Η Τεχνητή Νοημοσύνη επέστρεψε μια πρόταση της οποίας η προεπισκόπηση δεν ήταν δυνατή."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "Το κλειδί API διαγράφηκε με επιτυχία."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Μετά τη διαγραφή, το κλειδί API δεν θα μπορεί πλέον να αποκτά πρόσβαση στα δεδομένα σας. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Ο βοηθός σταμάτησε πριν επιστρέψει μια πρόταση."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Αυτό είναι ένα φιλικό προς το URL όνομα γ
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Αυτό μπορεί να πάρει μερικά λεπτά, ανάλογα με την απόκριση του παρόχου ΤΝ. Μην κλείσετε το παράθυρο ή ανανεώσετε τη σελίδα."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Αυτή η πρόταση είναι παλιά. Ζητήστε από τον βοηθό να την αναδημιουργήσει από το πιο πρόσφατο βιογραφικό."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Αυτό το βιογραφικό σημείωμα είναι κλειδωμένο και δεν μπορεί να ενημερωθεί."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Για να διαγράψετε τον λογαριασμό σας, π
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Εναλλαγή αριστερής πλευρικής γραμμής"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Εναλλαγή στοίβαξης σελίδων"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ουκρανικά"
|
||||
msgid "Underline"
|
||||
msgstr "Υπογράμμιση"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Αναίρεση (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Απεριόριστα βιογραφικά σημειώματα"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "Χ (Τwitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Ναι, το Reactive Resume είναι διαθέσιμο σε πολλές γλώσσες. Μπορείτε να επιλέξετε την προτιμώμενη γλώσσα σας στη σελίδα ρυθμίσεων ή χρησιμοποιώντας τον επιλογέα γλώσσας στην επάνω δεξιά γωνία. Αν δεν βλέπετε τη γλώσσα σας ή θα θέλατε να βελτιώσετε τις υπάρχουσες μεταφράσεις, μπορείτε να <0>συμβάλετε στις μεταφράσεις στο Crowdin<1> (ανοίγει σε νέα καρτέλα)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Ναι! Κάθε πρότυπο είναι πλήρως προσαρμόσιμο. Μπορείτε να αλλάξετε χρώματα, γραμματοσειρές, αποστάσεις και ακόμη και να γράψετε προσαρμοσμένο CSS για πλήρη έλεγχο της εμφάνισης του βιογραφικού σας σημειώματος."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Ναι! Το Reactive Resume είναι εντελώς δωρεάν στη χρήση, χωρίς κρυφές χρεώσεις, επίπεδα premium ή συνδρομές. Είναι ανοικτού κώδικα και θα παραμείνει πάντα δωρεάν."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Τα δεδομένα σας αποθηκεύονται τοπικά"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Τα δεδομένα σας αποθηκεύονται με ασφάλεια και δεν κοινοποιούνται ποτέ σε τρίτους. Μπορείτε επίσης να φιλοξενήσετε μόνοι σας το Reactive Resume στους δικούς σας διακομιστές για πλήρη έλεγχο των δεδομένων σας."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Δεν ήταν δυνατή η αποθήκευση των τελευταίων αλλαγών σας."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: en_GB\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: English, United Kingdom\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# role} other {# roles}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} proposals reviewed"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Accept"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Accept all"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Accepted proposal"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Access your resumes and data programmatically using the API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Add Row Before"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "After"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI integration disabled"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI proposal applied."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AI proposal rejected."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "AI proposals applied."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "AI proposals rejected."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI Resume Assistant"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanian"
|
||||
@@ -367,10 +412,22 @@ msgstr "Area of Study"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Artificial Intelligence"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Ask for a targeted resume change..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Ask for an incremental change"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Aspect Ratio"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Assistant request failed"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Basics"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Beautiful templates to choose from, with more on the way."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Before"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengali"
|
||||
@@ -462,10 +523,6 @@ msgstr "Bullet List"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "By the community, for the community."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Can I customise the templates?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Can I export my resume to PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Clear"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Click here to select a file to import"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Close AI assistant"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Code Block"
|
||||
@@ -622,6 +687,10 @@ msgstr "Confirm"
|
||||
msgid "Connect"
|
||||
msgstr "Connect"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Connect and verify an AI provider before using resume editing proposals."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Copy this secret key and use it in your applications to access your data
|
||||
msgid "Copy URL"
|
||||
msgstr "Copy URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Could not apply the AI proposal."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Disconnect"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Dismiss"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Documentation"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Don't have an account? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donate"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Donate to Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Enable 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Enable AI Features"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Enable AI integration"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Enable Two-Factor Authentication"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Everything entered here is stored locally on your browser. Your data is
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Everything you need to create, customise, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Exit fullscreen"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Forgot your password?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Free"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Free-form"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "French"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "More proposal actions"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Move to"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Must start with https://"
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Needs review"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepali"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "New Password"
|
||||
msgid "New Section"
|
||||
msgstr "New Section"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Next"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "No Advertising, No Tracking"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Ongoing Maintenance"
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Open AI assistant"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Open Email Client"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Open Integrations"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Open Integrations Settings"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Please enter the password shared with you by the owner of the resume to
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Please enter the URL you want to link to:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Please support the project"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Position"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferences"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Preparing changes"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Presets"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the curre
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Press <0>Enter</0> to open"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Prev"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Primary Colour"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Progress Bar"
|
||||
msgid "Projects"
|
||||
msgstr "Projects"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Proposal {0} of {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Protect your resume from unauthorised access with a password"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publications"
|
||||
msgid "Publisher"
|
||||
msgstr "Publisher"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Raw JSON Patch"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Go to homepage"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume is a free and open-source project, built with love and m
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rectangle"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rectangle (Full Width)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Redo (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Refresh"
|
||||
msgid "Register New Device"
|
||||
msgstr "Register New Device"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Reject"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Reject all"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Rejected proposal"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Remember your password? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Resending verification email..."
|
||||
msgid "Reset"
|
||||
msgstr "Reset"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Reset chat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Reset your password"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Resetting your password..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Resize AI assistant"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Resources"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Resume analysis complete."
|
||||
msgid "Resumes"
|
||||
msgstr "Resumes"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Review required"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Reviewed proposals"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Right Align"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Select..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Self-Host with Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Send"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Send Password Reset Email"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Sending password reset email..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Sending request"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Separator"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Single-column with a sidebar and clean grid layout; versatile for any pr
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistics"
|
||||
msgid "Stay"
|
||||
msgstr "Stay"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Strengths"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Text Colour"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "The AI proposed a change that no longer applies to this resume."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "The AI returned a proposal that could not be previewed."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "The API key has been deleted successfully."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "The assistant stopped before returning a proposal."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "This is a URL-friendly name for your resume."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "This resume is locked and cannot be updated."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "To delete your account, you need to enter the confirmation text and clic
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Toggle left sidebar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Toggle page stacking"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrainian"
|
||||
msgid "Underline"
|
||||
msgstr "Underline"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Undo (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Unlimited Resumes"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Yes! Every template is fully customisable. You can change colours, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Your data is stored locally"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Your latest changes could not be saved."
|
||||
|
||||
|
||||
+210
-21
@@ -43,6 +43,11 @@ msgstr "{0, plural, one {# item} other {# items}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# role} other {# roles}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} proposals reviewed"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -114,6 +119,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Accept"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Accept all"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Accepted proposal"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Access your resumes and data programmatically using the API."
|
||||
@@ -224,10 +241,38 @@ msgstr "Add Row Before"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "After"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI integration disabled"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI proposal applied."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AI proposal rejected."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "AI proposals applied."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "AI proposals rejected."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI Resume Assistant"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanian"
|
||||
@@ -362,10 +407,22 @@ msgstr "Area of Study"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Artificial Intelligence"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Ask for a targeted resume change..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Ask for an incremental change"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Aspect Ratio"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Assistant request failed"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -416,6 +473,10 @@ msgstr "Basics"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Beautiful templates to choose from, with more on the way."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Before"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengali"
|
||||
@@ -457,10 +518,6 @@ msgstr "Bullet List"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "By the community, for the community."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Can I customize the templates?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Can I export my resume to PDF?"
|
||||
@@ -571,6 +628,14 @@ msgstr "Clear"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Click here to select a file to import"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Close AI assistant"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Code Block"
|
||||
@@ -617,6 +682,10 @@ msgstr "Confirm"
|
||||
msgid "Connect"
|
||||
msgstr "Connect"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Connect and verify an AI provider before using resume editing proposals."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -664,6 +733,10 @@ msgstr "Copy this secret key and use it in your applications to access your data
|
||||
msgid "Copy URL"
|
||||
msgstr "Copy URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Could not apply the AI proposal."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -956,6 +1029,10 @@ msgstr "Disconnect"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Dismiss"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -965,6 +1042,10 @@ msgstr "Documentation"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Don't have an account? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donate"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Donate to Reactive Resume"
|
||||
@@ -1089,6 +1170,10 @@ msgstr "Enable 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Enable AI Features"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Enable AI integration"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Enable Two-Factor Authentication"
|
||||
@@ -1157,6 +1242,10 @@ msgstr "Everything entered here is stored locally on your browser. Your data is
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Exit Fullscreen"
|
||||
@@ -1384,7 +1473,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Forgot your password?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1392,6 +1481,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Free"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Free-form"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "French"
|
||||
@@ -1947,6 +2040,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "More proposal actions"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Move to"
|
||||
@@ -1973,6 +2070,10 @@ msgstr "Must start with https://"
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Needs review"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepali"
|
||||
@@ -2003,6 +2104,10 @@ msgstr "New Password"
|
||||
msgid "New Section"
|
||||
msgstr "New Section"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Next"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "No Advertising, No Tracking"
|
||||
@@ -2052,11 +2157,19 @@ msgstr "Ongoing Maintenance"
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Open AI assistant"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Open Email Client"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Open Integrations"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Open Integrations Settings"
|
||||
@@ -2210,6 +2323,10 @@ msgstr "Please enter the password shared with you by the owner of the resume to
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Please enter the URL you want to link to:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Please support the project"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2245,6 +2362,10 @@ msgstr "Position"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferences"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Preparing changes"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Presets"
|
||||
@@ -2258,6 +2379,10 @@ msgstr "Press <0>{RETURN_KEY}</0> or <1>{COMMA_KEY}</1> to add or save the curre
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Press <0>Enter</0> to open"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Prev"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Primary Color"
|
||||
@@ -2288,6 +2413,11 @@ msgstr "Progress Bar"
|
||||
msgid "Projects"
|
||||
msgstr "Projects"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Proposal {0} of {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Protect your resume from unauthorized access with a password"
|
||||
@@ -2310,6 +2440,10 @@ msgstr "Publications"
|
||||
msgid "Publisher"
|
||||
msgstr "Publisher"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Raw JSON Patch"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Go to homepage"
|
||||
@@ -2331,6 +2465,10 @@ msgstr "Reactive Resume is a free and open-source project, built with love and m
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
@@ -2357,11 +2495,6 @@ msgstr "Rectangle"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rectangle (Full Width)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Redo (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2376,6 +2509,18 @@ msgstr "Refresh"
|
||||
msgid "Register New Device"
|
||||
msgstr "Register New Device"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Reject"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Reject all"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Rejected proposal"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Remember your password? <0/>"
|
||||
@@ -2426,6 +2571,10 @@ msgstr "Resending verification email..."
|
||||
msgid "Reset"
|
||||
msgstr "Reset"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Reset chat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2439,6 +2588,10 @@ msgstr "Reset your password"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Resetting your password..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Resize AI assistant"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Resources"
|
||||
@@ -2459,6 +2612,14 @@ msgstr "Resume analysis complete."
|
||||
msgid "Resumes"
|
||||
msgstr "Resumes"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Review required"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Reviewed proposals"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Right Align"
|
||||
@@ -2557,6 +2718,10 @@ msgstr "Select..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Self-Host with Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Send"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2566,6 +2731,10 @@ msgstr "Send Password Reset Email"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Sending password reset email..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Sending request"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Separator"
|
||||
@@ -2704,6 +2873,10 @@ msgstr "Single-column with a sidebar and clean grid layout; versatile for any pr
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
@@ -2804,6 +2977,10 @@ msgstr "Statistics"
|
||||
msgid "Stay"
|
||||
msgstr "Stay"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Strengths"
|
||||
@@ -2898,6 +3075,14 @@ msgstr "Text Color"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "The AI proposed a change that no longer applies to this resume."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "The AI returned a proposal that could not be previewed."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2911,6 +3096,10 @@ msgstr "The API key has been deleted successfully."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "The assistant stopped before returning a proposal."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2977,7 +3166,12 @@ msgstr "This is a URL-friendly name for your resume."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "This resume is locked and cannot be updated."
|
||||
|
||||
@@ -3029,6 +3223,10 @@ msgstr "To delete your account, you need to enter the confirmation text and clic
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Toggle left sidebar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Toggle page stacking"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3132,11 +3330,6 @@ msgstr "Ukrainian"
|
||||
msgid "Underline"
|
||||
msgstr "Underline"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Undo (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Unlimited Resumes"
|
||||
@@ -3382,10 +3575,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
@@ -3435,7 +3624,7 @@ msgstr "Your data is stored locally"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Your latest changes could not be saved."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: es\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elemento} other {# elementos}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# puesto} other {# puestos}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} propuestas revisadas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Por supuesto. Puedes exportar tu currículum a PDF con un solo clic. El PDF exportado mantiene perfectamente todo tu formato y estilo."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Aceptar todo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Propuesta aceptada"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Accede a tus currículums y datos de forma programática usando la API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Añadir fila antes"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikáans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Después"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Integración de IA desactivada"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Se ha aplicado la propuesta de IA."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Propuesta de IA rechazada."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Se han presentado propuestas de IA."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Propuestas de IA rechazadas."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Asistente de IA para la elaboración de currículums"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanés"
|
||||
@@ -367,10 +412,22 @@ msgstr "Área de estudio"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Inteligencia artificial"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Solicita un cambio específico en tu currículum..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Solicitar un cambio gradual"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Relación de aspecto"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "La solicitud de asistencia falló."
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Lo esencial"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Hermosas plantillas entre las que puedes elegir, y pronto habrá más."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Antes"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengalí"
|
||||
@@ -462,10 +523,6 @@ msgstr "Lista con viñetas"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Por la comunidad, para la comunidad."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "¿Puedo personalizar las plantillas?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "¿Puedo exportar mi currículum a PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Claro"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Haz clic aquí para seleccionar un archivo para importar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Asistente de IA de cierre"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Bloque de código"
|
||||
@@ -622,6 +687,10 @@ msgstr "Confirmar"
|
||||
msgid "Connect"
|
||||
msgstr "Conectar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Antes de utilizar las propuestas de edición de currículums, contacte con un proveedor de IA y verifíquelo."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Copia esta clave secreta y úsala en tus aplicaciones para acceder a tus
|
||||
msgid "Copy URL"
|
||||
msgstr "Copiar URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "No se pudo aplicar la propuesta de IA."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Desconectar"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Despedir"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Documentación"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "¿No tienes una cuenta? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Donar a Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Habilitar 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Habilitar funciones de IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Habilitar la integración de la IA"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Habilitar la autenticación de doble factor"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Todo lo que introduzcas aquí se almacena localmente en tu navegador. Tu
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Todo lo que necesitas para crear, personalizar y compartir currículums profesionales. Creado con la privacidad en mente, impulsado por el código abierto y completamente gratis para siempre."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Ejemplos: reescribir el resumen, concretar un punto de la experiencia, añadir métricas o adaptar el currículum a la descripción del puesto."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Salir de pantalla completa"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "¿Olvidaste tu contraseña?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formato"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formato"
|
||||
msgid "Free"
|
||||
msgstr "Gratis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Forma libre"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Francés"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modelo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Más propuestas de acción"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Mover a"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Debe empezar por https://"
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Necesita revisión"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalí"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Nueva contraseña"
|
||||
msgid "New Section"
|
||||
msgstr "Nueva sección"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Sin publicidad, sin rastreo"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Mantenimiento continuo"
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Asistente de IA abierta"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Abrir cliente de correo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Integraciones abiertas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Abrir Configuración de integraciones"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Introduce la contraseña que el propietario del currículum compartió c
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Introduce la URL a la que quieres enlazar:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Por favor, apoyen el proyecto."
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Puesto"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferencias"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Preparando cambios"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Preajustes"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Presiona <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> para agregar o guardar
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Pulse <0>Intro</0> para abrir"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Color primario"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Barra de progreso"
|
||||
msgid "Projects"
|
||||
msgstr "Proyectos"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Propuesta {0} de {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Protege tu currículum del acceso no autorizado con una contraseña"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publicaciones"
|
||||
msgid "Publisher"
|
||||
msgstr "Editor"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Parche JSON sin procesar"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Ir a la página de inicio"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume es un proyecto gratuito y de código abierto, creado con
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume es un creador de currículums gratuito y de código abierto que simplifica el proceso de crear, actualizar y compartir tu currículum."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume es gratuito y de código abierto. Si te ha sido útil, considera hacer una donación."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume es de código abierto, centrado en la privacidad y completamente gratuito. A diferencia de otros creadores de currículums, no muestra anuncios, no rastrea tus datos ni limita tus funciones tras un muro de pago."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rectángulo"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rectángulo (ancho completo)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Rehacer (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Actualizar"
|
||||
msgid "Register New Device"
|
||||
msgstr "Registrar nuevo dispositivo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Rechazar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Rechazar todo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Propuesta rechazada"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "¿Recuerdas tu contraseña? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Reenviando correo de verificación..."
|
||||
msgid "Reset"
|
||||
msgstr "Restablecer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Reiniciar chat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Restablecer tu contraseña"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Restableciendo tu contraseña..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Asistente de IA para redimensionar"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Recursos"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Análisis del currículum finalizado."
|
||||
msgid "Resumes"
|
||||
msgstr "Currículums"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Se requiere revisión"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Propuestas revisadas"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Alinear a la derecha"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Seleccionar..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Auto alojamiento con Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Enviar correo para restablecer contraseña"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Enviando correo para restablecer contraseña..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Enviando solicitud"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Separador"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Una sola columna con una barra lateral y un diseño de cuadrícula limpi
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Una sola columna con un encabezado de entrada en línea de tres columnas (cargo - organización - punto); compacto y apto para ATS, muy adecuado para las convenciones asiáticas de currículum (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Currículum de una sola columna con encabezados de sección en mayúsculas y una línea superior de color primario en cada página; ideal para currículums de ejecutivos, consultores o empresas emergentes."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Una sola columna; pulido y serio para puestos sénior o de nivel empresarial."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Estadísticas"
|
||||
msgid "Stay"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Detener"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Puntos fuertes"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Color del texto"
|
||||
msgid "Thai"
|
||||
msgstr "Tailandés"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "La IA propuso un cambio que ya no se aplica a este currículum."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "La IA devolvió una propuesta que no se pudo previsualizar."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "La clave API se ha eliminado correctamente."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Después de eliminarla, la clave API ya no podrá acceder a tus datos. Esta acción no se puede deshacer."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "El asistente se detuvo antes de devolver la propuesta."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Este es un nombre compatible con URL para tu currículum."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Esto puede tardar unos minutos, dependiendo de la respuesta del proveedor de IA. No cierres la ventana ni recargues la página."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Esta propuesta está desactualizada. Pídele al asistente que la actualice a partir del currículum más reciente."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Este currículum está bloqueado y no se puede actualizar."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Para eliminar tu cuenta, debes introducir el texto de confirmación y ha
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Alternar la barra lateral izquierda"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Alternar apilamiento de páginas"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ucraniano"
|
||||
msgid "Underline"
|
||||
msgstr "Subrayado"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Deshacer (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Currículums ilimitados"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Sí, Reactive Resume está disponible en varios idiomas. Puedes elegir tu idioma preferido en la página de configuración o usando el selector de idioma en la esquina superior derecha. Si no ves tu idioma o quieres mejorar las traducciones existentes, puedes <0>contribuir a las traducciones en Crowdin<1> (abrir en una nueva pestaña)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Sí. Todas las plantillas son totalmente personalizables. Puedes cambiar colores, fuentes, espaciado e incluso escribir CSS personalizado para tener un control total sobre la apariencia de tu currículum."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Sí. Reactive Resume es completamente gratuito, sin costes ocultos, niveles premium ni cuotas de suscripción. Es de código abierto y siempre será gratuito."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Tus datos se almacenan localmente"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Tus datos se almacenan de forma segura y nunca se comparten con terceros. También puedes auto alojar Reactive Resume en tus propios servidores para tener un control total sobre tus datos."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "No se pudieron guardar los últimos cambios."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fa\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Persian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# مورد} other {# مورد}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# نقش} other {# نقش}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} پیشنهادات بررسی شد"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "قطعاً! میتوانید رزومه خود را تنها با یک کلیک به PDF خروجی بگیرید. فایل PDF خروجی تمام قالببندی و سبکدهی شما را بهطور کامل حفظ میکند."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "پذیرفتن"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "همه را بپذیرید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "پیشنهاد پذیرفته شده"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "به رزومهها و دادههای خود از طریق API و بهصورت برنامهنویسی دسترسی داشته باشید."
|
||||
@@ -229,10 +246,38 @@ msgstr "افزودن ردیف قبل از این"
|
||||
msgid "Afrikaans"
|
||||
msgstr "آفریکانس"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "بعد از"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "ادغام هوش مصنوعی غیرفعال است"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "پیشنهاد هوش مصنوعی اعمال شد."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "پیشنهاد هوش مصنوعی رد شد."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "پیشنهادهای هوش مصنوعی اعمال شد."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "پیشنهادهای هوش مصنوعی رد شدند."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "دستیار رزومه هوش مصنوعی"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "آلبانیایی"
|
||||
@@ -367,10 +412,22 @@ msgstr "حوزهٔ تحصیل"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "هوش مصنوعی"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "درخواست تغییر هدفمند رزومه را بدهید..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "درخواست تغییر تدریجی"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "نسبت تصویر"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "درخواست دستیار ناموفق بود"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "مبانی"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "قالبهای زیبایی برای انتخاب، با موارد بیشتری که در راه هستند."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "قبل از"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "بنگالی"
|
||||
@@ -462,10 +523,6 @@ msgstr "فهرست نشانهدار"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "توسط جامعه، برای جامعه."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "آیا میتوانم قالبها را شخصیسازی کنم؟"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "آیا میتوانم رزومهام را به PDF خروجی بگیرم؟"
|
||||
@@ -576,6 +633,14 @@ msgstr "شفاف"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "برای انتخاب فایل برای وارد کردن، اینجا کلیک کنید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "بستن"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "دستیار هوش مصنوعی را ببندید"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "بلوک کد"
|
||||
@@ -622,6 +687,10 @@ msgstr "تأیید"
|
||||
msgid "Connect"
|
||||
msgstr "اتصال"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "قبل از استفاده از پیشنهادهای ویرایش رزومه، به یک ارائهدهنده هوش مصنوعی متصل شوید و آن را تأیید کنید."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "این کلید مخفی را کپی کنید و برای دسترسی
|
||||
msgid "Copy URL"
|
||||
msgstr "کپی URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "نتوانستم پیشنهاد هوش مصنوعی را اعمال کنم."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "قطع اتصال"
|
||||
msgid "Discord"
|
||||
msgstr "دیسکورد"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "رد کردن"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "مستندات"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "حساب ندارید؟ <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "اهدا کنید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "به Reactive Resume دونیت کنید"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "فعالسازی ورود دو مرحلهای"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "فعالسازی قابلیتهای هوش مصنوعی"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "ادغام هوش مصنوعی را فعال کنید"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "فعالسازی احراز هویت دو مرحلهای"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "هرچیزی که اینجا وارد میکنید بهصورت م
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "همهچیزی که برای ایجاد، شخصیسازی و اشتراکگذاری رزومههای حرفهای نیاز دارید. با تمرکز بر حریم خصوصی ساخته شده، با متنباز قدرت گرفته و برای همیشه کاملاً رایگان است."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "مثالها: خلاصه را بازنویسی کنید، یک بخش مربوط به تجربیات را محدودتر کنید، معیارها را اضافه کنید، یا رزومه را با شرح شغل تطبیق دهید."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "خروج از حالت تمامصفحه"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "گذرواژهٔ خود را فراموش کردهاید؟"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "فرمت"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "فرمت"
|
||||
msgid "Free"
|
||||
msgstr "رایگان"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "فرم آزاد"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "فرانسوی"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "مایکروسافت ورد"
|
||||
msgid "Model"
|
||||
msgstr "مدل"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "اقدامات پیشنهادی بیشتر"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "انتقال به"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "باید با https:// شروع شود."
|
||||
msgid "Name"
|
||||
msgstr "نام"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "نیاز به بررسی دارد"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "نپالی"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "گذرواژهٔ جدید"
|
||||
msgid "New Section"
|
||||
msgstr "بخش جدید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "بعدی"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "بدون تبلیغات، بدون رهگیری"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "نگهداری مداوم"
|
||||
msgid "Open"
|
||||
msgstr "باز کردن"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "دستیار هوش مصنوعی را باز کنید"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "باز کردن کلاینت ایمیل"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "ادغامهای باز"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "تنظیمات یکپارچهسازی را باز کنید"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "لطفاً گذرواژهای را که صاحب رزومه با شم
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "لطفاً URL مورد نظر برای لینک دادن را وارد کنید:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "لطفا از پروژه حمایت کنید"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "موقعیت شغلی"
|
||||
msgid "Preferences"
|
||||
msgstr "ترجیحات"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "آمادهسازی تغییرات"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "پیشتنظیمها"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "برای افزودن یا ذخیره کلمه کلیدی فعلی <0>{R
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "برای باز کردن <0>Enter را</0> فشار دهید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "قبلی"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "رنگ اصلی"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "نوار پیشرفت"
|
||||
msgid "Projects"
|
||||
msgstr "پروژهها"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "پیشنهاد {0} از {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "از رزومه خود در برابر دسترسی غیرمجاز با گذرواژه محافظت کنید"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "انتشارها"
|
||||
msgid "Publisher"
|
||||
msgstr "منتشرکننده"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "وصله خام JSON"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - رفتن به صفحهٔ اصلی"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume یک پروژهٔ رایگان و متنباز است
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume یک رزومهساز رایگان و متنباز است که فرایند ایجاد، بهروزرسانی و اشتراکگذاری رزومه شما را ساده میکند."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "رزومه واکنشی رایگان و متنباز است. اگر به شما کمک کرده است، لطفاً کمک مالی را در نظر بگیرید."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume متنباز، حریمخصوصیمحور و کاملاً رایگان است. برخلاف سایر رزومهسازها، هیچ تبلیغی نشان نمیدهد، دادههای شما را رهگیری نمیکند و قابلیتهایتان را پشت دیوار پرداخت محدود نمیکند."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "مستطیل"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "مستطیل (تمامعرض)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "انجام دوباره (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "تازهسازی"
|
||||
msgid "Register New Device"
|
||||
msgstr "ثبت دستگاه جدید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "رد کردن"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "همه را رد کنید"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "پیشنهاد رد شده"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "رمز عبور را به خاطر دارید؟ <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "در حال ارسال دوباره ایمیل تأیید..."
|
||||
msgid "Reset"
|
||||
msgstr "ریست"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "تنظیم مجدد چت"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "تنظیم مجدد گذرواژهٔ شما"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "در حال تنظیم مجدد گذرواژه شما..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "تغییر اندازه دستیار هوش مصنوعی"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "منابع"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "تحلیل رزومه کامل شد."
|
||||
msgid "Resumes"
|
||||
msgstr "رزومهها"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "بررسی مورد نیاز"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "پیشنهادهای بررسی شده"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "تراز راست"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "انتخاب..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "میزبانی خودکار با Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "ارسال"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "ارسال ایمیل تنظیم مجدد گذرواژه"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "در حال ارسال ایمیل تنظیم مجدد گذرواژه..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "ارسال درخواست"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "جداکننده"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "تکستونه با نوار کناری و چیدمان شبکها
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "یکستونی با سربرگ ورودی سهستونی در یک خط (موقعیت · سازمان · دوره)؛ فشرده و سازگار با ATS، مناسب برای هنجارهای رزومه آسیایی (چین/ژاپن/کره)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "تک ستونی با سرتیترهای بخشها با حروف بزرگ و یک خط با رنگ اصلی در بالای هر صفحه؛ مناسب برای رزومههای مدیریتی، مشاورهای یا استارتاپی."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "تکستونه؛ صیقلخورده و جدی برای موقعیتهای ارشد یا سطح سازمانی."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "آمارها"
|
||||
msgid "Stay"
|
||||
msgstr "ماندن"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "توقف"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "نقاط قوت"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "رنگ متن"
|
||||
msgid "Thai"
|
||||
msgstr "تایلندی"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "هوش مصنوعی تغییری را پیشنهاد داد که دیگر در مورد این رزومه اعمال نمیشود."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "هوش مصنوعی پیشنهادی را برگرداند که قابل پیشنمایش نبود."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "کلید API با موفقیت حذف شد."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "پس از حذف، این کلید API دیگر قادر به دسترسی به دادههای شما نخواهد بود. این عمل قابل بازگشت نیست."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "دستیار قبل از اینکه پیشنهادی را برگرداند، مکث کرد."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "این یک نام مناسب برای URLِ رزومه شما است."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "این کار ممکن است چند دقیقه طول بکشد، بسته به پاسخ ارائهدهندهٔ هوش مصنوعی. لطفاً پنجره را نبندید یا صفحه را تازهسازی نکنید."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "این پیشنهاد قدیمی است. از دستیار بخواهید آن را از آخرین رزومه بازسازی کند."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "این رزومه قفل شده و قابل بهروزرسانی نیست."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "برای حذف حساب خود، باید متن تأیید را وار
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "جابهجایی نوار کناری سمت چپ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "تغییر وضعیت چیدمان صفحات"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "اوکراینی"
|
||||
msgid "Underline"
|
||||
msgstr "زیرخط"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "واگردانی (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "رزومههای نامحدود"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "ایکس (توییتر)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "بله، Reactive Resume در چندین زبان در دسترس است. میتوانید زبان دلخواه خود را در صفحهٔ تنظیمات یا با استفاده از تعویضکنندهٔ زبان در گوشهٔ بالا سمت راست انتخاب کنید. اگر زبان خود را نمیبینید یا میخواهید ترجمههای موجود را بهبود دهید، میتوانید <0>در ترجمهها روی Crowdin مشارکت کنید<1> (در زبانهٔ جدید باز میشود)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "بله! هر قالب کاملاً قابلسفارشیسازی است. میتوانید رنگها، فونتها، فواصل و حتی CSS سفارشی برای کنترل کامل ظاهر رزومه خود بنویسید."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "بله! Reactive Resume کاملاً رایگان است، بدون هزینهٔ پنهان، پلن پریمیوم یا حق اشتراک. این پروژه متنباز است و برای همیشه رایگان میماند."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "دادههای شما بهصورت محلی ذخیره میشو
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "دادههای شما بهطور ایمن ذخیره شده و هرگز با اشخاص ثالث به اشتراک گذاشته نمیشوند. همچنین میتوانید Reactive Resume را روی سرورهای خود میزبانی کنید تا کنترل کامل بر دادههای خود داشته باشید."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "آخرین تغییرات شما ذخیره نشد."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fi\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Finnish\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# kohde} other {# kohdetta}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# rooli} other {# roolia}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} ehdotuksia tarkistettu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Ehdottomasti! Voit viedä ansioluettelosi PDF-muotoon yhdellä klikkauksella. Viety PDF säilyttää kaiken muotoilun ja tyylin täydellisesti."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Hyväksyä"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Hyväksy kaikki"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Hyväksytty ehdotus"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Käytä ansioluetteloitasi ja tietojasi ohjelmallisesti rajapinnan (API:n) kautta."
|
||||
@@ -229,10 +246,38 @@ msgstr "Lisää rivi ennen"
|
||||
msgid "Afrikaans"
|
||||
msgstr "afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Jälkeen"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Tekoälyintegraatio poistettu käytöstä"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Tekoälyehdotus sovellettu."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Tekoälyehdotus hylättiin."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Tekoälyehdotuksia sovellettu."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Tekoälyehdotukset hylättiin."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Tekoälyinen ansioluetteloavustaja"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "albania"
|
||||
@@ -367,10 +412,22 @@ msgstr "Opintoala"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Tekoäly"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Pyydä kohdennettua ansioluettelon muutosta..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Pyydä asteittaista muutosta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Kuvasuhde"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Assistant-pyyntö epäonnistui"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Perustiedot"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Kauniita mallipohjia, joista valita – ja lisää tulossa."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Ennen"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "bengali"
|
||||
@@ -462,10 +523,6 @@ msgstr "Luettelomerkkilista"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Yhteisöltä yhteisölle."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Voinko mukauttaa mallipohjia?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Voinko viedä ansioluetteloni PDF-muotoon?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Kirkas"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Napsauta tästä valitaksesi tuotavan tiedoston"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Sulje tekoälyavustaja"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Koodilohko"
|
||||
@@ -622,6 +687,10 @@ msgstr "Vahvista"
|
||||
msgid "Connect"
|
||||
msgstr "Yhdistä"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Yhdistä ja tarkista tekoälypalveluntarjoaja ennen ansioluettelon muokkausehdotusten käyttöä."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Kopioi tämä salainen avain ja käytä sitä sovelluksissasi tietojesi
|
||||
msgid "Copy URL"
|
||||
msgstr "Kopioi URL-osoite"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Tekoälyehdotusta ei voitu soveltaa."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Katkaise yhteys"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Hylkää"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentaatio"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Eikö sinulla ole tiliä? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Lahjoittaa"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Lahjoita Reactive Resumelle"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Ota 2FA käyttöön"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Ota tekoälyominaisuudet käyttöön"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Ota tekoälyintegraatio käyttöön"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Ota kaksivaiheinen todennus käyttöön"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Kaikki tähän syötetty tallennetaan paikallisesti selaimeesi. Tietosi
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Kaikki, mitä tarvitset ammattimaisen ansioluettelon luomiseen, mukauttamiseen ja jakamiseen. Rakennettu yksityisyys edellä, avoimen lähdekoodin voimin ja täysin ilmainen ikuisesti."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Esimerkkejä: kirjoita yhteenveto uudelleen, tiivistä yhtä kokemusta koskevaa luettelokohtaa, lisää mittareita tai mukauta ansioluettelo työpaikkailmoitukseen."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Poistu koko näytöstä"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Unohditko salasanasi?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Muoto"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Muoto"
|
||||
msgid "Free"
|
||||
msgstr "Ilmainen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Vapaamuotoinen"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "ranska"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Malli"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Lisää ehdotustoimintoja"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Siirrä"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Aloitettava osoitteesta https://"
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Tarvitsee tarkistuksen"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "nepali"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Uusi salasana"
|
||||
msgid "New Section"
|
||||
msgstr "Uusi osio"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Seuraava"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Ei mainoksia, ei seurantaa"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Jatkuva ylläpito"
|
||||
msgid "Open"
|
||||
msgstr "Avaa"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Avoin tekoälyavustaja"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Avaa sähköpostiohjelma"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Avoimet integraatiot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Avaa Integraatioiden asetukset"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Syötä ansioluettelon omistajan jakama salasana jatkaaksesi."
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Syötä linkitettävä URL-osoite:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Tue projektia"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Tehtävänimike"
|
||||
msgid "Preferences"
|
||||
msgstr "Asetukset"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Muutosten valmistelu"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Esiasetukset"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Paina <0>{RETURN_KEY}</0> tai <1>{COMMA_KEY}</1> lisätäksesi tai talle
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Paina <0>Enter</0> avataksesi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Edellinen"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Pääväri"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Edistymispalkki"
|
||||
msgid "Projects"
|
||||
msgstr "Projektit"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Ehdotus {0} / {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Suojaa ansioluettelosi luvattomalta käytöltä salasanalla"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Julkaisut"
|
||||
msgid "Publisher"
|
||||
msgstr "Julkaisija"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Raaka JSON-korjaus"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume – Siirry etusivulle"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin projekti, joka on te
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin ansioluettelon laatija, joka helpottaa ansioluettelon luomista, päivittämistä ja jakamista."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume on ilmainen ja avoimen lähdekoodin työkalu. Jos siitä on ollut sinulle apua, harkitse lahjoittamista."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume on avoimen lähdekoodin, yksityisyyteen keskittyvä ja täysin ilmainen. Toisin kuin monet muut ansioluettelon laatijat, se ei näytä mainoksia, seuraa tietojasi tai piilota ominaisuuksia maksumuurin taakse."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Suorakulmio"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Suorakulmio (täysi leveys)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Tee uudelleen (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Päivitä"
|
||||
msgid "Register New Device"
|
||||
msgstr "Rekisteröi uusi laite"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Hylätä"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Hylkää kaikki"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Hylätty ehdotus"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Muistatko salasanasi? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Lähetetään vahvistussähköpostia uudelleen..."
|
||||
msgid "Reset"
|
||||
msgstr "Palauta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Palauta keskustelu"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Palauta salasanasi"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Palautetaan salasanaasi..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Muuta tekoälyavustajaa"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Resurssit"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Ansioluettelon analyysi valmis."
|
||||
msgid "Resumes"
|
||||
msgstr "Ansioluettelot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Tarkistus vaaditaan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Tarkistetut ehdotukset"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Tasaa oikealle"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Valitse..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Itse-isännöinti Dockerilla"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Lähetä"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Lähetä salasanan palautussähköposti"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Lähetetään salasanan palautussähköpostia..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Lähetetään pyyntö"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Erotin"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Yksipalstainen, sivupalkilla ja selkeällä ruudukkoasettelulla; monipuo
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Yksisarakkeinen, riviin sijoitettu kolmisarakkeinen otsikko (asema - organisaatio - piste); kompakti ja ATS-ystävällinen, sopii hyvin aasialaisiin ansioluettelokäytäntöihin (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Yksipalstainen ansioluettelo, jossa isoilla kirjaimilla kirjoitetut osioiden otsikot ja päävärinen yläviiva jokaisella sivulla; viimeistelty johtajien, konsulttien tai startup-yritysten ansioluetteloihin."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Yksipalstainen; viimeistelty ja asiallinen kokeneille tai yritystason tehtäviin hakeville."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Tilastot"
|
||||
msgid "Stay"
|
||||
msgstr "Pysy"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Vahvuudet"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Tekstiväri"
|
||||
msgid "Thai"
|
||||
msgstr "thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Tekoäly ehdotti muutosta, joka ei enää koske tätä ansioluetteloa."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Tekoäly palautti ehdotuksen, jota ei voitu esikatsella."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API-avain on poistettu onnistuneesti."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API-avain ei voi enää käyttää tietojasi poistamisen jälkeen. Tätä toimintoa ei voi perua."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Avustaja pysähtyi ennen kuin palasi ehdotukseen."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Tämä on URL-ystävällinen nimi ansioluettelollesi."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Tämä voi kestää muutaman minuutin riippuen tekoälypalveluntarjoajan vasteesta. Älä sulje ikkunaa tai päivitä sivua."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Tämä ehdotus on vanhentunut. Pyydä avustajaa luomaan se uudelleen uusimmasta ansioluettelosta."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Tämä ansioluettelo on lukittu eikä sitä voi päivittää."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Poistaaksesi tilisi sinun täytyy syöttää vahvistusteksti ja napsautt
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Vaihda vasen sivupalkki"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Sivupinoamisen päälle/pois päältä"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "ukraina"
|
||||
msgid "Underline"
|
||||
msgstr "Alleviivaus"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Kumoa (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Rajoittamattomasti ansioluetteloita"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Kyllä, Reactive Resume on saatavilla useilla kielillä. Voit valita haluamasi kielen asetussivulla tai oikean yläkulman kielivalitsimesta. Jos et näe omaa kieltäsi tai haluat parantaa olemassa olevia käännöksiä, voit <0>osallistua käännöksiin Crowdinessa<1> (avautuu uuteen välilehteen)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Kyllä! Jokainen mallipohja on täysin muokattavissa. Voit vaihtaa värejä, fontteja, välistystä ja jopa kirjoittaa oman CSS:n täydellistä hallintaa varten ansioluettelosi ulkoasuun."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Kyllä! Reactive Resume on täysin ilmainen käyttää – ei piilokuluja, premium-tasoja tai tilausmaksuja. Se on avoimen lähdekoodin ja pysyy aina ilmaisena."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Tietosi tallennetaan paikallisesti"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Tietosi tallennetaan turvallisesti eikä niitä koskaan jaeta kolmansille osapuolille. Voit myös itseisännöidä Reactive Resumen omilla palvelimillasi täydellisen tietokontrollin takaamiseksi."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Viimeisimpiä muutoksiasi ei voitu tallentaa."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: fr\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: French\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# élément} other {# éléments}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# poste} other {# postes}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} propositions examinées"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Absolument ! Vous pouvez exporter votre CV au format PDF en un seul clic. Le PDF exporté conserve parfaitement toutes vos mises en forme et votre style."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Accepter"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Accepter tout"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Proposition acceptée"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Accédez à vos CVs et données par programme en utilisant l'API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Ajouter une ligne avant"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Après"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Intégration de l'IA désactivée"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Proposition d'IA appliquée."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Proposition d'IA rejetée."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Propositions d'IA appliquées."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Les propositions concernant l'IA ont été rejetées."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Assistant CV IA"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanais"
|
||||
@@ -367,10 +412,22 @@ msgstr "Domaine d'étude"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Intelligence artificielle"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Demandez une modification ciblée de votre CV..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Demandez un changement progressif"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Format d'image"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "La requête d'assistance a échoué"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Infos de base"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Vous avez le choix parmi de magnifiques modèles, et d'autres sont en cours d'élaboration."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Avant"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengali"
|
||||
@@ -462,10 +523,6 @@ msgstr "Liste à puces"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Par la communauté, pour la communauté."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Puis-je personnaliser les modèles ?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Puis-je exporter mon CV au format PDF ?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Clair"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Cliquez ici pour sélectionner un fichier à importer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Assistant IA proche"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Bloc de code"
|
||||
@@ -622,6 +687,10 @@ msgstr "Confirmer"
|
||||
msgid "Connect"
|
||||
msgstr "Se connecter"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Connectez-vous avec un fournisseur d'IA et vérifiez-le avant d'utiliser ses propositions de modification de CV."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Copiez cette clé secrète et utilisez-la dans vos applications pour acc
|
||||
msgid "Copy URL"
|
||||
msgstr "Copier l'URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Impossible d'appliquer la proposition relative à l'IA."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Déconnecter"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Rejeter"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Documentation"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Vous n'avez pas de compte ? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Faire un don"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Faire un don à Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Activer 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Activer les fonctionnalités IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Activer l'intégration de l'IA"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Activer l'authentification à deux facteurs"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Tout ce qui est entré ici est stocké localement dans votre navigateur.
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Tout ce dont vous avez besoin pour créer, personnaliser et partager des CV professionnels. Construit dans le respect de la vie privée, propulsé par l'open source, et entièrement gratuit pour toujours."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Exemples : réécrire le résumé, raccourcir un point concernant une expérience, ajouter des indicateurs ou adapter le CV à une description de poste."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Quitter le mode plein écran"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Vous avez oublié votre mot de passe ?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Gratuit"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Forme libre"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Français"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modèle"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Autres propositions"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Déplacer vers"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Doit commencer par https://"
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Nécessite une révision"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Népalais"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Nouveau mot de passe"
|
||||
msgid "New Section"
|
||||
msgstr "Nouvelle section"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Pas de publicité, pas de suivi"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Maintenance en cours"
|
||||
msgid "Open"
|
||||
msgstr "Ouvrir"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Assistant Open AI"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Ouvrir le client de messagerie"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Intégrations ouvertes"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Ouvrez Integrations Settings"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Veuillez saisir le mot de passe qui vous a été communiqué par le prop
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Veuillez saisir l'URL vers laquelle vous souhaitez rediriger :"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Veuillez soutenir le projet"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Poste"
|
||||
msgid "Preferences"
|
||||
msgstr "Préférences"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Préparation des changements"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Préréglages"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Appuyez sur <0>{RETURN_KEY}</0> ou sur <1>{COMMA_KEY}</1> pour ajouter o
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Appuyez sur <0>Entrée</0> pour ouvrir"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Couleur principale"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Barre de progression"
|
||||
msgid "Projects"
|
||||
msgstr "Projets"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Proposition {0} de {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Protégez votre CV contre tout accès non autorisé à l'aide d'un mot de passe"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publications"
|
||||
msgid "Publisher"
|
||||
msgstr "Éditeur"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Patch JSON brut"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Aller à la page d'accueil"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume est un projet libre et gratuit, construit avec amour et
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume est un outil de création de CV gratuit et open-source qui simplifie le processus de création, de mise à jour et de partage de votre CV."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume est un logiciel libre et gratuit. S'il vous a été utile, n'hésitez pas à faire un don."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume est un logiciel libre, respectueux de la vie privée et entièrement gratuit. Contrairement à d'autres outils de création de CV, il n'affiche pas de publicité, ne suit pas vos données et ne limite pas vos fonctionnalités derrière un mur payant."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rectangle"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rectangle (pleine largeur)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Rétablir (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Actualiser"
|
||||
msgid "Register New Device"
|
||||
msgstr "Enregistrer un nouveau dispositif"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Rejeter"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Tout refuser"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Proposition rejetée"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Vous vous souvenez de votre mot de passe ? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Renvoi de l'e-mail de vérification..."
|
||||
msgid "Reset"
|
||||
msgstr "Réinitialiser"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Réinitialiser le chat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Réinitialisez votre mot de passe"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Réinitialisation de votre mot de passe..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Assistant IA de redimensionnement"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Ressources"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "L'analyse du curriculum vitae est terminée."
|
||||
msgid "Resumes"
|
||||
msgstr "CVs"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Examen requis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Propositions examinées"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Alignement à droite"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Sélectionner..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Auto-hébergement avec Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Envoyer"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Envoyer un e-mail de réinitialisation du mot de passe"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Envoi de l'e-mail de réinitialisation du mot de passe..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Envoi de la requête"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Séparateur"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Une seule colonne avec un encart et une disposition en grille propre ; p
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Colonne unique avec un en-tête d'entrée en ligne sur trois colonnes (poste - organisation - point) ; compact et adapté aux ATS, bien adapté aux conventions asiatiques en matière de curriculum vitae (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Une seule colonne avec des titres de section en majuscules et une ligne supérieure de couleur primaire sur chaque page ; une présentation soignée pour les CV de cadres, de consultants ou de startups."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Colonne unique ; soigné et sérieux pour les postes de seniors ou de direction."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistiques"
|
||||
msgid "Stay"
|
||||
msgstr "Rester"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Arrêt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Points forts"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Couleur du texte"
|
||||
msgid "Thai"
|
||||
msgstr "Thaïlandais"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "L'IA a proposé une modification qui ne s'applique plus à ce CV."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "L'IA a renvoyé une proposition qui n'a pas pu être prévisualisée."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "La clé API a été supprimée avec succès."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "La clé API ne pourra plus accéder à vos données après la suppression. Cette action ne peut pas être annulée."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "L'assistant s'est arrêté avant de renvoyer une proposition."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Il s'agit d'un nom convivial pour l'URL de votre CV."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Cela peut prendre quelques minutes, en fonction de la réponse du fournisseur d'IA. Ne fermez pas la fenêtre et n'actualisez pas la page."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Cette proposition est obsolète. Demandez à l'assistant de la régénérer à partir du CV le plus récent."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Ce CV est verrouillé et ne peut pas être modifié."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Pour supprimer votre compte, vous devez saisir le texte de confirmation
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Barre latérale gauche"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Basculer l'empilement des pages"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrainien"
|
||||
msgid "Underline"
|
||||
msgstr "Souligner"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Annuler (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "CVs illimités"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Oui, Reactive Resume est disponible en plusieurs langues. Vous pouvez choisir votre langue préférée dans la page des paramètres, ou en utilisant le sélecteur de langue dans le coin supérieur droit. Si vous ne voyez pas votre langue, ou si vous souhaitez améliorer les traductions existantes, vous pouvez <0>contribuer aux traductions sur Crowdin<1> (s'ouvre dans un nouvel onglet)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Oui ! Chaque modèle est entièrement personnalisable. Vous pouvez modifier les couleurs, les polices, l'espacement et même écrire des feuilles de style CSS personnalisées pour un contrôle total de l'apparence de votre CV."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Oui ! Reactive Resume est entièrement gratuit, sans frais cachés, ni droits d'entrée, ni frais d'abonnement. Il est open-source et restera toujours gratuit."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Vos données sont stockées localement"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Vos données sont stockées en toute sécurité et ne sont jamais partagées avec des tiers. Vous pouvez également héberger Reactive Resume sur vos propres serveurs pour un contrôle total de vos données."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Vos dernières modifications n'ont pas pu être enregistrées."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: he\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hebrew\n"
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# פריט} two {# פריטים} many {# פריטים}
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# תפקיד} other {# תפקידים}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} הצעות שנבדקו"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "בהחלט! אפשר לייצא את קורות החיים שלך ל־PDF בלחיצה אחת. קובץ ה־PDF המיוצא שומר בצורה מושלמת על כל העיצוב והסגנון שלך."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "לְקַבֵּל"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "קבלו את הכל"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "הצעה שהתקבלה"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "גש לקורות החיים ולנתונים שלך באופן תכנותי באמצעות ה־API."
|
||||
@@ -229,10 +246,38 @@ msgstr "הוספת שורה לפני"
|
||||
msgid "Afrikaans"
|
||||
msgstr "אפריקאנס"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "לְאַחַר"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "בינה מלאכותית"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "שילוב בינה מלאכותית מושבת"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "הצעת בינה מלאכותית יושמה."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "הצעת בינה מלאכותית נדחתה."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "הצעות בינה מלאכותית יושמו."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "הצעות בתחום הבינה המלאכותית נדחו."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "עוזר קורות חיים של בינה מלאכותית"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "אלבנית"
|
||||
@@ -367,10 +412,22 @@ msgstr "תחום לימודים"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "בינה מלאכותית"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "בקשו שינוי ממוקד בקורות חיים..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "בקשו שינוי הדרגתי"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "יחס גובה־רוחב"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "בקשת העוזר נכשלה"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "פרטים בסיסיים"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "תבניות יפות לבחירה, ועוד תבניות בדרך."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "לִפנֵי"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "בנגלית"
|
||||
@@ -462,10 +523,6 @@ msgstr "רשימת תבליטים"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "על ידי הקהילה ועבורה."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "האם אפשר להתאים אישית את התבניות?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "האם אפשר לייצא את קורות החיים שלי ל־PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "נקה"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "לחץ כאן כדי לבחור קובץ לייבוא"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "סגור"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "סגור את עוזר הבינה המלאכותית"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "בלוק קוד"
|
||||
@@ -622,6 +687,10 @@ msgstr "אישור"
|
||||
msgid "Connect"
|
||||
msgstr "חיבור"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "התחברו ואמתו ספק בינה מלאכותית לפני השימוש בהצעות עריכת קורות חיים."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "העתק את המפתח הסודי הזה והשתמש בו ביישו
|
||||
msgid "Copy URL"
|
||||
msgstr "העתקת כתובת"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "לא ניתן היה ליישם את הצעת הבינה המלאכותית."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "ניתוק"
|
||||
msgid "Discord"
|
||||
msgstr "דיסקורד"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "לְפַטֵר"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "תיעוד"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "אין לך חשבון? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "לִתְרוֹם"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "תרומה ל־Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "הפעלת אימות דו־שלבי"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "הפעלת יכולות בינה מלאכותית"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "הפעלת שילוב בינה מלאכותית"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "הפעלת אימות דו־שלבי"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "הכול שאתה מזין כאן נשמר מקומית בדפדפן ש
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "כל מה שצריך כדי ליצור, להתאים אישית ולשתף קורות חיים מקצועיים. נבנה עם דגש על פרטיות, מונע בקוד פתוח וחינמי לחלוטין לנצח."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "דוגמאות: כתיבה מחדש של הסיכום, צמצום תבליט ניסיון אחד, הוספת מדדים או התאמת קורות החיים לתיאור תפקיד."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "יציאה ממסך מלא"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "שכחת את הסיסמה שלך?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "תבנית"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "תבנית"
|
||||
msgid "Free"
|
||||
msgstr "חינמי"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "צורה חופשית"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "צרפתית"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "מודל"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "פעולות נוספות של ההצעה"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "העברה אל"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "יש להתחיל ב-https://"
|
||||
msgid "Name"
|
||||
msgstr "שם"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "צריך בדיקה"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "נפאלית"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "סיסמה חדשה"
|
||||
msgid "New Section"
|
||||
msgstr "סעיף חדש"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "הבא"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "בלי פרסום, בלי מעקב"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "תחזוקה מתמשכת"
|
||||
msgid "Open"
|
||||
msgstr "פתיחה"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "פתח את עוזר הבינה המלאכותית"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "פתיחת תוכנת הדוא\"ל"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "אינטגרציות פתוחות"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "פתח את הגדרות האינטגרציות"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "נא להזין את הסיסמה ששיתף איתך בעל קורות
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "נא להזין את כתובת ה־URL שאליה ברצונך לקשר:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "אנא תמכו בפרויקט"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "תפקיד"
|
||||
msgid "Preferences"
|
||||
msgstr "העדפות"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "הכנת שינויים"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "הגדרות קבועות מראש"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "לחץ על <0>{RETURN_KEY}</0> או <1>{COMMA_KEY}</1> כדי להוס
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "לחץ על <0>Enter</0> כדי לפתוח"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "קודם"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "צבע עיקרי"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "פס התקדמות"
|
||||
msgid "Projects"
|
||||
msgstr "פרויקטים"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "הצעה {0} של {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "הגן על קורות החיים שלך מגישה לא מורשית באמצעות סיסמה"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "פרסומים"
|
||||
msgid "Publisher"
|
||||
msgstr "מוציא לאור"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "תיקון JSON גולמי"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - מעבר לדף הבית"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume הוא מיזם חינמי בקוד פתוח, שנבנה
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume הוא בונה קורות חיים חינמי בקוד פתוח שמפשט את תהליך יצירת, עדכון ושיתוף קורות החיים שלך."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "ריאקטיבי קורות חיים הם חינמיים ובקוד פתוח. אם זה עזר לך, אנא שקול לתרום."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume הוא בקוד פתוח, ממוקד פרטיות וחינמי לחלוטין. בניגוד לבוני קורות חיים אחרים, הוא לא מציג פרסומות, לא עוקב אחרי הנתונים שלך ולא נועל יכולות מאחורי חומת תשלום."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "מלבן"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "מלבן (רוחב מלא)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "בצע שוב (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "רענון"
|
||||
msgid "Register New Device"
|
||||
msgstr "הרשמת מכשיר חדש"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "לִדחוֹת"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "דחה את הכל"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "הצעה שנדחתה"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "זוכר את הסיסמה? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "שולח מחדש דוא\"ל אימות..."
|
||||
msgid "Reset"
|
||||
msgstr "איפוס"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "איפוס צ'אט"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "איפוס הסיסמה שלך"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "איפוס הסיסמה שלך..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "שינוי גודל של עוזר בינה מלאכותית"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "משאבים"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "ניתוח קורות החיים הושלם."
|
||||
msgid "Resumes"
|
||||
msgstr "מסמכי קורות חיים"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "נדרשת בדיקה"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "הצעות שנבדקו"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "יישור לימין"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "בחר..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "אירוח עצמי עם Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "לִשְׁלוֹחַ"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "שליחת דוא\"ל לאיפוס סיסמה"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "שולח דוא\"ל לאיפוס סיסמה..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "שולח בקשה"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "מפריד"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "עמודה אחת עם סרגל צד וגריד נקי; רב־שימוש
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "עמודה אחת עם כותרת כניסה משולבת בת שלוש עמודות (תפקיד · ארגון · תקופה); קומפקטי ומתאים לשיטת ATS, מתאים היטב למנהגי כתיבת קורות חיים באסיה (סין/יפן/קוריאה)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "עמודה אחת עם כותרות באותיות גדולות וקו עליון בצבע ראשי בכל עמוד; מלוטש לקורות חיים של מנהלים, ייעוץ או סטארט-אפים."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "עמודה אחת; מלוטש ורציני לתפקידים בכירים או ברמת ארגון."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "סטטיסטיקה"
|
||||
msgid "Stay"
|
||||
msgstr "הישאר"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "לְהַפְסִיק"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "נקודות חוזק"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "צבע כתב"
|
||||
msgid "Thai"
|
||||
msgstr "תאית"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "הבינה המלאכותית הציעה שינוי שכבר אינו חל על קורות חיים אלה."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "הבינה המלאכותית החזירה הצעה שלא ניתן היה לצפות בה בתצוגה מקדימה."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "מפתח ה־API נמחק בהצלחה."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "לאחר המחיקה מפתח ה־API לא יוכל יותר לגשת לנתונים שלך. לא ניתן לבטל פעולה זו."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "העוזר עצר לפני שהחזיר הצעה."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "זהו שם ידידותי לכתובת URL עבור קורות החיי
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "זה עלול לקחת כמה דקות, בהתאם לזמן התגובה של ספק הבינה המלאכותית. נא לא לסגור את החלון או לרענן את העמוד."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "הצעה זו מיושנת. בקש מהעוזר ליצור אותה מחדש מהקורות חיים האחרונים."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "קורות חיים אלה נעולים ולא ניתן לעדכן אותם."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "כדי למחוק את החשבון שלך, עליך להזין את ט
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "הפעל/כבה את הסרגל הצדדי השמאלי"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "הפעל/הפעל ערימת עמודים"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "אוקראינית"
|
||||
msgid "Underline"
|
||||
msgstr "קו תחתון"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "בטל (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "מסמכי קורות חיים ללא הגבלה"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "איקס (טוויטר)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "כן, Reactive Resume זמין במספר שפות. אפשר לבחור את השפה המועדפת עליך בעמוד ההגדרות או באמצעות מחליף השפה בפינה העליונה הימנית. אם אינך רואה את השפה שלך, או אם ברצונך לשפר את התרגומים הקיימים, אפשר <0>לתמוך בתרגומים ב־Crowdin<1> (נפתח בלשונית חדשה)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "כן! כל תבנית ניתנת להתאמה מלאה. אפשר לשנות צבעים, גופנים, ריווח, ואפילו לכתוב CSS מותאם אישית לשליטה מלאה במראה של קורות החיים שלך."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "כן! Reactive Resume חינמי לחלוטין לשימוש, בלי עלויות נסתרות, מדרגות פרימיום או דמי מנוי. הוא בקוד פתוח ותמיד יישאר חינמי."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "הנתונים שלך מאוחסנים באופן מקומי"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "הנתונים שלך מאוחסנים בצורה מאובטחת ולעולם אינם משותפים עם צדדים שלישיים. אפשר גם לארח את Reactive Resume בשרתים שלך כדי לשלוט לחלוטין בנתונים שלך."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "לא ניתן היה לשמור את השינויים האחרונים שלך."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: hi\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hindi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# आइटम} other {# आइटम}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# भूमिका} other {# भूमिकाएं}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} प्रस्तावों की समीक्षा की गई"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "ए4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "बिल्कुल! आप एक ही क्लिक में अपने रेज़्यूमे को PDF में एक्सपोर्ट कर सकते हैं। एक्सपोर्ट किया गया PDF आपके सभी फ़ॉर्मेटिंग और स्टाइलिंग को बिल्कुल सही बनाए रखता है।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "स्वीकार करना"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "सभी स्वीकृत"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "प्रस्ताव स्वीकृत"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "API का उपयोग करके अपने रेज़्यूमे और डेटा तक प्रोग्रामेटिक रूप से पहुँच प्राप्त करें।"
|
||||
@@ -229,10 +246,38 @@ msgstr "इसके पहले पंक्ति जोड़ें"
|
||||
msgid "Afrikaans"
|
||||
msgstr "अफ्रीकान्स"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "बाद"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "एआई एकीकरण अक्षम"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "एआई प्रस्ताव लागू किया गया।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "एआई का प्रस्ताव खारिज कर दिया गया।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "एआई संबंधी प्रस्ताव लागू किए गए।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "एआई से संबंधित प्रस्ताव खारिज कर दिए गए।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "एआई रिज्यूमे असिस्टेंट"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "अल्बानियाई"
|
||||
@@ -367,10 +412,22 @@ msgstr "अध्ययन का क्षेत्र"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "कृत्रिम बुद्धिमत्ता"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "अपने रिज्यूमे में लक्षित बदलाव करने का अनुरोध करें..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "क्रमिक परिवर्तन की मांग करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "आकार अनुपात"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "सहायक का अनुरोध विफल रहा"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "बुनियादी"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "सुंदर खाके जिनमें से चुन सकते हैं, और भी रास्ते में हैं।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "पहले"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "बंगाली"
|
||||
@@ -462,10 +523,6 @@ msgstr "बुलेट सूची"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "समुदाय द्वारा, समुदाय के लिए।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "क्या मैं खाकों को अनुकूलित कर सकता/सकती हूँ?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "क्या मैं अपना रेज़्यूमे PDF में एक्सपोर्ट कर सकता/सकती हूँ?"
|
||||
@@ -576,6 +633,14 @@ msgstr "स्पष्ट"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "इम्पोर्ट करने के लिए फ़ाइल चुनने हेतु यहाँ क्लिक करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "बंद करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "एआई सहायक को बंद करें"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "कोड ब्लॉक"
|
||||
@@ -622,6 +687,10 @@ msgstr "पुष्टि करें"
|
||||
msgid "Connect"
|
||||
msgstr "कनेक्ट करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "रिज्यूम एडिटिंग के प्रस्तावों का उपयोग करने से पहले किसी एआई प्रदाता से संपर्क करें और उसकी पुष्टि करें।"
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "इस सीक्रेट कुंजी को कॉपी कर
|
||||
msgid "Copy URL"
|
||||
msgstr "URL कॉपी करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "एआई प्रस्ताव लागू नहीं हो सका।"
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "डिसकनेक्ट करें"
|
||||
msgid "Discord"
|
||||
msgstr "डिस्कॉर्ड"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "नकार देना"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "आलेख"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "खाता नहीं है? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "दान करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "रिएक्टिव रेज़्यूमे के लिए दान करें"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA चालू करें"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "AI सुविधाएँ सक्षम करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "एआई एकीकरण को सक्षम करें"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "दो कारक प्रमाणीकरण सक्रिय करें"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "यहाँ दर्ज की गई हर चीज़ आपके
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "पेशेवर रेज़्यूमे बनाने, अनुकूलित करने और साझा करने के लिए आपको जो कुछ भी चाहिए। गोपनीयता को ध्यान में रखकर बनाया गया, ओपन‑सोर्स द्वारा संचालित और हमेशा के लिए पूरी तरह मुफ़्त।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "उदाहरण: सारांश को दोबारा लिखें, अनुभव से संबंधित किसी एक बिंदु को संक्षिप्त करें, मापदंड जोड़ें, या नौकरी के विवरण के अनुसार रिज्यूमे को अनुकूलित करें।"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "पूर्ण स्क्रीन से बाहर निकलें"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "पासवर्ड भूल गए हैं?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "फॉर्मेट"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "फॉर्मेट"
|
||||
msgid "Free"
|
||||
msgstr "मुफ़्त"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "मुफ्त फॉर्म"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "फ़्रेंच"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "माइक्रोसॉफ्ट वर्ड"
|
||||
msgid "Model"
|
||||
msgstr "मॉडल"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "अधिक प्रस्ताव कार्रवाइयां"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "स्थानांतरित करें"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "https:// से शुरू करना अनिवार्य ह
|
||||
msgid "Name"
|
||||
msgstr "नाम"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "समीक्षा की आवश्यकता है"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "नेपाली"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "नया पासवर्ड"
|
||||
msgid "New Section"
|
||||
msgstr "नया अनुभाग"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "अगला"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "कोई विज्ञापन नहीं, कोई ट्रैकिंग नहीं"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "निरंतर रखरखाव"
|
||||
msgid "Open"
|
||||
msgstr "खोलें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "ओपन एआई सहायक"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "ईमेल क्लाइंट खोलें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "ओपन इंटीग्रेशन"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "एकीकरण सेटिंग्स खोलें"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "आगे बढ़ने के लिए कृपया रेज़
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "कृपया वह URL दर्ज करें जिससे आप लिंक करना चाहते हैं:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "कृपया इस परियोजना का समर्थन करें।"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "पद"
|
||||
msgid "Preferences"
|
||||
msgstr "प्राथमिकताएँ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "बदलाव की तैयारी"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "पूर्वनिर्धारित सेटिंग्स"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "वर्तमान कीवर्ड जोड़ने या स
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "खोलने के लिए <0>Enter</0> दबाएँ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "पिछला"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "प्राथमिक रंग"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "प्रगति पट्टी"
|
||||
msgid "Projects"
|
||||
msgstr "प्रोजेक्ट्स"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "प्रस्ताव {0} का {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "अपने रेज़्यूमे को पासवर्ड से अनधिकृत एक्सेस से सुरक्षित रखें"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "प्रकाशन"
|
||||
msgid "Publisher"
|
||||
msgstr "प्रकाशक"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "रॉ JSON पैच"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - होमपेज पर जाएँ"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume एक मुफ़्त और ओपन‑सोर
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume एक मुफ़्त और ओपन‑सोर्स रेज़्यूमे बिल्डर है जो आपके रेज़्यूमे को बनाने, अपडेट करने और साझा करने की प्रक्रिया को सरल बनाता है।"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "रिएक्टिव रिज्यूम मुफ़्त और ओपन सोर्स है। अगर इससे आपको मदद मिली है, तो कृपया दान करने पर विचार करें।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume ओपन‑सोर्स, गोपनीयता‑केंद्रित और पूरी तरह मुफ़्त है। अन्य रेज़्यूमे बिल्डर के विपरीत, यह विज्ञापन नहीं दिखाता, आपका डेटा ट्रैक नहीं करता और न ही आपकी सुविधाओं को पेवॉल के पीछे सीमित करता है।"
|
||||
@@ -2362,11 +2500,6 @@ msgstr "आयत"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "आयत (पूर्ण चौड़ाई)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "रीडू (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "रिफ़्रेश"
|
||||
msgid "Register New Device"
|
||||
msgstr "नया डिवाइस पंजीकृत करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "अस्वीकार करना"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "सभी को अस्वीकार करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "प्रस्ताव अस्वीकृत कर दिया गया"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "अपना पासवर्ड याद है? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "सत्यापन ईमेल दोबारा भेजा ज
|
||||
msgid "Reset"
|
||||
msgstr "रीसेट"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "चैट रीसेट करें"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "अपना पासवर्ड रीसेट करें"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "आपका पासवर्ड रीसेट किया जा रहा है..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "आकार बदलने वाला एआई सहायक"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "संसाधन"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "रिज़्यूमे विश्लेषण पूरा हो
|
||||
msgid "Resumes"
|
||||
msgstr "रेज़्यूमे"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "समीक्षा आवश्यक है"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "समीक्षित प्रस्ताव"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "दाएँ संरेखित करें"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "चुनें..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "डॉकर के साथ स्व‑मेज़बान"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "भेजना"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "पासवर्ड रीसेट ईमेल भेजें"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "पासवर्ड रीसेट ईमेल भेजा जा रहा है..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "भेजने का अनुरोध"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "सेपरेटर"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "साइडबार और साफ़ ग्रिड लेआउ
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "एकल-स्तंभ, जिसमें इनलाइन तीन-स्तंभ प्रविष्टि शीर्षक (स्थिति · संगठन · अवधि) शामिल है; संक्षिप्त और ATS-अनुकूल, एशियाई रिज्यूमे परंपराओं (CN/JP/KR) के लिए उपयुक्त।"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "प्रत्येक पृष्ठ पर प्राथमिक रंग की शीर्ष रेखा के साथ बड़े अक्षरों में लिखे गए अनुभाग शीर्षकों वाला एकल-स्तंभ; कार्यकारी, परामर्शदाता या स्टार्टअप के रिज्यूमे के लिए उपयुक्त।"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "सिंगल‑कॉलम; वरिष्ठ या एंटरप्राइज़‑स्तरीय पदों के लिए परिष्कृत और गंभीर।"
|
||||
@@ -2809,6 +2982,10 @@ msgstr "आंकड़े"
|
||||
msgid "Stay"
|
||||
msgstr "रहें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "रुकना"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "ताकतें"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "अक्षरों का रंग"
|
||||
msgid "Thai"
|
||||
msgstr "थाई"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "एआई ने एक बदलाव का प्रस्ताव दिया था जो अब इस रिज्यूमे पर लागू नहीं होता है।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "एआई ने एक ऐसा प्रस्ताव प्रस्तुत किया जिसका पूर्वावलोकन नहीं किया जा सका।"
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API कुंजी सफलतापूर्वक हटा दी
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "हटाए जाने के बाद यह API कुंजी अब आपके डेटा तक पहुँच नहीं कर पाएगी। इस कार्रवाई को पूर्ववत नहीं किया जा सकता।"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "प्रस्ताव लौटाने से पहले सहायक रुक गया।"
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "यह आपके रेज़्यूमे के लिए एक
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "इसमें कुछ मिनट लग सकते हैं, यह AI प्रोवाइडर की प्रतिक्रिया पर निर्भर करता है। कृपया विंडो को बंद न करें या पेज रिफ़्रेश न करें।"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "यह प्रस्ताव पुराना हो चुका है। कृपया सहायक से नवीनतम रिज्यूमे से इसे पुनः तैयार करने का अनुरोध करें।"
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "यह रेज़्यूमे लॉक है और इसे अपडेट नहीं किया जा सकता।"
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "अपना खाता हटाने के लिए, आपको
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "बाएँ साइडबार को टॉगल करें"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "पेज स्टैकिंग को टॉगल करें"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "यूक्रेनी"
|
||||
msgid "Underline"
|
||||
msgstr "रेखांकित"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "पूर्ववत करें (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "असीमित रेज़्यूमे"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "एक्स (ट्विटर)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "हाँ, Reactive Resume कई भाषाओं में उपलब्ध है। आप सेटिंग्स पेज में, या ऊपर दाएँ कोने में भाषा स्विचर का उपयोग करके अपनी पसंदीदा भाषा चुन सकते हैं। यदि आपको अपनी भाषा नहीं दिखती, या आप मौजूदा अनुवादों में सुधार करना चाहते हैं, तो आप <0>Crowdin पर अनुवादों में योगदान दे सकते हैं<1> (नए टैब में खुलता है)</1></0>।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "हाँ! हर खाका पूरी तरह से कस्टमाइज़ेबल है। आप रंग, फ़ॉन्ट, स्पेसिंग बदल सकते हैं और यहाँ तक कि अपने रेज़्यूमे के लुक पर पूरा नियंत्रण पाने के लिए कस्टम CSS भी लिख सकते हैं।"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "हाँ! Reactive Resume का उपयोग पूरी तरह मुफ़्त है, बिना किसी छिपी हुई लागत, प्रीमियम टियर या सब्सक्रिप्शन फ़ीस के। यह ओपन‑सोर्स है और हमेशा मुफ़्त रहेगा।"
|
||||
@@ -3440,7 +3629,7 @@ msgstr "आपका डेटा लोकल रूप से संग्र
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "आपका डेटा सुरक्षित रूप से संग्रहीत है और कभी भी थर्ड पार्टियों के साथ साझा नहीं किया जाता। आप अपने सर्वर्स पर Reactive Resume को स्व‑होस्ट भी कर सकते हैं ताकि अपने डेटा पर पूर्ण नियंत्रण रख सकें।"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "आपके नवीनतम परिवर्तन सहेजे नहीं जा सके।"
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: hu\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elem} other {# elem}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# szerepkör} other {# szerepkör}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} javaslatok áttekintése"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Természetesen! Egy kattintással PDF‑be exportálhatod az önéletrajzodat. Az exportált PDF tökéletesen megőrzi az összes formázást és stílust."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Elfogadás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Összes elfogadása"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Elfogadott javaslat"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Férj hozzá az önéletrajzaidhoz és adataidhoz programozottan az API segítségével."
|
||||
@@ -229,10 +246,38 @@ msgstr "Sor hozzáadása fölé"
|
||||
msgid "Afrikaans"
|
||||
msgstr "afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Után"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI-integráció letiltva"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI-javaslat alkalmazva."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "A mesterséges intelligencia javaslatát elutasították."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Alkalmazott mesterséges intelligencia javaslatok."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "A mesterséges intelligencia javaslatait elutasították."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI önéletrajz asszisztens"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "albán"
|
||||
@@ -367,10 +412,22 @@ msgstr "Tanulmányok területe"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Mesterséges intelligencia"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Kérj célzott önéletrajz-módosítást..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Kérjen fokozatos változtatást"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Méretarány"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Asszisztensi kérelem sikertelen"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Alapadatok"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Választható, gyönyörű sablonok, és még több érkezik."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Előtt"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "bangla"
|
||||
@@ -462,10 +523,6 @@ msgstr "Felsorolásjelezett lista"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "A közösség által, a közösségért."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Testreszabhatom a sablonokat?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Exportálhatom az önéletrajzomat PDF‑be?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Tiszta"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Kattints ide az importálandó fájl kiválasztásához"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Bezárás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Bezárás AI asszisztens"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Kódblokk"
|
||||
@@ -622,6 +687,10 @@ msgstr "Megerősítés"
|
||||
msgid "Connect"
|
||||
msgstr "Csatlakozás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Csatlakoztasson és ellenőrizzen egy mesterséges intelligencia szolgáltatót az önéletrajz-szerkesztési javaslatok használata előtt."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Másold ki ezt a titkos kulcsot, és használd az alkalmazásaidban az a
|
||||
msgid "Copy URL"
|
||||
msgstr "URL másolása"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Nem sikerült alkalmazni a mesterséges intelligencia javaslatát."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Leválasztás"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Elvetés"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentáció"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Nincs fiókja? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Adományoz"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Adományozzon a Reactive Resume-nak"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA bekapcsolása"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "AI funkciók engedélyezése"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "AI-integráció engedélyezése"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Kétlépcsős hitelesítés engedélyezése"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Minden itt megadott adat helyben, a böngésződben kerül tárolásra.
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Minden, amire szükséged van professzionális önéletrajzok létrehozásához, testreszabásához és megosztásához. Adatvédelemre tervezve, nyílt forráskóddal működve és teljesen ingyen, örökre."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Példák: írja át az összefoglalót, szűkítse le a tapasztalati pontot, adjon hozzá mérőszámokat, vagy igazítsa az önéletrajzot egy munkaköri leíráshoz."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Kilépés a teljes képernyőből"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Elfelejtette a jelszavát?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formátum"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formátum"
|
||||
msgid "Free"
|
||||
msgstr "Ingyenes"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Szabad formátumú"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "francia"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modell"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "További javaslati műveletek"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Áthelyezés ide"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "A https:// címmel kell kezdeni."
|
||||
msgid "Name"
|
||||
msgstr "Név"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Felülvizsgálatra szorul"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "nepáli"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Új jelszó"
|
||||
msgid "New Section"
|
||||
msgstr "Új szekció"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Következő"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Nincs reklám, nincs követés"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Folyamatos karbantartás"
|
||||
msgid "Open"
|
||||
msgstr "Megnyitás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Nyílt AI asszisztens"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "E‑mail kliens megnyitása"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Nyílt integrációk"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Integrációk beállításainak megnyitása"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Kérjük, add meg a neked megosztott, az önéletrajz tulajdonosa által
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Kérjük, add meg a csatolni kívánt URL‑t:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Kérjük, támogassa a projektet"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Pozíció"
|
||||
msgid "Preferences"
|
||||
msgstr "Beállítások"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Változások előkészítése"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Előbeállítások"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Nyomja meg a <0>{RETURN_KEY}</0> vagy a <1>{COMMA_KEY}</1> gombot a jele
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Nyomja meg az <0>Entert</0> a megnyitáshoz"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Előző"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Elsődleges szín"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Folyamatjelző sáv"
|
||||
msgid "Projects"
|
||||
msgstr "Projektek"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "{0} javaslat {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Védd az önéletrajzodat a jogosulatlan hozzáféréstől jelszóval"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikációk"
|
||||
msgid "Publisher"
|
||||
msgstr "Kiadó"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Nyers JSON javítás"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume – Ugrás a kezdőlapra"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "A Reactive Resume egy ingyenes és nyílt forráskódú projekt, szerete
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "A Reactive Resume ingyenes és nyílt forráskódú önéletrajz készítő, amely leegyszerűsíti az önéletrajz készítésének, frissítésének és megosztásának folyamatát."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "A Reactive Resume ingyenes és nyílt forráskódú. Ha segített, kérjük, fontold meg az adományozást."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "A Reactive Resume nyílt forráskódú, adatvédelem‑központú és teljesen ingyenes. Más önéletrajz‑készítőkkel ellentétben nem jelenít meg hirdetéseket, nem követi az adataidat, és nem zár funkciókat fizetős fal mögé."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Téglalap"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Téglalap (teljes szélesség)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Újra (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Frissítés"
|
||||
msgid "Register New Device"
|
||||
msgstr "Új eszköz regisztrálása"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Elutasít"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Összes elutasítása"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Elutasított javaslat"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Emlékszik a jelszavára? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Megerősítő e‑mail újraküldése..."
|
||||
msgid "Reset"
|
||||
msgstr "Visszaállítás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Csevegés visszaállítása"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Jelszó visszaállítása"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Jelszó visszaállítása..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "AI asszisztens átméretezése"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Erőforrások"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Az önéletrajzelemzés befejeződött."
|
||||
msgid "Resumes"
|
||||
msgstr "Önéletrajzok"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Felülvizsgálat szükséges"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Felülvizsgált javaslatok"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Jobbra igazítás"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Kiválasztás..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Önálló hosztolás Dockerrel"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Elküld"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Jelszó‑visszaállító e‑mail küldése"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Jelszó‑visszaállító e‑mail küldése..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Kérés küldése"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Elválasztó"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Egyoszlopos elrendezés oldalsávval és rendezett rácsszerkezettel; so
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Egyoszlopos, sorba illesztett háromoszlopos belépési fejléccel (pozíció - szervezet - pont); kompakt és ATS-barát, jól illeszkedik az ázsiai önéletrajzok konvencióihoz (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Egyhasábos, nagybetűs szakaszcímekkel és minden oldalon alapszínű felső vonallal; kifinomult vezetői, tanácsadói vagy startup önéletrajzokhoz."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Egyoszlopos; kifinomult és komoly, vezetői vagy vállalati szintű pozíciókhoz."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statisztikák"
|
||||
msgid "Stay"
|
||||
msgstr "Maradás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Erősségek"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Szövegszín"
|
||||
msgid "Thai"
|
||||
msgstr "thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "A mesterséges intelligencia egy olyan módosítást javasolt, amely már nem vonatkozik erre az önéletrajzra."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "A mesterséges intelligencia egy olyan javaslatot adott vissza, amelynek az előnézete nem volt megtekinthető."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "Az API kulcsot sikeresen töröltük."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Az API kulcs törlése után többé nem fér hozzá az adataidhoz. Ez a művelet nem vonható vissza."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Az asszisztens megállt, mielőtt válaszolt volna egy javaslatra."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Ez az önéletrajzod URL‑barát neve."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Ez néhány percet igénybe vehet, az AI szolgáltató válaszidejétől függően. Kérjük, ne zárd be az ablakot, és ne frissítsd az oldalt."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Ez az ajánlat elavult. Kérje meg az asszisztenst, hogy generálja újra a legutóbbi önéletrajzból."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Ez az önéletrajz zárolva van, és nem frissíthető."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "A fiókod törléséhez add meg a megerősítő szöveget, majd kattints
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Bal oldalsáv átkapcsolása"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Oldalhalmozás be-/kikapcsolása"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "ukrán"
|
||||
msgid "Underline"
|
||||
msgstr "Aláhúzás"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Visszavonás (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Korlátlan önéletrajz"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Igen, a Reactive Resume több nyelven is elérhető. A beállítások oldalon választhatod ki a kívánt nyelvet, vagy a jobb felső sarokban található nyelvváltó segítségével. Ha nem látod a saját nyelvedet, vagy szeretnél javítani a meglévő fordításokon, <0>közreműködhetsz a fordításokban a Crowdin‑on<1> (új lapon nyílik meg)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Igen! Minden sablon teljesen testreszabható. Módosíthatod a színeket, betűtípusokat, térközöket, és akár egyéni CSS‑t is írhatsz, hogy teljes mértékben irányítsd az önéletrajzod megjelenését."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Igen! A Reactive Resume teljesen ingyenesen használható, rejtett költségek, prémium szintek vagy előfizetési díjak nélkül. Nyílt forráskódú, és mindig ingyenes marad."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Az adataid helyben tárolódnak"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Az adataid biztonságosan tároljuk, és soha nem osztjuk meg harmadik felekkel. A Reactive Resume‑t saját szervereiden is hosztolhatod, hogy teljes kontrollod legyen az adataid felett."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "A legutóbbi módosításokat nem sikerült menteni."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: id\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# item}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# peran} other {# peran}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} proposal ditinjau"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Tentu saja! Anda dapat mengekspor resume Anda ke PDF hanya dengan satu klik. PDF yang diekspor mempertahankan semua pemformatan dan gaya Anda dengan sempurna."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Menerima"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Terima semua"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Proposal diterima"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Akses resume dan data Anda secara terprogram menggunakan API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Tambah Baris Sebelum"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Setelah"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "Kecerdasan Buatan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Integrasi AI dinonaktifkan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Proposal AI telah diterapkan."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Proposal AI ditolak."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Proposal AI diterapkan."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Proposal AI ditolak."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Asisten Resume AI"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albania"
|
||||
@@ -367,10 +412,22 @@ msgstr "Bidang Studi"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Kecerdasan Buatan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Minta perubahan resume yang spesifik..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Mintalah perubahan bertahap."
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Rasio Aspek"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Permintaan asisten gagal."
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Dasar"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Template indah untuk dipilih, dengan lebih banyak lagi yang akan datang."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Sebelum"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengali"
|
||||
@@ -462,10 +523,6 @@ msgstr "Daftar Poin"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Oleh komunitas, untuk komunitas."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Bisakah saya menyesuaikan template?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Bisakah saya mengekspor resume saya ke PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Jelas"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Klik di sini untuk memilih file yang akan diimpor"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Tutup"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Tutup asisten AI"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Blok Kode"
|
||||
@@ -622,6 +687,10 @@ msgstr "Konfirmasi"
|
||||
msgid "Connect"
|
||||
msgstr "Hubungkan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Hubungi dan verifikasi penyedia AI sebelum menggunakan proposal pengeditan resume."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Salin kunci rahasia ini dan gunakan di aplikasi Anda untuk mengakses dat
|
||||
msgid "Copy URL"
|
||||
msgstr "Salin URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Proposal AI tidak dapat diterapkan."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Putuskan"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Membubarkan"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentasi"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Belum punya akun? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Menyumbangkan"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Donasi ke Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Aktifkan 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Aktifkan Fitur AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Aktifkan integrasi AI"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Aktifkan Autentikasi Dua Faktor"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Semua yang dimasukkan di sini disimpan secara lokal di browser Anda. Dat
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Segala yang Anda butuhkan untuk membuat, menyesuaikan, dan membagikan resume profesional. Dibangun dengan mengutamakan privasi, didukung oleh sumber terbuka, dan sepenuhnya gratis selamanya."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Contoh: tulis ulang ringkasan, ringkas salah satu poin pengalaman, tambahkan metrik, atau sesuaikan resume dengan deskripsi pekerjaan."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Keluar dari Layar Penuh"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Lupa kata sandi Anda?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Format"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Format"
|
||||
msgid "Free"
|
||||
msgstr "Gratis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Bentuk bebas"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Prancis"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Tindakan proposal lainnya"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Pindahkan ke"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Harus dimulai dengan https://"
|
||||
msgid "Name"
|
||||
msgstr "Nama"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Perlu ditinjau ulang"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepali"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Kata Sandi Baru"
|
||||
msgid "New Section"
|
||||
msgstr "Bagian Baru"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Berikutnya"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Tanpa Iklan, Tanpa Pelacakan"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Pemeliharaan Berkelanjutan"
|
||||
msgid "Open"
|
||||
msgstr "Buka"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Asisten AI terbuka"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Buka Klien Email"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Integrasi Terbuka"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Buka Pengaturan Integrasi"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Silakan masukkan kata sandi yang dibagikan kepada Anda oleh pemilik resu
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Silakan masukkan URL yang ingin Anda tautkan:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Mohon dukung proyek ini."
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Posisi"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferensi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Mempersiapkan perubahan"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Preset"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Tekan <0>{RETURN_KEY}</0> atau <1>{COMMA_KEY}</1> untuk menambah atau me
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Tekan <0>Enter</0> untuk membuka"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Sebelumnya"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Warna Utama"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Bilah Progres"
|
||||
msgid "Projects"
|
||||
msgstr "Proyek"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Proposal {0} dari {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Lindungi resume Anda dari akses tidak sah dengan kata sandi"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikasi"
|
||||
msgid "Publisher"
|
||||
msgstr "Penerbit"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Patch JSON mentah"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Pergi ke beranda"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume adalah proyek gratis dan sumber terbuka, dibuat dengan c
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume adalah pembuat resume gratis dan sumber terbuka yang menyederhanakan proses membuat, memperbarui, dan membagikan resume Anda."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume gratis dan bersifat open source. Jika aplikasi ini bermanfaat bagi Anda, mohon pertimbangkan untuk berdonasi."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume bersifat sumber terbuka, berfokus pada privasi, dan sepenuhnya gratis. Tidak seperti pembuat resume lainnya, aplikasi ini tidak menampilkan iklan, melacak data Anda, atau membatasi fitur di balik paywall."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Persegi Panjang"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Persegi Panjang (Lebar Penuh)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Ulangi (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Muat Ulang"
|
||||
msgid "Register New Device"
|
||||
msgstr "Daftarkan Perangkat Baru"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Menolak"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Tolak semuanya"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Proposal ditolak"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Ingat kata sandi Anda? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Mengirim ulang email verifikasi..."
|
||||
msgid "Reset"
|
||||
msgstr "Atur Ulang"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Atur ulang obrolan"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Atur ulang kata sandi Anda"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Mengatur ulang kata sandi Anda..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Asisten AI pengubah ukuran"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Sumber Daya"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Lanjutkan analisis hingga selesai."
|
||||
msgid "Resumes"
|
||||
msgstr "Resume"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Diperlukan peninjauan."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Proposal yang ditinjau"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Rata Kanan"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Pilih..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Self-Host dengan Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Mengirim"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Kirim Email Atur Ulang Kata Sandi"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Mengirim email atur ulang kata sandi..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Mengirim permintaan"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Pemisah"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Satu kolom dengan bilah sisi dan tata letak grid bersih; serbaguna untuk
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Kolom tunggal dengan tajuk entri tiga kolom sebaris (posisi - organisasi - periode); ringkas dan ramah ATS, cocok untuk konvensi resume Asia (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Tata letak satu kolom dengan judul bagian huruf kapital dan garis atas berwarna dasar di setiap halaman; dirancang untuk resume eksekutif, konsultan, atau perusahaan rintisan."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Satu kolom; rapi dan serius untuk posisi tingkat senior atau level perusahaan."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistik"
|
||||
msgid "Stay"
|
||||
msgstr "Tetap"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Berhenti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Kekuatan"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Warna Teks"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "AI tersebut mengusulkan perubahan yang tidak lagi berlaku untuk resume ini."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "AI tersebut memberikan proposal yang tidak dapat dipratinjau."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API key telah berhasil dihapus."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API key tidak akan lagi dapat mengakses data Anda setelah dihapus. Tindakan ini tidak dapat dibatalkan."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Asisten itu berhenti sebelum mengembalikan proposal tersebut."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Ini adalah nama yang ramah URL untuk resume Anda."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Ini mungkin memakan waktu beberapa menit, tergantung respons penyedia AI. Harap jangan menutup jendela atau memuat ulang halaman."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Proposal ini sudah kadaluarsa. Mintalah asisten untuk membuatnya ulang dari resume terbaru."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Resume ini dikunci dan tidak dapat diperbarui."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Untuk menghapus akun Anda, Anda perlu memasukkan teks konfirmasi dan kli
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Beralih ke bilah sisi kiri"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Alihkan penumpukan halaman"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukraina"
|
||||
msgid "Underline"
|
||||
msgstr "Garis Bawah"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Batalkan (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Resume Tak Terbatas"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Ya, Reactive Resume tersedia dalam banyak bahasa. Anda dapat memilih bahasa pilihan Anda di halaman pengaturan, atau menggunakan pengalih bahasa di sudut kanan atas. Jika Anda tidak melihat bahasa Anda, atau ingin meningkatkan terjemahan yang ada, Anda dapat <0>berkontribusi pada terjemahan di Crowdin<1> (terbuka di tab baru)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Ya! Setiap template sepenuhnya dapat disesuaikan. Anda dapat mengubah warna, font, jarak, dan bahkan menulis CSS kustom untuk kontrol penuh atas tampilan resume Anda."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Ya! Reactive Resume sepenuhnya gratis digunakan, tanpa biaya tersembunyi, tingkat premium, atau biaya langganan. Ini bersumber terbuka dan akan selalu tetap gratis."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Data Anda disimpan secara lokal"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Data Anda disimpan dengan aman dan tidak pernah dibagikan dengan pihak ketiga. Anda juga dapat self-host Reactive Resume di server Anda sendiri untuk kontrol penuh atas data Anda."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Perubahan terbaru Anda tidak dapat disimpan."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: it\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Italian\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elemento} other {# elementi}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# ruolo} other {# ruoli}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} proposte esaminate"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Certo! Puoi esportare il tuo curriculum in PDF con un solo clic. Il PDF esportato mantiene perfettamente tutta la tua formattazione e lo stile."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Accettare"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Accetta tutto"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Proposta accettata"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Accedi in modo programmatico ai tuoi curriculum e ai tuoi dati usando l'API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Aggiungi riga prima"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Dopo"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Integrazione dell'IA disabilitata"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Proposta di intelligenza artificiale applicata."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "Proposta sull'intelligenza artificiale respinta."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Sono state applicate le proposte basate sull'IA."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Proposte sull'IA respinte."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Assistente AI per la redazione del curriculum"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanese"
|
||||
@@ -367,10 +412,22 @@ msgstr "Area di studio"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Intelligenza artificiale"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Richiedi una modifica mirata al tuo curriculum..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Richiedi un cambiamento graduale"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Proporzioni"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Richiesta di assistenza non riuscita"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Informazioni di base"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Modelli bellissimi tra cui scegliere, con altri in arrivo."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Prima"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengalese"
|
||||
@@ -462,10 +523,6 @@ msgstr "Elenco puntato"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Dalla comunità, per la comunità."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Posso personalizzare i modelli?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Posso esportare il mio curriculum in PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Libero"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Fai clic qui per selezionare un file da importare"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Chiudi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Assistente AI ravvicinato"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Blocco di codice"
|
||||
@@ -622,6 +687,10 @@ msgstr "Conferma"
|
||||
msgid "Connect"
|
||||
msgstr "Connetti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Prima di utilizzare i suggerimenti per la modifica del curriculum, collega e verifica il fornitore di intelligenza artificiale."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Copia questa chiave segreta e usala nelle tue applicazioni per accedere
|
||||
msgid "Copy URL"
|
||||
msgstr "Copia URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Impossibile applicare la proposta basata sull'IA."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Disconnetti"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Congedare"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Documentazione"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Non hai un account? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donare"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Fai una donazione a Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Abilita 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Abilita funzionalità IA"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Abilita l'integrazione dell'IA"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Abilita autenticazione a due fattori"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Tutto ciò che inserisci qui viene memorizzato localmente nel tuo browse
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Tutto ciò di cui hai bisogno per creare, personalizzare e condividere curriculum professionali. Creato pensando alla privacy, alimentato dall'open source e completamente gratuito per sempre."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Esempi: riscrivere il riepilogo, sintetizzare un punto relativo all'esperienza, aggiungere dati statistici o adattare il curriculum alla descrizione di una posizione lavorativa."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Esci dalla modalità a schermo intero"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Hai dimenticato la password?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formato"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formato"
|
||||
msgid "Free"
|
||||
msgstr "Gratuito"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Forma libera"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Francese"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modello"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Ulteriori azioni proposte"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Sposta in"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Deve iniziare con https://"
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Necessita di revisione"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalese"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Nuova password"
|
||||
msgid "New Section"
|
||||
msgstr "Nuova sezione"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Avanti"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Nessuna pubblicità, nessun tracciamento"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Manutenzione continua"
|
||||
msgid "Open"
|
||||
msgstr "Apri"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Assistente Open AI"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Apri client email"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Integrazioni aperte"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Apra le Impostazioni delle integrazioni"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Inserisci la password condivisa con te dal proprietario del curriculum p
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Inserisci l'URL a cui vuoi collegarti:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Per favore, sostenete il progetto."
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Posizione"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferenze"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Preparazione dei cambiamenti"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Preset"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Premi <0>{RETURN_KEY}</0> o <1>{COMMA_KEY}</1> per aggiungere o salvare
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Premere <0>Invio</0> per aprire"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Precedente"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Colore primario"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Barra di avanzamento"
|
||||
msgid "Projects"
|
||||
msgstr "Progetti"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Proposta {0} di {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Proteggi il tuo curriculum da accessi non autorizzati con una password"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Pubblicazioni"
|
||||
msgid "Publisher"
|
||||
msgstr "Editore"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Patch JSON non elaborato"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - Vai alla homepage"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume è un progetto gratuito e open source, creato con amore
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume è un generatore di curriculum gratuito e open source che semplifica il processo di creazione, aggiornamento e condivisione del tuo curriculum."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume è gratuito e open source. Se ti è stato utile, considera la possibilità di fare una donazione."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume è open source, incentrato sulla privacy e completamente gratuito. A differenza di altri generatori di curriculum, non mostra annunci, non traccia i tuoi dati e non limita le funzionalità dietro un paywall."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Rettangolo"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Rettangolo (larghezza completa)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Ripristina (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Aggiorna"
|
||||
msgid "Register New Device"
|
||||
msgstr "Registra un nuovo dispositivo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Rifiutare"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Rifiuta tutto"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Proposta respinta"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Ricordi la tua password? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Invio dell'email di verifica in corso..."
|
||||
msgid "Reset"
|
||||
msgstr "Ripristina"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Reimposta la chat"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Reimposta la tua password"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Reimpostazione della tua password in corso..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Assistente AI per il ridimensionamento"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Risorse"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Analisi del curriculum completata."
|
||||
msgid "Resumes"
|
||||
msgstr "Curriculum"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Revisione necessaria"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Proposte esaminate"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Allinea a destra"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Seleziona..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Self-host con Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Inviare"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Invia email per reimpostare la password"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Invio dell'email per reimpostare la password in corso..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Invio della richiesta"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Separatore"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Una singola colonna con barra laterale e griglia pulita; versatile per q
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "A colonna singola con intestazione in linea a tre colonne (posizione - organizzazione - periodo); compatta e adatta agli ATS, si adatta bene alle convenzioni asiatiche per i curriculum (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Impaginazione a colonna singola con intestazioni di sezione in maiuscolo e una linea superiore di colore primario su ogni pagina; ideale per curriculum di dirigenti, consulenti o startup."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Una singola colonna; curato e serio per posizioni senior o a livello enterprise."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistiche"
|
||||
msgid "Stay"
|
||||
msgstr "Rimani"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Fermare"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Punti di forza"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Colore del testo"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "L'intelligenza artificiale ha proposto una modifica che non si applica più a questo curriculum."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "L'intelligenza artificiale ha restituito una proposta che non poteva essere visualizzata in anteprima."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "La chiave API è stata eliminata correttamente."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Dopo l'eliminazione, la chiave API non potrà più accedere ai tuoi dati. Questa azione non può essere annullata."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "L'assistente si fermò prima di restituire la proposta."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Questo è un nome adatto agli URL per il tuo curriculum."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Potrebbero essere necessari alcuni minuti, a seconda della risposta del provider IA. Non chiudere la finestra e non aggiornare la pagina."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Questa proposta non è aggiornata. Chiedi all'assistente di rigenerarla a partire dal curriculum più recente."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Questo curriculum è bloccato e non può essere aggiornato."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Per eliminare il tuo account devi inserire il testo di conferma e fare c
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Alterna la barra laterale sinistra"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Attiva/disattiva l'impilamento delle pagine"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ucraino"
|
||||
msgid "Underline"
|
||||
msgstr "Sottolinea"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Annulla (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Curriculum illimitati"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Sì, Reactive Resume è disponibile in più lingue. Puoi scegliere la tua lingua preferita nella pagina delle impostazioni o usando il selettore di lingua nell'angolo in alto a destra. Se non vedi la tua lingua, o se vuoi migliorare le traduzioni esistenti, puoi <0>contribuire alle traduzioni su Crowdin<1> (apre in una nuova scheda)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Sì! Ogni modello è completamente personalizzabile. Puoi cambiare colori, font, spaziatura e persino scrivere CSS personalizzato per avere il pieno controllo dell'aspetto del tuo curriculum."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Sì! Reactive Resume è completamente gratuito da usare, senza costi nascosti, livelli premium o abbonamenti. È open source e resterà sempre gratuito."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "I tuoi dati vengono memorizzati localmente"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "I tuoi dati sono archiviati in modo sicuro e non vengono mai condivisi con terze parti. Puoi anche fare self-host di Reactive Resume sui tuoi server per avere il pieno controllo dei tuoi dati."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Impossibile salvare le ultime modifiche."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ja\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# 件のアイテム}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, other {# 個の役職}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} 提案が審査されました"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "もちろん可能です。ワンクリックで履歴書を PDF にエクスポートできます。エクスポートされた PDF では、書式やスタイルがそのまま維持されます。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "受け入れる"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "すべて受け入れる"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "提案が承認されました"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "API を使用して、プログラムから履歴書とデータにアクセスできます。"
|
||||
@@ -229,10 +246,38 @@ msgstr "前に行を追加"
|
||||
msgid "Afrikaans"
|
||||
msgstr "アフリカーンス語"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "後"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI統合は無効になっています"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI提案が適用されました。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AIに関する提案は却下された。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "AI関連の提案が適用されました。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "AI関連の提案は却下された。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI履歴書アシスタント"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "アルバニア語"
|
||||
@@ -367,10 +412,22 @@ msgstr "研究分野"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "人工知能"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "履歴書の内容を具体的に変更するよう依頼してください。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "段階的な変更を求める"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "アスペクト比"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "アシスタントのリクエストが失敗しました"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "基本情報"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "選択できる美しいテンプレートを多数用意しており、今後もさらに追加される予定です。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "前に"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "ベンガル語"
|
||||
@@ -462,10 +523,6 @@ msgstr "箇条書きリスト"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "コミュニティによる、コミュニティのためのプロジェクト。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "テンプレートはカスタマイズできますか?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "履歴書を PDF にエクスポートできますか?"
|
||||
@@ -576,6 +633,14 @@ msgstr "クリア"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "ここをクリックしてインポートするファイルを選択"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "AIアシスタントを閉じる"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "コードブロック"
|
||||
@@ -622,6 +687,10 @@ msgstr "確認"
|
||||
msgid "Connect"
|
||||
msgstr "接続"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "履歴書編集提案を利用する前に、AIプロバイダーと連絡を取り、その信頼性を確認してください。"
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "このシークレットキーをコピーし、アプリケーション
|
||||
msgid "Copy URL"
|
||||
msgstr "URL をコピー"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "AI提案を適用できませんでした。"
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "切断"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "却下する"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "ドキュメンテーション"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "アカウントをお持ちでないですか? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "寄付する"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Reactive Resume に寄付"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA を有効化"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "AI 機能を有効にする"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "AI統合を有効にする"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "二要素認証を有効化"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "ここに入力した内容はすべてブラウザー上にローカル
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "プロフェッショナルな履歴書を作成・カスタマイズ・共有するために必要な機能がすべて揃っています。プライバシーを重視して設計され、オープンソースによって支えられ、そして完全に無料で利用できます。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "例:要約を書き直す、職務経歴の箇条書きを一つ絞り込む、数値データを追加する、または求人内容に合わせて履歴書を修正する。"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "全画面表示を終了"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "パスワードをお忘れですか?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "フォーマット"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "フォーマット"
|
||||
msgid "Free"
|
||||
msgstr "無料"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "自由形式"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "フランス語"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "マイクロソフトワード"
|
||||
msgid "Model"
|
||||
msgstr "モデル"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "その他の提案アクション"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "移動先"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "https://。"
|
||||
msgid "Name"
|
||||
msgstr "名前"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "要見直し"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "ネパール語"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "新しいパスワード"
|
||||
msgid "New Section"
|
||||
msgstr "新しいセクション"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "次のページ"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "広告なし・トラッキングなし"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "継続的な保守"
|
||||
msgid "Open"
|
||||
msgstr "開く"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "OpenAIアシスタント"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "メールクライアントを開く"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "オープンインテグレーション"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "統合設定を開く"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "履歴書の所有者から共有されたパスワードを入力して
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "リンク先の URL を入力してください:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "プロジェクトへのご支援をお願いいたします"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "役職"
|
||||
msgid "Preferences"
|
||||
msgstr "設定"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "変更の準備"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "プリセット"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "現在のキーワードを追加または保存するには、<0>{RETUR
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "<0>Enter</0>キーを押して開く"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "前へ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "メインカラー"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "プログレスバー"
|
||||
msgid "Projects"
|
||||
msgstr "プロジェクト"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "{0} の {total} の提案"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "パスワードで履歴書を保護し、許可されていないアクセスを防ぎます。"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "掲載情報"
|
||||
msgid "Publisher"
|
||||
msgstr "出版社"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "生のJSONパッチ"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - ホームページへ移動"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume は、愛情を込めて作られ、私とコミュニ
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume は、履歴書の作成、更新、共有のプロセスを簡素化する、無料でオープンソースの履歴書ビルダーです。"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resumeは無料のオープンソースソフトウェアです。もしお役に立てたなら、ぜひご寄付をご検討ください。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume はオープンソースでプライバシー重視、そして完全無料です。他の履歴書ビルダーと違い、広告を表示したり、あなたのデータを追跡したり、有料プランの裏に機能を隠したりすることはありません。"
|
||||
@@ -2362,11 +2500,6 @@ msgstr "長方形"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "長方形(全幅)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "やり直し(Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "再読み込み"
|
||||
msgid "Register New Device"
|
||||
msgstr "新規デバイスの登録"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "拒否する"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "すべて拒否"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "却下された提案"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "パスワードを思い出しましたか? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "確認メールを再送信しています..."
|
||||
msgid "Reset"
|
||||
msgstr "リセット"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "チャットをリセット"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "パスワードをリセット"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "パスワードをリセットしています..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "リサイズAIアシスタント"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "リソース"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "履歴書分析完了。"
|
||||
msgid "Resumes"
|
||||
msgstr "履歴書"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "レビューが必要です"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "提案内容を検討しました"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "右揃え"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "選択..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Docker でセルフホスト"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "送信"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "パスワードリセットメールを送信"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "パスワードリセットメールを送信しています..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "リクエストを送信中"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "区切り線"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "サイドバーと整ったグリッドレイアウトを備えた 1 カ
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "1段組、インライン3段組(ポジション-所属-ピリオド)。コンパクトでATSフレンドリー、アジアの履歴書規約(CN/JP/KR)に適しています。"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "1段組で、セクションの見出しはすべて大文字、各ページの上部には原色を使った罫線が入っています。経営幹部、コンサルタント、スタートアップ企業の履歴書に最適な洗練されたデザインです。"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "1 カラムレイアウトで、落ち着いた印象の真面目なデザイン。シニア職やエンタープライズレベルのポジションに適しています。"
|
||||
@@ -2809,6 +2982,10 @@ msgstr "統計"
|
||||
msgid "Stay"
|
||||
msgstr "このまま"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "停止"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "強み"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "テキストカラー"
|
||||
msgid "Thai"
|
||||
msgstr "タイ語"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "AIが提案した変更内容は、この履歴書にはもはや適用されません。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "AIはプレビューできない提案を返しました。"
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API キーを正常に削除しました。"
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "この API キーは削除後、データにアクセスできなくなります。この操作は取り消せません。"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "アシスタントは提案を返す前に立ち止まった。"
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "これは履歴書用の、URL 向けの名前です。"
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "AI プロバイダーからの応答によっては、数分かかる場合があります。ウィンドウを閉じたりページを再読み込みしたりしないでください。"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "この提案書は古い情報です。アシスタントに最新の履歴書から再作成するよう依頼してください。"
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "この履歴書はロックされているため、更新できません。"
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "アカウントを削除するには、確認用のテキストを入力
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "左サイドバーの切り替え"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "ページスタッキングの切り替え"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "ウクライナ語"
|
||||
msgid "Underline"
|
||||
msgstr "下線"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "元に戻す(Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "無制限の履歴書"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X(ツイッター)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "はい。Reactive Resume は複数の言語に対応しています。設定ページ、または右上の言語切り替えからお好みの言語を選択できます。もしご希望の言語が見つからない場合や、既存の翻訳を改善したい場合は、<0>Crowdin で翻訳に貢献<1>(新しいタブで開きます)</1></0>できます。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "はい。すべてのテンプレートは完全にカスタマイズ可能です。色やフォント、余白を変更できるほか、カスタム CSS を記述して履歴書の見た目を完全にコントロールできます。"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "はい。Reactive Resume は完全に無料で、隠れたコストやプレミアムプラン、サブスクリプション料金は一切ありません。オープンソースであり、今後もずっと無料で提供されます。"
|
||||
@@ -3440,7 +3629,7 @@ msgstr "あなたのデータはローカルに保存されます。"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "あなたのデータは安全に保存され、第三者と共有されることはありません。また、完全にデータを管理したい場合は、Reactive Resume を自分のサーバーにセルフホストすることもできます。"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "最新の変更内容を保存できませんでした。"
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: km\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Khmer\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {# ធាតុ}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# តួនាទី} other {# តួនាទី}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "សំណើ {0} ត្រូវបានពិនិត្យឡើងវិញ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "បានប្រាកដ! អ្នកអាចនាំចេញប្រវត្តិរូបរបស់អ្នកជា PDF ដោយចុចតែម្ដង។ ឯកសារ PDF ដែលនាំចេញនឹងរក្សាទុកទ្រង់ទ្រាយ និងរចនាប័ទ្មទាំងអស់របស់អ្នកដូចដើម។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "ទទួលយក"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "ទទួលយកទាំងអស់"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "សំណើដែលបានទទួលយក"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "ចូលដំណើរការប្រវត្តិរូប និងទិន្នន័យរបស់អ្នកតាមកម្មវិធី ដោយប្រើ API។"
|
||||
@@ -229,10 +246,38 @@ msgstr "បន្ថែមជួរដេកនៅមុខ"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "បន្ទាប់ពី"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "បានបិទការរួមបញ្ចូល AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "សំណើ AI ត្រូវបានអនុវត្ត។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "សំណើ AI ត្រូវបានបដិសេធ។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "សំណើ AI ត្រូវបានអនុវត្ត។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "សំណើ AI ត្រូវបានបដិសេធ។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "ជំនួយការប្រវត្តិរូបសង្ខេប AI"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanian"
|
||||
@@ -367,10 +412,22 @@ msgstr "ជំនាញរៀន"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "បញ្ញាសិប្បនិម្មិត"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "ស្នើសុំការផ្លាស់ប្តូរប្រវត្តិរូបសង្ខេបដែលមានគោលដៅ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "ស្នើសុំការផ្លាស់ប្តូរបន្តិចម្តងៗ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "សមាមាត្រទ្រង់ទ្រាយ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "សំណើសុំជំនួយបរាជ័យ"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "មូលដ្ឋាន"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "គំរូស្អាតៗឲ្យជ្រើសរើស ហើយនៅមានបន្ថែមទៀតកំពុងមកដល់។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "មុន"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengali"
|
||||
@@ -462,10 +523,6 @@ msgstr "បញ្ជីមានគ្រាប់ចំណុច"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "ដោយសហគមន៍ សម្រាប់សហគមន៍។"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "តើខ្ញុំអាចប្ដូរតាមបំណងគំរូទាំងនេះបានទេ?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "តើខ្ញុំអាចនាំចេញប្រវត្តិរូបរបស់ខ្ញុំជា PDF បានទេ?"
|
||||
@@ -576,6 +633,14 @@ msgstr "សម្អាត"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "ចុចទីនេះដើម្បីជ្រើសឯកសារមួយដើម្បីនាំចូល"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "បិទ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "បិទជំនួយការ AI"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "កូដប្លុក"
|
||||
@@ -622,6 +687,10 @@ msgstr "អះអាង"
|
||||
msgid "Connect"
|
||||
msgstr "តភ្ជាប់"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "ភ្ជាប់ និងផ្ទៀងផ្ទាត់អ្នកផ្តល់សេវា AI មុនពេលប្រើប្រាស់សំណើកែសម្រួលប្រវត្តិរូបសង្ខេប។"
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "ចម្លងកូនសោសម្ងាត់នេះ
|
||||
msgid "Copy URL"
|
||||
msgstr "ចម្លង URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "មិនអាចអនុវត្តសំណើ AI បានទេ។"
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "ផ្ដាច់"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "បដិសេធ"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "ឯកសារ"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "មិនមានគណនី? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "បរិច្ចាគ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "បរិច្ចាគឲ្យ Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "បើកប្រើ 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "បើកប្រើមុខងារ AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "បើកការរួមបញ្ចូល AI"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "បើកប្រើការផ្ទៀងផ្ទាត់ពីរជាន់"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "អ្វីដែលបានបញ្ចូលនៅទ
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "អ្វីៗដែលអ្នកត្រូវការ ដើម្បីបង្កើត ប្ដូរតាមបំណង និងចែករំលែកប្រវត្តិរូបវិជ្ជាជីវៈ។ ត្រូវបានបង្កើតឡើងដោយគិតពីភាពឯកជន ប្រើបច្ចេកវិទ្យាបើកប្រភព ហើយឥតគិតថ្លៃទាំងស្រុង ជារៀងរហូត។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "ឧទាហរណ៍៖ សរសេរសេចក្តីសង្ខេបឡើងវិញ រឹតបន្តឹងចំណុចបទពិសោធន៍មួយ បន្ថែមរង្វាស់ ឬកែសម្រួលប្រវត្តិរូបសង្ខេបសម្រាប់ការពិពណ៌នាការងារ។"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "ចេញពីអេក្រង់ពេញ"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "ភ្លេចពាក្យសម្ងាត់របស់អ្នកឬ?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "ទ្រង់ទ្រាយ"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "ទ្រង់ទ្រាយ"
|
||||
msgid "Free"
|
||||
msgstr "ឥតគិតថ្លៃ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "ទម្រង់សេរី"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "French"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "ម៉ូដែល"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "សកម្មភាពស្នើបន្ថែមទៀត"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "ផ្លាស់ទីទៅ"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "ត្រូវតែចាប់ផ្តើមដោយ https://"
|
||||
msgid "Name"
|
||||
msgstr "ឈ្មោះ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "ត្រូវការការពិនិត្យឡើងវិញ"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepali"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "ពាក្យសម្ងាត់ថ្មី"
|
||||
msgid "New Section"
|
||||
msgstr "ផ្នែកថ្មី"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "បន្ទាប់"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "គ្មានការផ្សពាណិជ្ជកម្ម គ្មានការតាមដាន"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "ការថែទាំបន្ត"
|
||||
msgid "Open"
|
||||
msgstr "បើក"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "បើកជំនួយការ AI"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "បើកកម្មវិធីអ៊ីមែល"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "ការរួមបញ្ចូលបើកចំហ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "បើកការកំណត់ការរួមបញ្ចូល"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "សូមបញ្ចូលពាក្យសម្ងាត់
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "សូមបញ្ចូល URL ដែលអ្នកចង់តភ្ជាប់ទៅ៖"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "សូមជួយគាំទ្រគម្រោងនេះផង"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "តួនាទី"
|
||||
msgid "Preferences"
|
||||
msgstr "ចំណង់ចំណូលចិត្ត"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "កំពុងរៀបចំការផ្លាស់ប្តូរ"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "កំណត់ជាមុន"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "ចុច <0>{RETURN_KEY}</0> ឬ <1>{COMMA_KEY}</1> ដើម្បី
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "ចុច <0>Enter</0> ដើម្បីបើក"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "មុន"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "ពណ៌មូលដ្ឋាន"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "របារវឌ្ឍនភាព"
|
||||
msgid "Projects"
|
||||
msgstr "គម្រោង"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "សំណើ {0} នៃ {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "ការពារប្រវត្តិរូបរបស់អ្នកពីការចូលដំណើរការដោយមិនបានអនុញ្ញាត ដោយប្រើពាក្យសម្ងាត់"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "អត្ថបទផ្សព្វផ្សាយ"
|
||||
msgid "Publisher"
|
||||
msgstr "អ្នកបោះពុម្ពផ្សាយ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "បំណះ JSON ឆៅ"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - ទៅកាន់ទំព័រដើម"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume ជាគម្រោងឥតគិតថ្ល
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume ជាកម្មវិធីបង្កើតប្រវត្តិរូបឥតគិតថ្លៃ និងបើកប្រភព ដែលធ្វើឱ្យដំណើរការបង្កើត បច្ចុប្បន្នភាព និងចែករំលែកប្រវត្តិរូបរបស់អ្នក ក្លាយជារឿងងាយស្រួល។"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume គឺឥតគិតថ្លៃ និងជាប្រភពបើកចំហ។ ប្រសិនបើវាបានជួយអ្នក សូមពិចារណាបរិច្ចាគ។"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume គឺបើកប្រភព ផ្តោតលើភាពឯកជន និងឥតគិតថ្លៃទាំងស្រុង។ ខុសពីកម្មវិធីបង្កើតប្រវត្តិរូបផ្សេងៗ វាមិនបង្ហាញពាណិជ្ជកម្ម មិនតាមដានទិន្នន័យរបស់អ្នក ហើយមិនកំណត់មុខងារពីក្រោយ paywall ឡើយ។"
|
||||
@@ -2362,11 +2500,6 @@ msgstr "ចតុកោណ"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "ចតុកោណ (ទទឹងពេញ)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "ធ្វើម្ដងទៀត (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "ផ្ទៀងផ្ទាត់ម្ដងទៀត"
|
||||
msgid "Register New Device"
|
||||
msgstr "ចុះឈ្មោះឧបករណ៍ថ្មី"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "បដិសេធ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "បដិសេធទាំងអស់"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "សំណើត្រូវបានបដិសេធ"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "ចាំពាក្យសម្ងាត់របស់អ្នក? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "កំពុងផ្ញើអ៊ីមែលផ្ទៀងផ
|
||||
msgid "Reset"
|
||||
msgstr "កំណត់ឡើងវិញ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "កំណត់ការជជែកឡើងវិញ"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "កំណត់ពាក្យសម្ងាត់របស់
|
||||
msgid "Resetting your password..."
|
||||
msgstr "កំពុងកំណត់ពាក្យសម្ងាត់របស់អ្នកឡើងវិញ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "ប្ដូរទំហំជំនួយការ AI"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "ធនធាន"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "ការវិភាគប្រវត្តិរូបបានបញ
|
||||
msgid "Resumes"
|
||||
msgstr "ប្រវត្តិរូប"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "តម្រូវឱ្យមានការពិនិត្យឡើងវិញ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "សំណើដែលបានពិនិត្យ"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "តម្រង់ស្ដាំ"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "ជ្រើសរើស..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "ដំឡើងផ្ទាល់ខ្លួនដោយប្រើ Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "ផ្ញើ"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "ផ្ញើអ៊ីមែលកំណត់ពាក្យស
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "កំពុងផ្ញើអ៊ីមែលកំណត់ពាក្យសម្ងាត់ឡើងវិញ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "កំពុងផ្ញើសំណើ"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "បន្ទាត់បំបែក"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "ជួរឈរតែមួយ មានរបារបាត
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "ប្លង់ជួរឈរតែមួយដែលមានបឋមកថាធាតុជាបីជួរឈរនៅក្នុងបន្ទាត់តែមួយ (មុខតំណែង · ស្ថាប័ន · រយៈពេល)៖ បង្រួម ងាយស្រួលសម្រាប់ ATS និងសមស្របសម្រាប់ទម្រង់ប្រវត្តិរូបបែបអាស៊ី (CN/JP/KR)។"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "ជួរឈរតែមួយដែលមានចំណងជើងផ្នែកអក្សរធំ និងបន្ទាត់កំពូលពណ៌ចម្បងនៅលើទំព័រនីមួយៗ។ ត្រូវបានរៀបចំយ៉ាងល្អសម្រាប់ប្រវត្តិរូបសង្ខេបសម្រាប់នាយកប្រតិបត្តិ ប្រឹក្សាយោបល់ ឬចាប់ផ្តើមអាជីវកម្ម។"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "ជួរឈរតែមួយ រូបរាងរលោង និងផ្លូវការសម្រាប់តំណែងជាន់ខ្ពស់ ឬកម្រិតសហគ្រាស។"
|
||||
@@ -2809,6 +2982,10 @@ msgstr "ស្ថិតិ"
|
||||
msgid "Stay"
|
||||
msgstr "ស្ថិត"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "ឈប់"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "ចំណុចខ្លាំង"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "ពណ៌អត្ថបទ"
|
||||
msgid "Thai"
|
||||
msgstr "Thai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "បញ្ញាសិប្បនិម្មិត (AI) បានស្នើការផ្លាស់ប្តូរមួយដែលលែងអនុវត្តចំពោះប្រវត្តិរូបសង្ខេបនេះទៀតហើយ។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "បញ្ញាសិប្បនិម្មិត (AI) បានប្រគល់សំណើមួយដែលមិនអាចមើលជាមុនបាន។"
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "កូនសោ API ត្រូវបានលុបដោយ
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "បន្ទាប់ពីលុប កូនសោ API នេះនឹងមិនអាចចូលដំណើរការទិន្នន័យរបស់អ្នកបានទៀតទេ។ សកម្មភាពនេះមិនអាចមិនធ្វើវិញបានទេ។"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "ជំនួយការបានឈប់មុនពេលប្រគល់សំណើមួយវិញ។"
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "នេះជាឈ្មោះងាយស្រួលស
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "វាអាចចំណាយពេលពីរនាទី អាស្រ័យលើការឆ្លើយតបរបស់អ្នកផ្តល់សេវា AI។ សូមកុំបិទបង្អួចនេះ ឬផ្ទុកទំព័រឡើងវិញ។"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "សំណើនេះហួសសម័យហើយ។ សូមស្នើសុំឱ្យជំនួយការបង្កើតវាឡើងវិញពីប្រវត្តិរូបសង្ខេបចុងក្រោយបំផុត។"
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "ប្រវត្តិរូបនេះត្រូវបានចាក់សោ ហើយមិនអាចបច្ចុប្បន្នភាពបានទេ។"
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "ដើម្បីលុបគណនីរបស់អ្ន
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "បិទបើករបារចំហៀងខាងឆ្វេង"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "បិទ/បើកការដាក់ទំព័រជាស្រទាប់ៗ"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrainian"
|
||||
msgid "Underline"
|
||||
msgstr "គូសបន្ទាត់ក្រោម"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "មិនធ្វើវិញ (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "ប្រវត្តិរូបមិនមានដែនកំណត់"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (ធ្វីតធ័រ)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "បាទ Reactive Resume អាចប្រើបានជាភាសាច្រើន។ អ្នកអាចជ្រើសភាសាដែលអ្នកពេញចិត្តនៅលើទំព័រការកំណត់ ឬដោយប្រើកម្មវិធីប្ដូរភាសានៅកូណឺឆ្វេងលើ។ បើអ្នកមិនឃើញភាសារបស់អ្នក ឬចង់ធ្វើឱ្យការបកប្រែដែលមានស្រាប់ប្រសើរឡើង អ្នកអាច <0>ចូលរួមបកប្រែនៅលើ Crowdin<1> (បើកក្នុងផ្ទាំងថ្មី)</1></0>។"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "បាទ! គំរូនីមួយៗអាចប្ដូរតាមបំណងបានទាំងស្រុង។ អ្នកអាចប្តូរពណ៌ ពុម្ពអក្សរ គម្លាត និងសរសេរ CSS ផ្ទាល់ខ្លួន ដើម្បីត្រួតត្រាលើរូបរាងប្រវត្តិរូបរបស់អ្នកបានពេញលេញ។"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "បាទ! Reactive Resume គឺឥតគិតថ្លៃទាំងស្រុង គ្មានចំនាយលាក់កំបាំង កម្រិតពិសេស ឬកម្រៃជាវប្រចាំខែទេ។ វាបើកប្រភព ហើយនឹងនៅតែឥតគិតថ្លៃជារៀងរហូត។"
|
||||
@@ -3440,7 +3629,7 @@ msgstr "ទិន្នន័យរបស់អ្នកត្រូវ
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "ទិន្នន័យរបស់អ្នកត្រូវបានរក្សាទុកដោយសុវត្ថិភាព ហើយមិនដែលត្រូវបានចែករំលែកជាមួយភាគីទីបីទេ។ អ្នកក៏អាចដំឡើង Reactive Resume លើម៉ាស៊ីនបម្រើផ្ទាល់ខ្លួនរបស់អ្នក ដើម្បីមានសិទ្ធિត្រួតត្រាលើទិន្នន័យរបស់អ្នកដល់ខ្ពស់បំផុតផងដែរ។"
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "មិនអាចរក្សាទុកការផ្លាស់ប្តូរចុងក្រោយបំផុតរបស់អ្នកបានទេ។"
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: kn\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Kannada\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# ಐಟಂ} other {# ಐಟಂಗಳು}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# ಪಾತ್ರ} other {# ಪಾತ್ರಗಳು}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "ಖಂಡಿತ! ನೀವು ಒಂದೇ ಕ್ಲಿಕ್ನಿಂದ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು PDF ಗೆ ರಫ್ತು ಮಾಡಬಹುದು. ರಫ್ತುಗೊಂಡ PDF ದಲ್ಲಿನ ಎಲ್ಲಾ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮತ್ತು ಶೈಲಿಗಳನ್ನು ಅದು ನಿಖರವಾಗಿ ಉಳಿಸುತ್ತದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "ಸ್ವೀಕರಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "ಎಲ್ಲವನ್ನೂ ಸ್ವೀಕರಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "ಪ್ರಸ್ತಾವನೆಯನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "API ಬಳಸಿ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮೂಲಕ ಪ್ರವೇಶಿಸಿ."
|
||||
@@ -229,10 +246,38 @@ msgstr "ಸಾಲನ್ನು ಮೊದಲು ಸೇರಿಸಿ"
|
||||
msgid "Afrikaans"
|
||||
msgstr "ಆಫ್ರಿಕಾನ್ಸ್"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "ನಂತರ"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI ಏಕೀಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI ಪ್ರಸ್ತಾವನೆಯನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AI ಪ್ರಸ್ತಾವನೆಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "AI ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "AI ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI ರೆಸ್ಯೂಮ್ ಅಸಿಸ್ಟೆಂಟ್"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "ಅಲ್ಬೇನಿಯನ್"
|
||||
@@ -367,10 +412,22 @@ msgstr "ಅಧ್ಯಯನದ ಕ್ಷೇತ್ರ"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "ಕೃತಕ ಬುದ್ಧಿವಂತಿಕೆ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "ಉದ್ದೇಶಿತ ರೆಸ್ಯೂಮ್ ಬದಲಾವಣೆಗಾಗಿ ಕೇಳಿ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "ಕ್ರಮೇಣ ಬದಲಾವಣೆಯನ್ನು ಕೇಳಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "ಆಕಾರ ಅನುಪಾತ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "ಸಹಾಯಕ ವಿನಂತಿ ವಿಫಲವಾಗಿದೆ"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "ಮೂಲಭೂತಗಳು"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "ಆಯ್ಕೆ ಮಾಡಲು ಸುಂದರವಾದ ಮಾದರಿಗಳು, ಇನ್ನೂ ಬಹಳ ಬೇಗ ಬರುತ್ತಿವೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "ಮೊದಲು"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "ಬೆಂಗಾಲಿ"
|
||||
@@ -462,10 +523,6 @@ msgstr "ಬುಲೆಟ್ ಪಟ್ಟ್ತಿ"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "ಸಮುದಾಯದಿಂದ, ಸಮುದಾಯಕ್ಕಾಗಿ."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "ನಾನು ಮಾದರಿಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿಸಬಹುದೇ?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "ನಾನು ನನ್ನ ರೆಸ್ಯೂಮ್ ಅನ್ನು PDF ಗೆ ರಫ್ತು ಮಾಡಿಸಬಹುದೇ?"
|
||||
@@ -576,6 +633,14 @@ msgstr "ತೆರವುಗೊಳಿಸಿ"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "ಆಮದು ಮಾಡಲು ಕಡತವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "ಮುಚ್ಚಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "AI ಸಹಾಯಕವನ್ನು ಮುಚ್ಚಿ"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "ಕೋಡ್ ಬ್ಲಾಕ್"
|
||||
@@ -622,6 +687,10 @@ msgstr "ದೃಢೀಕರಿಸಿ"
|
||||
msgid "Connect"
|
||||
msgstr "ಕನೆಕ್ಟ್ ಮಾಡಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "ರೆಸ್ಯೂಮ್ ಎಡಿಟಿಂಗ್ ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಬಳಸುವ ಮೊದಲು AI ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ ಮತ್ತು ಪರಿಶೀಲಿಸಿ."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "ಈ ಸೀಕ್ರೆಟ್ ಕೀ ಅನ್ನು ನಕಲಿಸಿ
|
||||
msgid "Copy URL"
|
||||
msgstr "URL ನಕಲಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "AI ಪ್ರಸ್ತಾವನೆಯನ್ನು ಅನ್ವಯಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "ಡಿಸ್ಕನೆಕ್ಟ್ ಮಾಡಿ"
|
||||
msgid "Discord"
|
||||
msgstr "ಡಿಸ್ಕೋರ್ಡ್"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "ವಜಾಗೊಳಿಸಿ"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "ದಾಖಲೀಕರಣ"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "ಖಾತೆ ಇಲ್ಲವೇ? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "ದಾನ ಮಾಡಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್ಗೆ ದೇಣಿಗೆ ನೀಡಿ"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2FA ಸಕ್ರಿಯಗೊಳಿಸಿ"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "AI ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "AI ಏಕೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "ಇಲ್ಲಿ ನಮೂದಿಸಿರುವ ಎಲ್ಲವನ್ನ
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "ವೃತ್ತಿಪರ ರೆಸ್ಯೂಮ್ಗಳನ್ನು ರಚಿಸಲು, ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಲು ನಿಮಗೆ ಬೇಕಾದ ಎಲ್ಲವೂ ಇಲ್ಲಿ ಇದೆ. ಗೌಪ್ಯತೆಯನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು, ಮುಕ್ತ-ಮೂಲದೊಂದಿಗೆ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "ಉದಾಹರಣೆಗಳು: ಸಾರಾಂಶವನ್ನು ಪುನಃ ಬರೆಯುವುದು, ಒಂದು ಅನುಭವದ ಬುಲೆಟ್ ಅನ್ನು ಬಿಗಿಗೊಳಿಸುವುದು, ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಸೇರಿಸುವುದು ಅಥವಾ ಕೆಲಸದ ವಿವರಣೆಗೆ ಅನುಗುಣವಾಗಿ ರೆಸ್ಯೂಮ್ ಅನ್ನು ಅಳವಡಿಸುವುದು."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "ಪೂರ್ಣ ಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಮರೆತಿರುವಿರಾ?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "ಸ್ವರೂಪ"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "ಸ್ವರೂಪ"
|
||||
msgid "Free"
|
||||
msgstr "ಉಚಿತ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "ಮುಕ್ತ-ರೂಪ"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "ಫ್ರೆಂಚ್"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "ಮಾದರಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "ಹೆಚ್ಚಿನ ಪ್ರಸ್ತಾವನೆ ಕ್ರಮಗಳು"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "ಸ್ಥಳಾಂತರಿಸಿ"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "https:// ನಿಂದ ಪ್ರಾರಂಭವಾಗಬೇಕು"
|
||||
msgid "Name"
|
||||
msgstr "ಹೆಸರು"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "ನೇಪಾಳಿ"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "ಹೊಸ ಪಾಸ್ವರ್ಡ್"
|
||||
msgid "New Section"
|
||||
msgstr "ಹೊಸ ವಿಭಾಗ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "ಮುಂದೆ"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "ಯಾವುದೇ ಜಾಹೀರಾತುಗಳಿಲ್ಲ, ಯಾವುದೇ ಟ್ರ್ಯಾಕಿಂಗ್ ಇಲ್ಲ"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "ನಿರಂತರ ನಿರ್ವಹಣೆ"
|
||||
msgid "Open"
|
||||
msgstr "ತೆರೆಯಿರಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "AI ಸಹಾಯಕವನ್ನು ತೆರೆಯಿರಿ"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "ಇಮೇಲ್ ಕ್ಲೈಂಟ್ ತೆರೆಯಿರಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "ಸಂಯೋಜನೆಗಳನ್ನು ತೆರೆಯಿರಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "ಸಂಯೋಜನೆಗಳ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೆರೆಯಿರಿ"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "ಮುಂದುವರಿಸಲು, ದಯವಿಟ್ಟು ರೆಸ್
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "ನೀವು ಲಿಂಕ್ ಮಾಡಲು ಬಯಸುವ URL ಅನ್ನು ನಮೂದಿಸಿ:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "ದಯವಿಟ್ಟು ಯೋಜನೆಯನ್ನು ಬೆಂಬಲಿಸಿ"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "ಸ್ಥಾನ"
|
||||
msgid "Preferences"
|
||||
msgstr "ಆದ್ಯತೆಗಳು"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "ಬದಲಾವಣೆಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "ಪ್ರೀಸೆಟ್ಗಳು"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "ಮುಖ್ಯವಚನವನ್ನಾ ಸೇರಿಸಲು ಅಥವ
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "ತೆರೆಯಲು <0>Enter</0> ಒತ್ತಿರಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "ಹಿಂದಿನದು"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "ಪ್ರಾಥಮಿಕ ಬಣ್ಣ"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "ಪ್ರಗತಿ ಪಟ್ಟೆ"
|
||||
msgid "Projects"
|
||||
msgstr "ಯೋಜನೆಗಳು"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "ಪ್ರಸ್ತಾವನೆ {0} / {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "ಪಾಸ್ವರ್ಡ್ರಿಂದ ಅನಧಿಕೃತ ಪ್ರವೇಶದಿಂದ ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ರಕ್ಷಿಸಿ"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "ಪ್ರಕಟನೆಗಳು"
|
||||
msgid "Publisher"
|
||||
msgstr "ಪ್ರಕಾಶಕರು"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "ಕಚ್ಚಾ JSON ಪ್ಯಾಚ್"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - ಮುಖ್ಯ ಪುಟಕ್ಕೆ ಹೋಗಿ"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume ಉಚಿತ ಮತ್ತು ಮುಕ್ತ-ಮೂಲ
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ಅನ್ನು ರಚಿಸುವ, ನವೀಕರಿಸುವ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರಳಗೊಳಿಸುವ ಉಚಿತ ಮತ್ತು ಮುಕ್ತ-ಮೂಲ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕವಾಗಿದೆ."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "ರಿಯಾಕ್ಟಿವ್ ರೆಸ್ಯೂಮ್ ಉಚಿತ ಮತ್ತು ಮುಕ್ತ ಮೂಲವಾಗಿದೆ. ಇದು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಿದ್ದರೆ, ದಯವಿಟ್ಟು ದಾನ ಮಾಡುವುದನ್ನು ಪರಿಗಣಿಸಿ."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume ಮುಕ್ತ-ಮೂಲ, ಗೌಪ್ಯತಿಗೆ ಪ್ರಾಧಾನ್ಯ ನೀಡುವ ಹಾಗು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ. ಇತರೆ ರೆಸ್ಯೂಮ್ ನಿರ್ಮಾಪಕರಿಗಿಂತ ವಿಭಿನ್ನವಾಗಿ, ಇದು ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುವುದಿಲ್ಲ, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದಿಲ್ಲ, ಅಥವಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪೇಯ್ವಾಲ್ ಹಿಂದೆ ಮಿತಿ ಮಾಡುವುದಿಲ್ಲ."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "ಆಯತ"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "ಆಯತ (ಪೂರ್ಣ ಅಗಲ)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "ಪುನಃಮಾಡು (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "ರಿಫ್ರೆಶ್ ಮಾಡಿ"
|
||||
msgid "Register New Device"
|
||||
msgstr "ಹೊಸ ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "ತಿರಸ್ಕರಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "ಎಲ್ಲವನ್ನೂ ತಿರಸ್ಕರಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "ತಿರಸ್ಕರಿಸಿದ ಪ್ರಸ್ತಾವನೆ"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ನೆನಪಿದೆಯೇ? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "ಪರಿಶೀಲನಾ ಇಮೇಲ್ ಅನ್ನು ಮರುಕಳ
|
||||
msgid "Reset"
|
||||
msgstr "ಮರುಹೊಂದಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "ಚಾಟ್ ಮರುಹೊಂದಿಸಿ"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರು
|
||||
msgid "Resetting your password..."
|
||||
msgstr "ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲಾಗುತ್ತಿದೆ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "AI ಸಹಾಯಕವನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಿ"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "ಸಂಪನ್ಮೂಲಗಳು"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "ರೆಸ್ಯೂಮ್ ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗ
|
||||
msgid "Resumes"
|
||||
msgstr "ರೆಸ್ಯೂಮೇ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "ಪರಿಶೀಲಿಸಿದ ಪ್ರಸ್ತಾವನೆಗಳು"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "ಬಲ ಸರಿಸು"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "ಆಯ್ಕೆಮಾಡಿ..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "ಡಾಕರ್ ಜೊತೆಗೆ ಸ್ವಯಂ ಹೋಸ್ಟ್"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "ಕಳುಹಿಸಿ"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಇಮ
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಇಮೇಲ್ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "ವಿಭಜಕ"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "ಒಂದು ಕಾಲಮ್, ಸೈಡ್ಬಾರ್ ಮತ್ತ
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "ಒಂದು ಕಾಲಮ್ ವಿನ್ಯಾಸ; ಇನ್ಲೈನ್ ಮೂರು-ಕಾಲಮ್ ಎಂಟ್ರಿ ಹೆಡರ್ೊಂದಿಗೆ (ಹುದ್ದೆ · ಸಂಸ್ಥೆ · ಅವಧಿ), ಸಂಕ್ಷಿಪ್ತ ಮತ್ತು ATS ಗೆ ಅನುಕೂಲಕರ, ಏಷ್ಯನ್ ರೆಸ್ಯೂಮ್ ಪದ್ಧತಿಗಳಿಗೆ (CN/JP/KR) ಚೆನ್ನಾಗಿ ಸೂಕ್ತವಾಗಿದೆ."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "ಪ್ರತಿ ಪುಟದಲ್ಲಿ ದೊಡ್ಡಕ್ಷರ ವಿಭಾಗ ಶೀರ್ಷಿಕೆಗಳು ಮತ್ತು ಪ್ರಾಥಮಿಕ-ಬಣ್ಣದ ಮೇಲ್ಭಾಗದ ನಿಯಮವನ್ನು ಹೊಂದಿರುವ ಏಕ-ಕಾಲಮ್; ಕಾರ್ಯನಿರ್ವಾಹಕ, ಸಲಹಾ ಅಥವಾ ಆರಂಭಿಕ ರೆಸ್ಯೂಮ್ಗಳಿಗಾಗಿ ಪಾಲಿಶ್ ಮಾಡಲಾಗಿದೆ."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "ಒಂದು ಕಾಲಮ್; ಹಿರಿಯ ಅಥವಾ ಎಂಟರ್ಪ್ರೈಸ್-ಮಟ್ಟದ ಹುದ್ದೆಗಳಿಗಾಗಿ ಮೆರಗು ಮತ್ತು ಗಂಭೀರ."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "ಅಂಕಿಅಂಶಗಳು"
|
||||
msgid "Stay"
|
||||
msgstr "ಇರಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "ನಿಲ್ಲಿಸಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "ಬಲಗಳು"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "ಅಕ್ಷರದ ಬಣ್ಣ"
|
||||
msgid "Thai"
|
||||
msgstr "ಥಾಯ್"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "ಈ ರೆಸ್ಯೂಮ್ಗೆ ಇನ್ನು ಮುಂದೆ ಅನ್ವಯಿಸದ ಬದಲಾವಣೆಯನ್ನು AI ಪ್ರಸ್ತಾಪಿಸಿದೆ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "ಪೂರ್ವವೀಕ್ಷಣೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಪ್ರಸ್ತಾವನೆಯನ್ನು AI ಹಿಂತಿರುಗಿಸಿತು."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API ಕೀಲಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿ
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "ಅಳಿಸಿದ ನಂತರ ಈ API ಕೀಲಿಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಇನ್ನೂ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಈ ಕ್ರಿಯೆಯನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "ಪ್ರಸ್ತಾವನೆಯನ್ನು ಹಿಂದಿರುಗಿಸುವ ಮೊದಲು ಸಹಾಯಕ ನಿಲ್ಲಿಸಿದನು."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "ಇದು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ಗಾಗಿ URL
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "ಇದು AI ಪ್ರೊವೈಡರ್ನ ಪ್ರತಿಕ್ರಿಯೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿ ಕೆಲ ನಿಮಿಷಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ದಯವಿಟ್ಟು ವಿಂಡೋ ಅನ್ನು ಮುಚ್ಚಬೇಡಿ ಅಥವಾ ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಬೇಡಿ."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "ಈ ಪ್ರಸ್ತಾವನೆ ಹಳೆಯದಾಗಿದೆ. ಇತ್ತೀಚಿನ ರೆಸ್ಯೂಮ್ನಿಂದ ಇದನ್ನು ಪುನರುತ್ಪಾದಿಸಲು ಸಹಾಯಕರನ್ನು ಕೇಳಿ."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "ಈ ರೆಸ್ಯೂಮ್ ಲಾಕ್ ಆಗಿದೆ ಮತ್ತು ಅದನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲು, ನೀ
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "ಎಡ ಸೈಡ್ಬಾರ್ ಟಾಗಲ್ ಮಾಡಿ"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "ಪುಟ ಸ್ಟ್ಯಾಕ್ ಮಾಡುವಿಕೆಯನ್ನು ಟಾಗಲ್ ಮಾಡಿ"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "ಉಕ್ರೇನಿಯನ್"
|
||||
msgid "Underline"
|
||||
msgstr "ಅಂಡರ್ಲೈನ್"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "ಮರುಹೊಂದಿ (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "ಅನಿಯಮಿತ ರೆಸ್ಯೂಮ್ಗಳು"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "ಎಕ್ಸ್ (ಟ್ವಿಟರ್)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "ಹೌದು, Reactive Resume ಅನೇಕ ಭಾಷೆಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ. ನೀವು ಸೆಟ್ಟಿಂಗ್ಸ್ ಪುಟದಲ್ಲಿ ಅಥವಾ ಮೇಲ್ಭಾಗದ ಬಲ ಮೂಲೆಯಲ್ಲಿರುವ ಭಾಷಾ ಸ್ವಿಚರ್ ಬಳಸಿ ನಿಮ್ಮ ಇಷ್ಟದ ಭಾಷೆಯನ್ನು ಆರಿಸಬಹುದು. ನಿಮ್ಮ ಭಾಷೆ ಕಾಣದಿದ್ದರೆ ಅಥವಾ ಇತ್ತೀಚಗಿನ ಅನುವಾದಗಳನ್ನು ಸುಧಾರಿಸಲು ಬಯಸಿದರೆ, ನೀವು <0>Crowdin ನಲ್ಲಿ ಅನುವಾದಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡಬಹುದು<1> (ಹೊಸ ಟ್ಯಾಬ್ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "ಹೌದು! ಪ್ರತಿ ಮಾದರಿಯು ಸಂಪೂರ್ಣವಾಗಿ ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದಾಗಿದೆ. ನೀವು ಬಣ್ಣಗಳು, ಫಾಂಟ್ಗಳು, ಅಂತರ ಮತ್ತು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ನ ರೂಪುರೇಷೆಯ ಮೇಲೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಕಸ್ಟಮ್ CSS ಕೂಡ ಬರೆಯಬಹುದು."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "ಹೌದು! Reactive Resume ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿ ಬಳಸಬಹುದು, ಯಾವುದೇ ಅಡಕ ವೆಚ್ಚಗಳು, ಪ್ರೀಮಿಯಂ ಹಂತಗಳು ಅಥವಾ ಚಂದಾ ಶುಲ್ಕಗಳಿಲ್ಲದೇ. ಇದು ಮುಕ್ತ-ಮೂಲವಾಗಿದ್ದು ಯಾವಾಗಲೂ ಉಚಿತವಾಗಿಯೇ ಉಳಿಯುತ್ತದೆ."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ಥಳೀಯವಾಗ
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಎಂದಿಗೂ ತೃತೀಯಪಕ್ಷಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ಡೇಟಾದ ಮೇಲೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ನಿಮ್ಮದೇ ಸರ್ವರ್ಗಳಲ್ಲಿ Reactive Resume ಅನ್ನು ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಬಹುದು."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: ko\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Korean\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, other {#개 항목}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, other {# 개 역할}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} 제안 검토 완료"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "물론 가능합니다! 한 번의 클릭으로 이력서를 PDF로 내보낼 수 있습니다. 내보낸 PDF에는 모든 서식과 스타일이 그대로 유지됩니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "수용하다"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "모두 수락"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "제안서가 승인되었습니다"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "API를 사용해 이력서와 데이터를 프로그래밍 방식으로 사용할 수 있습니다."
|
||||
@@ -229,10 +246,38 @@ msgstr "앞에 행 추가"
|
||||
msgid "Afrikaans"
|
||||
msgstr "아프리칸스어"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "후에"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "AI 통합 기능이 비활성화되었습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "AI 관련 제안이 접수되었습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AI 관련 제안이 거부되었습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "AI 관련 제안이 적용되었습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "AI 관련 제안이 거부되었습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "AI 이력서 도우미"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "알바니아어"
|
||||
@@ -367,10 +412,22 @@ msgstr "연구 분야"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "인공지능"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "이력서 수정 요청을 구체적으로 해주세요..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "점진적인 변화를 요구하세요"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "가로세로 비율"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "보조 요청이 실패했습니다."
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "기본 사항"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "선택할 수 있는 아름다운 템플릿이 준비되어 있으며, 앞으로 더 추가될 예정입니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "전에"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "벵골어"
|
||||
@@ -462,10 +523,6 @@ msgstr "글머리 기호 목록"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "커뮤니티에 의해, 커뮤니티를 위해."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "템플릿을 사용자 지정할 수 있나요?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "이력서를 PDF로 내보낼 수 있나요?"
|
||||
@@ -576,6 +633,14 @@ msgstr "지우기"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "가져올 파일을 선택하려면 여기를 클릭하세요"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "닫기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "AI 비서 닫기"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "코드 블록"
|
||||
@@ -622,6 +687,10 @@ msgstr "확인"
|
||||
msgid "Connect"
|
||||
msgstr "연결"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "이력서 편집 제안을 사용하기 전에 AI 제공업체를 연결하고 검증하세요."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "이 비밀 키를 복사해 애플리케이션에 붙여넣어 데이터
|
||||
msgid "Copy URL"
|
||||
msgstr "URL 복사"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "AI 제안을 적용할 수 없었습니다."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "연결 해제"
|
||||
msgid "Discord"
|
||||
msgstr "디스코드"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "해고하다"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "문서"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "계정이 없으신가요? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "기부하세요"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Reactive Resume에 기부하기"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "2단계 인증 활성화"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "AI 기능 활성화"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "AI 통합 활성화"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "2단계 인증 활성화"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "여기에 입력한 모든 내용은 브라우저에 로컬로 저장됩
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "전문적인 이력서를 만들고, 사용자 지정하고, 공유하는 데 필요한 모든 것을 제공합니다. 개인정보 보호를 최우선으로 설계되었으며, 오픈 소스로 구동되고, 완전히 무료입니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "예시: 요약 내용을 다시 작성하거나, 특정 경력 항목을 더 간결하게 다듬거나, 성과 지표를 추가하거나, 채용 공고에 맞춰 이력서를 수정하세요."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "전체 화면 종료"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "비밀번호를 잊으셨나요?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "용지 형식"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "용지 형식"
|
||||
msgid "Free"
|
||||
msgstr "무료"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "자유 형식"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "프랑스어"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "모델"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "추가 제안 조치"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "이동"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "https:// 으로 시작해야 합니다."
|
||||
msgid "Name"
|
||||
msgstr "이름"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "검토 필요"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "네팔어"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "새 비밀번호"
|
||||
msgid "New Section"
|
||||
msgstr "새 섹션"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "다음"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "광고 없음, 추적 없음"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "지속적인 유지 관리"
|
||||
msgid "Open"
|
||||
msgstr "열기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "오픈 AI 어시스턴트"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "이메일 클라이언트 열기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "오픈 통합"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "통합 설정 열기"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "이력서 소유자가 공유한 비밀번호를 입력해 계속 진행
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "링크할 URL을 입력하세요:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "이 프로젝트를 지원해 주세요."
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "직책"
|
||||
msgid "Preferences"
|
||||
msgstr "환경 설정"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "변경 준비 중"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "사전 설정"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "현재 키워드를 추가하거나 저장하려면 <0>{RETURN_KEY}</0>
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "<0>Enter</0> 키를 눌러 열기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "이전"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "기본 색상"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "진행률 바"
|
||||
msgid "Projects"
|
||||
msgstr "프로젝트"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "{0} 의 제안 {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "비밀번호로 이력서를 보호해, 허가되지 않은 접근을 막으세요"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "출판물"
|
||||
msgid "Publisher"
|
||||
msgstr "발행인"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "원시 JSON 패치"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - 홈페이지로 이동"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume는 애정을 담아 만든 무료 오픈 소스 프로
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume는 이력서 작성, 업데이트 및 공유를 간단하게 할 수 있는 무료 오픈 소스 이력서 작성 도구입니다."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive Resume는 무료 오픈 소스 소프트웨어입니다. 도움이 되셨다면 기부를 고려해 주세요."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume는 오픈 소스, 개인정보 보호 중심, 완전 무료 서비스입니다. 다른 이력서 작성 도구와 달리 광고를 표시하지 않고, 데이터를 추적하지 않으며, 기능을 페이월 뒤에 숨기지도 않습니다."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "사각형"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "사각형(전체 너비)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "다시 실행 (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "새로고침"
|
||||
msgid "Register New Device"
|
||||
msgstr "새 장치 등록"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "거부하다"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "모두 거부하세요"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "제안이 거절되었습니다"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "비밀번호가 기억나시나요? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "인증 이메일을 다시 보내는 중입니다..."
|
||||
msgid "Reset"
|
||||
msgstr "초기화"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "채팅 초기화"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "비밀번호 재설정"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "비밀번호를 재설정하는 중입니다..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "AI 비서 크기 조정"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "리소스"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "이력서 분석 완료."
|
||||
msgid "Resumes"
|
||||
msgstr "이력서"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "검토 필요"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "검토된 제안서"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "오른쪽 정렬"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "선택..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Docker로 자체 호스팅"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "보내다"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "비밀번호 재설정 이메일 보내기"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "비밀번호 재설정 이메일을 보내는 중입니다..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "요청 전송"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "구분선"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "사이드바와 깔끔한 그리드 레이아웃을 갖춘 단일 열
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "인라인 3열 항목 헤더(직위-조직-기간)가 있는 단일 열로, 컴팩트하고 ATS 친화적이며 아시아 이력서 양식(CN/JP/KR)에 적합합니다."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "각 페이지 상단에 기본 색상의 선이 있고, 섹션 제목은 대문자로 된 단일 열 레이아웃입니다. 임원, 컨설턴트 또는 스타트업 이력서에 적합하도록 세련되게 디자인되었습니다."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "단일 열 구성에 세련되고 진중한 느낌을 더한 템플릿으로, 시니어 혹은 엔터프라이즈급 포지션에 적합합니다."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "통계"
|
||||
msgid "Stay"
|
||||
msgstr "머물기"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "멈추다"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "강점"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "텍스트 색상"
|
||||
msgid "Thai"
|
||||
msgstr "태국어"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "AI가 제안한 변경 사항은 더 이상 이 이력서에 적용되지 않습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "AI가 미리 볼 수 없는 제안을 반환했습니다."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API 키가 성공적으로 삭제되었습니다."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "API 키를 삭제하면 더 이상 데이터에 액세스할 수 없습니다. 이 작업은 되돌릴 수 없습니다."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "비서는 제안서를 돌려주기 전에 잠시 멈칫했다."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "이것은 이력서에 사용할 URL 친화적인 이름입니다."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "AI 제공자의 응답 속도에 따라 몇 분 정도 걸릴 수 있습니다. 창을 닫거나 페이지를 새로 고치지 마세요."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "이 제안서는 오래된 것입니다. 담당자에게 최신 이력서를 바탕으로 다시 작성해 달라고 요청하세요."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "이 이력서는 잠겨 있어 수정할 수 없습니다."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "계정을 삭제하려면 확인 문구를 입력한 뒤 아래 버튼
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "왼쪽 사이드바 토글"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "페이지 스태킹 토글"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "우크라이나어"
|
||||
msgid "Underline"
|
||||
msgstr "밑줄"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "실행 취소 (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "무제한 이력서"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (트위터)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "네, Reactive Resume는 여러 언어로 제공됩니다. 설정 페이지나 오른쪽 상단의 언어 전환기를 사용해 원하는 언어를 선택할 수 있습니다. 원하는 언어가 없거나 기존 번역을 개선하고 싶다면, <0>Crowdin에서 번역에 기여해 보세요<1> (새 탭에서 열림)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "네! 모든 템플릿은 완전히 사용자 지정할 수 있습니다. 색상, 글꼴, 간격을 변경하고, 사용자 지정 CSS를 작성해 이력서의 외형을 완전히 제어할 수 있습니다."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "네! Reactive Resume는 숨은 비용, 프리미엄 플랜, 구독료 없이 완전히 무료로 사용할 수 있습니다. 오픈 소스이며 앞으로도 계속 무료로 제공됩니다."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "데이터는 브라우저에 로컬로 저장됩니다"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "데이터는 안전하게 저장되며 제3자와 공유되지 않습니다. 또한 Reactive Resume를 직접 서버에 호스팅해 데이터에 대한 완전한 제어권을 가질 수 있습니다."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "최근 변경 내용을 저장할 수 없습니다."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: lt\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:05\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Lithuanian\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, one {# elementas} few {# elementai} many {# elementų} other
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, one {# vaidmuo} few {# vaidmenys} many {# vaidmenų} other {# vaidmenys}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} peržiūrėti pasiūlymai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Žinoma! Galite vienu spustelėjimu eksportuoti savo gyvenimo aprašymą į PDF. Eksportuotas PDF išsaugo visą jūsų formatavimą ir stilių."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Priimti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Priimti visus"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Priimtas pasiūlymas"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Programiškai pasiekite savo gyvenimo aprašymus ir duomenis naudodami API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Pridėti eilutę prieš"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikanso"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Po"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "AI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Dirbtinio intelekto integracija išjungta"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Pritaikytas dirbtinio intelekto pasiūlymas."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "DI pasiūlymas atmestas."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Pritaikyti dirbtinio intelekto pasiūlymai."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Dirbtinio intelekto pasiūlymai atmesti."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Dirbtinio intelekto gyvenimo aprašymo asistentas"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albanų"
|
||||
@@ -367,10 +412,22 @@ msgstr "Studijų sritis"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Dirbtinis intelektas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Paprašykite tikslinio gyvenimo aprašymo pakeitimo..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Paprašykite laipsniško pakeitimo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Vaizdo santykis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Asistento užklausa nepavyko"
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Pagrindai"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Gražūs šablonai, iš kurių galima rinktis, ir dar daugiau pakeliui."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Prieš"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengalų"
|
||||
@@ -462,10 +523,6 @@ msgstr "Suženklintas sąrašas"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "Bendruomenės ir bendruomenei."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Ar galiu pritaikyti šablonus?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Ar galiu eksportuoti savo gyvenimo aprašymą į PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Skaidrus"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Spustelėkite čia, kad pasirinktumėte importuojamą failą"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Uždaryti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Uždaryti DI asistentą"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Kodo blokas"
|
||||
@@ -622,6 +687,10 @@ msgstr "Patvirtinti"
|
||||
msgid "Connect"
|
||||
msgstr "Prisijungti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Prieš naudodami gyvenimo aprašymo redagavimo pasiūlymus, prisijunkite prie dirbtinio intelekto teikėjo ir jį patikrinkite."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Nukopijuokite šį slaptą raktą ir naudokite jį savo programose duome
|
||||
msgid "Copy URL"
|
||||
msgstr "Kopijuoti URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Nepavyko pritaikyti dirbtinio intelekto pasiūlymo."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Atsijungti"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Atmesti"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentacija"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Neturite paskyros? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Paaukoti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Paaukoti „Reactive Resume“"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Įjungti 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Įjungti DI funkcijas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Įgalinti dirbtinio intelekto integraciją"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Įjungti dviejų veiksnių tapatumo patvirtinimą"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Viskas, ką čia įvedate, saugoma vietoje jūsų naršyklėje. Jūsų d
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Viskas, ko reikia sukurti, pritaikyti ir bendrinti profesionalius gyvenimo aprašymus. Sukurta atsižvelgiant į privatumą, paremta atviruoju kodu ir visiškai nemokama visam laikui."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Pavyzdžiai: perrašykite santrauką, sugriežtinkite vieną patirties punktą, pridėkite metrikų arba pritaikykite gyvenimo aprašymą pareigybės aprašymui."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Išeiti iš viso ekrano"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Pamiršote slaptažodį?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formatas"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formatas"
|
||||
msgid "Free"
|
||||
msgstr "Nemokama"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Laisva forma"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Prancūzų"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "\"Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modelis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Daugiau pasiūlymų veiksmų"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Perkelti į"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Turi prasidėti nuo https://"
|
||||
msgid "Name"
|
||||
msgstr "Pavadinimas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Reikia peržiūrėti"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepalų"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Naujas slaptažodis"
|
||||
msgid "New Section"
|
||||
msgstr "Naujas skyrius"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Kitas"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Be reklamų, be sekimo"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Nuolatinė priežiūra"
|
||||
msgid "Open"
|
||||
msgstr "Atidaryti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Atidaryti dirbtinio intelekto asistentą"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Atidaryti el. pašto programą"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Atviros integracijos"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Atidarykite Integracijos nustatymai"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Norėdami tęsti, įveskite gyvenimo aprašymo savininko su jumis pasida
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Įveskite URL, su kuriuo norite susieti:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Prašome paremti projektą"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Pareigos"
|
||||
msgid "Preferences"
|
||||
msgstr "Nustatymai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Ruošiami pakeitimai"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Išankstiniai nustatymai"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Paspauskite <0>{RETURN_KEY}</0> arba <1>{COMMA_KEY}</1>, kad pridėtumė
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Paspauskite <0>Enter</0>, kad atidarytumėte"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Ankstesnis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Pagrindinė spalva"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Progreso juosta"
|
||||
msgid "Projects"
|
||||
msgstr "Projektai"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Pasiūlymas {0} iš {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Apsaugokite savo gyvenimo aprašymą slaptažodžiu nuo neteisėtos prieigos"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikacijos"
|
||||
msgid "Publisher"
|
||||
msgstr "Leidėjas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Neapdorotas JSON pataisymas"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "„Reactive Resume“ – eiti į pagrindinį puslapį"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "„Reactive Resume“ yra nemokamas atvirojo kodo projektas, sukurtas su
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "„Reactive Resume“ – nemokama atvirojo kodo gyvenimo aprašymų kūrimo priemonė, supaprastinanti gyvenimo aprašymo kūrimo, atnaujinimo ir bendrinimo procesą."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "„Reactive Resume“ yra nemokamas ir atvirojo kodo. Jei jis jums padėjo, apsvarstykite galimybę paaukoti."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "„Reactive Resume“ yra atvirojo kodo, orientuota į privatumą ir visiškai nemokama. Skirtingai nei kiti gyvenimo aprašymų kūrėjai, ji nerodo reklamų, nerenka jūsų duomenų ir neapriboja funkcijų už mokamos sienos."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Stačiakampis"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Stačiakampis (visas plotis)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Atkurti (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Perkrauti"
|
||||
msgid "Register New Device"
|
||||
msgstr "Naujo įrenginio registravimas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Atmesti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Atmesti viską"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Atmestas pasiūlymas"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Prisimenate slaptažodį? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Iš naujo siunčiamas patvirtinimo el. laiškas..."
|
||||
msgid "Reset"
|
||||
msgstr "Nustatyti iš naujo"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Iš naujo nustatyti pokalbių langą"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Atkurkite slaptažodį"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Atstatomas slaptažodis..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Keisti dirbtinio intelekto asistento dydį"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Ištekliai"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "Baigta gyvenimo aprašymo analizė."
|
||||
msgid "Resumes"
|
||||
msgstr "Gyvenimo aprašymai"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Reikalinga peržiūra"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Peržiūrėti pasiūlymai"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Lygiuoti dešinėje"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Pasirinkite..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Savarankiškas talpinimas naudojant Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Siųsti"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Siųsti slaptažodžio atkūrimo el. laišką"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Siunčiamas slaptažodžio atkūrimo el. laiškas..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Siunčiama užklausa"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Skirtukas"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Vienas stulpelis su šonine juosta ir švariu tinklelio išdėstymu; uni
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Vieno stulpelio su trijų stulpelių įvesties antraštėmis (pareigos - organizacija - taškas); kompaktiškas ir patogus ATS, gerai pritaikytas Azijos šalių CV konvencijoms (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Vieno stulpelio su didžiosiomis raidėmis rašomomis skyrių antraštėmis ir pagrindinės spalvos viršutine linija kiekviename puslapyje; puikiai tinka vadovų, konsultavimo ar startuolių gyvenimo aprašymams."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Vienas stulpelis; solidus ir rimtas vyresnio ar aukšto lygio pareigoms."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistika"
|
||||
msgid "Stay"
|
||||
msgstr "Likti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Stop"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Stipriosios pusės"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Teksto spalva"
|
||||
msgid "Thai"
|
||||
msgstr "Tajų"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Dirbtinis intelektas pasiūlė pakeitimą, kuris šiam gyvenimo aprašymui nebetaikomas."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Dirbtinis intelektas pateikė pasiūlymą, kurio nebuvo galima peržiūrėti."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API raktas sėkmingai ištrintas."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Po ištrynimo šis API raktas nebegalės pasiekti jūsų duomenų. Šio veiksmo anuliuoti neįmanoma."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Asistentas sustojo prieš atsakydamas pasiūlymu."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Tai URL draugiškas jūsų gyvenimo aprašymo pavadinimas."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Tai gali užtrukti kelias minutes, priklausomai nuo DI tiekėjo atsako. Neuždarykite lango ir neatnaujinkite puslapio."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Šis pasiūlymas pasenęs. Paprašykite asistento jį iš naujo sukurti iš naujausio gyvenimo aprašymo."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Šis gyvenimo aprašymas užrakintas ir negali būti atnaujintas."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Norėdami ištrinti paskyrą, įveskite patvirtinimo tekstą ir spustel
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Perjungti kairę šoninę juostą"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Perjungti puslapių krūvojimą"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukrainiečių"
|
||||
msgid "Underline"
|
||||
msgstr "Pabraukti"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Anuliuoti (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Neriboti gyvenimo aprašymai"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Taip, „Reactive Resume“ prieinama keliomis kalbomis. Galite pasirinkti pageidaujamą kalbą nustatymų puslapyje arba naudoti kalbos perjungiklį viršutiniame dešiniajame kampe. Jei nematote savo kalbos arba norite patobulinti esamus vertimus, galite <0>prisidėti prie vertimų „Crowdin“<1> (atidaro naujame skirtuke)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Taip! Kiekvienas šablonas visiškai pritaikomas. Galite keisti spalvas, šriftus, tarpelius ir net rašyti pasirinktinį CSS, kad visiškai valdytumėte savo gyvenimo aprašymo išvaizdą."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Taip! „Reactive Resume“ visiškai nemokama naudoti – be paslėptų kainų, „premium“ lygių ar prenumeratos mokesčių. Ji yra atvirojo kodo ir visada tokia išliks."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Jūsų duomenys saugomi vietoje"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Jūsų duomenys saugiai laikomi ir niekada nebendrinami su trečiosiomis šalimis. Taip pat galite savarankiškai talpinti „Reactive Resume“ savo serveriuose ir visiškai kontroliuoti savo duomenis."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Nepavyko išsaugoti naujausių pakeitimų."
|
||||
|
||||
|
||||
+211
-22
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Language: lv\n"
|
||||
"Project-Id-Version: reactive-resume\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2026-05-07 14:32\n"
|
||||
"PO-Revision-Date: 2026-05-13 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Latvian\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
|
||||
@@ -48,6 +48,11 @@ msgstr "{0, plural, zero {# ierakstu} one {# ieraksts} other {# ieraksti}}"
|
||||
msgid "{0, plural, one {# role} other {# roles}}"
|
||||
msgstr "{0, plural, zero {# lomas} one {# loma} other {# lomas}}"
|
||||
|
||||
#. placeholder {0}: resolutions.length
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "{0} proposals reviewed"
|
||||
msgstr "{0} pārskatītie priekšlikumi"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
|
||||
msgid "{column, plural, one {# Column} other {# Columns}}"
|
||||
@@ -119,6 +124,18 @@ msgstr "A4"
|
||||
msgid "Absolutely! You can export your resume to PDF with a single click. The exported PDF maintains all your formatting and styling perfectly."
|
||||
msgstr "Protams! Jūs varat eksportēt savu CV uz PDF ar vienu klikšķi. Eksportētais PDF pilnībā saglabā visu jūsu formatējumu un stilu."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept"
|
||||
msgstr "Pieņemt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accept all"
|
||||
msgstr "Pieņemt visus"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Accepted proposal"
|
||||
msgstr "Akceptēts priekšlikums"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Access your resumes and data programmatically using the API."
|
||||
msgstr "Piekļūstiet saviem CV un datiem programmatiski, izmantojot API."
|
||||
@@ -229,10 +246,38 @@ msgstr "Pievienot rindu pirms"
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikandu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "After"
|
||||
msgstr "Pēc"
|
||||
|
||||
#: src/dialogs/resume/import.tsx
|
||||
msgid "AI"
|
||||
msgstr "MI"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI integration disabled"
|
||||
msgstr "Mākslīgā intelekta integrācija ir atspējota"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal applied."
|
||||
msgstr "Mākslīgā intelekta priekšlikums ir piemērots."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposal rejected."
|
||||
msgstr "AI priekšlikums noraidīts."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals applied."
|
||||
msgstr "Piemēroti mākslīgā intelekta priekšlikumi."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI proposals rejected."
|
||||
msgstr "Mākslīgā intelekta priekšlikumi noraidīti."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "AI Resume Assistant"
|
||||
msgstr "Mākslīgā intelekta CV palīgs"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Albanian"
|
||||
msgstr "Albāņu"
|
||||
@@ -367,10 +412,22 @@ msgstr "Studiju joma"
|
||||
msgid "Artificial Intelligence"
|
||||
msgstr "Mākslīgais intelekts"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for a targeted resume change..."
|
||||
msgstr "Pieprasiet mērķtiecīgu CV maiņu..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Ask for an incremental change"
|
||||
msgstr "Lūdziet pakāpeniskas izmaiņas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
|
||||
msgid "Aspect Ratio"
|
||||
msgstr "Proporcijas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Assistant request failed"
|
||||
msgstr "Asistenta pieprasījums neizdevās."
|
||||
|
||||
#: src/components/command-palette/pages/navigation.tsx
|
||||
#: src/routes/dashboard/-components/sidebar.tsx
|
||||
#: src/routes/dashboard/settings/authentication/index.tsx
|
||||
@@ -421,6 +478,10 @@ msgstr "Pamatinformācija"
|
||||
msgid "Beautiful templates to choose from, with more on the way."
|
||||
msgstr "Skaistas veidnes, no kurām izvēlēties, un vēl vairāk drīzumā."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Before"
|
||||
msgstr "Pirms"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Bengali"
|
||||
msgstr "Bengāļu"
|
||||
@@ -462,10 +523,6 @@ msgstr "Aizzīmju saraksts"
|
||||
msgid "By the community, for the community."
|
||||
msgstr "No kopienas kopienai."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I customize the templates?"
|
||||
msgstr "Vai varu pielāgot veidnes?"
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Can I export my resume to PDF?"
|
||||
msgstr "Vai varu eksportēt savu CV uz PDF?"
|
||||
@@ -576,6 +633,14 @@ msgstr "Skaidrs"
|
||||
msgid "Click here to select a file to import"
|
||||
msgstr "Noklikšķiniet šeit, lai izvēlētos importējamo failu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Close"
|
||||
msgstr "Aizvērt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Close AI assistant"
|
||||
msgstr "Aizvērt mākslīgā intelekta palīgu"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Code Block"
|
||||
msgstr "Koda bloks"
|
||||
@@ -622,6 +687,10 @@ msgstr "Apstiprināt"
|
||||
msgid "Connect"
|
||||
msgstr "Savienot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Connect and verify an AI provider before using resume editing proposals."
|
||||
msgstr "Pirms CV rediģēšanas priekšlikumu izmantošanas izveidojiet savienojumu ar mākslīgā intelekta pakalpojumu sniedzēju un pārbaudiet to."
|
||||
|
||||
#: src/dialogs/resume/sections/cover-letter.tsx
|
||||
#: src/dialogs/resume/sections/summary-item.tsx
|
||||
msgid "Content"
|
||||
@@ -669,6 +738,10 @@ msgstr "Nokopējiet šo slepeno atslēgu un izmantojiet to savās lietotnēs, la
|
||||
msgid "Copy URL"
|
||||
msgstr "Kopēt URL"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Could not apply the AI proposal."
|
||||
msgstr "Nevarēja lietot mākslīgā intelekta priekšlikumu."
|
||||
|
||||
#. Error description when AI provider cannot be reached during resume analysis
|
||||
#. Error shown when AI provider is unreachable during PDF/DOCX resume import
|
||||
#. Error shown when the configured AI provider cannot be reached during connection test
|
||||
@@ -961,6 +1034,10 @@ msgstr "Atvienot"
|
||||
msgid "Discord"
|
||||
msgstr "Discord"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Dismiss"
|
||||
msgstr "Noraidīt"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Documentation"
|
||||
@@ -970,6 +1047,10 @@ msgstr "Dokumentācija"
|
||||
msgid "Don't have an account? <0/>"
|
||||
msgstr "Nav konta? <0/>"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Ziedot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/information.tsx
|
||||
msgid "Donate to Reactive Resume"
|
||||
msgstr "Ziedot Reactive Resume"
|
||||
@@ -1094,6 +1175,10 @@ msgstr "Iespējot 2FA"
|
||||
msgid "Enable AI Features"
|
||||
msgstr "Iespējot MI funkcijas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Enable AI integration"
|
||||
msgstr "Iespējot mākslīgā intelekta integrāciju"
|
||||
|
||||
#: src/dialogs/auth/enable-two-factor.tsx
|
||||
msgid "Enable Two-Factor Authentication"
|
||||
msgstr "Iespējot divu faktoru autentifikāciju"
|
||||
@@ -1162,6 +1247,10 @@ msgstr "Viss, ko ievadāt šeit, tiek glabāts lokāli jūsu pārlūkprogrammā.
|
||||
msgid "Everything you need to create, customize, and share professional resumes. Built with privacy in mind, powered by open source, and completely free forever."
|
||||
msgstr "Viss, kas jums nepieciešams, lai izveidotu, pielāgotu un kopīgotu profesionālus CV. Veidots, domājot par privātumu, darbināms ar atvērtā pirmkoda risinājumiem un pilnīgi bez maksas uz visiem laikiem."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Examples: rewrite the summary, tighten one experience bullet, add metrics, or adapt the resume for a job description."
|
||||
msgstr "Piemēri: pārrakstīt kopsavilkumu, sašaurināt vienu pieredzes aizzīmi, pievienot rādītājus vai pielāgot CV amata aprakstam."
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Exit Fullscreen"
|
||||
msgstr "Iziet no pilnekrāna"
|
||||
@@ -1389,7 +1478,7 @@ msgid "Forgot your password?"
|
||||
msgstr "Aizmirsāt paroli?"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgctxt "Page Format (A4, Letter)"
|
||||
msgctxt "Page Format (A4, Letter, Free-form)"
|
||||
msgid "Format"
|
||||
msgstr "Formāts"
|
||||
|
||||
@@ -1397,6 +1486,10 @@ msgstr "Formāts"
|
||||
msgid "Free"
|
||||
msgstr "Bezmaksas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
|
||||
msgid "Free-form"
|
||||
msgstr "Brīvā forma"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "French"
|
||||
msgstr "Franču"
|
||||
@@ -1952,6 +2045,10 @@ msgstr "Microsoft Word"
|
||||
msgid "Model"
|
||||
msgstr "Modelis"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "More proposal actions"
|
||||
msgstr "Vairāk priekšlikumu darbību"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
|
||||
msgid "Move to"
|
||||
msgstr "Pārvietot uz"
|
||||
@@ -1978,6 +2075,10 @@ msgstr "Jāuzsāk ar https://"
|
||||
msgid "Name"
|
||||
msgstr "Nosaukums"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Needs review"
|
||||
msgstr "Nepieciešama pārskatīšana"
|
||||
|
||||
#: src/libs/locale.ts
|
||||
msgid "Nepali"
|
||||
msgstr "Nepāļu"
|
||||
@@ -2008,6 +2109,10 @@ msgstr "Jaunā parole"
|
||||
msgid "New Section"
|
||||
msgstr "Jauna sadaļa"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Next"
|
||||
msgstr "Nākamais"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "No Advertising, No Tracking"
|
||||
msgstr "Bez reklāmām, bez izsekošanas"
|
||||
@@ -2057,11 +2162,19 @@ msgstr "Nepārtraukta uzturēšana"
|
||||
msgid "Open"
|
||||
msgstr "Atvērt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Open AI assistant"
|
||||
msgstr "Atvērt AI palīgu"
|
||||
|
||||
#. Button label to open the user's default email app
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Open Email Client"
|
||||
msgstr "Atvērt e-pasta klientu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Open Integrations"
|
||||
msgstr "Atvērtās integrācijas"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Open Integrations Settings"
|
||||
msgstr "Atvērt Integrāciju iestatījumi"
|
||||
@@ -2215,6 +2328,10 @@ msgstr "Lūdzu, ievadiet paroli, ko ar jums kopīgoja CV īpašnieks, lai turpin
|
||||
msgid "Please enter the URL you want to link to:"
|
||||
msgstr "Lūdzu, ievadiet URL, uz kuru vēlaties izveidot saiti:"
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Please support the project"
|
||||
msgstr "Lūdzu, atbalstiet projektu"
|
||||
|
||||
#: src/routes/$username/-components/public-resume.tsx
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
|
||||
@@ -2250,6 +2367,10 @@ msgstr "Amats"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferences"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Preparing changes"
|
||||
msgstr "Izmaiņu sagatavošana"
|
||||
|
||||
#: src/components/input/color-picker.tsx
|
||||
msgid "Presets"
|
||||
msgstr "Sākotnējie iestatījumi"
|
||||
@@ -2263,6 +2384,10 @@ msgstr "Nospiediet <0>{RETURN_KEY}</0> vai <1>{COMMA_KEY}</1>, lai pievienotu va
|
||||
msgid "Press <0>Enter</0> to open"
|
||||
msgstr "Nospiediet <0>Enter</0>, lai atvērtu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Prev"
|
||||
msgstr "Iepriekšējais"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
|
||||
msgid "Primary Color"
|
||||
msgstr "Primārā krāsa"
|
||||
@@ -2293,6 +2418,11 @@ msgstr "Progresa josla"
|
||||
msgid "Projects"
|
||||
msgstr "Projekti"
|
||||
|
||||
#. placeholder {0}: index + 1
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Proposal {0} of {total}"
|
||||
msgstr "Priekšlikums {0} no {total}"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
|
||||
msgid "Protect your resume from unauthorized access with a password"
|
||||
msgstr "Aizsargājiet savu CV no nesankcionētas piekļuves ar paroli"
|
||||
@@ -2315,6 +2445,10 @@ msgstr "Publikācijas"
|
||||
msgid "Publisher"
|
||||
msgstr "Izdevējs"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Raw JSON Patch"
|
||||
msgstr "Neapstrādāts JSON ielāps"
|
||||
|
||||
#: src/routes/_home/-sections/header.tsx
|
||||
msgid "Reactive Resume - Go to homepage"
|
||||
msgstr "Reactive Resume - doties uz sākumlapu"
|
||||
@@ -2336,6 +2470,10 @@ msgstr "Reactive Resume ir bezmaksas un atvērtā pirmkoda projekts, kas veidots
|
||||
msgid "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."
|
||||
msgstr "Reactive Resume ir bezmaksas un atvērtā pirmkoda CV veidotājs, kas vienkāršo jūsu CV izveides, atjaunināšanas un kopīgošanas procesu."
|
||||
|
||||
#: src/components/ui/donation-toast.tsx
|
||||
msgid "Reactive Resume is free and open source. If it has helped you, please consider donating."
|
||||
msgstr "Reactive CV ir bezmaksas un atvērtā koda resurss. Ja tas jums ir palīdzējis, lūdzu, apsveriet iespēju ziedot."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Reactive Resume is open-source, privacy-focused, and completely free. Unlike other resume builders, it doesn't show ads, track your data, or limit your features behind a paywall."
|
||||
msgstr "Reactive Resume ir atvērtā pirmkoda, uz privātumu vērsts un pilnīgi bezmaksas. Atšķirībā no citiem CV veidotājiem tas nerāda reklāmas, neizseko jūsu datus un neierobežo funkcijas ar maksas sienu."
|
||||
@@ -2362,11 +2500,6 @@ msgstr "Taisnstūris"
|
||||
msgid "Rectangle (Full Width)"
|
||||
msgstr "Taisnstūris (pilns platums)"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Redo (Ctrl+Y)"
|
||||
msgstr "Atkārtot (Ctrl+Y)"
|
||||
|
||||
#: src/dialogs/resume/sections/custom.tsx
|
||||
#: src/libs/resume/section-title.ts
|
||||
#: src/libs/resume/section.tsx
|
||||
@@ -2381,6 +2514,18 @@ msgstr "Atsvaidzināt"
|
||||
msgid "Register New Device"
|
||||
msgstr "Reģistrēt jaunu ierīci"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject"
|
||||
msgstr "Noraidīt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reject all"
|
||||
msgstr "Noraidīt visus"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Rejected proposal"
|
||||
msgstr "Noraidīts priekšlikums"
|
||||
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Remember your password? <0/>"
|
||||
msgstr "Atceraties paroli? <0/>"
|
||||
@@ -2431,6 +2576,10 @@ msgstr "Atkārtoti nosūta verifikācijas e-pastu..."
|
||||
msgid "Reset"
|
||||
msgstr "Atiestatīt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reset chat"
|
||||
msgstr "Atiestatīt tērzēšanu"
|
||||
|
||||
#. Primary action button label on reset-password form
|
||||
#: src/routes/auth/reset-password.tsx
|
||||
msgid "Reset Password"
|
||||
@@ -2444,6 +2593,10 @@ msgstr "Atiestatīt paroli"
|
||||
msgid "Resetting your password..."
|
||||
msgstr "Tiek atiestatīta jūsu parole..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Resize AI assistant"
|
||||
msgstr "Mainīt AI palīga izmēru"
|
||||
|
||||
#: src/routes/_home/-sections/footer.tsx
|
||||
msgid "Resources"
|
||||
msgstr "Resursi"
|
||||
@@ -2464,6 +2617,14 @@ msgstr "CV analīze pabeigta."
|
||||
msgid "Resumes"
|
||||
msgstr "CV"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Review required"
|
||||
msgstr "Nepieciešama pārskatīšana"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Reviewed proposals"
|
||||
msgstr "Pārskatītie priekšlikumi"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Right Align"
|
||||
msgstr "Izlīdzināt pa labi"
|
||||
@@ -2562,6 +2723,10 @@ msgstr "Atlasīt..."
|
||||
msgid "Self-Host with Docker"
|
||||
msgstr "Pašhostēšana ar Docker"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Send"
|
||||
msgstr "Sūtīt"
|
||||
|
||||
#. Primary action button label on forgot-password form
|
||||
#: src/routes/auth/forgot-password.tsx
|
||||
msgid "Send Password Reset Email"
|
||||
@@ -2571,6 +2736,10 @@ msgstr "Nosūtīt paroles atiestatīšanas e-pastu"
|
||||
msgid "Sending password reset email..."
|
||||
msgstr "Nosūta paroles atiestatīšanas e-pastu..."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Sending request"
|
||||
msgstr "Pieprasījuma nosūtīšana"
|
||||
|
||||
#: src/components/input/rich-input.tsx
|
||||
msgid "Separator"
|
||||
msgstr "Atdalītājs"
|
||||
@@ -2709,6 +2878,10 @@ msgstr "Vienkolonnu izkārtojums ar sānu joslu un tīru režģa izkārtojumu; u
|
||||
msgid "Single-column with an inline three-column entry header (position · organization · period); compact and ATS-friendly, well-suited for Asian resume conventions (CN/JP/KR)."
|
||||
msgstr "Vienas kolonnas ar ievilktu trīs kolonnu virsrakstu (amats - organizācija - punkts); kompakts un ATS draudzīgs, labi piemērots Āzijas CV konvencijām (CN/JP/KR)."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with uppercase section headings and a primary-color top rule on every page; polished for executive, consulting, or startup resumes."
|
||||
msgstr "Vienas kolonnas CV ar lielajiem burtiem rakstītiem sadaļu virsrakstiem un pamatkrāsas augšējo rindiņu katrā lapā; lieliski piemērots vadītāju, konsultāciju vai jaunuzņēmumu CV."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column; polished and serious for senior or enterprise-level positions."
|
||||
msgstr "Vienkolonnu izkārtojums; nopietns un noslīpēts vecākā līmeņa vai uzņēmuma līmeņa amatiem."
|
||||
@@ -2809,6 +2982,10 @@ msgstr "Statistika"
|
||||
msgid "Stay"
|
||||
msgstr "Palikt"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "Stop"
|
||||
msgstr "Apstāties"
|
||||
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "Strengths"
|
||||
msgstr "Stiprās puses"
|
||||
@@ -2903,6 +3080,14 @@ msgstr "Teksta krāsa"
|
||||
msgid "Thai"
|
||||
msgstr "Taju"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI proposed a change that no longer applies to this resume."
|
||||
msgstr "Mākslīgais intelekts ierosināja izmaiņas, kas vairs neattiecas uz šo CV."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The AI returned a proposal that could not be previewed."
|
||||
msgstr "Mākslīgais intelekts atgrieza priekšlikumu, kuru nevarēja priekšskatīt."
|
||||
|
||||
#. Error description when AI returns invalid resume analysis format
|
||||
#: src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
|
||||
msgid "The AI returned an invalid analysis format. Please try again."
|
||||
@@ -2916,6 +3101,10 @@ msgstr "API atslēga veiksmīgi dzēsta."
|
||||
msgid "The API key will no longer be able to access your data after deletion. This action cannot be undone."
|
||||
msgstr "Pēc dzēšanas šī API atslēga vairs nevarēs piekļūt jūsu datiem. Šī darbība nav atsaucama."
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "The assistant stopped before returning a proposal."
|
||||
msgstr "Asistents apstājās, pirms atbildēja uz priekšlikumu."
|
||||
|
||||
#. Empty-state message when no command palette results match the search query
|
||||
#: src/components/command-palette/index.tsx
|
||||
msgid "The command you're looking for doesn't exist."
|
||||
@@ -2982,7 +3171,12 @@ msgstr "Tas ir URL-draudzīgs nosaukums jūsu CV."
|
||||
msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
|
||||
msgstr "Tas var aizņemt dažas minūtes atkarībā no MI pakalpojumu sniedzēja atbildes. Lūdzu, neaizveriet logu un neatjaunojiet lapu."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This proposal is stale. Ask the assistant to regenerate it from the latest resume."
|
||||
msgstr "Šis piedāvājums ir novecojis. Palūdziet asistentam to atkārtoti ģenerēt no jaunākā CV."
|
||||
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
#: src/routes/builder/$resumeId/-components/assistant.tsx
|
||||
msgid "This resume is locked and cannot be updated."
|
||||
msgstr "Šis CV ir bloķēts un to nevar atjaunināt."
|
||||
|
||||
@@ -3034,6 +3228,10 @@ msgstr "Lai dzēstu savu kontu, jums jāievada apstiprinājuma teksts un jānokl
|
||||
msgid "Toggle left sidebar"
|
||||
msgstr "Pārslēgt kreiso sānjjoslu"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgid "Toggle page stacking"
|
||||
msgstr "Pārslēgt lapu sakraušanu"
|
||||
|
||||
#. Screen-reader label for opening or closing the right sidebar in resume builder
|
||||
#: src/routes/builder/$resumeId/-components/header.tsx
|
||||
msgid "Toggle right sidebar"
|
||||
@@ -3137,11 +3335,6 @@ msgstr "Ukraiņu"
|
||||
msgid "Underline"
|
||||
msgstr "Pasvītrot"
|
||||
|
||||
#: src/routes/builder/$resumeId/-components/dock.tsx
|
||||
msgctxt "'Ctrl' may be replaced with the locale-specific equivalent (e.g. 'Strg' for QWERTZ layouts)."
|
||||
msgid "Undo (Ctrl+Z)"
|
||||
msgstr "Atsaukt (Ctrl+Z)"
|
||||
|
||||
#: src/routes/_home/-sections/features.tsx
|
||||
msgid "Unlimited Resumes"
|
||||
msgstr "Neierobežoti CV"
|
||||
@@ -3387,10 +3580,6 @@ msgstr "X (Twitter)"
|
||||
msgid "Yes, Reactive Resume is available in multiple languages. You can choose your preferred language in the settings page, or using the language switcher in the top right corner. If you don't see your language, or you would like to improve the existing translations, you can <0>contribute to the translations on Crowdin<1> (opens in new tab)</1></0>."
|
||||
msgstr "Jā, Reactive Resume ir pieejams vairākās valodās. Jūs varat izvēlēties vēlamo valodu iestatījumu lapā vai, izmantojot valodas pārslēdzēju augšējā labajā stūrī. Ja neredzat savu valodu vai vēlaties uzlabot esošos tulkojumus, varat <0>piedalīties tulkošanā vietnē Crowdin<1> (atveras jaunā cilnē)</1></0>."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Every template is fully customizable. You can change colors, fonts, spacing, and even write custom CSS for complete control over your resume's appearance."
|
||||
msgstr "Jā! Katra veidne ir pilnībā pielāgojama. Varat mainīt krāsas, fontus, atstatumus un pat rakstīt pielāgotu CSS, lai pilnībā kontrolētu sava CV izskatu."
|
||||
|
||||
#: src/routes/_home/-sections/faq.tsx
|
||||
msgid "Yes! Reactive Resume is completely free to use, with no hidden costs, premium tiers, or subscription fees. It's open-source and will always remain free."
|
||||
msgstr "Jā! Reactive Resume ir pilnīgi bez maksas, bez slēptām izmaksām, premium līmeņiem vai abonēšanas maksām. Tas ir atvērtā pirmkoda un vienmēr paliks bez maksas."
|
||||
@@ -3440,7 +3629,7 @@ msgstr "Jūsu dati tiek glabāti lokāli"
|
||||
msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
|
||||
msgstr "Jūsu dati tiek glabāti droši un nekad netiek kopīgoti ar trešajām pusēm. Reactive Resume varat arī pašhostēt uz saviem serveriem, lai pilnībā kontrolētu savus datus."
|
||||
|
||||
#: src/components/resume/use-resume.ts
|
||||
#: src/components/resume/builder-resume-draft.ts
|
||||
msgid "Your latest changes could not be saved."
|
||||
msgstr "Jūsu jaunākās izmaiņas nevarēja saglabāt."
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user